@vuu-ui/vuu-filters 2.1.18 → 2.1.19-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +15 -18
- package/src/FilterAggregator.js +107 -0
- package/src/FilterModel.js +161 -0
- package/src/column-filter/ColumnFilter.css.js +52 -0
- package/src/column-filter/ColumnFilter.js +59 -0
- package/src/column-filter/useColumnFilter.js +130 -0
- package/src/column-filter/utils.js +35 -0
- package/src/custom-filters/CustomFilters.js +74 -0
- package/src/custom-filters/filterBarFocusManagement.js +25 -0
- package/src/custom-filters/index.js +1 -0
- package/src/custom-filters/useCustomFilters.js +237 -0
- package/src/custom-filters/useFilterState.js +123 -0
- package/src/filter-bar/FilterBar.css.js +81 -0
- package/src/filter-bar/FilterBar.js +97 -0
- package/src/filter-bar/FilterBarMenu.js +14 -0
- package/src/filter-bar/index.js +1 -0
- package/src/filter-bar/useFilterBar.js +28 -0
- package/src/filter-clause/ExpandoCombobox.css.js +54 -0
- package/src/filter-clause/ExpandoCombobox.js +86 -0
- package/src/filter-clause/FilterClause.css.js +101 -0
- package/src/filter-clause/FilterClause.js +69 -0
- package/src/filter-clause/column-picker/ColumnPicker.js +25 -0
- package/src/filter-clause/column-picker/useColumnPicker.js +42 -0
- package/src/filter-clause/filterClauseFocusManagement.js +156 -0
- package/src/filter-clause/filterClauseTypes.js +0 -0
- package/src/filter-clause/index.js +5 -0
- package/src/filter-clause/operator-picker/OperatorPicker.js +25 -0
- package/src/filter-clause/operator-picker/operator-utils.js +23 -0
- package/src/filter-clause/operator-picker/useOperatorPicker.js +42 -0
- package/src/filter-clause/useFilterClause.js +135 -0
- package/src/filter-clause/value-editors/FilterClauseValueEditor.js +59 -0
- package/src/filter-clause/value-editors/FilterClauseValueEditorDate.js +55 -0
- package/src/filter-clause/value-editors/FilterClauseValueEditorNumber.js +32 -0
- package/src/filter-clause/value-editors/FilterClauseValueEditorText.js +182 -0
- package/src/filter-clause/value-editors/FilterClauseValueEditorTime.js +53 -0
- package/src/filter-container/ExtendedSingleValueFilterClause.js +35 -0
- package/src/filter-container/FilterContainer.css.js +13 -0
- package/src/filter-container/FilterContainer.js +121 -0
- package/src/filter-container/useFilterContainer.js +82 -0
- package/src/filter-context-menu/useFilterContextMenu.js +106 -0
- package/src/filter-display/FilterDisplay.css.js +31 -0
- package/src/filter-display/FilterDisplay.js +59 -0
- package/src/filter-editor/FilterClauseCombinator.css.js +15 -0
- package/src/filter-editor/FilterClauseCombinator.js +32 -0
- package/src/filter-editor/FilterEditor.css.js +13 -0
- package/src/filter-editor/FilterEditor.js +65 -0
- package/src/filter-editor/index.js +1 -0
- package/src/filter-editor/useFilterEditor.js +193 -0
- package/src/filter-panel/FilterPanel.css.js +22 -0
- package/src/filter-panel/FilterPanel.js +59 -0
- package/src/filter-panel/useFilterPanel.js +58 -0
- package/src/filter-pill/FilterMenu.js +48 -0
- package/src/filter-pill/FilterPill.css.js +15 -0
- package/src/filter-pill/FilterPill.js +114 -0
- package/src/filter-pill/FilterPillNext.css.js +12 -0
- package/src/filter-pill/FilterPillNext.js +65 -0
- package/src/filter-pill/filterAsReactNode.js +28 -0
- package/src/filter-pill/getFilterLabel.js +11 -0
- package/src/filter-pill/getFilterTooltipText.js +32 -0
- package/src/filter-pill/index.js +1 -0
- package/src/filter-pill/useFilterPillNext.js +53 -0
- package/src/filter-pill-menu/FilterPillMenu.css.js +8 -0
- package/src/filter-pill-menu/FilterPillMenu.js +46 -0
- package/src/filter-pill-menu/FilterPillMenuOptions.js +26 -0
- package/src/filter-pill-menu/index.js +1 -0
- package/src/filter-provider/FilterContext.js +71 -0
- package/src/filter-provider/FilterProvider.js +188 -0
- package/src/filter-provider/filter-descriptor-utils.js +41 -0
- package/src/filter-toggle-button/FilterToggleButton.css.js +22 -0
- package/src/filter-toggle-button/FilterToggleButton.js +103 -0
- package/src/filter-utils.js +300 -0
- package/src/index.js +21 -0
- package/src/inline-filter/InlineFilter.css.js +89 -0
- package/src/inline-filter/InlineFilter.js +56 -0
- package/src/inline-filter/index.js +1 -0
- package/src/inline-filter/useInlineFilter.js +11 -0
- package/src/quick-filters/QuickFilters.css.js +39 -0
- package/src/quick-filters/QuickFilters.js +81 -0
- package/src/quick-filters/index.js +1 -0
- package/src/quick-filters/useQuickFilters.js +108 -0
- package/src/saved-filters/DeleteFilterPrompt.js +23 -0
- package/src/saved-filters/FilterNamePrompt.css.js +19 -0
- package/src/saved-filters/FilterNamePrompt.js +74 -0
- package/src/saved-filters/SavedFilterPanel.css.js +21 -0
- package/src/saved-filters/SavedFilterPanel.js +53 -0
- package/src/saved-filters/useFilterNamePrompt.js +74 -0
- package/src/saved-filters/useSavedFilterPanel.js +19 -0
- package/src/tabbed-filter-container/TabbedFilterContainer.js +61 -0
- package/src/toggle-filter/ToggleFilter.css.js +10 -0
- package/src/toggle-filter/ToggleFilter.js +68 -0
- package/src/toggle-filter/useToggleFilter.js +57 -0
- package/types/filter-clause/column-picker/ColumnPicker.d.ts +1 -1
- package/types/filter-clause/operator-picker/OperatorPicker.d.ts +1 -1
- package/types/filter-clause/value-editors/FilterClauseValueEditor.d.ts +1 -1
- package/cjs/FilterAggregator.js +0 -162
- package/cjs/FilterAggregator.js.map +0 -1
- package/cjs/FilterModel.js +0 -227
- package/cjs/FilterModel.js.map +0 -1
- package/cjs/column-filter/ColumnFilter.css.js +0 -6
- package/cjs/column-filter/ColumnFilter.css.js.map +0 -1
- package/cjs/column-filter/ColumnFilter.js +0 -83
- package/cjs/column-filter/ColumnFilter.js.map +0 -1
- package/cjs/column-filter/useColumnFilter.js +0 -139
- package/cjs/column-filter/useColumnFilter.js.map +0 -1
- package/cjs/custom-filters/CustomFilters.js +0 -99
- package/cjs/custom-filters/CustomFilters.js.map +0 -1
- package/cjs/custom-filters/filterBarFocusManagement.js +0 -35
- package/cjs/custom-filters/filterBarFocusManagement.js.map +0 -1
- package/cjs/custom-filters/useCustomFilters.js +0 -266
- package/cjs/custom-filters/useCustomFilters.js.map +0 -1
- package/cjs/custom-filters/useFilterState.js +0 -149
- package/cjs/custom-filters/useFilterState.js.map +0 -1
- package/cjs/filter-bar/FilterBar.css.js +0 -6
- package/cjs/filter-bar/FilterBar.css.js.map +0 -1
- package/cjs/filter-bar/FilterBar.js +0 -123
- package/cjs/filter-bar/FilterBar.js.map +0 -1
- package/cjs/filter-bar/useFilterBar.js +0 -37
- package/cjs/filter-bar/useFilterBar.js.map +0 -1
- package/cjs/filter-clause/ExpandoCombobox.css.js +0 -6
- package/cjs/filter-clause/ExpandoCombobox.css.js.map +0 -1
- package/cjs/filter-clause/ExpandoCombobox.js +0 -114
- package/cjs/filter-clause/ExpandoCombobox.js.map +0 -1
- package/cjs/filter-clause/FilterClause.css.js +0 -6
- package/cjs/filter-clause/FilterClause.css.js.map +0 -1
- package/cjs/filter-clause/FilterClause.js +0 -102
- package/cjs/filter-clause/FilterClause.js.map +0 -1
- package/cjs/filter-clause/column-picker/ColumnPicker.js +0 -39
- package/cjs/filter-clause/column-picker/ColumnPicker.js.map +0 -1
- package/cjs/filter-clause/column-picker/useColumnPicker.js +0 -61
- package/cjs/filter-clause/column-picker/useColumnPicker.js.map +0 -1
- package/cjs/filter-clause/filterClauseFocusManagement.js +0 -204
- package/cjs/filter-clause/filterClauseFocusManagement.js.map +0 -1
- package/cjs/filter-clause/operator-picker/OperatorPicker.js +0 -40
- package/cjs/filter-clause/operator-picker/OperatorPicker.js.map +0 -1
- package/cjs/filter-clause/operator-picker/operator-utils.js +0 -34
- package/cjs/filter-clause/operator-picker/operator-utils.js.map +0 -1
- package/cjs/filter-clause/operator-picker/useOperatorPicker.js +0 -61
- package/cjs/filter-clause/operator-picker/useOperatorPicker.js.map +0 -1
- package/cjs/filter-clause/useFilterClause.js +0 -172
- package/cjs/filter-clause/useFilterClause.js.map +0 -1
- package/cjs/filter-clause/value-editors/FilterClauseValueEditor.js +0 -93
- package/cjs/filter-clause/value-editors/FilterClauseValueEditor.js.map +0 -1
- package/cjs/filter-clause/value-editors/FilterClauseValueEditorDate.js +0 -64
- package/cjs/filter-clause/value-editors/FilterClauseValueEditorDate.js.map +0 -1
- package/cjs/filter-clause/value-editors/FilterClauseValueEditorNumber.js +0 -55
- package/cjs/filter-clause/value-editors/FilterClauseValueEditorNumber.js.map +0 -1
- package/cjs/filter-clause/value-editors/FilterClauseValueEditorText.js +0 -222
- package/cjs/filter-clause/value-editors/FilterClauseValueEditorText.js.map +0 -1
- package/cjs/filter-clause/value-editors/FilterClauseValueEditorTime.js +0 -62
- package/cjs/filter-clause/value-editors/FilterClauseValueEditorTime.js.map +0 -1
- package/cjs/filter-container/ExtendedSingleValueFilterClause.js +0 -63
- package/cjs/filter-container/ExtendedSingleValueFilterClause.js.map +0 -1
- package/cjs/filter-container/FilterContainer.css.js +0 -6
- package/cjs/filter-container/FilterContainer.css.js.map +0 -1
- package/cjs/filter-container/FilterContainer.js +0 -145
- package/cjs/filter-container/FilterContainer.js.map +0 -1
- package/cjs/filter-container/useFilterContainer.js +0 -137
- package/cjs/filter-container/useFilterContainer.js.map +0 -1
- package/cjs/filter-context-menu/useFilterContextMenu.js +0 -129
- package/cjs/filter-context-menu/useFilterContextMenu.js.map +0 -1
- package/cjs/filter-display/FilterDisplay.css.js +0 -6
- package/cjs/filter-display/FilterDisplay.css.js.map +0 -1
- package/cjs/filter-display/FilterDisplay.js +0 -79
- package/cjs/filter-display/FilterDisplay.js.map +0 -1
- package/cjs/filter-editor/FilterClauseCombinator.css.js +0 -6
- package/cjs/filter-editor/FilterClauseCombinator.css.js.map +0 -1
- package/cjs/filter-editor/FilterClauseCombinator.js +0 -42
- package/cjs/filter-editor/FilterClauseCombinator.js.map +0 -1
- package/cjs/filter-editor/FilterEditor.css.js +0 -6
- package/cjs/filter-editor/FilterEditor.css.js.map +0 -1
- package/cjs/filter-editor/FilterEditor.js +0 -101
- package/cjs/filter-editor/FilterEditor.js.map +0 -1
- package/cjs/filter-editor/useFilterEditor.js +0 -191
- package/cjs/filter-editor/useFilterEditor.js.map +0 -1
- package/cjs/filter-panel/FilterPanel.css.js +0 -6
- package/cjs/filter-panel/FilterPanel.css.js.map +0 -1
- package/cjs/filter-panel/FilterPanel.js +0 -91
- package/cjs/filter-panel/FilterPanel.js.map +0 -1
- package/cjs/filter-panel/useFilterPanel.js +0 -68
- package/cjs/filter-panel/useFilterPanel.js.map +0 -1
- package/cjs/filter-pill/FilterMenu.js +0 -63
- package/cjs/filter-pill/FilterMenu.js.map +0 -1
- package/cjs/filter-pill/FilterPill.css.js +0 -6
- package/cjs/filter-pill/FilterPill.css.js.map +0 -1
- package/cjs/filter-pill/FilterPill.js +0 -147
- package/cjs/filter-pill/FilterPill.js.map +0 -1
- package/cjs/filter-pill/FilterPillNext.css.js +0 -6
- package/cjs/filter-pill/FilterPillNext.css.js.map +0 -1
- package/cjs/filter-pill/FilterPillNext.js +0 -91
- package/cjs/filter-pill/FilterPillNext.js.map +0 -1
- package/cjs/filter-pill/filterAsReactNode.js +0 -27
- package/cjs/filter-pill/filterAsReactNode.js.map +0 -1
- package/cjs/filter-pill/getFilterLabel.js +0 -22
- package/cjs/filter-pill/getFilterLabel.js.map +0 -1
- package/cjs/filter-pill/getFilterTooltipText.js +0 -41
- package/cjs/filter-pill/getFilterTooltipText.js.map +0 -1
- package/cjs/filter-pill/useFilterPillNext.js +0 -65
- package/cjs/filter-pill/useFilterPillNext.js.map +0 -1
- package/cjs/filter-pill-menu/FilterPillMenuOptions.js +0 -32
- package/cjs/filter-pill-menu/FilterPillMenuOptions.js.map +0 -1
- package/cjs/filter-provider/FilterContext.js +0 -105
- package/cjs/filter-provider/FilterContext.js.map +0 -1
- package/cjs/filter-provider/FilterProvider.js +0 -240
- package/cjs/filter-provider/FilterProvider.js.map +0 -1
- package/cjs/filter-provider/filter-descriptor-utils.js +0 -67
- package/cjs/filter-provider/filter-descriptor-utils.js.map +0 -1
- package/cjs/filter-utils.js +0 -367
- package/cjs/filter-utils.js.map +0 -1
- package/cjs/index.js +0 -80
- package/cjs/index.js.map +0 -1
- package/cjs/inline-filter/InlineFilter.css.js +0 -6
- package/cjs/inline-filter/InlineFilter.css.js.map +0 -1
- package/cjs/inline-filter/InlineFilter.js +0 -70
- package/cjs/inline-filter/InlineFilter.js.map +0 -1
- package/cjs/inline-filter/useInlineFilter.js +0 -16
- package/cjs/inline-filter/useInlineFilter.js.map +0 -1
- package/cjs/quick-filters/QuickFilters.css.js +0 -6
- package/cjs/quick-filters/QuickFilters.css.js.map +0 -1
- package/cjs/quick-filters/QuickFilters.js +0 -98
- package/cjs/quick-filters/QuickFilters.js.map +0 -1
- package/cjs/quick-filters/useQuickFilters.js +0 -152
- package/cjs/quick-filters/useQuickFilters.js.map +0 -1
- package/cjs/saved-filters/DeleteFilterPrompt.js +0 -37
- package/cjs/saved-filters/DeleteFilterPrompt.js.map +0 -1
- package/cjs/saved-filters/FilterNamePrompt.css.js +0 -6
- package/cjs/saved-filters/FilterNamePrompt.css.js.map +0 -1
- package/cjs/saved-filters/FilterNamePrompt.js +0 -89
- package/cjs/saved-filters/FilterNamePrompt.js.map +0 -1
- package/cjs/saved-filters/SavedFilterPanel.css.js +0 -6
- package/cjs/saved-filters/SavedFilterPanel.css.js.map +0 -1
- package/cjs/saved-filters/SavedFilterPanel.js +0 -62
- package/cjs/saved-filters/SavedFilterPanel.js.map +0 -1
- package/cjs/saved-filters/useFilterNamePrompt.js +0 -98
- package/cjs/saved-filters/useFilterNamePrompt.js.map +0 -1
- package/cjs/saved-filters/useSavedFilterPanel.js +0 -29
- package/cjs/saved-filters/useSavedFilterPanel.js.map +0 -1
- package/cjs/tabbed-filter-container/TabbedFilterContainer.css.js +0 -6
- package/cjs/tabbed-filter-container/TabbedFilterContainer.css.js.map +0 -1
- package/cjs/tabbed-filter-container/TabbedFilterContainer.js +0 -57
- package/cjs/tabbed-filter-container/TabbedFilterContainer.js.map +0 -1
- package/cjs/toggle-filter/ToggleFilter.css.js +0 -6
- package/cjs/toggle-filter/ToggleFilter.css.js.map +0 -1
- package/cjs/toggle-filter/ToggleFilter.js +0 -85
- package/cjs/toggle-filter/ToggleFilter.js.map +0 -1
- package/cjs/toggle-filter/useToggleFilter.js +0 -67
- package/cjs/toggle-filter/useToggleFilter.js.map +0 -1
- package/esm/FilterAggregator.js +0 -160
- package/esm/FilterAggregator.js.map +0 -1
- package/esm/FilterModel.js +0 -224
- package/esm/FilterModel.js.map +0 -1
- package/esm/column-filter/ColumnFilter.css.js +0 -4
- package/esm/column-filter/ColumnFilter.css.js.map +0 -1
- package/esm/column-filter/ColumnFilter.js +0 -81
- package/esm/column-filter/ColumnFilter.js.map +0 -1
- package/esm/column-filter/useColumnFilter.js +0 -137
- package/esm/column-filter/useColumnFilter.js.map +0 -1
- package/esm/custom-filters/CustomFilters.js +0 -97
- package/esm/custom-filters/CustomFilters.js.map +0 -1
- package/esm/custom-filters/filterBarFocusManagement.js +0 -33
- package/esm/custom-filters/filterBarFocusManagement.js.map +0 -1
- package/esm/custom-filters/useCustomFilters.js +0 -263
- package/esm/custom-filters/useCustomFilters.js.map +0 -1
- package/esm/custom-filters/useFilterState.js +0 -147
- package/esm/custom-filters/useFilterState.js.map +0 -1
- package/esm/filter-bar/FilterBar.css.js +0 -4
- package/esm/filter-bar/FilterBar.css.js.map +0 -1
- package/esm/filter-bar/FilterBar.js +0 -121
- package/esm/filter-bar/FilterBar.js.map +0 -1
- package/esm/filter-bar/useFilterBar.js +0 -35
- package/esm/filter-bar/useFilterBar.js.map +0 -1
- package/esm/filter-clause/ExpandoCombobox.css.js +0 -4
- package/esm/filter-clause/ExpandoCombobox.css.js.map +0 -1
- package/esm/filter-clause/ExpandoCombobox.js +0 -112
- package/esm/filter-clause/ExpandoCombobox.js.map +0 -1
- package/esm/filter-clause/FilterClause.css.js +0 -4
- package/esm/filter-clause/FilterClause.css.js.map +0 -1
- package/esm/filter-clause/FilterClause.js +0 -100
- package/esm/filter-clause/FilterClause.js.map +0 -1
- package/esm/filter-clause/column-picker/ColumnPicker.js +0 -37
- package/esm/filter-clause/column-picker/ColumnPicker.js.map +0 -1
- package/esm/filter-clause/column-picker/useColumnPicker.js +0 -59
- package/esm/filter-clause/column-picker/useColumnPicker.js.map +0 -1
- package/esm/filter-clause/filterClauseFocusManagement.js +0 -191
- package/esm/filter-clause/filterClauseFocusManagement.js.map +0 -1
- package/esm/filter-clause/operator-picker/OperatorPicker.js +0 -38
- package/esm/filter-clause/operator-picker/OperatorPicker.js.map +0 -1
- package/esm/filter-clause/operator-picker/operator-utils.js +0 -30
- package/esm/filter-clause/operator-picker/operator-utils.js.map +0 -1
- package/esm/filter-clause/operator-picker/useOperatorPicker.js +0 -59
- package/esm/filter-clause/operator-picker/useOperatorPicker.js.map +0 -1
- package/esm/filter-clause/useFilterClause.js +0 -170
- package/esm/filter-clause/useFilterClause.js.map +0 -1
- package/esm/filter-clause/value-editors/FilterClauseValueEditor.js +0 -91
- package/esm/filter-clause/value-editors/FilterClauseValueEditor.js.map +0 -1
- package/esm/filter-clause/value-editors/FilterClauseValueEditorDate.js +0 -62
- package/esm/filter-clause/value-editors/FilterClauseValueEditorDate.js.map +0 -1
- package/esm/filter-clause/value-editors/FilterClauseValueEditorNumber.js +0 -53
- package/esm/filter-clause/value-editors/FilterClauseValueEditorNumber.js.map +0 -1
- package/esm/filter-clause/value-editors/FilterClauseValueEditorText.js +0 -220
- package/esm/filter-clause/value-editors/FilterClauseValueEditorText.js.map +0 -1
- package/esm/filter-clause/value-editors/FilterClauseValueEditorTime.js +0 -60
- package/esm/filter-clause/value-editors/FilterClauseValueEditorTime.js.map +0 -1
- package/esm/filter-container/ExtendedSingleValueFilterClause.js +0 -60
- package/esm/filter-container/ExtendedSingleValueFilterClause.js.map +0 -1
- package/esm/filter-container/FilterContainer.css.js +0 -4
- package/esm/filter-container/FilterContainer.css.js.map +0 -1
- package/esm/filter-container/FilterContainer.js +0 -142
- package/esm/filter-container/FilterContainer.js.map +0 -1
- package/esm/filter-container/useFilterContainer.js +0 -133
- package/esm/filter-container/useFilterContainer.js.map +0 -1
- package/esm/filter-context-menu/useFilterContextMenu.js +0 -127
- package/esm/filter-context-menu/useFilterContextMenu.js.map +0 -1
- package/esm/filter-display/FilterDisplay.css.js +0 -4
- package/esm/filter-display/FilterDisplay.css.js.map +0 -1
- package/esm/filter-display/FilterDisplay.js +0 -77
- package/esm/filter-display/FilterDisplay.js.map +0 -1
- package/esm/filter-editor/FilterClauseCombinator.css.js +0 -4
- package/esm/filter-editor/FilterClauseCombinator.css.js.map +0 -1
- package/esm/filter-editor/FilterClauseCombinator.js +0 -40
- package/esm/filter-editor/FilterClauseCombinator.js.map +0 -1
- package/esm/filter-editor/FilterEditor.css.js +0 -4
- package/esm/filter-editor/FilterEditor.css.js.map +0 -1
- package/esm/filter-editor/FilterEditor.js +0 -99
- package/esm/filter-editor/FilterEditor.js.map +0 -1
- package/esm/filter-editor/useFilterEditor.js +0 -189
- package/esm/filter-editor/useFilterEditor.js.map +0 -1
- package/esm/filter-panel/FilterPanel.css.js +0 -4
- package/esm/filter-panel/FilterPanel.css.js.map +0 -1
- package/esm/filter-panel/FilterPanel.js +0 -89
- package/esm/filter-panel/FilterPanel.js.map +0 -1
- package/esm/filter-panel/useFilterPanel.js +0 -66
- package/esm/filter-panel/useFilterPanel.js.map +0 -1
- package/esm/filter-pill/FilterMenu.js +0 -61
- package/esm/filter-pill/FilterMenu.js.map +0 -1
- package/esm/filter-pill/FilterPill.css.js +0 -4
- package/esm/filter-pill/FilterPill.css.js.map +0 -1
- package/esm/filter-pill/FilterPill.js +0 -145
- package/esm/filter-pill/FilterPill.js.map +0 -1
- package/esm/filter-pill/FilterPillNext.css.js +0 -4
- package/esm/filter-pill/FilterPillNext.css.js.map +0 -1
- package/esm/filter-pill/FilterPillNext.js +0 -89
- package/esm/filter-pill/FilterPillNext.js.map +0 -1
- package/esm/filter-pill/filterAsReactNode.js +0 -25
- package/esm/filter-pill/filterAsReactNode.js.map +0 -1
- package/esm/filter-pill/getFilterLabel.js +0 -20
- package/esm/filter-pill/getFilterLabel.js.map +0 -1
- package/esm/filter-pill/getFilterTooltipText.js +0 -39
- package/esm/filter-pill/getFilterTooltipText.js.map +0 -1
- package/esm/filter-pill/useFilterPillNext.js +0 -63
- package/esm/filter-pill/useFilterPillNext.js.map +0 -1
- package/esm/filter-pill-menu/FilterPillMenuOptions.js +0 -27
- package/esm/filter-pill-menu/FilterPillMenuOptions.js.map +0 -1
- package/esm/filter-provider/FilterContext.js +0 -94
- package/esm/filter-provider/FilterContext.js.map +0 -1
- package/esm/filter-provider/FilterProvider.js +0 -238
- package/esm/filter-provider/FilterProvider.js.map +0 -1
- package/esm/filter-provider/filter-descriptor-utils.js +0 -61
- package/esm/filter-provider/filter-descriptor-utils.js.map +0 -1
- package/esm/filter-utils.js +0 -344
- package/esm/filter-utils.js.map +0 -1
- package/esm/index.js +0 -26
- package/esm/index.js.map +0 -1
- package/esm/inline-filter/InlineFilter.css.js +0 -4
- package/esm/inline-filter/InlineFilter.css.js.map +0 -1
- package/esm/inline-filter/InlineFilter.js +0 -68
- package/esm/inline-filter/InlineFilter.js.map +0 -1
- package/esm/inline-filter/useInlineFilter.js +0 -14
- package/esm/inline-filter/useInlineFilter.js.map +0 -1
- package/esm/quick-filters/QuickFilters.css.js +0 -4
- package/esm/quick-filters/QuickFilters.css.js.map +0 -1
- package/esm/quick-filters/QuickFilters.js +0 -96
- package/esm/quick-filters/QuickFilters.js.map +0 -1
- package/esm/quick-filters/useQuickFilters.js +0 -150
- package/esm/quick-filters/useQuickFilters.js.map +0 -1
- package/esm/saved-filters/DeleteFilterPrompt.js +0 -35
- package/esm/saved-filters/DeleteFilterPrompt.js.map +0 -1
- package/esm/saved-filters/FilterNamePrompt.css.js +0 -4
- package/esm/saved-filters/FilterNamePrompt.css.js.map +0 -1
- package/esm/saved-filters/FilterNamePrompt.js +0 -87
- package/esm/saved-filters/FilterNamePrompt.js.map +0 -1
- package/esm/saved-filters/SavedFilterPanel.css.js +0 -4
- package/esm/saved-filters/SavedFilterPanel.css.js.map +0 -1
- package/esm/saved-filters/SavedFilterPanel.js +0 -60
- package/esm/saved-filters/SavedFilterPanel.js.map +0 -1
- package/esm/saved-filters/useFilterNamePrompt.js +0 -95
- package/esm/saved-filters/useFilterNamePrompt.js.map +0 -1
- package/esm/saved-filters/useSavedFilterPanel.js +0 -27
- package/esm/saved-filters/useSavedFilterPanel.js.map +0 -1
- package/esm/tabbed-filter-container/TabbedFilterContainer.css.js +0 -4
- package/esm/tabbed-filter-container/TabbedFilterContainer.css.js.map +0 -1
- package/esm/tabbed-filter-container/TabbedFilterContainer.js +0 -55
- package/esm/tabbed-filter-container/TabbedFilterContainer.js.map +0 -1
- package/esm/toggle-filter/ToggleFilter.css.js +0 -4
- package/esm/toggle-filter/ToggleFilter.css.js.map +0 -1
- package/esm/toggle-filter/ToggleFilter.js +0 -83
- package/esm/toggle-filter/ToggleFilter.js.map +0 -1
- package/esm/toggle-filter/useToggleFilter.js +0 -65
- package/esm/toggle-filter/useToggleFilter.js.map +0 -1
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const closeCommand = (options) => ({
|
|
4
|
-
label: `Close`,
|
|
5
|
-
location: "filter",
|
|
6
|
-
id: `close-filter`,
|
|
7
|
-
options
|
|
8
|
-
});
|
|
9
|
-
const deleteCommand = (options) => ({
|
|
10
|
-
label: `Delete`,
|
|
11
|
-
location: "filter",
|
|
12
|
-
id: `delete-filter`,
|
|
13
|
-
options
|
|
14
|
-
});
|
|
15
|
-
const renameCommand = (options) => ({
|
|
16
|
-
label: `Rename`,
|
|
17
|
-
location: "filter",
|
|
18
|
-
id: `rename-filter`,
|
|
19
|
-
options
|
|
20
|
-
});
|
|
21
|
-
const editCommand = (options) => ({
|
|
22
|
-
label: `Edit`,
|
|
23
|
-
location: "filter",
|
|
24
|
-
id: "edit-filter",
|
|
25
|
-
options
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
exports.closeCommand = closeCommand;
|
|
29
|
-
exports.deleteCommand = deleteCommand;
|
|
30
|
-
exports.editCommand = editCommand;
|
|
31
|
-
exports.renameCommand = renameCommand;
|
|
32
|
-
//# sourceMappingURL=FilterPillMenuOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPillMenuOptions.js","sources":["../../../../packages/vuu-filters/src/filter-pill-menu/FilterPillMenuOptions.ts"],"sourcesContent":["import { ContextMenuItemDescriptor } from \"@vuu-ui/vuu-context-menu\";\n\nexport type MenuOptions = { [key: string]: unknown };\n\nexport interface FilterPillMenuOptions {\n tabIndex: number;\n}\n\nexport const isFilterPillMenuOptions = (\n options: unknown,\n): options is FilterPillMenuOptions =>\n typeof options === \"object\" && options !== null && \"filter\" in options;\n\nexport const closeCommand = (options?: MenuOptions) =>\n ({\n label: `Close`,\n location: \"filter\",\n id: `close-filter`,\n options,\n }) as ContextMenuItemDescriptor;\n\nexport const deleteCommand = (options?: MenuOptions) =>\n ({\n label: `Delete`,\n location: \"filter\",\n id: `delete-filter`,\n options,\n }) as ContextMenuItemDescriptor;\n\nexport const renameCommand = (options?: MenuOptions) =>\n ({\n label: `Rename`,\n location: \"filter\",\n id: `rename-filter`,\n options,\n }) as ContextMenuItemDescriptor;\n\nexport const editCommand = (options?: MenuOptions) =>\n ({\n label: `Edit`,\n location: \"filter\",\n id: \"edit-filter\",\n options,\n }) as ContextMenuItemDescriptor;\n"],"names":[],"mappings":";;AAaa,MAAA,YAAA,GAAe,CAAC,OAC1B,MAAA;AAAA,EACC,KAAO,EAAA,CAAA,KAAA,CAAA;AAAA,EACP,QAAU,EAAA,QAAA;AAAA,EACV,EAAI,EAAA,CAAA,YAAA,CAAA;AAAA,EACJ;AACF,CAAA;AAEW,MAAA,aAAA,GAAgB,CAAC,OAC3B,MAAA;AAAA,EACC,KAAO,EAAA,CAAA,MAAA,CAAA;AAAA,EACP,QAAU,EAAA,QAAA;AAAA,EACV,EAAI,EAAA,CAAA,aAAA,CAAA;AAAA,EACJ;AACF,CAAA;AAEW,MAAA,aAAA,GAAgB,CAAC,OAC3B,MAAA;AAAA,EACC,KAAO,EAAA,CAAA,MAAA,CAAA;AAAA,EACP,QAAU,EAAA,QAAA;AAAA,EACV,EAAI,EAAA,CAAA,aAAA,CAAA;AAAA,EACJ;AACF,CAAA;AAEW,MAAA,WAAA,GAAc,CAAC,OACzB,MAAA;AAAA,EACC,KAAO,EAAA,CAAA,IAAA,CAAA;AAAA,EACP,QAAU,EAAA,QAAA;AAAA,EACV,EAAI,EAAA,aAAA;AAAA,EACJ;AACF,CAAA;;;;;;;"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
4
|
-
|
|
5
|
-
const filterDescriptorHasFilter = (f) => !isEmptyFilter(f) && !isNullFilter(f);
|
|
6
|
-
const isSavedFilter = (f) => f.id !== UNSAVED_FILTER && f.id !== NULL_FILTER && f.id !== EMPTY_FILTER;
|
|
7
|
-
const getCurrentFilter = (key, savedFilters) => {
|
|
8
|
-
const filterDescriptors = savedFilters.get(key);
|
|
9
|
-
if (filterDescriptors) {
|
|
10
|
-
const activeFilter = filterDescriptors.find((f) => f.active);
|
|
11
|
-
if (activeFilter) {
|
|
12
|
-
return activeFilter;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
return NullFilterDescriptor;
|
|
16
|
-
};
|
|
17
|
-
const UNSAVED_FILTER = "unsaved-filter";
|
|
18
|
-
const EMPTY_FILTER = "empty-filter";
|
|
19
|
-
const NULL_FILTER = "null-filter";
|
|
20
|
-
const isEmptyFilter = (f) => f?.id === EMPTY_FILTER;
|
|
21
|
-
const isNullFilter = (f) => f?.id === NULL_FILTER;
|
|
22
|
-
const NullFilterDescriptor = {
|
|
23
|
-
active: true,
|
|
24
|
-
id: NULL_FILTER,
|
|
25
|
-
filter: null
|
|
26
|
-
};
|
|
27
|
-
const EmptyFilterDescriptor = {
|
|
28
|
-
active: true,
|
|
29
|
-
id: EMPTY_FILTER,
|
|
30
|
-
filter: null
|
|
31
|
-
};
|
|
32
|
-
const FilterContext = react.createContext({
|
|
33
|
-
filterDescriptors: /* @__PURE__ */ new Map(),
|
|
34
|
-
deleteFilter: () => console.warn(
|
|
35
|
-
"[FilterContext] deleteFilter, no FilterProvider has been configured"
|
|
36
|
-
),
|
|
37
|
-
saveFilter: () => console.warn(
|
|
38
|
-
"[FilterContext] saveFilter, no FilterProvider has been configured"
|
|
39
|
-
),
|
|
40
|
-
clearCurrentFilter: () => console.warn(
|
|
41
|
-
"[FilterContext] clearFilter, no FilterProvider has been configured"
|
|
42
|
-
),
|
|
43
|
-
setCurrentFilter: () => console.warn(
|
|
44
|
-
"[FilterContext] setCurrentFilter, no FilterProvider has been configured"
|
|
45
|
-
)
|
|
46
|
-
});
|
|
47
|
-
function useSavedFilters(key = "GLOBAL", props) {
|
|
48
|
-
const {
|
|
49
|
-
onFilterMenuAction,
|
|
50
|
-
filterDescriptors,
|
|
51
|
-
saveFilter,
|
|
52
|
-
setCurrentFilter,
|
|
53
|
-
filterNameMaxLength
|
|
54
|
-
} = react.useContext(FilterContext);
|
|
55
|
-
const handleFilterMenuAction = react.useCallback(
|
|
56
|
-
(filterId, filterAction) => {
|
|
57
|
-
onFilterMenuAction?.(
|
|
58
|
-
key,
|
|
59
|
-
filterId,
|
|
60
|
-
filterAction,
|
|
61
|
-
props?.availableColumns
|
|
62
|
-
);
|
|
63
|
-
},
|
|
64
|
-
[key, onFilterMenuAction, props?.availableColumns]
|
|
65
|
-
);
|
|
66
|
-
const handleSaveFilter = react.useCallback(
|
|
67
|
-
(name) => {
|
|
68
|
-
saveFilter(key, name);
|
|
69
|
-
},
|
|
70
|
-
[key, saveFilter]
|
|
71
|
-
);
|
|
72
|
-
const handleSetCurrentFilter = react.useCallback(
|
|
73
|
-
(filter, localKey = key) => {
|
|
74
|
-
setCurrentFilter(localKey, filter);
|
|
75
|
-
},
|
|
76
|
-
[key, setCurrentFilter]
|
|
77
|
-
);
|
|
78
|
-
const handleClearCurrentFilter = react.useCallback(
|
|
79
|
-
(localKey = key) => {
|
|
80
|
-
setCurrentFilter(localKey, NULL_FILTER);
|
|
81
|
-
},
|
|
82
|
-
[key, setCurrentFilter]
|
|
83
|
-
);
|
|
84
|
-
return {
|
|
85
|
-
currentFilter: getCurrentFilter(key, filterDescriptors),
|
|
86
|
-
onFilterMenuAction: handleFilterMenuAction,
|
|
87
|
-
savedFilters: filterDescriptors?.get(key)?.filter(isSavedFilter),
|
|
88
|
-
saveFilter: handleSaveFilter,
|
|
89
|
-
clearCurrentFilter: handleClearCurrentFilter,
|
|
90
|
-
setCurrentFilter: handleSetCurrentFilter,
|
|
91
|
-
filterNameMaxLength
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
exports.EMPTY_FILTER = EMPTY_FILTER;
|
|
96
|
-
exports.EmptyFilterDescriptor = EmptyFilterDescriptor;
|
|
97
|
-
exports.FilterContext = FilterContext;
|
|
98
|
-
exports.NULL_FILTER = NULL_FILTER;
|
|
99
|
-
exports.NullFilterDescriptor = NullFilterDescriptor;
|
|
100
|
-
exports.UNSAVED_FILTER = UNSAVED_FILTER;
|
|
101
|
-
exports.filterDescriptorHasFilter = filterDescriptorHasFilter;
|
|
102
|
-
exports.isEmptyFilter = isEmptyFilter;
|
|
103
|
-
exports.isNullFilter = isNullFilter;
|
|
104
|
-
exports.useSavedFilters = useSavedFilters;
|
|
105
|
-
//# sourceMappingURL=FilterContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterContext.js","sources":["../../../../packages/vuu-filters/src/filter-provider/FilterContext.ts"],"sourcesContent":["import {\n FilterContainerFilter,\n FilterContainerFilterDescriptor,\n FilterContainerFilterDescriptorWithFilter,\n} from \"@vuu-ui/vuu-filter-types\";\nimport { FilterAction } from \"../filter-pill/FilterMenu\";\nimport { createContext, useCallback, useContext } from \"react\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\n\nexport const filterDescriptorHasFilter = (\n f: FilterContainerFilterDescriptor,\n): f is FilterContainerFilterDescriptorWithFilter =>\n !isEmptyFilter(f) && !isNullFilter(f);\n\nconst isSavedFilter = (\n f: FilterContainerFilterDescriptor,\n): f is FilterContainerFilterDescriptorWithFilter =>\n f.id !== UNSAVED_FILTER && f.id !== NULL_FILTER && f.id !== EMPTY_FILTER;\n\nconst getCurrentFilter = (\n key: string,\n savedFilters: Map<string, FilterContainerFilterDescriptor[]>,\n) => {\n const filterDescriptors = savedFilters.get(key);\n if (filterDescriptors) {\n const activeFilter = filterDescriptors.find((f) => f.active);\n if (activeFilter) {\n return activeFilter;\n }\n }\n return NullFilterDescriptor;\n};\n\nexport type FilterContextFilterMenuActionHandler = <\n T extends FilterAction = FilterAction,\n>(\n key: string,\n filterId: string,\n filterAction: T,\n /**\n * Some menu action handlers may use columns to enrich filter display\n */\n columns?: ColumnDescriptor[],\n) => void;\n\nexport interface FilterContextProps {\n deleteFilter: (key: string, filterId: string) => void;\n saveFilter: (key: string, name: string) => void;\n filterDescriptors: Map<string, FilterContainerFilterDescriptor[]>;\n onFilterMenuAction?: FilterContextFilterMenuActionHandler;\n clearCurrentFilter: (key: string) => void;\n setCurrentFilter: (\n key: string,\n filter: string | FilterContainerFilter,\n ) => void;\n filterNameMaxLength?: number;\n}\n\nexport const UNSAVED_FILTER = \"unsaved-filter\";\nexport const EMPTY_FILTER = \"empty-filter\";\nexport const NULL_FILTER = \"null-filter\";\n\nexport const isEmptyFilter = (f?: FilterContainerFilterDescriptor) =>\n f?.id === EMPTY_FILTER;\nexport const isNullFilter = (f?: FilterContainerFilterDescriptor) =>\n f?.id === NULL_FILTER;\n\nexport const NullFilterDescriptor: FilterContainerFilterDescriptor = {\n active: true,\n id: NULL_FILTER,\n filter: null,\n};\n\nexport const EmptyFilterDescriptor: FilterContainerFilterDescriptor = {\n active: true,\n id: EMPTY_FILTER,\n filter: null,\n};\n\nexport const FilterContext = createContext<FilterContextProps>({\n filterDescriptors: new Map<string, FilterContainerFilterDescriptor[]>(),\n deleteFilter: () =>\n console.warn(\n \"[FilterContext] deleteFilter, no FilterProvider has been configured\",\n ),\n saveFilter: () =>\n console.warn(\n \"[FilterContext] saveFilter, no FilterProvider has been configured\",\n ),\n clearCurrentFilter: () =>\n console.warn(\n \"[FilterContext] clearFilter, no FilterProvider has been configured\",\n ),\n setCurrentFilter: () =>\n console.warn(\n \"[FilterContext] setCurrentFilter, no FilterProvider has been configured\",\n ),\n});\n\ninterface SavedFilterHookProps {\n availableColumns?: ColumnDescriptor[];\n}\n\nexport function useSavedFilters(key = \"GLOBAL\", props?: SavedFilterHookProps) {\n const {\n onFilterMenuAction,\n filterDescriptors,\n saveFilter,\n setCurrentFilter,\n filterNameMaxLength,\n } = useContext(FilterContext);\n\n const handleFilterMenuAction = useCallback(\n (filterId: string, filterAction: FilterAction) => {\n onFilterMenuAction?.(\n key,\n filterId,\n filterAction,\n props?.availableColumns,\n );\n },\n [key, onFilterMenuAction, props?.availableColumns],\n );\n\n const handleSaveFilter = useCallback(\n (name: string) => {\n saveFilter(key, name);\n },\n [key, saveFilter],\n );\n\n /**\n * Set the current filter, using the filterProviderKey specified\n * in hook call. Alternatively, a localKey can be provided in this\n * call to override the key above. This can be useful where\n * setCurrentFilter is called from a hook where the key is not in\n * scope at the point where useSavedFilters is called.\n */\n const handleSetCurrentFilter = useCallback(\n (filter: string | FilterContainerFilter, localKey = key) => {\n setCurrentFilter(localKey, filter);\n },\n [key, setCurrentFilter],\n );\n\n const handleClearCurrentFilter = useCallback(\n (localKey = key) => {\n setCurrentFilter(localKey, NULL_FILTER);\n },\n [key, setCurrentFilter],\n );\n\n return {\n currentFilter: getCurrentFilter(key, filterDescriptors),\n onFilterMenuAction: handleFilterMenuAction,\n savedFilters: filterDescriptors?.get(key)?.filter(isSavedFilter),\n saveFilter: handleSaveFilter,\n clearCurrentFilter: handleClearCurrentFilter,\n setCurrentFilter: handleSetCurrentFilter,\n filterNameMaxLength,\n };\n}\n"],"names":["createContext","useContext","useCallback"],"mappings":";;;;AASa,MAAA,yBAAA,GAA4B,CACvC,CAEA,KAAA,CAAC,cAAc,CAAC,CAAA,IAAK,CAAC,YAAA,CAAa,CAAC;AAEtC,MAAM,aAAA,GAAgB,CACpB,CAAA,KAEA,CAAE,CAAA,EAAA,KAAO,kBAAkB,CAAE,CAAA,EAAA,KAAO,WAAe,IAAA,CAAA,CAAE,EAAO,KAAA,YAAA;AAE9D,MAAM,gBAAA,GAAmB,CACvB,GAAA,EACA,YACG,KAAA;AACH,EAAM,MAAA,iBAAA,GAAoB,YAAa,CAAA,GAAA,CAAI,GAAG,CAAA;AAC9C,EAAA,IAAI,iBAAmB,EAAA;AACrB,IAAA,MAAM,eAAe,iBAAkB,CAAA,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,MAAM,CAAA;AAC3D,IAAA,IAAI,YAAc,EAAA;AAChB,MAAO,OAAA,YAAA;AAAA;AACT;AAEF,EAAO,OAAA,oBAAA;AACT,CAAA;AA2BO,MAAM,cAAiB,GAAA;AACvB,MAAM,YAAe,GAAA;AACrB,MAAM,WAAc,GAAA;AAEpB,MAAM,aAAgB,GAAA,CAAC,CAC5B,KAAA,CAAA,EAAG,EAAO,KAAA;AACL,MAAM,YAAe,GAAA,CAAC,CAC3B,KAAA,CAAA,EAAG,EAAO,KAAA;AAEL,MAAM,oBAAwD,GAAA;AAAA,EACnE,MAAQ,EAAA,IAAA;AAAA,EACR,EAAI,EAAA,WAAA;AAAA,EACJ,MAAQ,EAAA;AACV;AAEO,MAAM,qBAAyD,GAAA;AAAA,EACpE,MAAQ,EAAA,IAAA;AAAA,EACR,EAAI,EAAA,YAAA;AAAA,EACJ,MAAQ,EAAA;AACV;AAEO,MAAM,gBAAgBA,mBAAkC,CAAA;AAAA,EAC7D,iBAAA,sBAAuB,GAA+C,EAAA;AAAA,EACtE,YAAA,EAAc,MACZ,OAAQ,CAAA,IAAA;AAAA,IACN;AAAA,GACF;AAAA,EACF,UAAA,EAAY,MACV,OAAQ,CAAA,IAAA;AAAA,IACN;AAAA,GACF;AAAA,EACF,kBAAA,EAAoB,MAClB,OAAQ,CAAA,IAAA;AAAA,IACN;AAAA,GACF;AAAA,EACF,gBAAA,EAAkB,MAChB,OAAQ,CAAA,IAAA;AAAA,IACN;AAAA;AAEN,CAAC;AAMe,SAAA,eAAA,CAAgB,GAAM,GAAA,QAAA,EAAU,KAA8B,EAAA;AAC5E,EAAM,MAAA;AAAA,IACJ,kBAAA;AAAA,IACA,iBAAA;AAAA,IACA,UAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF,GAAIC,iBAAW,aAAa,CAAA;AAE5B,EAAA,MAAM,sBAAyB,GAAAC,iBAAA;AAAA,IAC7B,CAAC,UAAkB,YAA+B,KAAA;AAChD,MAAA,kBAAA;AAAA,QACE,GAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAA;AAAA,QACA,KAAO,EAAA;AAAA,OACT;AAAA,KACF;AAAA,IACA,CAAC,GAAA,EAAK,kBAAoB,EAAA,KAAA,EAAO,gBAAgB;AAAA,GACnD;AAEA,EAAA,MAAM,gBAAmB,GAAAA,iBAAA;AAAA,IACvB,CAAC,IAAiB,KAAA;AAChB,MAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AAAA,KACtB;AAAA,IACA,CAAC,KAAK,UAAU;AAAA,GAClB;AASA,EAAA,MAAM,sBAAyB,GAAAA,iBAAA;AAAA,IAC7B,CAAC,MAAwC,EAAA,QAAA,GAAW,GAAQ,KAAA;AAC1D,MAAA,gBAAA,CAAiB,UAAU,MAAM,CAAA;AAAA,KACnC;AAAA,IACA,CAAC,KAAK,gBAAgB;AAAA,GACxB;AAEA,EAAA,MAAM,wBAA2B,GAAAA,iBAAA;AAAA,IAC/B,CAAC,WAAW,GAAQ,KAAA;AAClB,MAAA,gBAAA,CAAiB,UAAU,WAAW,CAAA;AAAA,KACxC;AAAA,IACA,CAAC,KAAK,gBAAgB;AAAA,GACxB;AAEA,EAAO,OAAA;AAAA,IACL,aAAA,EAAe,gBAAiB,CAAA,GAAA,EAAK,iBAAiB,CAAA;AAAA,IACtD,kBAAoB,EAAA,sBAAA;AAAA,IACpB,cAAc,iBAAmB,EAAA,GAAA,CAAI,GAAG,CAAA,EAAG,OAAO,aAAa,CAAA;AAAA,IAC/D,UAAY,EAAA,gBAAA;AAAA,IACZ,kBAAoB,EAAA,wBAAA;AAAA,IACpB,gBAAkB,EAAA,sBAAA;AAAA,IAClB;AAAA,GACF;AACF;;;;;;;;;;;;;"}
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
var FilterNamePrompt = require('../saved-filters/FilterNamePrompt.js');
|
|
6
|
-
var DeleteFilterPrompt = require('../saved-filters/DeleteFilterPrompt.js');
|
|
7
|
-
var filterDescriptorUtils = require('./filter-descriptor-utils.js');
|
|
8
|
-
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
9
|
-
var FilterContext = require('./FilterContext.js');
|
|
10
|
-
|
|
11
|
-
const findActiveFilter = (filterDescriptors) => filterDescriptors.find((f) => f.active) ?? FilterContext.NullFilterDescriptor;
|
|
12
|
-
const findFilterByName = (filterDescriptors, name) => filterDescriptors.find((f) => f.filter?.name === name);
|
|
13
|
-
const mapToRecord = (savedFilters) => {
|
|
14
|
-
const record = {};
|
|
15
|
-
savedFilters.forEach((filterDescriptors, key) => {
|
|
16
|
-
record[key] = filterDescriptors;
|
|
17
|
-
});
|
|
18
|
-
return record;
|
|
19
|
-
};
|
|
20
|
-
const FilterProvider = ({
|
|
21
|
-
children,
|
|
22
|
-
onFiltersSaved,
|
|
23
|
-
savedFilters: savedFiltersProp,
|
|
24
|
-
filterNameMaxLength
|
|
25
|
-
}) => {
|
|
26
|
-
const [, forceRefresh] = react.useState({});
|
|
27
|
-
const savedFilters = react.useMemo(
|
|
28
|
-
() => savedFiltersProp ? new Map(Object.entries(savedFiltersProp)) : /* @__PURE__ */ new Map(),
|
|
29
|
-
[savedFiltersProp]
|
|
30
|
-
);
|
|
31
|
-
const [dialog, setDialog] = react.useState(null);
|
|
32
|
-
const deleteFilter = react.useCallback(
|
|
33
|
-
(key, filterId) => {
|
|
34
|
-
const filterDescriptors = savedFilters.get(key);
|
|
35
|
-
if (filterDescriptors === void 0) {
|
|
36
|
-
throw Error(`[FilterProvider] deleteFilter, key ${key} not found`);
|
|
37
|
-
} else {
|
|
38
|
-
const newFilterDescriptors = filterDescriptors.filter(
|
|
39
|
-
({ id }) => id !== filterId
|
|
40
|
-
);
|
|
41
|
-
savedFilters.set(key, newFilterDescriptors);
|
|
42
|
-
if (filterId !== FilterContext.UNSAVED_FILTER) {
|
|
43
|
-
onFiltersSaved?.(mapToRecord(savedFilters));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
[onFiltersSaved, savedFilters]
|
|
48
|
-
);
|
|
49
|
-
const applyNewName = react.useCallback(
|
|
50
|
-
(key, filterId, name) => {
|
|
51
|
-
const filterDescriptors = savedFilters.get(key);
|
|
52
|
-
if (filterDescriptors === void 0) {
|
|
53
|
-
throw Error(`[FilterProvider] applyNewName, key ${key} not found`);
|
|
54
|
-
} else {
|
|
55
|
-
const newFilterDescriptors = filterDescriptorUtils.renameFilter(
|
|
56
|
-
filterDescriptors,
|
|
57
|
-
filterId,
|
|
58
|
-
name
|
|
59
|
-
);
|
|
60
|
-
savedFilters.set(key, newFilterDescriptors);
|
|
61
|
-
onFiltersSaved?.(mapToRecord(savedFilters));
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
[onFiltersSaved, savedFilters]
|
|
65
|
-
);
|
|
66
|
-
const promptForFilterName = react.useCallback(
|
|
67
|
-
(key, { filter, id }) => {
|
|
68
|
-
const originalFilterName = filter?.name ?? "";
|
|
69
|
-
setDialog(
|
|
70
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
71
|
-
FilterNamePrompt.FilterNamePrompt,
|
|
72
|
-
{
|
|
73
|
-
filterName: filter?.name,
|
|
74
|
-
title: "Rename filter",
|
|
75
|
-
onClose: () => setDialog(null),
|
|
76
|
-
onConfirm: (name) => {
|
|
77
|
-
setDialog(null);
|
|
78
|
-
if (originalFilterName !== name) {
|
|
79
|
-
applyNewName(key, id, name);
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
filterNameMaxLength
|
|
83
|
-
}
|
|
84
|
-
)
|
|
85
|
-
);
|
|
86
|
-
},
|
|
87
|
-
[applyNewName, filterNameMaxLength]
|
|
88
|
-
);
|
|
89
|
-
const promptForConfirmationOfDelete = react.useCallback(
|
|
90
|
-
(key, filterDescriptor, columns) => {
|
|
91
|
-
setDialog(
|
|
92
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
93
|
-
DeleteFilterPrompt.DeleteFilterPrompt,
|
|
94
|
-
{
|
|
95
|
-
columns,
|
|
96
|
-
filterDescriptor,
|
|
97
|
-
onConfirm: () => {
|
|
98
|
-
setDialog(null);
|
|
99
|
-
deleteFilter(key, filterDescriptor.id);
|
|
100
|
-
},
|
|
101
|
-
onClose: () => setDialog(null)
|
|
102
|
-
}
|
|
103
|
-
)
|
|
104
|
-
);
|
|
105
|
-
},
|
|
106
|
-
[deleteFilter]
|
|
107
|
-
);
|
|
108
|
-
const handleFilterMenuAction = react.useCallback(
|
|
109
|
-
(key, filterId, actionType, columns) => {
|
|
110
|
-
const filterDescriptors = savedFilters.get(key);
|
|
111
|
-
if (filterDescriptors === void 0) {
|
|
112
|
-
throw Error(`[FilterProvider] applyNewName, key ${key} not found`);
|
|
113
|
-
} else {
|
|
114
|
-
const targetFilter = filterDescriptorUtils.findFilter(filterDescriptors, filterId);
|
|
115
|
-
switch (actionType) {
|
|
116
|
-
case "close":
|
|
117
|
-
console.log(`close filter ${filterId}`);
|
|
118
|
-
break;
|
|
119
|
-
case "edit":
|
|
120
|
-
console.log(`edit filter ${filterId}`);
|
|
121
|
-
break;
|
|
122
|
-
case "remove":
|
|
123
|
-
if (filterId === FilterContext.UNSAVED_FILTER) {
|
|
124
|
-
console.log("remove unsaved filter");
|
|
125
|
-
} else {
|
|
126
|
-
promptForConfirmationOfDelete(key, targetFilter, columns);
|
|
127
|
-
}
|
|
128
|
-
break;
|
|
129
|
-
case "rename":
|
|
130
|
-
return promptForFilterName(key, targetFilter);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
[promptForConfirmationOfDelete, promptForFilterName, savedFilters]
|
|
135
|
-
);
|
|
136
|
-
const handleSaveFilter = react.useCallback(
|
|
137
|
-
(key, name) => {
|
|
138
|
-
const filterDescriptors = savedFilters.get(key);
|
|
139
|
-
if (filterDescriptors === void 0) {
|
|
140
|
-
throw Error(`[FilterProvider] applyNewName, key ${key} not found`);
|
|
141
|
-
} else {
|
|
142
|
-
const activeFilter = findActiveFilter(filterDescriptors);
|
|
143
|
-
if (activeFilter.filter === null) {
|
|
144
|
-
throw Error("[FilterProvider] cannot save an empty filter");
|
|
145
|
-
}
|
|
146
|
-
const filterWithSameName = findFilterByName(filterDescriptors, name);
|
|
147
|
-
if (activeFilter === filterWithSameName) {
|
|
148
|
-
return;
|
|
149
|
-
} else if (filterWithSameName !== void 0) {
|
|
150
|
-
const newFilterDescriptors = filterDescriptors.reduce((list, filterDescriptor) => {
|
|
151
|
-
if (filterDescriptor === activeFilter) {
|
|
152
|
-
list.push({
|
|
153
|
-
active: true,
|
|
154
|
-
filter: { ...filterDescriptor.filter, name },
|
|
155
|
-
id: vuuUtils.uuid(),
|
|
156
|
-
name
|
|
157
|
-
});
|
|
158
|
-
} else if (filterDescriptor.filter?.name !== name) {
|
|
159
|
-
list.push(filterDescriptor);
|
|
160
|
-
}
|
|
161
|
-
return list;
|
|
162
|
-
}, []);
|
|
163
|
-
savedFilters.set(key, newFilterDescriptors);
|
|
164
|
-
} else {
|
|
165
|
-
const newFilterDescriptors = filterDescriptors.map(
|
|
166
|
-
(filterDescriptor) => filterDescriptor === activeFilter ? {
|
|
167
|
-
active: true,
|
|
168
|
-
filter: { ...filterDescriptor.filter, name },
|
|
169
|
-
id: vuuUtils.uuid(),
|
|
170
|
-
name
|
|
171
|
-
} : filterDescriptor
|
|
172
|
-
);
|
|
173
|
-
savedFilters.set(key, newFilterDescriptors);
|
|
174
|
-
onFiltersSaved?.(mapToRecord(savedFilters));
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
forceRefresh({});
|
|
178
|
-
},
|
|
179
|
-
[onFiltersSaved, savedFilters]
|
|
180
|
-
);
|
|
181
|
-
const setCurrentFilter = react.useCallback(
|
|
182
|
-
(key, filter) => {
|
|
183
|
-
const filterDescriptors = savedFilters.get(key) ?? [];
|
|
184
|
-
if (filter === FilterContext.NULL_FILTER) {
|
|
185
|
-
const newFilterDescriptors = filterDescriptorUtils.insertOrReplaceFilter(
|
|
186
|
-
filterDescriptors,
|
|
187
|
-
FilterContext.NullFilterDescriptor
|
|
188
|
-
);
|
|
189
|
-
savedFilters.set(key, newFilterDescriptors);
|
|
190
|
-
} else if (filter === FilterContext.EMPTY_FILTER) {
|
|
191
|
-
const newFilterDescriptors = filterDescriptorUtils.insertOrReplaceFilter(
|
|
192
|
-
filterDescriptors,
|
|
193
|
-
FilterContext.EmptyFilterDescriptor
|
|
194
|
-
);
|
|
195
|
-
savedFilters.set(key, newFilterDescriptors);
|
|
196
|
-
} else if (typeof filter === "string") {
|
|
197
|
-
const newFilterDescriptors = filterDescriptorUtils.activateFilter(filterDescriptors, filter);
|
|
198
|
-
savedFilters.set(key, newFilterDescriptors);
|
|
199
|
-
} else if (filter) {
|
|
200
|
-
const newFilterDescriptors = filterDescriptorUtils.insertOrReplaceFilter(filterDescriptors, {
|
|
201
|
-
active: true,
|
|
202
|
-
filter,
|
|
203
|
-
id: FilterContext.UNSAVED_FILTER
|
|
204
|
-
});
|
|
205
|
-
savedFilters.set(key, newFilterDescriptors);
|
|
206
|
-
} else {
|
|
207
|
-
deleteFilter(key, FilterContext.UNSAVED_FILTER);
|
|
208
|
-
}
|
|
209
|
-
forceRefresh({});
|
|
210
|
-
},
|
|
211
|
-
[deleteFilter, savedFilters]
|
|
212
|
-
);
|
|
213
|
-
const clearCurrentFilter = react.useCallback(
|
|
214
|
-
(key) => {
|
|
215
|
-
setCurrentFilter(key, FilterContext.NULL_FILTER);
|
|
216
|
-
},
|
|
217
|
-
[setCurrentFilter]
|
|
218
|
-
);
|
|
219
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
220
|
-
FilterContext.FilterContext.Provider,
|
|
221
|
-
{
|
|
222
|
-
value: {
|
|
223
|
-
onFilterMenuAction: handleFilterMenuAction,
|
|
224
|
-
deleteFilter,
|
|
225
|
-
saveFilter: handleSaveFilter,
|
|
226
|
-
filterDescriptors: savedFilters,
|
|
227
|
-
clearCurrentFilter,
|
|
228
|
-
setCurrentFilter,
|
|
229
|
-
filterNameMaxLength
|
|
230
|
-
},
|
|
231
|
-
children: [
|
|
232
|
-
children,
|
|
233
|
-
dialog
|
|
234
|
-
]
|
|
235
|
-
}
|
|
236
|
-
);
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
exports.FilterProvider = FilterProvider;
|
|
240
|
-
//# sourceMappingURL=FilterProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterProvider.js","sources":["../../../../packages/vuu-filters/src/filter-provider/FilterProvider.tsx"],"sourcesContent":["import {\n FilterContainerFilter,\n FilterContainerFilterDescriptor,\n} from \"@vuu-ui/vuu-filter-types\";\nimport { ReactElement, ReactNode, useCallback, useMemo, useState } from \"react\";\nimport { FilterNamePrompt } from \"../saved-filters/FilterNamePrompt\";\nimport { DeleteFilterPrompt } from \"../saved-filters/DeleteFilterPrompt\";\nimport {\n activateFilter,\n findFilter,\n insertOrReplaceFilter,\n renameFilter,\n} from \"./filter-descriptor-utils\";\nimport { uuid } from \"@vuu-ui/vuu-utils\";\nimport {\n EMPTY_FILTER,\n EmptyFilterDescriptor,\n FilterContext,\n FilterContextFilterMenuActionHandler,\n NULL_FILTER,\n NullFilterDescriptor,\n UNSAVED_FILTER,\n} from \"./FilterContext\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\n\nconst findActiveFilter = (\n filterDescriptors: FilterContainerFilterDescriptor[],\n) => filterDescriptors.find((f) => f.active) ?? NullFilterDescriptor;\n\nconst findFilterByName = (\n filterDescriptors: FilterContainerFilterDescriptor[],\n name: string,\n) => filterDescriptors.find((f) => f.filter?.name === name);\n\ntype SavedFilterMap = Map<string, FilterContainerFilterDescriptor[]>;\nexport type SavedFilterRecord = Record<\n string,\n FilterContainerFilterDescriptor[]\n>;\n\nconst mapToRecord = (savedFilters: SavedFilterMap) => {\n const record: SavedFilterRecord = {};\n savedFilters.forEach((filterDescriptors, key) => {\n record[key] = filterDescriptors;\n });\n return record;\n};\n\nexport interface FilterProviderProps {\n children: ReactNode;\n onFiltersSaved?: (savedFilters: SavedFilterRecord) => void;\n savedFilters?: SavedFilterRecord;\n filterNameMaxLength?: number;\n}\n\nexport const FilterProvider = ({\n children,\n onFiltersSaved,\n savedFilters: savedFiltersProp,\n filterNameMaxLength,\n}: FilterProviderProps) => {\n const [, forceRefresh] = useState({});\n const savedFilters = useMemo<SavedFilterMap>(\n () =>\n savedFiltersProp ? new Map(Object.entries(savedFiltersProp)) : new Map(),\n [savedFiltersProp],\n );\n\n const [dialog, setDialog] = useState<ReactElement | null>(null);\n\n const deleteFilter = useCallback(\n (key: string, filterId: string) => {\n const filterDescriptors = savedFilters.get(key);\n if (filterDescriptors === undefined) {\n throw Error(`[FilterProvider] deleteFilter, key ${key} not found`);\n } else {\n const newFilterDescriptors = filterDescriptors.filter(\n ({ id }) => id !== filterId,\n );\n savedFilters.set(key, newFilterDescriptors);\n if (filterId !== UNSAVED_FILTER) {\n onFiltersSaved?.(mapToRecord(savedFilters));\n }\n }\n },\n [onFiltersSaved, savedFilters],\n );\n\n const applyNewName = useCallback(\n (key: string, filterId: string, name: string) => {\n const filterDescriptors = savedFilters.get(key);\n if (filterDescriptors === undefined) {\n throw Error(`[FilterProvider] applyNewName, key ${key} not found`);\n } else {\n const newFilterDescriptors = renameFilter(\n filterDescriptors,\n filterId,\n name,\n );\n savedFilters.set(key, newFilterDescriptors);\n onFiltersSaved?.(mapToRecord(savedFilters));\n }\n },\n [onFiltersSaved, savedFilters],\n );\n\n const promptForFilterName = useCallback(\n (key: string, { filter, id }: FilterContainerFilterDescriptor) => {\n const originalFilterName = filter?.name ?? \"\";\n setDialog(\n <FilterNamePrompt\n filterName={filter?.name}\n title=\"Rename filter\"\n onClose={() => setDialog(null)}\n onConfirm={(name) => {\n setDialog(null);\n if (originalFilterName !== name) {\n applyNewName(key, id, name);\n }\n }}\n filterNameMaxLength={filterNameMaxLength}\n />,\n );\n },\n [applyNewName, filterNameMaxLength],\n );\n\n const promptForConfirmationOfDelete = useCallback(\n (\n key: string,\n filterDescriptor: FilterContainerFilterDescriptor,\n columns?: ColumnDescriptor[],\n ) => {\n setDialog(\n <DeleteFilterPrompt\n columns={columns}\n filterDescriptor={filterDescriptor}\n onConfirm={() => {\n setDialog(null);\n deleteFilter(key, filterDescriptor.id);\n }}\n onClose={() => setDialog(null)}\n />,\n );\n },\n [deleteFilter],\n );\n\n const handleFilterMenuAction =\n useCallback<FilterContextFilterMenuActionHandler>(\n (key: string, filterId, actionType, columns) => {\n const filterDescriptors = savedFilters.get(key);\n if (filterDescriptors === undefined) {\n throw Error(`[FilterProvider] applyNewName, key ${key} not found`);\n } else {\n const targetFilter = findFilter(filterDescriptors, filterId);\n switch (actionType) {\n case \"close\":\n console.log(`close filter ${filterId}`);\n break;\n case \"edit\":\n console.log(`edit filter ${filterId}`);\n break;\n case \"remove\":\n if (filterId === UNSAVED_FILTER) {\n console.log(\"remove unsaved filter\");\n } else {\n promptForConfirmationOfDelete(key, targetFilter, columns);\n }\n break;\n case \"rename\":\n return promptForFilterName(key, targetFilter);\n }\n }\n },\n [promptForConfirmationOfDelete, promptForFilterName, savedFilters],\n );\n\n const handleSaveFilter = useCallback(\n (key: string, name: string) => {\n const filterDescriptors = savedFilters.get(key);\n if (filterDescriptors === undefined) {\n throw Error(`[FilterProvider] applyNewName, key ${key} not found`);\n } else {\n const activeFilter = findActiveFilter(filterDescriptors);\n if (activeFilter.filter === null) {\n throw Error(\"[FilterProvider] cannot save an empty filter\");\n }\n const filterWithSameName = findFilterByName(filterDescriptors, name);\n // We are always renaming the active filter, how this will play out depends on whether\n // the name is unique and has actually changed\n if (activeFilter === filterWithSameName) {\n // name has not changed\n return;\n } else if (filterWithSameName !== undefined) {\n // we are renaming the active filter, but another filter already has the same name,\n // keep the active filter, remove the duplicate.\n const newFilterDescriptors = filterDescriptors.reduce<\n FilterContainerFilterDescriptor[]\n >((list, filterDescriptor) => {\n if (filterDescriptor === activeFilter) {\n list.push({\n active: true,\n filter: { ...filterDescriptor.filter, name },\n id: uuid(),\n name,\n } as FilterContainerFilterDescriptor);\n } else if (filterDescriptor.filter?.name !== name) {\n list.push(filterDescriptor);\n }\n return list;\n }, []);\n savedFilters.set(key, newFilterDescriptors);\n } else {\n const newFilterDescriptors = filterDescriptors.map(\n (filterDescriptor) =>\n filterDescriptor === activeFilter\n ? ({\n active: true,\n filter: { ...filterDescriptor.filter, name },\n id: uuid(),\n name,\n } as FilterContainerFilterDescriptor)\n : filterDescriptor,\n );\n savedFilters.set(key, newFilterDescriptors);\n onFiltersSaved?.(mapToRecord(savedFilters));\n }\n }\n forceRefresh({});\n },\n [onFiltersSaved, savedFilters],\n );\n\n /**\n * Allows switching between saved filters. Alternatively, an anonymous\n * filter can be assigned. This is to allow for a dynamically created\n * filter to be active.\n */\n const setCurrentFilter = useCallback(\n (key: string, filter: string | FilterContainerFilter) => {\n const filterDescriptors = savedFilters.get(key) ?? [];\n\n if (filter === NULL_FILTER) {\n const newFilterDescriptors = insertOrReplaceFilter(\n filterDescriptors,\n NullFilterDescriptor,\n );\n savedFilters.set(key, newFilterDescriptors);\n } else if (filter === EMPTY_FILTER) {\n const newFilterDescriptors = insertOrReplaceFilter(\n filterDescriptors,\n EmptyFilterDescriptor,\n );\n savedFilters.set(key, newFilterDescriptors);\n } else if (typeof filter === \"string\") {\n const newFilterDescriptors = activateFilter(filterDescriptors, filter);\n savedFilters.set(key, newFilterDescriptors);\n } else if (filter) {\n const newFilterDescriptors = insertOrReplaceFilter(filterDescriptors, {\n active: true,\n filter,\n id: UNSAVED_FILTER,\n });\n savedFilters.set(key, newFilterDescriptors);\n } else {\n deleteFilter(key, UNSAVED_FILTER);\n }\n\n forceRefresh({});\n },\n [deleteFilter, savedFilters],\n );\n\n const clearCurrentFilter = useCallback(\n (key: string) => {\n setCurrentFilter(key, NULL_FILTER);\n },\n [setCurrentFilter],\n );\n\n return (\n <FilterContext.Provider\n value={{\n onFilterMenuAction: handleFilterMenuAction,\n deleteFilter,\n saveFilter: handleSaveFilter,\n filterDescriptors: savedFilters,\n clearCurrentFilter,\n setCurrentFilter,\n filterNameMaxLength,\n }}\n >\n {children}\n {dialog}\n </FilterContext.Provider>\n );\n};\n"],"names":["NullFilterDescriptor","useState","useMemo","useCallback","UNSAVED_FILTER","renameFilter","jsx","FilterNamePrompt","DeleteFilterPrompt","findFilter","uuid","NULL_FILTER","insertOrReplaceFilter","EMPTY_FILTER","EmptyFilterDescriptor","activateFilter","jsxs","FilterContext"],"mappings":"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"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var FilterContext = require('./FilterContext.js');
|
|
4
|
-
|
|
5
|
-
function findFilter(filterDescriptors, filterId, throwIfNotFound = true) {
|
|
6
|
-
const filter = filterDescriptors.find(({ id }) => id === filterId);
|
|
7
|
-
if (filter) {
|
|
8
|
-
return filter;
|
|
9
|
-
} else if (throwIfNotFound) {
|
|
10
|
-
throw Error(`[FilterProvider] findFilter, filter not found ${filterId}`);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
const deactivateFilter = (filterDescriptors) => activateFilter(filterDescriptors, void 0);
|
|
14
|
-
const namedFilters = (filterDescriptor) => filterDescriptor.id !== FilterContext.EMPTY_FILTER && filterDescriptor.id !== FilterContext.NULL_FILTER && filterDescriptor.id !== FilterContext.UNSAVED_FILTER;
|
|
15
|
-
const activateFilter = (filterDescriptors, activeFilterId) => filterDescriptors.map((f) => {
|
|
16
|
-
if (f.id === activeFilterId) {
|
|
17
|
-
return {
|
|
18
|
-
...f,
|
|
19
|
-
active: !f.active
|
|
20
|
-
};
|
|
21
|
-
} else if (f.active) {
|
|
22
|
-
return {
|
|
23
|
-
...f,
|
|
24
|
-
active: false
|
|
25
|
-
};
|
|
26
|
-
} else {
|
|
27
|
-
return f;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
const insertOrReplaceFilter = (filterDescriptors, filterDescriptor) => {
|
|
31
|
-
if (!filterDescriptors.some(({ id }) => id === filterDescriptor.id)) {
|
|
32
|
-
return deactivateFilter(filterDescriptors).filter(namedFilters).concat(filterDescriptor);
|
|
33
|
-
} else {
|
|
34
|
-
return filterDescriptors.map((f) => {
|
|
35
|
-
if (f.id === filterDescriptor.id) {
|
|
36
|
-
return filterDescriptor;
|
|
37
|
-
} else if (f.active) {
|
|
38
|
-
return {
|
|
39
|
-
...f,
|
|
40
|
-
active: false
|
|
41
|
-
};
|
|
42
|
-
} else {
|
|
43
|
-
return f;
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
const renameFilter = (filterDescriptors, filterId, name) => filterDescriptors.map((f) => {
|
|
49
|
-
if (f.id === filterId && f.filter !== null) {
|
|
50
|
-
return {
|
|
51
|
-
...f,
|
|
52
|
-
filter: {
|
|
53
|
-
...f.filter,
|
|
54
|
-
name
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
} else {
|
|
58
|
-
return f;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
exports.activateFilter = activateFilter;
|
|
63
|
-
exports.deactivateFilter = deactivateFilter;
|
|
64
|
-
exports.findFilter = findFilter;
|
|
65
|
-
exports.insertOrReplaceFilter = insertOrReplaceFilter;
|
|
66
|
-
exports.renameFilter = renameFilter;
|
|
67
|
-
//# sourceMappingURL=filter-descriptor-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-descriptor-utils.js","sources":["../../../../packages/vuu-filters/src/filter-provider/filter-descriptor-utils.ts"],"sourcesContent":["import { FilterContainerFilterDescriptor } from \"@vuu-ui/vuu-filter-types\";\nimport { EMPTY_FILTER, NULL_FILTER, UNSAVED_FILTER } from \"./FilterContext\";\n\nexport function findFilter(\n filterDescriptors: FilterContainerFilterDescriptor[],\n filterId: string,\n throwIfNotFound?: true,\n): FilterContainerFilterDescriptor;\nexport function findFilter(\n filterDescriptors: FilterContainerFilterDescriptor[],\n filterId: string,\n throwIfNotFound: false,\n): FilterContainerFilterDescriptor | undefined;\nexport function findFilter(\n filterDescriptors: FilterContainerFilterDescriptor[],\n filterId: string,\n throwIfNotFound = true,\n) {\n const filter = filterDescriptors.find(({ id }) => id === filterId);\n if (filter) {\n return filter;\n } else if (throwIfNotFound) {\n throw Error(`[FilterProvider] findFilter, filter not found ${filterId}`);\n }\n}\n\nexport const deactivateFilter = (\n filterDescriptors: FilterContainerFilterDescriptor[],\n) => activateFilter(filterDescriptors, undefined);\n\nconst namedFilters = (filterDescriptor: FilterContainerFilterDescriptor) =>\n filterDescriptor.id !== EMPTY_FILTER &&\n filterDescriptor.id !== NULL_FILTER &&\n filterDescriptor.id !== UNSAVED_FILTER;\n\nexport const activateFilter = (\n filterDescriptors: FilterContainerFilterDescriptor[],\n activeFilterId?: string,\n) =>\n filterDescriptors.map<FilterContainerFilterDescriptor>((f) => {\n if (f.id === activeFilterId) {\n return {\n ...f,\n active: !f.active,\n };\n } else if (f.active) {\n return {\n ...f,\n active: false,\n };\n } else {\n return f;\n }\n });\n\nexport const insertOrReplaceFilter = (\n filterDescriptors: FilterContainerFilterDescriptor[],\n filterDescriptor: FilterContainerFilterDescriptor,\n) => {\n if (!filterDescriptors.some(({ id }) => id === filterDescriptor.id)) {\n return deactivateFilter(filterDescriptors)\n .filter(namedFilters)\n .concat(filterDescriptor);\n } else {\n return filterDescriptors.map<FilterContainerFilterDescriptor>((f) => {\n if (f.id === filterDescriptor.id) {\n return filterDescriptor;\n } else if (f.active) {\n return {\n ...f,\n active: false,\n };\n } else {\n return f;\n }\n });\n }\n};\n\nexport const renameFilter = (\n filterDescriptors: FilterContainerFilterDescriptor[],\n filterId: string,\n name: string,\n) =>\n filterDescriptors.map<FilterContainerFilterDescriptor>((f) => {\n if (f.id === filterId && f.filter !== null) {\n return {\n ...f,\n filter: {\n ...f.filter,\n name,\n },\n };\n } else {\n return f;\n }\n });\n"],"names":["EMPTY_FILTER","NULL_FILTER","UNSAVED_FILTER"],"mappings":";;;;AAaO,SAAS,UACd,CAAA,iBAAA,EACA,QACA,EAAA,eAAA,GAAkB,IAClB,EAAA;AACA,EAAM,MAAA,MAAA,GAAS,kBAAkB,IAAK,CAAA,CAAC,EAAE,EAAG,EAAA,KAAM,OAAO,QAAQ,CAAA;AACjE,EAAA,IAAI,MAAQ,EAAA;AACV,IAAO,OAAA,MAAA;AAAA,aACE,eAAiB,EAAA;AAC1B,IAAM,MAAA,KAAA,CAAM,CAAiD,8CAAA,EAAA,QAAQ,CAAE,CAAA,CAAA;AAAA;AAE3E;AAEO,MAAM,gBAAmB,GAAA,CAC9B,iBACG,KAAA,cAAA,CAAe,mBAAmB,KAAS,CAAA;AAEhD,MAAM,YAAA,GAAe,CAAC,gBAAA,KACpB,gBAAiB,CAAA,EAAA,KAAOA,8BACxB,gBAAiB,CAAA,EAAA,KAAOC,yBACxB,IAAA,gBAAA,CAAiB,EAAO,KAAAC,4BAAA;AAEnB,MAAM,iBAAiB,CAC5B,iBAAA,EACA,mBAEA,iBAAkB,CAAA,GAAA,CAAqC,CAAC,CAAM,KAAA;AAC5D,EAAI,IAAA,CAAA,CAAE,OAAO,cAAgB,EAAA;AAC3B,IAAO,OAAA;AAAA,MACL,GAAG,CAAA;AAAA,MACH,MAAA,EAAQ,CAAC,CAAE,CAAA;AAAA,KACb;AAAA,GACF,MAAA,IAAW,EAAE,MAAQ,EAAA;AACnB,IAAO,OAAA;AAAA,MACL,GAAG,CAAA;AAAA,MACH,MAAQ,EAAA;AAAA,KACV;AAAA,GACK,MAAA;AACL,IAAO,OAAA,CAAA;AAAA;AAEX,CAAC;AAEU,MAAA,qBAAA,GAAwB,CACnC,iBAAA,EACA,gBACG,KAAA;AACH,EAAI,IAAA,CAAC,iBAAkB,CAAA,IAAA,CAAK,CAAC,EAAE,IAAS,KAAA,EAAA,KAAO,gBAAiB,CAAA,EAAE,CAAG,EAAA;AACnE,IAAA,OAAO,iBAAiB,iBAAiB,CAAA,CACtC,OAAO,YAAY,CAAA,CACnB,OAAO,gBAAgB,CAAA;AAAA,GACrB,MAAA;AACL,IAAO,OAAA,iBAAA,CAAkB,GAAqC,CAAA,CAAC,CAAM,KAAA;AACnE,MAAI,IAAA,CAAA,CAAE,EAAO,KAAA,gBAAA,CAAiB,EAAI,EAAA;AAChC,QAAO,OAAA,gBAAA;AAAA,OACT,MAAA,IAAW,EAAE,MAAQ,EAAA;AACnB,QAAO,OAAA;AAAA,UACL,GAAG,CAAA;AAAA,UACH,MAAQ,EAAA;AAAA,SACV;AAAA,OACK,MAAA;AACL,QAAO,OAAA,CAAA;AAAA;AACT,KACD,CAAA;AAAA;AAEL;AAEa,MAAA,YAAA,GAAe,CAC1B,iBACA,EAAA,QAAA,EACA,SAEA,iBAAkB,CAAA,GAAA,CAAqC,CAAC,CAAM,KAAA;AAC5D,EAAA,IAAI,CAAE,CAAA,EAAA,KAAO,QAAY,IAAA,CAAA,CAAE,WAAW,IAAM,EAAA;AAC1C,IAAO,OAAA;AAAA,MACL,GAAG,CAAA;AAAA,MACH,MAAQ,EAAA;AAAA,QACN,GAAG,CAAE,CAAA,MAAA;AAAA,QACL;AAAA;AACF,KACF;AAAA,GACK,MAAA;AACL,IAAO,OAAA,CAAA;AAAA;AAEX,CAAC;;;;;;;;"}
|