@equinor/fusion-react-filter 1.1.11 → 2.1.0-filter.3
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/README.md +4 -4
- package/components/package.json +6 -0
- package/dist/FilterProvider.d.ts +7 -28
- package/dist/FilterProvider.d.ts.map +1 -1
- package/dist/FilterProvider.js +24 -31
- package/dist/FilterProvider.js.map +1 -1
- package/dist/actions.d.ts +32 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +20 -0
- package/dist/actions.js.map +1 -0
- package/dist/components/filter/FilterOptionHeader.d.ts +7 -0
- package/dist/components/filter/FilterOptionHeader.d.ts.map +1 -0
- package/dist/components/filter/FilterOptionHeader.js +69 -0
- package/dist/components/filter/FilterOptionHeader.js.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilter.d.ts +16 -0
- package/dist/components/filter/checkbox/CheckboxFilter.d.ts.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilter.js +16 -0
- package/dist/components/filter/checkbox/CheckboxFilter.js.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilter.style.d.ts +5 -0
- package/dist/components/filter/checkbox/CheckboxFilter.style.d.ts.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilter.style.js +19 -0
- package/dist/components/filter/checkbox/CheckboxFilter.style.js.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterOption.d.ts +14 -0
- package/dist/components/filter/checkbox/CheckboxFilterOption.d.ts.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterOption.js +19 -0
- package/dist/components/filter/checkbox/CheckboxFilterOption.js.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterOption.style.d.ts +3 -0
- package/dist/components/filter/checkbox/CheckboxFilterOption.style.d.ts.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterOption.style.js +40 -0
- package/dist/components/filter/checkbox/CheckboxFilterOption.style.js.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterOptionAll.d.ts +3 -0
- package/dist/components/filter/checkbox/CheckboxFilterOptionAll.d.ts.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterOptionAll.js +24 -0
- package/dist/components/filter/checkbox/CheckboxFilterOptionAll.js.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterOptions.d.ts +3 -0
- package/dist/components/filter/checkbox/CheckboxFilterOptions.d.ts.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterOptions.js +37 -0
- package/dist/components/filter/checkbox/CheckboxFilterOptions.js.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterProvider.d.ts +13 -0
- package/dist/components/filter/checkbox/CheckboxFilterProvider.d.ts.map +1 -0
- package/dist/components/filter/checkbox/CheckboxFilterProvider.js +16 -0
- package/dist/components/filter/checkbox/CheckboxFilterProvider.js.map +1 -0
- package/dist/components/filter/checkbox/context.d.ts +4 -0
- package/dist/components/filter/checkbox/context.d.ts.map +1 -0
- package/dist/components/filter/checkbox/context.js +3 -0
- package/dist/components/filter/checkbox/context.js.map +1 -0
- package/dist/components/filter/checkbox/index.d.ts +2 -0
- package/dist/components/filter/checkbox/index.d.ts.map +1 -0
- package/dist/components/filter/checkbox/index.js +2 -0
- package/dist/components/filter/checkbox/index.js.map +1 -0
- package/dist/components/filter/checkbox/types.d.ts +7 -0
- package/dist/components/filter/checkbox/types.d.ts.map +1 -0
- package/dist/components/filter/checkbox/types.js +2 -0
- package/dist/components/filter/checkbox/types.js.map +1 -0
- package/dist/components/filter/index.d.ts +5 -0
- package/dist/components/filter/index.d.ts.map +1 -0
- package/dist/components/filter/index.js +5 -0
- package/dist/components/filter/index.js.map +1 -0
- package/dist/components/filter/search/SearchFilter.d.ts +17 -0
- package/dist/components/filter/search/SearchFilter.d.ts.map +1 -0
- package/dist/components/filter/search/SearchFilter.js +47 -0
- package/dist/components/filter/search/SearchFilter.js.map +1 -0
- package/dist/components/filter/search/index.d.ts +2 -0
- package/dist/components/filter/search/index.d.ts.map +1 -0
- package/dist/components/filter/search/index.js +2 -0
- package/dist/components/filter/search/index.js.map +1 -0
- package/dist/components/filter/types.d.ts +7 -0
- package/dist/components/filter/types.d.ts.map +1 -0
- package/dist/components/filter/types.js +2 -0
- package/dist/components/filter/types.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/misc/ClearFilterButton.d.ts +10 -0
- package/dist/components/misc/ClearFilterButton.d.ts.map +1 -0
- package/dist/components/misc/ClearFilterButton.js +25 -0
- package/dist/components/misc/ClearFilterButton.js.map +1 -0
- package/dist/components/misc/FilterContainer.d.ts +12 -0
- package/dist/components/misc/FilterContainer.d.ts.map +1 -0
- package/dist/components/misc/FilterContainer.js +18 -0
- package/dist/components/misc/FilterContainer.js.map +1 -0
- package/dist/components/misc/index.d.ts +3 -0
- package/dist/components/misc/index.d.ts.map +1 -0
- package/dist/components/misc/index.js +3 -0
- package/dist/components/misc/index.js.map +1 -0
- package/dist/components/panel/FilterPanel.d.ts +19 -0
- package/dist/components/panel/FilterPanel.d.ts.map +1 -0
- package/dist/components/panel/FilterPanel.js +17 -0
- package/dist/components/panel/FilterPanel.js.map +1 -0
- package/dist/components/panel/FilterPanelBar.d.ts +3 -0
- package/dist/components/panel/FilterPanelBar.d.ts.map +1 -0
- package/dist/components/panel/FilterPanelBar.js +31 -0
- package/dist/components/panel/FilterPanelBar.js.map +1 -0
- package/dist/components/panel/FilterPanelFilters.d.ts +3 -0
- package/dist/components/panel/FilterPanelFilters.d.ts.map +1 -0
- package/dist/components/panel/FilterPanelFilters.js +13 -0
- package/dist/components/panel/FilterPanelFilters.js.map +1 -0
- package/dist/components/panel/FilterPanelProvider.d.ts +32 -0
- package/dist/components/panel/FilterPanelProvider.d.ts.map +1 -0
- package/dist/components/panel/FilterPanelProvider.js +35 -0
- package/dist/components/panel/FilterPanelProvider.js.map +1 -0
- package/dist/components/panel/FilterPanelSelector.d.ts +7 -0
- package/dist/components/panel/FilterPanelSelector.d.ts.map +1 -0
- package/dist/components/panel/FilterPanelSelector.js +17 -0
- package/dist/components/panel/FilterPanelSelector.js.map +1 -0
- package/dist/components/panel/index.d.ts +5 -0
- package/dist/components/panel/index.d.ts.map +1 -0
- package/dist/components/panel/index.js +5 -0
- package/dist/components/panel/index.js.map +1 -0
- package/dist/context.d.ts +6 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +6 -0
- package/dist/context.js.map +1 -0
- package/dist/hooks/index.d.ts +12 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +25 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useClearFilter.d.ts +9 -0
- package/dist/hooks/useClearFilter.d.ts.map +1 -0
- package/dist/hooks/useClearFilter.js +30 -0
- package/dist/hooks/useClearFilter.js.map +1 -0
- package/dist/hooks/useFilter.d.ts +7 -0
- package/dist/hooks/useFilter.d.ts.map +1 -0
- package/dist/hooks/useFilter.js +26 -0
- package/dist/hooks/useFilter.js.map +1 -0
- package/dist/hooks/useFilterData.d.ts +11 -0
- package/dist/hooks/useFilterData.d.ts.map +1 -0
- package/dist/hooks/useFilterData.js +39 -0
- package/dist/hooks/useFilterData.js.map +1 -0
- package/dist/hooks/useFilterSelection.d.ts +5 -9
- package/dist/hooks/useFilterSelection.d.ts.map +1 -1
- package/dist/hooks/useFilterSelection.js +6 -21
- package/dist/hooks/useFilterSelection.js.map +1 -1
- package/dist/index.d.ts +4 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -15
- package/dist/index.js.map +1 -1
- package/dist/options/FilterOptionProvider.d.ts +12 -0
- package/dist/options/FilterOptionProvider.d.ts.map +1 -0
- package/dist/options/FilterOptionProvider.js +55 -0
- package/dist/options/FilterOptionProvider.js.map +1 -0
- package/dist/options/actions.d.ts +8 -0
- package/dist/options/actions.d.ts.map +1 -0
- package/dist/options/actions.js +6 -0
- package/dist/options/actions.js.map +1 -0
- package/dist/options/context.d.ts +6 -0
- package/dist/options/context.d.ts.map +1 -0
- package/dist/options/context.js +7 -0
- package/dist/options/context.js.map +1 -0
- package/dist/options/create-options.d.ts +4 -0
- package/dist/options/create-options.d.ts.map +1 -0
- package/dist/options/create-options.js +24 -0
- package/dist/options/create-options.js.map +1 -0
- package/dist/options/index.d.ts +6 -0
- package/dist/options/index.d.ts.map +1 -0
- package/dist/options/index.js +6 -0
- package/dist/options/index.js.map +1 -0
- package/dist/options/reducer.d.ts +58 -0
- package/dist/options/reducer.d.ts.map +1 -0
- package/dist/options/reducer.js +4 -0
- package/dist/options/reducer.js.map +1 -0
- package/dist/options/search/filter-option-match.d.ts +7 -0
- package/dist/options/search/filter-option-match.d.ts.map +1 -0
- package/dist/options/search/filter-option-match.js +10 -0
- package/dist/options/search/filter-option-match.js.map +1 -0
- package/dist/options/search/filter-option-search.d.ts +8 -0
- package/dist/options/search/filter-option-search.d.ts.map +1 -0
- package/dist/options/search/filter-option-search.js +12 -0
- package/dist/options/search/filter-option-search.js.map +1 -0
- package/dist/options/search/index.d.ts +2 -0
- package/dist/options/search/index.d.ts.map +1 -0
- package/dist/options/search/index.js +2 -0
- package/dist/options/search/index.js.map +1 -0
- package/dist/options/search/types.d.ts +9 -0
- package/dist/options/search/types.d.ts.map +1 -0
- package/dist/options/search/types.js +2 -0
- package/dist/options/search/types.js.map +1 -0
- package/dist/options/search/useFilterOptionSearch.d.ts +12 -0
- package/dist/options/search/useFilterOptionSearch.d.ts.map +1 -0
- package/dist/options/search/useFilterOptionSearch.js +28 -0
- package/dist/options/search/useFilterOptionSearch.js.map +1 -0
- package/dist/options/types.d.ts +32 -0
- package/dist/options/types.d.ts.map +1 -0
- package/dist/options/types.js +2 -0
- package/dist/options/types.js.map +1 -0
- package/dist/reducers.d.ts +170 -0
- package/dist/reducers.d.ts.map +1 -0
- package/dist/reducers.js +23 -0
- package/dist/reducers.js.map +1 -0
- package/dist/{types/Filter.d.ts → types.d.ts} +19 -16
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/options/package.json +6 -0
- package/package.json +16 -10
- package/dist/FilterContext.d.ts +0 -8
- package/dist/FilterContext.d.ts.map +0 -1
- package/dist/FilterContext.js +0 -4
- package/dist/FilterContext.js.map +0 -1
- package/dist/components/CheckBoxFilter/CheckBoxFilter.d.ts +0 -34
- package/dist/components/CheckBoxFilter/CheckBoxFilter.d.ts.map +0 -1
- package/dist/components/CheckBoxFilter/CheckBoxFilter.js +0 -76
- package/dist/components/CheckBoxFilter/CheckBoxFilter.js.map +0 -1
- package/dist/components/CheckBoxFilter/CheckBoxOption.d.ts +0 -14
- package/dist/components/CheckBoxFilter/CheckBoxOption.d.ts.map +0 -1
- package/dist/components/CheckBoxFilter/CheckBoxOption.js +0 -10
- package/dist/components/CheckBoxFilter/CheckBoxOption.js.map +0 -1
- package/dist/components/CheckBoxFilter/CheckBoxOption.style.d.ts +0 -3
- package/dist/components/CheckBoxFilter/CheckBoxOption.style.d.ts.map +0 -1
- package/dist/components/CheckBoxFilter/CheckBoxOption.style.js +0 -24
- package/dist/components/CheckBoxFilter/CheckBoxOption.style.js.map +0 -1
- package/dist/components/CheckBoxFilter/CheckboxFilter.style.d.ts +0 -3
- package/dist/components/CheckBoxFilter/CheckboxFilter.style.d.ts.map +0 -1
- package/dist/components/CheckBoxFilter/CheckboxFilter.style.js +0 -29
- package/dist/components/CheckBoxFilter/CheckboxFilter.style.js.map +0 -1
- package/dist/components/CheckBoxFilter/SelectAllOption.d.ts +0 -12
- package/dist/components/CheckBoxFilter/SelectAllOption.d.ts.map +0 -1
- package/dist/components/CheckBoxFilter/SelectAllOption.js +0 -22
- package/dist/components/CheckBoxFilter/SelectAllOption.js.map +0 -1
- package/dist/components/CheckBoxFilter/index.d.ts +0 -5
- package/dist/components/CheckBoxFilter/index.d.ts.map +0 -1
- package/dist/components/CheckBoxFilter/index.js +0 -5
- package/dist/components/CheckBoxFilter/index.js.map +0 -1
- package/dist/components/FilterSection/FilterSection.d.ts +0 -29
- package/dist/components/FilterSection/FilterSection.d.ts.map +0 -1
- package/dist/components/FilterSection/FilterSection.js +0 -64
- package/dist/components/FilterSection/FilterSection.js.map +0 -1
- package/dist/components/FilterSection/FilterSection.style.d.ts +0 -3
- package/dist/components/FilterSection/FilterSection.style.d.ts.map +0 -1
- package/dist/components/FilterSection/FilterSection.style.js +0 -56
- package/dist/components/FilterSection/FilterSection.style.js.map +0 -1
- package/dist/components/FilterSection/index.d.ts +0 -3
- package/dist/components/FilterSection/index.d.ts.map +0 -1
- package/dist/components/FilterSection/index.js +0 -3
- package/dist/components/FilterSection/index.js.map +0 -1
- package/dist/components/FilterSelectionChips/FilterSelectionChips.d.ts +0 -7
- package/dist/components/FilterSelectionChips/FilterSelectionChips.d.ts.map +0 -1
- package/dist/components/FilterSelectionChips/FilterSelectionChips.js +0 -18
- package/dist/components/FilterSelectionChips/FilterSelectionChips.js.map +0 -1
- package/dist/components/FilterSelectionChips/FilterSelectionChips.style.d.ts +0 -3
- package/dist/components/FilterSelectionChips/FilterSelectionChips.style.d.ts.map +0 -1
- package/dist/components/FilterSelectionChips/FilterSelectionChips.style.js +0 -31
- package/dist/components/FilterSelectionChips/FilterSelectionChips.style.js.map +0 -1
- package/dist/components/FilterSelectionChips/index.d.ts +0 -2
- package/dist/components/FilterSelectionChips/index.d.ts.map +0 -1
- package/dist/components/FilterSelectionChips/index.js +0 -2
- package/dist/components/FilterSelectionChips/index.js.map +0 -1
- package/dist/components/FilterSelectionChips/useChipsSelection.d.ts +0 -9
- package/dist/components/FilterSelectionChips/useChipsSelection.d.ts.map +0 -1
- package/dist/components/FilterSelectionChips/useChipsSelection.js +0 -26
- package/dist/components/FilterSelectionChips/useChipsSelection.js.map +0 -1
- package/dist/components/FilterSelector/FilterCategory.d.ts +0 -7
- package/dist/components/FilterSelector/FilterCategory.d.ts.map +0 -1
- package/dist/components/FilterSelector/FilterCategory.js +0 -24
- package/dist/components/FilterSelector/FilterCategory.js.map +0 -1
- package/dist/components/FilterSelector/FilterCategory.style.d.ts +0 -3
- package/dist/components/FilterSelector/FilterCategory.style.d.ts.map +0 -1
- package/dist/components/FilterSelector/FilterCategory.style.js +0 -12
- package/dist/components/FilterSelector/FilterCategory.style.js.map +0 -1
- package/dist/components/FilterSelector/FilterSelector.d.ts +0 -31
- package/dist/components/FilterSelector/FilterSelector.d.ts.map +0 -1
- package/dist/components/FilterSelector/FilterSelector.js +0 -51
- package/dist/components/FilterSelector/FilterSelector.js.map +0 -1
- package/dist/components/FilterSelector/FilterSelector.style.d.ts +0 -3
- package/dist/components/FilterSelector/FilterSelector.style.d.ts.map +0 -1
- package/dist/components/FilterSelector/FilterSelector.style.js +0 -44
- package/dist/components/FilterSelector/FilterSelector.style.js.map +0 -1
- package/dist/components/FilterSelector/index.d.ts +0 -4
- package/dist/components/FilterSelector/index.d.ts.map +0 -1
- package/dist/components/FilterSelector/index.js +0 -4
- package/dist/components/FilterSelector/index.js.map +0 -1
- package/dist/components/GeneralBar/GeneralBar.d.ts +0 -26
- package/dist/components/GeneralBar/GeneralBar.d.ts.map +0 -1
- package/dist/components/GeneralBar/GeneralBar.js +0 -63
- package/dist/components/GeneralBar/GeneralBar.js.map +0 -1
- package/dist/components/GeneralBar/GeneralBar.style.d.ts +0 -3
- package/dist/components/GeneralBar/GeneralBar.style.d.ts.map +0 -1
- package/dist/components/GeneralBar/GeneralBar.style.js +0 -20
- package/dist/components/GeneralBar/GeneralBar.style.js.map +0 -1
- package/dist/components/GeneralBar/index.d.ts +0 -3
- package/dist/components/GeneralBar/index.d.ts.map +0 -1
- package/dist/components/GeneralBar/index.js +0 -3
- package/dist/components/GeneralBar/index.js.map +0 -1
- package/dist/components/HorizontalBar/HorizontalBar.d.ts +0 -10
- package/dist/components/HorizontalBar/HorizontalBar.d.ts.map +0 -1
- package/dist/components/HorizontalBar/HorizontalBar.js +0 -23
- package/dist/components/HorizontalBar/HorizontalBar.js.map +0 -1
- package/dist/components/HorizontalBar/index.d.ts +0 -3
- package/dist/components/HorizontalBar/index.d.ts.map +0 -1
- package/dist/components/HorizontalBar/index.js +0 -3
- package/dist/components/HorizontalBar/index.js.map +0 -1
- package/dist/components/HorizontalFilterPanel/HorizontalFilterPanel.d.ts +0 -17
- package/dist/components/HorizontalFilterPanel/HorizontalFilterPanel.d.ts.map +0 -1
- package/dist/components/HorizontalFilterPanel/HorizontalFilterPanel.js +0 -28
- package/dist/components/HorizontalFilterPanel/HorizontalFilterPanel.js.map +0 -1
- package/dist/components/HorizontalFilterPanel/index.d.ts +0 -3
- package/dist/components/HorizontalFilterPanel/index.d.ts.map +0 -1
- package/dist/components/HorizontalFilterPanel/index.js +0 -3
- package/dist/components/HorizontalFilterPanel/index.js.map +0 -1
- package/dist/components/Icon/index.d.ts +0 -11
- package/dist/components/Icon/index.d.ts.map +0 -1
- package/dist/components/Icon/index.js +0 -16
- package/dist/components/Icon/index.js.map +0 -1
- package/dist/components/RadioFilter/RadioFilter.d.ts +0 -17
- package/dist/components/RadioFilter/RadioFilter.d.ts.map +0 -1
- package/dist/components/RadioFilter/RadioFilter.js +0 -51
- package/dist/components/RadioFilter/RadioFilter.js.map +0 -1
- package/dist/components/RadioFilter/RadioFilter.style.d.ts +0 -3
- package/dist/components/RadioFilter/RadioFilter.style.d.ts.map +0 -1
- package/dist/components/RadioFilter/RadioFilter.style.js +0 -38
- package/dist/components/RadioFilter/RadioFilter.style.js.map +0 -1
- package/dist/components/RadioFilter/index.d.ts +0 -3
- package/dist/components/RadioFilter/index.d.ts.map +0 -1
- package/dist/components/RadioFilter/index.js +0 -3
- package/dist/components/RadioFilter/index.js.map +0 -1
- package/dist/epic/StatefulObserver.d.ts +0 -8
- package/dist/epic/StatefulObserver.d.ts.map +0 -1
- package/dist/epic/StatefulObserver.js +0 -26
- package/dist/epic/StatefulObserver.js.map +0 -1
- package/dist/epic/epic.d.ts +0 -14
- package/dist/epic/epic.d.ts.map +0 -1
- package/dist/epic/epic.js +0 -2
- package/dist/epic/epic.js.map +0 -1
- package/dist/epic/hooks/useObservableSelector.d.ts +0 -14
- package/dist/epic/hooks/useObservableSelector.d.ts.map +0 -1
- package/dist/epic/hooks/useObservableSelector.js +0 -16
- package/dist/epic/hooks/useObservableSelector.js.map +0 -1
- package/dist/epic/hooks/useObservableState.d.ts +0 -13
- package/dist/epic/hooks/useObservableState.d.ts.map +0 -1
- package/dist/epic/hooks/useObservableState.js +0 -18
- package/dist/epic/hooks/useObservableState.js.map +0 -1
- package/dist/epic/hooks/useSelector.d.ts +0 -10
- package/dist/epic/hooks/useSelector.d.ts.map +0 -1
- package/dist/epic/hooks/useSelector.js +0 -14
- package/dist/epic/hooks/useSelector.js.map +0 -1
- package/dist/epic/reducer.d.ts +0 -56
- package/dist/epic/reducer.d.ts.map +0 -1
- package/dist/epic/reducer.js +0 -78
- package/dist/epic/reducer.js.map +0 -1
- package/dist/filterStore/actions.d.ts +0 -23
- package/dist/filterStore/actions.d.ts.map +0 -1
- package/dist/filterStore/actions.js +0 -18
- package/dist/filterStore/actions.js.map +0 -1
- package/dist/filterStore/epics.d.ts +0 -10
- package/dist/filterStore/epics.d.ts.map +0 -1
- package/dist/filterStore/epics.js +0 -10
- package/dist/filterStore/epics.js.map +0 -1
- package/dist/filterStore/reducers.d.ts +0 -4
- package/dist/filterStore/reducers.d.ts.map +0 -1
- package/dist/filterStore/reducers.js +0 -43
- package/dist/filterStore/reducers.js.map +0 -1
- package/dist/filterStore/store.d.ts +0 -106
- package/dist/filterStore/store.d.ts.map +0 -1
- package/dist/filterStore/store.js +0 -158
- package/dist/filterStore/store.js.map +0 -1
- package/dist/hooks/useEventListener.d.ts +0 -4
- package/dist/hooks/useEventListener.d.ts.map +0 -1
- package/dist/hooks/useEventListener.js +0 -14
- package/dist/hooks/useEventListener.js.map +0 -1
- package/dist/hooks/useFilterChangeHandler.d.ts +0 -26
- package/dist/hooks/useFilterChangeHandler.d.ts.map +0 -1
- package/dist/hooks/useFilterChangeHandler.js +0 -43
- package/dist/hooks/useFilterChangeHandler.js.map +0 -1
- package/dist/hooks/useFilterContext.d.ts +0 -4
- package/dist/hooks/useFilterContext.d.ts.map +0 -1
- package/dist/hooks/useFilterContext.js +0 -5
- package/dist/hooks/useFilterContext.js.map +0 -1
- package/dist/hooks/useFilterOptionsBuilder.d.ts +0 -27
- package/dist/hooks/useFilterOptionsBuilder.d.ts.map +0 -1
- package/dist/hooks/useFilterOptionsBuilder.js +0 -39
- package/dist/hooks/useFilterOptionsBuilder.js.map +0 -1
- package/dist/hooks/useFilterOptionsCounter.d.ts +0 -16
- package/dist/hooks/useFilterOptionsCounter.d.ts.map +0 -1
- package/dist/hooks/useFilterOptionsCounter.js +0 -32
- package/dist/hooks/useFilterOptionsCounter.js.map +0 -1
- package/dist/hooks/useFilterStore.d.ts +0 -25
- package/dist/hooks/useFilterStore.d.ts.map +0 -1
- package/dist/hooks/useFilterStore.js +0 -34
- package/dist/hooks/useFilterStore.js.map +0 -1
- package/dist/hooks/useResizablePanel.d.ts +0 -20
- package/dist/hooks/useResizablePanel.d.ts.map +0 -1
- package/dist/hooks/useResizablePanel.js +0 -71
- package/dist/hooks/useResizablePanel.js.map +0 -1
- package/dist/types/Filter.d.ts.map +0 -1
- package/dist/types/Filter.js +0 -2
- package/dist/types/Filter.js.map +0 -1
- package/dist/types/FilterContainerProps.d.ts +0 -10
- package/dist/types/FilterContainerProps.d.ts.map +0 -1
- package/dist/types/FilterContainerProps.js +0 -2
- package/dist/types/FilterContainerProps.js.map +0 -1
- package/dist/types/FilterCounters.d.ts +0 -3
- package/dist/types/FilterCounters.d.ts.map +0 -1
- package/dist/types/FilterCounters.js +0 -2
- package/dist/types/FilterCounters.js.map +0 -1
- package/dist/types/FilterOption.d.ts +0 -13
- package/dist/types/FilterOption.d.ts.map +0 -1
- package/dist/types/FilterOption.js +0 -2
- package/dist/types/FilterOption.js.map +0 -1
- package/dist/types/FilterStoreState.d.ts +0 -6
- package/dist/types/FilterStoreState.d.ts.map +0 -1
- package/dist/types/FilterStoreState.js +0 -2
- package/dist/types/FilterStoreState.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
<!--prettier-ignore-start-->
|
|
2
|
-
## `@equinor/fusion-react-
|
|
2
|
+
## `@equinor/fusion-react-filter` [](https://www.npmjs.com/package/@equinor/fusion-react-filter)
|
|
3
3
|
|
|
4
4
|
Adds filter functionality through the FilterProvider.
|
|
5
|
-
Also comes with various predefined filters and panels for building out a
|
|
5
|
+
Also comes with various predefined filters and panels for building out a filter.
|
|
6
6
|
|
|
7
|
-
Consult the [Storybook](https://equinor.github.io/fusion-react-components/?path=/docs/
|
|
7
|
+
Consult the [Storybook](https://equinor.github.io/fusion-react-components/?path=/docs/data-filter) for more detailed examples and documentation.
|
|
8
8
|
|
|
9
9
|
### Installation
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
npm install @equinor/fusion-react-
|
|
12
|
+
npm install @equinor/fusion-react-filter
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Example Usage
|
package/dist/FilterProvider.d.ts
CHANGED
|
@@ -1,31 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
declare type FilterProviderProps<TSelections extends Record<string,
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Filter } from './types';
|
|
3
|
+
export declare type FilterProviderProps<TSelections extends Record<string, unknown>, TData> = {
|
|
4
|
+
data: TData[];
|
|
5
|
+
initialSelection?: TSelections;
|
|
6
|
+
initialFilters?: Record<string, Filter<TData, TSelections>>;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
-
*Filter Context provider for filtering functionality.
|
|
9
|
-
*Access data using const { filteredData, selection, store } = useFilterStore();
|
|
10
|
-
*
|
|
11
|
-
* @param initialData The full dataset that should be filtered.
|
|
12
|
-
* @param initialFilters Filters to be registered when first loading the provider.
|
|
13
|
-
* Can also send in data that should be filtered on load. keys must correspond with keys added to defined filter settings.
|
|
14
|
-
* Or they will not be recognized
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
*
|
|
18
|
-
* initialFilter = {firstName: ['Helge'],lastName:[] } //predefined filters.
|
|
19
|
-
* //firstName will be added to selections with a predefined selection ('Helge'),
|
|
20
|
-
* //while lastName is added to empty([]) to selections.
|
|
21
|
-
*
|
|
22
|
-
* const data = getData();
|
|
23
|
-
*
|
|
24
|
-
* <FilterProvider initialData={data} initialFilters={initialFilter}>
|
|
25
|
-
* <MyFilterPanel />
|
|
26
|
-
* <MyApp> />
|
|
27
|
-
* </FilterProvider>
|
|
28
|
-
*/
|
|
29
|
-
export declare const FilterProvider: <TSelections extends Record<string, unknown>, TData>(props: PropsWithChildren<FilterProviderProps<TSelections, TData>>) => JSX.Element;
|
|
8
|
+
export declare const FilterProvider: <TSelections extends Record<string, any>, TData extends Record<string, any> = Record<string, any>>(props: import("react").PropsWithChildren<FilterProviderProps<TSelections, TData>>) => JSX.Element;
|
|
30
9
|
export default FilterProvider;
|
|
31
10
|
//# sourceMappingURL=FilterProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterProvider.d.ts","sourceRoot":"","sources":["../src/FilterProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilterProvider.d.ts","sourceRoot":"","sources":["../src/FilterProvider.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAC;AAIhD,oBAAY,mBAAmB,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,IAAI;IACpF,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;CAC7D,CAAC;AAEF,eAAO,MAAM,cAAc,2LAKxB,WA2BF,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
package/dist/FilterProvider.js
CHANGED
|
@@ -1,36 +1,29 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* @param initialData The full dataset that should be filtered.
|
|
10
|
-
* @param initialFilters Filters to be registered when first loading the provider.
|
|
11
|
-
* Can also send in data that should be filtered on load. keys must correspond with keys added to defined filter settings.
|
|
12
|
-
* Or they will not be recognized
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
*
|
|
16
|
-
* initialFilter = {firstName: ['Helge'],lastName:[] } //predefined filters.
|
|
17
|
-
* //firstName will be added to selections with a predefined selection ('Helge'),
|
|
18
|
-
* //while lastName is added to empty([]) to selections.
|
|
19
|
-
*
|
|
20
|
-
* const data = getData();
|
|
21
|
-
*
|
|
22
|
-
* <FilterProvider initialData={data} initialFilters={initialFilter}>
|
|
23
|
-
* <MyFilterPanel />
|
|
24
|
-
* <MyApp> />
|
|
25
|
-
* </FilterProvider>
|
|
26
|
-
*/
|
|
2
|
+
import { useLayoutEffect, useState } from 'react';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { useObservable, useSubscription } from '@equinor/fusion-react-observable';
|
|
5
|
+
import { createSelectionReducer, createDataReducer, createFilterReducer } from './reducers';
|
|
6
|
+
import { Provider } from './context';
|
|
7
|
+
import { actions } from './actions';
|
|
8
|
+
import { filterData } from './hooks/useFilterData';
|
|
27
9
|
export const FilterProvider = (props) => {
|
|
28
|
-
const {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
10
|
+
const { data, initialSelection = {}, initialFilters = {}, children, } = props;
|
|
11
|
+
const source$ = useObservable(createDataReducer(data), data);
|
|
12
|
+
const selection$ = useObservable(createSelectionReducer(initialSelection), initialSelection);
|
|
13
|
+
const filter$ = useObservable(createFilterReducer({}), initialFilters);
|
|
14
|
+
const [data$] = useState(new BehaviorSubject(data));
|
|
15
|
+
useSubscription(filterData(source$, filter$, selection$), data$);
|
|
16
|
+
const context = {
|
|
17
|
+
source$,
|
|
18
|
+
filter$,
|
|
19
|
+
selection$,
|
|
20
|
+
data$,
|
|
21
|
+
/** type issues, might fix later */
|
|
22
|
+
};
|
|
23
|
+
useLayoutEffect(() => {
|
|
24
|
+
source$.next(actions.source.update(data));
|
|
25
|
+
}, [source$, data]);
|
|
26
|
+
return _jsx(Provider, Object.assign({ value: context }, { children: children }), void 0);
|
|
34
27
|
};
|
|
35
28
|
export default FilterProvider;
|
|
36
29
|
//# sourceMappingURL=FilterProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterProvider.js","sourceRoot":"","sources":["../src/FilterProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"FilterProvider.js","sourceRoot":"","sources":["../src/FilterProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE5F,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAI5B,KAAuE,EAC1D,EAAE;IACf,MAAM,EACJ,IAAI,EACJ,gBAAgB,GAAG,EAAiB,EACpC,cAAc,GAAG,EAA4C,EAC7D,QAAQ,GACT,GAAG,KAAK,CAAC;IACV,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IAEvE,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC,CAAC;IAC7D,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG;QACd,OAAO;QACP,OAAO;QACP,UAAU;QACV,KAAK;QACL,mCAAmC;KACR,CAAC;IAE9B,eAAe,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpB,OAAO,KAAC,QAAQ,kBAAC,KAAK,EAAE,OAAO,gBAAG,QAAQ,YAAY,CAAC;AACzD,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ActionType } from 'typesafe-actions';
|
|
2
|
+
import { Filter } from './types';
|
|
3
|
+
export declare type SelectionValues<TValue = unknown> = Record<string, TValue>;
|
|
4
|
+
export declare const filter: {
|
|
5
|
+
add: import("typesafe-actions").PayloadActionCreator<"@FILTER/FILTERS_ADD", Filter<any, any>>;
|
|
6
|
+
remove: import("typesafe-actions").PayloadActionCreator<"@FILTER/FILTERS_REMOVE", string>;
|
|
7
|
+
};
|
|
8
|
+
export declare const selection: {
|
|
9
|
+
set: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_SET", SelectionValues<unknown>>;
|
|
10
|
+
initial: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_INITIAL", SelectionValues<unknown>>;
|
|
11
|
+
clear: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_CLEAR", void>;
|
|
12
|
+
};
|
|
13
|
+
export declare const source: {
|
|
14
|
+
update: import("typesafe-actions").PayloadActionCreator<"@FILTER/SOURCE_UPDATE", unknown>;
|
|
15
|
+
};
|
|
16
|
+
export declare const actions: {
|
|
17
|
+
filter: {
|
|
18
|
+
add: import("typesafe-actions").PayloadActionCreator<"@FILTER/FILTERS_ADD", Filter<any, any>>;
|
|
19
|
+
remove: import("typesafe-actions").PayloadActionCreator<"@FILTER/FILTERS_REMOVE", string>;
|
|
20
|
+
};
|
|
21
|
+
selection: {
|
|
22
|
+
set: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_SET", SelectionValues<unknown>>;
|
|
23
|
+
initial: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_INITIAL", SelectionValues<unknown>>;
|
|
24
|
+
clear: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_CLEAR", void>;
|
|
25
|
+
};
|
|
26
|
+
source: {
|
|
27
|
+
update: import("typesafe-actions").PayloadActionCreator<"@FILTER/SOURCE_UPDATE", unknown>;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export declare type Actions = ActionType<typeof actions>;
|
|
31
|
+
export default actions;
|
|
32
|
+
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,oBAAY,eAAe,CAAC,MAAM,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;CAIrB,CAAC;AAEF,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;;;CAInB,CAAC;AAEF,oBAAY,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAEjD,eAAe,OAAO,CAAC"}
|
package/dist/actions.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createAction } from 'typesafe-actions';
|
|
2
|
+
export const filter = {
|
|
3
|
+
add: createAction('@FILTER/FILTERS_ADD')(),
|
|
4
|
+
remove: createAction('@FILTER/FILTERS_REMOVE')(),
|
|
5
|
+
};
|
|
6
|
+
export const selection = {
|
|
7
|
+
set: createAction('@FILTER/SELECTION_SET')(),
|
|
8
|
+
initial: createAction('@FILTER/SELECTION_INITIAL')(),
|
|
9
|
+
clear: createAction('@FILTER/SELECTION_CLEAR')(),
|
|
10
|
+
};
|
|
11
|
+
export const source = {
|
|
12
|
+
update: createAction('@FILTER/SOURCE_UPDATE')(),
|
|
13
|
+
};
|
|
14
|
+
export const actions = {
|
|
15
|
+
filter,
|
|
16
|
+
selection,
|
|
17
|
+
source,
|
|
18
|
+
};
|
|
19
|
+
export default actions;
|
|
20
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAC;AAK5D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,GAAG,EAAE,YAAY,CAAC,qBAAqB,CAAC,EAAoB;IAC5D,MAAM,EAAE,YAAY,CAAC,wBAAwB,CAAC,EAAU;CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,YAAY,CAAC,uBAAuB,CAAC,EAAmB;IAC7D,OAAO,EAAE,YAAY,CAAC,2BAA2B,CAAC,EAAmB;IACrE,KAAK,EAAE,YAAY,CAAC,yBAAyB,CAAC,EAAQ;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,YAAY,CAAC,uBAAuB,CAAC,EAAW;CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM;IACN,SAAS;IACT,MAAM;CACP,CAAC;AAIF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare type FilterHeaderProps = {
|
|
2
|
+
title: string;
|
|
3
|
+
};
|
|
4
|
+
export declare const useStyles: (props?: {} | undefined) => import("@material-ui/styles").ClassNameMap<"header" | "root" | "counter" | "showSearch" | "noCount" | "iconBtn" | "searchField">;
|
|
5
|
+
export declare const FilterOptionHeader: (props: FilterHeaderProps) => JSX.Element;
|
|
6
|
+
export default FilterOptionHeader;
|
|
7
|
+
//# sourceMappingURL=FilterOptionHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterOptionHeader.d.ts","sourceRoot":"","sources":["../../../src/components/filter/FilterOptionHeader.tsx"],"names":[],"mappings":"AAKA,aAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAKF,eAAO,MAAM,SAAS,8JAuCrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,iBAAiB,KAAG,WA+C7D,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useObservableState, useSelector } from '@equinor/fusion-react-observable';
|
|
3
|
+
import { Icon } from '@equinor/fusion-react-icon';
|
|
4
|
+
import { TextInput } from '@equinor/fusion-react-textinput';
|
|
5
|
+
import { useFilterOptionContext, useFilterOptionSearch } from '../../options';
|
|
6
|
+
import { clsx, createStyles, makeStyles } from '@equinor/fusion-react-styles';
|
|
7
|
+
import { useLayoutEffect, useRef, useState } from 'react';
|
|
8
|
+
export const useStyles = makeStyles((theme) => createStyles({
|
|
9
|
+
root: {
|
|
10
|
+
display: 'flex',
|
|
11
|
+
alignItems: 'center',
|
|
12
|
+
},
|
|
13
|
+
header: {
|
|
14
|
+
...theme.typography.table.cell_header.style,
|
|
15
|
+
overflow: 'hidden',
|
|
16
|
+
'&$showSearch': {
|
|
17
|
+
display: 'none',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
showSearch: {},
|
|
21
|
+
counter: {
|
|
22
|
+
display: 'inline-flex',
|
|
23
|
+
gap: '1px',
|
|
24
|
+
...theme.typography.input.helper.style,
|
|
25
|
+
marginLeft: theme.spacing.comfortable.small.getVariable('padding'),
|
|
26
|
+
},
|
|
27
|
+
noCount: {
|
|
28
|
+
display: 'none',
|
|
29
|
+
},
|
|
30
|
+
iconBtn: {
|
|
31
|
+
cursor: 'pointer',
|
|
32
|
+
marginLeft: 'auto',
|
|
33
|
+
},
|
|
34
|
+
searchField: {
|
|
35
|
+
marginTop: '4px',
|
|
36
|
+
flex: '1 1 auto',
|
|
37
|
+
'&:not($showSearch)': {
|
|
38
|
+
maxWidth: 0,
|
|
39
|
+
flex: 'none',
|
|
40
|
+
overflow: 'hidden',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
}), { name: 'fusion-filter-header' });
|
|
44
|
+
export const FilterOptionHeader = (props) => {
|
|
45
|
+
const { title } = props;
|
|
46
|
+
const [showSearch, setShowSearch] = useState(false);
|
|
47
|
+
const { setQuery, query$ } = useFilterOptionSearch();
|
|
48
|
+
const searchRef = useRef(null);
|
|
49
|
+
const { options$, selection$ } = useFilterOptionContext();
|
|
50
|
+
const optionCount = Object.keys(useObservableState(options$) || {}).length;
|
|
51
|
+
const selectedCount = useObservableState(useSelector(selection$, (x) => x && x.size));
|
|
52
|
+
const styles = useStyles();
|
|
53
|
+
const onIconClick = () => {
|
|
54
|
+
if (showSearch) {
|
|
55
|
+
setQuery('');
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
searchRef.current?.focus();
|
|
59
|
+
}
|
|
60
|
+
setShowSearch(!showSearch);
|
|
61
|
+
};
|
|
62
|
+
useLayoutEffect(() => {
|
|
63
|
+
const subscription = query$.subscribe((x) => searchRef.current && (searchRef.current.value = x));
|
|
64
|
+
return () => subscription.unsubscribe();
|
|
65
|
+
}, [searchRef, query$]);
|
|
66
|
+
return (_jsxs("div", Object.assign({ className: styles.root }, { children: [_jsx(TextInput, { ref: searchRef, className: clsx(styles.searchField, showSearch && styles.showSearch), icon: "search", variant: "outlined", type: "search", label: title, onInput: (e) => setQuery(e.currentTarget.value), dense: true }, void 0), _jsxs("header", Object.assign({ className: clsx(styles.header, showSearch && styles.showSearch) }, { children: [_jsx("span", { children: title }, void 0), _jsxs("span", Object.assign({ className: clsx(styles.counter, !selectedCount && styles.noCount) }, { children: [_jsx("span", { children: "(" }, void 0), _jsx("span", { children: selectedCount }, void 0), _jsx("span", { children: "/" }, void 0), _jsx("span", { children: optionCount }, void 0), _jsx("span", { children: ")" }, void 0)] }), void 0)] }), void 0), _jsx(Icon, { className: styles.iconBtn, icon: showSearch ? 'chevron_right' : 'search', onClick: onIconClick }, void 0)] }), void 0));
|
|
67
|
+
};
|
|
68
|
+
export default FilterOptionHeader;
|
|
69
|
+
//# sourceMappingURL=FilterOptionHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterOptionHeader.js","sourceRoot":"","sources":["../../../src/components/filter/FilterOptionHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FilterOptionSelector } from '../../../options/types';
|
|
2
|
+
import { FilterComponent } from '../types';
|
|
3
|
+
export declare type CheckboxFilterProps<TData extends Record<string, any> = Record<string, any>> = FilterComponent & {
|
|
4
|
+
/** either name of property of data type or a function that selects value */
|
|
5
|
+
selector?: Extract<keyof TData, string> | string | FilterOptionSelector<TData>;
|
|
6
|
+
/** show option for selecting all */
|
|
7
|
+
enableAll?: boolean;
|
|
8
|
+
/** initial selection */
|
|
9
|
+
initial?: Set<string>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Component for displaying multi-select filter with checkboxes
|
|
13
|
+
*/
|
|
14
|
+
export declare const CheckboxFilter: (props: CheckboxFilterProps) => JSX.Element;
|
|
15
|
+
export default CheckboxFilter;
|
|
16
|
+
//# sourceMappingURL=CheckboxFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAS9D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,oBAAY,mBAAmB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,eAAe,GAAG;IAC3G,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/E,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,UAAW,mBAAmB,KAAG,WAc3D,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CheckboxFilterProvider } from './CheckboxFilterProvider';
|
|
3
|
+
import CheckboxFilterOptions from './CheckboxFilterOptions';
|
|
4
|
+
import CheckboxFilterOptionAll from './CheckboxFilterOptionAll';
|
|
5
|
+
import { FilterOptionHeader } from '../FilterOptionHeader';
|
|
6
|
+
import useStyles from './CheckboxFilter.style';
|
|
7
|
+
/**
|
|
8
|
+
* Component for displaying multi-select filter with checkboxes
|
|
9
|
+
*/
|
|
10
|
+
export const CheckboxFilter = (props) => {
|
|
11
|
+
const { enableAll, ...args } = props;
|
|
12
|
+
const styles = useStyles({ layout: 'column' });
|
|
13
|
+
return (_jsx(CheckboxFilterProvider, Object.assign({}, args, { children: _jsxs("div", Object.assign({ className: styles.root }, { children: [_jsx(FilterOptionHeader, { title: args.title }, void 0), _jsxs("div", Object.assign({ className: styles.items }, { children: [enableAll && _jsx(CheckboxFilterOptionAll, {}, void 0), _jsx(CheckboxFilterOptions, {}, void 0)] }), void 0)] }), void 0) }), void 0));
|
|
14
|
+
};
|
|
15
|
+
export default CheckboxFilter;
|
|
16
|
+
//# sourceMappingURL=CheckboxFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilter.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAY/C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAe,EAAE;IACxE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CACL,KAAC,sBAAsB,oBAAK,IAAI,cAC9B,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,iBACzB,KAAC,kBAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAAI,EACzC,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK,iBACzB,SAAS,IAAI,KAAC,uBAAuB,aAAG,EACzC,KAAC,qBAAqB,aAAG,aACrB,aACF,YACiB,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilter.style.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;YASS,QAAQ,GAAG,KAAK;4EAW9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createStyles, makeStyles } from '@equinor/fusion-react-styles';
|
|
2
|
+
export const useStyles = makeStyles((theme) => createStyles({
|
|
3
|
+
root: {
|
|
4
|
+
display: 'flex',
|
|
5
|
+
flexFlow: 'column',
|
|
6
|
+
// TODO - remove
|
|
7
|
+
minWidth: 250,
|
|
8
|
+
},
|
|
9
|
+
items: (props) => ({
|
|
10
|
+
display: 'flex',
|
|
11
|
+
flexFlow: props.layout,
|
|
12
|
+
overflowY: 'scroll',
|
|
13
|
+
}),
|
|
14
|
+
title: {
|
|
15
|
+
...theme.typography.heading.h3.style,
|
|
16
|
+
},
|
|
17
|
+
}), { name: 'fusion-filter-checkbox-option' });
|
|
18
|
+
export default useStyles;
|
|
19
|
+
//# sourceMappingURL=CheckboxFilter.style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilter.style.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CACjC,CAAC,KAAK,EAAE,EAAE,CACR,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,QAAQ;QAClB,gBAAgB;QAChB,QAAQ,EAAE,GAAG;KACd;IACD,KAAK,EAAE,CAAC,KAAmC,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,SAAS,EAAE,QAAQ;KACpB,CAAC;IAEF,KAAK,EAAE;QACL,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK;KACrC;CACF,CAAC,EACJ,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAC1C,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CheckboxOption } from './types';
|
|
2
|
+
export declare type CheckboxFilterOptionProps = JSX.IntrinsicElements['div'] & Omit<CheckboxOption, 'totalCount'> & {
|
|
3
|
+
name: string;
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
indeterminate?: boolean;
|
|
6
|
+
count: string | number;
|
|
7
|
+
onOptionChange: (item: {
|
|
8
|
+
name: string;
|
|
9
|
+
selected?: boolean;
|
|
10
|
+
}) => void;
|
|
11
|
+
};
|
|
12
|
+
export declare const CheckboxFilterOption: (props: CheckboxFilterOptionProps) => JSX.Element;
|
|
13
|
+
export default CheckboxFilterOption;
|
|
14
|
+
//# sourceMappingURL=CheckboxFilterOption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterOption.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOption.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,oBAAY,yBAAyB,GAAG,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAClE,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,cAAc,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACtE,CAAC;AAEJ,eAAO,MAAM,oBAAoB,UAAW,yBAAyB,KAAG,WA+BvE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { CheckboxBase as Checkbox } from '@equinor/fusion-react-checkbox';
|
|
4
|
+
import { clsx } from '@equinor/fusion-react-styles';
|
|
5
|
+
import { useStyles } from './CheckboxFilterOption.style';
|
|
6
|
+
export const CheckboxFilterOption = (props) => {
|
|
7
|
+
const { name, label, count, checked, indeterminate, inactive, hide, onOptionChange, className, ...args } = props;
|
|
8
|
+
const onCheckboxClick = useCallback((e) => e.stopPropagation(), []);
|
|
9
|
+
const onCheckboxInput = useCallback(({ currentTarget: { name, checked } }) => {
|
|
10
|
+
return onOptionChange({ name, selected: !checked });
|
|
11
|
+
}, [onOptionChange]);
|
|
12
|
+
const onClick = useCallback((e) => {
|
|
13
|
+
e.currentTarget.firstChild.click();
|
|
14
|
+
}, []);
|
|
15
|
+
const styles = useStyles();
|
|
16
|
+
return (_jsxs("div", Object.assign({}, args, { className: clsx(className, styles.root, inactive && styles.inactive, hide && styles.hide), onClick: onClick }, { children: [_jsx(Checkbox, { className: styles.checkbox, name: name, checked: checked, onInput: onCheckboxInput, onClick: onCheckboxClick, indeterminate: indeterminate }, void 0), _jsx("span", Object.assign({ className: styles.label }, { children: label }), void 0), _jsx("span", Object.assign({ className: styles.counter }, { children: count }), void 0)] }), void 0));
|
|
17
|
+
};
|
|
18
|
+
export default CheckboxFilterOption;
|
|
19
|
+
//# sourceMappingURL=CheckboxFilterOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterOption.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOption.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,YAAY,IAAI,QAAQ,EAA6B,MAAM,gCAAgC,CAAC;AAErG,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAYzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAe,EAAE;IACpF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACjH,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAA8C,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;IACjH,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAA8C,EAAE,EAAE;QACnF,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAmC,EAAE,EAAE;QACjE,CAAC,CAAC,aAAa,CAAC,UAAwC,CAAC,KAAK,EAAE,CAAC;IACpE,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,CACL,+BACM,IAAI,IACR,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EACzF,OAAO,EAAE,OAAO,iBAEhB,KAAC,QAAQ,IACP,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,aAAa,WAC5B,EACF,6BAAM,SAAS,EAAE,MAAM,CAAC,KAAK,gBAAG,KAAK,YAAQ,EAC7C,6BAAM,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAG,KAAK,YAAQ,aAC3C,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterOption.style.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOption.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,yIAwCrB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { createStyles, makeStyles } from '@equinor/fusion-react-styles';
|
|
2
|
+
export const useStyles = makeStyles((theme) => createStyles({
|
|
3
|
+
root: {
|
|
4
|
+
display: 'flex',
|
|
5
|
+
alignItems: 'center',
|
|
6
|
+
// justifyContent: 'space-between',
|
|
7
|
+
cursor: 'pointer',
|
|
8
|
+
backgroundColor: 'transparent',
|
|
9
|
+
willChange: 'backgroundColor',
|
|
10
|
+
// TODO - fetch from theme
|
|
11
|
+
transition: '125ms background-color ease-out',
|
|
12
|
+
'&:hover': {
|
|
13
|
+
backgroundColor: theme.colors.interactive.primary__hover_alt.getVariable('color'),
|
|
14
|
+
},
|
|
15
|
+
// maxWidth: '80px',
|
|
16
|
+
},
|
|
17
|
+
inactive: {
|
|
18
|
+
filter: 'grayscale(100%)',
|
|
19
|
+
opacity: 0.5,
|
|
20
|
+
},
|
|
21
|
+
checkbox: {
|
|
22
|
+
'--fwc-checkbox-size': '14px',
|
|
23
|
+
},
|
|
24
|
+
label: {
|
|
25
|
+
...theme.typography.input.label.style,
|
|
26
|
+
flex: '1 1 auto',
|
|
27
|
+
overflow: 'hidden',
|
|
28
|
+
whiteSpace: 'nowrap',
|
|
29
|
+
textOverflow: 'ellipsis',
|
|
30
|
+
},
|
|
31
|
+
counter: {
|
|
32
|
+
...theme.typography.input.label.style,
|
|
33
|
+
margin: `0 ${theme.spacing.comfortable.small.getVariable('padding')}`,
|
|
34
|
+
},
|
|
35
|
+
hide: {
|
|
36
|
+
display: 'none',
|
|
37
|
+
},
|
|
38
|
+
}), { name: 'fusion-filter-checkbox-option' });
|
|
39
|
+
export default useStyles;
|
|
40
|
+
//# sourceMappingURL=CheckboxFilterOption.style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterOption.style.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOption.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CACjC,CAAC,KAAK,EAAE,EAAE,CACR,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,mCAAmC;QACnC,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,aAAa;QAC9B,UAAU,EAAE,iBAAiB;QAC7B,0BAA0B;QAC1B,UAAU,EAAE,iCAAiC;QAC7C,SAAS,EAAE;YACT,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC;SAClF;QACD,oBAAoB;KACrB;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,GAAG;KACb;IACD,QAAQ,EAAE;QACR,qBAAqB,EAAE,MAAM;KAC9B;IACD,KAAK,EAAE;QACL,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;QACrC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,UAAU;KACzB;IACD,OAAO,EAAE;QACP,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;QACrC,MAAM,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;KACtE;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;KAChB;CACF,CAAC,EACJ,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAC1C,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterOptionAll.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOptionAll.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,uBAAuB,QAAO,WAmC1C,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { useObservableRef, useObservableState, useSelector } from '@equinor/fusion-react-observable';
|
|
4
|
+
import { useCheckboxFilterOptionContext } from './context';
|
|
5
|
+
import CheckboxFilterOption from './CheckboxFilterOption';
|
|
6
|
+
export const CheckboxFilterOptionAll = () => {
|
|
7
|
+
const { options$, selection$, setSelection } = useCheckboxFilterOptionContext();
|
|
8
|
+
const options = useObservableState(options$) || {};
|
|
9
|
+
const optionKeysRef = useObservableRef(useSelector(options$, (x) => Object.keys(x)));
|
|
10
|
+
const selectedKeys = useObservableState(selection$) || new Set([]);
|
|
11
|
+
const { totalCount } = Object.values(options || {}).reduce((acc, value) => {
|
|
12
|
+
acc.count += value.count;
|
|
13
|
+
acc.totalCount += value.totalCount;
|
|
14
|
+
return acc;
|
|
15
|
+
}, { count: 0, totalCount: 0 });
|
|
16
|
+
const checked = selectedKeys.size === optionKeysRef.current?.length;
|
|
17
|
+
const indeterminate = Boolean(selectedKeys.size && !checked);
|
|
18
|
+
const onOptionChange = useCallback(({ selected }) => {
|
|
19
|
+
setSelection(selected ? new Set(optionKeysRef.current) : new Set([]));
|
|
20
|
+
}, [setSelection, optionKeysRef]);
|
|
21
|
+
return (_jsx(CheckboxFilterOption, { name: "all", label: "all", indeterminate: indeterminate, checked: checked, count: totalCount, onOptionChange: onOptionChange }, void 0));
|
|
22
|
+
};
|
|
23
|
+
export default CheckboxFilterOptionAll;
|
|
24
|
+
//# sourceMappingURL=CheckboxFilterOptionAll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterOptionAll.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOptionAll.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAErG,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAgB,EAAE;IACvD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,8BAA8B,EAAE,CAAC;IAChF,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErF,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAEnE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CACxD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;QACzB,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAC5B,CAAC;IAEF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,KAAK,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC;IACpE,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,EAAE,QAAQ,EAAwC,EAAE,EAAE;QACrD,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC,EACD,CAAC,YAAY,EAAE,aAAa,CAAC,CAC9B,CAAC;IAEF,OAAO,CACL,KAAC,oBAAoB,IACnB,IAAI,EAAC,KAAK,EACV,KAAK,EAAC,KAAK,EACX,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,cAAc,WAC9B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterOptions.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOptions.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,qBAAqB,QAAO,WAwCxC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { useObservableRef, useObservableState } from '@equinor/fusion-react-observable';
|
|
4
|
+
import { useCheckboxFilterOptionContext } from './context';
|
|
5
|
+
import { CheckboxFilterOption } from './CheckboxFilterOption';
|
|
6
|
+
// TODO - make arg!
|
|
7
|
+
const sortFn = (a, b) => a.label.localeCompare(b.label);
|
|
8
|
+
export const CheckboxFilterOptions = () => {
|
|
9
|
+
const context = useCheckboxFilterOptionContext();
|
|
10
|
+
const data = useObservableState(context.options$);
|
|
11
|
+
const selectionRef = useObservableRef(context.selection$);
|
|
12
|
+
const onOptionChange = useCallback((item) => {
|
|
13
|
+
const selection = new Set(selectionRef.current || []);
|
|
14
|
+
const { name, selected } = item;
|
|
15
|
+
if (selected) {
|
|
16
|
+
selection.add(name);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
selection.delete(name);
|
|
20
|
+
}
|
|
21
|
+
context.setSelection(selection.size ? selection : undefined);
|
|
22
|
+
}, [context, selectionRef]);
|
|
23
|
+
const itemProps = Object.entries(data || {})
|
|
24
|
+
.map(([key, value]) => ({
|
|
25
|
+
onOptionChange,
|
|
26
|
+
name: key,
|
|
27
|
+
label: value.label,
|
|
28
|
+
checked: !!value.selected,
|
|
29
|
+
count: value.count === value.totalCount ? value.count : `${value.count} / ${value.totalCount}`,
|
|
30
|
+
inactive: !value.count,
|
|
31
|
+
hide: value.hide,
|
|
32
|
+
}))
|
|
33
|
+
.sort(sortFn);
|
|
34
|
+
return (_jsx(_Fragment, { children: itemProps.map((props) => (_jsx(CheckboxFilterOption, Object.assign({}, props), props.name))) }, void 0));
|
|
35
|
+
};
|
|
36
|
+
export default CheckboxFilterOptions;
|
|
37
|
+
//# sourceMappingURL=CheckboxFilterOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterOptions.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOptions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAExF,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAA6B,MAAM,wBAAwB,CAAC;AAEzF,mBAAmB;AACnB,MAAM,MAAM,GAAG,CAA8B,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAgB,EAAE;IACrD,MAAM,OAAO,GAAG,8BAA8B,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,IAA0C,EAAE,EAAE;QAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,QAAQ,EAAE;YACZ,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACrB;aAAM;YACL,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACxB;QACD,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC,EACD,CAAC,OAAO,EAAE,YAAY,CAAC,CACxB,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;SACzC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,CAAC;QACC,cAAc;QACd,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,UAAU,EAAE;QAC9F,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACa,CAAA,CAClC;SACA,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,CACL,4BACG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACxB,KAAC,oBAAoB,oBAAsB,KAAK,GAArB,KAAK,CAAC,IAAI,CAAe,CACrD,CAAC,WACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FilterOptionBuilder, FilterOptionSelector } from '../../../options/types';
|
|
3
|
+
import { CheckboxOption } from './types';
|
|
4
|
+
export declare type CheckboxFilterProviderProps<TData extends Record<string, any>, TOption extends CheckboxOption = CheckboxOption> = {
|
|
5
|
+
filterKey: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
optionBuilder?: FilterOptionBuilder<TData, TOption, string>;
|
|
8
|
+
selector?: Extract<keyof TData, string> | string | FilterOptionSelector<TData>;
|
|
9
|
+
initial?: Set<string>;
|
|
10
|
+
};
|
|
11
|
+
export declare const CheckboxFilterProvider: <TData extends Record<string, any>, TOptions extends CheckboxOption = CheckboxOption>(props: import("react").PropsWithChildren<CheckboxFilterProviderProps<TData, TOptions>>) => JSX.Element;
|
|
12
|
+
export default CheckboxFilterProviderProps;
|
|
13
|
+
//# sourceMappingURL=CheckboxFilterProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxFilterProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterProvider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQzC,oBAAY,2BAA2B,CACrC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,SAAS,cAAc,GAAG,cAAc,IAC7C;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,mLAKhC,WAmBF,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
|