{"version":3,"file":"useFilter.mjs","sources":["../../../../components/table/hooks/useFilter.tsx"],"sourcesContent":["import { toRefs, ref, watch, computed, SetupContext, h } from 'vue';\nimport useClassName from './useClassName';\nimport TButton from '../../button';\nimport { TdPrimaryTableProps, PrimaryTableCol, TableRowData, FilterValue, TableFilterChangeContext } from '../type';\nimport { useConfig, useDefaultValue, useTNodeDefault } from '@tdesign/shared-hooks';\n\nimport TableFilterController from '../components/filter-controller';\n\nimport { isFunction } from 'lodash-es';\nimport { getColumnsResetValue } from '@tdesign/common-js/table/utils';\nimport { renderTitle } from './useTableHeader';\n\nfunction isFilterValueExist(value: any) {\n  const isArrayTrue = value instanceof Array && value.length;\n  const isObject = typeof value === 'object' && !(value instanceof Array);\n  const isObjectTrue = value !== null && isObject && Object.keys(value).length;\n  return isArrayTrue || isObjectTrue || !['null', '', 'undefined'].includes(String(value));\n}\n\n// 筛选条件不为空，才需要显示筛选结果行\nfunction filterEmptyData(data: FilterValue) {\n  const newFilterValue: FilterValue = {};\n  Object.keys(data).forEach((key) => {\n    const item = data[key];\n    if (isFilterValueExist(item)) {\n      newFilterValue[key] = item;\n    }\n  });\n  return newFilterValue;\n}\n\nexport default function useFilter(props: TdPrimaryTableProps, context: SetupContext) {\n  const primaryTableRef = ref(null);\n  const { t, globalConfig } = useConfig('table', props.locale);\n  const renderTNode = useTNodeDefault();\n  const { filterValue, columns } = toRefs(props);\n  const { tableFilterClasses, isFocusClass } = useClassName();\n  const isTableOverflowHidden = ref<boolean>();\n\n  // unControl and control\n  const [tFilterValue, setTFilterValue] = useDefaultValue(\n    filterValue,\n    props.defaultFilterValue,\n    props.onFilterChange,\n    'filterValue',\n  );\n\n  // 过滤内部值\n  const innerFilterValue = ref<FilterValue>(tFilterValue.value);\n\n  const hasEmptyCondition = computed(() => {\n    const filterEmpty = filterEmptyData(tFilterValue.value || {});\n    return !tFilterValue.value || !Object.keys(filterEmpty).length;\n  });\n\n  watch([tFilterValue], ([val]) => {\n    innerFilterValue.value = val;\n  });\n\n  function renderFirstFilterRow() {\n    if (hasEmptyCondition.value) return null;\n    const defaultNode = (\n      <div class={tableFilterClasses.result}>\n        <span>\n          {/* 搜索 “{getFilterResultContent()}”， */}\n          {/* 找到 {props.pagination?.total || props.data?.length} 条结果 */}\n          {t(globalConfig.value.searchResultText, {\n            result: getFilterResultContent(),\n            count: props.pagination?.total || props.data?.length,\n          })}\n        </span>\n        <TButton theme=\"primary\" variant=\"text\" onClick={onResetAll}>\n          {globalConfig.value.clearFilterResultButtonText}\n        </TButton>\n      </div>\n    );\n    const filterContent = renderTNode('filterRow');\n    if ((props.filterRow && !filterContent) || props.filterRow === null) return null;\n    return <div class={tableFilterClasses.inner}>{filterContent || defaultNode}</div>;\n  }\n\n  // 获取搜索条件内容，存在 options 需要获取其 label 显示\n  function getFilterResultContent(): string {\n    const arr: string[] = [];\n    const columns: Array<PrimaryTableCol> = [];\n    getAllColumns(props.columns, columns);\n    columns\n      .filter((col) => col.filter)\n      .forEach((col, index) => {\n        let value = tFilterValue.value[col.colKey];\n        if (col.filter.list && !['null'].includes(String(value))) {\n          const formattedValue = value instanceof Array ? value : [value];\n          const label: string[] = [];\n          col.filter.list.forEach((option) => {\n            if (formattedValue.includes(option.value)) {\n              label.push(option.label);\n            }\n          });\n          value = label.join();\n        }\n        if (isFilterValueExist(value)) {\n          const label = isFunction(col.filter?.label) ? col.filter.label(h) : col.filter?.label;\n          const title = renderTitle(context.slots, col, index);\n          arr.push(`${label || title}：${value}`);\n        }\n      });\n    return arr.join('；');\n  }\n  //递归拿到所有的 column\n  function getAllColumns(col: Array<PrimaryTableCol>, columns: Array<PrimaryTableCol>) {\n    col.forEach((column) => {\n      if (column.children) {\n        getAllColumns(column.children, columns);\n      }\n      columns.push(column);\n    });\n  }\n\n  function onInnerFilterChange(val: any, column: PrimaryTableCol) {\n    const filterValue = {\n      ...innerFilterValue.value,\n      [column.colKey]: val,\n    };\n    innerFilterValue.value = filterValue;\n    if (!column.filter.showConfirmAndReset) {\n      emitFilterChange(filterValue, 'filter-change', column);\n    }\n  }\n\n  function emitFilterChange(\n    filterValue: FilterValue,\n    trigger: TableFilterChangeContext<TableRowData>['trigger'],\n    column?: PrimaryTableCol,\n  ) {\n    setTFilterValue(filterValue, { col: column, trigger });\n    props.onChange?.({ filter: filterValue }, { trigger: 'filter' });\n  }\n\n  function onReset(column: PrimaryTableCol) {\n    const filterValue: FilterValue = {\n      ...tFilterValue.value,\n      [column.colKey]:\n        column.filter.resetValue ??\n        {\n          single: '',\n          multiple: [],\n          input: '',\n        }[column.filter.type] ??\n        '',\n    };\n    emitFilterChange(filterValue, 'reset', column);\n  }\n\n  function onResetAll() {\n    const resetValue = getColumnsResetValue(columns.value);\n    emitFilterChange(resetValue, 'clear', undefined);\n  }\n\n  function onConfirm(column: PrimaryTableCol) {\n    emitFilterChange(innerFilterValue.value, 'confirm', column);\n  }\n\n  // 图标：内置图标，组件自定义图标，全局配置图标\n  function renderFilterIcon({ col, colIndex }: { col: PrimaryTableCol<TableRowData>; colIndex: number }) {\n    return (\n      <TableFilterController\n        v-slots={{ filterIcon: context.slots.filterIcon }}\n        column={col}\n        colIndex={colIndex}\n        filterIcon={props.filterIcon}\n        tFilterValue={tFilterValue.value}\n        innerFilterValue={innerFilterValue.value}\n        tableFilterClasses={tableFilterClasses}\n        isFocusClass={isFocusClass}\n        popupProps={col.filter.popupProps}\n        attach={props.attach}\n        locale={props.locale}\n        onInnerFilterChange={onInnerFilterChange}\n        onReset={onReset}\n        onConfirm={onConfirm}\n        primaryTableElement={primaryTableRef.value?.$el}\n        onVisibleChange={onPopupVisibleChange}\n      ></TableFilterController>\n    );\n  }\n\n  function setFilterPrimaryTableRef(primaryTableElement: any) {\n    primaryTableRef.value = primaryTableElement;\n  }\n\n  function onPopupVisibleChange(visible: boolean) {\n    if (visible && !isTableOverflowHidden.value) {\n      isTableOverflowHidden.value = !visible;\n    }\n  }\n\n  return {\n    hasEmptyCondition,\n    isTableOverflowHidden,\n    renderFilterIcon,\n    renderFirstFilterRow,\n    setFilterPrimaryTableRef,\n  };\n}\n"],"names":["isFilterValueExist","value","isArrayTrue","Array","length","isObject","_typeof","isObjectTrue","Object","keys","includes","String","filterEmptyData","data","newFilterValue","forEach","key","item","useFilter","props","context","primaryTableRef","ref","_useConfig","useConfig","locale","t","globalConfig","renderTNode","useTNodeDefault","_toRefs","toRefs","filterValue","columns","_useClassName","useClassName","tableFilterClasses","isFocusClass","isTableOverflowHidden","_useDefaultValue","useDefaultValue","defaultFilterValue","onFilterChange","_useDefaultValue2","_slicedToArray","tFilterValue","setTFilterValue","innerFilterValue","hasEmptyCondition","computed","filterEmpty","watch","_ref","_ref2","val","renderFirstFilterRow","_props$pagination","_props$data","defaultNode","_createVNode","result","searchResultText","getFilterResultContent","count","pagination","total","onResetAll","_default","clearFilterResultButtonText","filterContent","filterRow","inner","arr","getAllColumns","filter","col","index","colKey","list","formattedValue","label","option","push","join","_col$filter","_col$filter2","isFunction","h","title","renderTitle","slots","concat","column","children","onInnerFilterChange","_objectSpread","_defineProperty","showConfirmAndReset","emitFilterChange","trigger","_props$onChange","onChange","call","onReset","_ref3","_column$filter$resetV","resetValue","single","multiple","input","type","getColumnsResetValue","onConfirm","renderFilterIcon","_ref4","_primaryTableRef$valu","colIndex","TableFilterController","filterIcon","popupProps","attach","$el","onPopupVisibleChange","setFilterPrimaryTableRef","primaryTableElement","visible"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,SAASA,mBAAmBC,KAAY,EAAA;EAChC,IAAAC,WAAA,GAAcD,KAAiB,YAAAE,KAAA,IAASF,KAAM,CAAAG,MAAA,CAAA;AACpD,EAAA,IAAMC,QAAW,GAAAC,OAAA,CAAOL,KAAU,CAAA,KAAA,QAAA,IAAY,EAAEA,KAAiB,YAAAE,KAAA,CAAA,CAAA;AACjE,EAAA,IAAMI,eAAeN,KAAU,KAAA,IAAA,IAAQI,YAAYG,MAAO,CAAAC,IAAA,CAAKR,KAAK,CAAE,CAAAG,MAAA,CAAA;AAC/D,EAAA,OAAAF,WAAA,IAAeK,YAAgB,IAAA,CAAC,CAAC,MAAA,EAAQ,EAAI,EAAA,WAAW,CAAE,CAAAG,QAAA,CAASC,MAAO,CAAAV,KAAK,CAAC,CAAA,CAAA;AACzF,CAAA;AAGA,SAASW,gBAAgBC,IAAmB,EAAA;EAC1C,IAAMC,iBAA8B,EAAC,CAAA;EACrCN,MAAA,CAAOC,IAAK,CAAAI,IAAI,CAAE,CAAAE,OAAA,CAAQ,UAACC,GAAQ,EAAA;AACjC,IAAA,IAAMC,OAAOJ,IAAK,CAAAG,GAAA,CAAA,CAAA;AACd,IAAA,IAAAhB,kBAAA,CAAmBiB,IAAI,CAAG,EAAA;AAC5BH,MAAAA,cAAA,CAAeE,GAAO,CAAA,GAAAC,IAAA,CAAA;AACxB,KAAA;AACF,GAAC,CAAA,CAAA;AACM,EAAA,OAAAH,cAAA,CAAA;AACT,CAAA;AAEwB,SAAAI,SAAAA,CAAUC,OAA4BC,OAAuB,EAAA;AAC7E,EAAA,IAAAC,eAAA,GAAkBC,IAAI,IAAI,CAAA,CAAA;EAChC,IAAAC,UAAA,GAA4BC,SAAU,CAAA,OAAA,EAASL,MAAMM,MAAM,CAAA;IAAnDC,CAAG,GAAAH,UAAA,CAAHG,CAAG;IAAAC,YAAA,GAAAJ,UAAA,CAAAI,YAAA,CAAA;AACX,EAAA,IAAMC,cAAcC,eAAgB,EAAA,CAAA;AACpC,EAAA,IAAAC,OAAA,GAAiCC,OAAOZ,KAAK,CAAA;IAArCa,WAAA,GAAAF,OAAA,CAAAE,WAAA;IAAaC,OAAQ,GAAAH,OAAA,CAARG,OAAQ,CAAA;AAC7B,EAAA,IAAAC,aAAA,GAA6CC,YAAa,EAAA;IAAlDC,kBAAA,GAAAF,aAAA,CAAAE,kBAAA;IAAoBC,YAAa,GAAAH,aAAA,CAAbG,YAAa,CAAA;AACzC,EAAA,IAAMC,wBAAwBhB,GAAa,EAAA,CAAA;AAGrC,EAAA,IAAAiB,gBAAA,GAAkCC,eAAA,CACtCR,WAAA,EACAb,KAAM,CAAAsB,kBAAA,EACNtB,KAAM,CAAAuB,cAAA,EACN,aACF,CAAA;IAAAC,iBAAA,GAAAC,cAAA,CAAAL,gBAAA,EAAA,CAAA,CAAA;AALOM,IAAAA,YAAc,GAAAF,iBAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,eAAe,GAAAH,iBAAA,CAAA,CAAA,CAAA,CAAA;AAQ9B,EAAA,IAAAI,gBAAA,GAAmBzB,GAAiB,CAAAuB,YAAA,CAAa5C,KAAK,CAAA,CAAA;AAEtD,EAAA,IAAA+C,iBAAA,GAAoBC,SAAS,YAAM;IACvC,IAAMC,WAAc,GAAAtC,eAAA,CAAgBiC,YAAa,CAAA5C,KAAA,IAAS,EAAE,CAAA,CAAA;AAC5D,IAAA,OAAO,CAAC4C,YAAa,CAAA5C,KAAA,IAAS,CAACO,MAAO,CAAAC,IAAA,CAAKyC,WAAW,CAAE,CAAA9C,MAAA,CAAA;AAC1D,GAAC,CAAA,CAAA;AAED+C,EAAAA,KAAA,CAAM,CAACN,YAAY,CAAA,EAAG,UAAAO,IAAA,EAAW;AAAA,IAAA,IAAAC,KAAA,GAAAT,cAAA,CAAAQ,IAAA,EAAA,CAAA,CAAA;AAATE,MAAAA,GAAG,GAAAD,KAAA,CAAA,CAAA,CAAA,CAAA;IACzBN,gBAAA,CAAiB9C,KAAQ,GAAAqD,GAAA,CAAA;AAC3B,GAAC,CAAA,CAAA;EAED,SAASC,oBAAuBA,GAAA;IAAA,IAAAC,iBAAA,EAAAC,WAAA,CAAA;AAC9B,IAAA,IAAIT,iBAAkB,CAAA/C,KAAA,EAAc,OAAA,IAAA,CAAA;IACpC,IAAMyD,WACJ,GAAAC,WAAA,CAAA,KAAA,EAAA;AAAA,MAAA,OAAA,EAAYvB,kBAAmB,CAAAwB,MAAAA;KAAAD,EAAAA,CAAAA,WAAA,gBAI1BjC,CAAE,CAAAC,YAAA,CAAa1B,MAAM4D,gBAAkB,EAAA;MACtCD,QAAQE,sBAAuB,EAAA;MAC/BC,KAAO,EAAA,CAAAP,CAAAA,iBAAA,GAAArC,KAAA,CAAM6C,UAAY,MAAA,IAAA,IAAAR,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,iBAAA,CAAkBS,KAAA,MAAAR,CAAAA,WAAA,GAAStC,MAAMN,IAAM,cAAA4C,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,WAAA,CAAYrD,MAAA,CAAA;AAChD,KAAC;;;eAE8C8D,EAAAA,UAAAA;AAC9C,KAAA,EAAA;AAAA,MAAA,SAAA,EAAA,SAAAC,QAAA,GAAA;AAAA,QAAA,OAAA,CAAAxC,YAAA,CAAa1B,KAAM,CAAAmE,2BAAA,CAAA,CAAA;AAAA,OAAA;KAVvB,CAAA,CAAA,CAAA,CAAA;AAcG,IAAA,IAAAC,aAAA,GAAgBzC,YAAY,WAAW,CAAA,CAAA;AAC7C,IAAA,IAAKT,KAAM,CAAAmD,SAAA,IAAa,CAACD,aAAA,IAAkBlD,MAAMmD,SAAc,KAAA,IAAA,EAAa,OAAA,IAAA,CAAA;AAC5E,IAAA,OAAAX,WAAA,CAAA,KAAA,EAAA;AAAA,MAAA,OAAA,EAAmBvB,mBAAmBmC,KAAAA;KAAQF,EAAAA,CAAAA,aAAA,IAAiBX;AACjE,GAAA;EAGA,SAASI,sBAAiCA,GAAA;IACxC,IAAMU,MAAgB,EAAC,CAAA;IACvB,IAAMvC,WAAkC,EAAC,CAAA;AAC3BwC,IAAAA,aAAA,CAAAtD,KAAA,CAAMc,SAASA,QAAO,CAAA,CAAA;AACpCA,IAAAA,QAAAA,CACGyC,MAAO,CAAA,UAACC,GAAQ,EAAA;MAAA,OAAAA,GAAA,CAAID,MAAM,CAAA;AAAA,KAAA,CAC1B,CAAA3D,OAAA,CAAQ,UAAC4D,GAAA,EAAKC,KAAU,EAAA;MACnB,IAAA3E,KAAA,GAAQ4C,YAAa,CAAA5C,KAAA,CAAM0E,GAAI,CAAAE,MAAA,CAAA,CAAA;AAC/B,MAAA,IAAAF,GAAA,CAAID,MAAO,CAAAI,IAAA,IAAQ,CAAC,CAAC,MAAM,CAAA,CAAEpE,QAAS,CAAAC,MAAA,CAAOV,KAAK,CAAC,CAAG,EAAA;QACxD,IAAM8E,cAAiB,GAAA9E,KAAA,YAAiBE,KAAQ,GAAAF,KAAA,GAAQ,CAACA,KAAK,CAAA,CAAA;QAC9D,IAAM+E,QAAkB,EAAC,CAAA;QACzBL,GAAA,CAAID,MAAO,CAAAI,IAAA,CAAK/D,OAAQ,CAAA,UAACkE,MAAW,EAAA;UAClC,IAAIF,cAAe,CAAArE,QAAA,CAASuE,MAAO,CAAAhF,KAAK,CAAG,EAAA;AACnC+E,YAAAA,KAAA,CAAAE,IAAA,CAAKD,OAAOD,KAAK,CAAA,CAAA;AACzB,WAAA;AACF,SAAC,CAAA,CAAA;AACD/E,QAAAA,KAAA,GAAQ+E,MAAMG,IAAK,EAAA,CAAA;AACrB,OAAA;AACI,MAAA,IAAAnF,kBAAA,CAAmBC,KAAK,CAAG,EAAA;QAAA,IAAAmF,WAAA,EAAAC,YAAA,CAAA;AAC7B,QAAA,IAAML,MAAQ,GAAAM,UAAA,CAAAF,CAAAA,WAAA,GAAWT,GAAI,CAAAD,MAAA,MAAA,IAAA,IAAAU,WAAA,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAYJ,KAAK,CAAA,GAAIL,GAAI,CAAAD,MAAA,CAAOM,KAAM,CAAAO,CAAC,CAAI,IAAAF,YAAA,GAAAV,GAAA,CAAID,MAAQ,MAAAW,IAAAA,IAAAA,YAAA,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAYL,KAAA,CAAA;QAChF,IAAMQ,KAAQ,GAAAC,WAAA,CAAYrE,OAAQ,CAAAsE,KAAA,EAAOf,KAAKC,KAAK,CAAA,CAAA;AACnDJ,QAAAA,GAAA,CAAIU,IAAK,CAAAS,EAAAA,CAAAA,MAAA,CAAGX,MAAS,IAAAQ,KAAA,EAAAG,QAAAA,CAAAA,CAAAA,MAAA,CAAS1F,KAAO,CAAA,CAAA,CAAA;AACvC,OAAA;AACF,KAAC,CAAA,CAAA;AACI,IAAA,OAAAuE,GAAA,CAAIW,KAAK,QAAG,CAAA,CAAA;AACrB,GAAA;AAES,EAAA,SAAAV,aAAAA,CAAcE,KAA6B1C,QAAiC,EAAA;AAC/E0C,IAAAA,GAAA,CAAA5D,OAAA,CAAQ,UAAC6E,MAAW,EAAA;MACtB,IAAIA,OAAOC,QAAU,EAAA;AACLpB,QAAAA,aAAA,CAAAmB,MAAA,CAAOC,UAAU5D,QAAO,CAAA,CAAA;AACxC,OAAA;AACAA,MAAAA,QAAAA,CAAQiD,KAAKU,MAAM,CAAA,CAAA;AACrB,KAAC,CAAA,CAAA;AACH,GAAA;AAES,EAAA,SAAAE,mBAAAA,CAAoBxC,KAAUsC,MAAyB,EAAA;AAC9D,IAAA,IAAM5D,YAAc,GAAA+D,aAAA,CAAAA,aAAA,KACfhD,gBAAiB,CAAA9C,KAAA,CAAA,EAAA,EAAA,EAAA+F,eAAA,CACnBJ,EAAAA,EAAAA,OAAOf,MAAS,EAAAvB,GAAA,CACnB,CAAA,CAAA;IACAP,gBAAA,CAAiB9C,KAAQ+B,GAAAA,YAAAA,CAAAA;AACrB,IAAA,IAAA,CAAC4D,MAAO,CAAAlB,MAAA,CAAOuB,mBAAqB,EAAA;AACrBjE,MAAAA,gBAAAA,CAAAA,YAAAA,EAAa,iBAAiB4D,MAAM,CAAA,CAAA;AACvD,KAAA;AACF,GAAA;AAES,EAAA,SAAAM,gBAAAA,CACPlE,YACA,EAAAmE,OAAA,EACAP,MACA,EAAA;AAAA,IAAA,IAAAQ,eAAA,CAAA;IACAtD,eAAA,CAAgBd,YAAa,EAAA;AAAE2C,MAAAA,GAAK,EAAAiB,MAAA;AAAQO,MAAAA,SAAAA,OAAAA;AAAQ,KAAC,CAAA,CAAA;AAC/C,IAAA,CAAAC,eAAA,GAAAjF,KAAA,CAAAkF,QAAA,MAAA,IAAA,IAAAD,eAAA,KAAA,KAAA,CAAA,IAAAA,eAAA,CAAAE,IAAA,CAAAnF,KAAA,EAAW;AAAEuD,MAAAA,MAAQ1C,EAAAA,YAAAA;AAAY,OAAG;AAAEmE,MAAAA,OAAA,EAAS,QAAA;AAAS,KAAC,CAAA,CAAA;AACjE,GAAA;EAEA,SAASI,QAAQX,MAAyB,EAAA;IAAA,IAAAY,KAAA,EAAAC,qBAAA,CAAA;AACxC,IAAA,IAAMzE,YAA2B,GAAA+D,aAAA,CAAAA,aAAA,CAAA,EAAA,EAC5BlD,YAAa,CAAA5C,KAAA,CAAA,EAAA,EAAA,EAAA+F,eAAA,CAAA,EAAA,EACfJ,MAAA,CAAOf,MACN,EAAA,CAAA2B,KAAA,GAAA,CAAAC,qBAAA,GAAAb,MAAA,CAAOlB,OAAOgC,UACd,MAAA,IAAA,IAAAD,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAA;AACEE,MAAAA,MAAQ,EAAA,EAAA;AACRC,MAAAA,UAAU,EAAC;AACXC,MAAAA,KAAO,EAAA,EAAA;AACT,KAAA,CAAEjB,MAAO,CAAAlB,MAAA,CAAOoC,IAChB,CAAA,MAAA,IAAA,IAAAN,KAAA,KAAA,KAAA,CAAA,GAAAA,KAAA,GAAA,EAAA,CACJ,CAAA,CAAA;AACiBxE,IAAAA,gBAAAA,CAAAA,YAAAA,EAAa,SAAS4D,MAAM,CAAA,CAAA;AAC/C,GAAA;EAEA,SAAS1B,UAAaA,GAAA;AACd,IAAA,IAAAwC,UAAA,GAAaK,oBAAqB,CAAA9E,OAAA,CAAQhC,KAAK,CAAA,CAAA;AACpCiG,IAAAA,gBAAA,CAAAQ,UAAA,EAAY,SAAS,KAAS,CAAA,CAAA,CAAA;AACjD,GAAA;EAEA,SAASM,UAAUpB,MAAyB,EAAA;IACzBM,gBAAA,CAAAnD,gBAAA,CAAiB9C,KAAO,EAAA,SAAA,EAAW2F,MAAM,CAAA,CAAA;AAC5D,GAAA;EAGA,SAASqB,gBAAiBA,CAAAC,KAAA,EAA6E;AAAA,IAAA,IAAAC,qBAAA,CAAA;AAAA,IAAA,IAA3ExC,GAAK,GAAAuC,KAAA,CAALvC,GAAK;MAAAyC,QAAA,GAAAF,KAAA,CAAAE,QAAA,CAAA;IAE7B,OAAAzD,WAAA,CAAA0D,qBAAA,EAAA;AAAA,MAAA,QAAA,EAEU1C;kBACEyC,QAAA;MAAA,YACEjG,EAAAA,KAAM,CAAAmG,UAAA;MAAA,cACJzE,EAAAA,YAAa,CAAA5C,KAAA;MAAA,kBACT8C,EAAAA,gBAAA,CAAiB9C,KACnC;AAAA,MAAA,oBAAA,EAAoBmC;sBACNC,YAAA;AAAA,MAAA,YAAA,EACFsC,GAAI,CAAAD,MAAA,CAAO6C;cACfpG,EAAAA,KAAA,CAAMqG,MACd;MAAA,QAAQrG,EAAAA,KAAM,CAAAM,MAAA;AAAA,MAAA,qBAAA,EACOqE,mBACrB;AAAA,MAAA,SAAA,EAASS;mBACES,SAAA;MAAA,qBAAAG,EAAAA,CAAAA,qBAAA,GACU9F,eAAgB,CAAApB,KAAA,cAAAkH,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,qBAAA,CAAuBM,GAC5C;MAAA,iBAAiBC,EAAAA,oBAAAA;KAfR,EAAA;AAAEJ,MAAAA,YAAYlG,OAAQ,CAAAsE,KAAA,CAAM4B,UAAAA;KACrC,CAAA,CAAA;AAiBN,GAAA;EAEA,SAASK,yBAAyBC,mBAA0B,EAAA;IAC1DvG,eAAA,CAAgBpB,KAAQ,GAAA2H,mBAAA,CAAA;AAC1B,GAAA;EAEA,SAASF,qBAAqBG,OAAkB,EAAA;AAC1C,IAAA,IAAAA,OAAA,IAAW,CAACvF,qBAAA,CAAsBrC,KAAO,EAAA;AAC3CqC,MAAAA,qBAAA,CAAsBrC,QAAQ,CAAC4H,OAAA,CAAA;AACjC,KAAA;AACF,GAAA;EAEO,OAAA;AACL7E,IAAAA,iBAAA,EAAAA,iBAAA;AACAV,IAAAA,qBAAA,EAAAA,qBAAA;AACA2E,IAAAA,gBAAA,EAAAA,gBAAA;AACA1D,IAAAA,oBAAA,EAAAA,oBAAA;AACAoE,IAAAA,wBAAA,EAAAA,wBAAAA;GACF,CAAA;AACF;;;;"}