{"version":3,"file":"index.mjs","sources":["../../../../../../src/components/ivue-table/store/index.ts"],"sourcesContent":["import { getCurrentInstance, unref, nextTick } from 'vue';\r\n\r\nimport useWatcher from './watcher';\r\nimport { throwError } from '../../../utils/error';\r\n\r\n// ts\r\nimport type { Ref } from 'vue';\r\nimport type { Table, Sort, Filter } from '../table/defaults';\r\nimport type { TableColumnCtx } from '../table-column/defaults';\r\n\r\n// 监听props的数据\r\ninterface WatcherPropsData {\r\n  data: Ref<any[]>;\r\n  rowKey: Ref<string>;\r\n}\r\n\r\n// 排序列\r\nfunction sortColumn(array: TableColumnCtx[]) {\r\n  array.forEach((item) => {\r\n    // 当前index\r\n    item.currentIndex = item.getColumnIndex?.();\r\n\r\n    // 有子节点\r\n    if (item.children?.length) {\r\n      sortColumn(item.children);\r\n    }\r\n  });\r\n\r\n  // 排序\r\n  array.sort((cur, pre) => cur.currentIndex - pre.currentIndex);\r\n}\r\n\r\n// 设置列数\r\nfunction replaceColumn(array: TableColumnCtx[], column: TableColumnCtx) {\r\n  return array.map((item) => {\r\n    // id是否相同返回当前列\r\n    if (item.id === column.id) {\r\n      return column;\r\n    }\r\n    // 有子列 获取子列的数据\r\n    else if (item.children?.length) {\r\n      item.children = replaceColumn(item.children, column);\r\n    }\r\n\r\n    return item;\r\n  });\r\n}\r\n\r\nfunction useStore() {\r\n  // 获取当前实例\r\n  const vm = getCurrentInstance() as Table;\r\n\r\n  // 监听函数\r\n  const watcher = useWatcher();\r\n\r\n  // ts\r\n  // 状态 ts\r\n  type states = typeof watcher.states;\r\n\r\n  // 同步\r\n  const mutations = {\r\n    setData(states, data) {\r\n      // 数据是否有改变\r\n      const dataInstanceChanged = unref(states._data) !== data;\r\n\r\n      states.data.value = data;\r\n      states._data.value = data;\r\n\r\n      // 根据 filters 与 sort 去过滤 data\r\n      vm.store.handleExecQueryData();\r\n\r\n      // 数据变化，更新部分数据。\r\n      // 没有使用 computed，而是手动更新部分数据 https://github.com/vuejs/vue/issues/6660#issuecomment-331417140\r\n      vm.store.updateCurrentRowData();\r\n\r\n      // 更新展开行\r\n      vm.store.updateExpandRows();\r\n\r\n      // 更新树数据\r\n      vm.store.updateTreeData(vm.store.states.defaultExpandAll.value);\r\n\r\n      // 保存数据更新前选中的值\r\n      if (unref(states.reserveSelection)) {\r\n        // 检查 rowKey 是否存在\r\n        vm.store.assertRowKey();\r\n        // 更新多选框key\r\n        vm.store.updateSelectionByRowKey();\r\n      } else {\r\n        // 数据变化，更新部分数据。\r\n        if (dataInstanceChanged) {\r\n          vm.store.clearSelection();\r\n        }\r\n        // 删除多余的数据(选择后当前表格中不存在的数据)\r\n        else {\r\n          vm.store.cleanRedundantSelection();\r\n        }\r\n      }\r\n\r\n      // 更新是否选择全部行\r\n      vm.store.updateAllSelected();\r\n\r\n      // 初始化完成\r\n      if (vm.$ready) {\r\n        // 更新布局\r\n        vm.store.scheduleLayout();\r\n      }\r\n    },\r\n    // 用于多选表格，切换全选和全不选\r\n    toggleAllSelection() {\r\n      vm.store.toggleAllSelection();\r\n    },\r\n    // 设置当前行hover\r\n    setHoverRow(states: states, row: TableColumnCtx) {\r\n      states.hoverRow.value = row;\r\n    },\r\n    // 插入列\r\n    insertColumn(\r\n      states: states,\r\n      column: TableColumnCtx,\r\n      parent: TableColumnCtx\r\n    ) {\r\n      const array = unref(states._columns);\r\n\r\n      let newColumns: TableColumnCtx[] = [];\r\n\r\n      // 不是组合头部\r\n      if (!parent) {\r\n        array.push(column);\r\n\r\n        newColumns = array;\r\n      }\r\n      // 组合头部\r\n      else {\r\n        if (parent && !parent.children) {\r\n          parent.children = [];\r\n        }\r\n\r\n        // 设置子列\r\n        parent.children && parent.children.push(column);\r\n\r\n        // 设置为新的列\r\n        newColumns = replaceColumn(array, parent);\r\n      }\r\n\r\n      // 排序列\r\n      sortColumn(newColumns);\r\n\r\n      // 记录当前列\r\n      states._columns.value = newColumns;\r\n\r\n      // 多选框\r\n      if (column.type === 'selection') {\r\n        // 仅对 type=selection 的列有效，类型为 Function，\r\n        // Function 的返回值用来决定这一行的 CheckBox 是否可以勾选\r\n        states.selectable.value = column.selectable;\r\n\r\n        // 保存数据更新前选中的值\r\n        states.reserveSelection.value = column.reserveSelection;\r\n      }\r\n\r\n      // 用于动态插入列\r\n      if (vm.$ready) {\r\n        // 更新列数据\r\n        vm.store.updateColumns();\r\n        // 更新 DOM\r\n        vm.store.scheduleLayout();\r\n      }\r\n    },\r\n    // 删除行\r\n    removeColumn(\r\n      states: states,\r\n      column: TableColumnCtx,\r\n      parent: TableColumnCtx\r\n    ) {\r\n      const array = unref(states._columns) || [];\r\n\r\n      // 有父节点\r\n      if (parent && parent.children) {\r\n        const findIndex = parent.children.findIndex(\r\n          (item) => item.id === column.id\r\n        );\r\n\r\n        // 移除当前行\r\n        parent.children.splice(findIndex, 1);\r\n\r\n        // 清空列表\r\n        if (parent.children.length === 0) {\r\n          delete parent.children;\r\n        }\r\n\r\n        states._columns.value = replaceColumn(array, parent);\r\n      }\r\n      // 没有父节点\r\n      else {\r\n        const index = array.indexOf(column);\r\n\r\n        if (index > -1) {\r\n          array.splice(index, 1);\r\n\r\n          states._columns.value = array;\r\n        }\r\n      }\r\n\r\n      // 用于动态插入列\r\n      if (vm.$ready) {\r\n        // 更新列数据\r\n        vm.store.updateColumns();\r\n        // 更新 DOM\r\n        vm.store.scheduleLayout();\r\n      }\r\n    },\r\n    // 单选选择当前行\r\n    setCurrentRow(_states, row) {\r\n      vm.store.updateCurrentRow(row);\r\n    },\r\n    // 多选\r\n    rowSelectedChanged(_states, row) {\r\n      vm.store.toggleRowSelection(row);\r\n      vm.store.updateAllSelected();\r\n    },\r\n    // 改变排序\r\n    changeSortCondition(states, options: Sort) {\r\n      const { sortingColumn, sortProp, sortOrder } = states;\r\n\r\n      // 没有排序\r\n      if (unref(sortOrder) === null) {\r\n        // 初始化需要排序的列\r\n        states.sortingColumn.value = null;\r\n\r\n        // 排序的key 对应列内容的字段名\r\n        states.sortProp.value = null;\r\n      }\r\n\r\n      // 根据 filters 与 sort 去过滤 data\r\n      vm.store.handleExecQueryData(false);\r\n\r\n      // 没有选项不是初始化\r\n      if (!options || !(options.silent || options.init)) {\r\n        vm.emit('on-sort-change', {\r\n          column: unref(sortingColumn),\r\n          prop: unref(sortProp),\r\n          order: unref(sortOrder),\r\n        });\r\n      }\r\n\r\n      // 更新y轴滚动高度\r\n      vm.store.updateTableScrollY();\r\n    },\r\n    // 初始化排序\r\n    sort(states: states, options: Sort) {\r\n      // 排序的key 对应列内容的字段名 | 排序顺序 ｜ 是否初始化\r\n      const { prop, order, init } = options;\r\n\r\n      // 排序的key 对应列内容的字段名\r\n      if (prop) {\r\n        // 找到需要排序的列\r\n        const column = unref(states.columns).find(\r\n          (column) => column.property === prop\r\n        );\r\n\r\n        // 有需要排序的列\r\n        if (column) {\r\n          // 排序顺序\r\n          column.order = order;\r\n\r\n          vm.store.updateSort(column, prop, order);\r\n          vm.store.commit('changeSortCondition', { init });\r\n        }\r\n      }\r\n    },\r\n    // 过滤改变\r\n    filterChange(states: states, options: Filter) {\r\n      const { column, values, silent } = options;\r\n\r\n      const newFilters = vm.store.updateFilters(column, values);\r\n\r\n      //  根据 filters 与 sort 去过滤 data\r\n      vm.store.handleExecQueryData();\r\n\r\n      // 是否不执行发送事件\r\n      if (!silent) {\r\n        vm.emit('on-filter-change', newFilters);\r\n      }\r\n\r\n      // 更新y轴滚动高度\r\n      vm.store.updateTableScrollY();\r\n    },\r\n  };\r\n\r\n  // 调用数据\r\n  const commit = (name: keyof typeof mutations, ...args) => {\r\n    const mutations = vm.store.mutations;\r\n\r\n    // 判断 mutations 是否存在当前方法\r\n    if (mutations[name]) {\r\n      mutations[name].apply(vm, [vm.store.states].concat(args));\r\n    }\r\n    // 提示错误\r\n    else {\r\n      throwError('ivue-table', `Action not found: ${String(name)}`);\r\n    }\r\n  };\r\n\r\n  // 更新y轴滚动高度\r\n  const updateTableScrollY = () => {\r\n    nextTick(() => {\r\n      vm.layout.updateScrollY.apply(vm.layout);\r\n    });\r\n  };\r\n\r\n  return {\r\n    ...watcher,\r\n    mutations,\r\n    commit,\r\n    updateTableScrollY,\r\n  };\r\n}\r\n\r\nexport default useStore;\r\n\r\nclass HelperStore {\r\n  Return = useStore();\r\n}\r\n\r\ntype Store = HelperStore['Return'];\r\ntype StoreFilter = Record<string, string[]>;\r\n\r\nexport type { Store, WatcherPropsData, StoreFilter };\r\n"],"names":["column","mutations"],"mappings":";;;;AAiBA,SAAS,WAAW,KAAyB,EAAA;AAC3C,EAAM,KAAA,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AAlB1B,IAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAoBI,IAAK,IAAA,CAAA,YAAA,GAAA,CAAe,UAAK,cAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AAGpB,IAAI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,QAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,MAAQ,EAAA;AACzB,MAAA,UAAA,CAAW,KAAK,QAAQ,CAAA,CAAA;AAAA,KAC1B;AAAA,GACD,CAAA,CAAA;AAGD,EAAA,KAAA,CAAM,KAAK,CAAC,GAAA,EAAK,QAAQ,GAAI,CAAA,YAAA,GAAe,IAAI,YAAY,CAAA,CAAA;AAC9D,CAAA;AAGA,SAAS,aAAA,CAAc,OAAyB,MAAwB,EAAA;AACtE,EAAO,OAAA,KAAA,CAAM,GAAI,CAAA,CAAC,IAAS,KAAA;AAlC7B,IAAA,IAAA,EAAA,CAAA;AAoCI,IAAI,IAAA,IAAA,CAAK,EAAO,KAAA,MAAA,CAAO,EAAI,EAAA;AACzB,MAAO,OAAA,MAAA,CAAA;AAAA,KAGA,MAAA,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,QAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,MAAQ,EAAA;AAC9B,MAAA,IAAA,CAAK,QAAW,GAAA,aAAA,CAAc,IAAK,CAAA,QAAA,EAAU,MAAM,CAAA,CAAA;AAAA,KACrD;AAEA,IAAO,OAAA,IAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACH,CAAA;AAEA,SAAS,QAAW,GAAA;AAElB,EAAA,MAAM,KAAK,kBAAmB,EAAA,CAAA;AAG9B,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAO3B,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,OAAA,CAAQ,QAAQ,IAAM,EAAA;AAEpB,MAAA,MAAM,mBAAsB,GAAA,KAAA,CAAM,MAAO,CAAA,KAAK,CAAM,KAAA,IAAA,CAAA;AAEpD,MAAA,MAAA,CAAO,KAAK,KAAQ,GAAA,IAAA,CAAA;AACpB,MAAA,MAAA,CAAO,MAAM,KAAQ,GAAA,IAAA,CAAA;AAGrB,MAAA,EAAA,CAAG,MAAM,mBAAoB,EAAA,CAAA;AAI7B,MAAA,EAAA,CAAG,MAAM,oBAAqB,EAAA,CAAA;AAG9B,MAAA,EAAA,CAAG,MAAM,gBAAiB,EAAA,CAAA;AAG1B,MAAA,EAAA,CAAG,MAAM,cAAe,CAAA,EAAA,CAAG,KAAM,CAAA,MAAA,CAAO,iBAAiB,KAAK,CAAA,CAAA;AAG9D,MAAI,IAAA,KAAA,CAAM,MAAO,CAAA,gBAAgB,CAAG,EAAA;AAElC,QAAA,EAAA,CAAG,MAAM,YAAa,EAAA,CAAA;AAEtB,QAAA,EAAA,CAAG,MAAM,uBAAwB,EAAA,CAAA;AAAA,OAC5B,MAAA;AAEL,QAAA,IAAI,mBAAqB,EAAA;AACvB,UAAA,EAAA,CAAG,MAAM,cAAe,EAAA,CAAA;AAAA,SAGrB,MAAA;AACH,UAAA,EAAA,CAAG,MAAM,uBAAwB,EAAA,CAAA;AAAA,SACnC;AAAA,OACF;AAGA,MAAA,EAAA,CAAG,MAAM,iBAAkB,EAAA,CAAA;AAG3B,MAAA,IAAI,GAAG,MAAQ,EAAA;AAEb,QAAA,EAAA,CAAG,MAAM,cAAe,EAAA,CAAA;AAAA,OAC1B;AAAA,KACF;AAAA,IAEA,kBAAqB,GAAA;AACnB,MAAA,EAAA,CAAG,MAAM,kBAAmB,EAAA,CAAA;AAAA,KAC9B;AAAA,IAEA,WAAA,CAAY,QAAgB,GAAqB,EAAA;AAC/C,MAAA,MAAA,CAAO,SAAS,KAAQ,GAAA,GAAA,CAAA;AAAA,KAC1B;AAAA,IAEA,YAAA,CACE,MACA,EAAA,MAAA,EACA,MACA,EAAA;AACA,MAAM,MAAA,KAAA,GAAQ,KAAM,CAAA,MAAA,CAAO,QAAQ,CAAA,CAAA;AAEnC,MAAA,IAAI,aAA+B,EAAC,CAAA;AAGpC,MAAA,IAAI,CAAC,MAAQ,EAAA;AACX,QAAA,KAAA,CAAM,KAAK,MAAM,CAAA,CAAA;AAEjB,QAAa,UAAA,GAAA,KAAA,CAAA;AAAA,OAGV,MAAA;AACH,QAAI,IAAA,MAAA,IAAU,CAAC,MAAA,CAAO,QAAU,EAAA;AAC9B,UAAA,MAAA,CAAO,WAAW,EAAC,CAAA;AAAA,SACrB;AAGA,QAAA,MAAA,CAAO,QAAY,IAAA,MAAA,CAAO,QAAS,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAG9C,QAAa,UAAA,GAAA,aAAA,CAAc,OAAO,MAAM,CAAA,CAAA;AAAA,OAC1C;AAGA,MAAA,UAAA,CAAW,UAAU,CAAA,CAAA;AAGrB,MAAA,MAAA,CAAO,SAAS,KAAQ,GAAA,UAAA,CAAA;AAGxB,MAAI,IAAA,MAAA,CAAO,SAAS,WAAa,EAAA;AAG/B,QAAO,MAAA,CAAA,UAAA,CAAW,QAAQ,MAAO,CAAA,UAAA,CAAA;AAGjC,QAAO,MAAA,CAAA,gBAAA,CAAiB,QAAQ,MAAO,CAAA,gBAAA,CAAA;AAAA,OACzC;AAGA,MAAA,IAAI,GAAG,MAAQ,EAAA;AAEb,QAAA,EAAA,CAAG,MAAM,aAAc,EAAA,CAAA;AAEvB,QAAA,EAAA,CAAG,MAAM,cAAe,EAAA,CAAA;AAAA,OAC1B;AAAA,KACF;AAAA,IAEA,YAAA,CACE,MACA,EAAA,MAAA,EACA,MACA,EAAA;AACA,MAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,MAAO,CAAA,QAAQ,KAAK,EAAC,CAAA;AAGzC,MAAI,IAAA,MAAA,IAAU,OAAO,QAAU,EAAA;AAC7B,QAAM,MAAA,SAAA,GAAY,OAAO,QAAS,CAAA,SAAA;AAAA,UAChC,CAAC,IAAA,KAAS,IAAK,CAAA,EAAA,KAAO,MAAO,CAAA,EAAA;AAAA,SAC/B,CAAA;AAGA,QAAO,MAAA,CAAA,QAAA,CAAS,MAAO,CAAA,SAAA,EAAW,CAAC,CAAA,CAAA;AAGnC,QAAI,IAAA,MAAA,CAAO,QAAS,CAAA,MAAA,KAAW,CAAG,EAAA;AAChC,UAAA,OAAO,MAAO,CAAA,QAAA,CAAA;AAAA,SAChB;AAEA,QAAA,MAAA,CAAO,QAAS,CAAA,KAAA,GAAQ,aAAc,CAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,OAGhD,MAAA;AACH,QAAM,MAAA,KAAA,GAAQ,KAAM,CAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AAElC,QAAA,IAAI,QAAQ,CAAI,CAAA,EAAA;AACd,UAAM,KAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA,CAAA;AAErB,UAAA,MAAA,CAAO,SAAS,KAAQ,GAAA,KAAA,CAAA;AAAA,SAC1B;AAAA,OACF;AAGA,MAAA,IAAI,GAAG,MAAQ,EAAA;AAEb,QAAA,EAAA,CAAG,MAAM,aAAc,EAAA,CAAA;AAEvB,QAAA,EAAA,CAAG,MAAM,cAAe,EAAA,CAAA;AAAA,OAC1B;AAAA,KACF;AAAA,IAEA,aAAA,CAAc,SAAS,GAAK,EAAA;AAC1B,MAAG,EAAA,CAAA,KAAA,CAAM,iBAAiB,GAAG,CAAA,CAAA;AAAA,KAC/B;AAAA,IAEA,kBAAA,CAAmB,SAAS,GAAK,EAAA;AAC/B,MAAG,EAAA,CAAA,KAAA,CAAM,mBAAmB,GAAG,CAAA,CAAA;AAC/B,MAAA,EAAA,CAAG,MAAM,iBAAkB,EAAA,CAAA;AAAA,KAC7B;AAAA,IAEA,mBAAA,CAAoB,QAAQ,OAAe,EAAA;AACzC,MAAA,MAAM,EAAE,aAAA,EAAe,QAAU,EAAA,SAAA,EAAc,GAAA,MAAA,CAAA;AAG/C,MAAI,IAAA,KAAA,CAAM,SAAS,CAAA,KAAM,IAAM,EAAA;AAE7B,QAAA,MAAA,CAAO,cAAc,KAAQ,GAAA,IAAA,CAAA;AAG7B,QAAA,MAAA,CAAO,SAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,OAC1B;AAGA,MAAG,EAAA,CAAA,KAAA,CAAM,oBAAoB,KAAK,CAAA,CAAA;AAGlC,MAAA,IAAI,CAAC,OAAW,IAAA,EAAE,OAAQ,CAAA,MAAA,IAAU,QAAQ,IAAO,CAAA,EAAA;AACjD,QAAA,EAAA,CAAG,KAAK,gBAAkB,EAAA;AAAA,UACxB,MAAA,EAAQ,MAAM,aAAa,CAAA;AAAA,UAC3B,IAAA,EAAM,MAAM,QAAQ,CAAA;AAAA,UACpB,KAAA,EAAO,MAAM,SAAS,CAAA;AAAA,SACvB,CAAA,CAAA;AAAA,OACH;AAGA,MAAA,EAAA,CAAG,MAAM,kBAAmB,EAAA,CAAA;AAAA,KAC9B;AAAA,IAEA,IAAA,CAAK,QAAgB,OAAe,EAAA;AAElC,MAAA,MAAM,EAAE,IAAA,EAAM,KAAO,EAAA,IAAA,EAAS,GAAA,OAAA,CAAA;AAG9B,MAAA,IAAI,IAAM,EAAA;AAER,QAAA,MAAM,MAAS,GAAA,KAAA,CAAM,MAAO,CAAA,OAAO,CAAE,CAAA,IAAA;AAAA,UACnC,CAACA,OAAWA,KAAAA,OAAAA,CAAO,QAAa,KAAA,IAAA;AAAA,SAClC,CAAA;AAGA,QAAA,IAAI,MAAQ,EAAA;AAEV,UAAA,MAAA,CAAO,KAAQ,GAAA,KAAA,CAAA;AAEf,UAAA,EAAA,CAAG,KAAM,CAAA,UAAA,CAAW,MAAQ,EAAA,IAAA,EAAM,KAAK,CAAA,CAAA;AACvC,UAAA,EAAA,CAAG,KAAM,CAAA,MAAA,CAAO,qBAAuB,EAAA,EAAE,MAAM,CAAA,CAAA;AAAA,SACjD;AAAA,OACF;AAAA,KACF;AAAA,IAEA,YAAA,CAAa,QAAgB,OAAiB,EAAA;AAC5C,MAAA,MAAM,EAAE,MAAA,EAAQ,MAAQ,EAAA,MAAA,EAAW,GAAA,OAAA,CAAA;AAEnC,MAAA,MAAM,UAAa,GAAA,EAAA,CAAG,KAAM,CAAA,aAAA,CAAc,QAAQ,MAAM,CAAA,CAAA;AAGxD,MAAA,EAAA,CAAG,MAAM,mBAAoB,EAAA,CAAA;AAG7B,MAAA,IAAI,CAAC,MAAQ,EAAA;AACX,QAAG,EAAA,CAAA,IAAA,CAAK,oBAAoB,UAAU,CAAA,CAAA;AAAA,OACxC;AAGA,MAAA,EAAA,CAAG,MAAM,kBAAmB,EAAA,CAAA;AAAA,KAC9B;AAAA,GACF,CAAA;AAGA,EAAM,MAAA,MAAA,GAAS,CAAC,IAAA,EAAA,GAAiC,IAAS,KAAA;AACxD,IAAMC,MAAAA,UAAAA,GAAY,GAAG,KAAM,CAAA,SAAA,CAAA;AAG3B,IAAA,IAAIA,WAAU,IAAO,CAAA,EAAA;AACnB,MAAAA,UAAAA,CAAU,IAAM,CAAA,CAAA,KAAA,CAAM,EAAI,EAAA,CAAC,EAAG,CAAA,KAAA,CAAM,MAAM,CAAA,CAAE,MAAO,CAAA,IAAI,CAAC,CAAA,CAAA;AAAA,KAGrD,MAAA;AACH,MAAA,UAAA,CAAW,YAAc,EAAA,CAAA,kBAAA,EAAqB,MAAO,CAAA,IAAI,CAAG,CAAA,CAAA,CAAA,CAAA;AAAA,KAC9D;AAAA,GACF,CAAA;AAGA,EAAA,MAAM,qBAAqB,MAAM;AAC/B,IAAA,QAAA,CAAS,MAAM;AACb,MAAA,EAAA,CAAG,MAAO,CAAA,aAAA,CAAc,KAAM,CAAA,EAAA,CAAG,MAAM,CAAA,CAAA;AAAA,KACxC,CAAA,CAAA;AAAA,GACH,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,GAAG,OAAA;AAAA,IACH,SAAA;AAAA,IACA,MAAA;AAAA,IACA,kBAAA;AAAA,GACF,CAAA;AACF,CAAA;AAIA,MAAM,WAAY,CAAA;AAAA,EAAlB,WAAA,GAAA;AACE,IAAA,IAAA,CAAA,MAAA,GAAS,QAAS,EAAA,CAAA;AAAA,GAAA;AACpB;;;;"}