1 line
43 KiB
JSON
1 line
43 KiB
JSON
{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridFeatureModeConstant } from '../../../models/gridFeatureMode';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridFilterableColumnLookupSelector } from '../columns/gridColumnsSelector';\nimport { GridPreferencePanelsValue } from '../preferencesPanel/gridPreferencePanelsValue';\nimport { getDefaultGridFilterModel } from './gridFilterState';\nimport { gridFilterModelSelector, gridVisibleSortedRowEntriesSelector } from './gridFilterSelector';\nimport { useFirstRender } from '../../utils/useFirstRender';\nimport { gridRowIdsSelector } from '../rows';\nimport { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';\nimport { GRID_DEFAULT_STRATEGY, useGridRegisterStrategyProcessor } from '../../core/strategyProcessing';\nimport { buildAggregatedFilterApplier, sanitizeFilterModel, mergeStateWithFilterModel, cleanFilterItem, passFilterLogic } from './gridFilterUtils';\nimport { isDeepEqual } from '../../../utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const filterStateInitializer = (state, props, apiRef) => {\n var _ref, _props$filterModel, _props$initialState, _props$initialState$f;\n const filterModel = (_ref = (_props$filterModel = props.filterModel) != null ? _props$filterModel : (_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$f = _props$initialState.filter) == null ? void 0 : _props$initialState$f.filterModel) != null ? _ref : getDefaultGridFilterModel();\n return _extends({}, state, {\n filter: {\n filterModel: sanitizeFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef),\n visibleRowsLookup: {},\n filteredDescendantCountLookup: {}\n }\n });\n};\n/**\n * @requires useGridColumns (method, event)\n * @requires useGridParamsApi (method)\n * @requires useGridRows (event)\n */\n\nexport const useGridFilter = (apiRef, props) => {\n var _props$initialState3, _props$initialState3$, _props$componentsProp2;\n const logger = useGridLogger(apiRef, 'useGridFilter');\n apiRef.current.unstable_registerControlState({\n stateId: 'filter',\n propModel: props.filterModel,\n propOnChange: props.onFilterModelChange,\n stateSelector: gridFilterModelSelector,\n changeEvent: 'filterModelChange'\n });\n const updateFilteredRows = React.useCallback(() => {\n apiRef.current.setState(state => {\n const filterModel = gridFilterModelSelector(state, apiRef.current.instanceId);\n const isRowMatchingFilters = props.filterMode === GridFeatureModeConstant.client ? buildAggregatedFilterApplier(filterModel, apiRef) : null;\n const filteringResult = apiRef.current.unstable_applyStrategyProcessor('filtering', {\n isRowMatchingFilters,\n filterModel: filterModel != null ? filterModel : getDefaultGridFilterModel()\n });\n return _extends({}, state, {\n filter: _extends({}, state.filter, filteringResult)\n });\n });\n apiRef.current.publishEvent('filteredRowsSet');\n }, [props.filterMode, apiRef]);\n /**\n * API METHODS\n */\n\n const applyFilters = React.useCallback(() => {\n updateFilteredRows();\n apiRef.current.forceUpdate();\n }, [apiRef, updateFilteredRows]);\n const upsertFilterItem = React.useCallback(item => {\n const filterModel = gridFilterModelSelector(apiRef);\n const items = [...filterModel.items];\n const itemIndex = items.findIndex(filterItem => filterItem.id === item.id);\n if (itemIndex === -1) {\n items.push(item);\n } else {\n items[itemIndex] = item;\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }), 'upsertFilterItem');\n }, [apiRef]);\n const upsertFilterItems = React.useCallback(items => {\n const filterModel = gridFilterModelSelector(apiRef);\n const existingItems = [...filterModel.items];\n items.forEach(item => {\n const itemIndex = items.findIndex(filterItem => filterItem.id === item.id);\n if (itemIndex === -1) {\n existingItems.push(item);\n } else {\n existingItems[itemIndex] = item;\n }\n });\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }), 'upsertFilterItems');\n }, [apiRef]);\n const deleteFilterItem = React.useCallback(itemToDelete => {\n const filterModel = gridFilterModelSelector(apiRef);\n const items = filterModel.items.filter(item => item.id !== itemToDelete.id);\n if (items.length === filterModel.items.length) {\n return;\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }), 'deleteFilterItem');\n }, [apiRef]);\n const showFilterPanel = React.useCallback(targetColumnField => {\n logger.debug('Displaying filter panel');\n if (targetColumnField) {\n const filterModel = gridFilterModelSelector(apiRef);\n const filterItemsWithValue = filterModel.items.filter(item => {\n var _column$filterOperato;\n if (item.value !== undefined) {\n return true;\n }\n const column = apiRef.current.getColumn(item.columnField);\n const filterOperator = (_column$filterOperato = column.filterOperators) == null ? void 0 : _column$filterOperato.find(operator => operator.value === item.operatorValue);\n const requiresFilterValue = typeof (filterOperator == null ? void 0 : filterOperator.requiresFilterValue) === 'undefined' ? true : filterOperator == null ? void 0 : filterOperator.requiresFilterValue; // Operators like `isEmpty` don't have and don't require `item.value`.\n // So we don't want to remove them from the filter model if `item.value === undefined`.\n // See https://github.com/mui/mui-x/issues/5402\n\n if (requiresFilterValue) {\n return false;\n }\n return true;\n });\n let newFilterItems;\n const filterItemOnTarget = filterItemsWithValue.find(item => item.columnField === targetColumnField);\n if (filterItemOnTarget) {\n newFilterItems = filterItemsWithValue;\n } else if (props.disableMultipleColumnsFiltering) {\n newFilterItems = [cleanFilterItem({\n columnField: targetColumnField\n }, apiRef)];\n } else {\n newFilterItems = [...filterItemsWithValue, cleanFilterItem({\n columnField: targetColumnField\n }, apiRef)];\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: newFilterItems\n }));\n }\n apiRef.current.showPreferences(GridPreferencePanelsValue.filters);\n }, [apiRef, logger, props.disableMultipleColumnsFiltering]);\n const hideFilterPanel = React.useCallback(() => {\n logger.debug('Hiding filter panel');\n apiRef.current.hidePreferences();\n }, [apiRef, logger]);\n const setFilterLinkOperator = React.useCallback(linkOperator => {\n const filterModel = gridFilterModelSelector(apiRef);\n if (filterModel.linkOperator === linkOperator) {\n return;\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n linkOperator\n }), 'changeLogicOperator');\n }, [apiRef]);\n const setQuickFilterValues = React.useCallback(values => {\n const filterModel = gridFilterModelSelector(apiRef);\n if (isDeepEqual(filterModel.quickFilterValues, values)) {\n return;\n }\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n quickFilterValues: [...values]\n }));\n }, [apiRef]);\n const setFilterModel = React.useCallback((model, reason) => {\n const currentModel = gridFilterModelSelector(apiRef);\n if (currentModel !== model) {\n logger.debug('Setting filter model');\n apiRef.current.unstable_updateControlState('filter', mergeStateWithFilterModel(model, props.disableMultipleColumnsFiltering, apiRef), reason);\n apiRef.current.unstable_applyFilters();\n }\n }, [apiRef, logger, props.disableMultipleColumnsFiltering]);\n const getVisibleRowModels = React.useCallback(() => {\n const visibleSortedRows = gridVisibleSortedRowEntriesSelector(apiRef);\n return new Map(visibleSortedRows.map(row => [row.id, row.model]));\n }, [apiRef]);\n const filterApi = {\n setFilterLinkOperator,\n unstable_applyFilters: applyFilters,\n deleteFilterItem,\n upsertFilterItem,\n upsertFilterItems,\n setFilterModel,\n showFilterPanel,\n hideFilterPanel,\n getVisibleRowModels,\n setQuickFilterValues\n };\n useGridApiMethod(apiRef, filterApi, 'GridFilterApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n var _props$initialState2, _props$initialState2$;\n const filterModelToExport = gridFilterModelSelector(apiRef);\n const shouldExportFilterModel =\n // Always export if the `exportOnlyDirtyModels` property is activated\n !context.exportOnlyDirtyModels ||\n // Always export if the model is controlled\n props.filterModel != null ||\n // Always export if the model has been initialized\n ((_props$initialState2 = props.initialState) == null ? void 0 : (_props$initialState2$ = _props$initialState2.filter) == null ? void 0 : _props$initialState2$.filterModel) != null ||\n // Export if the model is not equal to the default value\n !isDeepEqual(filterModelToExport, getDefaultGridFilterModel());\n if (!shouldExportFilterModel) {\n return prevState;\n }\n return _extends({}, prevState, {\n filter: {\n filterModel: filterModelToExport\n }\n });\n }, [apiRef, props.filterModel, (_props$initialState3 = props.initialState) == null ? void 0 : (_props$initialState3$ = _props$initialState3.filter) == null ? void 0 : _props$initialState3$.filterModel]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto;\n const filterModel = (_context$stateToResto = context.stateToRestore.filter) == null ? void 0 : _context$stateToResto.filterModel;\n if (filterModel == null) {\n return params;\n }\n apiRef.current.unstable_updateControlState('filter', mergeStateWithFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef), 'restoreState');\n return _extends({}, params, {\n callbacks: [...params.callbacks, apiRef.current.unstable_applyFilters]\n });\n }, [apiRef, props.disableMultipleColumnsFiltering]);\n const preferencePanelPreProcessing = React.useCallback((initialValue, value) => {\n if (value === GridPreferencePanelsValue.filters) {\n var _props$componentsProp;\n const FilterPanel = props.components.FilterPanel;\n return /*#__PURE__*/_jsx(FilterPanel, _extends({}, (_props$componentsProp = props.componentsProps) == null ? void 0 : _props$componentsProp.filterPanel));\n }\n return initialValue;\n }, [props.components.FilterPanel, (_props$componentsProp2 = props.componentsProps) == null ? void 0 : _props$componentsProp2.filterPanel]);\n const flatFilteringMethod = React.useCallback(params => {\n if (props.filterMode === GridFeatureModeConstant.client && params.isRowMatchingFilters) {\n const rowIds = gridRowIdsSelector(apiRef);\n const filteredRowsLookup = {};\n for (let i = 0; i < rowIds.length; i += 1) {\n const rowId = rowIds[i];\n let isRowPassing;\n if (typeof rowId === 'string' && rowId.startsWith('auto-generated-group-footer')) {\n isRowPassing = true;\n } else {\n const {\n passingFilterItems,\n passingQuickFilterValues\n } = params.isRowMatchingFilters(rowId);\n isRowPassing = passFilterLogic([passingFilterItems], [passingQuickFilterValues], params.filterModel, apiRef);\n }\n filteredRowsLookup[rowId] = isRowPassing;\n }\n return {\n filteredRowsLookup,\n // For flat tree, the `visibleRowsLookup` and the `filteredRowsLookup` since no row is collapsed.\n visibleRowsLookup: filteredRowsLookup,\n filteredDescendantCountLookup: {}\n };\n }\n return {\n visibleRowsLookup: {},\n filteredRowsLookup: {},\n filteredDescendantCountLookup: {}\n };\n }, [apiRef, props.filterMode]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'preferencePanel', preferencePanelPreProcessing);\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'filtering', flatFilteringMethod);\n /**\n * EVENTS\n */\n\n const handleColumnsChange = React.useCallback(() => {\n logger.debug('onColUpdated - GridColumns changed, applying filters');\n const filterModel = gridFilterModelSelector(apiRef);\n const filterableColumnsLookup = gridFilterableColumnLookupSelector(apiRef);\n const newFilterItems = filterModel.items.filter(item => item.columnField && filterableColumnsLookup[item.columnField]);\n if (newFilterItems.length < filterModel.items.length) {\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: newFilterItems\n }));\n }\n }, [apiRef, logger]);\n const handleStrategyProcessorChange = React.useCallback(methodName => {\n if (methodName === 'filtering') {\n apiRef.current.unstable_applyFilters();\n }\n }, [apiRef]); // Do not call `apiRef.current.forceUpdate` to avoid re-render before updating the sorted rows.\n // Otherwise, the state is not consistent during the render\n\n useGridApiEventHandler(apiRef, 'rowsSet', updateFilteredRows);\n useGridApiEventHandler(apiRef, 'rowExpansionChange', apiRef.current.unstable_applyFilters);\n useGridApiEventHandler(apiRef, 'columnsChange', handleColumnsChange);\n useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);\n /**\n * 1ST RENDER\n */\n\n useFirstRender(() => {\n apiRef.current.unstable_applyFilters();\n });\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (props.filterModel !== undefined) {\n apiRef.current.setFilterModel(props.filterModel);\n }\n }, [apiRef, logger, props.filterModel]);\n};","map":{"version":3,"names":["_extends","React","GridFeatureModeConstant","useGridApiEventHandler","useGridApiMethod","useGridLogger","gridFilterableColumnLookupSelector","GridPreferencePanelsValue","getDefaultGridFilterModel","gridFilterModelSelector","gridVisibleSortedRowEntriesSelector","useFirstRender","gridRowIdsSelector","useGridRegisterPipeProcessor","GRID_DEFAULT_STRATEGY","useGridRegisterStrategyProcessor","buildAggregatedFilterApplier","sanitizeFilterModel","mergeStateWithFilterModel","cleanFilterItem","passFilterLogic","isDeepEqual","jsx","_jsx","filterStateInitializer","state","props","apiRef","_ref","_props$filterModel","_props$initialState","_props$initialState$f","filterModel","initialState","filter","disableMultipleColumnsFiltering","visibleRowsLookup","filteredDescendantCountLookup","useGridFilter","_props$initialState3","_props$initialState3$","_props$componentsProp2","logger","current","unstable_registerControlState","stateId","propModel","propOnChange","onFilterModelChange","stateSelector","changeEvent","updateFilteredRows","useCallback","setState","instanceId","isRowMatchingFilters","filterMode","client","filteringResult","unstable_applyStrategyProcessor","publishEvent","applyFilters","forceUpdate","upsertFilterItem","item","items","itemIndex","findIndex","filterItem","id","push","setFilterModel","upsertFilterItems","existingItems","forEach","deleteFilterItem","itemToDelete","length","showFilterPanel","targetColumnField","debug","filterItemsWithValue","_column$filterOperato","value","undefined","column","getColumn","columnField","filterOperator","filterOperators","find","operator","operatorValue","requiresFilterValue","newFilterItems","filterItemOnTarget","showPreferences","filters","hideFilterPanel","hidePreferences","setFilterLinkOperator","linkOperator","setQuickFilterValues","values","quickFilterValues","model","reason","currentModel","unstable_updateControlState","unstable_applyFilters","getVisibleRowModels","visibleSortedRows","Map","map","row","filterApi","stateExportPreProcessing","prevState","context","_props$initialState2","_props$initialState2$","filterModelToExport","shouldExportFilterModel","exportOnlyDirtyModels","stateRestorePreProcessing","params","_context$stateToResto","stateToRestore","callbacks","preferencePanelPreProcessing","initialValue","_props$componentsProp","FilterPanel","components","componentsProps","filterPanel","flatFilteringMethod","rowIds","filteredRowsLookup","i","rowId","isRowPassing","startsWith","passingFilterItems","passingQuickFilterValues","handleColumnsChange","filterableColumnsLookup","handleStrategyProcessorChange","methodName","useEffect"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@mui/x-data-grid/hooks/features/filter/useGridFilter.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridFeatureModeConstant } from '../../../models/gridFeatureMode';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridFilterableColumnLookupSelector } from '../columns/gridColumnsSelector';\nimport { GridPreferencePanelsValue } from '../preferencesPanel/gridPreferencePanelsValue';\nimport { getDefaultGridFilterModel } from './gridFilterState';\nimport { gridFilterModelSelector, gridVisibleSortedRowEntriesSelector } from './gridFilterSelector';\nimport { useFirstRender } from '../../utils/useFirstRender';\nimport { gridRowIdsSelector } from '../rows';\nimport { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';\nimport { GRID_DEFAULT_STRATEGY, useGridRegisterStrategyProcessor } from '../../core/strategyProcessing';\nimport { buildAggregatedFilterApplier, sanitizeFilterModel, mergeStateWithFilterModel, cleanFilterItem, passFilterLogic } from './gridFilterUtils';\nimport { isDeepEqual } from '../../../utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const filterStateInitializer = (state, props, apiRef) => {\n var _ref, _props$filterModel, _props$initialState, _props$initialState$f;\n\n const filterModel = (_ref = (_props$filterModel = props.filterModel) != null ? _props$filterModel : (_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$f = _props$initialState.filter) == null ? void 0 : _props$initialState$f.filterModel) != null ? _ref : getDefaultGridFilterModel();\n return _extends({}, state, {\n filter: {\n filterModel: sanitizeFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef),\n visibleRowsLookup: {},\n filteredDescendantCountLookup: {}\n }\n });\n};\n/**\n * @requires useGridColumns (method, event)\n * @requires useGridParamsApi (method)\n * @requires useGridRows (event)\n */\n\nexport const useGridFilter = (apiRef, props) => {\n var _props$initialState3, _props$initialState3$, _props$componentsProp2;\n\n const logger = useGridLogger(apiRef, 'useGridFilter');\n apiRef.current.unstable_registerControlState({\n stateId: 'filter',\n propModel: props.filterModel,\n propOnChange: props.onFilterModelChange,\n stateSelector: gridFilterModelSelector,\n changeEvent: 'filterModelChange'\n });\n const updateFilteredRows = React.useCallback(() => {\n apiRef.current.setState(state => {\n const filterModel = gridFilterModelSelector(state, apiRef.current.instanceId);\n const isRowMatchingFilters = props.filterMode === GridFeatureModeConstant.client ? buildAggregatedFilterApplier(filterModel, apiRef) : null;\n const filteringResult = apiRef.current.unstable_applyStrategyProcessor('filtering', {\n isRowMatchingFilters,\n filterModel: filterModel != null ? filterModel : getDefaultGridFilterModel()\n });\n return _extends({}, state, {\n filter: _extends({}, state.filter, filteringResult)\n });\n });\n apiRef.current.publishEvent('filteredRowsSet');\n }, [props.filterMode, apiRef]);\n /**\n * API METHODS\n */\n\n const applyFilters = React.useCallback(() => {\n updateFilteredRows();\n apiRef.current.forceUpdate();\n }, [apiRef, updateFilteredRows]);\n const upsertFilterItem = React.useCallback(item => {\n const filterModel = gridFilterModelSelector(apiRef);\n const items = [...filterModel.items];\n const itemIndex = items.findIndex(filterItem => filterItem.id === item.id);\n\n if (itemIndex === -1) {\n items.push(item);\n } else {\n items[itemIndex] = item;\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }), 'upsertFilterItem');\n }, [apiRef]);\n const upsertFilterItems = React.useCallback(items => {\n const filterModel = gridFilterModelSelector(apiRef);\n const existingItems = [...filterModel.items];\n items.forEach(item => {\n const itemIndex = items.findIndex(filterItem => filterItem.id === item.id);\n\n if (itemIndex === -1) {\n existingItems.push(item);\n } else {\n existingItems[itemIndex] = item;\n }\n });\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }), 'upsertFilterItems');\n }, [apiRef]);\n const deleteFilterItem = React.useCallback(itemToDelete => {\n const filterModel = gridFilterModelSelector(apiRef);\n const items = filterModel.items.filter(item => item.id !== itemToDelete.id);\n\n if (items.length === filterModel.items.length) {\n return;\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }), 'deleteFilterItem');\n }, [apiRef]);\n const showFilterPanel = React.useCallback(targetColumnField => {\n logger.debug('Displaying filter panel');\n\n if (targetColumnField) {\n const filterModel = gridFilterModelSelector(apiRef);\n const filterItemsWithValue = filterModel.items.filter(item => {\n var _column$filterOperato;\n\n if (item.value !== undefined) {\n return true;\n }\n\n const column = apiRef.current.getColumn(item.columnField);\n const filterOperator = (_column$filterOperato = column.filterOperators) == null ? void 0 : _column$filterOperato.find(operator => operator.value === item.operatorValue);\n const requiresFilterValue = typeof (filterOperator == null ? void 0 : filterOperator.requiresFilterValue) === 'undefined' ? true : filterOperator == null ? void 0 : filterOperator.requiresFilterValue; // Operators like `isEmpty` don't have and don't require `item.value`.\n // So we don't want to remove them from the filter model if `item.value === undefined`.\n // See https://github.com/mui/mui-x/issues/5402\n\n if (requiresFilterValue) {\n return false;\n }\n\n return true;\n });\n let newFilterItems;\n const filterItemOnTarget = filterItemsWithValue.find(item => item.columnField === targetColumnField);\n\n if (filterItemOnTarget) {\n newFilterItems = filterItemsWithValue;\n } else if (props.disableMultipleColumnsFiltering) {\n newFilterItems = [cleanFilterItem({\n columnField: targetColumnField\n }, apiRef)];\n } else {\n newFilterItems = [...filterItemsWithValue, cleanFilterItem({\n columnField: targetColumnField\n }, apiRef)];\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: newFilterItems\n }));\n }\n\n apiRef.current.showPreferences(GridPreferencePanelsValue.filters);\n }, [apiRef, logger, props.disableMultipleColumnsFiltering]);\n const hideFilterPanel = React.useCallback(() => {\n logger.debug('Hiding filter panel');\n apiRef.current.hidePreferences();\n }, [apiRef, logger]);\n const setFilterLinkOperator = React.useCallback(linkOperator => {\n const filterModel = gridFilterModelSelector(apiRef);\n\n if (filterModel.linkOperator === linkOperator) {\n return;\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n linkOperator\n }), 'changeLogicOperator');\n }, [apiRef]);\n const setQuickFilterValues = React.useCallback(values => {\n const filterModel = gridFilterModelSelector(apiRef);\n\n if (isDeepEqual(filterModel.quickFilterValues, values)) {\n return;\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n quickFilterValues: [...values]\n }));\n }, [apiRef]);\n const setFilterModel = React.useCallback((model, reason) => {\n const currentModel = gridFilterModelSelector(apiRef);\n\n if (currentModel !== model) {\n logger.debug('Setting filter model');\n apiRef.current.unstable_updateControlState('filter', mergeStateWithFilterModel(model, props.disableMultipleColumnsFiltering, apiRef), reason);\n apiRef.current.unstable_applyFilters();\n }\n }, [apiRef, logger, props.disableMultipleColumnsFiltering]);\n const getVisibleRowModels = React.useCallback(() => {\n const visibleSortedRows = gridVisibleSortedRowEntriesSelector(apiRef);\n return new Map(visibleSortedRows.map(row => [row.id, row.model]));\n }, [apiRef]);\n const filterApi = {\n setFilterLinkOperator,\n unstable_applyFilters: applyFilters,\n deleteFilterItem,\n upsertFilterItem,\n upsertFilterItems,\n setFilterModel,\n showFilterPanel,\n hideFilterPanel,\n getVisibleRowModels,\n setQuickFilterValues\n };\n useGridApiMethod(apiRef, filterApi, 'GridFilterApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback((prevState, context) => {\n var _props$initialState2, _props$initialState2$;\n\n const filterModelToExport = gridFilterModelSelector(apiRef);\n const shouldExportFilterModel = // Always export if the `exportOnlyDirtyModels` property is activated\n !context.exportOnlyDirtyModels || // Always export if the model is controlled\n props.filterModel != null || // Always export if the model has been initialized\n ((_props$initialState2 = props.initialState) == null ? void 0 : (_props$initialState2$ = _props$initialState2.filter) == null ? void 0 : _props$initialState2$.filterModel) != null || // Export if the model is not equal to the default value\n !isDeepEqual(filterModelToExport, getDefaultGridFilterModel());\n\n if (!shouldExportFilterModel) {\n return prevState;\n }\n\n return _extends({}, prevState, {\n filter: {\n filterModel: filterModelToExport\n }\n });\n }, [apiRef, props.filterModel, (_props$initialState3 = props.initialState) == null ? void 0 : (_props$initialState3$ = _props$initialState3.filter) == null ? void 0 : _props$initialState3$.filterModel]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto;\n\n const filterModel = (_context$stateToResto = context.stateToRestore.filter) == null ? void 0 : _context$stateToResto.filterModel;\n\n if (filterModel == null) {\n return params;\n }\n\n apiRef.current.unstable_updateControlState('filter', mergeStateWithFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef), 'restoreState');\n return _extends({}, params, {\n callbacks: [...params.callbacks, apiRef.current.unstable_applyFilters]\n });\n }, [apiRef, props.disableMultipleColumnsFiltering]);\n const preferencePanelPreProcessing = React.useCallback((initialValue, value) => {\n if (value === GridPreferencePanelsValue.filters) {\n var _props$componentsProp;\n\n const FilterPanel = props.components.FilterPanel;\n return /*#__PURE__*/_jsx(FilterPanel, _extends({}, (_props$componentsProp = props.componentsProps) == null ? void 0 : _props$componentsProp.filterPanel));\n }\n\n return initialValue;\n }, [props.components.FilterPanel, (_props$componentsProp2 = props.componentsProps) == null ? void 0 : _props$componentsProp2.filterPanel]);\n const flatFilteringMethod = React.useCallback(params => {\n if (props.filterMode === GridFeatureModeConstant.client && params.isRowMatchingFilters) {\n const rowIds = gridRowIdsSelector(apiRef);\n const filteredRowsLookup = {};\n\n for (let i = 0; i < rowIds.length; i += 1) {\n const rowId = rowIds[i];\n let isRowPassing;\n\n if (typeof rowId === 'string' && rowId.startsWith('auto-generated-group-footer')) {\n isRowPassing = true;\n } else {\n const {\n passingFilterItems,\n passingQuickFilterValues\n } = params.isRowMatchingFilters(rowId);\n isRowPassing = passFilterLogic([passingFilterItems], [passingQuickFilterValues], params.filterModel, apiRef);\n }\n\n filteredRowsLookup[rowId] = isRowPassing;\n }\n\n return {\n filteredRowsLookup,\n // For flat tree, the `visibleRowsLookup` and the `filteredRowsLookup` since no row is collapsed.\n visibleRowsLookup: filteredRowsLookup,\n filteredDescendantCountLookup: {}\n };\n }\n\n return {\n visibleRowsLookup: {},\n filteredRowsLookup: {},\n filteredDescendantCountLookup: {}\n };\n }, [apiRef, props.filterMode]);\n useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n useGridRegisterPipeProcessor(apiRef, 'preferencePanel', preferencePanelPreProcessing);\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'filtering', flatFilteringMethod);\n /**\n * EVENTS\n */\n\n const handleColumnsChange = React.useCallback(() => {\n logger.debug('onColUpdated - GridColumns changed, applying filters');\n const filterModel = gridFilterModelSelector(apiRef);\n const filterableColumnsLookup = gridFilterableColumnLookupSelector(apiRef);\n const newFilterItems = filterModel.items.filter(item => item.columnField && filterableColumnsLookup[item.columnField]);\n\n if (newFilterItems.length < filterModel.items.length) {\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: newFilterItems\n }));\n }\n }, [apiRef, logger]);\n const handleStrategyProcessorChange = React.useCallback(methodName => {\n if (methodName === 'filtering') {\n apiRef.current.unstable_applyFilters();\n }\n }, [apiRef]); // Do not call `apiRef.current.forceUpdate` to avoid re-render before updating the sorted rows.\n // Otherwise, the state is not consistent during the render\n\n useGridApiEventHandler(apiRef, 'rowsSet', updateFilteredRows);\n useGridApiEventHandler(apiRef, 'rowExpansionChange', apiRef.current.unstable_applyFilters);\n useGridApiEventHandler(apiRef, 'columnsChange', handleColumnsChange);\n useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);\n /**\n * 1ST RENDER\n */\n\n useFirstRender(() => {\n apiRef.current.unstable_applyFilters();\n });\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (props.filterModel !== undefined) {\n apiRef.current.setFilterModel(props.filterModel);\n }\n }, [apiRef, logger, props.filterModel]);\n};"],"mappings":"AAAA,OAAOA,QAAQ,MAAM,oCAAoC;AACzD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,uBAAuB,QAAQ,iCAAiC;AACzE,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,kCAAkC,QAAQ,gCAAgC;AACnF,SAASC,yBAAyB,QAAQ,+CAA+C;AACzF,SAASC,yBAAyB,QAAQ,mBAAmB;AAC7D,SAASC,uBAAuB,EAAEC,mCAAmC,QAAQ,sBAAsB;AACnG,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,kBAAkB,QAAQ,SAAS;AAC5C,SAASC,4BAA4B,QAAQ,2BAA2B;AACxE,SAASC,qBAAqB,EAAEC,gCAAgC,QAAQ,+BAA+B;AACvG,SAASC,4BAA4B,EAAEC,mBAAmB,EAAEC,yBAAyB,EAAEC,eAAe,EAAEC,eAAe,QAAQ,mBAAmB;AAClJ,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C,OAAO,MAAMC,sBAAsB,GAAGA,CAACC,KAAK,EAAEC,KAAK,EAAEC,MAAM,KAAK;EAC9D,IAAIC,IAAI,EAAEC,kBAAkB,EAAEC,mBAAmB,EAAEC,qBAAqB;EAExE,MAAMC,WAAW,GAAG,CAACJ,IAAI,GAAG,CAACC,kBAAkB,GAAGH,KAAK,CAACM,WAAW,KAAK,IAAI,GAAGH,kBAAkB,GAAG,CAACC,mBAAmB,GAAGJ,KAAK,CAACO,YAAY,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,CAACF,qBAAqB,GAAGD,mBAAmB,CAACI,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGH,qBAAqB,CAACC,WAAW,KAAK,IAAI,GAAGJ,IAAI,GAAGpB,yBAAyB,CAAC,CAAC;EACzT,OAAOR,QAAQ,CAAC,CAAC,CAAC,EAAEyB,KAAK,EAAE;IACzBS,MAAM,EAAE;MACNF,WAAW,EAAEf,mBAAmB,CAACe,WAAW,EAAEN,KAAK,CAACS,+BAA+B,EAAER,MAAM,CAAC;MAC5FS,iBAAiB,EAAE,CAAC,CAAC;MACrBC,6BAA6B,EAAE,CAAC;IAClC;EACF,CAAC,CAAC;AACJ,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMC,aAAa,GAAGA,CAACX,MAAM,EAAED,KAAK,KAAK;EAC9C,IAAIa,oBAAoB,EAAEC,qBAAqB,EAAEC,sBAAsB;EAEvE,MAAMC,MAAM,GAAGrC,aAAa,CAACsB,MAAM,EAAE,eAAe,CAAC;EACrDA,MAAM,CAACgB,OAAO,CAACC,6BAA6B,CAAC;IAC3CC,OAAO,EAAE,QAAQ;IACjBC,SAAS,EAAEpB,KAAK,CAACM,WAAW;IAC5Be,YAAY,EAAErB,KAAK,CAACsB,mBAAmB;IACvCC,aAAa,EAAExC,uBAAuB;IACtCyC,WAAW,EAAE;EACf,CAAC,CAAC;EACF,MAAMC,kBAAkB,GAAGlD,KAAK,CAACmD,WAAW,CAAC,MAAM;IACjDzB,MAAM,CAACgB,OAAO,CAACU,QAAQ,CAAC5B,KAAK,IAAI;MAC/B,MAAMO,WAAW,GAAGvB,uBAAuB,CAACgB,KAAK,EAAEE,MAAM,CAACgB,OAAO,CAACW,UAAU,CAAC;MAC7E,MAAMC,oBAAoB,GAAG7B,KAAK,CAAC8B,UAAU,KAAKtD,uBAAuB,CAACuD,MAAM,GAAGzC,4BAA4B,CAACgB,WAAW,EAAEL,MAAM,CAAC,GAAG,IAAI;MAC3I,MAAM+B,eAAe,GAAG/B,MAAM,CAACgB,OAAO,CAACgB,+BAA+B,CAAC,WAAW,EAAE;QAClFJ,oBAAoB;QACpBvB,WAAW,EAAEA,WAAW,IAAI,IAAI,GAAGA,WAAW,GAAGxB,yBAAyB,CAAC;MAC7E,CAAC,CAAC;MACF,OAAOR,QAAQ,CAAC,CAAC,CAAC,EAAEyB,KAAK,EAAE;QACzBS,MAAM,EAAElC,QAAQ,CAAC,CAAC,CAAC,EAAEyB,KAAK,CAACS,MAAM,EAAEwB,eAAe;MACpD,CAAC,CAAC;IACJ,CAAC,CAAC;IACF/B,MAAM,CAACgB,OAAO,CAACiB,YAAY,CAAC,iBAAiB,CAAC;EAChD,CAAC,EAAE,CAAClC,KAAK,CAAC8B,UAAU,EAAE7B,MAAM,CAAC,CAAC;EAC9B;AACF;AACA;;EAEE,MAAMkC,YAAY,GAAG5D,KAAK,CAACmD,WAAW,CAAC,MAAM;IAC3CD,kBAAkB,CAAC,CAAC;IACpBxB,MAAM,CAACgB,OAAO,CAACmB,WAAW,CAAC,CAAC;EAC9B,CAAC,EAAE,CAACnC,MAAM,EAAEwB,kBAAkB,CAAC,CAAC;EAChC,MAAMY,gBAAgB,GAAG9D,KAAK,CAACmD,WAAW,CAACY,IAAI,IAAI;IACjD,MAAMhC,WAAW,GAAGvB,uBAAuB,CAACkB,MAAM,CAAC;IACnD,MAAMsC,KAAK,GAAG,CAAC,GAAGjC,WAAW,CAACiC,KAAK,CAAC;IACpC,MAAMC,SAAS,GAAGD,KAAK,CAACE,SAAS,CAACC,UAAU,IAAIA,UAAU,CAACC,EAAE,KAAKL,IAAI,CAACK,EAAE,CAAC;IAE1E,IAAIH,SAAS,KAAK,CAAC,CAAC,EAAE;MACpBD,KAAK,CAACK,IAAI,CAACN,IAAI,CAAC;IAClB,CAAC,MAAM;MACLC,KAAK,CAACC,SAAS,CAAC,GAAGF,IAAI;IACzB;IAEArC,MAAM,CAACgB,OAAO,CAAC4B,cAAc,CAACvE,QAAQ,CAAC,CAAC,CAAC,EAAEgC,WAAW,EAAE;MACtDiC;IACF,CAAC,CAAC,EAAE,kBAAkB,CAAC;EACzB,CAAC,EAAE,CAACtC,MAAM,CAAC,CAAC;EACZ,MAAM6C,iBAAiB,GAAGvE,KAAK,CAACmD,WAAW,CAACa,KAAK,IAAI;IACnD,MAAMjC,WAAW,GAAGvB,uBAAuB,CAACkB,MAAM,CAAC;IACnD,MAAM8C,aAAa,GAAG,CAAC,GAAGzC,WAAW,CAACiC,KAAK,CAAC;IAC5CA,KAAK,CAACS,OAAO,CAACV,IAAI,IAAI;MACpB,MAAME,SAAS,GAAGD,KAAK,CAACE,SAAS,CAACC,UAAU,IAAIA,UAAU,CAACC,EAAE,KAAKL,IAAI,CAACK,EAAE,CAAC;MAE1E,IAAIH,SAAS,KAAK,CAAC,CAAC,EAAE;QACpBO,aAAa,CAACH,IAAI,CAACN,IAAI,CAAC;MAC1B,CAAC,MAAM;QACLS,aAAa,CAACP,SAAS,CAAC,GAAGF,IAAI;MACjC;IACF,CAAC,CAAC;IACFrC,MAAM,CAACgB,OAAO,CAAC4B,cAAc,CAACvE,QAAQ,CAAC,CAAC,CAAC,EAAEgC,WAAW,EAAE;MACtDiC;IACF,CAAC,CAAC,EAAE,mBAAmB,CAAC;EAC1B,CAAC,EAAE,CAACtC,MAAM,CAAC,CAAC;EACZ,MAAMgD,gBAAgB,GAAG1E,KAAK,CAACmD,WAAW,CAACwB,YAAY,IAAI;IACzD,MAAM5C,WAAW,GAAGvB,uBAAuB,CAACkB,MAAM,CAAC;IACnD,MAAMsC,KAAK,GAAGjC,WAAW,CAACiC,KAAK,CAAC/B,MAAM,CAAC8B,IAAI,IAAIA,IAAI,CAACK,EAAE,KAAKO,YAAY,CAACP,EAAE,CAAC;IAE3E,IAAIJ,KAAK,CAACY,MAAM,KAAK7C,WAAW,CAACiC,KAAK,CAACY,MAAM,EAAE;MAC7C;IACF;IAEAlD,MAAM,CAACgB,OAAO,CAAC4B,cAAc,CAACvE,QAAQ,CAAC,CAAC,CAAC,EAAEgC,WAAW,EAAE;MACtDiC;IACF,CAAC,CAAC,EAAE,kBAAkB,CAAC;EACzB,CAAC,EAAE,CAACtC,MAAM,CAAC,CAAC;EACZ,MAAMmD,eAAe,GAAG7E,KAAK,CAACmD,WAAW,CAAC2B,iBAAiB,IAAI;IAC7DrC,MAAM,CAACsC,KAAK,CAAC,yBAAyB,CAAC;IAEvC,IAAID,iBAAiB,EAAE;MACrB,MAAM/C,WAAW,GAAGvB,uBAAuB,CAACkB,MAAM,CAAC;MACnD,MAAMsD,oBAAoB,GAAGjD,WAAW,CAACiC,KAAK,CAAC/B,MAAM,CAAC8B,IAAI,IAAI;QAC5D,IAAIkB,qBAAqB;QAEzB,IAAIlB,IAAI,CAACmB,KAAK,KAAKC,SAAS,EAAE;UAC5B,OAAO,IAAI;QACb;QAEA,MAAMC,MAAM,GAAG1D,MAAM,CAACgB,OAAO,CAAC2C,SAAS,CAACtB,IAAI,CAACuB,WAAW,CAAC;QACzD,MAAMC,cAAc,GAAG,CAACN,qBAAqB,GAAGG,MAAM,CAACI,eAAe,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGP,qBAAqB,CAACQ,IAAI,CAACC,QAAQ,IAAIA,QAAQ,CAACR,KAAK,KAAKnB,IAAI,CAAC4B,aAAa,CAAC;QACxK,MAAMC,mBAAmB,GAAG,QAAQL,cAAc,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACK,mBAAmB,CAAC,KAAK,WAAW,GAAG,IAAI,GAAGL,cAAc,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACK,mBAAmB,CAAC,CAAC;QACzM;QACA;;QAEA,IAAIA,mBAAmB,EAAE;UACvB,OAAO,KAAK;QACd;QAEA,OAAO,IAAI;MACb,CAAC,CAAC;MACF,IAAIC,cAAc;MAClB,MAAMC,kBAAkB,GAAGd,oBAAoB,CAACS,IAAI,CAAC1B,IAAI,IAAIA,IAAI,CAACuB,WAAW,KAAKR,iBAAiB,CAAC;MAEpG,IAAIgB,kBAAkB,EAAE;QACtBD,cAAc,GAAGb,oBAAoB;MACvC,CAAC,MAAM,IAAIvD,KAAK,CAACS,+BAA+B,EAAE;QAChD2D,cAAc,GAAG,CAAC3E,eAAe,CAAC;UAChCoE,WAAW,EAAER;QACf,CAAC,EAAEpD,MAAM,CAAC,CAAC;MACb,CAAC,MAAM;QACLmE,cAAc,GAAG,CAAC,GAAGb,oBAAoB,EAAE9D,eAAe,CAAC;UACzDoE,WAAW,EAAER;QACf,CAAC,EAAEpD,MAAM,CAAC,CAAC;MACb;MAEAA,MAAM,CAACgB,OAAO,CAAC4B,cAAc,CAACvE,QAAQ,CAAC,CAAC,CAAC,EAAEgC,WAAW,EAAE;QACtDiC,KAAK,EAAE6B;MACT,CAAC,CAAC,CAAC;IACL;IAEAnE,MAAM,CAACgB,OAAO,CAACqD,eAAe,CAACzF,yBAAyB,CAAC0F,OAAO,CAAC;EACnE,CAAC,EAAE,CAACtE,MAAM,EAAEe,MAAM,EAAEhB,KAAK,CAACS,+BAA+B,CAAC,CAAC;EAC3D,MAAM+D,eAAe,GAAGjG,KAAK,CAACmD,WAAW,CAAC,MAAM;IAC9CV,MAAM,CAACsC,KAAK,CAAC,qBAAqB,CAAC;IACnCrD,MAAM,CAACgB,OAAO,CAACwD,eAAe,CAAC,CAAC;EAClC,CAAC,EAAE,CAACxE,MAAM,EAAEe,MAAM,CAAC,CAAC;EACpB,MAAM0D,qBAAqB,GAAGnG,KAAK,CAACmD,WAAW,CAACiD,YAAY,IAAI;IAC9D,MAAMrE,WAAW,GAAGvB,uBAAuB,CAACkB,MAAM,CAAC;IAEnD,IAAIK,WAAW,CAACqE,YAAY,KAAKA,YAAY,EAAE;MAC7C;IACF;IAEA1E,MAAM,CAACgB,OAAO,CAAC4B,cAAc,CAACvE,QAAQ,CAAC,CAAC,CAAC,EAAEgC,WAAW,EAAE;MACtDqE;IACF,CAAC,CAAC,EAAE,qBAAqB,CAAC;EAC5B,CAAC,EAAE,CAAC1E,MAAM,CAAC,CAAC;EACZ,MAAM2E,oBAAoB,GAAGrG,KAAK,CAACmD,WAAW,CAACmD,MAAM,IAAI;IACvD,MAAMvE,WAAW,GAAGvB,uBAAuB,CAACkB,MAAM,CAAC;IAEnD,IAAIN,WAAW,CAACW,WAAW,CAACwE,iBAAiB,EAAED,MAAM,CAAC,EAAE;MACtD;IACF;IAEA5E,MAAM,CAACgB,OAAO,CAAC4B,cAAc,CAACvE,QAAQ,CAAC,CAAC,CAAC,EAAEgC,WAAW,EAAE;MACtDwE,iBAAiB,EAAE,CAAC,GAAGD,MAAM;IAC/B,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,CAAC5E,MAAM,CAAC,CAAC;EACZ,MAAM4C,cAAc,GAAGtE,KAAK,CAACmD,WAAW,CAAC,CAACqD,KAAK,EAAEC,MAAM,KAAK;IAC1D,MAAMC,YAAY,GAAGlG,uBAAuB,CAACkB,MAAM,CAAC;IAEpD,IAAIgF,YAAY,KAAKF,KAAK,EAAE;MAC1B/D,MAAM,CAACsC,KAAK,CAAC,sBAAsB,CAAC;MACpCrD,MAAM,CAACgB,OAAO,CAACiE,2BAA2B,CAAC,QAAQ,EAAE1F,yBAAyB,CAACuF,KAAK,EAAE/E,KAAK,CAACS,+BAA+B,EAAER,MAAM,CAAC,EAAE+E,MAAM,CAAC;MAC7I/E,MAAM,CAACgB,OAAO,CAACkE,qBAAqB,CAAC,CAAC;IACxC;EACF,CAAC,EAAE,CAAClF,MAAM,EAAEe,MAAM,EAAEhB,KAAK,CAACS,+BAA+B,CAAC,CAAC;EAC3D,MAAM2E,mBAAmB,GAAG7G,KAAK,CAACmD,WAAW,CAAC,MAAM;IAClD,MAAM2D,iBAAiB,GAAGrG,mCAAmC,CAACiB,MAAM,CAAC;IACrE,OAAO,IAAIqF,GAAG,CAACD,iBAAiB,CAACE,GAAG,CAACC,GAAG,IAAI,CAACA,GAAG,CAAC7C,EAAE,EAAE6C,GAAG,CAACT,KAAK,CAAC,CAAC,CAAC;EACnE,CAAC,EAAE,CAAC9E,MAAM,CAAC,CAAC;EACZ,MAAMwF,SAAS,GAAG;IAChBf,qBAAqB;IACrBS,qBAAqB,EAAEhD,YAAY;IACnCc,gBAAgB;IAChBZ,gBAAgB;IAChBS,iBAAiB;IACjBD,cAAc;IACdO,eAAe;IACfoB,eAAe;IACfY,mBAAmB;IACnBR;EACF,CAAC;EACDlG,gBAAgB,CAACuB,MAAM,EAAEwF,SAAS,EAAE,eAAe,CAAC;EACpD;AACF;AACA;;EAEE,MAAMC,wBAAwB,GAAGnH,KAAK,CAACmD,WAAW,CAAC,CAACiE,SAAS,EAAEC,OAAO,KAAK;IACzE,IAAIC,oBAAoB,EAAEC,qBAAqB;IAE/C,MAAMC,mBAAmB,GAAGhH,uBAAuB,CAACkB,MAAM,CAAC;IAC3D,MAAM+F,uBAAuB;IAAG;IAChC,CAACJ,OAAO,CAACK,qBAAqB;IAAI;IAClCjG,KAAK,CAACM,WAAW,IAAI,IAAI;IAAI;IAC7B,CAAC,CAACuF,oBAAoB,GAAG7F,KAAK,CAACO,YAAY,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,CAACuF,qBAAqB,GAAGD,oBAAoB,CAACrF,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGsF,qBAAqB,CAACxF,WAAW,KAAK,IAAI;IAAI;IACvL,CAACX,WAAW,CAACoG,mBAAmB,EAAEjH,yBAAyB,CAAC,CAAC,CAAC;IAE9D,IAAI,CAACkH,uBAAuB,EAAE;MAC5B,OAAOL,SAAS;IAClB;IAEA,OAAOrH,QAAQ,CAAC,CAAC,CAAC,EAAEqH,SAAS,EAAE;MAC7BnF,MAAM,EAAE;QACNF,WAAW,EAAEyF;MACf;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC9F,MAAM,EAAED,KAAK,CAACM,WAAW,EAAE,CAACO,oBAAoB,GAAGb,KAAK,CAACO,YAAY,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,CAACO,qBAAqB,GAAGD,oBAAoB,CAACL,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGM,qBAAqB,CAACR,WAAW,CAAC,CAAC;EAC1M,MAAM4F,yBAAyB,GAAG3H,KAAK,CAACmD,WAAW,CAAC,CAACyE,MAAM,EAAEP,OAAO,KAAK;IACvE,IAAIQ,qBAAqB;IAEzB,MAAM9F,WAAW,GAAG,CAAC8F,qBAAqB,GAAGR,OAAO,CAACS,cAAc,CAAC7F,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG4F,qBAAqB,CAAC9F,WAAW;IAEhI,IAAIA,WAAW,IAAI,IAAI,EAAE;MACvB,OAAO6F,MAAM;IACf;IAEAlG,MAAM,CAACgB,OAAO,CAACiE,2BAA2B,CAAC,QAAQ,EAAE1F,yBAAyB,CAACc,WAAW,EAAEN,KAAK,CAACS,+BAA+B,EAAER,MAAM,CAAC,EAAE,cAAc,CAAC;IAC3J,OAAO3B,QAAQ,CAAC,CAAC,CAAC,EAAE6H,MAAM,EAAE;MAC1BG,SAAS,EAAE,CAAC,GAAGH,MAAM,CAACG,SAAS,EAAErG,MAAM,CAACgB,OAAO,CAACkE,qBAAqB;IACvE,CAAC,CAAC;EACJ,CAAC,EAAE,CAAClF,MAAM,EAAED,KAAK,CAACS,+BAA+B,CAAC,CAAC;EACnD,MAAM8F,4BAA4B,GAAGhI,KAAK,CAACmD,WAAW,CAAC,CAAC8E,YAAY,EAAE/C,KAAK,KAAK;IAC9E,IAAIA,KAAK,KAAK5E,yBAAyB,CAAC0F,OAAO,EAAE;MAC/C,IAAIkC,qBAAqB;MAEzB,MAAMC,WAAW,GAAG1G,KAAK,CAAC2G,UAAU,CAACD,WAAW;MAChD,OAAO,aAAa7G,IAAI,CAAC6G,WAAW,EAAEpI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAACmI,qBAAqB,GAAGzG,KAAK,CAAC4G,eAAe,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGH,qBAAqB,CAACI,WAAW,CAAC,CAAC;IAC3J;IAEA,OAAOL,YAAY;EACrB,CAAC,EAAE,CAACxG,KAAK,CAAC2G,UAAU,CAACD,WAAW,EAAE,CAAC3F,sBAAsB,GAAGf,KAAK,CAAC4G,eAAe,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG7F,sBAAsB,CAAC8F,WAAW,CAAC,CAAC;EAC1I,MAAMC,mBAAmB,GAAGvI,KAAK,CAACmD,WAAW,CAACyE,MAAM,IAAI;IACtD,IAAInG,KAAK,CAAC8B,UAAU,KAAKtD,uBAAuB,CAACuD,MAAM,IAAIoE,MAAM,CAACtE,oBAAoB,EAAE;MACtF,MAAMkF,MAAM,GAAG7H,kBAAkB,CAACe,MAAM,CAAC;MACzC,MAAM+G,kBAAkB,GAAG,CAAC,CAAC;MAE7B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAAC5D,MAAM,EAAE8D,CAAC,IAAI,CAAC,EAAE;QACzC,MAAMC,KAAK,GAAGH,MAAM,CAACE,CAAC,CAAC;QACvB,IAAIE,YAAY;QAEhB,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACE,UAAU,CAAC,6BAA6B,CAAC,EAAE;UAChFD,YAAY,GAAG,IAAI;QACrB,CAAC,MAAM;UACL,MAAM;YACJE,kBAAkB;YAClBC;UACF,CAAC,GAAGnB,MAAM,CAACtE,oBAAoB,CAACqF,KAAK,CAAC;UACtCC,YAAY,GAAGzH,eAAe,CAAC,CAAC2H,kBAAkB,CAAC,EAAE,CAACC,wBAAwB,CAAC,EAAEnB,MAAM,CAAC7F,WAAW,EAAEL,MAAM,CAAC;QAC9G;QAEA+G,kBAAkB,CAACE,KAAK,CAAC,GAAGC,YAAY;MAC1C;MAEA,OAAO;QACLH,kBAAkB;QAClB;QACAtG,iBAAiB,EAAEsG,kBAAkB;QACrCrG,6BAA6B,EAAE,CAAC;MAClC,CAAC;IACH;IAEA,OAAO;MACLD,iBAAiB,EAAE,CAAC,CAAC;MACrBsG,kBAAkB,EAAE,CAAC,CAAC;MACtBrG,6BAA6B,EAAE,CAAC;IAClC,CAAC;EACH,CAAC,EAAE,CAACV,MAAM,EAAED,KAAK,CAAC8B,UAAU,CAAC,CAAC;EAC9B3C,4BAA4B,CAACc,MAAM,EAAE,aAAa,EAAEyF,wBAAwB,CAAC;EAC7EvG,4BAA4B,CAACc,MAAM,EAAE,cAAc,EAAEiG,yBAAyB,CAAC;EAC/E/G,4BAA4B,CAACc,MAAM,EAAE,iBAAiB,EAAEsG,4BAA4B,CAAC;EACrFlH,gCAAgC,CAACY,MAAM,EAAEb,qBAAqB,EAAE,WAAW,EAAE0H,mBAAmB,CAAC;EACjG;AACF;AACA;;EAEE,MAAMS,mBAAmB,GAAGhJ,KAAK,CAACmD,WAAW,CAAC,MAAM;IAClDV,MAAM,CAACsC,KAAK,CAAC,sDAAsD,CAAC;IACpE,MAAMhD,WAAW,GAAGvB,uBAAuB,CAACkB,MAAM,CAAC;IACnD,MAAMuH,uBAAuB,GAAG5I,kCAAkC,CAACqB,MAAM,CAAC;IAC1E,MAAMmE,cAAc,GAAG9D,WAAW,CAACiC,KAAK,CAAC/B,MAAM,CAAC8B,IAAI,IAAIA,IAAI,CAACuB,WAAW,IAAI2D,uBAAuB,CAAClF,IAAI,CAACuB,WAAW,CAAC,CAAC;IAEtH,IAAIO,cAAc,CAACjB,MAAM,GAAG7C,WAAW,CAACiC,KAAK,CAACY,MAAM,EAAE;MACpDlD,MAAM,CAACgB,OAAO,CAAC4B,cAAc,CAACvE,QAAQ,CAAC,CAAC,CAAC,EAAEgC,WAAW,EAAE;QACtDiC,KAAK,EAAE6B;MACT,CAAC,CAAC,CAAC;IACL;EACF,CAAC,EAAE,CAACnE,MAAM,EAAEe,MAAM,CAAC,CAAC;EACpB,MAAMyG,6BAA6B,GAAGlJ,KAAK,CAACmD,WAAW,CAACgG,UAAU,IAAI;IACpE,IAAIA,UAAU,KAAK,WAAW,EAAE;MAC9BzH,MAAM,CAACgB,OAAO,CAACkE,qBAAqB,CAAC,CAAC;IACxC;EACF,CAAC,EAAE,CAAClF,MAAM,CAAC,CAAC,CAAC,CAAC;EACd;;EAEAxB,sBAAsB,CAACwB,MAAM,EAAE,SAAS,EAAEwB,kBAAkB,CAAC;EAC7DhD,sBAAsB,CAACwB,MAAM,EAAE,oBAAoB,EAAEA,MAAM,CAACgB,OAAO,CAACkE,qBAAqB,CAAC;EAC1F1G,sBAAsB,CAACwB,MAAM,EAAE,eAAe,EAAEsH,mBAAmB,CAAC;EACpE9I,sBAAsB,CAACwB,MAAM,EAAE,+BAA+B,EAAEwH,6BAA6B,CAAC;EAC9F;AACF;AACA;;EAEExI,cAAc,CAAC,MAAM;IACnBgB,MAAM,CAACgB,OAAO,CAACkE,qBAAqB,CAAC,CAAC;EACxC,CAAC,CAAC;EACF;AACF;AACA;;EAEE5G,KAAK,CAACoJ,SAAS,CAAC,MAAM;IACpB,IAAI3H,KAAK,CAACM,WAAW,KAAKoD,SAAS,EAAE;MACnCzD,MAAM,CAACgB,OAAO,CAAC4B,cAAc,CAAC7C,KAAK,CAACM,WAAW,CAAC;IAClD;EACF,CAAC,EAAE,CAACL,MAAM,EAAEe,MAAM,EAAEhB,KAAK,CAACM,WAAW,CAAC,CAAC;AACzC,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |