import { watch } from 'vue';
|
import { debounce } from 'lodash-unified';
|
import useStore from './index.mjs';
|
|
const InitialStateMap = {
|
rowKey: "rowKey",
|
defaultExpandAll: "defaultExpandAll",
|
selectOnIndeterminate: "selectOnIndeterminate",
|
indent: "indent",
|
lazy: "lazy",
|
data: "data",
|
["treeProps.hasChildren"]: {
|
key: "lazyColumnIdentifier",
|
default: "hasChildren"
|
},
|
["treeProps.children"]: {
|
key: "childrenColumnName",
|
default: "children"
|
}
|
};
|
function createStore(table, props) {
|
if (!table) {
|
throw new Error("Table is required.");
|
}
|
const store = useStore();
|
store.toggleAllSelection = debounce(store._toggleAllSelection, 10);
|
Object.keys(InitialStateMap).forEach((key) => {
|
handleValue(getArrKeysValue(props, key), key, store);
|
});
|
proxyTableProps(store, props);
|
return store;
|
}
|
function proxyTableProps(store, props) {
|
Object.keys(InitialStateMap).forEach((key) => {
|
watch(() => getArrKeysValue(props, key), (value) => {
|
handleValue(value, key, store);
|
});
|
});
|
}
|
function handleValue(value, propsKey, store) {
|
let newVal = value;
|
let storeKey = InitialStateMap[propsKey];
|
if (typeof InitialStateMap[propsKey] === "object") {
|
storeKey = storeKey.key;
|
newVal = newVal || InitialStateMap[propsKey].default;
|
}
|
store.states[storeKey].value = newVal;
|
}
|
function getArrKeysValue(props, keys) {
|
if (keys.includes(".")) {
|
const keyList = keys.split(".");
|
let value = props;
|
keyList.forEach((key) => {
|
value = value[key];
|
});
|
return value;
|
} else {
|
return props[keys];
|
}
|
}
|
|
export { createStore };
|
//# sourceMappingURL=helper.mjs.map
|