{"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, rootClassName) {\n  return columns.map((column, index) => {\n    const columnPos = getColumnPos(index, pos);\n    const {\n      filterOnClose = true,\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          filterOnClose: filterOnClose,\n          filterMultiple: filterMultiple,\n          filterMode: filterMode,\n          filterSearch: filterSearch,\n          triggerFilter: triggerFilter,\n          locale: locale,\n          getPopupContainer: getPopupContainer,\n          rootClassName: rootClassName\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, rootClassName)\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, childrenColumnName) {\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\n      // shallow copy\n      .map(record => Object.assign({}, record)).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        // filter children\n        if (record[childrenColumnName]) {\n          record[childrenColumnName] = getFilterData(record[childrenColumnName], filterStates, childrenColumnName);\n        }\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    rootClassName\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, undefined, rootClassName);\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","rootClassName","filterOnClose","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","childrenColumnName","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, rootClassName) {\n  return columns.map((column, index) => {\n    const columnPos = getColumnPos(index, pos);\n    const {\n      filterOnClose = true,\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          filterOnClose: filterOnClose,\n          filterMultiple: filterMultiple,\n          filterMode: filterMode,\n          filterSearch: filterSearch,\n          triggerFilter: triggerFilter,\n          locale: locale,\n          getPopupContainer: getPopupContainer,\n          rootClassName: rootClassName\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, rootClassName)\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, childrenColumnName) {\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\n      // shallow copy\n      .map(record => Object.assign({}, record)).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        // filter children\n        if (record[childrenColumnName]) {\n          record[childrenColumnName] = getFilterData(record[childrenColumnName], filterStates, childrenColumnName);\n        }\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    rootClassName\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, undefined, rootClassName);\n  return [transformColumns, mergedFilterStates, filters];\n}\nexport { flattenKeys };\nexport default useFilter;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}