{"ast":null,"code":"\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { devUseWarning } from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown, { flattenKeys } from './FilterDropdown';\nfunction collectFilterStates(columns, init, pos) {\n  let filterStates = [];\n  (columns || []).forEach((column, index) => {\n    var _a;\n    const columnPos = getColumnPos(index, pos);\n    if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n      if ('filteredValue' in column) {\n        // Controlled\n        let filteredValues = column.filteredValue;\n        if (!('filterDropdown' in column)) {\n          filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n        }\n        filterStates.push({\n          column,\n          key: getColumnKey(column, columnPos),\n          filteredKeys: filteredValues,\n          forceFiltered: column.filtered\n        });\n      } else {\n        // Uncontrolled\n        filterStates.push({\n          column,\n          key: getColumnKey(column, columnPos),\n          filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n          forceFiltered: column.filtered\n        });\n      }\n    }\n    if ('children' in column) {\n      filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n    }\n  });\n  return filterStates;\n}\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, locale, triggerFilter, getPopupContainer, pos) {\n  return columns.map((column, index) => {\n    const columnPos = getColumnPos(index, pos);\n    const {\n      filterMultiple = true,\n      filterMode,\n      filterSearch\n    } = column;\n    let newColumn = column;\n    if (newColumn.filters || newColumn.filterDropdown) {\n      const columnKey = getColumnKey(newColumn, columnPos);\n      const filterState = filterStates.find(_ref => {\n        let {\n          key\n        } = _ref;\n        return columnKey === key;\n      });\n      newColumn = Object.assign(Object.assign({}, newColumn), {\n        title: renderProps => /*#__PURE__*/React.createElement(FilterDropdown, {\n          tablePrefixCls: prefixCls,\n          prefixCls: `${prefixCls}-filter`,\n          dropdownPrefixCls: dropdownPrefixCls,\n          column: newColumn,\n          columnKey: columnKey,\n          filterState: filterState,\n          filterMultiple: filterMultiple,\n          filterMode: filterMode,\n          filterSearch: filterSearch,\n          triggerFilter: triggerFilter,\n          locale: locale,\n          getPopupContainer: getPopupContainer\n        }, renderColumnTitle(column.title, renderProps))\n      });\n    }\n    if ('children' in newColumn) {\n      newColumn = Object.assign(Object.assign({}, newColumn), {\n        children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, locale, triggerFilter, getPopupContainer, columnPos)\n      });\n    }\n    return newColumn;\n  });\n}\nfunction generateFilterInfo(filterStates) {\n  const currentFilters = {};\n  filterStates.forEach(_ref2 => {\n    let {\n      key,\n      filteredKeys,\n      column\n    } = _ref2;\n    const keyAsString = key;\n    const {\n      filters,\n      filterDropdown\n    } = column;\n    if (filterDropdown) {\n      currentFilters[keyAsString] = filteredKeys || null;\n    } else if (Array.isArray(filteredKeys)) {\n      const keys = flattenKeys(filters);\n      currentFilters[keyAsString] = keys.filter(originKey => filteredKeys.includes(String(originKey)));\n    } else {\n      currentFilters[keyAsString] = null;\n    }\n  });\n  return currentFilters;\n}\nexport function getFilterData(data, filterStates) {\n  return filterStates.reduce((currentData, filterState) => {\n    const {\n      column: {\n        onFilter,\n        filters\n      },\n      filteredKeys\n    } = filterState;\n    if (onFilter && filteredKeys && filteredKeys.length) {\n      return currentData.filter(record => filteredKeys.some(key => {\n        const keys = flattenKeys(filters);\n        const keyIndex = keys.findIndex(k => String(k) === String(key));\n        const realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n        return onFilter(realKey, record);\n      }));\n    }\n    return currentData;\n  }, data);\n}\nconst getMergedColumns = rawMergedColumns => rawMergedColumns.flatMap(column => {\n  if ('children' in column) {\n    return [column].concat(_toConsumableArray(getMergedColumns(column.children || [])));\n  }\n  return [column];\n});\nfunction useFilter(_ref3) {\n  let {\n    prefixCls,\n    dropdownPrefixCls,\n    mergedColumns: rawMergedColumns,\n    onFilterChange,\n    getPopupContainer,\n    locale: tableLocale\n  } = _ref3;\n  const warning = devUseWarning('Table');\n  const mergedColumns = React.useMemo(() => getMergedColumns(rawMergedColumns || []), [rawMergedColumns]);\n  const [filterStates, setFilterStates] = React.useState(() => collectFilterStates(mergedColumns, true));\n  const mergedFilterStates = React.useMemo(() => {\n    const collectedStates = collectFilterStates(mergedColumns, false);\n    if (collectedStates.length === 0) {\n      return collectedStates;\n    }\n    let filteredKeysIsAllNotControlled = true;\n    let filteredKeysIsAllControlled = true;\n    collectedStates.forEach(_ref4 => {\n      let {\n        filteredKeys\n      } = _ref4;\n      if (filteredKeys !== undefined) {\n        filteredKeysIsAllNotControlled = false;\n      } else {\n        filteredKeysIsAllControlled = false;\n      }\n    });\n    // Return if not controlled\n    if (filteredKeysIsAllNotControlled) {\n      // Filter column may have been removed\n      const keyList = (mergedColumns || []).map((column, index) => getColumnKey(column, getColumnPos(index)));\n      return filterStates.filter(_ref5 => {\n        let {\n          key\n        } = _ref5;\n        return keyList.includes(key);\n      }).map(item => {\n        const col = mergedColumns[keyList.findIndex(key => key === item.key)];\n        return Object.assign(Object.assign({}, item), {\n          column: Object.assign(Object.assign({}, item.column), col),\n          forceFiltered: col.filtered\n        });\n      });\n    }\n    process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'usage', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n    return collectedStates;\n  }, [mergedColumns, filterStates]);\n  const filters = React.useMemo(() => generateFilterInfo(mergedFilterStates), [mergedFilterStates]);\n  const triggerFilter = filterState => {\n    const newFilterStates = mergedFilterStates.filter(_ref6 => {\n      let {\n        key\n      } = _ref6;\n      return key !== filterState.key;\n    });\n    newFilterStates.push(filterState);\n    setFilterStates(newFilterStates);\n    onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n  };\n  const transformColumns = innerColumns => injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, tableLocale, triggerFilter, getPopupContainer);\n  return [transformColumns, mergedFilterStates, filters];\n}\nexport { flattenKeys };\nexport default useFilter;","map":{"version":3,"names":["_toConsumableArray","React","devUseWarning","getColumnKey","getColumnPos","renderColumnTitle","FilterDropdown","flattenKeys","collectFilterStates","columns","init","pos","filterStates","forEach","column","index","_a","columnPos","filters","filteredValues","filteredValue","map","String","push","key","filteredKeys","forceFiltered","filtered","defaultFilteredValue","undefined","concat","children","injectFilter","prefixCls","dropdownPrefixCls","locale","triggerFilter","getPopupContainer","filterMultiple","filterMode","filterSearch","newColumn","filterDropdown","columnKey","filterState","find","_ref","Object","assign","title","renderProps","createElement","tablePrefixCls","generateFilterInfo","currentFilters","_ref2","keyAsString","Array","isArray","keys","filter","originKey","includes","getFilterData","data","reduce","currentData","onFilter","length","record","some","keyIndex","findIndex","k","realKey","getMergedColumns","rawMergedColumns","flatMap","useFilter","_ref3","mergedColumns","onFilterChange","tableLocale","warning","useMemo","setFilterStates","useState","mergedFilterStates","collectedStates","filteredKeysIsAllNotControlled","filteredKeysIsAllControlled","_ref4","keyList","_ref5","item","col","process","env","NODE_ENV","newFilterStates","_ref6","transformColumns","innerColumns"],"sources":["/var/www/gavt/node_modules/antd/es/table/hooks/useFilter/index.js"],"sourcesContent":["\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { devUseWarning } from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown, { flattenKeys } from './FilterDropdown';\nfunction collectFilterStates(columns, init, pos) {\n  let filterStates = [];\n  (columns || []).forEach((column, index) => {\n    var _a;\n    const columnPos = getColumnPos(index, pos);\n    if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n      if ('filteredValue' in column) {\n        // Controlled\n        let filteredValues = column.filteredValue;\n        if (!('filterDropdown' in column)) {\n          filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n        }\n        filterStates.push({\n          column,\n          key: getColumnKey(column, columnPos),\n          filteredKeys: filteredValues,\n          forceFiltered: column.filtered\n        });\n      } else {\n        // Uncontrolled\n        filterStates.push({\n          column,\n          key: getColumnKey(column, columnPos),\n          filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n          forceFiltered: column.filtered\n        });\n      }\n    }\n    if ('children' in column) {\n      filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n    }\n  });\n  return filterStates;\n}\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, locale, triggerFilter, getPopupContainer, pos) {\n  return columns.map((column, index) => {\n    const columnPos = getColumnPos(index, pos);\n    const {\n      filterMultiple = true,\n      filterMode,\n      filterSearch\n    } = column;\n    let newColumn = column;\n    if (newColumn.filters || newColumn.filterDropdown) {\n      const columnKey = getColumnKey(newColumn, columnPos);\n      const filterState = filterStates.find(_ref => {\n        let {\n          key\n        } = _ref;\n        return columnKey === key;\n      });\n      newColumn = Object.assign(Object.assign({}, newColumn), {\n        title: renderProps => /*#__PURE__*/React.createElement(FilterDropdown, {\n          tablePrefixCls: prefixCls,\n          prefixCls: `${prefixCls}-filter`,\n          dropdownPrefixCls: dropdownPrefixCls,\n          column: newColumn,\n          columnKey: columnKey,\n          filterState: filterState,\n          filterMultiple: filterMultiple,\n          filterMode: filterMode,\n          filterSearch: filterSearch,\n          triggerFilter: triggerFilter,\n          locale: locale,\n          getPopupContainer: getPopupContainer\n        }, renderColumnTitle(column.title, renderProps))\n      });\n    }\n    if ('children' in newColumn) {\n      newColumn = Object.assign(Object.assign({}, newColumn), {\n        children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, locale, triggerFilter, getPopupContainer, columnPos)\n      });\n    }\n    return newColumn;\n  });\n}\nfunction generateFilterInfo(filterStates) {\n  const currentFilters = {};\n  filterStates.forEach(_ref2 => {\n    let {\n      key,\n      filteredKeys,\n      column\n    } = _ref2;\n    const keyAsString = key;\n    const {\n      filters,\n      filterDropdown\n    } = column;\n    if (filterDropdown) {\n      currentFilters[keyAsString] = filteredKeys || null;\n    } else if (Array.isArray(filteredKeys)) {\n      const keys = flattenKeys(filters);\n      currentFilters[keyAsString] = keys.filter(originKey => filteredKeys.includes(String(originKey)));\n    } else {\n      currentFilters[keyAsString] = null;\n    }\n  });\n  return currentFilters;\n}\nexport function getFilterData(data, filterStates) {\n  return filterStates.reduce((currentData, filterState) => {\n    const {\n      column: {\n        onFilter,\n        filters\n      },\n      filteredKeys\n    } = filterState;\n    if (onFilter && filteredKeys && filteredKeys.length) {\n      return currentData.filter(record => filteredKeys.some(key => {\n        const keys = flattenKeys(filters);\n        const keyIndex = keys.findIndex(k => String(k) === String(key));\n        const realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n        return onFilter(realKey, record);\n      }));\n    }\n    return currentData;\n  }, data);\n}\nconst getMergedColumns = rawMergedColumns => rawMergedColumns.flatMap(column => {\n  if ('children' in column) {\n    return [column].concat(_toConsumableArray(getMergedColumns(column.children || [])));\n  }\n  return [column];\n});\nfunction useFilter(_ref3) {\n  let {\n    prefixCls,\n    dropdownPrefixCls,\n    mergedColumns: rawMergedColumns,\n    onFilterChange,\n    getPopupContainer,\n    locale: tableLocale\n  } = _ref3;\n  const warning = devUseWarning('Table');\n  const mergedColumns = React.useMemo(() => getMergedColumns(rawMergedColumns || []), [rawMergedColumns]);\n  const [filterStates, setFilterStates] = React.useState(() => collectFilterStates(mergedColumns, true));\n  const mergedFilterStates = React.useMemo(() => {\n    const collectedStates = collectFilterStates(mergedColumns, false);\n    if (collectedStates.length === 0) {\n      return collectedStates;\n    }\n    let filteredKeysIsAllNotControlled = true;\n    let filteredKeysIsAllControlled = true;\n    collectedStates.forEach(_ref4 => {\n      let {\n        filteredKeys\n      } = _ref4;\n      if (filteredKeys !== undefined) {\n        filteredKeysIsAllNotControlled = false;\n      } else {\n        filteredKeysIsAllControlled = false;\n      }\n    });\n    // Return if not controlled\n    if (filteredKeysIsAllNotControlled) {\n      // Filter column may have been removed\n      const keyList = (mergedColumns || []).map((column, index) => getColumnKey(column, getColumnPos(index)));\n      return filterStates.filter(_ref5 => {\n        let {\n          key\n        } = _ref5;\n        return keyList.includes(key);\n      }).map(item => {\n        const col = mergedColumns[keyList.findIndex(key => key === item.key)];\n        return Object.assign(Object.assign({}, item), {\n          column: Object.assign(Object.assign({}, item.column), col),\n          forceFiltered: col.filtered\n        });\n      });\n    }\n    process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'usage', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n    return collectedStates;\n  }, [mergedColumns, filterStates]);\n  const filters = React.useMemo(() => generateFilterInfo(mergedFilterStates), [mergedFilterStates]);\n  const triggerFilter = filterState => {\n    const newFilterStates = mergedFilterStates.filter(_ref6 => {\n      let {\n        key\n      } = _ref6;\n      return key !== filterState.key;\n    });\n    newFilterStates.push(filterState);\n    setFilterStates(newFilterStates);\n    onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n  };\n  const transformColumns = innerColumns => injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, tableLocale, triggerFilter, getPopupContainer);\n  return [transformColumns, mergedFilterStates, filters];\n}\nexport { flattenKeys };\nexport default useFilter;"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,kBAAkB,MAAM,8CAA8C;AAC7E,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,aAAa,QAAQ,wBAAwB;AACtD,SAASC,YAAY,EAAEC,YAAY,EAAEC,iBAAiB,QAAQ,YAAY;AAC1E,OAAOC,cAAc,IAAIC,WAAW,QAAQ,kBAAkB;AAC9D,SAASC,mBAAmBA,CAACC,OAAO,EAAEC,IAAI,EAAEC,GAAG,EAAE;EAC/C,IAAIC,YAAY,GAAG,EAAE;EACrB,CAACH,OAAO,IAAI,EAAE,EAAEI,OAAO,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;IACzC,IAAIC,EAAE;IACN,MAAMC,SAAS,GAAGb,YAAY,CAACW,KAAK,EAAEJ,GAAG,CAAC;IAC1C,IAAIG,MAAM,CAACI,OAAO,IAAI,gBAAgB,IAAIJ,MAAM,IAAI,UAAU,IAAIA,MAAM,EAAE;MACxE,IAAI,eAAe,IAAIA,MAAM,EAAE;QAC7B;QACA,IAAIK,cAAc,GAAGL,MAAM,CAACM,aAAa;QACzC,IAAI,EAAE,gBAAgB,IAAIN,MAAM,CAAC,EAAE;UACjCK,cAAc,GAAG,CAACH,EAAE,GAAGG,cAAc,KAAK,IAAI,IAAIA,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACE,GAAG,CAACC,MAAM,CAAC,MAAM,IAAI,IAAIN,EAAE,KAAK,KAAK,CAAC,GAAGA,EAAE,GAAGG,cAAc;QACpK;QACAP,YAAY,CAACW,IAAI,CAAC;UAChBT,MAAM;UACNU,GAAG,EAAErB,YAAY,CAACW,MAAM,EAAEG,SAAS,CAAC;UACpCQ,YAAY,EAAEN,cAAc;UAC5BO,aAAa,EAAEZ,MAAM,CAACa;QACxB,CAAC,CAAC;MACJ,CAAC,MAAM;QACL;QACAf,YAAY,CAACW,IAAI,CAAC;UAChBT,MAAM;UACNU,GAAG,EAAErB,YAAY,CAACW,MAAM,EAAEG,SAAS,CAAC;UACpCQ,YAAY,EAAEf,IAAI,IAAII,MAAM,CAACc,oBAAoB,GAAGd,MAAM,CAACc,oBAAoB,GAAGC,SAAS;UAC3FH,aAAa,EAAEZ,MAAM,CAACa;QACxB,CAAC,CAAC;MACJ;IACF;IACA,IAAI,UAAU,IAAIb,MAAM,EAAE;MACxBF,YAAY,GAAG,EAAE,CAACkB,MAAM,CAAC9B,kBAAkB,CAACY,YAAY,CAAC,EAAEZ,kBAAkB,CAACQ,mBAAmB,CAACM,MAAM,CAACiB,QAAQ,EAAErB,IAAI,EAAEO,SAAS,CAAC,CAAC,CAAC;IACvI;EACF,CAAC,CAAC;EACF,OAAOL,YAAY;AACrB;AACA,SAASoB,YAAYA,CAACC,SAAS,EAAEC,iBAAiB,EAAEzB,OAAO,EAAEG,YAAY,EAAEuB,MAAM,EAAEC,aAAa,EAAEC,iBAAiB,EAAE1B,GAAG,EAAE;EACxH,OAAOF,OAAO,CAACY,GAAG,CAAC,CAACP,MAAM,EAAEC,KAAK,KAAK;IACpC,MAAME,SAAS,GAAGb,YAAY,CAACW,KAAK,EAAEJ,GAAG,CAAC;IAC1C,MAAM;MACJ2B,cAAc,GAAG,IAAI;MACrBC,UAAU;MACVC;IACF,CAAC,GAAG1B,MAAM;IACV,IAAI2B,SAAS,GAAG3B,MAAM;IACtB,IAAI2B,SAAS,CAACvB,OAAO,IAAIuB,SAAS,CAACC,cAAc,EAAE;MACjD,MAAMC,SAAS,GAAGxC,YAAY,CAACsC,SAAS,EAAExB,SAAS,CAAC;MACpD,MAAM2B,WAAW,GAAGhC,YAAY,CAACiC,IAAI,CAACC,IAAI,IAAI;QAC5C,IAAI;UACFtB;QACF,CAAC,GAAGsB,IAAI;QACR,OAAOH,SAAS,KAAKnB,GAAG;MAC1B,CAAC,CAAC;MACFiB,SAAS,GAAGM,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEP,SAAS,CAAC,EAAE;QACtDQ,KAAK,EAAEC,WAAW,IAAI,aAAajD,KAAK,CAACkD,aAAa,CAAC7C,cAAc,EAAE;UACrE8C,cAAc,EAAEnB,SAAS;UACzBA,SAAS,EAAG,GAAEA,SAAU,SAAQ;UAChCC,iBAAiB,EAAEA,iBAAiB;UACpCpB,MAAM,EAAE2B,SAAS;UACjBE,SAAS,EAAEA,SAAS;UACpBC,WAAW,EAAEA,WAAW;UACxBN,cAAc,EAAEA,cAAc;UAC9BC,UAAU,EAAEA,UAAU;UACtBC,YAAY,EAAEA,YAAY;UAC1BJ,aAAa,EAAEA,aAAa;UAC5BD,MAAM,EAAEA,MAAM;UACdE,iBAAiB,EAAEA;QACrB,CAAC,EAAEhC,iBAAiB,CAACS,MAAM,CAACmC,KAAK,EAAEC,WAAW,CAAC;MACjD,CAAC,CAAC;IACJ;IACA,IAAI,UAAU,IAAIT,SAAS,EAAE;MAC3BA,SAAS,GAAGM,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEP,SAAS,CAAC,EAAE;QACtDV,QAAQ,EAAEC,YAAY,CAACC,SAAS,EAAEC,iBAAiB,EAAEO,SAAS,CAACV,QAAQ,EAAEnB,YAAY,EAAEuB,MAAM,EAAEC,aAAa,EAAEC,iBAAiB,EAAEpB,SAAS;MAC5I,CAAC,CAAC;IACJ;IACA,OAAOwB,SAAS;EAClB,CAAC,CAAC;AACJ;AACA,SAASY,kBAAkBA,CAACzC,YAAY,EAAE;EACxC,MAAM0C,cAAc,GAAG,CAAC,CAAC;EACzB1C,YAAY,CAACC,OAAO,CAAC0C,KAAK,IAAI;IAC5B,IAAI;MACF/B,GAAG;MACHC,YAAY;MACZX;IACF,CAAC,GAAGyC,KAAK;IACT,MAAMC,WAAW,GAAGhC,GAAG;IACvB,MAAM;MACJN,OAAO;MACPwB;IACF,CAAC,GAAG5B,MAAM;IACV,IAAI4B,cAAc,EAAE;MAClBY,cAAc,CAACE,WAAW,CAAC,GAAG/B,YAAY,IAAI,IAAI;IACpD,CAAC,MAAM,IAAIgC,KAAK,CAACC,OAAO,CAACjC,YAAY,CAAC,EAAE;MACtC,MAAMkC,IAAI,GAAGpD,WAAW,CAACW,OAAO,CAAC;MACjCoC,cAAc,CAACE,WAAW,CAAC,GAAGG,IAAI,CAACC,MAAM,CAACC,SAAS,IAAIpC,YAAY,CAACqC,QAAQ,CAACxC,MAAM,CAACuC,SAAS,CAAC,CAAC,CAAC;IAClG,CAAC,MAAM;MACLP,cAAc,CAACE,WAAW,CAAC,GAAG,IAAI;IACpC;EACF,CAAC,CAAC;EACF,OAAOF,cAAc;AACvB;AACA,OAAO,SAASS,aAAaA,CAACC,IAAI,EAAEpD,YAAY,EAAE;EAChD,OAAOA,YAAY,CAACqD,MAAM,CAAC,CAACC,WAAW,EAAEtB,WAAW,KAAK;IACvD,MAAM;MACJ9B,MAAM,EAAE;QACNqD,QAAQ;QACRjD;MACF,CAAC;MACDO;IACF,CAAC,GAAGmB,WAAW;IACf,IAAIuB,QAAQ,IAAI1C,YAAY,IAAIA,YAAY,CAAC2C,MAAM,EAAE;MACnD,OAAOF,WAAW,CAACN,MAAM,CAACS,MAAM,IAAI5C,YAAY,CAAC6C,IAAI,CAAC9C,GAAG,IAAI;QAC3D,MAAMmC,IAAI,GAAGpD,WAAW,CAACW,OAAO,CAAC;QACjC,MAAMqD,QAAQ,GAAGZ,IAAI,CAACa,SAAS,CAACC,CAAC,IAAInD,MAAM,CAACmD,CAAC,CAAC,KAAKnD,MAAM,CAACE,GAAG,CAAC,CAAC;QAC/D,MAAMkD,OAAO,GAAGH,QAAQ,KAAK,CAAC,CAAC,GAAGZ,IAAI,CAACY,QAAQ,CAAC,GAAG/C,GAAG;QACtD,OAAO2C,QAAQ,CAACO,OAAO,EAAEL,MAAM,CAAC;MAClC,CAAC,CAAC,CAAC;IACL;IACA,OAAOH,WAAW;EACpB,CAAC,EAAEF,IAAI,CAAC;AACV;AACA,MAAMW,gBAAgB,GAAGC,gBAAgB,IAAIA,gBAAgB,CAACC,OAAO,CAAC/D,MAAM,IAAI;EAC9E,IAAI,UAAU,IAAIA,MAAM,EAAE;IACxB,OAAO,CAACA,MAAM,CAAC,CAACgB,MAAM,CAAC9B,kBAAkB,CAAC2E,gBAAgB,CAAC7D,MAAM,CAACiB,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;EACrF;EACA,OAAO,CAACjB,MAAM,CAAC;AACjB,CAAC,CAAC;AACF,SAASgE,SAASA,CAACC,KAAK,EAAE;EACxB,IAAI;IACF9C,SAAS;IACTC,iBAAiB;IACjB8C,aAAa,EAAEJ,gBAAgB;IAC/BK,cAAc;IACd5C,iBAAiB;IACjBF,MAAM,EAAE+C;EACV,CAAC,GAAGH,KAAK;EACT,MAAMI,OAAO,GAAGjF,aAAa,CAAC,OAAO,CAAC;EACtC,MAAM8E,aAAa,GAAG/E,KAAK,CAACmF,OAAO,CAAC,MAAMT,gBAAgB,CAACC,gBAAgB,IAAI,EAAE,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EACvG,MAAM,CAAChE,YAAY,EAAEyE,eAAe,CAAC,GAAGpF,KAAK,CAACqF,QAAQ,CAAC,MAAM9E,mBAAmB,CAACwE,aAAa,EAAE,IAAI,CAAC,CAAC;EACtG,MAAMO,kBAAkB,GAAGtF,KAAK,CAACmF,OAAO,CAAC,MAAM;IAC7C,MAAMI,eAAe,GAAGhF,mBAAmB,CAACwE,aAAa,EAAE,KAAK,CAAC;IACjE,IAAIQ,eAAe,CAACpB,MAAM,KAAK,CAAC,EAAE;MAChC,OAAOoB,eAAe;IACxB;IACA,IAAIC,8BAA8B,GAAG,IAAI;IACzC,IAAIC,2BAA2B,GAAG,IAAI;IACtCF,eAAe,CAAC3E,OAAO,CAAC8E,KAAK,IAAI;MAC/B,IAAI;QACFlE;MACF,CAAC,GAAGkE,KAAK;MACT,IAAIlE,YAAY,KAAKI,SAAS,EAAE;QAC9B4D,8BAA8B,GAAG,KAAK;MACxC,CAAC,MAAM;QACLC,2BAA2B,GAAG,KAAK;MACrC;IACF,CAAC,CAAC;IACF;IACA,IAAID,8BAA8B,EAAE;MAClC;MACA,MAAMG,OAAO,GAAG,CAACZ,aAAa,IAAI,EAAE,EAAE3D,GAAG,CAAC,CAACP,MAAM,EAAEC,KAAK,KAAKZ,YAAY,CAACW,MAAM,EAAEV,YAAY,CAACW,KAAK,CAAC,CAAC,CAAC;MACvG,OAAOH,YAAY,CAACgD,MAAM,CAACiC,KAAK,IAAI;QAClC,IAAI;UACFrE;QACF,CAAC,GAAGqE,KAAK;QACT,OAAOD,OAAO,CAAC9B,QAAQ,CAACtC,GAAG,CAAC;MAC9B,CAAC,CAAC,CAACH,GAAG,CAACyE,IAAI,IAAI;QACb,MAAMC,GAAG,GAAGf,aAAa,CAACY,OAAO,CAACpB,SAAS,CAAChD,GAAG,IAAIA,GAAG,KAAKsE,IAAI,CAACtE,GAAG,CAAC,CAAC;QACrE,OAAOuB,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE8C,IAAI,CAAC,EAAE;UAC5ChF,MAAM,EAAEiC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE8C,IAAI,CAAChF,MAAM,CAAC,EAAEiF,GAAG,CAAC;UAC1DrE,aAAa,EAAEqE,GAAG,CAACpE;QACrB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IACAqE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAAGf,OAAO,CAACO,2BAA2B,EAAE,OAAO,EAAE,4EAA4E,CAAC,GAAG,KAAK,CAAC;IAC5K,OAAOF,eAAe;EACxB,CAAC,EAAE,CAACR,aAAa,EAAEpE,YAAY,CAAC,CAAC;EACjC,MAAMM,OAAO,GAAGjB,KAAK,CAACmF,OAAO,CAAC,MAAM/B,kBAAkB,CAACkC,kBAAkB,CAAC,EAAE,CAACA,kBAAkB,CAAC,CAAC;EACjG,MAAMnD,aAAa,GAAGQ,WAAW,IAAI;IACnC,MAAMuD,eAAe,GAAGZ,kBAAkB,CAAC3B,MAAM,CAACwC,KAAK,IAAI;MACzD,IAAI;QACF5E;MACF,CAAC,GAAG4E,KAAK;MACT,OAAO5E,GAAG,KAAKoB,WAAW,CAACpB,GAAG;IAChC,CAAC,CAAC;IACF2E,eAAe,CAAC5E,IAAI,CAACqB,WAAW,CAAC;IACjCyC,eAAe,CAACc,eAAe,CAAC;IAChClB,cAAc,CAAC5B,kBAAkB,CAAC8C,eAAe,CAAC,EAAEA,eAAe,CAAC;EACtE,CAAC;EACD,MAAME,gBAAgB,GAAGC,YAAY,IAAItE,YAAY,CAACC,SAAS,EAAEC,iBAAiB,EAAEoE,YAAY,EAAEf,kBAAkB,EAAEL,WAAW,EAAE9C,aAAa,EAAEC,iBAAiB,CAAC;EACpK,OAAO,CAACgE,gBAAgB,EAAEd,kBAAkB,EAAErE,OAAO,CAAC;AACxD;AACA,SAASX,WAAW;AACpB,eAAeuE,SAAS"},"metadata":{},"sourceType":"module","externalDependencies":[]}