@mittwald/flow-react-components 0.2.0-alpha.803 → 0.2.0-alpha.805
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/CHANGELOG.md +12 -0
- package/dist/assets/doc-properties.json +976 -642
- package/dist/css/all.css +1 -1
- package/dist/js/_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs +4 -0
- package/dist/js/_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs.map +1 -1
- package/dist/js/_virtual/_.locale.json@cbc1b50fe3e51afbdb1b35a65308b79e.mjs +14 -0
- package/dist/js/_virtual/_.locale.json@cbc1b50fe3e51afbdb1b35a65308b79e.mjs.map +1 -0
- package/dist/js/default.mjs +1 -0
- package/dist/js/default.mjs.map +1 -1
- package/dist/js/flr-universal.mjs +3 -0
- package/dist/js/flr-universal.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs +70 -16
- package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.module.scss.mjs +7 -3
- package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs +1 -1
- package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.module.scss.mjs +3 -1
- package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/components/CodeEditor/themes/defaultEditorTheme.mjs +4 -4
- package/dist/js/packages/components/src/components/CodeEditor/themes/defaultEditorTheme.mjs.map +1 -1
- package/dist/js/packages/components/src/components/DatePicker/components/DateInput/DateInput.module.scss.mjs +1 -2
- package/dist/js/packages/components/src/components/DatePicker/components/DateInput/DateInput.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.module.scss.mjs +1 -2
- package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/List.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/DataLoader/DataLoader.mjs +5 -1
- package/dist/js/packages/components/src/components/List/components/DataLoader/DataLoader.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/DataLoader/DataLoaderSuspense.mjs +5 -2
- package/dist/js/packages/components/src/components/List/components/DataLoader/DataLoaderSuspense.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/EmptySearchResultView/EmptySearchResultView.mjs +27 -0
- package/dist/js/packages/components/src/components/List/components/EmptySearchResultView/EmptySearchResultView.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/components/EmptyView/EmptyView.mjs +27 -0
- package/dist/js/packages/components/src/components/List/components/EmptyView/EmptyView.mjs.map +1 -0
- package/dist/js/packages/components/src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.mjs +2 -2
- package/dist/js/packages/components/src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/Header.mjs +13 -7
- package/dist/js/packages/components/src/components/List/components/Header/Header.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +24 -11
- package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs +13 -8
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs +12 -8
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.mjs +13 -9
- package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs +2 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.mjs +2 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.mjs +34 -15
- package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/SearchField/SearchField.mjs +2 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/SearchField/SearchField.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingContextMenu.mjs +3 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingContextMenu.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.mjs +16 -12
- package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.mjs +16 -10
- package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.mjs +14 -9
- package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Header/lib.mjs +17 -13
- package/dist/js/packages/components/src/components/List/components/Header/lib.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Items/Items.mjs +11 -27
- package/dist/js/packages/components/src/components/List/components/Items/Items.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs +16 -12
- package/dist/js/packages/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Items/views/GridList/GridList.mjs +2 -3
- package/dist/js/packages/components/src/components/List/components/Items/views/GridList/GridList.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.mjs +10 -6
- package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/components/Table/Table.mjs +26 -15
- package/dist/js/packages/components/src/components/List/components/Table/Table.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/List.mjs +9 -2
- package/dist/js/packages/components/src/components/List/model/List.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoader.mjs +34 -1
- package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoader.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoaderState.mjs +13 -1
- package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoaderState.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/model/types.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/views/EmptyView/EmptyView.mjs +1 -1
- package/dist/js/packages/components/src/components/List/views/EmptyView/EmptyView.mjs.map +1 -1
- package/dist/js/packages/components/src/components/List/views/EmptyViewContainer/EmptyViewContainer.mjs +16 -0
- package/dist/js/packages/components/src/components/List/views/EmptyViewContainer/EmptyViewContainer.mjs.map +1 -0
- package/dist/js/packages/components/src/components/RadioGroup/components/RadioButton/RadioButton.module.scss.mjs +1 -2
- package/dist/js/packages/components/src/components/RadioGroup/components/RadioButton/RadioButton.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Select/Select.module.scss.mjs +1 -2
- package/dist/js/packages/components/src/components/Select/Select.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/components/TextArea/TextArea.module.scss.mjs +1 -2
- package/dist/js/packages/components/src/components/TextArea/TextArea.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/components/TimeField/TimeField.module.scss.mjs +1 -2
- package/dist/js/packages/components/src/components/TimeField/TimeField.module.scss.mjs.map +1 -1
- package/dist/js/packages/components/src/integrations/react-hook-form/flags.mjs +2 -1
- package/dist/js/packages/components/src/integrations/react-hook-form/flags.mjs.map +1 -1
- package/dist/js/packages/components/src/views/IllustratedMessageView.mjs +15 -0
- package/dist/js/packages/components/src/views/IllustratedMessageView.mjs.map +1 -0
- package/dist/js/packages/components/src/views/ListEmptyViewContainerView.mjs +17 -0
- package/dist/js/packages/components/src/views/ListEmptyViewContainerView.mjs.map +1 -0
- package/dist/types/components/CodeBlock/CodeBlock.d.ts +7 -0
- package/dist/types/components/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/dist/types/components/CodeBlock/stories/Default.stories.d.ts +1 -2
- package/dist/types/components/CodeBlock/stories/Default.stories.d.ts.map +1 -1
- package/dist/types/components/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/types/components/List/List.d.ts +3 -1
- package/dist/types/components/List/List.d.ts.map +1 -1
- package/dist/types/components/List/components/DataLoader/DataLoader.d.ts.map +1 -1
- package/dist/types/components/List/components/DataLoader/DataLoaderSuspense.d.ts +1 -0
- package/dist/types/components/List/components/DataLoader/DataLoaderSuspense.d.ts.map +1 -1
- package/dist/types/components/List/components/EmptySearchResultView/EmptySearchResultView.d.ts +4 -0
- package/dist/types/components/List/components/EmptySearchResultView/EmptySearchResultView.d.ts.map +1 -0
- package/dist/types/components/List/components/EmptySearchResultView/index.d.ts +2 -0
- package/dist/types/components/List/components/EmptySearchResultView/index.d.ts.map +1 -0
- package/dist/types/components/List/components/EmptyView/EmptyView.d.ts +4 -0
- package/dist/types/components/List/components/EmptyView/EmptyView.d.ts.map +1 -0
- package/dist/types/components/List/components/EmptyView/index.d.ts +2 -0
- package/dist/types/components/List/components/EmptyView/index.d.ts.map +1 -0
- package/dist/types/components/List/components/Header/Header.d.ts.map +1 -1
- package/dist/types/components/List/components/Header/components/ActiveFilters/ActiveFilters.d.ts +4 -1
- package/dist/types/components/List/components/Header/components/ActiveFilters/ActiveFilters.d.ts.map +1 -1
- package/dist/types/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.d.ts +5 -1
- package/dist/types/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.d.ts.map +1 -1
- package/dist/types/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.d.ts +1 -0
- package/dist/types/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.d.ts.map +1 -1
- package/dist/types/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.d.ts +1 -0
- package/dist/types/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.d.ts.map +1 -1
- package/dist/types/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.d.ts +5 -1
- package/dist/types/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.d.ts.map +1 -1
- package/dist/types/components/List/components/Header/components/SearchField/SearchField.d.ts +1 -0
- package/dist/types/components/List/components/Header/components/SearchField/SearchField.d.ts.map +1 -1
- package/dist/types/components/List/components/Header/components/SortingContextMenu/SortingContextMenu.d.ts +5 -1
- package/dist/types/components/List/components/Header/components/SortingContextMenu/SortingContextMenu.d.ts.map +1 -1
- package/dist/types/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.d.ts +5 -1
- package/dist/types/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.d.ts.map +1 -1
- package/dist/types/components/List/components/Items/Items.d.ts.map +1 -1
- package/dist/types/components/List/components/Items/views/GridList/GridList.d.ts +2 -1
- package/dist/types/components/List/components/Items/views/GridList/GridList.d.ts.map +1 -1
- package/dist/types/components/List/components/Table/Table.d.ts.map +1 -1
- package/dist/types/components/List/index.d.ts +1 -0
- package/dist/types/components/List/index.d.ts.map +1 -1
- package/dist/types/components/List/model/List.d.ts +6 -2
- package/dist/types/components/List/model/List.d.ts.map +1 -1
- package/dist/types/components/List/model/loading/IncrementalLoader.d.ts +1 -0
- package/dist/types/components/List/model/loading/IncrementalLoader.d.ts.map +1 -1
- package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts +3 -0
- package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts.map +1 -1
- package/dist/types/components/List/model/loading/types.d.ts +6 -3
- package/dist/types/components/List/model/loading/types.d.ts.map +1 -1
- package/dist/types/components/List/model/search/types.d.ts +1 -0
- package/dist/types/components/List/model/search/types.d.ts.map +1 -1
- package/dist/types/components/List/model/types.d.ts +3 -0
- package/dist/types/components/List/model/types.d.ts.map +1 -1
- package/dist/types/components/List/stories/Default.stories.d.ts +3 -0
- package/dist/types/components/List/stories/Default.stories.d.ts.map +1 -1
- package/dist/types/components/List/views/EmptyView/EmptyView.d.ts +5 -1
- package/dist/types/components/List/views/EmptyView/EmptyView.d.ts.map +1 -1
- package/dist/types/components/List/views/EmptyViewContainer/EmptyViewContainer.d.ts +10 -0
- package/dist/types/components/List/views/EmptyViewContainer/EmptyViewContainer.d.ts.map +1 -0
- package/dist/types/components/List/views/EmptyViewContainer/index.d.ts +3 -0
- package/dist/types/components/List/views/EmptyViewContainer/index.d.ts.map +1 -0
- package/dist/types/components/List/views/EmptyViewContainer/view.d.ts +8 -0
- package/dist/types/components/List/views/EmptyViewContainer/view.d.ts.map +1 -0
- package/dist/types/integrations/react-hook-form/flags.d.ts +1 -0
- package/dist/types/integrations/react-hook-form/flags.d.ts.map +1 -1
- package/dist/types/views/ListEmptyViewContainerView.d.ts +5 -0
- package/dist/types/views/ListEmptyViewContainerView.d.ts.map +1 -0
- package/package.json +6 -6
- package/dist/js/packages/components/src/views/ListEmptyViewView.mjs +0 -15
- package/dist/js/packages/components/src/views/ListEmptyViewView.mjs.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
-
import 'react';
|
|
5
4
|
import headerStyles from './Header.module.css.mjs';
|
|
6
5
|
import clsx from 'clsx';
|
|
7
6
|
import { ActiveFilters } from './components/ActiveFilters/ActiveFilters.mjs';
|
|
@@ -18,8 +17,15 @@ import { useAvailableViewModes } from './lib.mjs';
|
|
|
18
17
|
const Header = (props) => {
|
|
19
18
|
const { className } = props;
|
|
20
19
|
const list = useList();
|
|
20
|
+
const isEmpty = list.useIsEmpty();
|
|
21
|
+
const isInitiallyLoading = list.loader.useIsInitiallyLoading();
|
|
22
|
+
const noItemsAvailable = isEmpty && list.getEmptyViewType() === "list";
|
|
23
|
+
const isDisabled = isInitiallyLoading || noItemsAvailable;
|
|
21
24
|
const availableViewModes = useAvailableViewModes();
|
|
22
25
|
const hasOptions = list.filters.length > 0 || list.visibleSorting.length > 0 || list.search || availableViewModes.length > 1;
|
|
26
|
+
if (noItemsAvailable) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
23
29
|
return /* @__PURE__ */ jsxs(
|
|
24
30
|
DivView,
|
|
25
31
|
{
|
|
@@ -32,14 +38,14 @@ const Header = (props) => {
|
|
|
32
38
|
/* @__PURE__ */ jsxs(DivView, { className: headerStyles.headerContent, children: [
|
|
33
39
|
/* @__PURE__ */ jsx(TunnelExit, { id: "actions" }),
|
|
34
40
|
hasOptions && /* @__PURE__ */ jsxs(DivView, { className: headerStyles.options, children: [
|
|
35
|
-
/* @__PURE__ */ jsx(ViewModeContextMenu, {}),
|
|
36
|
-
/* @__PURE__ */ jsx(SortingContextMenu, {}),
|
|
37
|
-
/* @__PURE__ */ jsx(FilterContextMenus, {}),
|
|
38
|
-
/* @__PURE__ */ jsx(AllFiltersModal, {}),
|
|
39
|
-
list.search && /* @__PURE__ */ jsx(SearchField, { search: list.search })
|
|
41
|
+
/* @__PURE__ */ jsx(ViewModeContextMenu, { isDisabled }),
|
|
42
|
+
/* @__PURE__ */ jsx(SortingContextMenu, { isDisabled }),
|
|
43
|
+
/* @__PURE__ */ jsx(FilterContextMenus, { isDisabled }),
|
|
44
|
+
/* @__PURE__ */ jsx(AllFiltersModal, { isDisabled }),
|
|
45
|
+
list.search && /* @__PURE__ */ jsx(SearchField, { search: list.search, isDisabled })
|
|
40
46
|
] })
|
|
41
47
|
] }),
|
|
42
|
-
/* @__PURE__ */ jsx(ActiveFilters, {})
|
|
48
|
+
/* @__PURE__ */ jsx(ActiveFilters, { isDisabled })
|
|
43
49
|
]
|
|
44
50
|
}
|
|
45
51
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.mjs","sources":["../../../../../../../../../src/components/List/components/Header/Header.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport
|
|
1
|
+
{"version":3,"file":"Header.mjs","sources":["../../../../../../../../../src/components/List/components/Header/Header.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport styles from \"./Header.module.css\";\nimport clsx from \"clsx\";\nimport { ActiveFilters } from \"@/components/List/components/Header/components/ActiveFilters\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { SearchField } from \"@/components/List/components/Header/components/SearchField/SearchField\";\nimport { ViewModeContextMenu } from \"@/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu\";\nimport { TunnelExit } from \"@mittwald/react-tunnel\";\nimport DivView from \"@/views/DivView\";\nimport { SortingContextMenu } from \"@/components/List/components/Header/components/SortingContextMenu/SortingContextMenu\";\nimport { FilterContextMenus } from \"@/components/List/components/Header/components/FilterContextMenu/FilterContextMenus\";\nimport { AllFiltersModal } from \"@/components/List/components/Header/components/AllFiltersModal/AllFiltersModal\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\n\nexport const Header: FC<PropsWithClassName> = (props) => {\n const { className } = props;\n const list = useList();\n\n const isEmpty = list.useIsEmpty();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const noItemsAvailable = isEmpty && list.getEmptyViewType() === \"list\";\n const isDisabled = isInitiallyLoading || noItemsAvailable;\n\n const availableViewModes = useAvailableViewModes();\n\n const hasOptions =\n list.filters.length > 0 ||\n list.visibleSorting.length > 0 ||\n list.search ||\n availableViewModes.length > 1;\n\n if (noItemsAvailable) {\n return;\n }\n\n return (\n <DivView\n className={clsx(\n className,\n styles.header,\n list.search && styles.withSearch,\n )}\n >\n <DivView className={styles.headerContent}>\n <TunnelExit id=\"actions\" />\n {hasOptions && (\n <DivView className={styles.options}>\n <ViewModeContextMenu isDisabled={isDisabled} />\n <SortingContextMenu isDisabled={isDisabled} />\n <FilterContextMenus isDisabled={isDisabled} />\n <AllFiltersModal isDisabled={isDisabled} />\n\n {list.search && (\n <SearchField search={list.search} isDisabled={isDisabled} />\n )}\n </DivView>\n )}\n </DivView>\n <ActiveFilters isDisabled={isDisabled} />\n </DivView>\n );\n};\n\nexport default Header;\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;AAeO,MAAM,MAAA,GAAiC,CAAC,KAAA,KAAU;AACvD,EAAA,MAAM,EAAE,WAAU,GAAI,KAAA;AACtB,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,OAAA,GAAU,KAAK,UAAA,EAAW;AAChC,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAC7D,EAAA,MAAM,gBAAA,GAAmB,OAAA,IAAW,IAAA,CAAK,gBAAA,EAAiB,KAAM,MAAA;AAChE,EAAA,MAAM,aAAa,kBAAA,IAAsB,gBAAA;AAEzC,EAAA,MAAM,qBAAqB,qBAAA,EAAsB;AAEjD,EAAA,MAAM,UAAA,GACJ,IAAA,CAAK,OAAA,CAAQ,MAAA,GAAS,CAAA,IACtB,IAAA,CAAK,cAAA,CAAe,MAAA,GAAS,CAAA,IAC7B,IAAA,CAAK,MAAA,IACL,kBAAA,CAAmB,MAAA,GAAS,CAAA;AAE9B,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA;AAAA,EACF;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAA;AAAA,QACT,SAAA;AAAA,QACAA,YAAA,CAAO,MAAA;AAAA,QACP,IAAA,CAAK,UAAUA,YAAA,CAAO;AAAA,OACxB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAWA,YAAA,CAAO,aAAA,EACzB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAA,EAAA,EAAW,IAAG,SAAA,EAAU,CAAA;AAAA,UACxB,UAAA,oBACC,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAWA,aAAO,OAAA,EACzB,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,uBAAoB,UAAA,EAAwB,CAAA;AAAA,4BAC7C,GAAA,CAAC,sBAAmB,UAAA,EAAwB,CAAA;AAAA,4BAC5C,GAAA,CAAC,sBAAmB,UAAA,EAAwB,CAAA;AAAA,4BAC5C,GAAA,CAAC,mBAAgB,UAAA,EAAwB,CAAA;AAAA,YAExC,KAAK,MAAA,oBACJ,GAAA,CAAC,eAAY,MAAA,EAAQ,IAAA,CAAK,QAAQ,UAAA,EAAwB;AAAA,WAAA,EAE9D;AAAA,SAAA,EAEJ,CAAA;AAAA,wBACA,GAAA,CAAC,iBAAc,UAAA,EAAwB;AAAA;AAAA;AAAA,GACzC;AAEJ;;;;"}
|
|
@@ -6,10 +6,6 @@ import styles from './ActiveFilters.module.scss.mjs';
|
|
|
6
6
|
import locales from '../../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
|
|
7
7
|
import { observer } from 'mobx-react-lite';
|
|
8
8
|
import { useLocalizedStringFormatter } from '../../../../../TranslationProvider/useLocalizedStringFormatter.mjs';
|
|
9
|
-
import { TooltipTrigger } from '../../../../../Tooltip/components/TooltipTrigger/TooltipTrigger.mjs';
|
|
10
|
-
import 'react-aria-components';
|
|
11
|
-
import 'clsx';
|
|
12
|
-
import '../../../../../../lib/propsContext/propsContext.mjs';
|
|
13
9
|
import 'react';
|
|
14
10
|
import '@mittwald/flow-icons';
|
|
15
11
|
import '../../../../../Icon/components/IconSetProvider.mjs';
|
|
@@ -28,23 +24,40 @@ import { Filter } from '../../../../model/filter/Filter.mjs';
|
|
|
28
24
|
import { transformDateValueToFormattedDate } from '../../../../../../lib/date/transformDateValueToFormattedDate.mjs';
|
|
29
25
|
import { DateRangeFilter } from '../../../../model/filter/DateRangeFilter.mjs';
|
|
30
26
|
|
|
31
|
-
const ActiveFilters = observer(() => {
|
|
27
|
+
const ActiveFilters = observer((props) => {
|
|
28
|
+
const { isDisabled } = props;
|
|
32
29
|
const list = useList();
|
|
33
|
-
const formatter = useLocalizedStringFormatter(locales, "List
|
|
30
|
+
const formatter = useLocalizedStringFormatter(locales, "List");
|
|
34
31
|
const activeFilters = list.filters.flatMap((f) => {
|
|
35
32
|
if (f instanceof DateRangeFilter) {
|
|
36
33
|
const value = f.getValue();
|
|
37
34
|
if (value) {
|
|
38
35
|
return [
|
|
39
|
-
/* @__PURE__ */ jsx(
|
|
36
|
+
/* @__PURE__ */ jsx(
|
|
37
|
+
BadgeView,
|
|
38
|
+
{
|
|
39
|
+
onClose: () => f.clear(),
|
|
40
|
+
isDisabled,
|
|
41
|
+
children: /* @__PURE__ */ jsx(TextView, { children: `${transformDateValueToFormattedDate(value.start)} - ${transformDateValueToFormattedDate(value.end)}` })
|
|
42
|
+
},
|
|
43
|
+
f.name
|
|
44
|
+
)
|
|
40
45
|
];
|
|
41
46
|
}
|
|
42
47
|
}
|
|
43
|
-
return f.values.filter((v) => v.isActive).map((v) => /* @__PURE__ */ jsx(
|
|
48
|
+
return f.values.filter((v) => v.isActive).map((v) => /* @__PURE__ */ jsx(
|
|
49
|
+
BadgeView,
|
|
50
|
+
{
|
|
51
|
+
onClose: () => v.deactivate(),
|
|
52
|
+
isDisabled,
|
|
53
|
+
children: /* @__PURE__ */ jsx(TextView, { children: v.render() })
|
|
54
|
+
},
|
|
55
|
+
v.id
|
|
56
|
+
));
|
|
44
57
|
});
|
|
45
58
|
const storingAvailable = list.filters.some((f) => f.isStoringAvailable());
|
|
46
59
|
const hasChanges = list.filters.some((f) => f.hasChanges());
|
|
47
|
-
const storeFiltersButton = storingAvailable && hasChanges && /* @__PURE__ */ jsxs(TooltipTriggerView, { children: [
|
|
60
|
+
const storeFiltersButton = storingAvailable && hasChanges && /* @__PURE__ */ jsxs(TooltipTriggerView, { isDisabled, children: [
|
|
48
61
|
/* @__PURE__ */ jsx(TooltipView, { children: formatter.format("filters.store") }),
|
|
49
62
|
/* @__PURE__ */ jsx(
|
|
50
63
|
ButtonView,
|
|
@@ -58,7 +71,7 @@ const ActiveFilters = observer(() => {
|
|
|
58
71
|
}
|
|
59
72
|
)
|
|
60
73
|
] });
|
|
61
|
-
const resetFiltersButton = hasChanges ? /* @__PURE__ */ jsxs(
|
|
74
|
+
const resetFiltersButton = hasChanges ? /* @__PURE__ */ jsxs(TooltipTriggerView, { isDisabled, children: [
|
|
62
75
|
/* @__PURE__ */ jsx(TooltipView, { children: formatter.format("filters.reset") }),
|
|
63
76
|
/* @__PURE__ */ jsx(
|
|
64
77
|
ButtonView,
|
|
@@ -72,7 +85,7 @@ const ActiveFilters = observer(() => {
|
|
|
72
85
|
}
|
|
73
86
|
)
|
|
74
87
|
] }) : void 0;
|
|
75
|
-
const removeAllFiltersButton = activeFilters.length > 1 ? /* @__PURE__ */ jsxs(
|
|
88
|
+
const removeAllFiltersButton = activeFilters.length > 1 ? /* @__PURE__ */ jsxs(TooltipTriggerView, { isDisabled, children: [
|
|
76
89
|
/* @__PURE__ */ jsx(TooltipView, { children: formatter.format("filters.clear") }),
|
|
77
90
|
/* @__PURE__ */ jsx(
|
|
78
91
|
ButtonView,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveFilters.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/ActiveFilters/ActiveFilters.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport styles from \"./ActiveFilters.module.scss\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { observer } from \"mobx-react-lite\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport {
|
|
1
|
+
{"version":3,"file":"ActiveFilters.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/ActiveFilters/ActiveFilters.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport styles from \"./ActiveFilters.module.scss\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { observer } from \"mobx-react-lite\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport {\n IconClose,\n IconSave,\n IconUndo,\n} from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport TooltipView from \"@/views/TooltipView\";\nimport DivView from \"@/views/DivView\";\nimport BadgeView from \"@/views/BadgeView\";\nimport TooltipTriggerView from \"@/views/TooltipTriggerView\";\nimport TextView from \"@/views/TextView\";\nimport { Filter } from \"@/components/List/model/filter/Filter\";\nimport { transformDateValueToFormattedDate } from \"@/lib/date/transformDateValueToFormattedDate\";\nimport { DateRangeFilter } from \"@/components/List/model/filter/DateRangeFilter\";\n\ninterface Props {\n isDisabled?: boolean;\n}\n\nexport const ActiveFilters: FC<Props> = observer((props) => {\n const { isDisabled } = props;\n const list = useList();\n const formatter = useLocalizedStringFormatter(locales, \"List\");\n\n const activeFilters = list.filters.flatMap((f) => {\n if (f instanceof DateRangeFilter) {\n const value = f.getValue();\n if (value) {\n return [\n <BadgeView\n key={f.name}\n onClose={() => f.clear()}\n isDisabled={isDisabled}\n >\n <TextView>\n {`${transformDateValueToFormattedDate(value.start)} - ${transformDateValueToFormattedDate(value.end)}`}\n </TextView>\n </BadgeView>,\n ];\n }\n }\n\n return f.values\n .filter((v) => v.isActive)\n .map((v) => (\n <BadgeView\n key={v.id}\n onClose={() => v.deactivate()}\n isDisabled={isDisabled}\n >\n <TextView>{v.render()}</TextView>\n </BadgeView>\n ));\n });\n\n const storingAvailable = list.filters.some((f) => f.isStoringAvailable());\n const hasChanges = list.filters.some((f) => f.hasChanges());\n\n const storeFiltersButton = storingAvailable && hasChanges && (\n <TooltipTriggerView isDisabled={isDisabled}>\n <TooltipView>{formatter.format(\"filters.store\")}</TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() =>\n Filter.storeFilters(list, { autosave: false, manualSave: true })\n }\n aria-label={formatter.format(\"filters.store\")}\n >\n <IconSave />\n </ButtonView>\n </TooltipTriggerView>\n );\n\n const resetFiltersButton = hasChanges ? (\n <TooltipTriggerView isDisabled={isDisabled}>\n <TooltipView>{formatter.format(\"filters.reset\")}</TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() => list.resetFilters()}\n aria-label={formatter.format(\"filters.reset\")}\n >\n <IconUndo />\n </ButtonView>\n </TooltipTriggerView>\n ) : undefined;\n\n const removeAllFiltersButton =\n activeFilters.length > 1 ? (\n <TooltipTriggerView isDisabled={isDisabled}>\n <TooltipView>{formatter.format(\"filters.clear\")}</TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() => list.clearFilters()}\n >\n <IconClose />\n </ButtonView>\n </TooltipTriggerView>\n ) : undefined;\n\n if (\n activeFilters.length === 0 &&\n !storeFiltersButton &&\n !resetFiltersButton\n ) {\n return null;\n }\n\n return (\n <DivView className={styles.activeFilters}>\n {activeFilters}\n {storeFiltersButton}\n {resetFiltersButton}\n {removeAllFiltersButton}\n </DivView>\n );\n});\n\nexport default ActiveFilters;\n"],"names":[],"mappings":"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"}
|
|
@@ -10,19 +10,24 @@ import { IconFilter } from '../../../../../Icon/components/icons/IconFilter.mjs'
|
|
|
10
10
|
import ButtonView from '../../../../../../views/ButtonView.mjs';
|
|
11
11
|
import 'invariant';
|
|
12
12
|
import 'react-aria-components';
|
|
13
|
-
import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
|
|
14
|
-
import '../../../../../Heading/Heading.mjs';
|
|
15
|
-
import '../../../../../Text/Text.mjs';
|
|
16
|
-
import locales from '../../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
|
|
17
|
-
import { useLocalizedStringFormatter } from '../../../../../TranslationProvider/useLocalizedStringFormatter.mjs';
|
|
18
13
|
import clsx from 'clsx';
|
|
19
14
|
import '@mittwald/react-tunnel';
|
|
20
15
|
import '../../../../../../views/ListItemViewContentView.mjs';
|
|
21
16
|
import '../../../../../../lib/propsContext/propsContext.mjs';
|
|
22
17
|
import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
|
|
18
|
+
import locales from '../../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
|
|
19
|
+
import { useLocalizedStringFormatter } from '../../../../../TranslationProvider/useLocalizedStringFormatter.mjs';
|
|
23
20
|
import '../../../../../../views/ContextMenuTriggerView.mjs';
|
|
24
21
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
25
22
|
import '../../../ListSummary/ListSummary.mjs';
|
|
23
|
+
import '../../../../../../views/DivView.mjs';
|
|
24
|
+
import '../../../../../../views/IllustratedMessageView.mjs';
|
|
25
|
+
import HeadingView from '../../../../../../views/HeadingView.mjs';
|
|
26
|
+
import TextView from '../../../../../../views/TextView.mjs';
|
|
27
|
+
import '../../../../../TranslationProvider/TranslationProvider.mjs';
|
|
28
|
+
import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
|
|
29
|
+
import '../../../../../Heading/Heading.mjs';
|
|
30
|
+
import '../../../../../Text/Text.mjs';
|
|
26
31
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
27
32
|
import '../../../../listContext.mjs';
|
|
28
33
|
import 'mobx';
|
|
@@ -32,20 +37,19 @@ import ContentView from '../../../../../../views/ContentView.mjs';
|
|
|
32
37
|
import SectionView from '../../../../../../views/SectionView.mjs';
|
|
33
38
|
import { FilterAccordion } from './FilterAccordion.mjs';
|
|
34
39
|
import { ViewModeAccordion } from './ViewModeAccordion.mjs';
|
|
35
|
-
import TextView from '../../../../../../views/TextView.mjs';
|
|
36
40
|
import { SortingAccordion } from './SortingAccordion.mjs';
|
|
37
41
|
import ActionGroupView from '../../../../../../views/ActionGroupView.mjs';
|
|
38
42
|
import 'remeda';
|
|
39
43
|
import '@react-aria/utils';
|
|
40
44
|
import 'dot-prop';
|
|
41
45
|
import { useOverlayController } from '../../../../../../lib/controller/overlay/useOverlayController.mjs';
|
|
42
|
-
import HeadingView from '../../../../../../views/HeadingView.mjs';
|
|
43
46
|
import { ModalTrigger } from '../../../../../Modal/components/ModalTrigger/ModalTrigger.mjs';
|
|
44
47
|
import { Modal } from '../../../../../Modal/Modal.mjs';
|
|
45
48
|
import { SkeletonText } from '../../../../../SkeletonText/SkeletonText.mjs';
|
|
46
49
|
import { useAvailableViewModes } from '../../lib.mjs';
|
|
47
50
|
|
|
48
|
-
const AllFiltersModal = () => {
|
|
51
|
+
const AllFiltersModal = (props) => {
|
|
52
|
+
const { isDisabled } = props;
|
|
49
53
|
const list = useList();
|
|
50
54
|
const stringFormatter = useLocalizedStringFormatter(locales, "List");
|
|
51
55
|
const isInitiallyLoading = list.loader.useIsInitiallyLoading();
|
|
@@ -76,6 +80,7 @@ const AllFiltersModal = () => {
|
|
|
76
80
|
),
|
|
77
81
|
variant: "outline",
|
|
78
82
|
color: "secondary",
|
|
83
|
+
isDisabled,
|
|
79
84
|
children: [
|
|
80
85
|
/* @__PURE__ */ jsx(TextView, { children: stringFormatter.format("filters.all") }),
|
|
81
86
|
/* @__PURE__ */ jsx(IconFilter, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllFiltersModal.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { useList } from \"@/components/List\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport ContentView from \"@/views/ContentView\";\nimport SectionView from \"@/views/SectionView\";\nimport { FilterAccordion } from \"@/components/List/components/Header/components/AllFiltersModal/FilterAccordion\";\nimport { ViewModeAccordion } from \"@/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion\";\nimport TextView from \"@/views/TextView\";\nimport { SortingAccordion } from \"@/components/List/components/Header/components/AllFiltersModal/SortingAccordion\";\nimport ActionGroupView from \"@/views/ActionGroupView\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport HeadingView from \"@/views/HeadingView\";\nimport clsx from \"clsx\";\nimport Modal, { ModalTrigger } from \"@/components/Modal\";\nimport { SkeletonText } from \"@/components/SkeletonText\";\nimport { useAvailableViewModes } from \"../../lib\";\n\nexport const AllFiltersModal: FC = () => {\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const totalItemCount =\n list.batches.getTotalItemsCount() ?? list.items.entries.length;\n\n const filterAccordions = list.filters.map((f) => (\n <FilterAccordion filter={f} key={f.name} />\n ));\n\n const availableViewModes = useAvailableViewModes();\n\n const accordions = [\n availableViewModes.length > 1 && <ViewModeAccordion key=\"viewMode\" />,\n list.sorting.length > 0 && <SortingAccordion key=\"sorting\" />,\n ...filterAccordions,\n ].filter(Boolean);\n\n const hasSecondaryFilters = list.filters.some(\n (f) => f.priority === \"secondary\",\n );\n\n const controller = useOverlayController(\"Modal\", {\n reuseControllerFromContext: false,\n });\n\n if (accordions.length === 0) {\n return null;\n }\n\n return (\n <ModalTrigger controller={controller}>\n <ButtonView\n className={clsx(\n styles.hideOnMobile,\n hasSecondaryFilters ? undefined : styles.hideOnDesktop,\n )}\n variant=\"outline\"\n color=\"secondary\"\n >\n <TextView>{stringFormatter.format(\"filters.all\")}</TextView>\n <IconFilter />\n </ButtonView>\n\n <ButtonView\n className={styles.hideOnDesktop}\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"filters.all\")}\n >\n <IconFilter />\n </ButtonView>\n\n <Modal offCanvas controller={controller}>\n <HeadingView>{stringFormatter.format(\"filters.all\")}</HeadingView>\n <ContentView>\n <SectionView>{...accordions}</SectionView>\n </ContentView>\n\n <ActionGroupView>\n <ButtonView onPress={() => controller.close()}>\n <TextView>\n {isInitiallyLoading ? (\n <SkeletonText width=\"16ch\" />\n ) : (\n stringFormatter.format(\"results.show\", {\n totalItemCount,\n })\n )}\n </TextView>\n </ButtonView>\n <ButtonView\n color=\"secondary\"\n variant=\"soft\"\n onPress={() => {\n list.resetFilters();\n controller.close();\n }}\n >\n {stringFormatter.format(\"reset\")}\n </ButtonView>\n </ActionGroupView>\n </Modal>\n </ModalTrigger>\n );\n};\n"],"names":["styles"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AllFiltersModal.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { useList } from \"@/components/List\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport ContentView from \"@/views/ContentView\";\nimport SectionView from \"@/views/SectionView\";\nimport { FilterAccordion } from \"@/components/List/components/Header/components/AllFiltersModal/FilterAccordion\";\nimport { ViewModeAccordion } from \"@/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion\";\nimport TextView from \"@/views/TextView\";\nimport { SortingAccordion } from \"@/components/List/components/Header/components/AllFiltersModal/SortingAccordion\";\nimport ActionGroupView from \"@/views/ActionGroupView\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport HeadingView from \"@/views/HeadingView\";\nimport clsx from \"clsx\";\nimport Modal, { ModalTrigger } from \"@/components/Modal\";\nimport { SkeletonText } from \"@/components/SkeletonText\";\nimport { useAvailableViewModes } from \"../../lib\";\n\ninterface Props {\n isDisabled?: boolean;\n}\n\nexport const AllFiltersModal: FC<Props> = (props) => {\n const { isDisabled } = props;\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const totalItemCount =\n list.batches.getTotalItemsCount() ?? list.items.entries.length;\n\n const filterAccordions = list.filters.map((f) => (\n <FilterAccordion filter={f} key={f.name} />\n ));\n\n const availableViewModes = useAvailableViewModes();\n\n const accordions = [\n availableViewModes.length > 1 && <ViewModeAccordion key=\"viewMode\" />,\n list.sorting.length > 0 && <SortingAccordion key=\"sorting\" />,\n ...filterAccordions,\n ].filter(Boolean);\n\n const hasSecondaryFilters = list.filters.some(\n (f) => f.priority === \"secondary\",\n );\n\n const controller = useOverlayController(\"Modal\", {\n reuseControllerFromContext: false,\n });\n\n if (accordions.length === 0) {\n return null;\n }\n\n return (\n <ModalTrigger controller={controller}>\n <ButtonView\n className={clsx(\n styles.hideOnMobile,\n hasSecondaryFilters ? undefined : styles.hideOnDesktop,\n )}\n variant=\"outline\"\n color=\"secondary\"\n isDisabled={isDisabled}\n >\n <TextView>{stringFormatter.format(\"filters.all\")}</TextView>\n <IconFilter />\n </ButtonView>\n\n <ButtonView\n className={styles.hideOnDesktop}\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"filters.all\")}\n >\n <IconFilter />\n </ButtonView>\n\n <Modal offCanvas controller={controller}>\n <HeadingView>{stringFormatter.format(\"filters.all\")}</HeadingView>\n <ContentView>\n <SectionView>{...accordions}</SectionView>\n </ContentView>\n\n <ActionGroupView>\n <ButtonView onPress={() => controller.close()}>\n <TextView>\n {isInitiallyLoading ? (\n <SkeletonText width=\"16ch\" />\n ) : (\n stringFormatter.format(\"results.show\", {\n totalItemCount,\n })\n )}\n </TextView>\n </ButtonView>\n <ButtonView\n color=\"secondary\"\n variant=\"soft\"\n onPress={() => {\n list.resetFilters();\n controller.close();\n }}\n >\n {stringFormatter.format(\"reset\")}\n </ButtonView>\n </ActionGroupView>\n </Modal>\n </ModalTrigger>\n );\n};\n"],"names":["styles"],"mappings":"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"}
|
|
@@ -10,23 +10,27 @@ import RadioGroupView from '../../../../../../views/RadioGroupView.mjs';
|
|
|
10
10
|
import RadioView from '../../../../../../views/RadioView.mjs';
|
|
11
11
|
import 'invariant';
|
|
12
12
|
import 'react-aria-components';
|
|
13
|
-
import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
|
|
14
|
-
import '@mittwald/flow-icons';
|
|
15
|
-
import '../../../../../Icon/components/IconSetProvider.mjs';
|
|
16
|
-
import '../../../../../Icon/Icon.mjs';
|
|
17
|
-
import '../../../../../../views/IconView.mjs';
|
|
18
|
-
import '../../../../../Heading/Heading.mjs';
|
|
19
|
-
import '../../../../../Text/Text.mjs';
|
|
20
|
-
import locales from '../../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
|
|
21
13
|
import 'clsx';
|
|
22
14
|
import '@mittwald/react-tunnel';
|
|
23
15
|
import '../../../../../../views/ListItemViewContentView.mjs';
|
|
24
16
|
import '../../../../../../lib/propsContext/propsContext.mjs';
|
|
25
17
|
import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
|
|
18
|
+
import locales from '../../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
|
|
19
|
+
import '@mittwald/flow-icons';
|
|
20
|
+
import '../../../../../Icon/components/IconSetProvider.mjs';
|
|
21
|
+
import '../../../../../Icon/Icon.mjs';
|
|
22
|
+
import '../../../../../../views/IconView.mjs';
|
|
26
23
|
import '../../../../../../views/ButtonView.mjs';
|
|
27
24
|
import '../../../../../../views/ContextMenuTriggerView.mjs';
|
|
28
25
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
29
26
|
import '../../../ListSummary/ListSummary.mjs';
|
|
27
|
+
import '../../../../../../views/DivView.mjs';
|
|
28
|
+
import '../../../../../../views/IllustratedMessageView.mjs';
|
|
29
|
+
import '../../../../../../views/TextView.mjs';
|
|
30
|
+
import '../../../../../TranslationProvider/TranslationProvider.mjs';
|
|
31
|
+
import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
|
|
32
|
+
import '../../../../../Heading/Heading.mjs';
|
|
33
|
+
import '../../../../../Text/Text.mjs';
|
|
30
34
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
31
35
|
import '../../../../listContext.mjs';
|
|
32
36
|
import 'mobx';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortingAccordion.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport ContentView from \"@/views/ContentView\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport { useList } from \"@/components/List\";\nimport locales from \"../../../../locales/*.locale.json\";\n\nexport const SortingAccordion: FC = () => {\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const sorting = list.visibleSorting;\n const activeSorting = sorting.find((s) => s.isSorted());\n\n if (sorting.length === 0) {\n return null;\n }\n\n return (\n <AccordionView>\n <HeadingView>{stringFormatter.format(\"sorting\")}</HeadingView>\n <ContentView>\n <RadioGroupView value={activeSorting?.id} m={[1, 1]}>\n {sorting.map((s) => (\n <RadioView\n key={s.id}\n value={s.id}\n onPress={() => list.getSorting(s.id).enable()}\n >\n {`${s.name ?? s.property} ${s.directionName ?? \"\"}`.trim()}\n </RadioView>\n ))}\n </RadioGroupView>\n </ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SortingAccordion.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport ContentView from \"@/views/ContentView\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport { useList } from \"@/components/List\";\nimport locales from \"../../../../locales/*.locale.json\";\n\nexport const SortingAccordion: FC = () => {\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const sorting = list.visibleSorting;\n const activeSorting = sorting.find((s) => s.isSorted());\n\n if (sorting.length === 0) {\n return null;\n }\n\n return (\n <AccordionView>\n <HeadingView>{stringFormatter.format(\"sorting\")}</HeadingView>\n <ContentView>\n <RadioGroupView value={activeSorting?.id} m={[1, 1]}>\n {sorting.map((s) => (\n <RadioView\n key={s.id}\n value={s.id}\n onPress={() => list.getSorting(s.id).enable()}\n >\n {`${s.name ?? s.property} ${s.directionName ?? \"\"}`.trim()}\n </RadioView>\n ))}\n </RadioGroupView>\n </ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,mBAAuB,MAAM;AACxC,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,UAAU,IAAA,CAAK,cAAA;AACrB,EAAA,MAAM,gBAAgB,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,CAAA;AAEtD,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,4BACG,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,eAAA,CAAgB,MAAA,CAAO,SAAS,CAAA,EAAE,CAAA;AAAA,oBAChD,GAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAO,aAAA,EAAe,EAAA,EAAI,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,EAC/C,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,qBACZ,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QAEC,OAAO,CAAA,CAAE,EAAA;AAAA,QACT,SAAS,MAAM,IAAA,CAAK,WAAW,CAAA,CAAE,EAAE,EAAE,MAAA,EAAO;AAAA,QAE3C,QAAA,EAAA,CAAA,EAAG,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,QAAQ,IAAI,CAAA,CAAE,aAAA,IAAiB,EAAE,CAAA,CAAA,CAAG,IAAA;AAAK,OAAA;AAAA,MAJpD,CAAA,CAAE;AAAA,KAMV,GACH,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -10,24 +10,28 @@ import RadioView from '../../../../../../views/RadioView.mjs';
|
|
|
10
10
|
import { useAvailableViewModes } from '../../lib.mjs';
|
|
11
11
|
import 'invariant';
|
|
12
12
|
import 'react-aria-components';
|
|
13
|
-
import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
|
|
14
|
-
import '@mittwald/flow-icons';
|
|
15
|
-
import '../../../../../Icon/components/IconSetProvider.mjs';
|
|
16
|
-
import '../../../../../Icon/Icon.mjs';
|
|
17
|
-
import '../../../../../../views/IconView.mjs';
|
|
18
|
-
import '../../../../../Heading/Heading.mjs';
|
|
19
|
-
import '../../../../../Text/Text.mjs';
|
|
20
|
-
import locales from '../../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
|
|
21
|
-
import { useLocalizedStringFormatter } from '../../../../../TranslationProvider/useLocalizedStringFormatter.mjs';
|
|
22
13
|
import 'clsx';
|
|
23
14
|
import '@mittwald/react-tunnel';
|
|
24
15
|
import '../../../../../../views/ListItemViewContentView.mjs';
|
|
25
16
|
import '../../../../../../lib/propsContext/propsContext.mjs';
|
|
26
17
|
import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
|
|
18
|
+
import locales from '../../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
|
|
19
|
+
import { useLocalizedStringFormatter } from '../../../../../TranslationProvider/useLocalizedStringFormatter.mjs';
|
|
20
|
+
import '@mittwald/flow-icons';
|
|
21
|
+
import '../../../../../Icon/components/IconSetProvider.mjs';
|
|
22
|
+
import '../../../../../Icon/Icon.mjs';
|
|
23
|
+
import '../../../../../../views/IconView.mjs';
|
|
27
24
|
import '../../../../../../views/ButtonView.mjs';
|
|
28
25
|
import '../../../../../../views/ContextMenuTriggerView.mjs';
|
|
29
26
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
30
27
|
import '../../../ListSummary/ListSummary.mjs';
|
|
28
|
+
import '../../../../../../views/DivView.mjs';
|
|
29
|
+
import '../../../../../../views/IllustratedMessageView.mjs';
|
|
30
|
+
import '../../../../../../views/TextView.mjs';
|
|
31
|
+
import '../../../../../TranslationProvider/TranslationProvider.mjs';
|
|
32
|
+
import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
|
|
33
|
+
import '../../../../../Heading/Heading.mjs';
|
|
34
|
+
import '../../../../../Text/Text.mjs';
|
|
31
35
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
32
36
|
import '../../../../listContext.mjs';
|
|
33
37
|
import 'mobx';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewModeAccordion.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport ContentView from \"@/views/ContentView\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\nimport { useList } from \"@/components/List\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\n\nexport const ViewModeAccordion: FC = () => {\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const availableViewModes = useAvailableViewModes();\n const selectedViewMode = list.viewMode.value;\n\n return (\n <AccordionView>\n <HeadingView>{stringFormatter.format(\"settings.viewMode\")}</HeadingView>\n <ContentView>\n <RadioGroupView value={selectedViewMode} m={[1, 1]}>\n {availableViewModes.map((v) => (\n <RadioView key={v} value={v} onPress={() => list.viewMode.set(v)}>\n {stringFormatter.format(`settings.viewMode.${v}`)}\n </RadioView>\n ))}\n </RadioGroupView>\n </ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ViewModeAccordion.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport ContentView from \"@/views/ContentView\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\nimport { useList } from \"@/components/List\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\n\nexport const ViewModeAccordion: FC = () => {\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const availableViewModes = useAvailableViewModes();\n const selectedViewMode = list.viewMode.value;\n\n return (\n <AccordionView>\n <HeadingView>{stringFormatter.format(\"settings.viewMode\")}</HeadingView>\n <ContentView>\n <RadioGroupView value={selectedViewMode} m={[1, 1]}>\n {availableViewModes.map((v) => (\n <RadioView key={v} value={v} onPress={() => list.viewMode.set(v)}>\n {stringFormatter.format(`settings.viewMode.${v}`)}\n </RadioView>\n ))}\n </RadioGroupView>\n </ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,oBAAwB,MAAM;AACzC,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,qBAAqB,qBAAA,EAAsB;AACjD,EAAA,MAAM,gBAAA,GAAmB,KAAK,QAAA,CAAS,KAAA;AAEvC,EAAA,4BACG,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,eAAA,CAAgB,MAAA,CAAO,mBAAmB,CAAA,EAAE,CAAA;AAAA,oBAC1D,GAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAO,gBAAA,EAAkB,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA,EAC9C,QAAA,EAAA,kBAAA,CAAmB,GAAA,CAAI,CAAC,sBACvB,GAAA,CAAC,SAAA,EAAA,EAAkB,KAAA,EAAO,CAAA,EAAG,SAAS,MAAM,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,EAC5D,QAAA,EAAA,eAAA,CAAgB,MAAA,CAAO,CAAA,kBAAA,EAAqB,CAAC,CAAA,CAAE,CAAA,EAAA,EADlC,CAEhB,CACD,GACH,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -25,7 +25,7 @@ import { useOverlayController } from '../../../../../../lib/controller/overlay/u
|
|
|
25
25
|
import RangeCalendarView from '../../../../../../views/RangeCalendarView.mjs';
|
|
26
26
|
|
|
27
27
|
const DateRangeFilterPopover = (props) => {
|
|
28
|
-
const { filter } = props;
|
|
28
|
+
const { filter, isDisabled } = props;
|
|
29
29
|
const { name, property } = filter;
|
|
30
30
|
const stringFormatter = useLocalizedStringFormatter(locales, "List");
|
|
31
31
|
const controller = useOverlayController("Popover");
|
|
@@ -36,6 +36,7 @@ const DateRangeFilterPopover = (props) => {
|
|
|
36
36
|
className: headerStyles.hideOnMobile,
|
|
37
37
|
variant: "outline",
|
|
38
38
|
color: "secondary",
|
|
39
|
+
isDisabled,
|
|
39
40
|
children: [
|
|
40
41
|
/* @__PURE__ */ jsx(TextView, { children: name ?? property }),
|
|
41
42
|
/* @__PURE__ */ jsx(IconFilter, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeFilterPopover.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport ButtonView from \"@/views/ButtonView\";\nimport headerStyles from \"@/components/List/components/Header/Header.module.css\";\nimport TextView from \"@/views/TextView\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { Popover, PopoverTrigger } from \"@/components/Popover\";\nimport styles from \"./FilterContextMenus.module.scss\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport RangeCalendarView from \"@/views/RangeCalendarView\";\nimport type { AnyDateRangeFilter } from \"@/components/List/model/filter/types\";\n\ninterface Props {\n filter: AnyDateRangeFilter;\n}\n\nexport const DateRangeFilterPopover: FC<Props> = (props) => {\n const { filter } = props;\n\n const { name, property } = filter;\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const controller = useOverlayController(\"Popover\");\n\n return (\n <PopoverTrigger controller={controller}>\n <ButtonView\n className={headerStyles.hideOnMobile}\n variant=\"outline\"\n color=\"secondary\"\n >\n <TextView>{name ?? property}</TextView>\n <IconFilter />\n </ButtonView>\n <Popover\n placement=\"bottom end\"\n isDialogContent\n aria-label={stringFormatter.format(\"dateRange\")}\n >\n <RangeCalendarView\n {...filter.dateRangeOptions}\n value={filter.getValue()}\n onChange={(range) => {\n filter.setValue(range);\n controller.close();\n }}\n className={styles.calendar}\n />\n </Popover>\n </PopoverTrigger>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DateRangeFilterPopover.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport ButtonView from \"@/views/ButtonView\";\nimport headerStyles from \"@/components/List/components/Header/Header.module.css\";\nimport TextView from \"@/views/TextView\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { Popover, PopoverTrigger } from \"@/components/Popover\";\nimport styles from \"./FilterContextMenus.module.scss\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport RangeCalendarView from \"@/views/RangeCalendarView\";\nimport type { AnyDateRangeFilter } from \"@/components/List/model/filter/types\";\n\ninterface Props {\n filter: AnyDateRangeFilter;\n isDisabled?: boolean;\n}\n\nexport const DateRangeFilterPopover: FC<Props> = (props) => {\n const { filter, isDisabled } = props;\n\n const { name, property } = filter;\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const controller = useOverlayController(\"Popover\");\n\n return (\n <PopoverTrigger controller={controller}>\n <ButtonView\n className={headerStyles.hideOnMobile}\n variant=\"outline\"\n color=\"secondary\"\n isDisabled={isDisabled}\n >\n <TextView>{name ?? property}</TextView>\n <IconFilter />\n </ButtonView>\n <Popover\n placement=\"bottom end\"\n isDialogContent\n aria-label={stringFormatter.format(\"dateRange\")}\n >\n <RangeCalendarView\n {...filter.dateRangeOptions}\n value={filter.getValue()}\n onChange={(range) => {\n filter.setValue(range);\n controller.close();\n }}\n className={styles.calendar}\n />\n </Popover>\n </PopoverTrigger>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,sBAAA,GAAoC,CAAC,KAAA,KAAU;AAC1D,EAAA,MAAM,EAAE,MAAA,EAAQ,UAAA,EAAW,GAAI,KAAA;AAE/B,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,MAAA;AAE3B,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,UAAA,GAAa,qBAAqB,SAAS,CAAA;AAEjD,EAAA,uBACE,IAAA,CAAC,kBAAe,UAAA,EACd,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,WAAW,YAAA,CAAa,YAAA;AAAA,QACxB,OAAA,EAAQ,SAAA;AAAA,QACR,KAAA,EAAM,WAAA;AAAA,QACN,UAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAU,kBAAQ,QAAA,EAAS,CAAA;AAAA,8BAC3B,UAAA,EAAA,EAAW;AAAA;AAAA;AAAA,KACd;AAAA,oBACA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,YAAA;AAAA,QACV,eAAA,EAAe,IAAA;AAAA,QACf,YAAA,EAAY,eAAA,CAAgB,MAAA,CAAO,WAAW,CAAA;AAAA,QAE9C,QAAA,kBAAA,GAAA;AAAA,UAAC,iBAAA;AAAA,UAAA;AAAA,YACE,GAAG,MAAA,CAAO,gBAAA;AAAA,YACX,KAAA,EAAO,OAAO,QAAA,EAAS;AAAA,YACvB,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,cAAA,MAAA,CAAO,SAAS,KAAK,CAAA;AACrB,cAAA,UAAA,CAAW,KAAA,EAAM;AAAA,YACnB,CAAA;AAAA,YACA,WAAW,MAAA,CAAO;AAAA;AAAA;AACpB;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -15,7 +15,7 @@ import ContextMenuTriggerView from '../../../../../../views/ContextMenuTriggerVi
|
|
|
15
15
|
import ContextMenuView from '../../../../../../views/ContextMenuView.mjs';
|
|
16
16
|
|
|
17
17
|
const FilterContextMenu = (props) => {
|
|
18
|
-
const { filter } = props;
|
|
18
|
+
const { filter, isDisabled } = props;
|
|
19
19
|
const { values, mode, name, property } = filter;
|
|
20
20
|
const selectionMode = mode === "one" ? "single" : "multiple";
|
|
21
21
|
const filterItems = values.map((v) => /* @__PURE__ */ jsx(FilterMenuItem, { filterValue: v, selectionMode }, v.id));
|
|
@@ -27,6 +27,7 @@ const FilterContextMenu = (props) => {
|
|
|
27
27
|
className: headerStyles.hideOnMobile,
|
|
28
28
|
variant: "outline",
|
|
29
29
|
color: "secondary",
|
|
30
|
+
isDisabled,
|
|
30
31
|
children: [
|
|
31
32
|
/* @__PURE__ */ jsx(TextView, { children: name ?? property }),
|
|
32
33
|
/* @__PURE__ */ jsx(IconFilter, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterContextMenu.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport TextView from \"@/views/TextView\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { FilterMenuItem } from \"@/components/List/components/Header/components/FilterContextMenu/FilterMenuItem\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\ninterface Props {\n filter: Filter;\n}\n\nexport const FilterContextMenu: FC<Props> = (props) => {\n const { filter } = props;\n\n const { values, mode, name, property } = filter;\n\n const selectionMode = mode === \"one\" ? \"single\" : \"multiple\";\n\n const filterItems = values.map((v) => (\n <FilterMenuItem filterValue={v} key={v.id} selectionMode={selectionMode} />\n ));\n\n const activeFilterKeys = values.filter((v) => v.isActive).map((v) => v.id);\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n className={styles.hideOnMobile}\n variant=\"outline\"\n color=\"secondary\"\n >\n <TextView>{name ?? property}</TextView>\n <IconFilter />\n </ButtonView>\n <ContextMenuView\n selectionMode={selectionMode}\n selectedKeys={activeFilterKeys}\n >\n {filterItems}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"FilterContextMenu.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport TextView from \"@/views/TextView\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { FilterMenuItem } from \"@/components/List/components/Header/components/FilterContextMenu/FilterMenuItem\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\ninterface Props {\n filter: Filter;\n isDisabled?: boolean;\n}\n\nexport const FilterContextMenu: FC<Props> = (props) => {\n const { filter, isDisabled } = props;\n\n const { values, mode, name, property } = filter;\n\n const selectionMode = mode === \"one\" ? \"single\" : \"multiple\";\n\n const filterItems = values.map((v) => (\n <FilterMenuItem filterValue={v} key={v.id} selectionMode={selectionMode} />\n ));\n\n const activeFilterKeys = values.filter((v) => v.isActive).map((v) => v.id);\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n className={styles.hideOnMobile}\n variant=\"outline\"\n color=\"secondary\"\n isDisabled={isDisabled}\n >\n <TextView>{name ?? property}</TextView>\n <IconFilter />\n </ButtonView>\n <ContextMenuView\n selectionMode={selectionMode}\n selectedKeys={activeFilterKeys}\n >\n {filterItems}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;AAeO,MAAM,iBAAA,GAA+B,CAAC,KAAA,KAAU;AACrD,EAAA,MAAM,EAAE,MAAA,EAAQ,UAAA,EAAW,GAAI,KAAA;AAE/B,EAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,UAAS,GAAI,MAAA;AAEzC,EAAA,MAAM,aAAA,GAAgB,IAAA,KAAS,KAAA,GAAQ,QAAA,GAAW,UAAA;AAElD,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBAC9B,GAAA,CAAC,cAAA,EAAA,EAAe,WAAA,EAAa,CAAA,EAAc,aAAA,EAAA,EAAN,CAAA,CAAE,EAAkC,CAC1E,CAAA;AAED,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAA;AAEzE,EAAA,4BACG,sBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,WAAWA,YAAA,CAAO,YAAA;AAAA,QAClB,OAAA,EAAQ,SAAA;AAAA,QACR,KAAA,EAAM,WAAA;AAAA,QACN,UAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAU,kBAAQ,QAAA,EAAS,CAAA;AAAA,8BAC3B,UAAA,EAAA,EAAW;AAAA;AAAA;AAAA,KACd;AAAA,oBACA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,aAAA;AAAA,QACA,YAAA,EAAc,gBAAA;AAAA,QAEb,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
import 'react';
|
|
5
4
|
import 'invariant';
|
|
6
5
|
import 'react-aria-components';
|
|
7
|
-
import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
|
|
8
|
-
import '@mittwald/flow-icons';
|
|
9
|
-
import '../../../../../Icon/components/IconSetProvider.mjs';
|
|
10
|
-
import '../../../../../Icon/Icon.mjs';
|
|
11
|
-
import '../../../../../../views/IconView.mjs';
|
|
12
|
-
import '../../../../../Heading/Heading.mjs';
|
|
13
|
-
import '../../../../../Text/Text.mjs';
|
|
14
|
-
import '../../../../../TranslationProvider/TranslationProvider.mjs';
|
|
15
|
-
import 'remeda';
|
|
16
|
-
import 'intl-messageformat';
|
|
17
|
-
import '@react-aria/i18n';
|
|
18
|
-
import 'react-aria';
|
|
19
6
|
import 'clsx';
|
|
20
7
|
import '@mittwald/react-tunnel';
|
|
21
8
|
import '../../../../../../views/ListItemViewContentView.mjs';
|
|
22
9
|
import '../../../../../../lib/propsContext/propsContext.mjs';
|
|
23
10
|
import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
|
|
11
|
+
import '../../../../../TranslationProvider/TranslationProvider.mjs';
|
|
12
|
+
import 'remeda';
|
|
13
|
+
import 'intl-messageformat';
|
|
14
|
+
import '@react-aria/i18n';
|
|
15
|
+
import 'react';
|
|
16
|
+
import 'react-aria';
|
|
17
|
+
import '@mittwald/flow-icons';
|
|
18
|
+
import '../../../../../Icon/components/IconSetProvider.mjs';
|
|
19
|
+
import '../../../../../Icon/Icon.mjs';
|
|
20
|
+
import '../../../../../../views/IconView.mjs';
|
|
24
21
|
import '../../../../../../views/ButtonView.mjs';
|
|
25
22
|
import '../../../../../../views/ContextMenuTriggerView.mjs';
|
|
26
23
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
27
24
|
import '../../../ListSummary/ListSummary.mjs';
|
|
25
|
+
import '../../../../../../views/DivView.mjs';
|
|
26
|
+
import '../../../../../../views/IllustratedMessageView.mjs';
|
|
27
|
+
import '../../../../../../views/HeadingView.mjs';
|
|
28
|
+
import '../../../../../../views/TextView.mjs';
|
|
29
|
+
import '../../../../../IllustratedMessage/IllustratedMessage.mjs';
|
|
30
|
+
import '../../../../../Heading/Heading.mjs';
|
|
31
|
+
import '../../../../../Text/Text.mjs';
|
|
28
32
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
29
33
|
import '../../../../listContext.mjs';
|
|
30
34
|
import 'mobx';
|
|
@@ -33,10 +37,25 @@ import { FilterContextMenu } from './FilterContextMenu.mjs';
|
|
|
33
37
|
import { DateRangeFilterPopover } from './DateRangeFilterPopover.mjs';
|
|
34
38
|
import { DateRangeFilter } from '../../../../model/filter/DateRangeFilter.mjs';
|
|
35
39
|
|
|
36
|
-
const FilterContextMenus = () => {
|
|
40
|
+
const FilterContextMenus = (props) => {
|
|
41
|
+
const { isDisabled } = props;
|
|
37
42
|
const list = useList();
|
|
38
43
|
return list.filters.filter((f) => f.priority === "primary").map(
|
|
39
|
-
(filter) => filter instanceof DateRangeFilter ? /* @__PURE__ */ jsx(
|
|
44
|
+
(filter) => filter instanceof DateRangeFilter ? /* @__PURE__ */ jsx(
|
|
45
|
+
DateRangeFilterPopover,
|
|
46
|
+
{
|
|
47
|
+
filter,
|
|
48
|
+
isDisabled
|
|
49
|
+
},
|
|
50
|
+
filter.property
|
|
51
|
+
) : /* @__PURE__ */ jsx(
|
|
52
|
+
FilterContextMenu,
|
|
53
|
+
{
|
|
54
|
+
filter,
|
|
55
|
+
isDisabled
|
|
56
|
+
},
|
|
57
|
+
filter.property
|
|
58
|
+
)
|
|
40
59
|
);
|
|
41
60
|
};
|
|
42
61
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterContextMenus.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport
|
|
1
|
+
{"version":3,"file":"FilterContextMenus.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useList } from \"@/components/List\";\nimport { FilterContextMenu } from \"@/components/List/components/Header/components/FilterContextMenu/FilterContextMenu\";\nimport { DateRangeFilterPopover } from \"@/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover\";\nimport { DateRangeFilter } from \"@/components/List/model/filter/DateRangeFilter\";\n\ninterface Props {\n isDisabled?: boolean;\n}\n\nexport const FilterContextMenus: FC<Props> = (props) => {\n const { isDisabled } = props;\n const list = useList();\n\n return list.filters\n .filter((f) => f.priority === \"primary\")\n .map((filter) =>\n filter instanceof DateRangeFilter ? (\n <DateRangeFilterPopover\n key={filter.property}\n filter={filter}\n isDisabled={isDisabled}\n />\n ) : (\n <FilterContextMenu\n key={filter.property}\n filter={filter}\n isDisabled={isDisabled}\n />\n ),\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,kBAAA,GAAgC,CAAC,KAAA,KAAU;AACtD,EAAA,MAAM,EAAE,YAAW,GAAI,KAAA;AACvB,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,OAAO,IAAA,CAAK,QACT,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,QAAA,KAAa,SAAS,CAAA,CACtC,GAAA;AAAA,IAAI,CAAC,MAAA,KACJ,MAAA,YAAkB,eAAA,mBAChB,GAAA;AAAA,MAAC,sBAAA;AAAA,MAAA;AAAA,QAEC,MAAA;AAAA,QACA;AAAA,OAAA;AAAA,MAFK,MAAA,CAAO;AAAA,KAGd,mBAEA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QAEC,MAAA;AAAA,QACA;AAAA,OAAA;AAAA,MAFK,MAAA,CAAO;AAAA;AAGd,GAEJ;AACJ;;;;"}
|
|
@@ -60,11 +60,12 @@ const DefaultSearchFieldRender = (props) => {
|
|
|
60
60
|
);
|
|
61
61
|
};
|
|
62
62
|
const SearchField = (props) => {
|
|
63
|
-
const { search } = props;
|
|
63
|
+
const { search, isDisabled } = props;
|
|
64
64
|
const render = search.render ?? DefaultSearchFieldRender;
|
|
65
65
|
return createElement(render, {
|
|
66
66
|
value: search.value,
|
|
67
67
|
onChange: search.setValue.bind(search),
|
|
68
|
+
isDisabled,
|
|
68
69
|
...search.textFieldProps
|
|
69
70
|
});
|
|
70
71
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchField.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/SearchField/SearchField.tsx"],"sourcesContent":["import type { FC, KeyboardEvent } from \"react\";\nimport { createElement, useEffect, useState } from \"react\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport type { Search } from \"@/components/List/model/search/Search\";\nimport type { SearchFieldRenderComponent } from \"@/components/List/model/search/types\";\nimport { useOnChange } from \"@/lib/hooks\";\nimport SearchFieldView from \"@/views/SearchFieldView\";\nimport styles from \"./SearchField.module.scss\";\nimport { useAriaAnnounceSearchState } from \"@/components/List/hooks/useAriaAnnounceSearchState\";\n\ninterface Props extends PropsWithClassName {\n search: Search<never>;\n}\n\nconst autoSubmitTimeout = 500;\n\nconst DefaultSearchFieldRender: SearchFieldRenderComponent = (props) => {\n const { onChange, value, autoSubmit = true, ...searchFieldProps } = props;\n\n const [searchString, setSearchString] = useState(value ?? \"\");\n const [previousSearchString, setPreviousSearchString] = useState(\"\");\n\n const submitSearch = () => {\n if (searchString.trim() === \"\") {\n onChange(undefined);\n } else if (previousSearchString !== searchString) {\n setPreviousSearchString(searchString);\n onChange(searchString);\n }\n };\n\n useEffect(() => {\n if (autoSubmit) {\n const timeout = setTimeout(() => submitSearch(), autoSubmitTimeout);\n return () => clearTimeout(timeout);\n }\n }, [searchString, autoSubmit]);\n\n useAriaAnnounceSearchState();\n\n useOnChange(value, () => {\n setSearchString(value ?? \"\");\n }, [searchString]);\n\n const clearSearch = () => {\n onChange(undefined);\n setSearchString(\"\");\n };\n\n const handleKeyPress = (e: KeyboardEvent) => {\n if (e.key === \"Enter\" && !autoSubmit) {\n submitSearch();\n } else if (e.key === \"Escape\") {\n clearSearch();\n }\n };\n\n return (\n <SearchFieldView\n className={styles.searchField}\n value={searchString}\n onKeyUp={handleKeyPress}\n onChange={(value) => setSearchString(value)}\n onClear={clearSearch}\n {...searchFieldProps}\n />\n );\n};\n\nexport const SearchField: FC<Props> = (props) => {\n const { search } = props;\n const render = search.render ?? DefaultSearchFieldRender;\n\n return createElement(render, {\n value: search.value,\n onChange: search.setValue.bind(search),\n ...search.textFieldProps,\n });\n};\n\nexport default SearchField;\n"],"names":["value"],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SearchField.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/SearchField/SearchField.tsx"],"sourcesContent":["import type { FC, KeyboardEvent } from \"react\";\nimport { createElement, useEffect, useState } from \"react\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport type { Search } from \"@/components/List/model/search/Search\";\nimport type { SearchFieldRenderComponent } from \"@/components/List/model/search/types\";\nimport { useOnChange } from \"@/lib/hooks\";\nimport SearchFieldView from \"@/views/SearchFieldView\";\nimport styles from \"./SearchField.module.scss\";\nimport { useAriaAnnounceSearchState } from \"@/components/List/hooks/useAriaAnnounceSearchState\";\n\ninterface Props extends PropsWithClassName {\n search: Search<never>;\n isDisabled?: boolean;\n}\n\nconst autoSubmitTimeout = 500;\n\nconst DefaultSearchFieldRender: SearchFieldRenderComponent = (props) => {\n const { onChange, value, autoSubmit = true, ...searchFieldProps } = props;\n\n const [searchString, setSearchString] = useState(value ?? \"\");\n const [previousSearchString, setPreviousSearchString] = useState(\"\");\n\n const submitSearch = () => {\n if (searchString.trim() === \"\") {\n onChange(undefined);\n } else if (previousSearchString !== searchString) {\n setPreviousSearchString(searchString);\n onChange(searchString);\n }\n };\n\n useEffect(() => {\n if (autoSubmit) {\n const timeout = setTimeout(() => submitSearch(), autoSubmitTimeout);\n return () => clearTimeout(timeout);\n }\n }, [searchString, autoSubmit]);\n\n useAriaAnnounceSearchState();\n\n useOnChange(value, () => {\n setSearchString(value ?? \"\");\n }, [searchString]);\n\n const clearSearch = () => {\n onChange(undefined);\n setSearchString(\"\");\n };\n\n const handleKeyPress = (e: KeyboardEvent) => {\n if (e.key === \"Enter\" && !autoSubmit) {\n submitSearch();\n } else if (e.key === \"Escape\") {\n clearSearch();\n }\n };\n\n return (\n <SearchFieldView\n className={styles.searchField}\n value={searchString}\n onKeyUp={handleKeyPress}\n onChange={(value) => setSearchString(value)}\n onClear={clearSearch}\n {...searchFieldProps}\n />\n );\n};\n\nexport const SearchField: FC<Props> = (props) => {\n const { search, isDisabled } = props;\n\n const render = search.render ?? DefaultSearchFieldRender;\n\n return createElement(render, {\n value: search.value,\n onChange: search.setValue.bind(search),\n isDisabled,\n ...search.textFieldProps,\n });\n};\n\nexport default SearchField;\n"],"names":["value"],"mappings":";;;;;;;;;;;;;AAeA,MAAM,iBAAA,GAAoB,GAAA;AAE1B,MAAM,wBAAA,GAAuD,CAAC,KAAA,KAAU;AACtE,EAAA,MAAM,EAAE,QAAA,EAAU,KAAA,EAAO,aAAa,IAAA,EAAM,GAAG,kBAAiB,GAAI,KAAA;AAEpE,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,QAAA,CAAS,SAAS,EAAE,CAAA;AAC5D,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,SAAS,EAAE,CAAA;AAEnE,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,IAAI,YAAA,CAAa,IAAA,EAAK,KAAM,EAAA,EAAI;AAC9B,MAAA,QAAA,CAAS,MAAS,CAAA;AAAA,IACpB,CAAA,MAAA,IAAW,yBAAyB,YAAA,EAAc;AAChD,MAAA,uBAAA,CAAwB,YAAY,CAAA;AACpC,MAAA,QAAA,CAAS,YAAY,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,MAAM,OAAA,GAAU,UAAA,CAAW,MAAM,YAAA,IAAgB,iBAAiB,CAAA;AAClE,MAAA,OAAO,MAAM,aAAa,OAAO,CAAA;AAAA,IACnC;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,UAAU,CAAC,CAAA;AAE7B,EAAA,0BAAA,EAA2B;AAE3B,EAAA,WAAA,CAAY,OAAO,MAAM;AACvB,IAAA,eAAA,CAAgB,SAAS,EAAE,CAAA;AAAA,EAC7B,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,QAAA,CAAS,MAAS,CAAA;AAClB,IAAA,eAAA,CAAgB,EAAE,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqB;AAC3C,IAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAC,UAAA,EAAY;AACpC,MAAA,YAAA,EAAa;AAAA,IACf,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU;AAC7B,MAAA,WAAA,EAAY;AAAA,IACd;AAAA,EACF,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,WAAW,MAAA,CAAO,WAAA;AAAA,MAClB,KAAA,EAAO,YAAA;AAAA,MACP,OAAA,EAAS,cAAA;AAAA,MACT,QAAA,EAAU,CAACA,MAAAA,KAAU,eAAA,CAAgBA,MAAK,CAAA;AAAA,MAC1C,OAAA,EAAS,WAAA;AAAA,MACR,GAAG;AAAA;AAAA,GACN;AAEJ,CAAA;AAEO,MAAM,WAAA,GAAyB,CAAC,KAAA,KAAU;AAC/C,EAAA,MAAM,EAAE,MAAA,EAAQ,UAAA,EAAW,GAAI,KAAA;AAE/B,EAAA,MAAM,MAAA,GAAS,OAAO,MAAA,IAAU,wBAAA;AAEhC,EAAA,OAAO,cAAc,MAAA,EAAQ;AAAA,IAC3B,OAAO,MAAA,CAAO,KAAA;AAAA,IACd,QAAA,EAAU,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AAAA,IACrC,UAAA;AAAA,IACA,GAAG,MAAA,CAAO;AAAA,GACX,CAAA;AACH;;;;"}
|