{"version":3,"file":"helper.mjs","sources":["../../../../../../src/components/ivue-table/store/helper.ts"],"sourcesContent":["import { watch } from 'vue';\r\nimport { debounce } from 'lodash-unified';\r\n\r\nimport useStore from './index';\r\nimport { throwError } from '../../../utils/error';\r\n\r\n// ts\r\nimport type { Table, TableProps } from '../table/defaults';\r\nimport type { Store } from './index';\r\n\r\n// 初始化 state 状态\r\nconst initialState = {\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\n// 创建 store\r\nexport function createStore(table: Table, props: TableProps) {\r\n  if (!table) {\r\n    throwError('ivue-table', 'Table is required');\r\n  }\r\n\r\n  const store = useStore();\r\n\r\n  // 用于多选表格，切换全选和全不选\r\n  // 将 toggleAllSelection 设置为实例属性\r\n  store.toggleAllSelection = debounce(store._toggleAllSelection, 10);\r\n\r\n  // 获取对应的值对比\r\n  Object.keys(initialState).forEach((key) => {\r\n    setStatesValue(getArrKeysValue(props, key), key, store);\r\n  });\r\n\r\n  // 监听表格props\r\n  proxyTableProps(store, props);\r\n\r\n  return store;\r\n}\r\n\r\n// 监听表格props\r\nfunction proxyTableProps(store: Store, props: TableProps) {\r\n  Object.keys(initialState).forEach((key) => {\r\n    watch(\r\n      () => getArrKeysValue(props, key),\r\n      (value) => {\r\n        setStatesValue(value, key, store);\r\n      }\r\n    );\r\n  });\r\n}\r\n\r\n// 设置stats值\r\nfunction setStatesValue(value, propsKey: string, store: Store) {\r\n  // 最新值\r\n  let newVal = value;\r\n\r\n  // 获取 state key\r\n  let storeKey = initialState[propsKey];\r\n\r\n  // 是否存在值\r\n  if (typeof initialState[propsKey] === 'object') {\r\n    storeKey = storeKey.key;\r\n    newVal = newVal || initialState[propsKey].default;\r\n  }\r\n\r\n  store.states[storeKey].value = newVal;\r\n}\r\n\r\n// 获取对应的值\r\nfunction getArrKeysValue(props: TableProps, keys: string) {\r\n  // 分割字符串成数组赋值\r\n  if (keys.includes('.')) {\r\n    const keyList = keys.split('.');\r\n    let value = props;\r\n\r\n    // 把 props 赋值给 initialState\r\n    keyList.forEach((key) => {\r\n      value = value[key];\r\n    });\r\n\r\n    return value;\r\n  }\r\n  // 普通赋值\r\n  else {\r\n    return props[keys];\r\n  }\r\n}\r\n"],"names":[],"mappings":";;;;;AAWA,MAAM,YAAe,GAAA;AAAA,EACnB,MAAQ,EAAA,QAAA;AAAA,EACR,gBAAkB,EAAA,kBAAA;AAAA,EAClB,qBAAuB,EAAA,uBAAA;AAAA,EACvB,MAAQ,EAAA,QAAA;AAAA,EACR,IAAM,EAAA,MAAA;AAAA,EACN,IAAM,EAAA,MAAA;AAAA,EACN,CAAC,uBAA0B,GAAA;AAAA,IACzB,GAAK,EAAA,sBAAA;AAAA,IACL,OAAS,EAAA,aAAA;AAAA,GACX;AAAA,EACA,CAAC,oBAAuB,GAAA;AAAA,IACtB,GAAK,EAAA,oBAAA;AAAA,IACL,OAAS,EAAA,UAAA;AAAA,GACX;AACF,CAAA,CAAA;AAGgB,SAAA,WAAA,CAAY,OAAc,KAAmB,EAAA;AAC3D,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAA,UAAA,CAAW,cAAc,mBAAmB,CAAA,CAAA;AAAA,GAC9C;AAEA,EAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAIvB,EAAA,KAAA,CAAM,kBAAqB,GAAA,QAAA,CAAS,KAAM,CAAA,mBAAA,EAAqB,EAAE,CAAA,CAAA;AAGjE,EAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACzC,IAAA,cAAA,CAAe,eAAgB,CAAA,KAAA,EAAO,GAAG,CAAA,EAAG,KAAK,KAAK,CAAA,CAAA;AAAA,GACvD,CAAA,CAAA;AAGD,EAAA,eAAA,CAAgB,OAAO,KAAK,CAAA,CAAA;AAE5B,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAGA,SAAS,eAAA,CAAgB,OAAc,KAAmB,EAAA;AACxD,EAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACzC,IAAA,KAAA;AAAA,MACE,MAAM,eAAgB,CAAA,KAAA,EAAO,GAAG,CAAA;AAAA,MAChC,CAAC,KAAU,KAAA;AACT,QAAe,cAAA,CAAA,KAAA,EAAO,KAAK,KAAK,CAAA,CAAA;AAAA,OAClC;AAAA,KACF,CAAA;AAAA,GACD,CAAA,CAAA;AACH,CAAA;AAGA,SAAS,cAAA,CAAe,KAAO,EAAA,QAAA,EAAkB,KAAc,EAAA;AAE7D,EAAA,IAAI,MAAS,GAAA,KAAA,CAAA;AAGb,EAAA,IAAI,WAAW,YAAa,CAAA,QAAA,CAAA,CAAA;AAG5B,EAAI,IAAA,OAAO,YAAa,CAAA,QAAA,CAAA,KAAc,QAAU,EAAA;AAC9C,IAAA,QAAA,GAAW,QAAS,CAAA,GAAA,CAAA;AACpB,IAAS,MAAA,GAAA,MAAA,IAAU,aAAa,QAAU,CAAA,CAAA,OAAA,CAAA;AAAA,GAC5C;AAEA,EAAM,KAAA,CAAA,MAAA,CAAO,UAAU,KAAQ,GAAA,MAAA,CAAA;AACjC,CAAA;AAGA,SAAS,eAAA,CAAgB,OAAmB,IAAc,EAAA;AAExD,EAAI,IAAA,IAAA,CAAK,QAAS,CAAA,GAAG,CAAG,EAAA;AACtB,IAAM,MAAA,OAAA,GAAU,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAC9B,IAAA,IAAI,KAAQ,GAAA,KAAA,CAAA;AAGZ,IAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACvB,MAAA,KAAA,GAAQ,KAAM,CAAA,GAAA,CAAA,CAAA;AAAA,KACf,CAAA,CAAA;AAED,IAAO,OAAA,KAAA,CAAA;AAAA,GAGJ,MAAA;AACH,IAAA,OAAO,KAAM,CAAA,IAAA,CAAA,CAAA;AAAA,GACf;AACF;;;;"}