@stenajs-webui/filter 15.0.0-alpha.3 → 15.0.0-alpha.4
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/dist/features/search-filter/section-factories/boolean-record/components/ChipMultiSelectSection.d.ts +1 -1
- package/dist/features/search-filter/section-factories/boolean-record/components/SimpleCheckboxListSection.d.ts +2 -2
- package/dist/index.es.js +4 -4
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
|
@@ -5,5 +5,5 @@ import { BooleanRecord, BooleanRecordOptions } from "../BooleanRecordTypes";
|
|
|
5
5
|
interface ChipMultiSelectSectionProps<TSectionKey extends string> extends SearchFilterSectionProps<TSectionKey>, ValueAndOnValueChangeProps<BooleanRecord> {
|
|
6
6
|
options?: BooleanRecordOptions;
|
|
7
7
|
}
|
|
8
|
-
export declare const ChipMultiSelectSection: <TSectionKey extends string>({ options,
|
|
8
|
+
export declare const ChipMultiSelectSection: <TSectionKey extends string>({ options, value, onValueChange, ...sectionProps }: ChipMultiSelectSectionProps<TSectionKey>) => React.ReactElement;
|
|
9
9
|
export {};
|
|
@@ -2,7 +2,7 @@ import * as React from "react";
|
|
|
2
2
|
import { SearchFilterSectionProps } from "../../../components/SearchFilterSection";
|
|
3
3
|
import { ValueAndOnValueChangeProps } from "@stenajs-webui/forms";
|
|
4
4
|
import { BooleanRecord, BooleanRecordOptions } from "../BooleanRecordTypes";
|
|
5
|
-
export interface
|
|
5
|
+
export interface SimpleCheckboxSectionProps<TSectionKey extends string> extends SearchFilterSectionProps<TSectionKey>, ValueAndOnValueChangeProps<BooleanRecord> {
|
|
6
6
|
options?: BooleanRecordOptions;
|
|
7
7
|
}
|
|
8
|
-
export declare const SimpleCheckboxListSection: <TSectionKey extends string>({ options,
|
|
8
|
+
export declare const SimpleCheckboxListSection: <TSectionKey extends string>({ options, value, onValueChange, ...sectionProps }: SimpleCheckboxSectionProps<TSectionKey>) => React.ReactElement;
|
package/dist/index.es.js
CHANGED
|
@@ -290,8 +290,8 @@ var createOnClickRemoveOnChipForBooleanRecord = function (formModel, fieldName)
|
|
|
290
290
|
};
|
|
291
291
|
|
|
292
292
|
var SimpleCheckboxListSection = function (_a) {
|
|
293
|
-
var options = _a.options,
|
|
294
|
-
return (React.createElement(SearchFilterSection, {
|
|
293
|
+
var options = _a.options, value = _a.value, onValueChange = _a.onValueChange, sectionProps = __rest(_a, ["options", "value", "onValueChange"]);
|
|
294
|
+
return (React.createElement(SearchFilterSection, __assign({ disableContentPadding: true }, sectionProps),
|
|
295
295
|
React.createElement(Column, { maxHeight: "400px", overflowY: "auto", flex: 1 }, options === null || options === void 0 ? void 0 : options.map(function (d) { return (React.createElement(CollapsibleClickableContent, { key: d.value, onClick: function () {
|
|
296
296
|
var _a;
|
|
297
297
|
if (value && onValueChange) {
|
|
@@ -303,7 +303,7 @@ var SimpleCheckboxListSection = function (_a) {
|
|
|
303
303
|
};
|
|
304
304
|
|
|
305
305
|
var ChipMultiSelectSection = function (_a) {
|
|
306
|
-
var options = _a.options,
|
|
306
|
+
var options = _a.options, value = _a.value, onValueChange = _a.onValueChange, sectionProps = __rest(_a, ["options", "value", "onValueChange"]);
|
|
307
307
|
var _b = useState(""), text = _b[0], setText = _b[1];
|
|
308
308
|
var listValue = useMemo(function () {
|
|
309
309
|
return value
|
|
@@ -323,7 +323,7 @@ var ChipMultiSelectSection = function (_a) {
|
|
|
323
323
|
var onValueChangeInternal = useCallback(function (value) {
|
|
324
324
|
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(createBooleanRecordFromValue(value));
|
|
325
325
|
}, [onValueChange]);
|
|
326
|
-
return (React.createElement(SearchFilterSection, {
|
|
326
|
+
return (React.createElement(SearchFilterSection, __assign({}, sectionProps),
|
|
327
327
|
React.createElement(ChipMultiSelect, { options: filteredOptions, value: listValue, onValueChange: onValueChangeInternal, inputValue: text, onInputChange: setText })));
|
|
328
328
|
};
|
|
329
329
|
var createBooleanRecordFromValue = function (value) {
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/features/search-filter/components/SearchFilterPanelHeader.tsx","../src/features/search-filter/context/SearchFilterStateContext.ts","../src/features/search-filter/context/SearchFilterDispatchContext.ts","../src/features/search-filter/context/SearchFilterActionsContext.ts","../src/features/search-filter/components/SearchFilterDrawer.tsx","../src/features/search-filter/components/SearchFilterButton.tsx","../src/features/search-filter/components/SearchFilterSection.tsx","../src/features/search-filter/context/SearchFilterModelContext.ts","../src/features/search-filter/components/context/SearchFilterContext.tsx","../src/features/search-filter/redux/SearchFilterRedux.ts","../src/features/search-filter/hooks/UseLocalSearchFilterState.ts","../src/features/search-filter/components/context/SearchFilterLocalStateContext.tsx","../src/features/search-filter/features/chips/ChipSpacer.tsx","../src/features/search-filter/features/chips/SearchFilterChips.tsx","../src/features/search-filter/features/chips/SectionChips.tsx","../src/features/search-filter/section-factories/boolean-record/BooleanRecordChips.ts","../src/features/search-filter/section-factories/boolean-record/components/SimpleCheckboxListSection.tsx","../src/features/search-filter/section-factories/boolean-record/components/ChipMultiSelectSection.tsx","../src/features/search-filter/section-factories/date-range/DateRangeChips.ts","../src/features/search-filter/section-factories/date-range/DateRangePropsFactory.ts","../src/features/search-filter/section-factories/date-range/components/DateRangeCalendarSection.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Heading, Indent, Row } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon } from \"@stenajs-webui/elements\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons/faTimes\";\nimport { faSlidersH } from \"@fortawesome/free-solid-svg-icons/faSlidersH\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\ninterface SearchFilterPanelHeaderProps {\n onRequestClose: () => void;\n}\n\nexport const SearchFilterPanelHeader: React.FC<SearchFilterPanelHeaderProps> = ({\n onRequestClose,\n}) => {\n return (\n <Row\n height={\"48px\"}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n indent={2}\n >\n <Row alignItems={\"center\"}>\n <Icon\n icon={faSlidersH}\n color={cssColor(\"--lhds-color-ui-500\")}\n size={12}\n />\n <Indent />\n <Heading variant={\"h4\"}>Filters</Heading>\n </Row>\n <FlatButton leftIcon={faTimes} onClick={onRequestClose} />\n </Row>\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterState } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterStateContext = createContext<\n SearchFilterState<unknown>\n>((null as unknown) as SearchFilterState<unknown>);\n\nexport const useSearchFilterState = <\n TFormModel\n>(): SearchFilterState<TFormModel> => {\n const c = useContext(SearchFilterStateContext);\n if (!c) {\n throw new Error(\n \"Missing search filter context, wrap components with SearchFilterContext component.\"\n );\n }\n return c as SearchFilterState<TFormModel>;\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterDispatch } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterDispatchContext = createContext<\n SearchFilterDispatch<unknown>\n>((null as unknown) as SearchFilterDispatch<unknown>);\n\nexport const useSearchFilterDispatch = () => {\n const c = useContext(SearchFilterDispatchContext);\n if (!c) {\n throw new Error(\"Missing search filter dispatch context.\");\n }\n return c;\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterActions } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterActionsContext = createContext<\n SearchFilterActions<unknown, any>\n>((null as unknown) as SearchFilterActions<unknown, any>);\n\nexport const useSearchFilterActions = <\n TFormModel,\n TSectionKey extends string\n>() => {\n const c = useContext(SearchFilterActionsContext);\n if (!c) {\n throw new Error(\"Missing search filter actions context.\");\n }\n return c as SearchFilterActions<TFormModel, TSectionKey>;\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Drawer, DrawerProps } from \"@stenajs-webui/modal\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { SearchFilterPanelHeader } from \"./SearchFilterPanelHeader\";\nimport { useSearchFilterState } from \"../context/SearchFilterStateContext\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\ninterface SearchFilterDrawerProps\n extends Omit<DrawerProps, \"isOpen\" | \"onRequestClose\"> {}\n\nexport const SearchFilterDrawer: React.FC<SearchFilterDrawerProps> = ({\n children,\n ...drawerProps\n}) => {\n const {\n settings: { open },\n } = useSearchFilterState();\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const closeDrawer = useCallback(() => {\n dispatch(actions.closeFilters());\n }, [actions, dispatch]);\n\n return (\n <Drawer\n background={cssColor(\"--lhds-color-ui-50\")}\n width={\"370px\"}\n isOpen={open}\n onRequestClose={closeDrawer}\n {...drawerProps}\n >\n <Column>\n <SearchFilterPanelHeader onRequestClose={closeDrawer} />\n {children}\n </Column>\n </Drawer>\n );\n};\n","import { faSlidersH } from \"@fortawesome/free-solid-svg-icons/faSlidersH\";\nimport { SecondaryButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\ninterface SearchFilterDrawerButtonProps {\n label?: string;\n}\n\nexport const SearchFilterButton: React.VFC<SearchFilterDrawerButtonProps> = ({\n label = \"Filters\",\n}) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const onClickButton = useCallback(() => {\n dispatch(actions.openFilters());\n }, [actions, dispatch]);\n\n return (\n <SecondaryButton\n label={label}\n leftIcon={faSlidersH}\n onClick={onClickButton}\n />\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, useCallback } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { Collapsible, CollapsibleContent } from \"@stenajs-webui/panels\";\nimport { lowerCase, upperFirst } from \"lodash\";\nimport { Banner, FlatButton, Spinner } from \"@stenajs-webui/elements\";\nimport { useSearchFilterState } from \"../context/SearchFilterStateContext\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\nexport interface SearchFilterSectionProps<TSectionKey extends string> {\n sectionId: TSectionKey;\n contentLeft?: React.ReactNode;\n contentRight?: React.ReactNode;\n disableContentPadding?: boolean;\n loading?: boolean;\n error?: string;\n onRetry?: () => void;\n label?: string;\n}\n\nexport const SearchFilterSection = function SearchFilterSection<\n TSectionKey extends string\n>({\n sectionId,\n label,\n contentLeft,\n contentRight,\n loading,\n error,\n onRetry,\n disableContentPadding,\n children,\n}: PropsWithChildren<SearchFilterSectionProps<TSectionKey>>) {\n const state = useSearchFilterState();\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const expanded = state.expandedSections.values[sectionId] ?? false;\n\n const onClickLabel = useCallback(() => {\n dispatch(actions.setSectionExpanded(sectionId, !expanded));\n }, [actions, dispatch, expanded, sectionId]);\n\n const activeLabel = label ?? formatColumnIdToHeaderCellLabel(sectionId);\n\n return (\n <Collapsible\n label={activeLabel}\n collapsed={!expanded}\n onClick={onClickLabel}\n contentLeft={contentLeft}\n contentRight={contentRight}\n >\n {loading ? (\n <CollapsibleContent>\n <Row spacing justifyContent={\"center\"} flex={1}>\n <Spinner size={\"small\"} />\n </Row>\n </CollapsibleContent>\n ) : error ? (\n <Banner\n variant={\"error\"}\n text={error}\n contentRight={\n onRetry ? <FlatButton label={\"Retry\"} onClick={onRetry} /> : null\n }\n />\n ) : disableContentPadding ? (\n children\n ) : (\n <CollapsibleContent>{children}</CollapsibleContent>\n )}\n </Collapsible>\n );\n};\n\nexport const formatColumnIdToHeaderCellLabel = (columnId: string): string =>\n upperFirst(lowerCase(columnId));\n","import { createContext, useContext } from \"react\";\n\nexport const SearchFilterModelContext = createContext<unknown>(null as unknown);\n\nexport const useSearchFilterModel = <TFormModel>(): TFormModel => {\n const c = useContext(SearchFilterModelContext);\n if (!c) {\n throw new Error(\n \"Missing search filter context, wrap components with SearchFilterContext component.\"\n );\n }\n return c as TFormModel;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport {\n SearchFilterActions,\n SearchFilterDispatch,\n SearchFilterState,\n} from \"../../redux/SearchFilterRedux\";\nimport { SearchFilterDispatchContext } from \"../../context/SearchFilterDispatchContext\";\nimport { SearchFilterActionsContext } from \"../../context/SearchFilterActionsContext\";\nimport { SearchFilterStateContext } from \"../../context/SearchFilterStateContext\";\nimport { SearchFilterModelContext } from \"../../context/SearchFilterModelContext\";\n\ninterface SearchFilterScopeProps<TFormModel, TSectionKey extends string> {\n state: SearchFilterState<TFormModel>;\n dispatch: SearchFilterDispatch<TFormModel>;\n actions: SearchFilterActions<TFormModel, TSectionKey>;\n}\n\nexport const SearchFilterContext = function SearchFilterScope<\n TFormModel,\n TSectionKey extends string\n>({\n state,\n dispatch,\n actions,\n children,\n}: PropsWithChildren<SearchFilterScopeProps<TFormModel, TSectionKey>>) {\n return (\n <SearchFilterDispatchContext.Provider\n value={dispatch as SearchFilterDispatch<unknown>}\n >\n <SearchFilterActionsContext.Provider value={actions}>\n <SearchFilterStateContext.Provider value={state}>\n <SearchFilterModelContext.Provider value={state.formModel}>\n {children}\n </SearchFilterModelContext.Provider>\n </SearchFilterStateContext.Provider>\n </SearchFilterActionsContext.Provider>\n </SearchFilterDispatchContext.Provider>\n );\n};\n","import { combineReducers } from \"redux\";\nimport {\n createEntityActions,\n createEntityReducer,\n createValueByIdActions,\n createValueByIdReducer,\n EntityAction,\n EntityState,\n reducerIdGate,\n reducerIdGateAction,\n ReducerIdGateAction,\n ValueByIdAction,\n ValueByIdState,\n} from \"@stenajs-webui/redux\";\nimport { Dispatch } from \"react\";\n\nexport interface SearchFilterSettings {\n open: boolean;\n}\n\nexport type SearchFilterDispatch<TFormModel> = Dispatch<\n SearchFilterAction<TFormModel>\n>;\n\nexport interface SearchFilterState<TFormModel> {\n expandedSections: ValueByIdState<boolean>;\n formModel: EntityState<TFormModel>;\n settings: EntityState<SearchFilterSettings>;\n}\n\nexport type SearchFilterAction<TFormModel> =\n | ReducerIdGateAction<ValueByIdAction<boolean>>\n | ReducerIdGateAction<EntityAction<TFormModel>>\n | ReducerIdGateAction<EntityAction<SearchFilterSettings>>;\n\nexport const createSearchFilterInitialState = <TFormModel>(\n initialFormModel: TFormModel\n): SearchFilterState<TFormModel> => ({\n settings: {\n open: false,\n },\n formModel: initialFormModel,\n expandedSections: { values: {} },\n});\n\nexport const createSearchFilterReducer = <TFormModel>(\n reducerId: string,\n initialState: SearchFilterState<TFormModel>\n) =>\n combineReducers({\n expandedSections: reducerIdGate(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdReducer<boolean>(initialState.expandedSections)\n ),\n formModel: reducerIdGate(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityReducer<TFormModel>(initialState.formModel)\n ),\n settings: reducerIdGate(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityReducer<SearchFilterSettings>(initialState.settings)\n ),\n });\n\nexport interface SearchFilterActions<TFormModel, TSectionKey extends string> {\n openFilters: () => SearchFilterAction<TFormModel>;\n closeFilters: () => SearchFilterAction<TFormModel>;\n setFormModelFields: (\n fields: Partial<TFormModel>\n ) => SearchFilterAction<TFormModel>;\n clearFormModel: () => SearchFilterAction<TFormModel>;\n expandSection: (section: TSectionKey) => SearchFilterAction<TFormModel>;\n collapseSection: (section: TSectionKey) => SearchFilterAction<TFormModel>;\n setSectionExpanded: (\n section: TSectionKey,\n expanded: boolean\n ) => SearchFilterAction<TFormModel>;\n clearExpandedSections: () => SearchFilterAction<TFormModel>;\n}\n\nexport const createSearchFilterActions = <\n TFormModel,\n TSectionKey extends string\n>(\n reducerId: string,\n initialFormModel: TFormModel\n): SearchFilterActions<TFormModel, TSectionKey> => ({\n openFilters: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityActions<SearchFilterSettings>().setEntityFields({\n open: true,\n })\n ),\n closeFilters: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityActions<SearchFilterSettings>().setEntityFields({\n open: false,\n })\n ),\n setFormModelFields: (fields: Partial<TFormModel>) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityActions<TFormModel>().setEntityFields(fields)\n ),\n clearFormModel: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityActions<TFormModel>().setEntity(initialFormModel)\n ),\n expandSection: (section: TSectionKey) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, true)\n ),\n collapseSection: (section: TSectionKey) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, false)\n ),\n setSectionExpanded: (section: TSectionKey, expanded: boolean) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, expanded)\n ),\n clearExpandedSections: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().clearAllValues()\n ),\n});\n\nexport const getReducerIdFor = (\n reducerId: string,\n reducerIdSuffix: keyof SearchFilterState<unknown>\n): string => `${reducerId}.${reducerIdSuffix}`;\n","import {\n createSearchFilterActions,\n createSearchFilterReducer,\n SearchFilterState,\n} from \"../redux/SearchFilterRedux\";\nimport { useReducer, useState } from \"react\";\n\nexport const useLocalSearchFilterState = <\n TFormModel,\n TSectionKey extends string\n>(\n initialState: SearchFilterState<TFormModel>\n) => {\n const [reducer] = useState(() =>\n createSearchFilterReducer<TFormModel>(\"local\", initialState)\n );\n\n const [actions] = useState(() =>\n createSearchFilterActions<TFormModel, TSectionKey>(\n \"local\",\n initialState.formModel\n )\n );\n\n const [state, dispatch] = useReducer(reducer, initialState);\n\n return {\n actions,\n state,\n dispatch,\n };\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { useLocalSearchFilterState } from \"../../hooks/UseLocalSearchFilterState\";\nimport { SearchFilterContext } from \"./SearchFilterContext\";\nimport { createSearchFilterInitialState } from \"../../redux/SearchFilterRedux\";\n\ninterface SearchFilterLocalScopeProps<TFormModel> {\n initialFormModel: TFormModel;\n}\n\nexport const SearchFilterLocalStateContext = function SearchFilterLocalScope<\n TFormModel\n>({\n initialFormModel,\n children,\n}: PropsWithChildren<SearchFilterLocalScopeProps<TFormModel>>) {\n const { state, actions, dispatch } = useLocalSearchFilterState(\n createSearchFilterInitialState(initialFormModel)\n );\n\n return (\n <SearchFilterContext state={state} actions={actions} dispatch={dispatch}>\n {children}\n </SearchFilterContext>\n );\n};\n","import styled from \"@emotion/styled\";\n\nexport const ChipSpacer = styled.div`\n padding: calc(var(--swui-metrics-spacing) / 2)\n calc(var(--swui-metrics-indent) / 2);\n`;\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { ChipSpacer } from \"./ChipSpacer\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\nimport { useSearchFilterDispatch } from \"../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../context/SearchFilterActionsContext\";\n\ninterface SearchFilterChipsProps {\n disableClearAllButton?: boolean;\n}\n\nexport const SearchFilterChips: React.FC<SearchFilterChipsProps> = ({\n children,\n disableClearAllButton = false,\n}) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const onClickClearAll = useCallback(\n () => dispatch(actions.clearFormModel()),\n [actions, dispatch]\n );\n\n return (\n <Row flexWrap={\"wrap\"}>\n {children}\n {!disableClearAllButton && (\n <ChipSpacer>\n <FlatButton\n size={\"small\"}\n label={\"Clear all\"}\n onClick={onClickClearAll}\n />\n </ChipSpacer>\n )}\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { Chip } from \"@stenajs-webui/elements\";\nimport { ChipSpacer } from \"./ChipSpacer\";\nimport { useSearchFilterDispatch } from \"../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../context/SearchFilterActionsContext\";\n\nexport interface SectionChipsProps<TFormModel, TSectionKey extends string> {\n sectionId: TSectionKey;\n chips?: Array<SearchFilterSectionChipModel>;\n emptyChipLabel?: string;\n onClickRemoveOnChip?: SearchFilterSectionOnClickRemoveOnChip<TFormModel>;\n disableChipClearButton?: boolean;\n}\n\nexport const SectionChips = function SectionChips<\n TFormModel,\n TSectionKey extends string\n>({\n sectionId,\n chips,\n emptyChipLabel,\n onClickRemoveOnChip,\n disableChipClearButton,\n}: SectionChipsProps<TFormModel, TSectionKey>) {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const setFormModelFields = useCallback(\n (fields: Partial<TFormModel>) =>\n dispatch(actions.setFormModelFields(fields)),\n [dispatch, actions]\n );\n\n const onClickRemove = useCallback(\n (value: string) => {\n onClickRemoveOnChip?.({ value, setFormModelFields });\n },\n [onClickRemoveOnChip, setFormModelFields]\n );\n\n const onClickLabel = useCallback(() => {\n dispatch(actions.clearExpandedSections());\n dispatch(actions.expandSection(sectionId));\n dispatch(actions.openFilters());\n }, [actions, dispatch, sectionId]);\n\n if (!chips?.length) {\n if (!emptyChipLabel) {\n return null;\n }\n return (\n <ChipSpacer>\n <Chip\n label={emptyChipLabel}\n variant={\"secondary\"}\n onClick={onClickLabel}\n />\n </ChipSpacer>\n );\n }\n\n return (\n <>\n {chips.map(({ label, value }) => (\n <ChipSpacer key={value}>\n <Chip\n label={label ?? sectionId}\n onClick={onClickLabel}\n onClickRemove={\n disableChipClearButton ? undefined : () => onClickRemove(value)\n }\n />\n </ChipSpacer>\n ))}\n </>\n );\n};\n","import { BooleanRecord, BooleanRecordOptions } from \"./BooleanRecordTypes\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { PickByValue, truthyKeysAsList } from \"@stenajs-webui/core\";\nimport { SectionChipsProps } from \"../../features/chips/SectionChips\";\n\nexport const createChipsPropsForBooleanRecord = <\n TFormModel,\n TSectionKey extends string,\n TField extends keyof PickByValue<TFormModel, BooleanRecord>\n>(\n formModel: TFormModel,\n fieldName: TField,\n options?: BooleanRecordOptions\n): Pick<\n SectionChipsProps<TFormModel, TSectionKey>,\n \"chips\" | \"onClickRemoveOnChip\"\n> => ({\n chips: createChipsForBooleanRecord(formModel[fieldName], options),\n onClickRemoveOnChip: createOnClickRemoveOnChipForBooleanRecord(\n formModel,\n fieldName\n ),\n});\n\nexport const createChipsForBooleanRecord = (\n booleanRecord: BooleanRecord,\n options?: BooleanRecordOptions\n): Array<SearchFilterSectionChipModel> =>\n truthyKeysAsList(booleanRecord).map((key) => {\n const option = options?.find((o) => o.value === key);\n return { value: key, label: option?.label ?? key };\n });\n\nexport const createOnClickRemoveOnChipForBooleanRecord = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, BooleanRecord>\n>(\n formModel: TFormModel,\n fieldName: TField\n): SearchFilterSectionOnClickRemoveOnChip<TFormModel> => {\n return ({ setFormModelFields, value }) => {\n const newRecord: BooleanRecord = { ...formModel[fieldName] };\n newRecord[value] = false;\n setFormModelFields(({\n [fieldName]: newRecord,\n } as unknown) as Partial<TFormModel>);\n };\n};\n","import * as React from \"react\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport { Column, Text } from \"@stenajs-webui/core\";\nimport { CollapsibleClickableContent } from \"@stenajs-webui/panels\";\nimport { Checkbox, ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport { BooleanRecord, BooleanRecordOptions } from \"../BooleanRecordTypes\";\n\nexport interface CheckboxSectionProps<TSectionKey extends string>\n extends SearchFilterSectionProps<TSectionKey>,\n ValueAndOnValueChangeProps<BooleanRecord> {\n options?: BooleanRecordOptions;\n}\n\nexport const SimpleCheckboxListSection = <TSectionKey extends string>({\n options,\n error,\n loading,\n sectionId,\n value,\n onValueChange,\n}: CheckboxSectionProps<TSectionKey>): React.ReactElement => (\n <SearchFilterSection\n sectionId={sectionId}\n loading={loading}\n error={error}\n disableContentPadding\n >\n <Column maxHeight={\"400px\"} overflowY={\"auto\"} flex={1}>\n {options?.map((d) => (\n <CollapsibleClickableContent\n key={d.value}\n onClick={() => {\n if (value && onValueChange) {\n const sel = !value[d.value];\n onValueChange({\n ...value,\n [d.value]: sel,\n });\n }\n }}\n contentLeft={<Checkbox tabIndex={-1} value={value?.[d.value]} />}\n >\n <Text>{d.label}</Text>\n </CollapsibleClickableContent>\n ))}\n </Column>\n </SearchFilterSection>\n);\n","import * as React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport { BooleanRecord, BooleanRecordOptions } from \"../BooleanRecordTypes\";\nimport { ChipMultiSelect, ChipMultiSelectValue } from \"@stenajs-webui/select\";\nimport { truthyKeysAsList } from \"@stenajs-webui/core\";\n\ninterface ChipMultiSelectSectionProps<TSectionKey extends string>\n extends SearchFilterSectionProps<TSectionKey>,\n ValueAndOnValueChangeProps<BooleanRecord> {\n options?: BooleanRecordOptions;\n}\n\nexport const ChipMultiSelectSection = <TSectionKey extends string>({\n options,\n error,\n loading,\n sectionId,\n value,\n onValueChange,\n}: ChipMultiSelectSectionProps<TSectionKey>): React.ReactElement => {\n const [text, setText] = useState<string>(\"\");\n\n const listValue = useMemo<Array<ChipMultiSelectValue>>(\n () =>\n value\n ? truthyKeysAsList(value).map<ChipMultiSelectValue>((key) => {\n const option = options?.find((o) => o.value === key);\n return { value: key, label: option?.label ?? key };\n })\n : [],\n [options, value]\n );\n\n const filteredOptions = useMemo(() => {\n return options?.filter(\n (p) =>\n p.value.toLocaleLowerCase().indexOf(text.toLocaleLowerCase()) > -1 ||\n p.label.toLocaleLowerCase().indexOf(text.toLocaleLowerCase()) > -1\n );\n }, [options, text]);\n\n const onValueChangeInternal = useCallback(\n (value: Array<ChipMultiSelectValue>) => {\n onValueChange?.(createBooleanRecordFromValue(value));\n },\n [onValueChange]\n );\n\n return (\n <SearchFilterSection sectionId={sectionId} loading={loading} error={error}>\n <ChipMultiSelect\n options={filteredOptions}\n value={listValue}\n onValueChange={onValueChangeInternal}\n inputValue={text}\n onInputChange={setText}\n />\n </SearchFilterSection>\n );\n};\n\nconst createBooleanRecordFromValue = (\n value: Array<ChipMultiSelectValue>\n): BooleanRecord => {\n return value.reduce<BooleanRecord>((sum, item) => {\n sum[item.value] = true;\n return sum;\n }, {});\n};\n","import { DateRange } from \"./DateRangeTypes\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { PickByValue } from \"@stenajs-webui/core\";\nimport { SectionChipsProps } from \"../../features/chips/SectionChips\";\n\nexport const createChipsPropsForDateRange = <\n TFormModel,\n TSectionKey extends string,\n TField extends keyof PickByValue<TFormModel, string | undefined>\n>(\n formModel: TFormModel,\n startDateFieldName: TField,\n endDateFieldName: TField\n): Pick<\n SectionChipsProps<TFormModel, TSectionKey>,\n \"chips\" | \"onClickRemoveOnChip\"\n> => ({\n chips: createChipsForDateRange(\n formModel[startDateFieldName],\n formModel[endDateFieldName]\n ),\n onClickRemoveOnChip: createOnClickRemoveOnChipForDateRange(\n startDateFieldName,\n endDateFieldName\n ),\n});\n\nexport const createChipsForDateRange = (\n startDate: string | undefined,\n endDate: string | undefined\n): Array<SearchFilterSectionChipModel> => {\n if (!startDate && !endDate) {\n return [];\n }\n return [\n { value: \"dateRange\", label: `${startDate ?? \"\"} - ${endDate ?? \"\"}` },\n ];\n};\n\nexport const createOnClickRemoveOnChipForDateRange = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, DateRange>\n>(\n startDateFieldName: TField,\n endDateFieldName: TField\n): SearchFilterSectionOnClickRemoveOnChip<TFormModel> => {\n return ({ setFormModelFields }) => {\n setFormModelFields(({\n [startDateFieldName]: undefined,\n [endDateFieldName]: undefined,\n } as unknown) as Partial<TFormModel>);\n };\n};\n","import { PickByValue } from \"@stenajs-webui/core\";\nimport { DateRangeCalendarSectionProps } from \"./components/DateRangeCalendarSection\";\n\nexport const createDateRangeSectionProps = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, string | undefined>,\n TSectionKey extends string\n>(\n formModel: TFormModel,\n startDateFieldName: TField,\n endDateFieldName: TField\n): Pick<\n DateRangeCalendarSectionProps<TFormModel, TSectionKey>,\n \"value\" | \"onValueChange\"\n> => ({\n value: {\n startDate: formModel[startDateFieldName],\n endDate: formModel[endDateFieldName],\n },\n onValueChange: (value, { dispatch, actions }) => {\n const fields: Partial<TFormModel> = {\n [startDateFieldName]: value.startDate,\n [endDateFieldName]: value.endDate,\n } as any;\n dispatch(actions.setFormModelFields(fields));\n },\n});\n","import {\n DateRangeCalendar,\n DateRangeCalendarProps,\n DateRangeFocusedInput,\n} from \"@stenajs-webui/calendar\";\nimport * as React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { format, parse } from \"date-fns\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport {\n SearchFilterActions,\n SearchFilterDispatch,\n} from \"../../../redux/SearchFilterRedux\";\nimport { useSearchFilterDispatch } from \"../../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../../context/SearchFilterActionsContext\";\n\ninterface DateRangeCalendarSectionOnChangeValue {\n startDate?: string;\n endDate?: string;\n}\n\nexport interface DateRangeCalendarSectionProps<\n TFormModel,\n TSectionKey extends string\n> extends SearchFilterSectionProps<TSectionKey>,\n Omit<\n DateRangeCalendarProps<{}>,\n | \"focusedInput\"\n | \"setFocusedInput\"\n | \"startDate\"\n | \"endDate\"\n | \"onChange\"\n | \"setStartDate\"\n | \"setEndDate\"\n > {\n value: DateRangeCalendarSectionOnChangeValue;\n onValueChange: (\n value: DateRangeCalendarSectionOnChangeValue,\n options: SetDateOptions<TFormModel, TSectionKey>\n ) => void;\n}\n\nexport interface SetDateOptions<TFormModel, TSectionKey extends string> {\n dispatch: SearchFilterDispatch<TFormModel>;\n actions: SearchFilterActions<TFormModel, TSectionKey>;\n}\n\nexport const DateRangeCalendarSection = <\n TFormModel,\n TSectionKey extends string\n>({\n value,\n onValueChange,\n sectionId,\n ...dateRangeCalendarProps\n}: DateRangeCalendarSectionProps<TFormModel, TSectionKey>) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions<TFormModel, TSectionKey>();\n\n const options = useMemo<SetDateOptions<TFormModel, TSectionKey>>(\n () => ({ dispatch, actions }),\n [actions, dispatch]\n );\n const [focusedInput, setFocusedInput] = useState<DateRangeFocusedInput>(\n \"startDate\"\n );\n\n const { startDate, endDate } = value ?? {};\n\n const startDateObj = useMemo(\n () => (startDate ? parse(startDate, \"yyyy-MM-dd\", new Date()) : undefined),\n [startDate]\n );\n\n const endDateObj = useMemo(\n () => (endDate ? parse(endDate, \"yyyy-MM-dd\", new Date()) : undefined),\n [endDate]\n );\n\n const setStartDate = useCallback(\n (startDate: Date) => {\n onValueChange(\n { startDate: format(startDate, \"yyyy-MM-dd\"), endDate },\n options\n );\n },\n [endDate, onValueChange, options]\n );\n\n const setEndDate = useCallback(\n (endDate: Date) => {\n onValueChange(\n { startDate, endDate: format(endDate, \"yyyy-MM-dd\") },\n options\n );\n },\n [onValueChange, options, startDate]\n );\n\n return (\n <SearchFilterSection sectionId={sectionId}>\n <Box flex={1} alignItems={\"center\"}>\n <Box background={\"white\"} indent>\n <DateRangeCalendar\n setFocusedInput={setFocusedInput}\n focusedInput={focusedInput}\n startDate={startDateObj}\n endDate={endDateObj}\n setStartDate={setStartDate}\n setEndDate={setEndDate}\n {...dateRangeCalendarProps}\n />\n </Box>\n </Box>\n </SearchFilterSection>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/features/search-filter/components/SearchFilterPanelHeader.tsx","../src/features/search-filter/context/SearchFilterStateContext.ts","../src/features/search-filter/context/SearchFilterDispatchContext.ts","../src/features/search-filter/context/SearchFilterActionsContext.ts","../src/features/search-filter/components/SearchFilterDrawer.tsx","../src/features/search-filter/components/SearchFilterButton.tsx","../src/features/search-filter/components/SearchFilterSection.tsx","../src/features/search-filter/context/SearchFilterModelContext.ts","../src/features/search-filter/components/context/SearchFilterContext.tsx","../src/features/search-filter/redux/SearchFilterRedux.ts","../src/features/search-filter/hooks/UseLocalSearchFilterState.ts","../src/features/search-filter/components/context/SearchFilterLocalStateContext.tsx","../src/features/search-filter/features/chips/ChipSpacer.tsx","../src/features/search-filter/features/chips/SearchFilterChips.tsx","../src/features/search-filter/features/chips/SectionChips.tsx","../src/features/search-filter/section-factories/boolean-record/BooleanRecordChips.ts","../src/features/search-filter/section-factories/boolean-record/components/SimpleCheckboxListSection.tsx","../src/features/search-filter/section-factories/boolean-record/components/ChipMultiSelectSection.tsx","../src/features/search-filter/section-factories/date-range/DateRangeChips.ts","../src/features/search-filter/section-factories/date-range/DateRangePropsFactory.ts","../src/features/search-filter/section-factories/date-range/components/DateRangeCalendarSection.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Heading, Indent, Row } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon } from \"@stenajs-webui/elements\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons/faTimes\";\nimport { faSlidersH } from \"@fortawesome/free-solid-svg-icons/faSlidersH\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\ninterface SearchFilterPanelHeaderProps {\n onRequestClose: () => void;\n}\n\nexport const SearchFilterPanelHeader: React.FC<SearchFilterPanelHeaderProps> = ({\n onRequestClose,\n}) => {\n return (\n <Row\n height={\"48px\"}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n indent={2}\n >\n <Row alignItems={\"center\"}>\n <Icon\n icon={faSlidersH}\n color={cssColor(\"--lhds-color-ui-500\")}\n size={12}\n />\n <Indent />\n <Heading variant={\"h4\"}>Filters</Heading>\n </Row>\n <FlatButton leftIcon={faTimes} onClick={onRequestClose} />\n </Row>\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterState } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterStateContext = createContext<\n SearchFilterState<unknown>\n>((null as unknown) as SearchFilterState<unknown>);\n\nexport const useSearchFilterState = <\n TFormModel\n>(): SearchFilterState<TFormModel> => {\n const c = useContext(SearchFilterStateContext);\n if (!c) {\n throw new Error(\n \"Missing search filter context, wrap components with SearchFilterContext component.\"\n );\n }\n return c as SearchFilterState<TFormModel>;\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterDispatch } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterDispatchContext = createContext<\n SearchFilterDispatch<unknown>\n>((null as unknown) as SearchFilterDispatch<unknown>);\n\nexport const useSearchFilterDispatch = () => {\n const c = useContext(SearchFilterDispatchContext);\n if (!c) {\n throw new Error(\"Missing search filter dispatch context.\");\n }\n return c;\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterActions } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterActionsContext = createContext<\n SearchFilterActions<unknown, any>\n>((null as unknown) as SearchFilterActions<unknown, any>);\n\nexport const useSearchFilterActions = <\n TFormModel,\n TSectionKey extends string\n>() => {\n const c = useContext(SearchFilterActionsContext);\n if (!c) {\n throw new Error(\"Missing search filter actions context.\");\n }\n return c as SearchFilterActions<TFormModel, TSectionKey>;\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Drawer, DrawerProps } from \"@stenajs-webui/modal\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { SearchFilterPanelHeader } from \"./SearchFilterPanelHeader\";\nimport { useSearchFilterState } from \"../context/SearchFilterStateContext\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\ninterface SearchFilterDrawerProps\n extends Omit<DrawerProps, \"isOpen\" | \"onRequestClose\"> {}\n\nexport const SearchFilterDrawer: React.FC<SearchFilterDrawerProps> = ({\n children,\n ...drawerProps\n}) => {\n const {\n settings: { open },\n } = useSearchFilterState();\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const closeDrawer = useCallback(() => {\n dispatch(actions.closeFilters());\n }, [actions, dispatch]);\n\n return (\n <Drawer\n background={cssColor(\"--lhds-color-ui-50\")}\n width={\"370px\"}\n isOpen={open}\n onRequestClose={closeDrawer}\n {...drawerProps}\n >\n <Column>\n <SearchFilterPanelHeader onRequestClose={closeDrawer} />\n {children}\n </Column>\n </Drawer>\n );\n};\n","import { faSlidersH } from \"@fortawesome/free-solid-svg-icons/faSlidersH\";\nimport { SecondaryButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\ninterface SearchFilterDrawerButtonProps {\n label?: string;\n}\n\nexport const SearchFilterButton: React.VFC<SearchFilterDrawerButtonProps> = ({\n label = \"Filters\",\n}) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const onClickButton = useCallback(() => {\n dispatch(actions.openFilters());\n }, [actions, dispatch]);\n\n return (\n <SecondaryButton\n label={label}\n leftIcon={faSlidersH}\n onClick={onClickButton}\n />\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, useCallback } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { Collapsible, CollapsibleContent } from \"@stenajs-webui/panels\";\nimport { lowerCase, upperFirst } from \"lodash\";\nimport { Banner, FlatButton, Spinner } from \"@stenajs-webui/elements\";\nimport { useSearchFilterState } from \"../context/SearchFilterStateContext\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\nexport interface SearchFilterSectionProps<TSectionKey extends string> {\n sectionId: TSectionKey;\n contentLeft?: React.ReactNode;\n contentRight?: React.ReactNode;\n disableContentPadding?: boolean;\n loading?: boolean;\n error?: string;\n onRetry?: () => void;\n label?: string;\n}\n\nexport const SearchFilterSection = function SearchFilterSection<\n TSectionKey extends string\n>({\n sectionId,\n label,\n contentLeft,\n contentRight,\n loading,\n error,\n onRetry,\n disableContentPadding,\n children,\n}: PropsWithChildren<SearchFilterSectionProps<TSectionKey>>) {\n const state = useSearchFilterState();\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const expanded = state.expandedSections.values[sectionId] ?? false;\n\n const onClickLabel = useCallback(() => {\n dispatch(actions.setSectionExpanded(sectionId, !expanded));\n }, [actions, dispatch, expanded, sectionId]);\n\n const activeLabel = label ?? formatColumnIdToHeaderCellLabel(sectionId);\n\n return (\n <Collapsible\n label={activeLabel}\n collapsed={!expanded}\n onClick={onClickLabel}\n contentLeft={contentLeft}\n contentRight={contentRight}\n >\n {loading ? (\n <CollapsibleContent>\n <Row spacing justifyContent={\"center\"} flex={1}>\n <Spinner size={\"small\"} />\n </Row>\n </CollapsibleContent>\n ) : error ? (\n <Banner\n variant={\"error\"}\n text={error}\n contentRight={\n onRetry ? <FlatButton label={\"Retry\"} onClick={onRetry} /> : null\n }\n />\n ) : disableContentPadding ? (\n children\n ) : (\n <CollapsibleContent>{children}</CollapsibleContent>\n )}\n </Collapsible>\n );\n};\n\nexport const formatColumnIdToHeaderCellLabel = (columnId: string): string =>\n upperFirst(lowerCase(columnId));\n","import { createContext, useContext } from \"react\";\n\nexport const SearchFilterModelContext = createContext<unknown>(null as unknown);\n\nexport const useSearchFilterModel = <TFormModel>(): TFormModel => {\n const c = useContext(SearchFilterModelContext);\n if (!c) {\n throw new Error(\n \"Missing search filter context, wrap components with SearchFilterContext component.\"\n );\n }\n return c as TFormModel;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport {\n SearchFilterActions,\n SearchFilterDispatch,\n SearchFilterState,\n} from \"../../redux/SearchFilterRedux\";\nimport { SearchFilterDispatchContext } from \"../../context/SearchFilterDispatchContext\";\nimport { SearchFilterActionsContext } from \"../../context/SearchFilterActionsContext\";\nimport { SearchFilterStateContext } from \"../../context/SearchFilterStateContext\";\nimport { SearchFilterModelContext } from \"../../context/SearchFilterModelContext\";\n\ninterface SearchFilterScopeProps<TFormModel, TSectionKey extends string> {\n state: SearchFilterState<TFormModel>;\n dispatch: SearchFilterDispatch<TFormModel>;\n actions: SearchFilterActions<TFormModel, TSectionKey>;\n}\n\nexport const SearchFilterContext = function SearchFilterScope<\n TFormModel,\n TSectionKey extends string\n>({\n state,\n dispatch,\n actions,\n children,\n}: PropsWithChildren<SearchFilterScopeProps<TFormModel, TSectionKey>>) {\n return (\n <SearchFilterDispatchContext.Provider\n value={dispatch as SearchFilterDispatch<unknown>}\n >\n <SearchFilterActionsContext.Provider value={actions}>\n <SearchFilterStateContext.Provider value={state}>\n <SearchFilterModelContext.Provider value={state.formModel}>\n {children}\n </SearchFilterModelContext.Provider>\n </SearchFilterStateContext.Provider>\n </SearchFilterActionsContext.Provider>\n </SearchFilterDispatchContext.Provider>\n );\n};\n","import { combineReducers } from \"redux\";\nimport {\n createEntityActions,\n createEntityReducer,\n createValueByIdActions,\n createValueByIdReducer,\n EntityAction,\n EntityState,\n reducerIdGate,\n reducerIdGateAction,\n ReducerIdGateAction,\n ValueByIdAction,\n ValueByIdState,\n} from \"@stenajs-webui/redux\";\nimport { Dispatch } from \"react\";\n\nexport interface SearchFilterSettings {\n open: boolean;\n}\n\nexport type SearchFilterDispatch<TFormModel> = Dispatch<\n SearchFilterAction<TFormModel>\n>;\n\nexport interface SearchFilterState<TFormModel> {\n expandedSections: ValueByIdState<boolean>;\n formModel: EntityState<TFormModel>;\n settings: EntityState<SearchFilterSettings>;\n}\n\nexport type SearchFilterAction<TFormModel> =\n | ReducerIdGateAction<ValueByIdAction<boolean>>\n | ReducerIdGateAction<EntityAction<TFormModel>>\n | ReducerIdGateAction<EntityAction<SearchFilterSettings>>;\n\nexport const createSearchFilterInitialState = <TFormModel>(\n initialFormModel: TFormModel\n): SearchFilterState<TFormModel> => ({\n settings: {\n open: false,\n },\n formModel: initialFormModel,\n expandedSections: { values: {} },\n});\n\nexport const createSearchFilterReducer = <TFormModel>(\n reducerId: string,\n initialState: SearchFilterState<TFormModel>\n) =>\n combineReducers({\n expandedSections: reducerIdGate(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdReducer<boolean>(initialState.expandedSections)\n ),\n formModel: reducerIdGate(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityReducer<TFormModel>(initialState.formModel)\n ),\n settings: reducerIdGate(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityReducer<SearchFilterSettings>(initialState.settings)\n ),\n });\n\nexport interface SearchFilterActions<TFormModel, TSectionKey extends string> {\n openFilters: () => SearchFilterAction<TFormModel>;\n closeFilters: () => SearchFilterAction<TFormModel>;\n setFormModelFields: (\n fields: Partial<TFormModel>\n ) => SearchFilterAction<TFormModel>;\n clearFormModel: () => SearchFilterAction<TFormModel>;\n expandSection: (section: TSectionKey) => SearchFilterAction<TFormModel>;\n collapseSection: (section: TSectionKey) => SearchFilterAction<TFormModel>;\n setSectionExpanded: (\n section: TSectionKey,\n expanded: boolean\n ) => SearchFilterAction<TFormModel>;\n clearExpandedSections: () => SearchFilterAction<TFormModel>;\n}\n\nexport const createSearchFilterActions = <\n TFormModel,\n TSectionKey extends string\n>(\n reducerId: string,\n initialFormModel: TFormModel\n): SearchFilterActions<TFormModel, TSectionKey> => ({\n openFilters: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityActions<SearchFilterSettings>().setEntityFields({\n open: true,\n })\n ),\n closeFilters: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityActions<SearchFilterSettings>().setEntityFields({\n open: false,\n })\n ),\n setFormModelFields: (fields: Partial<TFormModel>) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityActions<TFormModel>().setEntityFields(fields)\n ),\n clearFormModel: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityActions<TFormModel>().setEntity(initialFormModel)\n ),\n expandSection: (section: TSectionKey) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, true)\n ),\n collapseSection: (section: TSectionKey) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, false)\n ),\n setSectionExpanded: (section: TSectionKey, expanded: boolean) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, expanded)\n ),\n clearExpandedSections: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().clearAllValues()\n ),\n});\n\nexport const getReducerIdFor = (\n reducerId: string,\n reducerIdSuffix: keyof SearchFilterState<unknown>\n): string => `${reducerId}.${reducerIdSuffix}`;\n","import {\n createSearchFilterActions,\n createSearchFilterReducer,\n SearchFilterState,\n} from \"../redux/SearchFilterRedux\";\nimport { useReducer, useState } from \"react\";\n\nexport const useLocalSearchFilterState = <\n TFormModel,\n TSectionKey extends string\n>(\n initialState: SearchFilterState<TFormModel>\n) => {\n const [reducer] = useState(() =>\n createSearchFilterReducer<TFormModel>(\"local\", initialState)\n );\n\n const [actions] = useState(() =>\n createSearchFilterActions<TFormModel, TSectionKey>(\n \"local\",\n initialState.formModel\n )\n );\n\n const [state, dispatch] = useReducer(reducer, initialState);\n\n return {\n actions,\n state,\n dispatch,\n };\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { useLocalSearchFilterState } from \"../../hooks/UseLocalSearchFilterState\";\nimport { SearchFilterContext } from \"./SearchFilterContext\";\nimport { createSearchFilterInitialState } from \"../../redux/SearchFilterRedux\";\n\ninterface SearchFilterLocalScopeProps<TFormModel> {\n initialFormModel: TFormModel;\n}\n\nexport const SearchFilterLocalStateContext = function SearchFilterLocalScope<\n TFormModel\n>({\n initialFormModel,\n children,\n}: PropsWithChildren<SearchFilterLocalScopeProps<TFormModel>>) {\n const { state, actions, dispatch } = useLocalSearchFilterState(\n createSearchFilterInitialState(initialFormModel)\n );\n\n return (\n <SearchFilterContext state={state} actions={actions} dispatch={dispatch}>\n {children}\n </SearchFilterContext>\n );\n};\n","import styled from \"@emotion/styled\";\n\nexport const ChipSpacer = styled.div`\n padding: calc(var(--swui-metrics-spacing) / 2)\n calc(var(--swui-metrics-indent) / 2);\n`;\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { ChipSpacer } from \"./ChipSpacer\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\nimport { useSearchFilterDispatch } from \"../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../context/SearchFilterActionsContext\";\n\ninterface SearchFilterChipsProps {\n disableClearAllButton?: boolean;\n}\n\nexport const SearchFilterChips: React.FC<SearchFilterChipsProps> = ({\n children,\n disableClearAllButton = false,\n}) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const onClickClearAll = useCallback(\n () => dispatch(actions.clearFormModel()),\n [actions, dispatch]\n );\n\n return (\n <Row flexWrap={\"wrap\"}>\n {children}\n {!disableClearAllButton && (\n <ChipSpacer>\n <FlatButton\n size={\"small\"}\n label={\"Clear all\"}\n onClick={onClickClearAll}\n />\n </ChipSpacer>\n )}\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { Chip } from \"@stenajs-webui/elements\";\nimport { ChipSpacer } from \"./ChipSpacer\";\nimport { useSearchFilterDispatch } from \"../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../context/SearchFilterActionsContext\";\n\nexport interface SectionChipsProps<TFormModel, TSectionKey extends string> {\n sectionId: TSectionKey;\n chips?: Array<SearchFilterSectionChipModel>;\n emptyChipLabel?: string;\n onClickRemoveOnChip?: SearchFilterSectionOnClickRemoveOnChip<TFormModel>;\n disableChipClearButton?: boolean;\n}\n\nexport const SectionChips = function SectionChips<\n TFormModel,\n TSectionKey extends string\n>({\n sectionId,\n chips,\n emptyChipLabel,\n onClickRemoveOnChip,\n disableChipClearButton,\n}: SectionChipsProps<TFormModel, TSectionKey>) {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const setFormModelFields = useCallback(\n (fields: Partial<TFormModel>) =>\n dispatch(actions.setFormModelFields(fields)),\n [dispatch, actions]\n );\n\n const onClickRemove = useCallback(\n (value: string) => {\n onClickRemoveOnChip?.({ value, setFormModelFields });\n },\n [onClickRemoveOnChip, setFormModelFields]\n );\n\n const onClickLabel = useCallback(() => {\n dispatch(actions.clearExpandedSections());\n dispatch(actions.expandSection(sectionId));\n dispatch(actions.openFilters());\n }, [actions, dispatch, sectionId]);\n\n if (!chips?.length) {\n if (!emptyChipLabel) {\n return null;\n }\n return (\n <ChipSpacer>\n <Chip\n label={emptyChipLabel}\n variant={\"secondary\"}\n onClick={onClickLabel}\n />\n </ChipSpacer>\n );\n }\n\n return (\n <>\n {chips.map(({ label, value }) => (\n <ChipSpacer key={value}>\n <Chip\n label={label ?? sectionId}\n onClick={onClickLabel}\n onClickRemove={\n disableChipClearButton ? undefined : () => onClickRemove(value)\n }\n />\n </ChipSpacer>\n ))}\n </>\n );\n};\n","import { BooleanRecord, BooleanRecordOptions } from \"./BooleanRecordTypes\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { PickByValue, truthyKeysAsList } from \"@stenajs-webui/core\";\nimport { SectionChipsProps } from \"../../features/chips/SectionChips\";\n\nexport const createChipsPropsForBooleanRecord = <\n TFormModel,\n TSectionKey extends string,\n TField extends keyof PickByValue<TFormModel, BooleanRecord>\n>(\n formModel: TFormModel,\n fieldName: TField,\n options?: BooleanRecordOptions\n): Pick<\n SectionChipsProps<TFormModel, TSectionKey>,\n \"chips\" | \"onClickRemoveOnChip\"\n> => ({\n chips: createChipsForBooleanRecord(formModel[fieldName], options),\n onClickRemoveOnChip: createOnClickRemoveOnChipForBooleanRecord(\n formModel,\n fieldName\n ),\n});\n\nexport const createChipsForBooleanRecord = (\n booleanRecord: BooleanRecord,\n options?: BooleanRecordOptions\n): Array<SearchFilterSectionChipModel> =>\n truthyKeysAsList(booleanRecord).map((key) => {\n const option = options?.find((o) => o.value === key);\n return { value: key, label: option?.label ?? key };\n });\n\nexport const createOnClickRemoveOnChipForBooleanRecord = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, BooleanRecord>\n>(\n formModel: TFormModel,\n fieldName: TField\n): SearchFilterSectionOnClickRemoveOnChip<TFormModel> => {\n return ({ setFormModelFields, value }) => {\n const newRecord: BooleanRecord = { ...formModel[fieldName] };\n newRecord[value] = false;\n setFormModelFields(({\n [fieldName]: newRecord,\n } as unknown) as Partial<TFormModel>);\n };\n};\n","import * as React from \"react\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport { Column, Text } from \"@stenajs-webui/core\";\nimport { CollapsibleClickableContent } from \"@stenajs-webui/panels\";\nimport { Checkbox, ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport { BooleanRecord, BooleanRecordOptions } from \"../BooleanRecordTypes\";\n\nexport interface SimpleCheckboxSectionProps<TSectionKey extends string>\n extends SearchFilterSectionProps<TSectionKey>,\n ValueAndOnValueChangeProps<BooleanRecord> {\n options?: BooleanRecordOptions;\n}\n\nexport const SimpleCheckboxListSection = <TSectionKey extends string>({\n options,\n value,\n onValueChange,\n ...sectionProps\n}: SimpleCheckboxSectionProps<TSectionKey>): React.ReactElement => (\n <SearchFilterSection disableContentPadding {...sectionProps}>\n <Column maxHeight={\"400px\"} overflowY={\"auto\"} flex={1}>\n {options?.map((d) => (\n <CollapsibleClickableContent\n key={d.value}\n onClick={() => {\n if (value && onValueChange) {\n const sel = !value[d.value];\n onValueChange({\n ...value,\n [d.value]: sel,\n });\n }\n }}\n contentLeft={<Checkbox tabIndex={-1} value={value?.[d.value]} />}\n >\n <Text>{d.label}</Text>\n </CollapsibleClickableContent>\n ))}\n </Column>\n </SearchFilterSection>\n);\n","import * as React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport { BooleanRecord, BooleanRecordOptions } from \"../BooleanRecordTypes\";\nimport { ChipMultiSelect, ChipMultiSelectValue } from \"@stenajs-webui/select\";\nimport { truthyKeysAsList } from \"@stenajs-webui/core\";\n\ninterface ChipMultiSelectSectionProps<TSectionKey extends string>\n extends SearchFilterSectionProps<TSectionKey>,\n ValueAndOnValueChangeProps<BooleanRecord> {\n options?: BooleanRecordOptions;\n}\n\nexport const ChipMultiSelectSection = <TSectionKey extends string>({\n options,\n value,\n onValueChange,\n ...sectionProps\n}: ChipMultiSelectSectionProps<TSectionKey>): React.ReactElement => {\n const [text, setText] = useState<string>(\"\");\n\n const listValue = useMemo<Array<ChipMultiSelectValue>>(\n () =>\n value\n ? truthyKeysAsList(value).map<ChipMultiSelectValue>((key) => {\n const option = options?.find((o) => o.value === key);\n return { value: key, label: option?.label ?? key };\n })\n : [],\n [options, value]\n );\n\n const filteredOptions = useMemo(() => {\n return options?.filter(\n (p) =>\n p.value.toLocaleLowerCase().indexOf(text.toLocaleLowerCase()) > -1 ||\n p.label.toLocaleLowerCase().indexOf(text.toLocaleLowerCase()) > -1\n );\n }, [options, text]);\n\n const onValueChangeInternal = useCallback(\n (value: Array<ChipMultiSelectValue>) => {\n onValueChange?.(createBooleanRecordFromValue(value));\n },\n [onValueChange]\n );\n\n return (\n <SearchFilterSection {...sectionProps}>\n <ChipMultiSelect\n options={filteredOptions}\n value={listValue}\n onValueChange={onValueChangeInternal}\n inputValue={text}\n onInputChange={setText}\n />\n </SearchFilterSection>\n );\n};\n\nconst createBooleanRecordFromValue = (\n value: Array<ChipMultiSelectValue>\n): BooleanRecord => {\n return value.reduce<BooleanRecord>((sum, item) => {\n sum[item.value] = true;\n return sum;\n }, {});\n};\n","import { DateRange } from \"./DateRangeTypes\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { PickByValue } from \"@stenajs-webui/core\";\nimport { SectionChipsProps } from \"../../features/chips/SectionChips\";\n\nexport const createChipsPropsForDateRange = <\n TFormModel,\n TSectionKey extends string,\n TField extends keyof PickByValue<TFormModel, string | undefined>\n>(\n formModel: TFormModel,\n startDateFieldName: TField,\n endDateFieldName: TField\n): Pick<\n SectionChipsProps<TFormModel, TSectionKey>,\n \"chips\" | \"onClickRemoveOnChip\"\n> => ({\n chips: createChipsForDateRange(\n formModel[startDateFieldName],\n formModel[endDateFieldName]\n ),\n onClickRemoveOnChip: createOnClickRemoveOnChipForDateRange(\n startDateFieldName,\n endDateFieldName\n ),\n});\n\nexport const createChipsForDateRange = (\n startDate: string | undefined,\n endDate: string | undefined\n): Array<SearchFilterSectionChipModel> => {\n if (!startDate && !endDate) {\n return [];\n }\n return [\n { value: \"dateRange\", label: `${startDate ?? \"\"} - ${endDate ?? \"\"}` },\n ];\n};\n\nexport const createOnClickRemoveOnChipForDateRange = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, DateRange>\n>(\n startDateFieldName: TField,\n endDateFieldName: TField\n): SearchFilterSectionOnClickRemoveOnChip<TFormModel> => {\n return ({ setFormModelFields }) => {\n setFormModelFields(({\n [startDateFieldName]: undefined,\n [endDateFieldName]: undefined,\n } as unknown) as Partial<TFormModel>);\n };\n};\n","import { PickByValue } from \"@stenajs-webui/core\";\nimport { DateRangeCalendarSectionProps } from \"./components/DateRangeCalendarSection\";\n\nexport const createDateRangeSectionProps = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, string | undefined>,\n TSectionKey extends string\n>(\n formModel: TFormModel,\n startDateFieldName: TField,\n endDateFieldName: TField\n): Pick<\n DateRangeCalendarSectionProps<TFormModel, TSectionKey>,\n \"value\" | \"onValueChange\"\n> => ({\n value: {\n startDate: formModel[startDateFieldName],\n endDate: formModel[endDateFieldName],\n },\n onValueChange: (value, { dispatch, actions }) => {\n const fields: Partial<TFormModel> = {\n [startDateFieldName]: value.startDate,\n [endDateFieldName]: value.endDate,\n } as any;\n dispatch(actions.setFormModelFields(fields));\n },\n});\n","import {\n DateRangeCalendar,\n DateRangeCalendarProps,\n DateRangeFocusedInput,\n} from \"@stenajs-webui/calendar\";\nimport * as React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { format, parse } from \"date-fns\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport {\n SearchFilterActions,\n SearchFilterDispatch,\n} from \"../../../redux/SearchFilterRedux\";\nimport { useSearchFilterDispatch } from \"../../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../../context/SearchFilterActionsContext\";\n\ninterface DateRangeCalendarSectionOnChangeValue {\n startDate?: string;\n endDate?: string;\n}\n\nexport interface DateRangeCalendarSectionProps<\n TFormModel,\n TSectionKey extends string\n> extends SearchFilterSectionProps<TSectionKey>,\n Omit<\n DateRangeCalendarProps<{}>,\n | \"focusedInput\"\n | \"setFocusedInput\"\n | \"startDate\"\n | \"endDate\"\n | \"onChange\"\n | \"setStartDate\"\n | \"setEndDate\"\n > {\n value: DateRangeCalendarSectionOnChangeValue;\n onValueChange: (\n value: DateRangeCalendarSectionOnChangeValue,\n options: SetDateOptions<TFormModel, TSectionKey>\n ) => void;\n}\n\nexport interface SetDateOptions<TFormModel, TSectionKey extends string> {\n dispatch: SearchFilterDispatch<TFormModel>;\n actions: SearchFilterActions<TFormModel, TSectionKey>;\n}\n\nexport const DateRangeCalendarSection = <\n TFormModel,\n TSectionKey extends string\n>({\n value,\n onValueChange,\n sectionId,\n ...dateRangeCalendarProps\n}: DateRangeCalendarSectionProps<TFormModel, TSectionKey>) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions<TFormModel, TSectionKey>();\n\n const options = useMemo<SetDateOptions<TFormModel, TSectionKey>>(\n () => ({ dispatch, actions }),\n [actions, dispatch]\n );\n const [focusedInput, setFocusedInput] = useState<DateRangeFocusedInput>(\n \"startDate\"\n );\n\n const { startDate, endDate } = value ?? {};\n\n const startDateObj = useMemo(\n () => (startDate ? parse(startDate, \"yyyy-MM-dd\", new Date()) : undefined),\n [startDate]\n );\n\n const endDateObj = useMemo(\n () => (endDate ? parse(endDate, \"yyyy-MM-dd\", new Date()) : undefined),\n [endDate]\n );\n\n const setStartDate = useCallback(\n (startDate: Date) => {\n onValueChange(\n { startDate: format(startDate, \"yyyy-MM-dd\"), endDate },\n options\n );\n },\n [endDate, onValueChange, options]\n );\n\n const setEndDate = useCallback(\n (endDate: Date) => {\n onValueChange(\n { startDate, endDate: format(endDate, \"yyyy-MM-dd\") },\n options\n );\n },\n [onValueChange, options, startDate]\n );\n\n return (\n <SearchFilterSection sectionId={sectionId}>\n <Box flex={1} alignItems={\"center\"}>\n <Box background={\"white\"} indent>\n <DateRangeCalendar\n setFocusedInput={setFocusedInput}\n focusedInput={focusedInput}\n startDate={startDateObj}\n endDate={endDateObj}\n setStartDate={setStartDate}\n setEndDate={setEndDate}\n {...dateRangeCalendarProps}\n />\n </Box>\n </Box>\n </SearchFilterSection>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWa,uBAAuB,GAA2C,UAAC,EAE/E;QADC,cAAc,oBAAA;IAEd,QACE,oBAAC,GAAG,IACF,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,QAAQ,EACpB,MAAM,EAAE,CAAC;QAET,oBAAC,GAAG,IAAC,UAAU,EAAE,QAAQ;YACvB,oBAAC,IAAI,IACH,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACtC,IAAI,EAAE,EAAE,GACR;YACF,oBAAC,MAAM,OAAG;YACV,oBAAC,OAAO,IAAC,OAAO,EAAE,IAAI,cAAmB,CACrC;QACN,oBAAC,UAAU,IAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAI,CACtD,EACN;AACJ;;IC9Ba,wBAAwB,GAAG,aAAa,CAElD,IAA8C,EAAE;IAEtC,oBAAoB,GAAG;IAGlC,IAAM,CAAC,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;KACH;IACD,OAAO,CAAkC,CAAC;AAC5C;;ICda,2BAA2B,GAAG,aAAa,CAErD,IAAiD,EAAE;IAEzC,uBAAuB,GAAG;IACrC,IAAM,CAAC,GAAG,UAAU,CAAC,2BAA2B,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IACD,OAAO,CAAC,CAAC;AACX;;ICVa,0BAA0B,GAAG,aAAa,CAEpD,IAAqD,EAAE;IAE7C,sBAAsB,GAAG;IAIpC,IAAM,CAAC,GAAG,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IACD,OAAO,CAAiD,CAAC;AAC3D;;ICHa,kBAAkB,GAAsC,UAAC,EAGrE;IAFC,IAAA,QAAQ,cAAA,EACL,WAAW,cAFsD,YAGrE,CADe;IAGA,IAAA,IAAI,GACd,oBAAoB,EAAE,cADR,CACS;IAC3B,IAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,IAAM,WAAW,GAAG,WAAW,CAAC;QAC9B,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;KAClC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,QACE,oBAAC,MAAM,aACL,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAC1C,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,IAAI,EACZ,cAAc,EAAE,WAAW,IACvB,WAAW;QAEf,oBAAC,MAAM;YACL,oBAAC,uBAAuB,IAAC,cAAc,EAAE,WAAW,GAAI;YACvD,QAAQ,CACF,CACF,EACT;AACJ;;IC9Ba,kBAAkB,GAA6C,UAAC,EAE5E;QADC,aAAiB,EAAjB,KAAK,mBAAG,SAAS,KAAA;IAEjB,IAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,IAAM,aAAa,GAAG,WAAW,CAAC;QAChC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;KACjC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,QACE,oBAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,aAAa,GACtB,EACF;AACJ;;ICPa,mBAAmB,GAAG,SAAS,mBAAmB,CAE7D,EAUyD;;QATzD,SAAS,eAAA,EACT,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,YAAY,kBAAA,EACZ,OAAO,aAAA,EACP,KAAK,WAAA,EACL,OAAO,aAAA,EACP,qBAAqB,2BAAA,EACrB,QAAQ,cAAA;IAER,IAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IACrC,IAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,IAAM,QAAQ,GAAG,MAAA,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,mCAAI,KAAK,CAAC;IAEnE,IAAM,YAAY,GAAG,WAAW,CAAC;QAC/B,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC5D,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7C,IAAM,WAAW,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,+BAA+B,CAAC,SAAS,CAAC,CAAC;IAExE,QACE,oBAAC,WAAW,IACV,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,CAAC,QAAQ,EACpB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,IAEzB,OAAO,IACN,oBAAC,kBAAkB;QACjB,oBAAC,GAAG,IAAC,OAAO,QAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5C,oBAAC,OAAO,IAAC,IAAI,EAAE,OAAO,GAAI,CACtB,CACa,IACnB,KAAK,IACP,oBAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,EACX,YAAY,EACV,OAAO,GAAG,oBAAC,UAAU,IAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,GAAG,IAAI,GAEnE,IACA,qBAAqB,IACvB,QAAQ,KAER,oBAAC,kBAAkB,QAAE,QAAQ,CAAsB,CACpD,CACW,EACd;AACJ,EAAE;IAEW,+BAA+B,GAAG,UAAC,QAAgB;IAC9D,OAAA,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAA/B;;IC5EW,wBAAwB,GAAG,aAAa,CAAU,IAAe,EAAE;IAEnE,oBAAoB,GAAG;IAClC,IAAM,CAAC,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;KACH;IACD,OAAO,CAAe,CAAC;AACzB;;ICMa,mBAAmB,GAAG,SAAS,iBAAiB,CAG3D,EAKmE;QAJnE,KAAK,WAAA,EACL,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,QAAQ,cAAA;IAER,QACE,oBAAC,2BAA2B,CAAC,QAAQ,IACnC,KAAK,EAAE,QAAyC;QAEhD,oBAAC,0BAA0B,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO;YACjD,oBAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;gBAC7C,oBAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,IACtD,QAAQ,CACyB,CACF,CACA,CACD,EACvC;AACJ;;ICLa,8BAA8B,GAAG,UAC5C,gBAA4B,IACM,QAAC;IACnC,QAAQ,EAAE;QACR,IAAI,EAAE,KAAK;KACZ;IACD,SAAS,EAAE,gBAAgB;IAC3B,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;CACjC,KAAE;IAEU,yBAAyB,GAAG,UACvC,SAAiB,EACjB,YAA2C;IAE3C,OAAA,eAAe,CAAC;QACd,gBAAgB,EAAE,aAAa,CAC7B,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAC9C,sBAAsB,CAAU,YAAY,CAAC,gBAAgB,CAAC,CAC/D;QACD,SAAS,EAAE,aAAa,CACtB,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,EACvC,mBAAmB,CAAa,YAAY,CAAC,SAAS,CAAC,CACxD;QACD,QAAQ,EAAE,aAAa,CACrB,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,EACtC,mBAAmB,CAAuB,YAAY,CAAC,QAAQ,CAAC,CACjE;KACF,CAAC;AAbF,EAaG;IAkBQ,yBAAyB,GAAG,UAIvC,SAAiB,EACjB,gBAA4B,IACqB,QAAC;IAClD,WAAW,EAAE;QACX,OAAA,mBAAmB,CACjB,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,EACtC,mBAAmB,EAAwB,CAAC,eAAe,CAAC;YAC1D,IAAI,EAAE,IAAI;SACX,CAAC,CACH;KAAA;IACH,YAAY,EAAE;QACZ,OAAA,mBAAmB,CACjB,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,EACtC,mBAAmB,EAAwB,CAAC,eAAe,CAAC;YAC1D,IAAI,EAAE,KAAK;SACZ,CAAC,CACH;KAAA;IACH,kBAAkB,EAAE,UAAC,MAA2B;QAC9C,OAAA,mBAAmB,CACjB,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,EACvC,mBAAmB,EAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAC1D;KAAA;IACH,cAAc,EAAE;QACd,OAAA,mBAAmB,CACjB,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,EACvC,mBAAmB,EAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAC9D;KAAA;IACH,aAAa,EAAE,UAAC,OAAoB;QAClC,OAAA,mBAAmB,CACjB,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAC9C,sBAAsB,EAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAC1D;KAAA;IACH,eAAe,EAAE,UAAC,OAAoB;QACpC,OAAA,mBAAmB,CACjB,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAC9C,sBAAsB,EAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAC3D;KAAA;IACH,kBAAkB,EAAE,UAAC,OAAoB,EAAE,QAAiB;QAC1D,OAAA,mBAAmB,CACjB,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAC9C,sBAAsB,EAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAC9D;KAAA;IACH,qBAAqB,EAAE;QACrB,OAAA,mBAAmB,CACjB,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAC9C,sBAAsB,EAAW,CAAC,cAAc,EAAE,CACnD;KAAA;CACJ,KAAE;IAEU,eAAe,GAAG,UAC7B,SAAiB,EACjB,eAAiD,IACtC,OAAG,SAAS,SAAI,eAAiB;;ICjIjC,yBAAyB,GAAG,UAIvC,YAA2C;IAEpC,IAAA,OAAO,GAAI,QAAQ,CAAC;QACzB,OAAA,yBAAyB,CAAa,OAAO,EAAE,YAAY,CAAC;KAAA,CAC7D,GAFa,CAEZ;IAEK,IAAA,OAAO,GAAI,QAAQ,CAAC;QACzB,OAAA,yBAAyB,CACvB,OAAO,EACP,YAAY,CAAC,SAAS,CACvB;KAAA,CACF,GALa,CAKZ;IAEI,IAAA,KAAoB,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,EAApD,KAAK,QAAA,EAAE,QAAQ,QAAqC,CAAC;IAE5D,OAAO;QACL,OAAO,SAAA;QACP,KAAK,OAAA;QACL,QAAQ,UAAA;KACT,CAAC;AACJ;;ICrBa,6BAA6B,GAAG,SAAS,sBAAsB,CAE1E,EAG2D;QAF3D,gBAAgB,sBAAA,EAChB,QAAQ,cAAA;IAEF,IAAA,KAA+B,yBAAyB,CAC5D,8BAA8B,CAAC,gBAAgB,CAAC,CACjD,EAFO,KAAK,WAAA,EAAE,OAAO,aAAA,EAAE,QAAQ,cAE/B,CAAC;IAEF,QACE,oBAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,IACpE,QAAQ,CACW,EACtB;AACJ;;ACvBO,IAAM,UAAU,GAAG,MAAM,CAAC,GAAG,oKAAA,iGAGnC,IAAA,CAAC;;;ICOW,iBAAiB,GAAqC,UAAC,EAGnE;QAFC,QAAQ,cAAA,EACR,6BAA6B,EAA7B,qBAAqB,mBAAG,KAAK,KAAA;IAE7B,IAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,IAAM,eAAe,GAAG,WAAW,CACjC,cAAM,OAAA,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,GAAA,EACxC,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpB,CAAC;IAEF,QACE,oBAAC,GAAG,IAAC,QAAQ,EAAE,MAAM;QAClB,QAAQ;QACR,CAAC,qBAAqB,KACrB,oBAAC,UAAU;YACT,oBAAC,UAAU,IACT,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,eAAe,GACxB,CACS,CACd,CACG,EACN;AACJ;;ICnBa,YAAY,GAAG,SAAS,YAAY,CAG/C,EAM2C;QAL3C,SAAS,eAAA,EACT,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,mBAAmB,yBAAA,EACnB,sBAAsB,4BAAA;IAEtB,IAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IAEzC,IAAM,kBAAkB,GAAG,WAAW,CACpC,UAAC,MAA2B;QAC1B,OAAA,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;KAAA,EAC9C,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAC;IAEF,IAAM,aAAa,GAAG,WAAW,CAC/B,UAAC,KAAa;QACZ,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,EAAE,KAAK,OAAA,EAAE,kBAAkB,oBAAA,EAAE,CAAC,CAAC;KACtD,EACD,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAC1C,CAAC;IAEF,IAAM,YAAY,GAAG,WAAW,CAAC;QAC/B,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC1C,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;KACjC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnC,IAAI,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA,EAAE;QAClB,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QACD,QACE,oBAAC,UAAU;YACT,oBAAC,IAAI,IACH,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,YAAY,GACrB,CACS,EACb;KACH;IAED,QACE,0CACG,KAAK,CAAC,GAAG,CAAC,UAAC,EAAgB;YAAd,KAAK,WAAA,EAAE,KAAK,WAAA;QAAO,QAC/B,oBAAC,UAAU,IAAC,GAAG,EAAE,KAAK;YACpB,oBAAC,IAAI,IACH,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,SAAS,EACzB,OAAO,EAAE,YAAY,EACrB,aAAa,EACX,sBAAsB,GAAG,SAAS,GAAG,cAAM,OAAA,aAAa,CAAC,KAAK,CAAC,GAAA,GAEjE,CACS;KACd,CAAC,CACD,EACH;AACJ;;ICzEa,gCAAgC,GAAG,UAK9C,SAAqB,EACrB,SAAiB,EACjB,OAA8B,IAI3B,QAAC;IACJ,KAAK,EAAE,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IACjE,mBAAmB,EAAE,yCAAyC,CAC5D,SAAS,EACT,SAAS,CACV;CACF,KAAE;IAEU,2BAA2B,GAAG,UACzC,aAA4B,EAC5B,OAA8B;IAE9B,OAAA,gBAAgB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG;;QACtC,IAAM,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,GAAG,GAAA,CAAC,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,mCAAI,GAAG,EAAE,CAAC;KACpD,CAAC;AAHF,EAGG;IAEQ,yCAAyC,GAAG,UAIvD,SAAqB,EACrB,SAAiB;IAEjB,OAAO,UAAC,EAA6B;;YAA3B,kBAAkB,wBAAA,EAAE,KAAK,WAAA;QACjC,IAAM,SAAS,gBAAuB,SAAS,CAAC,SAAS,CAAC,CAAE,CAAC;QAC7D,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACzB,kBAAkB,EAAE;YAClB,GAAC,SAAS,IAAG,SAAS;cACY,EAAC,CAAC;KACvC,CAAC;AACJ;;IClCa,yBAAyB,GAAG,UAA6B,EAK5B;IAJxC,IAAA,OAAO,aAAA,EACP,KAAK,WAAA,EACL,aAAa,mBAAA,EACV,YAAY,cAJqD,qCAKrE,CADgB;IACkD,QACjE,oBAAC,mBAAmB,aAAC,qBAAqB,UAAK,YAAY;QACzD,oBAAC,MAAM,IAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IACnD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,UAAC,CAAC,IAAK,QACnB,oBAAC,2BAA2B,IAC1B,GAAG,EAAE,CAAC,CAAC,KAAK,EACZ,OAAO,EAAE;;gBACP,IAAI,KAAK,IAAI,aAAa,EAAE;oBAC1B,IAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC5B,aAAa,uBACR,KAAK,gBACP,CAAC,CAAC,KAAK,IAAG,GAAG,OACd,CAAC;iBACJ;aACF,EACD,WAAW,EAAE,oBAAC,QAAQ,IAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,KAAK,CAAC,GAAI;YAEhE,oBAAC,IAAI,QAAE,CAAC,CAAC,KAAK,CAAQ,CACM,IAC/B,CAAC,CACK,CACW,EACvB;;;IC1BY,sBAAsB,GAAG,UAA6B,EAKxB;IAJzC,IAAA,OAAO,aAAA,EACP,KAAK,WAAA,EACL,aAAa,mBAAA,EACV,YAAY,cAJkD,qCAKlE,CADgB;IAET,IAAA,KAAkB,QAAQ,CAAS,EAAE,CAAC,EAArC,IAAI,QAAA,EAAE,OAAO,QAAwB,CAAC;IAE7C,IAAM,SAAS,GAAG,OAAO,CACvB;QACE,OAAA,KAAK;cACD,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAuB,UAAC,GAAG;;gBACpD,IAAM,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,GAAG,GAAA,CAAC,CAAC;gBACrD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,mCAAI,GAAG,EAAE,CAAC;aACpD,CAAC;cACF,EAAE;KAAA,EACR,CAAC,OAAO,EAAE,KAAK,CAAC,CACjB,CAAC;IAEF,IAAM,eAAe,GAAG,OAAO,CAAC;QAC9B,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CACpB,UAAC,CAAC;YACA,OAAA,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC;gBAClE,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC;SAAA,CACrE,CAAC;KACH,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpB,IAAM,qBAAqB,GAAG,WAAW,CACvC,UAAC,KAAkC;QACjC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,QACE,oBAAC,mBAAmB,eAAK,YAAY;QACnC,oBAAC,eAAe,IACd,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,IAAI,EAChB,aAAa,EAAE,OAAO,GACtB,CACkB,EACtB;AACJ,EAAE;AAEF,IAAM,4BAA4B,GAAG,UACnC,KAAkC;IAElC,OAAO,KAAK,CAAC,MAAM,CAAgB,UAAC,GAAG,EAAE,IAAI;QAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,CAAC;KACZ,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;;IC/DY,4BAA4B,GAAG,UAK1C,SAAqB,EACrB,kBAA0B,EAC1B,gBAAwB,IAIrB,QAAC;IACJ,KAAK,EAAE,uBAAuB,CAC5B,SAAS,CAAC,kBAAkB,CAAC,EAC7B,SAAS,CAAC,gBAAgB,CAAC,CAC5B;IACD,mBAAmB,EAAE,qCAAqC,CACxD,kBAAkB,EAClB,gBAAgB,CACjB;CACF,KAAE;IAEU,uBAAuB,GAAG,UACrC,SAA6B,EAC7B,OAA2B;IAE3B,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;QAC1B,OAAO,EAAE,CAAC;KACX;IACD,OAAO;QACL,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,aAAM,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAE,EAAE;KACvE,CAAC;AACJ,EAAE;IAEW,qCAAqC,GAAG,UAInD,kBAA0B,EAC1B,gBAAwB;IAExB,OAAO,UAAC,EAAsB;;YAApB,kBAAkB,wBAAA;QAC1B,kBAAkB,EAAE;YAClB,GAAC,kBAAkB,IAAG,SAAS;YAC/B,GAAC,gBAAgB,IAAG,SAAS;cACK,EAAC,CAAC;KACvC,CAAC;AACJ;;ICpDa,2BAA2B,GAAG,UAKzC,SAAqB,EACrB,kBAA0B,EAC1B,gBAAwB,IAIrB,QAAC;IACJ,KAAK,EAAE;QACL,SAAS,EAAE,SAAS,CAAC,kBAAkB,CAAC;QACxC,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC;KACrC;IACD,aAAa,EAAE,UAAC,KAAK,EAAE,EAAqB;;YAAnB,QAAQ,cAAA,EAAE,OAAO,aAAA;QACxC,IAAM,MAAM,IAAwB;YAClC,GAAC,kBAAkB,IAAG,KAAK,CAAC,SAAS;YACrC,GAAC,gBAAgB,IAAG,KAAK,CAAC,OAAO;cAC3B,CAAA,CAAC;QACT,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;KAC9C;CACF;;ICyBY,wBAAwB,GAAG,UAGtC,EAKuD;IAJvD,IAAA,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACN,sBAAsB,cAJzB,uCAKD,CAD0B;IAEzB,IAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAM,OAAO,GAAG,sBAAsB,EAA2B,CAAC;IAElE,IAAM,OAAO,GAAG,OAAO,CACrB,cAAM,QAAC,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,IAAC,EAC7B,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpB,CAAC;IACI,IAAA,KAAkC,QAAQ,CAC9C,WAAW,CACZ,EAFM,YAAY,QAAA,EAAE,eAAe,QAEnC,CAAC;IAEI,IAAA,KAAyB,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAAlC,SAAS,eAAA,EAAE,OAAO,aAAgB,CAAC;IAE3C,IAAM,YAAY,GAAG,OAAO,CAC1B,cAAM,QAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,GAAG,SAAS,IAAC,EAC1E,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,IAAM,UAAU,GAAG,OAAO,CACxB,cAAM,QAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,GAAG,SAAS,IAAC,EACtE,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,YAAY,GAAG,WAAW,CAC9B,UAAC,SAAe;QACd,aAAa,CACX,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,SAAA,EAAE,EACvD,OAAO,CACR,CAAC;KACH,EACD,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAClC,CAAC;IAEF,IAAM,UAAU,GAAG,WAAW,CAC5B,UAAC,OAAa;QACZ,aAAa,CACX,EAAE,SAAS,WAAA,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,EACrD,OAAO,CACR,CAAC;KACH,EACD,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CACpC,CAAC;IAEF,QACE,oBAAC,mBAAmB,IAAC,SAAS,EAAE,SAAS;QACvC,oBAAC,GAAG,IAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ;YAChC,oBAAC,GAAG,IAAC,UAAU,EAAE,OAAO,EAAE,MAAM;gBAC9B,oBAAC,iBAAiB,aAChB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,IAClB,sBAAsB,EAC1B,CACE,CACF,CACc,EACtB;AACJ;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -316,8 +316,8 @@ var createOnClickRemoveOnChipForBooleanRecord = function (formModel, fieldName)
|
|
|
316
316
|
};
|
|
317
317
|
|
|
318
318
|
var SimpleCheckboxListSection = function (_a) {
|
|
319
|
-
var options = _a.options,
|
|
320
|
-
return (React__namespace.createElement(SearchFilterSection, {
|
|
319
|
+
var options = _a.options, value = _a.value, onValueChange = _a.onValueChange, sectionProps = __rest(_a, ["options", "value", "onValueChange"]);
|
|
320
|
+
return (React__namespace.createElement(SearchFilterSection, __assign({ disableContentPadding: true }, sectionProps),
|
|
321
321
|
React__namespace.createElement(core.Column, { maxHeight: "400px", overflowY: "auto", flex: 1 }, options === null || options === void 0 ? void 0 : options.map(function (d) { return (React__namespace.createElement(panels.CollapsibleClickableContent, { key: d.value, onClick: function () {
|
|
322
322
|
var _a;
|
|
323
323
|
if (value && onValueChange) {
|
|
@@ -329,7 +329,7 @@ var SimpleCheckboxListSection = function (_a) {
|
|
|
329
329
|
};
|
|
330
330
|
|
|
331
331
|
var ChipMultiSelectSection = function (_a) {
|
|
332
|
-
var options = _a.options,
|
|
332
|
+
var options = _a.options, value = _a.value, onValueChange = _a.onValueChange, sectionProps = __rest(_a, ["options", "value", "onValueChange"]);
|
|
333
333
|
var _b = React.useState(""), text = _b[0], setText = _b[1];
|
|
334
334
|
var listValue = React.useMemo(function () {
|
|
335
335
|
return value
|
|
@@ -349,7 +349,7 @@ var ChipMultiSelectSection = function (_a) {
|
|
|
349
349
|
var onValueChangeInternal = React.useCallback(function (value) {
|
|
350
350
|
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(createBooleanRecordFromValue(value));
|
|
351
351
|
}, [onValueChange]);
|
|
352
|
-
return (React__namespace.createElement(SearchFilterSection, {
|
|
352
|
+
return (React__namespace.createElement(SearchFilterSection, __assign({}, sectionProps),
|
|
353
353
|
React__namespace.createElement(select.ChipMultiSelect, { options: filteredOptions, value: listValue, onValueChange: onValueChangeInternal, inputValue: text, onInputChange: setText })));
|
|
354
354
|
};
|
|
355
355
|
var createBooleanRecordFromValue = function (value) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/features/search-filter/components/SearchFilterPanelHeader.tsx","../src/features/search-filter/context/SearchFilterStateContext.ts","../src/features/search-filter/context/SearchFilterDispatchContext.ts","../src/features/search-filter/context/SearchFilterActionsContext.ts","../src/features/search-filter/components/SearchFilterDrawer.tsx","../src/features/search-filter/components/SearchFilterButton.tsx","../src/features/search-filter/components/SearchFilterSection.tsx","../src/features/search-filter/context/SearchFilterModelContext.ts","../src/features/search-filter/components/context/SearchFilterContext.tsx","../src/features/search-filter/redux/SearchFilterRedux.ts","../src/features/search-filter/hooks/UseLocalSearchFilterState.ts","../src/features/search-filter/components/context/SearchFilterLocalStateContext.tsx","../src/features/search-filter/features/chips/ChipSpacer.tsx","../src/features/search-filter/features/chips/SearchFilterChips.tsx","../src/features/search-filter/features/chips/SectionChips.tsx","../src/features/search-filter/section-factories/boolean-record/BooleanRecordChips.ts","../src/features/search-filter/section-factories/boolean-record/components/SimpleCheckboxListSection.tsx","../src/features/search-filter/section-factories/boolean-record/components/ChipMultiSelectSection.tsx","../src/features/search-filter/section-factories/date-range/DateRangeChips.ts","../src/features/search-filter/section-factories/date-range/DateRangePropsFactory.ts","../src/features/search-filter/section-factories/date-range/components/DateRangeCalendarSection.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Heading, Indent, Row } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon } from \"@stenajs-webui/elements\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons/faTimes\";\nimport { faSlidersH } from \"@fortawesome/free-solid-svg-icons/faSlidersH\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\ninterface SearchFilterPanelHeaderProps {\n onRequestClose: () => void;\n}\n\nexport const SearchFilterPanelHeader: React.FC<SearchFilterPanelHeaderProps> = ({\n onRequestClose,\n}) => {\n return (\n <Row\n height={\"48px\"}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n indent={2}\n >\n <Row alignItems={\"center\"}>\n <Icon\n icon={faSlidersH}\n color={cssColor(\"--lhds-color-ui-500\")}\n size={12}\n />\n <Indent />\n <Heading variant={\"h4\"}>Filters</Heading>\n </Row>\n <FlatButton leftIcon={faTimes} onClick={onRequestClose} />\n </Row>\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterState } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterStateContext = createContext<\n SearchFilterState<unknown>\n>((null as unknown) as SearchFilterState<unknown>);\n\nexport const useSearchFilterState = <\n TFormModel\n>(): SearchFilterState<TFormModel> => {\n const c = useContext(SearchFilterStateContext);\n if (!c) {\n throw new Error(\n \"Missing search filter context, wrap components with SearchFilterContext component.\"\n );\n }\n return c as SearchFilterState<TFormModel>;\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterDispatch } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterDispatchContext = createContext<\n SearchFilterDispatch<unknown>\n>((null as unknown) as SearchFilterDispatch<unknown>);\n\nexport const useSearchFilterDispatch = () => {\n const c = useContext(SearchFilterDispatchContext);\n if (!c) {\n throw new Error(\"Missing search filter dispatch context.\");\n }\n return c;\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterActions } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterActionsContext = createContext<\n SearchFilterActions<unknown, any>\n>((null as unknown) as SearchFilterActions<unknown, any>);\n\nexport const useSearchFilterActions = <\n TFormModel,\n TSectionKey extends string\n>() => {\n const c = useContext(SearchFilterActionsContext);\n if (!c) {\n throw new Error(\"Missing search filter actions context.\");\n }\n return c as SearchFilterActions<TFormModel, TSectionKey>;\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Drawer, DrawerProps } from \"@stenajs-webui/modal\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { SearchFilterPanelHeader } from \"./SearchFilterPanelHeader\";\nimport { useSearchFilterState } from \"../context/SearchFilterStateContext\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\ninterface SearchFilterDrawerProps\n extends Omit<DrawerProps, \"isOpen\" | \"onRequestClose\"> {}\n\nexport const SearchFilterDrawer: React.FC<SearchFilterDrawerProps> = ({\n children,\n ...drawerProps\n}) => {\n const {\n settings: { open },\n } = useSearchFilterState();\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const closeDrawer = useCallback(() => {\n dispatch(actions.closeFilters());\n }, [actions, dispatch]);\n\n return (\n <Drawer\n background={cssColor(\"--lhds-color-ui-50\")}\n width={\"370px\"}\n isOpen={open}\n onRequestClose={closeDrawer}\n {...drawerProps}\n >\n <Column>\n <SearchFilterPanelHeader onRequestClose={closeDrawer} />\n {children}\n </Column>\n </Drawer>\n );\n};\n","import { faSlidersH } from \"@fortawesome/free-solid-svg-icons/faSlidersH\";\nimport { SecondaryButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\ninterface SearchFilterDrawerButtonProps {\n label?: string;\n}\n\nexport const SearchFilterButton: React.VFC<SearchFilterDrawerButtonProps> = ({\n label = \"Filters\",\n}) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const onClickButton = useCallback(() => {\n dispatch(actions.openFilters());\n }, [actions, dispatch]);\n\n return (\n <SecondaryButton\n label={label}\n leftIcon={faSlidersH}\n onClick={onClickButton}\n />\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, useCallback } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { Collapsible, CollapsibleContent } from \"@stenajs-webui/panels\";\nimport { lowerCase, upperFirst } from \"lodash\";\nimport { Banner, FlatButton, Spinner } from \"@stenajs-webui/elements\";\nimport { useSearchFilterState } from \"../context/SearchFilterStateContext\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\nexport interface SearchFilterSectionProps<TSectionKey extends string> {\n sectionId: TSectionKey;\n contentLeft?: React.ReactNode;\n contentRight?: React.ReactNode;\n disableContentPadding?: boolean;\n loading?: boolean;\n error?: string;\n onRetry?: () => void;\n label?: string;\n}\n\nexport const SearchFilterSection = function SearchFilterSection<\n TSectionKey extends string\n>({\n sectionId,\n label,\n contentLeft,\n contentRight,\n loading,\n error,\n onRetry,\n disableContentPadding,\n children,\n}: PropsWithChildren<SearchFilterSectionProps<TSectionKey>>) {\n const state = useSearchFilterState();\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const expanded = state.expandedSections.values[sectionId] ?? false;\n\n const onClickLabel = useCallback(() => {\n dispatch(actions.setSectionExpanded(sectionId, !expanded));\n }, [actions, dispatch, expanded, sectionId]);\n\n const activeLabel = label ?? formatColumnIdToHeaderCellLabel(sectionId);\n\n return (\n <Collapsible\n label={activeLabel}\n collapsed={!expanded}\n onClick={onClickLabel}\n contentLeft={contentLeft}\n contentRight={contentRight}\n >\n {loading ? (\n <CollapsibleContent>\n <Row spacing justifyContent={\"center\"} flex={1}>\n <Spinner size={\"small\"} />\n </Row>\n </CollapsibleContent>\n ) : error ? (\n <Banner\n variant={\"error\"}\n text={error}\n contentRight={\n onRetry ? <FlatButton label={\"Retry\"} onClick={onRetry} /> : null\n }\n />\n ) : disableContentPadding ? (\n children\n ) : (\n <CollapsibleContent>{children}</CollapsibleContent>\n )}\n </Collapsible>\n );\n};\n\nexport const formatColumnIdToHeaderCellLabel = (columnId: string): string =>\n upperFirst(lowerCase(columnId));\n","import { createContext, useContext } from \"react\";\n\nexport const SearchFilterModelContext = createContext<unknown>(null as unknown);\n\nexport const useSearchFilterModel = <TFormModel>(): TFormModel => {\n const c = useContext(SearchFilterModelContext);\n if (!c) {\n throw new Error(\n \"Missing search filter context, wrap components with SearchFilterContext component.\"\n );\n }\n return c as TFormModel;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport {\n SearchFilterActions,\n SearchFilterDispatch,\n SearchFilterState,\n} from \"../../redux/SearchFilterRedux\";\nimport { SearchFilterDispatchContext } from \"../../context/SearchFilterDispatchContext\";\nimport { SearchFilterActionsContext } from \"../../context/SearchFilterActionsContext\";\nimport { SearchFilterStateContext } from \"../../context/SearchFilterStateContext\";\nimport { SearchFilterModelContext } from \"../../context/SearchFilterModelContext\";\n\ninterface SearchFilterScopeProps<TFormModel, TSectionKey extends string> {\n state: SearchFilterState<TFormModel>;\n dispatch: SearchFilterDispatch<TFormModel>;\n actions: SearchFilterActions<TFormModel, TSectionKey>;\n}\n\nexport const SearchFilterContext = function SearchFilterScope<\n TFormModel,\n TSectionKey extends string\n>({\n state,\n dispatch,\n actions,\n children,\n}: PropsWithChildren<SearchFilterScopeProps<TFormModel, TSectionKey>>) {\n return (\n <SearchFilterDispatchContext.Provider\n value={dispatch as SearchFilterDispatch<unknown>}\n >\n <SearchFilterActionsContext.Provider value={actions}>\n <SearchFilterStateContext.Provider value={state}>\n <SearchFilterModelContext.Provider value={state.formModel}>\n {children}\n </SearchFilterModelContext.Provider>\n </SearchFilterStateContext.Provider>\n </SearchFilterActionsContext.Provider>\n </SearchFilterDispatchContext.Provider>\n );\n};\n","import { combineReducers } from \"redux\";\nimport {\n createEntityActions,\n createEntityReducer,\n createValueByIdActions,\n createValueByIdReducer,\n EntityAction,\n EntityState,\n reducerIdGate,\n reducerIdGateAction,\n ReducerIdGateAction,\n ValueByIdAction,\n ValueByIdState,\n} from \"@stenajs-webui/redux\";\nimport { Dispatch } from \"react\";\n\nexport interface SearchFilterSettings {\n open: boolean;\n}\n\nexport type SearchFilterDispatch<TFormModel> = Dispatch<\n SearchFilterAction<TFormModel>\n>;\n\nexport interface SearchFilterState<TFormModel> {\n expandedSections: ValueByIdState<boolean>;\n formModel: EntityState<TFormModel>;\n settings: EntityState<SearchFilterSettings>;\n}\n\nexport type SearchFilterAction<TFormModel> =\n | ReducerIdGateAction<ValueByIdAction<boolean>>\n | ReducerIdGateAction<EntityAction<TFormModel>>\n | ReducerIdGateAction<EntityAction<SearchFilterSettings>>;\n\nexport const createSearchFilterInitialState = <TFormModel>(\n initialFormModel: TFormModel\n): SearchFilterState<TFormModel> => ({\n settings: {\n open: false,\n },\n formModel: initialFormModel,\n expandedSections: { values: {} },\n});\n\nexport const createSearchFilterReducer = <TFormModel>(\n reducerId: string,\n initialState: SearchFilterState<TFormModel>\n) =>\n combineReducers({\n expandedSections: reducerIdGate(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdReducer<boolean>(initialState.expandedSections)\n ),\n formModel: reducerIdGate(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityReducer<TFormModel>(initialState.formModel)\n ),\n settings: reducerIdGate(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityReducer<SearchFilterSettings>(initialState.settings)\n ),\n });\n\nexport interface SearchFilterActions<TFormModel, TSectionKey extends string> {\n openFilters: () => SearchFilterAction<TFormModel>;\n closeFilters: () => SearchFilterAction<TFormModel>;\n setFormModelFields: (\n fields: Partial<TFormModel>\n ) => SearchFilterAction<TFormModel>;\n clearFormModel: () => SearchFilterAction<TFormModel>;\n expandSection: (section: TSectionKey) => SearchFilterAction<TFormModel>;\n collapseSection: (section: TSectionKey) => SearchFilterAction<TFormModel>;\n setSectionExpanded: (\n section: TSectionKey,\n expanded: boolean\n ) => SearchFilterAction<TFormModel>;\n clearExpandedSections: () => SearchFilterAction<TFormModel>;\n}\n\nexport const createSearchFilterActions = <\n TFormModel,\n TSectionKey extends string\n>(\n reducerId: string,\n initialFormModel: TFormModel\n): SearchFilterActions<TFormModel, TSectionKey> => ({\n openFilters: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityActions<SearchFilterSettings>().setEntityFields({\n open: true,\n })\n ),\n closeFilters: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityActions<SearchFilterSettings>().setEntityFields({\n open: false,\n })\n ),\n setFormModelFields: (fields: Partial<TFormModel>) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityActions<TFormModel>().setEntityFields(fields)\n ),\n clearFormModel: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityActions<TFormModel>().setEntity(initialFormModel)\n ),\n expandSection: (section: TSectionKey) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, true)\n ),\n collapseSection: (section: TSectionKey) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, false)\n ),\n setSectionExpanded: (section: TSectionKey, expanded: boolean) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, expanded)\n ),\n clearExpandedSections: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().clearAllValues()\n ),\n});\n\nexport const getReducerIdFor = (\n reducerId: string,\n reducerIdSuffix: keyof SearchFilterState<unknown>\n): string => `${reducerId}.${reducerIdSuffix}`;\n","import {\n createSearchFilterActions,\n createSearchFilterReducer,\n SearchFilterState,\n} from \"../redux/SearchFilterRedux\";\nimport { useReducer, useState } from \"react\";\n\nexport const useLocalSearchFilterState = <\n TFormModel,\n TSectionKey extends string\n>(\n initialState: SearchFilterState<TFormModel>\n) => {\n const [reducer] = useState(() =>\n createSearchFilterReducer<TFormModel>(\"local\", initialState)\n );\n\n const [actions] = useState(() =>\n createSearchFilterActions<TFormModel, TSectionKey>(\n \"local\",\n initialState.formModel\n )\n );\n\n const [state, dispatch] = useReducer(reducer, initialState);\n\n return {\n actions,\n state,\n dispatch,\n };\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { useLocalSearchFilterState } from \"../../hooks/UseLocalSearchFilterState\";\nimport { SearchFilterContext } from \"./SearchFilterContext\";\nimport { createSearchFilterInitialState } from \"../../redux/SearchFilterRedux\";\n\ninterface SearchFilterLocalScopeProps<TFormModel> {\n initialFormModel: TFormModel;\n}\n\nexport const SearchFilterLocalStateContext = function SearchFilterLocalScope<\n TFormModel\n>({\n initialFormModel,\n children,\n}: PropsWithChildren<SearchFilterLocalScopeProps<TFormModel>>) {\n const { state, actions, dispatch } = useLocalSearchFilterState(\n createSearchFilterInitialState(initialFormModel)\n );\n\n return (\n <SearchFilterContext state={state} actions={actions} dispatch={dispatch}>\n {children}\n </SearchFilterContext>\n );\n};\n","import styled from \"@emotion/styled\";\n\nexport const ChipSpacer = styled.div`\n padding: calc(var(--swui-metrics-spacing) / 2)\n calc(var(--swui-metrics-indent) / 2);\n`;\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { ChipSpacer } from \"./ChipSpacer\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\nimport { useSearchFilterDispatch } from \"../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../context/SearchFilterActionsContext\";\n\ninterface SearchFilterChipsProps {\n disableClearAllButton?: boolean;\n}\n\nexport const SearchFilterChips: React.FC<SearchFilterChipsProps> = ({\n children,\n disableClearAllButton = false,\n}) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const onClickClearAll = useCallback(\n () => dispatch(actions.clearFormModel()),\n [actions, dispatch]\n );\n\n return (\n <Row flexWrap={\"wrap\"}>\n {children}\n {!disableClearAllButton && (\n <ChipSpacer>\n <FlatButton\n size={\"small\"}\n label={\"Clear all\"}\n onClick={onClickClearAll}\n />\n </ChipSpacer>\n )}\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { Chip } from \"@stenajs-webui/elements\";\nimport { ChipSpacer } from \"./ChipSpacer\";\nimport { useSearchFilterDispatch } from \"../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../context/SearchFilterActionsContext\";\n\nexport interface SectionChipsProps<TFormModel, TSectionKey extends string> {\n sectionId: TSectionKey;\n chips?: Array<SearchFilterSectionChipModel>;\n emptyChipLabel?: string;\n onClickRemoveOnChip?: SearchFilterSectionOnClickRemoveOnChip<TFormModel>;\n disableChipClearButton?: boolean;\n}\n\nexport const SectionChips = function SectionChips<\n TFormModel,\n TSectionKey extends string\n>({\n sectionId,\n chips,\n emptyChipLabel,\n onClickRemoveOnChip,\n disableChipClearButton,\n}: SectionChipsProps<TFormModel, TSectionKey>) {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const setFormModelFields = useCallback(\n (fields: Partial<TFormModel>) =>\n dispatch(actions.setFormModelFields(fields)),\n [dispatch, actions]\n );\n\n const onClickRemove = useCallback(\n (value: string) => {\n onClickRemoveOnChip?.({ value, setFormModelFields });\n },\n [onClickRemoveOnChip, setFormModelFields]\n );\n\n const onClickLabel = useCallback(() => {\n dispatch(actions.clearExpandedSections());\n dispatch(actions.expandSection(sectionId));\n dispatch(actions.openFilters());\n }, [actions, dispatch, sectionId]);\n\n if (!chips?.length) {\n if (!emptyChipLabel) {\n return null;\n }\n return (\n <ChipSpacer>\n <Chip\n label={emptyChipLabel}\n variant={\"secondary\"}\n onClick={onClickLabel}\n />\n </ChipSpacer>\n );\n }\n\n return (\n <>\n {chips.map(({ label, value }) => (\n <ChipSpacer key={value}>\n <Chip\n label={label ?? sectionId}\n onClick={onClickLabel}\n onClickRemove={\n disableChipClearButton ? undefined : () => onClickRemove(value)\n }\n />\n </ChipSpacer>\n ))}\n </>\n );\n};\n","import { BooleanRecord, BooleanRecordOptions } from \"./BooleanRecordTypes\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { PickByValue, truthyKeysAsList } from \"@stenajs-webui/core\";\nimport { SectionChipsProps } from \"../../features/chips/SectionChips\";\n\nexport const createChipsPropsForBooleanRecord = <\n TFormModel,\n TSectionKey extends string,\n TField extends keyof PickByValue<TFormModel, BooleanRecord>\n>(\n formModel: TFormModel,\n fieldName: TField,\n options?: BooleanRecordOptions\n): Pick<\n SectionChipsProps<TFormModel, TSectionKey>,\n \"chips\" | \"onClickRemoveOnChip\"\n> => ({\n chips: createChipsForBooleanRecord(formModel[fieldName], options),\n onClickRemoveOnChip: createOnClickRemoveOnChipForBooleanRecord(\n formModel,\n fieldName\n ),\n});\n\nexport const createChipsForBooleanRecord = (\n booleanRecord: BooleanRecord,\n options?: BooleanRecordOptions\n): Array<SearchFilterSectionChipModel> =>\n truthyKeysAsList(booleanRecord).map((key) => {\n const option = options?.find((o) => o.value === key);\n return { value: key, label: option?.label ?? key };\n });\n\nexport const createOnClickRemoveOnChipForBooleanRecord = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, BooleanRecord>\n>(\n formModel: TFormModel,\n fieldName: TField\n): SearchFilterSectionOnClickRemoveOnChip<TFormModel> => {\n return ({ setFormModelFields, value }) => {\n const newRecord: BooleanRecord = { ...formModel[fieldName] };\n newRecord[value] = false;\n setFormModelFields(({\n [fieldName]: newRecord,\n } as unknown) as Partial<TFormModel>);\n };\n};\n","import * as React from \"react\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport { Column, Text } from \"@stenajs-webui/core\";\nimport { CollapsibleClickableContent } from \"@stenajs-webui/panels\";\nimport { Checkbox, ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport { BooleanRecord, BooleanRecordOptions } from \"../BooleanRecordTypes\";\n\nexport interface CheckboxSectionProps<TSectionKey extends string>\n extends SearchFilterSectionProps<TSectionKey>,\n ValueAndOnValueChangeProps<BooleanRecord> {\n options?: BooleanRecordOptions;\n}\n\nexport const SimpleCheckboxListSection = <TSectionKey extends string>({\n options,\n error,\n loading,\n sectionId,\n value,\n onValueChange,\n}: CheckboxSectionProps<TSectionKey>): React.ReactElement => (\n <SearchFilterSection\n sectionId={sectionId}\n loading={loading}\n error={error}\n disableContentPadding\n >\n <Column maxHeight={\"400px\"} overflowY={\"auto\"} flex={1}>\n {options?.map((d) => (\n <CollapsibleClickableContent\n key={d.value}\n onClick={() => {\n if (value && onValueChange) {\n const sel = !value[d.value];\n onValueChange({\n ...value,\n [d.value]: sel,\n });\n }\n }}\n contentLeft={<Checkbox tabIndex={-1} value={value?.[d.value]} />}\n >\n <Text>{d.label}</Text>\n </CollapsibleClickableContent>\n ))}\n </Column>\n </SearchFilterSection>\n);\n","import * as React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport { BooleanRecord, BooleanRecordOptions } from \"../BooleanRecordTypes\";\nimport { ChipMultiSelect, ChipMultiSelectValue } from \"@stenajs-webui/select\";\nimport { truthyKeysAsList } from \"@stenajs-webui/core\";\n\ninterface ChipMultiSelectSectionProps<TSectionKey extends string>\n extends SearchFilterSectionProps<TSectionKey>,\n ValueAndOnValueChangeProps<BooleanRecord> {\n options?: BooleanRecordOptions;\n}\n\nexport const ChipMultiSelectSection = <TSectionKey extends string>({\n options,\n error,\n loading,\n sectionId,\n value,\n onValueChange,\n}: ChipMultiSelectSectionProps<TSectionKey>): React.ReactElement => {\n const [text, setText] = useState<string>(\"\");\n\n const listValue = useMemo<Array<ChipMultiSelectValue>>(\n () =>\n value\n ? truthyKeysAsList(value).map<ChipMultiSelectValue>((key) => {\n const option = options?.find((o) => o.value === key);\n return { value: key, label: option?.label ?? key };\n })\n : [],\n [options, value]\n );\n\n const filteredOptions = useMemo(() => {\n return options?.filter(\n (p) =>\n p.value.toLocaleLowerCase().indexOf(text.toLocaleLowerCase()) > -1 ||\n p.label.toLocaleLowerCase().indexOf(text.toLocaleLowerCase()) > -1\n );\n }, [options, text]);\n\n const onValueChangeInternal = useCallback(\n (value: Array<ChipMultiSelectValue>) => {\n onValueChange?.(createBooleanRecordFromValue(value));\n },\n [onValueChange]\n );\n\n return (\n <SearchFilterSection sectionId={sectionId} loading={loading} error={error}>\n <ChipMultiSelect\n options={filteredOptions}\n value={listValue}\n onValueChange={onValueChangeInternal}\n inputValue={text}\n onInputChange={setText}\n />\n </SearchFilterSection>\n );\n};\n\nconst createBooleanRecordFromValue = (\n value: Array<ChipMultiSelectValue>\n): BooleanRecord => {\n return value.reduce<BooleanRecord>((sum, item) => {\n sum[item.value] = true;\n return sum;\n }, {});\n};\n","import { DateRange } from \"./DateRangeTypes\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { PickByValue } from \"@stenajs-webui/core\";\nimport { SectionChipsProps } from \"../../features/chips/SectionChips\";\n\nexport const createChipsPropsForDateRange = <\n TFormModel,\n TSectionKey extends string,\n TField extends keyof PickByValue<TFormModel, string | undefined>\n>(\n formModel: TFormModel,\n startDateFieldName: TField,\n endDateFieldName: TField\n): Pick<\n SectionChipsProps<TFormModel, TSectionKey>,\n \"chips\" | \"onClickRemoveOnChip\"\n> => ({\n chips: createChipsForDateRange(\n formModel[startDateFieldName],\n formModel[endDateFieldName]\n ),\n onClickRemoveOnChip: createOnClickRemoveOnChipForDateRange(\n startDateFieldName,\n endDateFieldName\n ),\n});\n\nexport const createChipsForDateRange = (\n startDate: string | undefined,\n endDate: string | undefined\n): Array<SearchFilterSectionChipModel> => {\n if (!startDate && !endDate) {\n return [];\n }\n return [\n { value: \"dateRange\", label: `${startDate ?? \"\"} - ${endDate ?? \"\"}` },\n ];\n};\n\nexport const createOnClickRemoveOnChipForDateRange = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, DateRange>\n>(\n startDateFieldName: TField,\n endDateFieldName: TField\n): SearchFilterSectionOnClickRemoveOnChip<TFormModel> => {\n return ({ setFormModelFields }) => {\n setFormModelFields(({\n [startDateFieldName]: undefined,\n [endDateFieldName]: undefined,\n } as unknown) as Partial<TFormModel>);\n };\n};\n","import { PickByValue } from \"@stenajs-webui/core\";\nimport { DateRangeCalendarSectionProps } from \"./components/DateRangeCalendarSection\";\n\nexport const createDateRangeSectionProps = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, string | undefined>,\n TSectionKey extends string\n>(\n formModel: TFormModel,\n startDateFieldName: TField,\n endDateFieldName: TField\n): Pick<\n DateRangeCalendarSectionProps<TFormModel, TSectionKey>,\n \"value\" | \"onValueChange\"\n> => ({\n value: {\n startDate: formModel[startDateFieldName],\n endDate: formModel[endDateFieldName],\n },\n onValueChange: (value, { dispatch, actions }) => {\n const fields: Partial<TFormModel> = {\n [startDateFieldName]: value.startDate,\n [endDateFieldName]: value.endDate,\n } as any;\n dispatch(actions.setFormModelFields(fields));\n },\n});\n","import {\n DateRangeCalendar,\n DateRangeCalendarProps,\n DateRangeFocusedInput,\n} from \"@stenajs-webui/calendar\";\nimport * as React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { format, parse } from \"date-fns\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport {\n SearchFilterActions,\n SearchFilterDispatch,\n} from \"../../../redux/SearchFilterRedux\";\nimport { useSearchFilterDispatch } from \"../../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../../context/SearchFilterActionsContext\";\n\ninterface DateRangeCalendarSectionOnChangeValue {\n startDate?: string;\n endDate?: string;\n}\n\nexport interface DateRangeCalendarSectionProps<\n TFormModel,\n TSectionKey extends string\n> extends SearchFilterSectionProps<TSectionKey>,\n Omit<\n DateRangeCalendarProps<{}>,\n | \"focusedInput\"\n | \"setFocusedInput\"\n | \"startDate\"\n | \"endDate\"\n | \"onChange\"\n | \"setStartDate\"\n | \"setEndDate\"\n > {\n value: DateRangeCalendarSectionOnChangeValue;\n onValueChange: (\n value: DateRangeCalendarSectionOnChangeValue,\n options: SetDateOptions<TFormModel, TSectionKey>\n ) => void;\n}\n\nexport interface SetDateOptions<TFormModel, TSectionKey extends string> {\n dispatch: SearchFilterDispatch<TFormModel>;\n actions: SearchFilterActions<TFormModel, TSectionKey>;\n}\n\nexport const DateRangeCalendarSection = <\n TFormModel,\n TSectionKey extends string\n>({\n value,\n onValueChange,\n sectionId,\n ...dateRangeCalendarProps\n}: DateRangeCalendarSectionProps<TFormModel, TSectionKey>) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions<TFormModel, TSectionKey>();\n\n const options = useMemo<SetDateOptions<TFormModel, TSectionKey>>(\n () => ({ dispatch, actions }),\n [actions, dispatch]\n );\n const [focusedInput, setFocusedInput] = useState<DateRangeFocusedInput>(\n \"startDate\"\n );\n\n const { startDate, endDate } = value ?? {};\n\n const startDateObj = useMemo(\n () => (startDate ? parse(startDate, \"yyyy-MM-dd\", new Date()) : undefined),\n [startDate]\n );\n\n const endDateObj = useMemo(\n () => (endDate ? parse(endDate, \"yyyy-MM-dd\", new Date()) : undefined),\n [endDate]\n );\n\n const setStartDate = useCallback(\n (startDate: Date) => {\n onValueChange(\n { startDate: format(startDate, \"yyyy-MM-dd\"), endDate },\n options\n );\n },\n [endDate, onValueChange, options]\n );\n\n const setEndDate = useCallback(\n (endDate: Date) => {\n onValueChange(\n { startDate, endDate: format(endDate, \"yyyy-MM-dd\") },\n options\n );\n },\n [onValueChange, options, startDate]\n );\n\n return (\n <SearchFilterSection sectionId={sectionId}>\n <Box flex={1} alignItems={\"center\"}>\n <Box background={\"white\"} indent>\n <DateRangeCalendar\n setFocusedInput={setFocusedInput}\n focusedInput={focusedInput}\n startDate={startDateObj}\n endDate={endDateObj}\n setStartDate={setStartDate}\n setEndDate={setEndDate}\n {...dateRangeCalendarProps}\n />\n </Box>\n </Box>\n </SearchFilterSection>\n );\n};\n"],"names":["React","Row","Icon","faSlidersH","cssColor","Indent","Heading","FlatButton","faTimes","createContext","useContext","useCallback","Drawer","Column","SecondaryButton","Collapsible","CollapsibleContent","Spinner","Banner","upperFirst","lowerCase","combineReducers","reducerIdGate","createValueByIdReducer","createEntityReducer","reducerIdGateAction","createEntityActions","createValueByIdActions","useState","useReducer","styled","Chip","truthyKeysAsList","CollapsibleClickableContent","Checkbox","Text","useMemo","ChipMultiSelect","parse","format","Box","DateRangeCalendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/features/search-filter/components/SearchFilterPanelHeader.tsx","../src/features/search-filter/context/SearchFilterStateContext.ts","../src/features/search-filter/context/SearchFilterDispatchContext.ts","../src/features/search-filter/context/SearchFilterActionsContext.ts","../src/features/search-filter/components/SearchFilterDrawer.tsx","../src/features/search-filter/components/SearchFilterButton.tsx","../src/features/search-filter/components/SearchFilterSection.tsx","../src/features/search-filter/context/SearchFilterModelContext.ts","../src/features/search-filter/components/context/SearchFilterContext.tsx","../src/features/search-filter/redux/SearchFilterRedux.ts","../src/features/search-filter/hooks/UseLocalSearchFilterState.ts","../src/features/search-filter/components/context/SearchFilterLocalStateContext.tsx","../src/features/search-filter/features/chips/ChipSpacer.tsx","../src/features/search-filter/features/chips/SearchFilterChips.tsx","../src/features/search-filter/features/chips/SectionChips.tsx","../src/features/search-filter/section-factories/boolean-record/BooleanRecordChips.ts","../src/features/search-filter/section-factories/boolean-record/components/SimpleCheckboxListSection.tsx","../src/features/search-filter/section-factories/boolean-record/components/ChipMultiSelectSection.tsx","../src/features/search-filter/section-factories/date-range/DateRangeChips.ts","../src/features/search-filter/section-factories/date-range/DateRangePropsFactory.ts","../src/features/search-filter/section-factories/date-range/components/DateRangeCalendarSection.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Heading, Indent, Row } from \"@stenajs-webui/core\";\nimport { FlatButton, Icon } from \"@stenajs-webui/elements\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons/faTimes\";\nimport { faSlidersH } from \"@fortawesome/free-solid-svg-icons/faSlidersH\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\ninterface SearchFilterPanelHeaderProps {\n onRequestClose: () => void;\n}\n\nexport const SearchFilterPanelHeader: React.FC<SearchFilterPanelHeaderProps> = ({\n onRequestClose,\n}) => {\n return (\n <Row\n height={\"48px\"}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n indent={2}\n >\n <Row alignItems={\"center\"}>\n <Icon\n icon={faSlidersH}\n color={cssColor(\"--lhds-color-ui-500\")}\n size={12}\n />\n <Indent />\n <Heading variant={\"h4\"}>Filters</Heading>\n </Row>\n <FlatButton leftIcon={faTimes} onClick={onRequestClose} />\n </Row>\n );\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterState } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterStateContext = createContext<\n SearchFilterState<unknown>\n>((null as unknown) as SearchFilterState<unknown>);\n\nexport const useSearchFilterState = <\n TFormModel\n>(): SearchFilterState<TFormModel> => {\n const c = useContext(SearchFilterStateContext);\n if (!c) {\n throw new Error(\n \"Missing search filter context, wrap components with SearchFilterContext component.\"\n );\n }\n return c as SearchFilterState<TFormModel>;\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterDispatch } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterDispatchContext = createContext<\n SearchFilterDispatch<unknown>\n>((null as unknown) as SearchFilterDispatch<unknown>);\n\nexport const useSearchFilterDispatch = () => {\n const c = useContext(SearchFilterDispatchContext);\n if (!c) {\n throw new Error(\"Missing search filter dispatch context.\");\n }\n return c;\n};\n","import { createContext, useContext } from \"react\";\nimport { SearchFilterActions } from \"../redux/SearchFilterRedux\";\n\nexport const SearchFilterActionsContext = createContext<\n SearchFilterActions<unknown, any>\n>((null as unknown) as SearchFilterActions<unknown, any>);\n\nexport const useSearchFilterActions = <\n TFormModel,\n TSectionKey extends string\n>() => {\n const c = useContext(SearchFilterActionsContext);\n if (!c) {\n throw new Error(\"Missing search filter actions context.\");\n }\n return c as SearchFilterActions<TFormModel, TSectionKey>;\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Drawer, DrawerProps } from \"@stenajs-webui/modal\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { Column } from \"@stenajs-webui/core\";\nimport { SearchFilterPanelHeader } from \"./SearchFilterPanelHeader\";\nimport { useSearchFilterState } from \"../context/SearchFilterStateContext\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\ninterface SearchFilterDrawerProps\n extends Omit<DrawerProps, \"isOpen\" | \"onRequestClose\"> {}\n\nexport const SearchFilterDrawer: React.FC<SearchFilterDrawerProps> = ({\n children,\n ...drawerProps\n}) => {\n const {\n settings: { open },\n } = useSearchFilterState();\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const closeDrawer = useCallback(() => {\n dispatch(actions.closeFilters());\n }, [actions, dispatch]);\n\n return (\n <Drawer\n background={cssColor(\"--lhds-color-ui-50\")}\n width={\"370px\"}\n isOpen={open}\n onRequestClose={closeDrawer}\n {...drawerProps}\n >\n <Column>\n <SearchFilterPanelHeader onRequestClose={closeDrawer} />\n {children}\n </Column>\n </Drawer>\n );\n};\n","import { faSlidersH } from \"@fortawesome/free-solid-svg-icons/faSlidersH\";\nimport { SecondaryButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\ninterface SearchFilterDrawerButtonProps {\n label?: string;\n}\n\nexport const SearchFilterButton: React.VFC<SearchFilterDrawerButtonProps> = ({\n label = \"Filters\",\n}) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const onClickButton = useCallback(() => {\n dispatch(actions.openFilters());\n }, [actions, dispatch]);\n\n return (\n <SecondaryButton\n label={label}\n leftIcon={faSlidersH}\n onClick={onClickButton}\n />\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, useCallback } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { Collapsible, CollapsibleContent } from \"@stenajs-webui/panels\";\nimport { lowerCase, upperFirst } from \"lodash\";\nimport { Banner, FlatButton, Spinner } from \"@stenajs-webui/elements\";\nimport { useSearchFilterState } from \"../context/SearchFilterStateContext\";\nimport { useSearchFilterDispatch } from \"../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../context/SearchFilterActionsContext\";\n\nexport interface SearchFilterSectionProps<TSectionKey extends string> {\n sectionId: TSectionKey;\n contentLeft?: React.ReactNode;\n contentRight?: React.ReactNode;\n disableContentPadding?: boolean;\n loading?: boolean;\n error?: string;\n onRetry?: () => void;\n label?: string;\n}\n\nexport const SearchFilterSection = function SearchFilterSection<\n TSectionKey extends string\n>({\n sectionId,\n label,\n contentLeft,\n contentRight,\n loading,\n error,\n onRetry,\n disableContentPadding,\n children,\n}: PropsWithChildren<SearchFilterSectionProps<TSectionKey>>) {\n const state = useSearchFilterState();\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const expanded = state.expandedSections.values[sectionId] ?? false;\n\n const onClickLabel = useCallback(() => {\n dispatch(actions.setSectionExpanded(sectionId, !expanded));\n }, [actions, dispatch, expanded, sectionId]);\n\n const activeLabel = label ?? formatColumnIdToHeaderCellLabel(sectionId);\n\n return (\n <Collapsible\n label={activeLabel}\n collapsed={!expanded}\n onClick={onClickLabel}\n contentLeft={contentLeft}\n contentRight={contentRight}\n >\n {loading ? (\n <CollapsibleContent>\n <Row spacing justifyContent={\"center\"} flex={1}>\n <Spinner size={\"small\"} />\n </Row>\n </CollapsibleContent>\n ) : error ? (\n <Banner\n variant={\"error\"}\n text={error}\n contentRight={\n onRetry ? <FlatButton label={\"Retry\"} onClick={onRetry} /> : null\n }\n />\n ) : disableContentPadding ? (\n children\n ) : (\n <CollapsibleContent>{children}</CollapsibleContent>\n )}\n </Collapsible>\n );\n};\n\nexport const formatColumnIdToHeaderCellLabel = (columnId: string): string =>\n upperFirst(lowerCase(columnId));\n","import { createContext, useContext } from \"react\";\n\nexport const SearchFilterModelContext = createContext<unknown>(null as unknown);\n\nexport const useSearchFilterModel = <TFormModel>(): TFormModel => {\n const c = useContext(SearchFilterModelContext);\n if (!c) {\n throw new Error(\n \"Missing search filter context, wrap components with SearchFilterContext component.\"\n );\n }\n return c as TFormModel;\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport {\n SearchFilterActions,\n SearchFilterDispatch,\n SearchFilterState,\n} from \"../../redux/SearchFilterRedux\";\nimport { SearchFilterDispatchContext } from \"../../context/SearchFilterDispatchContext\";\nimport { SearchFilterActionsContext } from \"../../context/SearchFilterActionsContext\";\nimport { SearchFilterStateContext } from \"../../context/SearchFilterStateContext\";\nimport { SearchFilterModelContext } from \"../../context/SearchFilterModelContext\";\n\ninterface SearchFilterScopeProps<TFormModel, TSectionKey extends string> {\n state: SearchFilterState<TFormModel>;\n dispatch: SearchFilterDispatch<TFormModel>;\n actions: SearchFilterActions<TFormModel, TSectionKey>;\n}\n\nexport const SearchFilterContext = function SearchFilterScope<\n TFormModel,\n TSectionKey extends string\n>({\n state,\n dispatch,\n actions,\n children,\n}: PropsWithChildren<SearchFilterScopeProps<TFormModel, TSectionKey>>) {\n return (\n <SearchFilterDispatchContext.Provider\n value={dispatch as SearchFilterDispatch<unknown>}\n >\n <SearchFilterActionsContext.Provider value={actions}>\n <SearchFilterStateContext.Provider value={state}>\n <SearchFilterModelContext.Provider value={state.formModel}>\n {children}\n </SearchFilterModelContext.Provider>\n </SearchFilterStateContext.Provider>\n </SearchFilterActionsContext.Provider>\n </SearchFilterDispatchContext.Provider>\n );\n};\n","import { combineReducers } from \"redux\";\nimport {\n createEntityActions,\n createEntityReducer,\n createValueByIdActions,\n createValueByIdReducer,\n EntityAction,\n EntityState,\n reducerIdGate,\n reducerIdGateAction,\n ReducerIdGateAction,\n ValueByIdAction,\n ValueByIdState,\n} from \"@stenajs-webui/redux\";\nimport { Dispatch } from \"react\";\n\nexport interface SearchFilterSettings {\n open: boolean;\n}\n\nexport type SearchFilterDispatch<TFormModel> = Dispatch<\n SearchFilterAction<TFormModel>\n>;\n\nexport interface SearchFilterState<TFormModel> {\n expandedSections: ValueByIdState<boolean>;\n formModel: EntityState<TFormModel>;\n settings: EntityState<SearchFilterSettings>;\n}\n\nexport type SearchFilterAction<TFormModel> =\n | ReducerIdGateAction<ValueByIdAction<boolean>>\n | ReducerIdGateAction<EntityAction<TFormModel>>\n | ReducerIdGateAction<EntityAction<SearchFilterSettings>>;\n\nexport const createSearchFilterInitialState = <TFormModel>(\n initialFormModel: TFormModel\n): SearchFilterState<TFormModel> => ({\n settings: {\n open: false,\n },\n formModel: initialFormModel,\n expandedSections: { values: {} },\n});\n\nexport const createSearchFilterReducer = <TFormModel>(\n reducerId: string,\n initialState: SearchFilterState<TFormModel>\n) =>\n combineReducers({\n expandedSections: reducerIdGate(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdReducer<boolean>(initialState.expandedSections)\n ),\n formModel: reducerIdGate(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityReducer<TFormModel>(initialState.formModel)\n ),\n settings: reducerIdGate(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityReducer<SearchFilterSettings>(initialState.settings)\n ),\n });\n\nexport interface SearchFilterActions<TFormModel, TSectionKey extends string> {\n openFilters: () => SearchFilterAction<TFormModel>;\n closeFilters: () => SearchFilterAction<TFormModel>;\n setFormModelFields: (\n fields: Partial<TFormModel>\n ) => SearchFilterAction<TFormModel>;\n clearFormModel: () => SearchFilterAction<TFormModel>;\n expandSection: (section: TSectionKey) => SearchFilterAction<TFormModel>;\n collapseSection: (section: TSectionKey) => SearchFilterAction<TFormModel>;\n setSectionExpanded: (\n section: TSectionKey,\n expanded: boolean\n ) => SearchFilterAction<TFormModel>;\n clearExpandedSections: () => SearchFilterAction<TFormModel>;\n}\n\nexport const createSearchFilterActions = <\n TFormModel,\n TSectionKey extends string\n>(\n reducerId: string,\n initialFormModel: TFormModel\n): SearchFilterActions<TFormModel, TSectionKey> => ({\n openFilters: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityActions<SearchFilterSettings>().setEntityFields({\n open: true,\n })\n ),\n closeFilters: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"settings\"),\n createEntityActions<SearchFilterSettings>().setEntityFields({\n open: false,\n })\n ),\n setFormModelFields: (fields: Partial<TFormModel>) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityActions<TFormModel>().setEntityFields(fields)\n ),\n clearFormModel: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"formModel\"),\n createEntityActions<TFormModel>().setEntity(initialFormModel)\n ),\n expandSection: (section: TSectionKey) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, true)\n ),\n collapseSection: (section: TSectionKey) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, false)\n ),\n setSectionExpanded: (section: TSectionKey, expanded: boolean) =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().setValue(section, expanded)\n ),\n clearExpandedSections: () =>\n reducerIdGateAction(\n getReducerIdFor(reducerId, \"expandedSections\"),\n createValueByIdActions<boolean>().clearAllValues()\n ),\n});\n\nexport const getReducerIdFor = (\n reducerId: string,\n reducerIdSuffix: keyof SearchFilterState<unknown>\n): string => `${reducerId}.${reducerIdSuffix}`;\n","import {\n createSearchFilterActions,\n createSearchFilterReducer,\n SearchFilterState,\n} from \"../redux/SearchFilterRedux\";\nimport { useReducer, useState } from \"react\";\n\nexport const useLocalSearchFilterState = <\n TFormModel,\n TSectionKey extends string\n>(\n initialState: SearchFilterState<TFormModel>\n) => {\n const [reducer] = useState(() =>\n createSearchFilterReducer<TFormModel>(\"local\", initialState)\n );\n\n const [actions] = useState(() =>\n createSearchFilterActions<TFormModel, TSectionKey>(\n \"local\",\n initialState.formModel\n )\n );\n\n const [state, dispatch] = useReducer(reducer, initialState);\n\n return {\n actions,\n state,\n dispatch,\n };\n};\n","import * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\nimport { useLocalSearchFilterState } from \"../../hooks/UseLocalSearchFilterState\";\nimport { SearchFilterContext } from \"./SearchFilterContext\";\nimport { createSearchFilterInitialState } from \"../../redux/SearchFilterRedux\";\n\ninterface SearchFilterLocalScopeProps<TFormModel> {\n initialFormModel: TFormModel;\n}\n\nexport const SearchFilterLocalStateContext = function SearchFilterLocalScope<\n TFormModel\n>({\n initialFormModel,\n children,\n}: PropsWithChildren<SearchFilterLocalScopeProps<TFormModel>>) {\n const { state, actions, dispatch } = useLocalSearchFilterState(\n createSearchFilterInitialState(initialFormModel)\n );\n\n return (\n <SearchFilterContext state={state} actions={actions} dispatch={dispatch}>\n {children}\n </SearchFilterContext>\n );\n};\n","import styled from \"@emotion/styled\";\n\nexport const ChipSpacer = styled.div`\n padding: calc(var(--swui-metrics-spacing) / 2)\n calc(var(--swui-metrics-indent) / 2);\n`;\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { Row } from \"@stenajs-webui/core\";\nimport { ChipSpacer } from \"./ChipSpacer\";\nimport { FlatButton } from \"@stenajs-webui/elements\";\nimport { useSearchFilterDispatch } from \"../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../context/SearchFilterActionsContext\";\n\ninterface SearchFilterChipsProps {\n disableClearAllButton?: boolean;\n}\n\nexport const SearchFilterChips: React.FC<SearchFilterChipsProps> = ({\n children,\n disableClearAllButton = false,\n}) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const onClickClearAll = useCallback(\n () => dispatch(actions.clearFormModel()),\n [actions, dispatch]\n );\n\n return (\n <Row flexWrap={\"wrap\"}>\n {children}\n {!disableClearAllButton && (\n <ChipSpacer>\n <FlatButton\n size={\"small\"}\n label={\"Clear all\"}\n onClick={onClickClearAll}\n />\n </ChipSpacer>\n )}\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { useCallback } from \"react\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { Chip } from \"@stenajs-webui/elements\";\nimport { ChipSpacer } from \"./ChipSpacer\";\nimport { useSearchFilterDispatch } from \"../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../context/SearchFilterActionsContext\";\n\nexport interface SectionChipsProps<TFormModel, TSectionKey extends string> {\n sectionId: TSectionKey;\n chips?: Array<SearchFilterSectionChipModel>;\n emptyChipLabel?: string;\n onClickRemoveOnChip?: SearchFilterSectionOnClickRemoveOnChip<TFormModel>;\n disableChipClearButton?: boolean;\n}\n\nexport const SectionChips = function SectionChips<\n TFormModel,\n TSectionKey extends string\n>({\n sectionId,\n chips,\n emptyChipLabel,\n onClickRemoveOnChip,\n disableChipClearButton,\n}: SectionChipsProps<TFormModel, TSectionKey>) {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions();\n\n const setFormModelFields = useCallback(\n (fields: Partial<TFormModel>) =>\n dispatch(actions.setFormModelFields(fields)),\n [dispatch, actions]\n );\n\n const onClickRemove = useCallback(\n (value: string) => {\n onClickRemoveOnChip?.({ value, setFormModelFields });\n },\n [onClickRemoveOnChip, setFormModelFields]\n );\n\n const onClickLabel = useCallback(() => {\n dispatch(actions.clearExpandedSections());\n dispatch(actions.expandSection(sectionId));\n dispatch(actions.openFilters());\n }, [actions, dispatch, sectionId]);\n\n if (!chips?.length) {\n if (!emptyChipLabel) {\n return null;\n }\n return (\n <ChipSpacer>\n <Chip\n label={emptyChipLabel}\n variant={\"secondary\"}\n onClick={onClickLabel}\n />\n </ChipSpacer>\n );\n }\n\n return (\n <>\n {chips.map(({ label, value }) => (\n <ChipSpacer key={value}>\n <Chip\n label={label ?? sectionId}\n onClick={onClickLabel}\n onClickRemove={\n disableChipClearButton ? undefined : () => onClickRemove(value)\n }\n />\n </ChipSpacer>\n ))}\n </>\n );\n};\n","import { BooleanRecord, BooleanRecordOptions } from \"./BooleanRecordTypes\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { PickByValue, truthyKeysAsList } from \"@stenajs-webui/core\";\nimport { SectionChipsProps } from \"../../features/chips/SectionChips\";\n\nexport const createChipsPropsForBooleanRecord = <\n TFormModel,\n TSectionKey extends string,\n TField extends keyof PickByValue<TFormModel, BooleanRecord>\n>(\n formModel: TFormModel,\n fieldName: TField,\n options?: BooleanRecordOptions\n): Pick<\n SectionChipsProps<TFormModel, TSectionKey>,\n \"chips\" | \"onClickRemoveOnChip\"\n> => ({\n chips: createChipsForBooleanRecord(formModel[fieldName], options),\n onClickRemoveOnChip: createOnClickRemoveOnChipForBooleanRecord(\n formModel,\n fieldName\n ),\n});\n\nexport const createChipsForBooleanRecord = (\n booleanRecord: BooleanRecord,\n options?: BooleanRecordOptions\n): Array<SearchFilterSectionChipModel> =>\n truthyKeysAsList(booleanRecord).map((key) => {\n const option = options?.find((o) => o.value === key);\n return { value: key, label: option?.label ?? key };\n });\n\nexport const createOnClickRemoveOnChipForBooleanRecord = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, BooleanRecord>\n>(\n formModel: TFormModel,\n fieldName: TField\n): SearchFilterSectionOnClickRemoveOnChip<TFormModel> => {\n return ({ setFormModelFields, value }) => {\n const newRecord: BooleanRecord = { ...formModel[fieldName] };\n newRecord[value] = false;\n setFormModelFields(({\n [fieldName]: newRecord,\n } as unknown) as Partial<TFormModel>);\n };\n};\n","import * as React from \"react\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport { Column, Text } from \"@stenajs-webui/core\";\nimport { CollapsibleClickableContent } from \"@stenajs-webui/panels\";\nimport { Checkbox, ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport { BooleanRecord, BooleanRecordOptions } from \"../BooleanRecordTypes\";\n\nexport interface SimpleCheckboxSectionProps<TSectionKey extends string>\n extends SearchFilterSectionProps<TSectionKey>,\n ValueAndOnValueChangeProps<BooleanRecord> {\n options?: BooleanRecordOptions;\n}\n\nexport const SimpleCheckboxListSection = <TSectionKey extends string>({\n options,\n value,\n onValueChange,\n ...sectionProps\n}: SimpleCheckboxSectionProps<TSectionKey>): React.ReactElement => (\n <SearchFilterSection disableContentPadding {...sectionProps}>\n <Column maxHeight={\"400px\"} overflowY={\"auto\"} flex={1}>\n {options?.map((d) => (\n <CollapsibleClickableContent\n key={d.value}\n onClick={() => {\n if (value && onValueChange) {\n const sel = !value[d.value];\n onValueChange({\n ...value,\n [d.value]: sel,\n });\n }\n }}\n contentLeft={<Checkbox tabIndex={-1} value={value?.[d.value]} />}\n >\n <Text>{d.label}</Text>\n </CollapsibleClickableContent>\n ))}\n </Column>\n </SearchFilterSection>\n);\n","import * as React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport { BooleanRecord, BooleanRecordOptions } from \"../BooleanRecordTypes\";\nimport { ChipMultiSelect, ChipMultiSelectValue } from \"@stenajs-webui/select\";\nimport { truthyKeysAsList } from \"@stenajs-webui/core\";\n\ninterface ChipMultiSelectSectionProps<TSectionKey extends string>\n extends SearchFilterSectionProps<TSectionKey>,\n ValueAndOnValueChangeProps<BooleanRecord> {\n options?: BooleanRecordOptions;\n}\n\nexport const ChipMultiSelectSection = <TSectionKey extends string>({\n options,\n value,\n onValueChange,\n ...sectionProps\n}: ChipMultiSelectSectionProps<TSectionKey>): React.ReactElement => {\n const [text, setText] = useState<string>(\"\");\n\n const listValue = useMemo<Array<ChipMultiSelectValue>>(\n () =>\n value\n ? truthyKeysAsList(value).map<ChipMultiSelectValue>((key) => {\n const option = options?.find((o) => o.value === key);\n return { value: key, label: option?.label ?? key };\n })\n : [],\n [options, value]\n );\n\n const filteredOptions = useMemo(() => {\n return options?.filter(\n (p) =>\n p.value.toLocaleLowerCase().indexOf(text.toLocaleLowerCase()) > -1 ||\n p.label.toLocaleLowerCase().indexOf(text.toLocaleLowerCase()) > -1\n );\n }, [options, text]);\n\n const onValueChangeInternal = useCallback(\n (value: Array<ChipMultiSelectValue>) => {\n onValueChange?.(createBooleanRecordFromValue(value));\n },\n [onValueChange]\n );\n\n return (\n <SearchFilterSection {...sectionProps}>\n <ChipMultiSelect\n options={filteredOptions}\n value={listValue}\n onValueChange={onValueChangeInternal}\n inputValue={text}\n onInputChange={setText}\n />\n </SearchFilterSection>\n );\n};\n\nconst createBooleanRecordFromValue = (\n value: Array<ChipMultiSelectValue>\n): BooleanRecord => {\n return value.reduce<BooleanRecord>((sum, item) => {\n sum[item.value] = true;\n return sum;\n }, {});\n};\n","import { DateRange } from \"./DateRangeTypes\";\nimport {\n SearchFilterSectionChipModel,\n SearchFilterSectionOnClickRemoveOnChip,\n} from \"../../config/SearchFilterConfig\";\nimport { PickByValue } from \"@stenajs-webui/core\";\nimport { SectionChipsProps } from \"../../features/chips/SectionChips\";\n\nexport const createChipsPropsForDateRange = <\n TFormModel,\n TSectionKey extends string,\n TField extends keyof PickByValue<TFormModel, string | undefined>\n>(\n formModel: TFormModel,\n startDateFieldName: TField,\n endDateFieldName: TField\n): Pick<\n SectionChipsProps<TFormModel, TSectionKey>,\n \"chips\" | \"onClickRemoveOnChip\"\n> => ({\n chips: createChipsForDateRange(\n formModel[startDateFieldName],\n formModel[endDateFieldName]\n ),\n onClickRemoveOnChip: createOnClickRemoveOnChipForDateRange(\n startDateFieldName,\n endDateFieldName\n ),\n});\n\nexport const createChipsForDateRange = (\n startDate: string | undefined,\n endDate: string | undefined\n): Array<SearchFilterSectionChipModel> => {\n if (!startDate && !endDate) {\n return [];\n }\n return [\n { value: \"dateRange\", label: `${startDate ?? \"\"} - ${endDate ?? \"\"}` },\n ];\n};\n\nexport const createOnClickRemoveOnChipForDateRange = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, DateRange>\n>(\n startDateFieldName: TField,\n endDateFieldName: TField\n): SearchFilterSectionOnClickRemoveOnChip<TFormModel> => {\n return ({ setFormModelFields }) => {\n setFormModelFields(({\n [startDateFieldName]: undefined,\n [endDateFieldName]: undefined,\n } as unknown) as Partial<TFormModel>);\n };\n};\n","import { PickByValue } from \"@stenajs-webui/core\";\nimport { DateRangeCalendarSectionProps } from \"./components/DateRangeCalendarSection\";\n\nexport const createDateRangeSectionProps = <\n TFormModel,\n TField extends keyof PickByValue<TFormModel, string | undefined>,\n TSectionKey extends string\n>(\n formModel: TFormModel,\n startDateFieldName: TField,\n endDateFieldName: TField\n): Pick<\n DateRangeCalendarSectionProps<TFormModel, TSectionKey>,\n \"value\" | \"onValueChange\"\n> => ({\n value: {\n startDate: formModel[startDateFieldName],\n endDate: formModel[endDateFieldName],\n },\n onValueChange: (value, { dispatch, actions }) => {\n const fields: Partial<TFormModel> = {\n [startDateFieldName]: value.startDate,\n [endDateFieldName]: value.endDate,\n } as any;\n dispatch(actions.setFormModelFields(fields));\n },\n});\n","import {\n DateRangeCalendar,\n DateRangeCalendarProps,\n DateRangeFocusedInput,\n} from \"@stenajs-webui/calendar\";\nimport * as React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { format, parse } from \"date-fns\";\nimport {\n SearchFilterSection,\n SearchFilterSectionProps,\n} from \"../../../components/SearchFilterSection\";\nimport {\n SearchFilterActions,\n SearchFilterDispatch,\n} from \"../../../redux/SearchFilterRedux\";\nimport { useSearchFilterDispatch } from \"../../../context/SearchFilterDispatchContext\";\nimport { useSearchFilterActions } from \"../../../context/SearchFilterActionsContext\";\n\ninterface DateRangeCalendarSectionOnChangeValue {\n startDate?: string;\n endDate?: string;\n}\n\nexport interface DateRangeCalendarSectionProps<\n TFormModel,\n TSectionKey extends string\n> extends SearchFilterSectionProps<TSectionKey>,\n Omit<\n DateRangeCalendarProps<{}>,\n | \"focusedInput\"\n | \"setFocusedInput\"\n | \"startDate\"\n | \"endDate\"\n | \"onChange\"\n | \"setStartDate\"\n | \"setEndDate\"\n > {\n value: DateRangeCalendarSectionOnChangeValue;\n onValueChange: (\n value: DateRangeCalendarSectionOnChangeValue,\n options: SetDateOptions<TFormModel, TSectionKey>\n ) => void;\n}\n\nexport interface SetDateOptions<TFormModel, TSectionKey extends string> {\n dispatch: SearchFilterDispatch<TFormModel>;\n actions: SearchFilterActions<TFormModel, TSectionKey>;\n}\n\nexport const DateRangeCalendarSection = <\n TFormModel,\n TSectionKey extends string\n>({\n value,\n onValueChange,\n sectionId,\n ...dateRangeCalendarProps\n}: DateRangeCalendarSectionProps<TFormModel, TSectionKey>) => {\n const dispatch = useSearchFilterDispatch();\n const actions = useSearchFilterActions<TFormModel, TSectionKey>();\n\n const options = useMemo<SetDateOptions<TFormModel, TSectionKey>>(\n () => ({ dispatch, actions }),\n [actions, dispatch]\n );\n const [focusedInput, setFocusedInput] = useState<DateRangeFocusedInput>(\n \"startDate\"\n );\n\n const { startDate, endDate } = value ?? {};\n\n const startDateObj = useMemo(\n () => (startDate ? parse(startDate, \"yyyy-MM-dd\", new Date()) : undefined),\n [startDate]\n );\n\n const endDateObj = useMemo(\n () => (endDate ? parse(endDate, \"yyyy-MM-dd\", new Date()) : undefined),\n [endDate]\n );\n\n const setStartDate = useCallback(\n (startDate: Date) => {\n onValueChange(\n { startDate: format(startDate, \"yyyy-MM-dd\"), endDate },\n options\n );\n },\n [endDate, onValueChange, options]\n );\n\n const setEndDate = useCallback(\n (endDate: Date) => {\n onValueChange(\n { startDate, endDate: format(endDate, \"yyyy-MM-dd\") },\n options\n );\n },\n [onValueChange, options, startDate]\n );\n\n return (\n <SearchFilterSection sectionId={sectionId}>\n <Box flex={1} alignItems={\"center\"}>\n <Box background={\"white\"} indent>\n <DateRangeCalendar\n setFocusedInput={setFocusedInput}\n focusedInput={focusedInput}\n startDate={startDateObj}\n endDate={endDateObj}\n setStartDate={setStartDate}\n setEndDate={setEndDate}\n {...dateRangeCalendarProps}\n />\n </Box>\n </Box>\n </SearchFilterSection>\n );\n};\n"],"names":["React","Row","Icon","faSlidersH","cssColor","Indent","Heading","FlatButton","faTimes","createContext","useContext","useCallback","Drawer","Column","SecondaryButton","Collapsible","CollapsibleContent","Spinner","Banner","upperFirst","lowerCase","combineReducers","reducerIdGate","createValueByIdReducer","createEntityReducer","reducerIdGateAction","createEntityActions","createValueByIdActions","useState","useReducer","styled","Chip","truthyKeysAsList","CollapsibleClickableContent","Checkbox","Text","useMemo","ChipMultiSelect","parse","format","Box","DateRangeCalendar"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/filter",
|
|
3
|
-
"version": "15.0.0-alpha.
|
|
3
|
+
"version": "15.0.0-alpha.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "mattias800",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,16 +27,16 @@
|
|
|
27
27
|
"deploy": "gh-pages -d example/build"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@stenajs-webui/calendar": "15.0.0-alpha.
|
|
31
|
-
"@stenajs-webui/core": "15.0.0-alpha.
|
|
32
|
-
"@stenajs-webui/elements": "15.0.0-alpha.
|
|
33
|
-
"@stenajs-webui/forms": "15.0.0-alpha.
|
|
34
|
-
"@stenajs-webui/modal": "15.0.0-alpha.
|
|
35
|
-
"@stenajs-webui/panels": "15.0.0-alpha.
|
|
36
|
-
"@stenajs-webui/redux": "15.0.0-alpha.
|
|
37
|
-
"@stenajs-webui/select": "15.0.0-alpha.
|
|
38
|
-
"@stenajs-webui/theme": "15.0.0-alpha.
|
|
39
|
-
"date-fns": "2.
|
|
30
|
+
"@stenajs-webui/calendar": "15.0.0-alpha.4",
|
|
31
|
+
"@stenajs-webui/core": "15.0.0-alpha.4",
|
|
32
|
+
"@stenajs-webui/elements": "15.0.0-alpha.4",
|
|
33
|
+
"@stenajs-webui/forms": "15.0.0-alpha.4",
|
|
34
|
+
"@stenajs-webui/modal": "15.0.0-alpha.4",
|
|
35
|
+
"@stenajs-webui/panels": "15.0.0-alpha.4",
|
|
36
|
+
"@stenajs-webui/redux": "15.0.0-alpha.4",
|
|
37
|
+
"@stenajs-webui/select": "15.0.0-alpha.4",
|
|
38
|
+
"@stenajs-webui/theme": "15.0.0-alpha.4",
|
|
39
|
+
"date-fns": "2.26.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@emotion/styled": ">=11.3.0",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"files": [
|
|
65
65
|
"dist"
|
|
66
66
|
],
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "69b25b3f23322a73af3c159bede13c1c538ee964"
|
|
68
68
|
}
|