{"version":3,"file":"index.mjs","sources":["../../../../../../../packages/components/table/src/store/index.ts"],"sourcesContent":["// @ts-nocheck\r\nimport { getCurrentInstance, nextTick, unref } from 'vue'\r\nimport { useNamespace } from '@sgui-plus/hooks'\r\nimport useWatcher from './watcher'\r\n\r\nimport type { Ref } from 'vue'\r\nimport type { TableColumnCtx } from '../table-column/defaults'\r\nimport type { Filter, Sort, Table } from '../table/defaults'\r\n\r\ninterface WatcherPropsData<T> {\r\n  data: Ref<T[]>\r\n  rowKey: Ref<string>\r\n}\r\n\r\nfunction replaceColumn<T>(\r\n  array: TableColumnCtx<T>[],\r\n  column: TableColumnCtx<T>\r\n) {\r\n  return array.map((item) => {\r\n    if (item.id === column.id) {\r\n      return column\r\n    } else if (item.children?.length) {\r\n      item.children = replaceColumn(item.children, column)\r\n    }\r\n    return item\r\n  })\r\n}\r\n\r\nfunction sortColumn<T>(array: TableColumnCtx<T>[]) {\r\n  array.forEach((item) => {\r\n    item.no = item.getColumnIndex?.()\r\n    if (item.children?.length) {\r\n      sortColumn(item.children)\r\n    }\r\n  })\r\n  array.sort((cur, pre) => cur.no - pre.no)\r\n}\r\n\r\nfunction useStore<T>() {\r\n  const instance = getCurrentInstance() as Table<T>\r\n  const watcher = useWatcher<T>()\r\n  const ns = useNamespace('table')\r\n  type StoreStates = typeof watcher.states\r\n  const mutations = {\r\n    setData(states: StoreStates, data: T[]) {\r\n      const dataInstanceChanged = unref(states._data) !== data\r\n      states.data.value = data\r\n      states._data.value = data\r\n      instance.store.execQuery()\r\n      // 数据变化，更新部分数据。\r\n      // 没有使用 computed，而是手动更新部分数据 https://github.com/vuejs/vue/issues/6660#issuecomment-331417140\r\n      instance.store.updateCurrentRowData()\r\n      instance.store.updateExpandRows()\r\n      instance.store.updateTreeData(\r\n        instance.store.states.defaultExpandAll.value\r\n      )\r\n      if (unref(states.reserveSelection)) {\r\n        instance.store.assertRowKey()\r\n        instance.store.updateSelectionByRowKey()\r\n      } else {\r\n        if (dataInstanceChanged) {\r\n          instance.store.clearSelection()\r\n        } else {\r\n          instance.store.cleanSelection()\r\n        }\r\n      }\r\n      instance.store.updateAllSelected()\r\n      if (instance.$ready) {\r\n        instance.store.scheduleLayout()\r\n      }\r\n    },\r\n\r\n    insertColumn(\r\n      states: StoreStates,\r\n      column: TableColumnCtx<T>,\r\n      parent: TableColumnCtx<T>,\r\n      updateColumnOrder: () => void\r\n    ) {\r\n      const array = unref(states._columns)\r\n      let newColumns = []\r\n      if (!parent) {\r\n        array.push(column)\r\n        newColumns = array\r\n      } else {\r\n        if (parent && !parent.children) {\r\n          parent.children = []\r\n        }\r\n        parent.children.push(column)\r\n        newColumns = replaceColumn(array, parent)\r\n      }\r\n      sortColumn(newColumns)\r\n      states._columns.value = newColumns\r\n      states.updateOrderFns.push(updateColumnOrder)\r\n      if (column.type === 'selection') {\r\n        states.selectable.value = column.selectable\r\n        states.reserveSelection.value = column.reserveSelection\r\n      }\r\n      if (instance.$ready) {\r\n        instance.store.updateColumns() // hack for dynamics insert column\r\n        instance.store.scheduleLayout()\r\n      }\r\n    },\r\n\r\n    updateColumnOrder(states: StoreStates, column: TableColumnCtx<T>) {\r\n      const newColumnIndex = column.getColumnIndex?.()\r\n      if (newColumnIndex === column.no) return\r\n\r\n      sortColumn(states._columns.value)\r\n\r\n      if (instance.$ready) {\r\n        instance.store.updateColumns()\r\n      }\r\n    },\r\n\r\n    removeColumn(\r\n      states: StoreStates,\r\n      column: TableColumnCtx<T>,\r\n      parent: TableColumnCtx<T>,\r\n      updateColumnOrder: () => void\r\n    ) {\r\n      const array = unref(states._columns) || []\r\n      if (parent) {\r\n        parent.children.splice(\r\n          parent.children.findIndex((item) => item.id === column.id),\r\n          1\r\n        )\r\n        // fix #10699, delete parent.children immediately will trigger again\r\n        nextTick(() => {\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      } else {\r\n        const index = array.indexOf(column)\r\n        if (index > -1) {\r\n          array.splice(index, 1)\r\n          states._columns.value = array\r\n        }\r\n      }\r\n\r\n      const updateFnIndex = states.updateOrderFns.indexOf(updateColumnOrder)\r\n      updateFnIndex > -1 && states.updateOrderFns.splice(updateFnIndex, 1)\r\n\r\n      if (instance.$ready) {\r\n        instance.store.updateColumns() // hack for dynamics remove column\r\n        instance.store.scheduleLayout()\r\n      }\r\n    },\r\n\r\n    sort(states: StoreStates, options: Sort) {\r\n      const { prop, order, init } = options\r\n      if (prop) {\r\n        const column = unref(states.columns).find(\r\n          (column) => column.property === prop\r\n        )\r\n        if (column) {\r\n          column.order = order\r\n          instance.store.updateSort(column, prop, order)\r\n          instance.store.commit('changeSortCondition', { init })\r\n        }\r\n      }\r\n    },\r\n\r\n    changeSortCondition(states: StoreStates, options: Sort) {\r\n      // 修复 pr https://github.com/ElemeFE/element/pull/15012 导致的 bug\r\n      // https://github.com/element-plus/element-plus/pull/4640\r\n      const { sortingColumn, sortProp, sortOrder } = states\r\n      const columnValue = unref(sortingColumn),\r\n        propValue = unref(sortProp),\r\n        orderValue = unref(sortOrder)\r\n      if (orderValue === null) {\r\n        states.sortingColumn.value = null\r\n        states.sortProp.value = null\r\n      }\r\n      const ignore = { filter: true }\r\n      instance.store.execQuery(ignore)\r\n\r\n      if (!options || !(options.silent || options.init)) {\r\n        instance.emit('sort-change', {\r\n          column: columnValue,\r\n          prop: propValue,\r\n          order: orderValue,\r\n        })\r\n      }\r\n\r\n      instance.store.updateTableScrollY()\r\n    },\r\n\r\n    filterChange(_states: StoreStates, options: Filter<T>) {\r\n      const { column, values, silent } = options\r\n      const newFilters = instance.store.updateFilters(column, values)\r\n      instance.store.execQuery()\r\n\r\n      if (!silent) {\r\n        instance.emit('filter-change', newFilters)\r\n      }\r\n      instance.store.updateTableScrollY()\r\n    },\r\n\r\n    toggleAllSelection() {\r\n      instance.store.toggleAllSelection()\r\n    },\r\n\r\n    rowSelectedChanged(_states, row: T) {\r\n      instance.store.toggleRowSelection(row)\r\n      instance.store.updateAllSelected()\r\n    },\r\n\r\n    setHoverRow(states: StoreStates, row: T) {\r\n      states.hoverRow.value = row\r\n    },\r\n\r\n    setCurrentRow(_states, row: T) {\r\n      instance.store.updateCurrentRow(row)\r\n    },\r\n\r\n    setRowCheck(_states, row: T) {\r\n      instance.store.toggleRowSelection(row)\r\n      instance.store.updateAllSelected()\r\n    }\r\n  }\r\n  const commit = function (name: keyof typeof mutations, ...args) {\r\n    const mutations = instance.store.mutations\r\n    if (mutations[name]) {\r\n      mutations[name].apply(instance, [instance.store.states].concat(args))\r\n    } else {\r\n      throw new Error(`Action not found: ${name}`)\r\n    }\r\n  }\r\n  const updateTableScrollY = function () {\r\n    nextTick(() => instance.layout.updateScrollY.apply(instance.layout))\r\n  }\r\n  return {\r\n    ns,\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<T> {\r\n  Return = useStore<T>()\r\n}\r\n\r\ntype StoreFilter = Record<string, string[]>\r\ntype Store<T> = HelperStore<T>['Return']\r\nexport type { WatcherPropsData, Store, StoreFilter }\r\n"],"names":[],"mappings":";;;;;AAGA,SAAS,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAC7B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;AAC/B,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;AAClE,MAAM,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL,CAAC;AACD,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC1B,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;AAC3D,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AACD,SAAS,QAAQ,GAAG;AACpB,EAAE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;AACxC,EAAE,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAC/B,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,EAAE,MAAM,SAAS,GAAG;AACpB,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;AAC1B,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AAC/D,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AAChC,MAAM,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;AACjC,MAAM,QAAQ,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;AAC5C,MAAM,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACxC,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAClF,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;AAC1C,QAAQ,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;AACtC,QAAQ,QAAQ,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,IAAI,mBAAmB,EAAE;AACjC,UAAU,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1C,SAAS,MAAM;AACf,UAAU,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1C,SAAS;AACT,OAAO;AACP,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AACzC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC3B,QAAQ,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AACxC,OAAO;AACP,KAAK;AACL,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE;AAC5D,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3C,MAAM,IAAI,UAAU,GAAG,EAAE,CAAC;AAC1B,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,QAAQ,UAAU,GAAG,KAAK,CAAC;AAC3B,OAAO,MAAM;AACb,QAAQ,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACxC,UAAU,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/B,SAAS;AACT,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,QAAQ,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAClD,OAAO;AACP,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;AAC7B,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;AACzC,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACpD,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;AACvC,QAAQ,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AACpD,QAAQ,MAAM,CAAC,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChE,OAAO;AACP,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC3B,QAAQ,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AACvC,QAAQ,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AACxC,OAAO;AACP,KAAK;AACL,IAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE;AACtC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,cAAc,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7F,MAAM,IAAI,cAAc,KAAK,MAAM,CAAC,EAAE;AACtC,QAAQ,OAAO;AACf,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC3B,QAAQ,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AACvC,OAAO;AACP,KAAK;AACL,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE;AAC5D,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjD,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9F,QAAQ,QAAQ,CAAC,MAAM;AACvB,UAAU,IAAI,EAAE,CAAC;AACjB,UAAU,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE;AAC3E,YAAY,OAAO,MAAM,CAAC,QAAQ,CAAC;AACnC,WAAW;AACX,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7D,OAAO,MAAM;AACb,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACxB,UAAU,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjC,UAAU,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AACxC,SAAS;AACT,OAAO;AACP,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC7E,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC3E,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC3B,QAAQ,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AACvC,QAAQ,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AACxC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AAC1B,MAAM,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AAC5C,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;AAC1F,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,UAAU,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACzD,UAAU,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AACjE,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE;AACzC,MAAM,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAC3G,MAAM,IAAI,UAAU,KAAK,IAAI,EAAE;AAC/B,QAAQ,MAAM,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1C,QAAQ,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;AACrC,OAAO;AACP,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACtC,MAAM,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACvC,MAAM,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACzD,QAAQ,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;AACrC,UAAU,MAAM,EAAE,WAAW;AAC7B,UAAU,IAAI,EAAE,SAAS;AACzB,UAAU,KAAK,EAAE,UAAU;AAC3B,SAAS,CAAC,CAAC;AACX,OAAO;AACP,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE;AACnC,MAAM,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;AACjD,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACtE,MAAM,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;AACjC,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AACnD,OAAO;AACP,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,kBAAkB,GAAG;AACzB,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE;AACrC,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC7C,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AACzC,KAAK;AACL,IAAI,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE;AAC7B,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;AAClC,KAAK;AACL,IAAI,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE;AAChC,MAAM,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;AAC9B,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC7C,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AACzC,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,MAAM,GAAG,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE;AACzC,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;AAChD,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AAC1B,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,KAAK,MAAM;AACX,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,kBAAkB,GAAG,WAAW;AACxC,IAAI,QAAQ,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzE,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,EAAE;AACN,IAAI,GAAG,OAAO;AACd,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,kBAAkB;AACtB,GAAG,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,CAAC;AAClB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;AAC7B,GAAG;AACH;;;;"}