@mittwald/flow-react-components 0.2.0-alpha.565 → 0.2.0-alpha.566
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 +6 -0
- package/dist/assets/doc-properties.json +23376 -23376
- package/dist/js/components/src/components/List/List.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +1 -0
- package/dist/js/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Filters/CombinedFilterMenu.mjs +2 -0
- package/dist/js/components/src/components/List/components/Header/components/Filters/CombinedFilterMenu.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenuList.mjs +2 -0
- package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenuList.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Settings/SortingMenuItem.mjs +2 -0
- package/dist/js/components/src/components/List/components/Header/components/Settings/SortingMenuItem.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenu.mjs +2 -0
- package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenu.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenuItem.mjs +2 -0
- package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenuItem.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Header/lib.mjs +2 -0
- package/dist/js/components/src/components/List/components/Header/lib.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/Items.mjs +2 -0
- package/dist/js/components/src/components/List/components/Items/Items.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs +2 -0
- package/dist/js/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/ListItemView/ListItemView.mjs +2 -0
- package/dist/js/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
- package/dist/js/components/src/components/List/components/Table/Table.mjs +2 -0
- package/dist/js/components/src/components/List/components/Table/Table.mjs.map +1 -1
- package/dist/js/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs +1 -0
- package/dist/js/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs.map +1 -1
- package/dist/js/components/src/components/List/hooks/useListMetadata.mjs +16 -0
- package/dist/js/components/src/components/List/hooks/useListMetadata.mjs.map +1 -0
- package/dist/js/components/src/components/List/model/List.mjs +1 -0
- package/dist/js/components/src/components/List/model/List.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/ReactTable.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/loading/IncrementalLoader.mjs +2 -1
- package/dist/js/components/src/components/List/model/loading/IncrementalLoader.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/loading/IncrementalLoaderState.mjs +7 -1
- package/dist/js/components/src/components/List/model/loading/IncrementalLoaderState.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/types.mjs.map +1 -1
- package/dist/js/components/src/components/List/typedList.mjs +3 -1
- package/dist/js/components/src/components/List/typedList.mjs.map +1 -1
- package/dist/js/default.mjs +1 -0
- package/dist/js/default.mjs.map +1 -1
- package/dist/js/flr-universal.mjs +1 -1
- package/dist/types/components/List/List.d.ts +2 -2
- package/dist/types/components/List/List.d.ts.map +1 -1
- package/dist/types/components/List/hooks/useListMetadata.d.ts +2 -0
- package/dist/types/components/List/hooks/useListMetadata.d.ts.map +1 -0
- 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 +4 -3
- package/dist/types/components/List/model/List.d.ts.map +1 -1
- package/dist/types/components/List/model/ReactTable.d.ts +3 -3
- package/dist/types/components/List/model/ReactTable.d.ts.map +1 -1
- package/dist/types/components/List/model/loading/IncrementalLoader.d.ts.map +1 -1
- package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts +2 -0
- package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts.map +1 -1
- package/dist/types/components/List/model/loading/types.d.ts +1 -0
- package/dist/types/components/List/model/loading/types.d.ts.map +1 -1
- package/dist/types/components/List/model/types.d.ts +3 -3
- package/dist/types/components/List/model/types.d.ts.map +1 -1
- package/dist/types/components/List/typedList.d.ts +4 -3
- package/dist/types/components/List/typedList.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.mjs","sources":["../../../../../../src/components/List/List.tsx"],"sourcesContent":["import { DataLoader } from \"@/components/List/components/DataLoader\";\nimport { Header } from \"@/components/List/components/Header/Header\";\nimport headerStyles from \"@/components/List/components/Header/Header.module.css\";\nimport { Items } from \"@/components/List/components/Items/Items\";\nimport { Table } from \"@/components/List/components/Table\";\nimport ListModel from \"@/components/List/model/List\";\nimport type { IncrementalLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { ListShape } from \"@/components/List/model/types\";\nimport { ListFilter } from \"@/components/List/setupComponents/ListFilter\";\nimport { ListItem } from \"@/components/List/setupComponents/ListItem\";\nimport { ListLoaderAsync } from \"@/components/List/setupComponents/ListLoaderAsync\";\nimport { ListLoaderAsyncResource } from \"@/components/List/setupComponents/ListLoaderAsyncResource\";\nimport { ListSearch } from \"@/components/List/setupComponents/ListSearch\";\nimport { ListSorting } from \"@/components/List/setupComponents/ListSorting\";\nimport { ListStaticData } from \"@/components/List/setupComponents/ListStaticData\";\nimport { Table as TableSetupComponent } from \"@/components/List/setupComponents/Table\";\nimport { TableBody } from \"@/components/List/setupComponents/TableBody\";\nimport { TableCell } from \"@/components/List/setupComponents/TableCell\";\nimport { TableColumn } from \"@/components/List/setupComponents/TableColumn\";\nimport { TableHeader } from \"@/components/List/setupComponents/TableHeader\";\nimport { TableRow } from \"@/components/List/setupComponents/TableRow\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { deepFilterByType, deepFindOfType } from \"@/lib/react/deepFindOfType\";\nimport DivView from \"@/views/DivView\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport type { PropsWithChildren } from \"react\";\nimport Footer from \"./components/Footer\";\nimport styles from \"./List.module.css\";\nimport { listContext } from \"./listContext\";\nimport { ListLoaderHooks } from \"@/components/List/setupComponents/ListLoaderHooks\";\n\nexport interface ListProps<T>\n extends PropsWithChildren,\n FlowComponentProps,\n Omit<\n ListShape<T>,\n | \"search\"\n | \"loader\"\n | \"itemView\"\n | \"table\"\n | \"batchesController\"\n | \"filters\"\n | \"sorting\"\n > {\n /** The number of items to be displayed on one page. */\n batchSize?: number;\n hidePagination?: boolean;\n}\n\nexport const List = flowComponent(\"List\", (props) => {\n const { children, batchSize, onChange, ref, hidePagination, ...restProps } =\n props;\n\n const listLoaderAsync = deepFindOfType(\n children,\n ListLoaderAsync<never>,\n )?.props;\n const listLoaderHooks = deepFindOfType(\n children,\n ListLoaderHooks<never>,\n )?.props;\n const listLoaderAsyncResource = deepFindOfType(\n children,\n ListLoaderAsyncResource<never>,\n )?.props;\n const listStaticData = deepFindOfType(children, ListStaticData<never>)?.props;\n\n const loaderShape: IncrementalLoaderShape<never> = {\n source: listLoaderAsync\n ? {\n ...listLoaderAsync,\n asyncLoader: listLoaderAsync.children,\n }\n : listLoaderAsyncResource\n ? {\n ...listLoaderAsyncResource,\n asyncResourceFactory: listLoaderAsyncResource.children,\n }\n : listStaticData\n ? {\n staticData: listStaticData.data,\n }\n : listLoaderHooks\n ? {\n ...listLoaderHooks,\n useData: listLoaderHooks.children,\n }\n : undefined,\n };\n\n const searchProps = deepFindOfType(children, ListSearch)?.props;\n const itemViewProps = deepFindOfType(children, ListItem<never>)?.props;\n\n const tableProps = deepFindOfType(children, TableSetupComponent)?.props;\n const tableColumnProps = deepFilterByType(children, TableColumn<never>).map(\n (c) => ({\n ...c.props,\n name: c.props.children,\n }),\n );\n const tableCellProps = deepFilterByType(children, TableCell<never>).map(\n (c) => ({\n ...c.props,\n renderFn: c.props.children,\n }),\n );\n\n const tableRowProps = deepFindOfType(children, TableRow)?.props;\n const tableHeaderProps = deepFindOfType(children, TableHeader)?.props;\n const tableBodyProps = deepFindOfType(children, TableBody)?.props;\n\n const listModel = ListModel.useNew<never>({\n onChange,\n loader: loaderShape,\n filters: deepFilterByType(children, ListFilter<never, never, never>).map(\n (f) => ({\n ...f.props,\n renderItem: f.props.children,\n }),\n ),\n search: searchProps\n ? {\n render: searchProps.children,\n textFieldProps: searchProps,\n defaultValue: searchProps.defaultValue,\n }\n : undefined,\n sorting: deepFilterByType(children, ListSorting<never>).map((s) => s.props),\n\n itemView: itemViewProps\n ? {\n ...itemViewProps,\n renderFn: itemViewProps.children,\n }\n : undefined,\n\n table:\n tableColumnProps.length > 0\n ? {\n header: {\n ...tableHeaderProps,\n columns: tableColumnProps,\n },\n body: {\n ...tableBodyProps,\n row: {\n ...tableRowProps,\n cells: tableCellProps,\n },\n },\n ...tableProps,\n }\n : undefined,\n\n batchesController: {\n batchSize,\n },\n ...restProps,\n });\n\n const propsContext: PropsContext = {\n ActionGroup: {\n tunnelId: \"actions\",\n className: headerStyles.actions,\n Button: {\n className: headerStyles.action,\n },\n },\n ListSummary: {\n tunnelId: \"listSummary\",\n },\n };\n\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <listContext.Provider\n value={{\n list: listModel,\n }}\n >\n <DataLoader />\n <DivView className={styles.list} ref={ref}>\n {children}\n <Header />\n\n <DivView className={styles.listWrapper}>\n {listModel.items.entries.length > 0 && (\n <TunnelExit id=\"listSummary\" />\n )}\n {(listModel.viewMode === \"list\" ||\n listModel.viewMode === \"tiles\") && <Items />}\n {listModel.viewMode === \"table\" && <Table />}\n </DivView>\n {!hidePagination && <Footer />}\n </DivView>\n </listContext.Provider>\n </TunnelProvider>\n </PropsContextProvider>\n );\n});\n\nexport default List;\n"],"names":["TableSetupComponent","ListModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List.mjs","sources":["../../../../../../src/components/List/List.tsx"],"sourcesContent":["import { DataLoader } from \"@/components/List/components/DataLoader\";\nimport { Header } from \"@/components/List/components/Header/Header\";\nimport headerStyles from \"@/components/List/components/Header/Header.module.css\";\nimport { Items } from \"@/components/List/components/Items/Items\";\nimport { Table } from \"@/components/List/components/Table\";\nimport ListModel from \"@/components/List/model/List\";\nimport type { IncrementalLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { ListShape } from \"@/components/List/model/types\";\nimport { ListFilter } from \"@/components/List/setupComponents/ListFilter\";\nimport { ListItem } from \"@/components/List/setupComponents/ListItem\";\nimport { ListLoaderAsync } from \"@/components/List/setupComponents/ListLoaderAsync\";\nimport { ListLoaderAsyncResource } from \"@/components/List/setupComponents/ListLoaderAsyncResource\";\nimport { ListSearch } from \"@/components/List/setupComponents/ListSearch\";\nimport { ListSorting } from \"@/components/List/setupComponents/ListSorting\";\nimport { ListStaticData } from \"@/components/List/setupComponents/ListStaticData\";\nimport { Table as TableSetupComponent } from \"@/components/List/setupComponents/Table\";\nimport { TableBody } from \"@/components/List/setupComponents/TableBody\";\nimport { TableCell } from \"@/components/List/setupComponents/TableCell\";\nimport { TableColumn } from \"@/components/List/setupComponents/TableColumn\";\nimport { TableHeader } from \"@/components/List/setupComponents/TableHeader\";\nimport { TableRow } from \"@/components/List/setupComponents/TableRow\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { deepFilterByType, deepFindOfType } from \"@/lib/react/deepFindOfType\";\nimport DivView from \"@/views/DivView\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport type { PropsWithChildren } from \"react\";\nimport Footer from \"./components/Footer\";\nimport styles from \"./List.module.css\";\nimport { listContext } from \"./listContext\";\nimport { ListLoaderHooks } from \"@/components/List/setupComponents/ListLoaderHooks\";\n\nexport interface ListProps<T, TMeta = unknown>\n extends PropsWithChildren,\n FlowComponentProps,\n Omit<\n ListShape<T, TMeta>,\n | \"search\"\n | \"loader\"\n | \"itemView\"\n | \"table\"\n | \"batchesController\"\n | \"filters\"\n | \"sorting\"\n > {\n /** The number of items to be displayed on one page. */\n batchSize?: number;\n hidePagination?: boolean;\n}\n\nexport const List = flowComponent(\"List\", (props) => {\n const { children, batchSize, onChange, ref, hidePagination, ...restProps } =\n props;\n\n const listLoaderAsync = deepFindOfType(\n children,\n ListLoaderAsync<never>,\n )?.props;\n const listLoaderHooks = deepFindOfType(\n children,\n ListLoaderHooks<never>,\n )?.props;\n const listLoaderAsyncResource = deepFindOfType(\n children,\n ListLoaderAsyncResource<never>,\n )?.props;\n const listStaticData = deepFindOfType(children, ListStaticData<never>)?.props;\n\n const loaderShape: IncrementalLoaderShape<never> = {\n source: listLoaderAsync\n ? {\n ...listLoaderAsync,\n asyncLoader: listLoaderAsync.children,\n }\n : listLoaderAsyncResource\n ? {\n ...listLoaderAsyncResource,\n asyncResourceFactory: listLoaderAsyncResource.children,\n }\n : listStaticData\n ? {\n staticData: listStaticData.data,\n }\n : listLoaderHooks\n ? {\n ...listLoaderHooks,\n useData: listLoaderHooks.children,\n }\n : undefined,\n };\n\n const searchProps = deepFindOfType(children, ListSearch)?.props;\n const itemViewProps = deepFindOfType(children, ListItem<never>)?.props;\n\n const tableProps = deepFindOfType(children, TableSetupComponent)?.props;\n const tableColumnProps = deepFilterByType(children, TableColumn<never>).map(\n (c) => ({\n ...c.props,\n name: c.props.children,\n }),\n );\n const tableCellProps = deepFilterByType(children, TableCell<never>).map(\n (c) => ({\n ...c.props,\n renderFn: c.props.children,\n }),\n );\n\n const tableRowProps = deepFindOfType(children, TableRow)?.props;\n const tableHeaderProps = deepFindOfType(children, TableHeader)?.props;\n const tableBodyProps = deepFindOfType(children, TableBody)?.props;\n\n const listModel = ListModel.useNew<never>({\n onChange,\n loader: loaderShape,\n filters: deepFilterByType(children, ListFilter<never, never, never>).map(\n (f) => ({\n ...f.props,\n renderItem: f.props.children,\n }),\n ),\n search: searchProps\n ? {\n render: searchProps.children,\n textFieldProps: searchProps,\n defaultValue: searchProps.defaultValue,\n }\n : undefined,\n sorting: deepFilterByType(children, ListSorting<never>).map((s) => s.props),\n\n itemView: itemViewProps\n ? {\n ...itemViewProps,\n renderFn: itemViewProps.children,\n }\n : undefined,\n\n table:\n tableColumnProps.length > 0\n ? {\n header: {\n ...tableHeaderProps,\n columns: tableColumnProps,\n },\n body: {\n ...tableBodyProps,\n row: {\n ...tableRowProps,\n cells: tableCellProps,\n },\n },\n ...tableProps,\n }\n : undefined,\n\n batchesController: {\n batchSize,\n },\n ...restProps,\n });\n\n const propsContext: PropsContext = {\n ActionGroup: {\n tunnelId: \"actions\",\n className: headerStyles.actions,\n Button: {\n className: headerStyles.action,\n },\n },\n ListSummary: {\n tunnelId: \"listSummary\",\n },\n };\n\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <listContext.Provider\n value={{\n list: listModel,\n }}\n >\n <DataLoader />\n <DivView className={styles.list} ref={ref}>\n {children}\n <Header />\n\n <DivView className={styles.listWrapper}>\n {listModel.items.entries.length > 0 && (\n <TunnelExit id=\"listSummary\" />\n )}\n {(listModel.viewMode === \"list\" ||\n listModel.viewMode === \"tiles\") && <Items />}\n {listModel.viewMode === \"table\" && <Table />}\n </DivView>\n {!hidePagination && <Footer />}\n </DivView>\n </listContext.Provider>\n </TunnelProvider>\n </PropsContextProvider>\n );\n});\n\nexport default List;\n"],"names":["TableSetupComponent","ListModel"],"mappings":"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"}
|
|
@@ -80,6 +80,7 @@ import '../../../../../../views/ListItemViewContentView.mjs';
|
|
|
80
80
|
import ButtonView from '../../../../../../views/ButtonView.mjs';
|
|
81
81
|
import '../../../../../../views/ContextMenuTriggerView.mjs';
|
|
82
82
|
import '../../../ListSummary/ListSummary.mjs';
|
|
83
|
+
import '../../../../listContext.mjs';
|
|
83
84
|
import '../../../../List.mjs';
|
|
84
85
|
import 'react-markdown';
|
|
85
86
|
import 'remark-gfm';
|
|
@@ -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 React from \"react\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport styles from \"./ActiveFilters.module.scss\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { Translate } from \"@/lib/react/components/Translate\";\nimport { observer } from \"mobx-react-lite\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport { TooltipTrigger } from \"@/components/Tooltip\";\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\";\n\nexport const ActiveFilters: FC = observer(() => {\n const list = useList();\n const formatter = useLocalizedStringFormatter(locales);\n\n const activeFilterValues = list.filters\n .flatMap((f) => f.values)\n .filter((v) => v.isActive);\n\n const activeFilters = activeFilterValues.map((v) => (\n <BadgeView key={v.id} onClose={() => v.deactivate()}>\n <TextView>{v.render()}</TextView>\n </BadgeView>\n ));\n\n const someFiltersChanged =\n list.filters.filter((f) => f.hasChanged()).length > 0;\n\n const storeFiltersButton = list.supportsSettingsStorage &&\n someFiltersChanged && (\n <TooltipTriggerView>\n <TooltipView>\n <Translate locales={locales}>list.filters.store</Translate>\n </TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() => list.storeFilterDefaultSettings()}\n aria-label={formatter.format(\"list.filters.store\")}\n >\n <IconSave />\n </ButtonView>\n </TooltipTriggerView>\n );\n\n const resetFiltersButton = someFiltersChanged ? (\n <TooltipTrigger>\n <TooltipView>\n <Translate locales={locales}>list.filters.reset</Translate>\n </TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() => list.resetFilters()}\n aria-label={formatter.format(\"list.filters.reset\")}\n >\n <IconUndo />\n </ButtonView>\n </TooltipTrigger>\n ) : undefined;\n\n const removeAllFiltersButton =\n activeFilters.length > 0 ? (\n <TooltipTrigger>\n <TooltipView>\n <Translate locales={locales}>list.filters.clear</Translate>\n </TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() => list.clearFilters()}\n >\n <IconClose />\n </ButtonView>\n </TooltipTrigger>\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":"
|
|
1
|
+
{"version":3,"file":"ActiveFilters.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/ActiveFilters/ActiveFilters.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport styles from \"./ActiveFilters.module.scss\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { Translate } from \"@/lib/react/components/Translate\";\nimport { observer } from \"mobx-react-lite\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport { TooltipTrigger } from \"@/components/Tooltip\";\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\";\n\nexport const ActiveFilters: FC = observer(() => {\n const list = useList();\n const formatter = useLocalizedStringFormatter(locales);\n\n const activeFilterValues = list.filters\n .flatMap((f) => f.values)\n .filter((v) => v.isActive);\n\n const activeFilters = activeFilterValues.map((v) => (\n <BadgeView key={v.id} onClose={() => v.deactivate()}>\n <TextView>{v.render()}</TextView>\n </BadgeView>\n ));\n\n const someFiltersChanged =\n list.filters.filter((f) => f.hasChanged()).length > 0;\n\n const storeFiltersButton = list.supportsSettingsStorage &&\n someFiltersChanged && (\n <TooltipTriggerView>\n <TooltipView>\n <Translate locales={locales}>list.filters.store</Translate>\n </TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() => list.storeFilterDefaultSettings()}\n aria-label={formatter.format(\"list.filters.store\")}\n >\n <IconSave />\n </ButtonView>\n </TooltipTriggerView>\n );\n\n const resetFiltersButton = someFiltersChanged ? (\n <TooltipTrigger>\n <TooltipView>\n <Translate locales={locales}>list.filters.reset</Translate>\n </TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() => list.resetFilters()}\n aria-label={formatter.format(\"list.filters.reset\")}\n >\n <IconUndo />\n </ButtonView>\n </TooltipTrigger>\n ) : undefined;\n\n const removeAllFiltersButton =\n activeFilters.length > 0 ? (\n <TooltipTrigger>\n <TooltipView>\n <Translate locales={locales}>list.filters.clear</Translate>\n </TooltipView>\n <ButtonView\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n onPress={() => list.clearFilters()}\n >\n <IconClose />\n </ButtonView>\n </TooltipTrigger>\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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"}
|
|
@@ -22,6 +22,8 @@ import ContextMenuTriggerView from '../../../../../../views/ContextMenuTriggerVi
|
|
|
22
22
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
23
23
|
import '../../../ListSummary/ListSummary.mjs';
|
|
24
24
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
25
|
+
import '../../../../listContext.mjs';
|
|
26
|
+
import 'mobx';
|
|
25
27
|
import '../../../../List.mjs';
|
|
26
28
|
import HeadingView from '../../../../../../views/HeadingView.mjs';
|
|
27
29
|
import { FilterMenuItem } from './FilterMenuItem.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CombinedFilterMenu.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Filters/CombinedFilterMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { useList } from \"@/components/List\";\nimport HeadingView from \"@/views/HeadingView\";\nimport { FilterMenuItem } from \"@/components/List/components/Header/components/Filters/FilterMenuItem\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport ContextMenuSectionView from \"@/views/ContextMenuSectionView\";\nimport SeparatorView from \"@/views/SeparatorView\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\nexport const CombinedFilterMenu: FC = () => {\n const list = useList();\n\n const filters = list.filters;\n\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n if (filters.length === 0) {\n return null;\n }\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n className={styles.mobile}\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"list.filters\")}\n >\n <IconFilter />\n </ButtonView>\n <ContextMenuView>\n {filters.map((f, i) => {\n const activeFilterKeys = f.values\n .filter((v) => v.isActive)\n .map((v) => v.id);\n\n return (\n <React.Fragment key={f.property}>\n <ContextMenuSectionView\n selectionMode={f.mode === \"one\" ? \"single\" : \"multiple\"}\n selectedKeys={activeFilterKeys}\n >\n <HeadingView>{f.name ?? f.property}</HeadingView>\n {f.values.map((v) => (\n <FilterMenuItem key={v.id} filterValue={v} />\n ))}\n </ContextMenuSectionView>\n {i + 1 < filters.length && <SeparatorView />}\n </React.Fragment>\n );\n })}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CombinedFilterMenu.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Filters/CombinedFilterMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { IconFilter } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { useList } from \"@/components/List\";\nimport HeadingView from \"@/views/HeadingView\";\nimport { FilterMenuItem } from \"@/components/List/components/Header/components/Filters/FilterMenuItem\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport ContextMenuSectionView from \"@/views/ContextMenuSectionView\";\nimport SeparatorView from \"@/views/SeparatorView\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\nexport const CombinedFilterMenu: FC = () => {\n const list = useList();\n\n const filters = list.filters;\n\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n if (filters.length === 0) {\n return null;\n }\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n className={styles.mobile}\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"list.filters\")}\n >\n <IconFilter />\n </ButtonView>\n <ContextMenuView>\n {filters.map((f, i) => {\n const activeFilterKeys = f.values\n .filter((v) => v.isActive)\n .map((v) => v.id);\n\n return (\n <React.Fragment key={f.property}>\n <ContextMenuSectionView\n selectionMode={f.mode === \"one\" ? \"single\" : \"multiple\"}\n selectedKeys={activeFilterKeys}\n >\n <HeadingView>{f.name ?? f.property}</HeadingView>\n {f.values.map((v) => (\n <FilterMenuItem key={v.id} filterValue={v} />\n ))}\n </ContextMenuSectionView>\n {i + 1 < filters.length && <SeparatorView />}\n </React.Fragment>\n );\n })}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,qBAAyB,MAAM;AAC1C,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,UAAU,IAAA,CAAK,OAAA;AAErB,EAAA,MAAM,eAAA,GAAkB,4BAA4B,OAAO,CAAA;AAE3D,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,4BACG,sBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,WAAWA,YAAA,CAAO,MAAA;AAAA,QAClB,OAAA,EAAQ,SAAA;AAAA,QACR,KAAA,EAAM,WAAA;AAAA,QACN,YAAA,EAAY,eAAA,CAAgB,MAAA,CAAO,cAAc,CAAA;AAAA,QAEjD,8BAAC,UAAA,EAAA,EAAW;AAAA;AAAA,KACd;AAAA,wBACC,eAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AACrB,MAAA,MAAM,gBAAA,GAAmB,CAAA,CAAE,MAAA,CACxB,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CACxB,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAElB,MAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAe,CAAA,CAAE,IAAA,KAAS,KAAA,GAAQ,QAAA,GAAW,UAAA;AAAA,YAC7C,YAAA,EAAc,gBAAA;AAAA,YAEd,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,QAAA,EAAS,CAAA;AAAA,cAClC,CAAA,CAAE,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBACb,GAAA,CAAC,cAAA,EAAA,EAA0B,WAAA,EAAa,CAAA,EAAA,EAAnB,CAAA,CAAE,EAAoB,CAC5C;AAAA;AAAA;AAAA,SACH;AAAA,QACC,CAAA,GAAI,CAAA,GAAI,OAAA,CAAQ,MAAA,wBAAW,aAAA,EAAA,EAAc;AAAA,OAAA,EAAA,EAVvB,EAAE,QAWvB,CAAA;AAAA,IAEJ,CAAC,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -20,6 +20,8 @@ import '../../../../../../views/ContextMenuTriggerView.mjs';
|
|
|
20
20
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
21
21
|
import '../../../ListSummary/ListSummary.mjs';
|
|
22
22
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
23
|
+
import '../../../../listContext.mjs';
|
|
24
|
+
import 'mobx';
|
|
23
25
|
import '../../../../List.mjs';
|
|
24
26
|
import { FilterMenu } from './FilterMenu.mjs';
|
|
25
27
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterMenuList.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Filters/FilterMenuList.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { useList } from \"@/components/List\";\nimport { FilterMenu } from \"@/components/List/components/Header/components/Filters/FilterMenu\";\n\nexport const FilterMenuList: FC = () => {\n const list = useList();\n\n return list.filters.map((filter) => (\n <FilterMenu key={filter.property} filter={filter} />\n ));\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilterMenuList.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Filters/FilterMenuList.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { useList } from \"@/components/List\";\nimport { FilterMenu } from \"@/components/List/components/Header/components/Filters/FilterMenu\";\n\nexport const FilterMenuList: FC = () => {\n const list = useList();\n\n return list.filters.map((filter) => (\n <FilterMenu key={filter.property} filter={filter} />\n ));\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,iBAAqB,MAAM;AACtC,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,yBACtB,UAAA,EAAA,EAAiC,MAAA,EAAA,EAAjB,MAAA,CAAO,QAA0B,CACnD,CAAA;AACH;;;;"}
|
|
@@ -21,6 +21,8 @@ import '../../../../../../views/ContextMenuTriggerView.mjs';
|
|
|
21
21
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
22
22
|
import '../../../ListSummary/ListSummary.mjs';
|
|
23
23
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
24
|
+
import '../../../../listContext.mjs';
|
|
25
|
+
import 'mobx';
|
|
24
26
|
import '../../../../List.mjs';
|
|
25
27
|
|
|
26
28
|
const SortingMenuItem = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortingMenuItem.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Settings/SortingMenuItem.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport type { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport MenuItemView from \"@/views/MenuItemView\";\nimport { useList } from \"@/components/List\";\n\ninterface Props {\n sorting: Sorting<never>;\n}\n\nexport const SortingMenuItem: FC<Props> = (props) => {\n const { sorting } = props;\n\n const list = useList();\n\n return (\n <MenuItemView\n id={sorting.id}\n onAction={() => {\n list.getSorting(sorting.id).enable();\n }}\n >\n {sorting.name ?? sorting.property}\n </MenuItemView>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SortingMenuItem.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Settings/SortingMenuItem.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport type { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport MenuItemView from \"@/views/MenuItemView\";\nimport { useList } from \"@/components/List\";\n\ninterface Props {\n sorting: Sorting<never>;\n}\n\nexport const SortingMenuItem: FC<Props> = (props) => {\n const { sorting } = props;\n\n const list = useList();\n\n return (\n <MenuItemView\n id={sorting.id}\n onAction={() => {\n list.getSorting(sorting.id).enable();\n }}\n >\n {sorting.name ?? sorting.property}\n </MenuItemView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,eAAA,GAA6B,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM,EAAE,SAAQ,GAAI,KAAA;AAEpB,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAI,OAAA,CAAQ,EAAA;AAAA,MACZ,UAAU,MAAM;AACd,QAAA,IAAA,CAAK,UAAA,CAAW,OAAA,CAAQ,EAAE,CAAA,CAAE,MAAA,EAAO;AAAA,MACrC,CAAA;AAAA,MAEC,QAAA,EAAA,OAAA,CAAQ,QAAQ,OAAA,CAAQ;AAAA;AAAA,GAC3B;AAEJ;;;;"}
|
|
@@ -22,6 +22,8 @@ import ContextMenuTriggerView from '../../../../../../views/ContextMenuTriggerVi
|
|
|
22
22
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
23
23
|
import '../../../ListSummary/ListSummary.mjs';
|
|
24
24
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
25
|
+
import '../../../../listContext.mjs';
|
|
26
|
+
import 'mobx';
|
|
25
27
|
import '../../../../List.mjs';
|
|
26
28
|
import TextView from '../../../../../../views/TextView.mjs';
|
|
27
29
|
import { ViewModeMenuItem } from './ViewModeMenuItem.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewModeMenu.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Settings/ViewModeMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport { useList } from \"@/components/List\";\nimport { IconView } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport TextView from \"@/views/TextView\";\nimport { ViewModeMenuItem } from \"@/components/List/components/Header/components/Settings/ViewModeMenuItem\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\nexport const ViewModeMenu: FC = () => {\n const stringFormatter = useLocalizedStringFormatter(locales);\n const list = useList();\n const selectedViewMode = list.viewMode;\n\n const availableViewModes = useAvailableViewModes();\n\n if (availableViewModes.length <= 1) {\n return null;\n }\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"list.settings\")}\n className={styles.desktop}\n >\n <TextView>\n {stringFormatter.format(`list.settings.viewMode.${selectedViewMode}`)}\n </TextView>\n <IconView />\n </ButtonView>\n <ContextMenuView selectionMode=\"single\" selectedKeys={[selectedViewMode]}>\n {availableViewModes.map((viewMode) => (\n <ViewModeMenuItem viewMode={viewMode} key={viewMode} />\n ))}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ViewModeMenu.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Settings/ViewModeMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport { useList } from \"@/components/List\";\nimport { IconView } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport TextView from \"@/views/TextView\";\nimport { ViewModeMenuItem } from \"@/components/List/components/Header/components/Settings/ViewModeMenuItem\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\nimport styles from \"@/components/List/components/Header/Header.module.css\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\nexport const ViewModeMenu: FC = () => {\n const stringFormatter = useLocalizedStringFormatter(locales);\n const list = useList();\n const selectedViewMode = list.viewMode;\n\n const availableViewModes = useAvailableViewModes();\n\n if (availableViewModes.length <= 1) {\n return null;\n }\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"list.settings\")}\n className={styles.desktop}\n >\n <TextView>\n {stringFormatter.format(`list.settings.viewMode.${selectedViewMode}`)}\n </TextView>\n <IconView />\n </ButtonView>\n <ContextMenuView selectionMode=\"single\" selectedKeys={[selectedViewMode]}>\n {availableViewModes.map((viewMode) => (\n <ViewModeMenuItem viewMode={viewMode} key={viewMode} />\n ))}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,eAAmB,MAAM;AACpC,EAAA,MAAM,eAAA,GAAkB,4BAA4B,OAAO,CAAA;AAC3D,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,mBAAmB,IAAA,CAAK,QAAA;AAE9B,EAAA,MAAM,qBAAqB,qBAAA,EAAsB;AAEjD,EAAA,IAAI,kBAAA,CAAmB,UAAU,CAAA,EAAG;AAClC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,4BACG,sBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,SAAA;AAAA,QACR,KAAA,EAAM,WAAA;AAAA,QACN,YAAA,EAAY,eAAA,CAAgB,MAAA,CAAO,eAAe,CAAA;AAAA,QAClD,WAAWA,YAAA,CAAO,OAAA;AAAA,QAElB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,YACE,QAAA,EAAA,eAAA,CAAgB,MAAA,CAAO,CAAA,uBAAA,EAA0B,gBAAgB,EAAE,CAAA,EACtE,CAAA;AAAA,8BACC,QAAA,EAAA,EAAS;AAAA;AAAA;AAAA,KACZ;AAAA,wBACC,eAAA,EAAA,EAAgB,aAAA,EAAc,QAAA,EAAS,YAAA,EAAc,CAAC,gBAAgB,CAAA,EACpE,QAAA,EAAA,kBAAA,CAAmB,GAAA,CAAI,CAAC,QAAA,qBACvB,GAAA,CAAC,oBAAiB,QAAA,EAAA,EAAyB,QAAU,CACtD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -22,6 +22,8 @@ import '../../../../../../views/ContextMenuTriggerView.mjs';
|
|
|
22
22
|
import '../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
23
23
|
import '../../../ListSummary/ListSummary.mjs';
|
|
24
24
|
import { useList } from '../../../../hooks/useList.mjs';
|
|
25
|
+
import '../../../../listContext.mjs';
|
|
26
|
+
import 'mobx';
|
|
25
27
|
import '../../../../List.mjs';
|
|
26
28
|
|
|
27
29
|
const ViewModeMenuItem = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewModeMenuItem.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Settings/ViewModeMenuItem.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport MenuItemView from \"@/views/MenuItemView\";\nimport type { ListViewMode } from \"@/components/List/model/types\";\nimport { useList } from \"@/components/List\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n viewMode: ListViewMode;\n}\n\nexport const ViewModeMenuItem: FC<Props> = (props) => {\n const { viewMode } = props;\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n return (\n <MenuItemView\n id={viewMode}\n onAction={() => {\n list.setViewMode(viewMode);\n }}\n >\n {stringFormatter.format(`list.settings.viewMode.${viewMode}`)}\n </MenuItemView>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ViewModeMenuItem.mjs","sources":["../../../../../../../../../../src/components/List/components/Header/components/Settings/ViewModeMenuItem.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport MenuItemView from \"@/views/MenuItemView\";\nimport type { ListViewMode } from \"@/components/List/model/types\";\nimport { useList } from \"@/components/List\";\nimport { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n viewMode: ListViewMode;\n}\n\nexport const ViewModeMenuItem: FC<Props> = (props) => {\n const { viewMode } = props;\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales);\n\n return (\n <MenuItemView\n id={viewMode}\n onAction={() => {\n list.setViewMode(viewMode);\n }}\n >\n {stringFormatter.format(`list.settings.viewMode.${viewMode}`)}\n </MenuItemView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,gBAAA,GAA8B,CAAC,KAAA,KAAU;AACpD,EAAA,MAAM,EAAE,UAAS,GAAI,KAAA;AACrB,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,eAAA,GAAkB,4BAA4B,OAAO,CAAA;AAE3D,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,QAAA;AAAA,MACJ,UAAU,MAAM;AACd,QAAA,IAAA,CAAK,YAAY,QAAQ,CAAA;AAAA,MAC3B,CAAA;AAAA,MAEC,QAAA,EAAA,eAAA,CAAgB,MAAA,CAAO,CAAA,uBAAA,EAA0B,QAAQ,CAAA,CAAE;AAAA;AAAA,GAC9D;AAEJ;;;;"}
|
|
@@ -20,6 +20,8 @@ import '../../../../views/ContextMenuTriggerView.mjs';
|
|
|
20
20
|
import '../../../ColumnLayout/ColumnLayout.mjs';
|
|
21
21
|
import '../ListSummary/ListSummary.mjs';
|
|
22
22
|
import { useList } from '../../hooks/useList.mjs';
|
|
23
|
+
import '../../listContext.mjs';
|
|
24
|
+
import 'mobx';
|
|
23
25
|
import '../../List.mjs';
|
|
24
26
|
|
|
25
27
|
const useAvailableViewModes = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.mjs","sources":["../../../../../../../../src/components/List/components/Header/lib.ts"],"sourcesContent":["import type { ListViewMode } from \"@/components/List/model/types\";\nimport { useList } from \"@/components/List\";\n\nexport const useAvailableViewModes = () => {\n const list = useList();\n\n const availableViewModes: ListViewMode[] = [];\n\n if (list.itemView?.showList) {\n availableViewModes.push(\"list\");\n }\n if (list.table) {\n availableViewModes.push(\"table\");\n }\n if (list.itemView?.showTiles) {\n availableViewModes.push(\"tiles\");\n }\n\n return availableViewModes;\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib.mjs","sources":["../../../../../../../../src/components/List/components/Header/lib.ts"],"sourcesContent":["import type { ListViewMode } from \"@/components/List/model/types\";\nimport { useList } from \"@/components/List\";\n\nexport const useAvailableViewModes = () => {\n const list = useList();\n\n const availableViewModes: ListViewMode[] = [];\n\n if (list.itemView?.showList) {\n availableViewModes.push(\"list\");\n }\n if (list.table) {\n availableViewModes.push(\"table\");\n }\n if (list.itemView?.showTiles) {\n availableViewModes.push(\"tiles\");\n }\n\n return availableViewModes;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,wBAAwB,MAAM;AACzC,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,qBAAqC,EAAC;AAE5C,EAAA,IAAI,IAAA,CAAK,UAAU,QAAA,EAAU;AAC3B,IAAA,kBAAA,CAAmB,KAAK,MAAM,CAAA;AAAA,EAChC;AACA,EAAA,IAAI,KAAK,KAAA,EAAO;AACd,IAAA,kBAAA,CAAmB,KAAK,OAAO,CAAA;AAAA,EACjC;AACA,EAAA,IAAI,IAAA,CAAK,UAAU,SAAA,EAAW;AAC5B,IAAA,kBAAA,CAAmB,KAAK,OAAO,CAAA;AAAA,EACjC;AAEA,EAAA,OAAO,kBAAA;AACT;;;;"}
|
|
@@ -19,6 +19,8 @@ import '../../../../views/ContextMenuTriggerView.mjs';
|
|
|
19
19
|
import '../../../ColumnLayout/ColumnLayout.mjs';
|
|
20
20
|
import '../ListSummary/ListSummary.mjs';
|
|
21
21
|
import { useList } from '../../hooks/useList.mjs';
|
|
22
|
+
import '../../listContext.mjs';
|
|
23
|
+
import 'mobx';
|
|
22
24
|
import '../../List.mjs';
|
|
23
25
|
import { Item } from './components/Item/Item.mjs';
|
|
24
26
|
import DivView from '../../../../views/DivView.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Items.mjs","sources":["../../../../../../../../src/components/List/components/Items/Items.tsx"],"sourcesContent":["import { EmptyView } from \"@/components/List\";\nimport Item from \"@/components/List/components/Items/components/Item/Item\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport DivView from \"@/views/DivView\";\nimport ItemsGridListView from \"@/views/ItemsGridListView\";\nimport clsx from \"clsx\";\nimport type { FC } from \"react\";\nimport styles from \"./Items.module.scss\";\nimport { FallbackItems } from \"./components/FallbackItems\";\n\nexport const Items: FC = () => {\n const list = useList();\n const tiles = list.viewMode === \"tiles\";\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n\n if (!list.itemView) {\n return null;\n }\n\n const items = list.items.entries.map((item) => (\n <Item key={item.id} data={item.data} id={item.id} />\n ));\n\n const rootClassName = clsx(\n styles.items,\n isLoading && styles.isLoading,\n tiles && styles.tiles,\n );\n\n return (\n <DivView aria-hidden={isInitiallyLoading} aria-busy={isLoading}>\n <ItemsGridListView\n className={rootClassName}\n {...list.componentProps}\n renderEmptyState={() => <EmptyView />}\n layout={list.viewMode === \"tiles\" ? \"grid\" : \"stack\"}\n tileMaxWidth={list.itemView.tileMaxWidth}\n >\n {items.length === 0 && isInitiallyLoading ? <FallbackItems /> : items}\n </ItemsGridListView>\n </DivView>\n );\n};\n\nexport default Items;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Items.mjs","sources":["../../../../../../../../src/components/List/components/Items/Items.tsx"],"sourcesContent":["import { EmptyView } from \"@/components/List\";\nimport Item from \"@/components/List/components/Items/components/Item/Item\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport DivView from \"@/views/DivView\";\nimport ItemsGridListView from \"@/views/ItemsGridListView\";\nimport clsx from \"clsx\";\nimport type { FC } from \"react\";\nimport styles from \"./Items.module.scss\";\nimport { FallbackItems } from \"./components/FallbackItems\";\n\nexport const Items: FC = () => {\n const list = useList();\n const tiles = list.viewMode === \"tiles\";\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n\n if (!list.itemView) {\n return null;\n }\n\n const items = list.items.entries.map((item) => (\n <Item key={item.id} data={item.data} id={item.id} />\n ));\n\n const rootClassName = clsx(\n styles.items,\n isLoading && styles.isLoading,\n tiles && styles.tiles,\n );\n\n return (\n <DivView aria-hidden={isInitiallyLoading} aria-busy={isLoading}>\n <ItemsGridListView\n className={rootClassName}\n {...list.componentProps}\n renderEmptyState={() => <EmptyView />}\n layout={list.viewMode === \"tiles\" ? \"grid\" : \"stack\"}\n tileMaxWidth={list.itemView.tileMaxWidth}\n >\n {items.length === 0 && isInitiallyLoading ? <FallbackItems /> : items}\n </ItemsGridListView>\n </DivView>\n );\n};\n\nexport default Items;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,QAAY,MAAM;AAC7B,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,KAAa,OAAA;AAChC,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAE7D,EAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,QAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,qBACpC,GAAA,CAAC,IAAA,EAAA,EAAmB,IAAA,EAAM,KAAK,IAAA,EAAM,EAAA,EAAI,KAAK,EAAA,EAAA,EAAnC,IAAA,CAAK,EAAkC,CACnD,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,KAAA;AAAA,IACP,aAAa,MAAA,CAAO,SAAA;AAAA,IACpB,SAAS,MAAA,CAAO;AAAA,GAClB;AAEA,EAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAa,kBAAA,EAAoB,aAAW,SAAA,EACnD,QAAA,kBAAA,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA,CAAK,cAAA;AAAA,MACT,gBAAA,EAAkB,sBAAM,GAAA,CAAC,SAAA,EAAA,EAAU,CAAA;AAAA,MACnC,MAAA,EAAQ,IAAA,CAAK,QAAA,KAAa,OAAA,GAAU,MAAA,GAAS,OAAA;AAAA,MAC7C,YAAA,EAAc,KAAK,QAAA,CAAS,YAAA;AAAA,MAE3B,gBAAM,MAAA,KAAW,CAAA,IAAK,kBAAA,mBAAqB,GAAA,CAAC,iBAAc,CAAA,GAAK;AAAA;AAAA,GAClE,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -21,6 +21,8 @@ import '../../../../../../../views/ContextMenuTriggerView.mjs';
|
|
|
21
21
|
import '../../../../../../ColumnLayout/ColumnLayout.mjs';
|
|
22
22
|
import '../../../../ListSummary/ListSummary.mjs';
|
|
23
23
|
import { useList } from '../../../../../hooks/useList.mjs';
|
|
24
|
+
import '../../../../../listContext.mjs';
|
|
25
|
+
import 'mobx';
|
|
24
26
|
import '../../../../../List.mjs';
|
|
25
27
|
import { AccordionButton } from '../components/AccordionButton.mjs';
|
|
26
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGridItemProps.mjs","sources":["../../../../../../../../../../../src/components/List/components/Items/components/Item/hooks/useGridItemProps.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport { useEffect, useId, useRef, useState } from \"react\";\nimport { useList } from \"@/components/List\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { dynamic, PropsContextProvider } from \"@/lib/propsContext\";\nimport { AccordionButton } from \"@/components/List/components/Items/components/Item/components/AccordionButton\";\n\ninterface P extends PropsWithChildren {\n data: never;\n}\n\nexport const useGridItemProps = (props: P) => {\n const { data, children: childrenFromProps } = props;\n const list = useList();\n const itemView = list.itemView;\n const onAction = list.onAction;\n\n const [isExpanded, setIsExpanded] = useState(\n itemView?.defaultExpanded?.(data) ?? false,\n );\n const contentElementId = useId();\n const itemRef = useRef<HTMLDivElement>(null);\n\n const accordion = list.accordion;\n const children = childrenFromProps ?? itemView?.render(data);\n\n useEffect(() => {\n if (accordion) {\n itemRef.current?.setAttribute(\"aria-expanded\", String(isExpanded));\n itemRef.current?.setAttribute(\"aria-controls\", contentElementId);\n }\n }, [isExpanded, contentElementId, itemRef.current, accordion]);\n\n if (!accordion) {\n return {\n gridItemProps: {\n onAction: onAction\n ? () => {\n onAction?.(data);\n }\n : undefined,\n },\n children,\n };\n }\n\n const toggleAccordion = () => {\n setIsExpanded((current) => !current);\n onAction?.(data);\n };\n\n const propsContext: PropsContext = {\n Content: {\n id: dynamic((p) => (p.slot === \"bottom\" ? contentElementId : undefined)),\n wrapWith: dynamic((p) =>\n p.slot === \"bottom\" ? (\n <AccordionButton\n contentElementId={contentElementId}\n toggle={toggleAccordion}\n isExpanded={isExpanded}\n />\n ) : undefined,\n ),\n },\n };\n\n return {\n gridItemProps: {\n ref: itemRef,\n onAction: toggleAccordion,\n },\n children: (\n <PropsContextProvider\n props={propsContext}\n dependencies={[contentElementId, isExpanded]}\n >\n {children}\n </PropsContextProvider>\n ),\n };\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGridItemProps.mjs","sources":["../../../../../../../../../../../src/components/List/components/Items/components/Item/hooks/useGridItemProps.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport { useEffect, useId, useRef, useState } from \"react\";\nimport { useList } from \"@/components/List\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { dynamic, PropsContextProvider } from \"@/lib/propsContext\";\nimport { AccordionButton } from \"@/components/List/components/Items/components/Item/components/AccordionButton\";\n\ninterface P extends PropsWithChildren {\n data: never;\n}\n\nexport const useGridItemProps = (props: P) => {\n const { data, children: childrenFromProps } = props;\n const list = useList();\n const itemView = list.itemView;\n const onAction = list.onAction;\n\n const [isExpanded, setIsExpanded] = useState(\n itemView?.defaultExpanded?.(data) ?? false,\n );\n const contentElementId = useId();\n const itemRef = useRef<HTMLDivElement>(null);\n\n const accordion = list.accordion;\n const children = childrenFromProps ?? itemView?.render(data);\n\n useEffect(() => {\n if (accordion) {\n itemRef.current?.setAttribute(\"aria-expanded\", String(isExpanded));\n itemRef.current?.setAttribute(\"aria-controls\", contentElementId);\n }\n }, [isExpanded, contentElementId, itemRef.current, accordion]);\n\n if (!accordion) {\n return {\n gridItemProps: {\n onAction: onAction\n ? () => {\n onAction?.(data);\n }\n : undefined,\n },\n children,\n };\n }\n\n const toggleAccordion = () => {\n setIsExpanded((current) => !current);\n onAction?.(data);\n };\n\n const propsContext: PropsContext = {\n Content: {\n id: dynamic((p) => (p.slot === \"bottom\" ? contentElementId : undefined)),\n wrapWith: dynamic((p) =>\n p.slot === \"bottom\" ? (\n <AccordionButton\n contentElementId={contentElementId}\n toggle={toggleAccordion}\n isExpanded={isExpanded}\n />\n ) : undefined,\n ),\n },\n };\n\n return {\n gridItemProps: {\n ref: itemRef,\n onAction: toggleAccordion,\n },\n children: (\n <PropsContextProvider\n props={propsContext}\n dependencies={[contentElementId, isExpanded]}\n >\n {children}\n </PropsContextProvider>\n ),\n };\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAa;AAC5C,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,iBAAA,EAAkB,GAAI,KAAA;AAC9C,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AACtB,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AAEtB,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,QAAA;AAAA,IAClC,QAAA,EAAU,eAAA,GAAkB,IAAI,CAAA,IAAK;AAAA,GACvC;AACA,EAAA,MAAM,mBAAmB,KAAA,EAAM;AAC/B,EAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAE3C,EAAA,MAAM,YAAY,IAAA,CAAK,SAAA;AACvB,EAAA,MAAM,QAAA,GAAW,iBAAA,IAAqB,QAAA,EAAU,MAAA,CAAO,IAAI,CAAA;AAE3D,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,OAAA,CAAQ,OAAA,EAAS,YAAA,CAAa,eAAA,EAAiB,MAAA,CAAO,UAAU,CAAC,CAAA;AACjE,MAAA,OAAA,CAAQ,OAAA,EAAS,YAAA,CAAa,eAAA,EAAiB,gBAAgB,CAAA;AAAA,IACjE;AAAA,EACF,GAAG,CAAC,UAAA,EAAY,kBAAkB,OAAA,CAAQ,OAAA,EAAS,SAAS,CAAC,CAAA;AAE7D,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,OAAO;AAAA,MACL,aAAA,EAAe;AAAA,QACb,QAAA,EAAU,WACN,MAAM;AACJ,UAAA,QAAA,GAAW,IAAI,CAAA;AAAA,QACjB,CAAA,GACA;AAAA,OACN;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,aAAA,CAAc,CAAC,OAAA,KAAY,CAAC,OAAO,CAAA;AACnC,IAAA,QAAA,GAAW,IAAI,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,OAAA,EAAS;AAAA,MACP,EAAA,EAAI,QAAQ,CAAC,CAAA,KAAO,EAAE,IAAA,KAAS,QAAA,GAAW,mBAAmB,MAAU,CAAA;AAAA,MACvE,QAAA,EAAU,OAAA;AAAA,QAAQ,CAAC,CAAA,KACjB,CAAA,CAAE,IAAA,KAAS,QAAA,mBACT,GAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,gBAAA;AAAA,YACA,MAAA,EAAQ,eAAA;AAAA,YACR;AAAA;AAAA,SACF,GACE;AAAA;AACN;AACF,GACF;AAEA,EAAA,OAAO;AAAA,IACL,aAAA,EAAe;AAAA,MACb,GAAA,EAAK,OAAA;AAAA,MACL,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,QAAA,kBACE,GAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,YAAA;AAAA,QACP,YAAA,EAAc,CAAC,gBAAA,EAAkB,UAAU,CAAA;AAAA,QAE1C;AAAA;AAAA;AACH,GAEJ;AACF;;;;"}
|
|
@@ -21,6 +21,8 @@ import 'react-aria';
|
|
|
21
21
|
import '../../../ColumnLayout/ColumnLayout.mjs';
|
|
22
22
|
import '../ListSummary/ListSummary.mjs';
|
|
23
23
|
import { useList } from '../../hooks/useList.mjs';
|
|
24
|
+
import '../../listContext.mjs';
|
|
25
|
+
import 'mobx';
|
|
24
26
|
import '../../List.mjs';
|
|
25
27
|
|
|
26
28
|
const ListItemView = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemView.mjs","sources":["../../../../../../../../src/components/List/components/ListItemView/ListItemView.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./ListItemView.module.scss\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport ListItemViewContentView from \"@/views/ListItemViewContentView\";\nimport {\n dynamic,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport { OptionsButton } from \"@/components/List/components/Items/components/Item/components/OptionsButton\";\nimport { useList } from \"@/components/List\";\nimport type { ColumnLayoutProps } from \"@/components/ColumnLayout\";\n\nexport type ListItemViewProps = PropsWithChildren &\n Pick<ColumnLayoutProps, \"s\" | \"m\" | \"l\">;\n\nexport const ListItemView = (props: ListItemViewProps) => {\n const { children, s, m, l } = props;\n const list = useList();\n\n const propsContext: PropsContext = {\n ContextMenu: {\n tunnelId: \"button\",\n wrapWith: <OptionsButton className={styles.action} />,\n },\n Button: {\n tunnelId: \"button\",\n size: dynamic(() => (useList().viewMode === \"tiles\" ? \"s\" : \"m\")),\n },\n ActionGroup: {\n tunnelId: \"button\",\n Button: {\n tunnelId: null,\n },\n },\n Avatar: {\n tunnelId: \"avatar\",\n },\n Heading: {\n tunnelId: \"title\",\n },\n Text: {\n tunnelId: \"text\",\n },\n Content: {\n tunnelId: dynamic((p) => (p.slot === \"bottom\" ? \"bottom\" : undefined)),\n },\n Checkbox: {\n tunnelId: \"checkbox\",\n },\n };\n\n return (\n <TunnelProvider>\n <ListItemViewContentView\n viewMode={list.viewMode}\n title={<TunnelExit id=\"title\" />}\n avatar={<TunnelExit id=\"avatar\" />}\n button={<TunnelExit id=\"button\" />}\n subTitle={<TunnelExit id=\"text\" />}\n bottom={<TunnelExit id=\"bottom\" />}\n checkbox={<TunnelExit id=\"checkbox\" />}\n s={s}\n m={m}\n l={l}\n >\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </ListItemViewContentView>\n </TunnelProvider>\n );\n};\n\nexport default ListItemView;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ListItemView.mjs","sources":["../../../../../../../../src/components/List/components/ListItemView/ListItemView.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./ListItemView.module.scss\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport ListItemViewContentView from \"@/views/ListItemViewContentView\";\nimport {\n dynamic,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport { OptionsButton } from \"@/components/List/components/Items/components/Item/components/OptionsButton\";\nimport { useList } from \"@/components/List\";\nimport type { ColumnLayoutProps } from \"@/components/ColumnLayout\";\n\nexport type ListItemViewProps = PropsWithChildren &\n Pick<ColumnLayoutProps, \"s\" | \"m\" | \"l\">;\n\nexport const ListItemView = (props: ListItemViewProps) => {\n const { children, s, m, l } = props;\n const list = useList();\n\n const propsContext: PropsContext = {\n ContextMenu: {\n tunnelId: \"button\",\n wrapWith: <OptionsButton className={styles.action} />,\n },\n Button: {\n tunnelId: \"button\",\n size: dynamic(() => (useList().viewMode === \"tiles\" ? \"s\" : \"m\")),\n },\n ActionGroup: {\n tunnelId: \"button\",\n Button: {\n tunnelId: null,\n },\n },\n Avatar: {\n tunnelId: \"avatar\",\n },\n Heading: {\n tunnelId: \"title\",\n },\n Text: {\n tunnelId: \"text\",\n },\n Content: {\n tunnelId: dynamic((p) => (p.slot === \"bottom\" ? \"bottom\" : undefined)),\n },\n Checkbox: {\n tunnelId: \"checkbox\",\n },\n };\n\n return (\n <TunnelProvider>\n <ListItemViewContentView\n viewMode={list.viewMode}\n title={<TunnelExit id=\"title\" />}\n avatar={<TunnelExit id=\"avatar\" />}\n button={<TunnelExit id=\"button\" />}\n subTitle={<TunnelExit id=\"text\" />}\n bottom={<TunnelExit id=\"bottom\" />}\n checkbox={<TunnelExit id=\"checkbox\" />}\n s={s}\n m={m}\n l={l}\n >\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </ListItemViewContentView>\n </TunnelProvider>\n );\n};\n\nexport default ListItemView;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAM,YAAA,GAAe,CAAC,KAAA,KAA6B;AACxD,EAAA,MAAM,EAAE,QAAA,EAAU,CAAA,EAAG,CAAA,EAAG,GAAE,GAAI,KAAA;AAC9B,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,WAAA,EAAa;AAAA,MACX,QAAA,EAAU,QAAA;AAAA,MACV,QAAA,kBAAU,GAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAW,OAAO,MAAA,EAAQ;AAAA,KACrD;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU,QAAA;AAAA,MACV,IAAA,EAAM,QAAQ,MAAO,OAAA,GAAU,QAAA,KAAa,OAAA,GAAU,MAAM,GAAI;AAAA,KAClE;AAAA,IACA,WAAA,EAAa;AAAA,MACX,QAAA,EAAU,QAAA;AAAA,MACV,MAAA,EAAQ;AAAA,QACN,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,OAAA,EAAS;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,OAAA,EAAS;AAAA,MACP,QAAA,EAAU,QAAQ,CAAC,CAAA,KAAO,EAAE,IAAA,KAAS,QAAA,GAAW,WAAW,MAAU;AAAA,KACvE;AAAA,IACA,QAAA,EAAU;AAAA,MACR,QAAA,EAAU;AAAA;AACZ,GACF;AAEA,EAAA,2BACG,cAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,KAAA,kBAAO,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,OAAA,EAAQ,CAAA;AAAA,MAC9B,MAAA,kBAAQ,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,QAAA,EAAS,CAAA;AAAA,MAChC,MAAA,kBAAQ,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,QAAA,EAAS,CAAA;AAAA,MAChC,QAAA,kBAAU,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,MAAA,EAAO,CAAA;AAAA,MAChC,MAAA,kBAAQ,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,QAAA,EAAS,CAAA;AAAA,MAChC,QAAA,kBAAU,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,UAAA,EAAW,CAAA;AAAA,MACpC,CAAA;AAAA,MACA,CAAA;AAAA,MACA,CAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC1B,QAAA,EACH;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -20,6 +20,8 @@ import '../../../../views/ContextMenuTriggerView.mjs';
|
|
|
20
20
|
import '../../../ColumnLayout/ColumnLayout.mjs';
|
|
21
21
|
import '../ListSummary/ListSummary.mjs';
|
|
22
22
|
import { useList } from '../../hooks/useList.mjs';
|
|
23
|
+
import '../../listContext.mjs';
|
|
24
|
+
import 'mobx';
|
|
23
25
|
import '../../List.mjs';
|
|
24
26
|
import { TableLoadingView } from './components/TableLoadingView.mjs';
|
|
25
27
|
import styles from './Table.module.css.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.mjs","sources":["../../../../../../../../src/components/List/components/Table/Table.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { useList } from \"@/components/List\";\nimport { TableLoadingView } from \"@/components/List/components/Table/components/TableLoadingView\";\nimport styles from \"./Table.module.css\";\nimport clsx from \"clsx\";\nimport ListEmptyViewView from \"@/views/ListEmptyViewView\";\nimport TableView from \"@/views/TableView\";\nimport TableHeaderView from \"@/views/TableHeaderView\";\nimport TableBodyView from \"@/views/TableBodyView\";\nimport TableRowView from \"@/views/TableRowView\";\nimport TableCellView from \"@/views/TableCellView\";\nimport TableColumnView from \"@/views/TableColumnView\";\n\nexport const Table: FC = () => {\n const list = useList();\n const table = list.table;\n const listIsEmpty = list.useIsEmpty();\n\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n\n if (!table) {\n return null;\n }\n\n if (isInitiallyLoading) {\n return <TableLoadingView {...table.componentProps} />;\n }\n\n if (listIsEmpty) {\n return <ListEmptyViewView />;\n }\n\n const rowAction = table.list.onAction;\n\n const tableClassName = clsx(\n styles.table,\n isLoading && styles.isLoading,\n table.componentProps.className,\n );\n\n return (\n <TableView\n {...list.componentProps}\n {...table.componentProps}\n className={tableClassName}\n >\n <TableHeaderView {...table.header.componentProps}>\n {table.header.columns.map((col, i) => (\n <TableColumnView key={i} {...col.componentProps} />\n ))}\n </TableHeaderView>\n <TableBodyView {...table.body.componentProps}>\n {list.items.entries.map((item) => (\n <TableRowView\n className={(props) =>\n clsx(\n styles.row,\n rowAction && styles.hasAction,\n table.body.row.componentProps.className,\n props.isSelected && styles.isSelected,\n )\n }\n key={item.id}\n id={item.id}\n onAction={rowAction ? () => rowAction(item.data) : undefined}\n {...table.body.row.componentProps}\n >\n {table.body.row?.cells.map((cell, i) => (\n <TableCellView key={i} {...cell.componentProps}>\n {cell.renderFn ? cell.renderFn(item.data, list) : undefined}\n </TableCellView>\n ))}\n </TableRowView>\n ))}\n </TableBodyView>\n </TableView>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Table.mjs","sources":["../../../../../../../../src/components/List/components/Table/Table.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport { useList } from \"@/components/List\";\nimport { TableLoadingView } from \"@/components/List/components/Table/components/TableLoadingView\";\nimport styles from \"./Table.module.css\";\nimport clsx from \"clsx\";\nimport ListEmptyViewView from \"@/views/ListEmptyViewView\";\nimport TableView from \"@/views/TableView\";\nimport TableHeaderView from \"@/views/TableHeaderView\";\nimport TableBodyView from \"@/views/TableBodyView\";\nimport TableRowView from \"@/views/TableRowView\";\nimport TableCellView from \"@/views/TableCellView\";\nimport TableColumnView from \"@/views/TableColumnView\";\n\nexport const Table: FC = () => {\n const list = useList();\n const table = list.table;\n const listIsEmpty = list.useIsEmpty();\n\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n\n if (!table) {\n return null;\n }\n\n if (isInitiallyLoading) {\n return <TableLoadingView {...table.componentProps} />;\n }\n\n if (listIsEmpty) {\n return <ListEmptyViewView />;\n }\n\n const rowAction = table.list.onAction;\n\n const tableClassName = clsx(\n styles.table,\n isLoading && styles.isLoading,\n table.componentProps.className,\n );\n\n return (\n <TableView\n {...list.componentProps}\n {...table.componentProps}\n className={tableClassName}\n >\n <TableHeaderView {...table.header.componentProps}>\n {table.header.columns.map((col, i) => (\n <TableColumnView key={i} {...col.componentProps} />\n ))}\n </TableHeaderView>\n <TableBodyView {...table.body.componentProps}>\n {list.items.entries.map((item) => (\n <TableRowView\n className={(props) =>\n clsx(\n styles.row,\n rowAction && styles.hasAction,\n table.body.row.componentProps.className,\n props.isSelected && styles.isSelected,\n )\n }\n key={item.id}\n id={item.id}\n onAction={rowAction ? () => rowAction(item.data) : undefined}\n {...table.body.row.componentProps}\n >\n {table.body.row?.cells.map((cell, i) => (\n <TableCellView key={i} {...cell.componentProps}>\n {cell.renderFn ? cell.renderFn(item.data, list) : undefined}\n </TableCellView>\n ))}\n </TableRowView>\n ))}\n </TableBodyView>\n </TableView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAM,QAAY,MAAM;AAC7B,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,QAAQ,IAAA,CAAK,KAAA;AACnB,EAAA,MAAM,WAAA,GAAc,KAAK,UAAA,EAAW;AAEpC,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAE7D,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,kBAAA,EAAoB;AACtB,IAAA,uBAAO,GAAA,CAAC,gBAAA,EAAA,EAAkB,GAAG,KAAA,CAAM,cAAA,EAAgB,CAAA;AAAA,EACrD;AAEA,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,2BAAQ,iBAAA,EAAA,EAAkB,CAAA;AAAA,EAC5B;AAEA,EAAA,MAAM,SAAA,GAAY,MAAM,IAAA,CAAK,QAAA;AAE7B,EAAA,MAAM,cAAA,GAAiB,IAAA;AAAA,IACrB,MAAA,CAAO,KAAA;AAAA,IACP,aAAa,MAAA,CAAO,SAAA;AAAA,IACpB,MAAM,cAAA,CAAe;AAAA,GACvB;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA,CAAK,cAAA;AAAA,MACR,GAAG,KAAA,CAAM,cAAA;AAAA,MACV,SAAA,EAAW,cAAA;AAAA,MAEX,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,mBAAiB,GAAG,KAAA,CAAM,OAAO,cAAA,EAC/B,QAAA,EAAA,KAAA,CAAM,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAA,EAAK,CAAA,yBAC7B,eAAA,EAAA,EAAyB,GAAG,IAAI,cAAA,EAAA,EAAX,CAA2B,CAClD,CAAA,EACH,CAAA;AAAA,wBACA,GAAA,CAAC,aAAA,EAAA,EAAe,GAAG,KAAA,CAAM,IAAA,CAAK,cAAA,EAC3B,QAAA,EAAA,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,qBACvB,GAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,CAAC,KAAA,KACV,IAAA;AAAA,cACE,MAAA,CAAO,GAAA;AAAA,cACP,aAAa,MAAA,CAAO,SAAA;AAAA,cACpB,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,cAAA,CAAe,SAAA;AAAA,cAC9B,KAAA,CAAM,cAAc,MAAA,CAAO;AAAA,aAC7B;AAAA,YAGF,IAAI,IAAA,CAAK,EAAA;AAAA,YACT,UAAU,SAAA,GAAY,MAAM,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA,GAAI,MAAA;AAAA,YAClD,GAAG,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,cAAA;AAAA,YAElB,QAAA,EAAA,KAAA,CAAM,KAAK,GAAA,EAAK,KAAA,CAAM,IAAI,CAAC,IAAA,EAAM,CAAA,qBAChC,GAAA,CAAC,aAAA,EAAA,EAAuB,GAAG,KAAK,cAAA,EAC7B,QAAA,EAAA,IAAA,CAAK,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,MAAM,IAAI,CAAA,GAAI,MAAA,EAAA,EADhC,CAEpB,CACD;AAAA,WAAA;AAAA,UATI,IAAA,CAAK;AAAA,SAWb,CAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -73,6 +73,7 @@ import '../../../views/ButtonView.mjs';
|
|
|
73
73
|
import '../../../views/ContextMenuTriggerView.mjs';
|
|
74
74
|
import '../components/ListSummary/ListSummary.mjs';
|
|
75
75
|
import { useList } from './useList.mjs';
|
|
76
|
+
import '../listContext.mjs';
|
|
76
77
|
import '../List.mjs';
|
|
77
78
|
import 'react-markdown';
|
|
78
79
|
import 'remark-gfm';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAriaAnnounceSearchState.mjs","sources":["../../../../../../../src/components/List/hooks/useAriaAnnounceSearchState.ts"],"sourcesContent":["import { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../locales/*.locale.json\";\nimport { announce } from \"@react-aria/live-announcer\";\nimport { useList } from \"@/index/default\";\nimport { useDebounceCallback } from \"usehooks-ts\";\nimport { useEffect } from \"react\";\n\nconst announceDebounceMs = 600;\n\nexport const useAriaAnnounceSearchState = (): void => {\n const formatter = useLocalizedStringFormatter(locales);\n const list = useList();\n const debouncedAnnounce = useDebounceCallback(announce, announceDebounceMs);\n\n const searchTerm = list.search?.value;\n const resultCount = list.batches.getTotalItemsCount();\n const isLoading = list.loader.loaderState.useIsLoading();\n\n useEffect(() => {\n if (isLoading || !searchTerm) {\n debouncedAnnounce.cancel();\n return;\n }\n\n const text = formatter.format(\n resultCount > 0\n ? \"list.search.announce.result\"\n : \"list.search.announce.noResult\",\n {\n resultCount,\n searchTerm,\n },\n );\n\n debouncedAnnounce(text, \"polite\");\n }, [searchTerm, resultCount, isLoading]);\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAriaAnnounceSearchState.mjs","sources":["../../../../../../../src/components/List/hooks/useAriaAnnounceSearchState.ts"],"sourcesContent":["import { useLocalizedStringFormatter } from \"react-aria\";\nimport locales from \"../locales/*.locale.json\";\nimport { announce } from \"@react-aria/live-announcer\";\nimport { useList } from \"@/index/default\";\nimport { useDebounceCallback } from \"usehooks-ts\";\nimport { useEffect } from \"react\";\n\nconst announceDebounceMs = 600;\n\nexport const useAriaAnnounceSearchState = (): void => {\n const formatter = useLocalizedStringFormatter(locales);\n const list = useList();\n const debouncedAnnounce = useDebounceCallback(announce, announceDebounceMs);\n\n const searchTerm = list.search?.value;\n const resultCount = list.batches.getTotalItemsCount();\n const isLoading = list.loader.loaderState.useIsLoading();\n\n useEffect(() => {\n if (isLoading || !searchTerm) {\n debouncedAnnounce.cancel();\n return;\n }\n\n const text = formatter.format(\n resultCount > 0\n ? \"list.search.announce.result\"\n : \"list.search.announce.noResult\",\n {\n resultCount,\n searchTerm,\n },\n );\n\n debouncedAnnounce(text, \"polite\");\n }, [searchTerm, resultCount, isLoading]);\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,kBAAA,GAAqB,GAAA;AAEpB,MAAM,6BAA6B,MAAY;AACpD,EAAA,MAAM,SAAA,GAAY,4BAA4B,OAAO,CAAA;AACrD,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,iBAAA,GAAoB,mBAAA,CAAoB,QAAA,EAAU,kBAAkB,CAAA;AAE1E,EAAA,MAAM,UAAA,GAAa,KAAK,MAAA,EAAQ,KAAA;AAChC,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,OAAA,CAAQ,kBAAA,EAAmB;AACpD,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,WAAA,CAAY,YAAA,EAAa;AAEvD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,SAAA,IAAa,CAAC,UAAA,EAAY;AAC5B,MAAA,iBAAA,CAAkB,MAAA,EAAO;AACzB,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,OAAO,SAAA,CAAU,MAAA;AAAA,MACrB,WAAA,GAAc,IACV,6BAAA,GACA,+BAAA;AAAA,MACJ;AAAA,QACE,WAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,iBAAA,CAAkB,MAAM,QAAQ,CAAA;AAAA,EAClC,CAAA,EAAG,CAAC,UAAA,EAAY,WAAA,EAAa,SAAS,CAAC,CAAA;AACzC;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
/* */
|
|
3
|
+
import { useContext } from 'react';
|
|
4
|
+
import { listContext } from '../listContext.mjs';
|
|
5
|
+
import { useSelector } from '../../../lib/mobx/useSelector.mjs';
|
|
6
|
+
|
|
7
|
+
function useListMetadata() {
|
|
8
|
+
const { list } = useContext(listContext);
|
|
9
|
+
return useSelector(
|
|
10
|
+
() => list?.loader?.loaderState?.metadata,
|
|
11
|
+
[list]
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { useListMetadata };
|
|
16
|
+
//# sourceMappingURL=useListMetadata.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useListMetadata.mjs","sources":["../../../../../../../src/components/List/hooks/useListMetadata.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { listContext } from \"../listContext\";\nimport useSelector from \"@/lib/mobx/useSelector\";\n\nexport function useListMetadata<T = unknown>(): T | undefined {\n const { list } = useContext(listContext);\n return useSelector(\n () => list?.loader?.loaderState?.metadata as T | undefined,\n [list],\n );\n}\n"],"names":[],"mappings":";;;;AAIO,SAAS,eAAA,GAA8C;AAC5D,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,UAAA,CAAW,WAAW,CAAA;AACvC,EAAA,OAAO,WAAA;AAAA,IACL,MAAM,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,QAAA;AAAA,IACjC,CAAC,IAAI;AAAA,GACP;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.mjs","sources":["../../../../../../../src/components/List/model/List.ts"],"sourcesContent":["import { ItemCollection } from \"@/components/List/model/item/ItemCollection\";\nimport { BatchesController } from \"@/components/List/model/pagination/BatchesController\";\nimport { Filter } from \"./filter/Filter\";\nimport { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport ReactTable from \"@/components/List/model/ReactTable\";\nimport type {\n GetItemId,\n ItemActionFn,\n ListShape,\n ListSupportedComponentProps,\n ListViewMode,\n} from \"@/components/List/model/types\";\nimport { IncrementalLoader } from \"@/components/List/model/loading/IncrementalLoader\";\nimport invariant from \"invariant\";\nimport { Search } from \"@/components/List/model/search/Search\";\nimport { ItemView } from \"@/components/List/model/item/ItemView\";\nimport { Table } from \"@/components/List/model/table/Table\";\nimport { useEffect, useState } from \"react\";\nimport { useSettings } from \"@/components/SettingsProvider/SettingsProvider\";\nimport type { SettingsStore } from \"@/components/SettingsProvider/models/SettingsStore\";\nimport z from \"zod\";\n\nexport class List<T> {\n public static readonly viewModeSettingsStorageSchema = z\n .enum([\"list\", \"table\", \"tiles\"])\n .optional();\n public readonly filters: Filter<T, never, never>[];\n public readonly itemView?: ItemView<T>;\n public readonly table?: Table<T>;\n public readonly search?: Search<T>;\n public readonly sorting: Sorting<T>[];\n public readonly items: ItemCollection<T>;\n public readonly reactTable: ReactTable<T>;\n public readonly batches: BatchesController<T>;\n public readonly loader: IncrementalLoader<T>;\n public readonly onAction?: ItemActionFn<T>;\n public readonly accordion: boolean;\n public readonly getItemId?: GetItemId<T>;\n public readonly componentProps: ListSupportedComponentProps;\n public viewMode: ListViewMode;\n public readonly setViewMode: (viewMode: ListViewMode) => void;\n public readonly supportsSettingsStorage: boolean;\n public readonly settingStorageKey?: string;\n private readonly settingsStore?: SettingsStore;\n private readonly viewModeStorageKey?: string;\n private readonly filterSettingsStorageKey?: string;\n private readonly sortingStorageKey?: string;\n\n public constructor(shape: ListShape<T>) {\n const {\n settingStorageKey,\n itemView,\n table,\n filters = [],\n sorting = [],\n batchesController,\n onChange,\n loader,\n search,\n onAction,\n getItemId,\n defaultViewMode,\n accordion = false,\n ...componentProps\n } = shape;\n\n this.settingsStore = useSettings();\n this.settingStorageKey = settingStorageKey;\n this.filterSettingsStorageKey = settingStorageKey\n ? `${settingStorageKey}.activeFilters`\n : undefined;\n this.viewModeStorageKey = settingStorageKey\n ? `${settingStorageKey}.viewMode`\n : undefined;\n this.sortingStorageKey = settingStorageKey\n ? `${settingStorageKey}.sorting`\n : undefined;\n this.supportsSettingsStorage = !!this.settingStorageKey;\n\n this.items = new ItemCollection(this);\n this.filters = filters.map((shape) => new Filter(this, shape));\n this.sorting = sorting.map((shape) => new Sorting<T>(this, shape));\n this.search = search ? new Search(this, search) : undefined;\n this.itemView = itemView ? new ItemView(this, itemView) : undefined;\n this.accordion = accordion;\n this.table = table ? new Table(this, table) : undefined;\n this.batches = new BatchesController(this, batchesController);\n this.componentProps = componentProps;\n this.loader = IncrementalLoader.useNew<T>(this, loader);\n this.onAction = onAction;\n this.getItemId = getItemId;\n this.reactTable = ReactTable.useNew(this, onChange, {\n manualFiltering: this.loader.manualFiltering,\n manualPagination: this.loader.manualPagination,\n manualSorting: this.loader.manualSorting,\n });\n\n const [viewMode, setViewMode] = useState(\n this.getStoredViewModeDefaultSetting() ?? defaultViewMode ?? \"list\",\n );\n this.viewMode = viewMode;\n\n this.setViewMode = (viewMode) => {\n setViewMode(viewMode);\n if (this.settingsStore && this.viewModeStorageKey) {\n this.settingsStore.set(\n \"List\",\n this.viewModeStorageKey,\n List.viewModeSettingsStorageSchema,\n viewMode,\n );\n }\n };\n\n useEffect(() => {\n this.filters.forEach((f) => f.deleteUnknownFilterValues());\n }, [this.filters]);\n }\n\n public get isFiltered(): boolean {\n return (\n this.filters.some((f) => f.isActive()) ||\n (!!this.search && this.search.isSet)\n );\n }\n\n public get visibleSorting() {\n return this.sorting.filter((s) => s.defaultEnabled !== \"hidden\");\n }\n\n public static useNew<T>(shape: ListShape<T>): List<T> {\n return new List<T>(shape);\n }\n\n public storeFilterDefaultSettings() {\n if (this.settingsStore && this.filterSettingsStorageKey) {\n const data = Object.fromEntries(\n this.filters.map((f) => [\n f.property,\n f\n .getArrayValue()\n .filter((v) => v.isActive)\n .map((v) => v.id),\n ]),\n );\n\n this.settingsStore.set(\n \"List\",\n this.filterSettingsStorageKey,\n Filter.settingsStorageSchema,\n data,\n );\n }\n }\n\n public getStoredFilterDefaultSettings() {\n if (this.settingsStore && this.filterSettingsStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.filterSettingsStorageKey,\n Filter.settingsStorageSchema,\n );\n }\n }\n\n public getStoredViewModeDefaultSetting() {\n if (this.settingsStore && this.viewModeStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.viewModeStorageKey,\n List.viewModeSettingsStorageSchema,\n );\n }\n }\n\n public storeSortingSettings(sorting: Sorting<T>) {\n if (this.settingsStore && this.sortingStorageKey) {\n this.settingsStore.set(\n \"List\",\n this.sortingStorageKey,\n Sorting.storageSchema,\n { direction: sorting.direction, property: sorting.property },\n );\n }\n }\n\n public getStoredSortingDefaultSetting() {\n if (this.settingsStore && this.sortingStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.sortingStorageKey,\n Sorting.storageSchema,\n );\n }\n }\n\n public getSorting(id: string): Sorting<T> {\n const sorting = this.sorting.find((s) => s.id === id);\n invariant(!!sorting, `Could not get Sorting (ID: ${id})`);\n return sorting;\n }\n\n public clearSorting(): void {\n return this.sorting.forEach((s) => s.clear());\n }\n\n public resetFilters(): void {\n return this.filters.forEach((f) => f.resetValues());\n }\n\n public clearFilters(): void {\n return this.filters.forEach((f) => f.clear());\n }\n\n public useIsEmpty(): boolean {\n return !this.loader.useIsLoading() && this.items.entries.length === 0;\n }\n}\n\nexport default List;\n"],"names":["shape","viewMode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List.mjs","sources":["../../../../../../../src/components/List/model/List.ts"],"sourcesContent":["import { ItemCollection } from \"@/components/List/model/item/ItemCollection\";\nimport { BatchesController } from \"@/components/List/model/pagination/BatchesController\";\nimport { Filter } from \"./filter/Filter\";\nimport { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport ReactTable from \"@/components/List/model/ReactTable\";\nimport type {\n GetItemId,\n ItemActionFn,\n ListShape,\n ListSupportedComponentProps,\n ListViewMode,\n} from \"@/components/List/model/types\";\nimport { IncrementalLoader } from \"@/components/List/model/loading/IncrementalLoader\";\nimport invariant from \"invariant\";\nimport { Search } from \"@/components/List/model/search/Search\";\nimport { ItemView } from \"@/components/List/model/item/ItemView\";\nimport { Table } from \"@/components/List/model/table/Table\";\nimport { useEffect, useState } from \"react\";\nimport { useSettings } from \"@/components/SettingsProvider/SettingsProvider\";\nimport type { SettingsStore } from \"@/components/SettingsProvider/models/SettingsStore\";\nimport z from \"zod\";\n\nexport class List<T, TMeta = unknown> {\n public static readonly viewModeSettingsStorageSchema = z\n .enum([\"list\", \"table\", \"tiles\"])\n .optional();\n public readonly filters: Filter<T, never, never>[];\n public readonly itemView?: ItemView<T>;\n public readonly table?: Table<T>;\n public readonly search?: Search<T>;\n public readonly sorting: Sorting<T>[];\n public readonly items: ItemCollection<T>;\n public readonly reactTable: ReactTable<T>;\n public readonly batches: BatchesController<T>;\n public readonly loader: IncrementalLoader<T>;\n public readonly onAction?: ItemActionFn<T>;\n public readonly accordion: boolean;\n public readonly getItemId?: GetItemId<T>;\n public readonly componentProps: ListSupportedComponentProps;\n public viewMode: ListViewMode;\n public readonly setViewMode: (viewMode: ListViewMode) => void;\n public readonly supportsSettingsStorage: boolean;\n public readonly settingStorageKey?: string;\n public metadata?: TMeta;\n private readonly settingsStore?: SettingsStore;\n private readonly viewModeStorageKey?: string;\n private readonly filterSettingsStorageKey?: string;\n private readonly sortingStorageKey?: string;\n\n public constructor(shape: ListShape<T, TMeta>) {\n const {\n settingStorageKey,\n itemView,\n table,\n filters = [],\n sorting = [],\n batchesController,\n onChange,\n loader,\n search,\n onAction,\n getItemId,\n defaultViewMode,\n accordion = false,\n ...componentProps\n } = shape;\n\n this.settingsStore = useSettings();\n this.settingStorageKey = settingStorageKey;\n this.filterSettingsStorageKey = settingStorageKey\n ? `${settingStorageKey}.activeFilters`\n : undefined;\n this.viewModeStorageKey = settingStorageKey\n ? `${settingStorageKey}.viewMode`\n : undefined;\n this.sortingStorageKey = settingStorageKey\n ? `${settingStorageKey}.sorting`\n : undefined;\n this.supportsSettingsStorage = !!this.settingStorageKey;\n\n this.items = new ItemCollection(this);\n this.filters = filters.map((shape) => new Filter(this, shape));\n this.sorting = sorting.map((shape) => new Sorting<T>(this, shape));\n this.search = search ? new Search(this, search) : undefined;\n this.itemView = itemView ? new ItemView(this, itemView) : undefined;\n this.accordion = accordion;\n this.table = table ? new Table(this, table) : undefined;\n this.batches = new BatchesController(this, batchesController);\n this.componentProps = componentProps;\n this.loader = IncrementalLoader.useNew<T>(this, loader);\n this.onAction = onAction;\n this.getItemId = getItemId;\n this.reactTable = ReactTable.useNew(this, onChange, {\n manualFiltering: this.loader.manualFiltering,\n manualPagination: this.loader.manualPagination,\n manualSorting: this.loader.manualSorting,\n });\n\n const [viewMode, setViewMode] = useState(\n this.getStoredViewModeDefaultSetting() ?? defaultViewMode ?? \"list\",\n );\n this.viewMode = viewMode;\n\n this.setViewMode = (viewMode) => {\n setViewMode(viewMode);\n if (this.settingsStore && this.viewModeStorageKey) {\n this.settingsStore.set(\n \"List\",\n this.viewModeStorageKey,\n List.viewModeSettingsStorageSchema,\n viewMode,\n );\n }\n };\n\n useEffect(() => {\n this.filters.forEach((f) => f.deleteUnknownFilterValues());\n }, [this.filters]);\n }\n\n public get isFiltered(): boolean {\n return (\n this.filters.some((f) => f.isActive()) ||\n (!!this.search && this.search.isSet)\n );\n }\n\n public get visibleSorting() {\n return this.sorting.filter((s) => s.defaultEnabled !== \"hidden\");\n }\n\n public static useNew<T, TMeta = unknown>(\n shape: ListShape<T, TMeta>,\n ): List<T, TMeta> {\n return new List<T, TMeta>(shape);\n }\n\n public storeFilterDefaultSettings() {\n if (this.settingsStore && this.filterSettingsStorageKey) {\n const data = Object.fromEntries(\n this.filters.map((f) => [\n f.property,\n f\n .getArrayValue()\n .filter((v) => v.isActive)\n .map((v) => v.id),\n ]),\n );\n\n this.settingsStore.set(\n \"List\",\n this.filterSettingsStorageKey,\n Filter.settingsStorageSchema,\n data,\n );\n }\n }\n\n public getStoredFilterDefaultSettings() {\n if (this.settingsStore && this.filterSettingsStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.filterSettingsStorageKey,\n Filter.settingsStorageSchema,\n );\n }\n }\n\n public getStoredViewModeDefaultSetting() {\n if (this.settingsStore && this.viewModeStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.viewModeStorageKey,\n List.viewModeSettingsStorageSchema,\n );\n }\n }\n\n public storeSortingSettings(sorting: Sorting<T>) {\n if (this.settingsStore && this.sortingStorageKey) {\n this.settingsStore.set(\n \"List\",\n this.sortingStorageKey,\n Sorting.storageSchema,\n { direction: sorting.direction, property: sorting.property },\n );\n }\n }\n\n public getStoredSortingDefaultSetting() {\n if (this.settingsStore && this.sortingStorageKey) {\n return this.settingsStore.get(\n \"List\",\n this.sortingStorageKey,\n Sorting.storageSchema,\n );\n }\n }\n\n public getSorting(id: string): Sorting<T> {\n const sorting = this.sorting.find((s) => s.id === id);\n invariant(!!sorting, `Could not get Sorting (ID: ${id})`);\n return sorting;\n }\n\n public clearSorting(): void {\n return this.sorting.forEach((s) => s.clear());\n }\n\n public resetFilters(): void {\n return this.filters.forEach((f) => f.resetValues());\n }\n\n public clearFilters(): void {\n return this.filters.forEach((f) => f.clear());\n }\n\n public useIsEmpty(): boolean {\n return !this.loader.useIsLoading() && this.items.entries.length === 0;\n }\n}\n\nexport default List;\n"],"names":["shape","viewMode"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactTable.mjs","sources":["../../../../../../../src/components/List/model/ReactTable.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnSort,\n InitialTableState,\n Table,\n TableOptions,\n Updater,\n} from \"@tanstack/react-table\";\nimport {\n getCoreRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport invariant from \"invariant\";\nimport type {\n OnListChanged,\n PropertyName,\n} from \"@/components/List/model/types\";\nimport type { SearchValue } from \"@/components/List/model/search/types\";\nimport type { Dispatch, SetStateAction } from \"react\";\nimport { useEffect, useState } from \"react\";\n\nexport class ReactTable<T> {\n public readonly list: List<T>;\n public readonly table: Table<T>;\n public readonly sortingState: ColumnSort[];\n public readonly updateSortingState: Dispatch<SetStateAction<ColumnSort[]>>;\n\n private constructor(\n list: List<T>,\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ) {\n this.list = list;\n\n const defaultSorting = this.list.sorting.filter(\n (s) => s.defaultEnabled !== false,\n );\n\n const [sortingState, updateSortingState] = useState<ColumnSort[]>(\n defaultSorting.map((s) => s.getReactTableColumnSort()),\n );\n this.sortingState = sortingState;\n this.updateSortingState = updateSortingState;\n this.table = this.useReactTable(onChange, tableOptions);\n }\n\n public get searchString(): SearchValue {\n return this.table.getState().globalFilter;\n }\n\n public static useNew<T>(\n list: List<T>,\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): ReactTable<T> {\n return new ReactTable<T>(list, onChange, tableOptions);\n }\n\n public getTableColumn(property: PropertyName<T>): Column<T> {\n const column = this.table.getColumn(property as string);\n invariant(!!column, `Column #${property} is not defined`);\n return column;\n }\n\n private useReactTable(\n onChange?: OnListChanged<T>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): Table<T> {\n const data = this.list.loader.useData();\n\n const initialState: InitialTableState = {\n pagination: {\n pageSize: this.list.batches.batchSize,\n },\n columnFilters: [],\n };\n\n for (const filter of this.list.filters) {\n filter.updateInitialState(initialState);\n }\n\n this.list.search?.updateInitialState(initialState);\n\n const table = useReactTable({\n data,\n state: {\n sorting: this.sortingState,\n },\n getRowId: this.list.getItemId,\n initialState,\n columns: this.getTableColumnDefs(),\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n onSortingChange: (updater) => {\n this.handleSortingStateUpdate(updater);\n },\n globalFilterFn: \"auto\",\n ...tableOptions,\n });\n\n useEffect(() => {\n if (onChange) {\n onChange(this.list);\n }\n }, [this.list, onChange, table]);\n\n return table;\n }\n\n private handleSortingStateUpdate(updater: Updater<ColumnSort[]>) {\n const newSortingState =\n typeof updater === \"function\" ? updater(this.sortingState) : updater;\n\n const additionalHiddenSorting = this.list.sorting\n .filter(\n (s) =>\n s.defaultEnabled === \"hidden\" &&\n !newSortingState.some((existing) => existing.id === s.property),\n )\n .map((s) => s.getReactTableColumnSort());\n\n this.updateSortingState([...additionalHiddenSorting, ...newSortingState]);\n }\n\n private getTableColumnDefs(): ColumnDef<T>[] {\n const columnDefsMap = new Map<PropertyName<T>, ColumnDef<T>>();\n\n const getOrCreateColumnDef = (p: PropertyName<T>): ColumnDef<T> => {\n const existing = columnDefsMap.get(p);\n if (existing) {\n return existing;\n }\n const newDef: ColumnDef<T> = {\n id: p as string,\n accessorKey: p as string,\n enableSorting: false,\n enableColumnFilter: false,\n sortingFn: \"alphanumeric\",\n };\n\n columnDefsMap.set(p, newDef);\n return newDef;\n };\n\n this.list.filters.forEach((f) =>\n f.updateTableColumnDef(getOrCreateColumnDef(f.property)),\n );\n\n this.list.sorting.forEach((s) =>\n s.updateTableColumnDef(getOrCreateColumnDef(s.property)),\n );\n\n this.list.loader.staticDataProperties.forEach((property) => {\n getOrCreateColumnDef(property);\n });\n\n return Array.from(columnDefsMap.values());\n }\n}\n\nexport default ReactTable;\n"],"names":[],"mappings":";;;;AA2BO,MAAM,UAAA,
|
|
1
|
+
{"version":3,"file":"ReactTable.mjs","sources":["../../../../../../../src/components/List/model/ReactTable.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnSort,\n InitialTableState,\n Table,\n TableOptions,\n Updater,\n} from \"@tanstack/react-table\";\nimport {\n getCoreRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport invariant from \"invariant\";\nimport type {\n OnListChanged,\n PropertyName,\n} from \"@/components/List/model/types\";\nimport type { SearchValue } from \"@/components/List/model/search/types\";\nimport type { Dispatch, SetStateAction } from \"react\";\nimport { useEffect, useState } from \"react\";\n\nexport class ReactTable<T, TMeta = unknown> {\n public readonly list: List<T, TMeta>;\n public readonly table: Table<T>;\n public readonly sortingState: ColumnSort[];\n public readonly updateSortingState: Dispatch<SetStateAction<ColumnSort[]>>;\n\n private constructor(\n list: List<T, TMeta>,\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ) {\n this.list = list;\n\n const defaultSorting = this.list.sorting.filter(\n (s) => s.defaultEnabled !== false,\n );\n\n const [sortingState, updateSortingState] = useState<ColumnSort[]>(\n defaultSorting.map((s) => s.getReactTableColumnSort()),\n );\n this.sortingState = sortingState;\n this.updateSortingState = updateSortingState;\n this.table = this.useReactTable(onChange, tableOptions);\n }\n\n public get searchString(): SearchValue {\n return this.table.getState().globalFilter;\n }\n\n public static useNew<T, TMeta = unknown>(\n list: List<T, TMeta>,\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): ReactTable<T, TMeta> {\n return new ReactTable<T, TMeta>(list, onChange, tableOptions);\n }\n\n public getTableColumn(property: PropertyName<T>): Column<T> {\n const column = this.table.getColumn(property as string);\n invariant(!!column, `Column #${property} is not defined`);\n return column;\n }\n\n private useReactTable(\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): Table<T> {\n const data = this.list.loader.useData();\n\n const initialState: InitialTableState = {\n pagination: {\n pageSize: this.list.batches.batchSize,\n },\n columnFilters: [],\n };\n\n for (const filter of this.list.filters) {\n filter.updateInitialState(initialState);\n }\n\n this.list.search?.updateInitialState(initialState);\n\n const table = useReactTable({\n data,\n state: {\n sorting: this.sortingState,\n },\n getRowId: this.list.getItemId,\n initialState,\n columns: this.getTableColumnDefs(),\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n onSortingChange: (updater) => {\n this.handleSortingStateUpdate(updater);\n },\n globalFilterFn: \"auto\",\n ...tableOptions,\n });\n\n useEffect(() => {\n if (onChange) {\n onChange(this.list);\n }\n }, [this.list, onChange, table]);\n\n return table;\n }\n\n private handleSortingStateUpdate(updater: Updater<ColumnSort[]>) {\n const newSortingState =\n typeof updater === \"function\" ? updater(this.sortingState) : updater;\n\n const additionalHiddenSorting = this.list.sorting\n .filter(\n (s) =>\n s.defaultEnabled === \"hidden\" &&\n !newSortingState.some((existing) => existing.id === s.property),\n )\n .map((s) => s.getReactTableColumnSort());\n\n this.updateSortingState([...additionalHiddenSorting, ...newSortingState]);\n }\n\n private getTableColumnDefs(): ColumnDef<T>[] {\n const columnDefsMap = new Map<PropertyName<T>, ColumnDef<T>>();\n\n const getOrCreateColumnDef = (p: PropertyName<T>): ColumnDef<T> => {\n const existing = columnDefsMap.get(p);\n if (existing) {\n return existing;\n }\n const newDef: ColumnDef<T> = {\n id: p as string,\n accessorKey: p as string,\n enableSorting: false,\n enableColumnFilter: false,\n sortingFn: \"alphanumeric\",\n };\n\n columnDefsMap.set(p, newDef);\n return newDef;\n };\n\n this.list.filters.forEach((f) =>\n f.updateTableColumnDef(getOrCreateColumnDef(f.property)),\n );\n\n this.list.sorting.forEach((s) =>\n s.updateTableColumnDef(getOrCreateColumnDef(s.property)),\n );\n\n this.list.loader.staticDataProperties.forEach((property) => {\n getOrCreateColumnDef(property);\n });\n\n return Array.from(columnDefsMap.values());\n }\n}\n\nexport default ReactTable;\n"],"names":[],"mappings":"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"}
|
|
@@ -100,12 +100,13 @@ class IncrementalLoader {
|
|
|
100
100
|
useLoadBatch: () => {
|
|
101
101
|
const loaderOptions = this.getDataLoaderOptions(batchIndex);
|
|
102
102
|
const loaderResult = useData(loaderOptions);
|
|
103
|
-
const { data, itemTotalCount } = loaderResult;
|
|
103
|
+
const { data, itemTotalCount, metadata } = loaderResult;
|
|
104
104
|
useEffect(() => {
|
|
105
105
|
this.loaderState.setDataBatch(batchIndex, data);
|
|
106
106
|
if (itemTotalCount !== void 0) {
|
|
107
107
|
this.list.batches.updateItemTotalCount(itemTotalCount);
|
|
108
108
|
}
|
|
109
|
+
this.loaderState.setMetadata(metadata);
|
|
109
110
|
this.loaderState.setBatchLoadingState(batchIndex, "loaded");
|
|
110
111
|
}, [loaderResult]);
|
|
111
112
|
},
|