{"version":3,"file":"helper.mjs","sources":["../../../../../../../packages/components/table/src/store/helper.ts"],"sourcesContent":["// @ts-nocheck\r\nimport { watch } from 'vue'\r\nimport { debounce } from 'lodash'\r\nimport useStore from '.'\r\n\r\nimport type { Store } from '.'\r\nimport type { Table, TableProps } from '../table/defaults'\r\n\r\nconst InitialStateMap = {\r\n  rowKey: 'rowKey',\r\n  defaultExpandAll: 'defaultExpandAll',\r\n  selectOnIndeterminate: 'selectOnIndeterminate',\r\n  indent: 'indent',\r\n  lazy: 'lazy',\r\n  data: 'data',\r\n  ['treeProps.hasChildren']: {\r\n    key: 'lazyColumnIdentifier',\r\n    default: 'hasChildren',\r\n  },\r\n  ['treeProps.children']: {\r\n    key: 'childrenColumnName',\r\n    default: 'children',\r\n  },\r\n}\r\n\r\nexport function createStore<T>(table: Table<T>, props: TableProps<T>) {\r\n  if (!table) {\r\n    throw new Error('Table is required.')\r\n  }\r\n\r\n  const store = useStore<T>()\r\n  // fix https://github.com/ElemeFE/element/issues/14075\r\n  // related pr https://github.com/ElemeFE/element/pull/14146\r\n  store.toggleAllSelection = debounce(store._toggleAllSelection, 10)\r\n  Object.keys(InitialStateMap).forEach((key) => {\r\n    handleValue(getArrKeysValue(props, key), key, store)\r\n  })\r\n  proxyTableProps(store, props)\r\n  return store\r\n}\r\n\r\nfunction proxyTableProps<T>(store: Store<T>, props: TableProps<T>) {\r\n  Object.keys(InitialStateMap).forEach((key) => {\r\n    watch(\r\n      () => getArrKeysValue(props, key),\r\n      (value) => {\r\n        handleValue(value, key, store)\r\n      }\r\n    )\r\n  })\r\n}\r\n\r\nfunction handleValue<T>(value, propsKey: string, store: Store<T>) {\r\n  let newVal = value\r\n  let storeKey = InitialStateMap[propsKey]\r\n  if (typeof InitialStateMap[propsKey] === 'object') {\r\n    storeKey = storeKey.key\r\n    newVal = newVal || InitialStateMap[propsKey].default\r\n  }\r\n  store.states[storeKey].value = newVal\r\n}\r\n\r\nfunction getArrKeysValue<T>(props: TableProps<T>, keys: string) {\r\n  if (keys.includes('.')) {\r\n    const keyList = keys.split('.')\r\n    let value = props\r\n    keyList.forEach((key) => {\r\n      value = value[key]\r\n    })\r\n    return value\r\n  } else {\r\n    return props[keys]\r\n  }\r\n}\r\n"],"names":[],"mappings":";;;;AAGA,MAAM,eAAe,GAAG;AACxB,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,gBAAgB,EAAE,kBAAkB;AACtC,EAAE,qBAAqB,EAAE,uBAAuB;AAChD,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,CAAC,uBAAuB,GAAG;AAC7B,IAAI,GAAG,EAAE,sBAAsB;AAC/B,IAAI,OAAO,EAAE,aAAa;AAC1B,GAAG;AACH,EAAE,CAAC,oBAAoB,GAAG;AAC1B,IAAI,GAAG,EAAE,oBAAoB;AAC7B,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,CAAC,CAAC;AACK,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE;AAC1C,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AAC3B,EAAE,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACrE,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAChD,IAAI,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzD,GAAG,CAAC,CAAC;AACL,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAChC,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE;AACvC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAChD,IAAI,KAAK,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK;AACxD,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACrC,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,CAAC;AACD,SAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC7C,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC;AACrB,EAAE,IAAI,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC3C,EAAE,IAAI,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;AACrD,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC5B,IAAI,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;AACzD,GAAG;AACH,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC;AACxC,CAAC;AACD,SAAS,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE;AACtC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC1B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC;AACtB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG,MAAM;AACT,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACvB,GAAG;AACH;;;;"}