@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.
Files changed (62) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/assets/doc-properties.json +23376 -23376
  3. package/dist/js/components/src/components/List/List.mjs.map +1 -1
  4. package/dist/js/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +1 -0
  5. package/dist/js/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
  6. package/dist/js/components/src/components/List/components/Header/components/Filters/CombinedFilterMenu.mjs +2 -0
  7. package/dist/js/components/src/components/List/components/Header/components/Filters/CombinedFilterMenu.mjs.map +1 -1
  8. package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenuList.mjs +2 -0
  9. package/dist/js/components/src/components/List/components/Header/components/Filters/FilterMenuList.mjs.map +1 -1
  10. package/dist/js/components/src/components/List/components/Header/components/Settings/SortingMenuItem.mjs +2 -0
  11. package/dist/js/components/src/components/List/components/Header/components/Settings/SortingMenuItem.mjs.map +1 -1
  12. package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenu.mjs +2 -0
  13. package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenu.mjs.map +1 -1
  14. package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenuItem.mjs +2 -0
  15. package/dist/js/components/src/components/List/components/Header/components/Settings/ViewModeMenuItem.mjs.map +1 -1
  16. package/dist/js/components/src/components/List/components/Header/lib.mjs +2 -0
  17. package/dist/js/components/src/components/List/components/Header/lib.mjs.map +1 -1
  18. package/dist/js/components/src/components/List/components/Items/Items.mjs +2 -0
  19. package/dist/js/components/src/components/List/components/Items/Items.mjs.map +1 -1
  20. package/dist/js/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs +2 -0
  21. package/dist/js/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
  22. package/dist/js/components/src/components/List/components/ListItemView/ListItemView.mjs +2 -0
  23. package/dist/js/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
  24. package/dist/js/components/src/components/List/components/Table/Table.mjs +2 -0
  25. package/dist/js/components/src/components/List/components/Table/Table.mjs.map +1 -1
  26. package/dist/js/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs +1 -0
  27. package/dist/js/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs.map +1 -1
  28. package/dist/js/components/src/components/List/hooks/useListMetadata.mjs +16 -0
  29. package/dist/js/components/src/components/List/hooks/useListMetadata.mjs.map +1 -0
  30. package/dist/js/components/src/components/List/model/List.mjs +1 -0
  31. package/dist/js/components/src/components/List/model/List.mjs.map +1 -1
  32. package/dist/js/components/src/components/List/model/ReactTable.mjs.map +1 -1
  33. package/dist/js/components/src/components/List/model/loading/IncrementalLoader.mjs +2 -1
  34. package/dist/js/components/src/components/List/model/loading/IncrementalLoader.mjs.map +1 -1
  35. package/dist/js/components/src/components/List/model/loading/IncrementalLoaderState.mjs +7 -1
  36. package/dist/js/components/src/components/List/model/loading/IncrementalLoaderState.mjs.map +1 -1
  37. package/dist/js/components/src/components/List/model/types.mjs.map +1 -1
  38. package/dist/js/components/src/components/List/typedList.mjs +3 -1
  39. package/dist/js/components/src/components/List/typedList.mjs.map +1 -1
  40. package/dist/js/default.mjs +1 -0
  41. package/dist/js/default.mjs.map +1 -1
  42. package/dist/js/flr-universal.mjs +1 -1
  43. package/dist/types/components/List/List.d.ts +2 -2
  44. package/dist/types/components/List/List.d.ts.map +1 -1
  45. package/dist/types/components/List/hooks/useListMetadata.d.ts +2 -0
  46. package/dist/types/components/List/hooks/useListMetadata.d.ts.map +1 -0
  47. package/dist/types/components/List/index.d.ts +1 -0
  48. package/dist/types/components/List/index.d.ts.map +1 -1
  49. package/dist/types/components/List/model/List.d.ts +4 -3
  50. package/dist/types/components/List/model/List.d.ts.map +1 -1
  51. package/dist/types/components/List/model/ReactTable.d.ts +3 -3
  52. package/dist/types/components/List/model/ReactTable.d.ts.map +1 -1
  53. package/dist/types/components/List/model/loading/IncrementalLoader.d.ts.map +1 -1
  54. package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts +2 -0
  55. package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts.map +1 -1
  56. package/dist/types/components/List/model/loading/types.d.ts +1 -0
  57. package/dist/types/components/List/model/loading/types.d.ts.map +1 -1
  58. package/dist/types/components/List/model/types.d.ts +3 -3
  59. package/dist/types/components/List/model/types.d.ts.map +1 -1
  60. package/dist/types/components/List/typedList.d.ts +4 -3
  61. package/dist/types/components/List/typedList.d.ts.map +1 -1
  62. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"IncrementalLoader.mjs","sources":["../../../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n DataLoaderOptions,\n DataLoaderResult,\n DataSource,\n IncrementalLoaderShape,\n LoaderInvocationHook,\n} from \"@/components/List/model/loading/types\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { getAsyncResource, usePromise } from \"@mittwald/react-use-promise\";\nimport { useEffect } from \"react\";\nimport { times } from \"remeda\";\nimport { IncrementalLoaderState } from \"@/components/List/model/loading/IncrementalLoaderState\";\nimport { hash } from \"object-code\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport { useMemo } from \"react\";\n\nconst emptyData: never[] = [];\n\nexport class IncrementalLoader<T> {\n private readonly list: List<T>;\n private readonly dataSource: DataSource<T>;\n public readonly manualSorting: boolean;\n public readonly manualFiltering: boolean;\n public readonly manualPagination: boolean;\n public readonly loaderState: IncrementalLoaderState<T>;\n public readonly staticDataProperties: PropertyName<T>[] = [];\n\n private constructor(list: List<T>, shape: IncrementalLoaderShape<T> = {}) {\n const { source } = shape;\n\n this.dataSource = source ?? { staticData: emptyData };\n\n const manualPagination =\n \"manualPagination\" in this.dataSource\n ? this.dataSource.manualPagination\n : undefined;\n\n const manualFiltering =\n \"manualFiltering\" in this.dataSource\n ? this.dataSource.manualFiltering\n : undefined;\n\n const manualSorting =\n \"manualSorting\" in this.dataSource\n ? this.dataSource.manualSorting\n : undefined;\n\n this.list = list;\n this.loaderState = IncrementalLoaderState.useNew<T>(list);\n\n this.manualPagination = manualPagination ?? false;\n this.manualFiltering = manualFiltering ?? this.manualPagination;\n this.manualSorting = manualSorting ?? this.manualPagination;\n this.list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n this.list.search?.onUpdated(() => this.reset());\n\n this.initStaticDataProperties();\n }\n\n public static useNew<T>(\n list: List<T>,\n shape: IncrementalLoaderShape<T> = {},\n ): IncrementalLoader<T> {\n return new IncrementalLoader(list, shape);\n }\n\n private initStaticDataProperties() {\n const addPropertiesOfDataEntry = (data: unknown) => {\n if (typeof data !== \"object\" || data === null) {\n return;\n }\n\n (Object.keys(data) as PropertyName<T>[])\n .filter((p) => !this.staticDataProperties.includes(p))\n .forEach((p) => {\n this.staticDataProperties.push(p);\n });\n };\n\n if (\"staticData\" in this.dataSource) {\n this.dataSource.staticData\n // collect properties from just the first 100 items\n .slice(0, 100)\n .forEach(addPropertiesOfDataEntry);\n }\n }\n\n private reset(): void {\n this.loaderState.reset();\n }\n\n public useIsLoading(): boolean {\n return this.loaderState.useIsLoading();\n }\n\n public useIsInitiallyLoading(): boolean {\n return this.useIsLoading() && this.list.batches.getBatchIndex() === 0;\n }\n\n public useData(): T[] {\n return this.loaderState.useMergedData();\n }\n\n private getUseData(): (options: DataLoaderOptions<T>) => DataLoaderResult<T> {\n const dataSource = this.dataSource;\n\n return (options: DataLoaderOptions<T>) => {\n if (\"staticData\" in dataSource) {\n return useMemo(\n () => ({\n data: dataSource.staticData,\n itemTotalCount: dataSource.staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"useData\" in dataSource) {\n return dataSource.useData(options);\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies\n ? hash(dependencies).toString()\n : undefined;\n\n return usePromise(asyncLoader, [options], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n return dataSource.asyncResourceFactory(options).use();\n }\n\n return useMemo(\n () => ({\n data: [],\n itemTotalCount: 0,\n }),\n [],\n );\n };\n }\n\n public getLoaderInvocationHooks(): LoaderInvocationHook[] {\n const batchesCount = times(this.list.batches.getBatchIndex() + 1, (i) => i);\n const useData = this.getUseData();\n\n return batchesCount.map((batchIndex) => ({\n useLoadBatch: () => {\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n const loaderResult = useData(loaderOptions);\n const { data, itemTotalCount } = loaderResult;\n\n useEffect(() => {\n this.loaderState.setDataBatch(batchIndex, data);\n\n if (itemTotalCount !== undefined) {\n this.list.batches.updateItemTotalCount(itemTotalCount);\n }\n\n this.loaderState.setBatchLoadingState(batchIndex, \"loaded\");\n }, [loaderResult]);\n },\n\n useRenderSuspense: () => {\n useEffect(() => {\n this.loaderState.setBatchLoadingState(batchIndex, \"loading\");\n }, [batchIndex]);\n },\n }));\n }\n\n private getDataLoaderOptions(batchIndex: number): DataLoaderOptions<T> {\n return {\n pagination: this.manualPagination\n ? {\n limit: this.list.batches.batchSize,\n offset: this.list.batches.batchSize * batchIndex,\n }\n : undefined,\n\n sorting: this.manualSorting\n ? (Object.fromEntries(\n this.list.sorting\n .filter((s) => s.isSorted())\n .map((s) => [s.property, s.direction]),\n ) as DataLoaderOptions<T>[\"sorting\"])\n : undefined,\n\n filtering: this.manualFiltering\n ? (Object.fromEntries(\n this.list.filters\n .filter((f) => f.getValue() !== null)\n .map((f) => [\n f.property,\n {\n mode: f.mode,\n values: f.getArrayValue().map((v) => v.value),\n },\n ]),\n ) as DataLoaderOptions<T>[\"filtering\"])\n : undefined,\n\n searchString: this.manualFiltering\n ? this.list.reactTable.searchString\n : undefined,\n };\n }\n\n private getBatchDataAsyncResource(\n batchIndex: number,\n ): AsyncResource<DataLoaderResult<T>> {\n const dataSource = this.dataSource;\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n\n if (\"staticData\" in dataSource) {\n return getAsyncResource(\n async (staticData) => ({\n data: staticData as T[],\n itemTotalCount: staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies ? hash(dependencies).toString() : undefined;\n return getAsyncResource(asyncLoader, [loaderOptions], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n const asyncResourceFactory = dataSource.asyncResourceFactory;\n return asyncResourceFactory(loaderOptions);\n }\n\n throw new Error(\"Unknown data source\");\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IncrementalLoader.mjs","sources":["../../../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n DataLoaderOptions,\n DataLoaderResult,\n DataSource,\n IncrementalLoaderShape,\n LoaderInvocationHook,\n} from \"@/components/List/model/loading/types\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { getAsyncResource, usePromise } from \"@mittwald/react-use-promise\";\nimport { useEffect } from \"react\";\nimport { times } from \"remeda\";\nimport { IncrementalLoaderState } from \"@/components/List/model/loading/IncrementalLoaderState\";\nimport { hash } from \"object-code\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport { useMemo } from \"react\";\n\nconst emptyData: never[] = [];\n\nexport class IncrementalLoader<T> {\n private readonly list: List<T>;\n private readonly dataSource: DataSource<T>;\n public readonly manualSorting: boolean;\n public readonly manualFiltering: boolean;\n public readonly manualPagination: boolean;\n public readonly loaderState: IncrementalLoaderState<T>;\n public readonly staticDataProperties: PropertyName<T>[] = [];\n\n private constructor(list: List<T>, shape: IncrementalLoaderShape<T> = {}) {\n const { source } = shape;\n\n this.dataSource = source ?? { staticData: emptyData };\n\n const manualPagination =\n \"manualPagination\" in this.dataSource\n ? this.dataSource.manualPagination\n : undefined;\n\n const manualFiltering =\n \"manualFiltering\" in this.dataSource\n ? this.dataSource.manualFiltering\n : undefined;\n\n const manualSorting =\n \"manualSorting\" in this.dataSource\n ? this.dataSource.manualSorting\n : undefined;\n\n this.list = list;\n this.loaderState = IncrementalLoaderState.useNew<T>(list);\n\n this.manualPagination = manualPagination ?? false;\n this.manualFiltering = manualFiltering ?? this.manualPagination;\n this.manualSorting = manualSorting ?? this.manualPagination;\n this.list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n this.list.search?.onUpdated(() => this.reset());\n\n this.initStaticDataProperties();\n }\n\n public static useNew<T>(\n list: List<T>,\n shape: IncrementalLoaderShape<T> = {},\n ): IncrementalLoader<T> {\n return new IncrementalLoader(list, shape);\n }\n\n private initStaticDataProperties() {\n const addPropertiesOfDataEntry = (data: unknown) => {\n if (typeof data !== \"object\" || data === null) {\n return;\n }\n\n (Object.keys(data) as PropertyName<T>[])\n .filter((p) => !this.staticDataProperties.includes(p))\n .forEach((p) => {\n this.staticDataProperties.push(p);\n });\n };\n\n if (\"staticData\" in this.dataSource) {\n this.dataSource.staticData\n // collect properties from just the first 100 items\n .slice(0, 100)\n .forEach(addPropertiesOfDataEntry);\n }\n }\n\n private reset(): void {\n this.loaderState.reset();\n }\n\n public useIsLoading(): boolean {\n return this.loaderState.useIsLoading();\n }\n\n public useIsInitiallyLoading(): boolean {\n return this.useIsLoading() && this.list.batches.getBatchIndex() === 0;\n }\n\n public useData(): T[] {\n return this.loaderState.useMergedData();\n }\n\n private getUseData(): (options: DataLoaderOptions<T>) => DataLoaderResult<T> {\n const dataSource = this.dataSource;\n\n return (options: DataLoaderOptions<T>) => {\n if (\"staticData\" in dataSource) {\n return useMemo(\n () => ({\n data: dataSource.staticData,\n itemTotalCount: dataSource.staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"useData\" in dataSource) {\n return dataSource.useData(options);\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies\n ? hash(dependencies).toString()\n : undefined;\n\n return usePromise(asyncLoader, [options], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n return dataSource.asyncResourceFactory(options).use();\n }\n\n return useMemo(\n () => ({\n data: [],\n itemTotalCount: 0,\n }),\n [],\n );\n };\n }\n\n public getLoaderInvocationHooks(): LoaderInvocationHook[] {\n const batchesCount = times(this.list.batches.getBatchIndex() + 1, (i) => i);\n const useData = this.getUseData();\n\n return batchesCount.map((batchIndex) => ({\n useLoadBatch: () => {\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n const loaderResult = useData(loaderOptions);\n const { data, itemTotalCount, metadata } = loaderResult;\n\n useEffect(() => {\n this.loaderState.setDataBatch(batchIndex, data);\n\n if (itemTotalCount !== undefined) {\n this.list.batches.updateItemTotalCount(itemTotalCount);\n }\n\n this.loaderState.setMetadata(metadata);\n\n this.loaderState.setBatchLoadingState(batchIndex, \"loaded\");\n }, [loaderResult]);\n },\n\n useRenderSuspense: () => {\n useEffect(() => {\n this.loaderState.setBatchLoadingState(batchIndex, \"loading\");\n }, [batchIndex]);\n },\n }));\n }\n\n private getDataLoaderOptions(batchIndex: number): DataLoaderOptions<T> {\n return {\n pagination: this.manualPagination\n ? {\n limit: this.list.batches.batchSize,\n offset: this.list.batches.batchSize * batchIndex,\n }\n : undefined,\n\n sorting: this.manualSorting\n ? (Object.fromEntries(\n this.list.sorting\n .filter((s) => s.isSorted())\n .map((s) => [s.property, s.direction]),\n ) as DataLoaderOptions<T>[\"sorting\"])\n : undefined,\n\n filtering: this.manualFiltering\n ? (Object.fromEntries(\n this.list.filters\n .filter((f) => f.getValue() !== null)\n .map((f) => [\n f.property,\n {\n mode: f.mode,\n values: f.getArrayValue().map((v) => v.value),\n },\n ]),\n ) as DataLoaderOptions<T>[\"filtering\"])\n : undefined,\n\n searchString: this.manualFiltering\n ? this.list.reactTable.searchString\n : undefined,\n };\n }\n\n private getBatchDataAsyncResource(\n batchIndex: number,\n ): AsyncResource<DataLoaderResult<T>> {\n const dataSource = this.dataSource;\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n\n if (\"staticData\" in dataSource) {\n return getAsyncResource(\n async (staticData) => ({\n data: staticData as T[],\n itemTotalCount: staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies ? hash(dependencies).toString() : undefined;\n return getAsyncResource(asyncLoader, [loaderOptions], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n const asyncResourceFactory = dataSource.asyncResourceFactory;\n return asyncResourceFactory(loaderOptions);\n }\n\n throw new Error(\"Unknown data source\");\n }\n}\n"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ class IncrementalLoaderState {
9
9
  dataBatches = [];
10
10
  prevDataBatches = [];
11
11
  batchLoadingStates = ["void"];
12
+ metadata = void 0;
12
13
  list;
13
14
  constructor(list) {
14
15
  this.list = list;
@@ -18,11 +19,13 @@ class IncrementalLoaderState {
18
19
  useIsLoading: false,
19
20
  dataBatches: observable.shallow,
20
21
  batchLoadingStates: observable.shallow,
22
+ metadata: observable,
21
23
  mergedData: computed,
22
24
  isLoading: computed,
23
25
  reset: action.bound,
24
26
  setDataBatch: action.bound,
25
- setBatchLoadingState: action.bound
27
+ setBatchLoadingState: action.bound,
28
+ setMetadata: action.bound
26
29
  });
27
30
  }
28
31
  static useNew(list) {
@@ -46,6 +49,9 @@ class IncrementalLoaderState {
46
49
  this.batchLoadingStates[index] = state;
47
50
  }
48
51
  }
52
+ setMetadata(metadata) {
53
+ this.metadata = metadata;
54
+ }
49
55
  get mergedData() {
50
56
  const dataBatches = this.dataBatches.length === 0 ? this.prevDataBatches : this.dataBatches;
51
57
  const merged = dataBatches.flatMap((d) => d);
@@ -1 +1 @@
1
- {"version":3,"file":"IncrementalLoaderState.mjs","sources":["../../../../../../../../src/components/List/model/loading/IncrementalLoaderState.ts"],"sourcesContent":["import type { ListData } from \"@/components/List/model/loading/types\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { action, computed, makeObservable, observable } from \"mobx\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\nimport type List from \"@/components/List/model/List\";\nimport { uniqueBy } from \"remeda\";\n\ntype AsyncResourceLoadingState = AsyncResource[\"state\"][\"value\"];\ntype DataBatches<T> = ListData<T>[];\ntype BatchesLoadingState = AsyncResourceLoadingState[];\n\nexport class IncrementalLoaderState<T> {\n public dataBatches: DataBatches<T> = [];\n public prevDataBatches: DataBatches<T> = [];\n public batchLoadingStates: BatchesLoadingState = [\"void\"];\n public readonly list: List<T>;\n\n private constructor(list: List<T>) {\n this.list = list;\n makeObservable(this, {\n prevDataBatches: false,\n useMergedData: false,\n useIsLoading: false,\n dataBatches: observable.shallow,\n batchLoadingStates: observable.shallow,\n mergedData: computed,\n isLoading: computed,\n reset: action.bound,\n setDataBatch: action.bound,\n setBatchLoadingState: action.bound,\n });\n }\n\n public static useNew<T>(list: List<T>): IncrementalLoaderState<T> {\n return useStatic(() => new IncrementalLoaderState<T>(list));\n }\n\n public reset(): void {\n this.batchLoadingStates = [];\n this.dataBatches = [];\n }\n\n public setDataBatch(index: number, data: ListData<T>): void {\n if (this.dataBatches.length === 0) {\n this.prevDataBatches = [];\n }\n\n if (this.dataBatches[index] !== data) {\n this.dataBatches[index] = data;\n this.prevDataBatches[index] = data;\n }\n }\n\n public setBatchLoadingState(\n index: number,\n state: AsyncResourceLoadingState,\n ): void {\n if (this.batchLoadingStates[index] !== state) {\n this.batchLoadingStates[index] = state;\n }\n }\n\n public get mergedData(): T[] {\n const dataBatches =\n this.dataBatches.length === 0 ? this.prevDataBatches : this.dataBatches;\n\n const merged = dataBatches.flatMap((d) => d);\n if (this.list.getItemId) {\n return uniqueBy(merged, this.list.getItemId);\n } else {\n return merged;\n }\n }\n\n public useMergedData(): T[] {\n return useSelector(() => this.mergedData, [this.prevDataBatches]);\n }\n\n public get isLoading(): boolean {\n return this.batchLoadingStates.some((s) => s === \"loading\" || s === \"void\");\n }\n\n public useIsLoading(): boolean {\n return useSelector(() => this.isLoading);\n }\n\n public isBatchLoaded(batchIndex: number) {\n return batchIndex in this.dataBatches;\n }\n}\n"],"names":[],"mappings":";;;;;AAYO,MAAM,sBAAA,CAA0B;AAAA,EAC9B,cAA8B,EAAC;AAAA,EAC/B,kBAAkC,EAAC;AAAA,EACnC,kBAAA,GAA0C,CAAC,MAAM,CAAA;AAAA,EACxC,IAAA;AAAA,EAER,YAAY,IAAA,EAAe;AACjC,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,cAAA,CAAe,IAAA,EAAM;AAAA,MACnB,eAAA,EAAiB,KAAA;AAAA,MACjB,aAAA,EAAe,KAAA;AAAA,MACf,YAAA,EAAc,KAAA;AAAA,MACd,aAAa,UAAA,CAAW,OAAA;AAAA,MACxB,oBAAoB,UAAA,CAAW,OAAA;AAAA,MAC/B,UAAA,EAAY,QAAA;AAAA,MACZ,SAAA,EAAW,QAAA;AAAA,MACX,OAAO,MAAA,CAAO,KAAA;AAAA,MACd,cAAc,MAAA,CAAO,KAAA;AAAA,MACrB,sBAAsB,MAAA,CAAO;AAAA,KAC9B,CAAA;AAAA,EACH;AAAA,EAEA,OAAc,OAAU,IAAA,EAA0C;AAChE,IAAA,OAAO,SAAA,CAAU,MAAM,IAAI,sBAAA,CAA0B,IAAI,CAAC,CAAA;AAAA,EAC5D;AAAA,EAEO,KAAA,GAAc;AACnB,IAAA,IAAA,CAAK,qBAAqB,EAAC;AAC3B,IAAA,IAAA,CAAK,cAAc,EAAC;AAAA,EACtB;AAAA,EAEO,YAAA,CAAa,OAAe,IAAA,EAAyB;AAC1D,IAAA,IAAI,IAAA,CAAK,WAAA,CAAY,MAAA,KAAW,CAAA,EAAG;AACjC,MAAA,IAAA,CAAK,kBAAkB,EAAC;AAAA,IAC1B;AAEA,IAAA,IAAI,IAAA,CAAK,WAAA,CAAY,KAAK,CAAA,KAAM,IAAA,EAAM;AACpC,MAAA,IAAA,CAAK,WAAA,CAAY,KAAK,CAAA,GAAI,IAAA;AAC1B,MAAA,IAAA,CAAK,eAAA,CAAgB,KAAK,CAAA,GAAI,IAAA;AAAA,IAChC;AAAA,EACF;AAAA,EAEO,oBAAA,CACL,OACA,KAAA,EACM;AACN,IAAA,IAAI,IAAA,CAAK,kBAAA,CAAmB,KAAK,CAAA,KAAM,KAAA,EAAO;AAC5C,MAAA,IAAA,CAAK,kBAAA,CAAmB,KAAK,CAAA,GAAI,KAAA;AAAA,IACnC;AAAA,EACF;AAAA,EAEA,IAAW,UAAA,GAAkB;AAC3B,IAAA,MAAM,cACJ,IAAA,CAAK,WAAA,CAAY,WAAW,CAAA,GAAI,IAAA,CAAK,kBAAkB,IAAA,CAAK,WAAA;AAE9D,IAAA,MAAM,MAAA,GAAS,WAAA,CAAY,OAAA,CAAQ,CAAC,MAAM,CAAC,CAAA;AAC3C,IAAA,IAAI,IAAA,CAAK,KAAK,SAAA,EAAW;AACvB,MAAA,OAAO,QAAA,CAAS,MAAA,EAAQ,IAAA,CAAK,IAAA,CAAK,SAAS,CAAA;AAAA,IAC7C,CAAA,MAAO;AACL,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEO,aAAA,GAAqB;AAC1B,IAAA,OAAO,YAAY,MAAM,IAAA,CAAK,YAAY,CAAC,IAAA,CAAK,eAAe,CAAC,CAAA;AAAA,EAClE;AAAA,EAEA,IAAW,SAAA,GAAqB;AAC9B,IAAA,OAAO,IAAA,CAAK,mBAAmB,IAAA,CAAK,CAAC,MAAM,CAAA,KAAM,SAAA,IAAa,MAAM,MAAM,CAAA;AAAA,EAC5E;AAAA,EAEO,YAAA,GAAwB;AAC7B,IAAA,OAAO,WAAA,CAAY,MAAM,IAAA,CAAK,SAAS,CAAA;AAAA,EACzC;AAAA,EAEO,cAAc,UAAA,EAAoB;AACvC,IAAA,OAAO,cAAc,IAAA,CAAK,WAAA;AAAA,EAC5B;AACF;;;;"}
1
+ {"version":3,"file":"IncrementalLoaderState.mjs","sources":["../../../../../../../../src/components/List/model/loading/IncrementalLoaderState.ts"],"sourcesContent":["import type { ListData } from \"@/components/List/model/loading/types\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { action, computed, makeObservable, observable } from \"mobx\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\nimport type List from \"@/components/List/model/List\";\nimport { uniqueBy } from \"remeda\";\n\ntype AsyncResourceLoadingState = AsyncResource[\"state\"][\"value\"];\ntype DataBatches<T> = ListData<T>[];\ntype BatchesLoadingState = AsyncResourceLoadingState[];\n\nexport class IncrementalLoaderState<T> {\n public dataBatches: DataBatches<T> = [];\n public prevDataBatches: DataBatches<T> = [];\n public batchLoadingStates: BatchesLoadingState = [\"void\"];\n public metadata?: unknown = undefined;\n public readonly list: List<T>;\n\n private constructor(list: List<T>) {\n this.list = list;\n makeObservable(this, {\n prevDataBatches: false,\n useMergedData: false,\n useIsLoading: false,\n dataBatches: observable.shallow,\n batchLoadingStates: observable.shallow,\n metadata: observable,\n mergedData: computed,\n isLoading: computed,\n reset: action.bound,\n setDataBatch: action.bound,\n setBatchLoadingState: action.bound,\n setMetadata: action.bound,\n });\n }\n\n public static useNew<T>(list: List<T>): IncrementalLoaderState<T> {\n return useStatic(() => new IncrementalLoaderState<T>(list));\n }\n\n public reset(): void {\n this.batchLoadingStates = [];\n this.dataBatches = [];\n }\n\n public setDataBatch(index: number, data: ListData<T>): void {\n if (this.dataBatches.length === 0) {\n this.prevDataBatches = [];\n }\n\n if (this.dataBatches[index] !== data) {\n this.dataBatches[index] = data;\n this.prevDataBatches[index] = data;\n }\n }\n\n public setBatchLoadingState(\n index: number,\n state: AsyncResourceLoadingState,\n ): void {\n if (this.batchLoadingStates[index] !== state) {\n this.batchLoadingStates[index] = state;\n }\n }\n\n public setMetadata(metadata?: unknown): void {\n this.metadata = metadata;\n }\n\n public get mergedData(): T[] {\n const dataBatches =\n this.dataBatches.length === 0 ? this.prevDataBatches : this.dataBatches;\n\n const merged = dataBatches.flatMap((d) => d);\n if (this.list.getItemId) {\n return uniqueBy(merged, this.list.getItemId);\n } else {\n return merged;\n }\n }\n\n public useMergedData(): T[] {\n return useSelector(() => this.mergedData, [this.prevDataBatches]);\n }\n\n public get isLoading(): boolean {\n return this.batchLoadingStates.some((s) => s === \"loading\" || s === \"void\");\n }\n\n public useIsLoading(): boolean {\n return useSelector(() => this.isLoading);\n }\n\n public isBatchLoaded(batchIndex: number) {\n return batchIndex in this.dataBatches;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../../../../../../../src/components/List/model/types.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { ItemViewShape } from \"@/components/List/model/item/ItemView\";\nimport type List from \"@/components/List/model/List\";\nimport type { IncrementalLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { BatchesControllerShape } from \"@/components/List/model/pagination/types\";\nimport type { SearchShape } from \"@/components/List/model/search/types\";\nimport type { SortingShape } from \"@/components/List/model/sorting/types\";\nimport type { TableShape } from \"@/components/List/model/table/types\";\nimport type { ItemType } from \"@/lib/types/array\";\nimport type { MultipleSelection, SelectionBehavior } from \"@react-types/shared\";\nimport type { DeepKeys, DeepValue } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\n\nexport const customPropertyPrefix = \"$\" as const;\nexport type CustomPropertyName = `${typeof customPropertyPrefix}${string}`;\n\nexport type PropertyName<T> = DeepKeys<T> | CustomPropertyName;\nexport type PropertyValue<T, TProp> = TProp extends CustomPropertyName\n ? T\n : DeepValue<T, TProp>;\nexport type PropertyValueRenderMethod<TMatcherValue> = (\n prop: NonNullable<ItemType<TMatcherValue>>,\n) => ReactNode;\n\nexport type OnListChanged<T> = (list: List<T>) => void;\n\nexport interface ListSupportedComponentProps extends MultipleSelection {\n \"aria-labelledby\"?: string;\n \"aria-label\"?: string;\n selectionBehavior?: SelectionBehavior;\n}\n\nexport interface ListShape<T> extends ListSupportedComponentProps {\n settingStorageKey?: string;\n\n loader?: IncrementalLoaderShape<T>;\n filters?: FilterShape<T, never, never>[];\n itemView?: ItemViewShape<T>;\n search?: SearchShape<T>;\n sorting?: SortingShape<T>[];\n batchesController?: BatchesControllerShape;\n table?: TableShape<T>;\n\n onAction?: ItemActionFn<T>;\n accordion?: boolean;\n getItemId?: GetItemId<T>;\n onChange?: OnListChanged<T>;\n defaultViewMode?: ListViewMode;\n}\n\nexport type PropertyRecord<T, TValue> = Partial<\n Record<PropertyName<T>, TValue>\n>;\n\nexport type ListViewMode = \"table\" | \"list\" | \"tiles\";\nexport type ItemActionFn<T> = (data: T) => void;\nexport type GetItemId<T> = (data: T) => string;\n"],"names":[],"mappings":"AAaO,MAAM,oBAAA,GAAuB;;;;"}
1
+ {"version":3,"file":"types.mjs","sources":["../../../../../../../src/components/List/model/types.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { ItemViewShape } from \"@/components/List/model/item/ItemView\";\nimport type List from \"@/components/List/model/List\";\nimport type { IncrementalLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { BatchesControllerShape } from \"@/components/List/model/pagination/types\";\nimport type { SearchShape } from \"@/components/List/model/search/types\";\nimport type { SortingShape } from \"@/components/List/model/sorting/types\";\nimport type { TableShape } from \"@/components/List/model/table/types\";\nimport type { ItemType } from \"@/lib/types/array\";\nimport type { MultipleSelection, SelectionBehavior } from \"@react-types/shared\";\nimport type { DeepKeys, DeepValue } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\n\nexport const customPropertyPrefix = \"$\" as const;\nexport type CustomPropertyName = `${typeof customPropertyPrefix}${string}`;\n\nexport type PropertyName<T> = DeepKeys<T> | CustomPropertyName;\nexport type PropertyValue<T, TProp> = TProp extends CustomPropertyName\n ? T\n : DeepValue<T, TProp>;\nexport type PropertyValueRenderMethod<TMatcherValue> = (\n prop: NonNullable<ItemType<TMatcherValue>>,\n) => ReactNode;\n\nexport type OnListChanged<T, TMeta = unknown> = (list: List<T, TMeta>) => void;\n\nexport interface ListSupportedComponentProps extends MultipleSelection {\n \"aria-labelledby\"?: string;\n \"aria-label\"?: string;\n selectionBehavior?: SelectionBehavior;\n}\n\nexport interface ListShape<T, TMeta = unknown>\n extends ListSupportedComponentProps {\n settingStorageKey?: string;\n\n loader?: IncrementalLoaderShape<T>;\n filters?: FilterShape<T, never, never>[];\n itemView?: ItemViewShape<T>;\n search?: SearchShape<T>;\n sorting?: SortingShape<T>[];\n batchesController?: BatchesControllerShape;\n table?: TableShape<T>;\n\n onAction?: ItemActionFn<T>;\n accordion?: boolean;\n getItemId?: GetItemId<T>;\n onChange?: OnListChanged<T, TMeta>;\n defaultViewMode?: ListViewMode;\n}\n\nexport type PropertyRecord<T, TValue> = Partial<\n Record<PropertyName<T>, TValue>\n>;\n\nexport type ListViewMode = \"table\" | \"list\" | \"tiles\";\nexport type ItemActionFn<T> = (data: T) => void;\nexport type GetItemId<T> = (data: T) => string;\n"],"names":[],"mappings":"AAaO,MAAM,oBAAA,GAAuB;;;;"}
@@ -16,6 +16,7 @@ import { TableRow } from './setupComponents/TableRow.mjs';
16
16
  import { TableBody } from './setupComponents/TableBody.mjs';
17
17
  import { Table } from './setupComponents/Table.mjs';
18
18
  import { TypedListLoaderHooks } from './setupComponents/ListLoaderHooks.mjs';
19
+ import { useListMetadata } from './hooks/useListMetadata.mjs';
19
20
 
20
21
  const TypedList = () => List;
21
22
  const typedList = () => ({
@@ -34,7 +35,8 @@ const typedList = () => ({
34
35
  StaticData: TypedListStaticData(),
35
36
  LoaderAsync: TypedListLoaderAsync(),
36
37
  LoaderHooks: TypedListLoaderHooks(),
37
- LoaderAsyncResource: TypedListLoaderAsyncResource()
38
+ LoaderAsyncResource: TypedListLoaderAsyncResource(),
39
+ useMetadata: () => useListMetadata()
38
40
  });
39
41
 
40
42
  export { TypedList, typedList };
@@ -1 +1 @@
1
- {"version":3,"file":"typedList.mjs","sources":["../../../../../../src/components/List/typedList.ts"],"sourcesContent":["import type { ListProps } from \"@/components/List/List\";\nimport List from \"@/components/List/List\";\nimport { TypedListFilter } from \"@/components/List/setupComponents/ListFilter\";\nimport { TypedListSorting } from \"@/components/List/setupComponents/ListSorting\";\nimport { TypedListItem } from \"@/components/List/setupComponents/ListItem\";\nimport { TypedListLoaderAsync } from \"@/components/List/setupComponents/ListLoaderAsync\";\nimport { TypedListLoaderAsyncResource } from \"@/components/List/setupComponents/ListLoaderAsyncResource\";\nimport { TypedListStaticData } from \"@/components/List/setupComponents/ListStaticData\";\nimport { TypedListSearch } from \"@/components/List/setupComponents/ListSearch\";\nimport { ListItemView } from \"@/components/List/components/ListItemView/ListItemView\";\nimport type { ComponentType } from \"react\";\nimport { TableColumn } from \"@/components/List/setupComponents/TableColumn\";\nimport { TableCell } from \"@/components/List/setupComponents/TableCell\";\nimport { TableHeader } from \"@/components/List/setupComponents/TableHeader\";\nimport { TableRow } from \"@/components/List/setupComponents/TableRow\";\nimport { TableBody } from \"@/components/List/setupComponents/TableBody\";\nimport { Table } from \"@/components/List/setupComponents/Table\";\nimport { TypedListLoaderHooks } from \"@/components/List/setupComponents/ListLoaderHooks\";\n\nexport const TypedList = <T>() =>\n List as unknown as ComponentType<ListProps<T>>;\n\nexport const typedList = <T>() => ({\n List: TypedList<T>(),\n Filter: TypedListFilter<T>(),\n Search: TypedListSearch<T>(),\n Sorting: TypedListSorting<T>(),\n Item: TypedListItem<T>(),\n ItemView: ListItemView,\n TableHeader: TableHeader<T>,\n TableColumn: TableColumn<T>,\n TableBody: TableBody<T>,\n TableRow: TableRow<T>,\n TableCell: TableCell<T>,\n Table: Table<T>,\n StaticData: TypedListStaticData<T>(),\n LoaderAsync: TypedListLoaderAsync<T>(),\n LoaderHooks: TypedListLoaderHooks<T>(),\n LoaderAsyncResource: TypedListLoaderAsyncResource<T>(),\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAmBO,MAAM,YAAY,MACvB;AAEK,MAAM,YAAY,OAAU;AAAA,EACjC,MAAM,SAAA,EAAa;AAAA,EACnB,QAAQ,eAAA,EAAmB;AAAA,EAC3B,QAAQ,eAAA,EAAmB;AAAA,EAC3B,SAAS,gBAAA,EAAoB;AAAA,EAC7B,MAAM,aAAA,EAAiB;AAAA,EACvB,QAAA,EAAU,YAAA;AAAA,EACV,WAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAY,mBAAA,EAAuB;AAAA,EACnC,aAAa,oBAAA,EAAwB;AAAA,EACrC,aAAa,oBAAA,EAAwB;AAAA,EACrC,qBAAqB,4BAAA;AACvB,CAAA;;;;"}
1
+ {"version":3,"file":"typedList.mjs","sources":["../../../../../../src/components/List/typedList.ts"],"sourcesContent":["import type { ListProps } from \"@/components/List/List\";\nimport List from \"@/components/List/List\";\nimport { TypedListFilter } from \"@/components/List/setupComponents/ListFilter\";\nimport { TypedListSorting } from \"@/components/List/setupComponents/ListSorting\";\nimport { TypedListItem } from \"@/components/List/setupComponents/ListItem\";\nimport { TypedListLoaderAsync } from \"@/components/List/setupComponents/ListLoaderAsync\";\nimport { TypedListLoaderAsyncResource } from \"@/components/List/setupComponents/ListLoaderAsyncResource\";\nimport { TypedListStaticData } from \"@/components/List/setupComponents/ListStaticData\";\nimport { TypedListSearch } from \"@/components/List/setupComponents/ListSearch\";\nimport { ListItemView } from \"@/components/List/components/ListItemView/ListItemView\";\nimport type { ComponentType } from \"react\";\nimport { TableColumn } from \"@/components/List/setupComponents/TableColumn\";\nimport { TableCell } from \"@/components/List/setupComponents/TableCell\";\nimport { TableHeader } from \"@/components/List/setupComponents/TableHeader\";\nimport { TableRow } from \"@/components/List/setupComponents/TableRow\";\nimport { TableBody } from \"@/components/List/setupComponents/TableBody\";\nimport { Table } from \"@/components/List/setupComponents/Table\";\nimport { TypedListLoaderHooks } from \"@/components/List/setupComponents/ListLoaderHooks\";\nimport { useListMetadata } from \"@/components/List/hooks/useListMetadata\";\n\nexport const TypedList = <T, TMeta = unknown>() =>\n List as unknown as ComponentType<ListProps<T, TMeta>>;\n\nexport const typedList = <T, TMeta = unknown>() => ({\n List: TypedList<T, TMeta>(),\n Filter: TypedListFilter<T>(),\n Search: TypedListSearch<T>(),\n Sorting: TypedListSorting<T>(),\n Item: TypedListItem<T>(),\n ItemView: ListItemView,\n TableHeader: TableHeader<T>,\n TableColumn: TableColumn<T>,\n TableBody: TableBody<T>,\n TableRow: TableRow<T>,\n TableCell: TableCell<T>,\n Table: Table<T>,\n StaticData: TypedListStaticData<T>(),\n LoaderAsync: TypedListLoaderAsync<T>(),\n LoaderHooks: TypedListLoaderHooks<T>(),\n LoaderAsyncResource: TypedListLoaderAsyncResource<T>(),\n useMetadata: () => useListMetadata<TMeta>(),\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAoBO,MAAM,YAAY,MACvB;AAEK,MAAM,YAAY,OAA2B;AAAA,EAClD,MAAM,SAAA,EAAoB;AAAA,EAC1B,QAAQ,eAAA,EAAmB;AAAA,EAC3B,QAAQ,eAAA,EAAmB;AAAA,EAC3B,SAAS,gBAAA,EAAoB;AAAA,EAC7B,MAAM,aAAA,EAAiB;AAAA,EACvB,QAAA,EAAU,YAAA;AAAA,EACV,WAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAY,mBAAA,EAAuB;AAAA,EACnC,aAAa,oBAAA,EAAwB;AAAA,EACrC,aAAa,oBAAA,EAAwB;AAAA,EACrC,qBAAqB,4BAAA,EAAgC;AAAA,EACrD,WAAA,EAAa,MAAM,eAAA;AACrB,CAAA;;;;"}
@@ -199,6 +199,7 @@ export { ListItemViewContent } from './components/src/components/List/components
199
199
  export { ListSummary } from './components/src/components/List/components/ListSummary/ListSummary.mjs';
200
200
  export { EmptyView } from './components/src/components/List/views/EmptyView/EmptyView.mjs';
201
201
  export { useList } from './components/src/components/List/hooks/useList.mjs';
202
+ export { useListMetadata } from './components/src/components/List/hooks/useListMetadata.mjs';
202
203
  export { List } from './components/src/components/List/List.mjs';
203
204
  export { TypedList, typedList } from './components/src/components/List/typedList.mjs';
204
205
  export { ListFilter, TypedListFilter } from './components/src/components/List/setupComponents/ListFilter.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"default.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"default.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -180,6 +180,7 @@ import 'invariant';
180
180
  export { ListItemView } from './components/src/components/List/components/ListItemView/ListItemView.mjs';
181
181
  import './components/src/components/List/components/ListSummary/ListSummary.mjs';
182
182
  import './components/src/components/List/listContext.mjs';
183
+ import 'mobx';
183
184
  export { List } from './components/src/components/List/List.mjs';
184
185
  export { typedList } from './components/src/components/List/typedList.mjs';
185
186
  import 'react-markdown';
@@ -193,7 +194,6 @@ export { Modal } from './components/src/components/Modal/Modal.mjs';
193
194
  import './components/src/components/Navigation/Navigation.mjs';
194
195
  import './components/src/components/Navigation/components/NavigationGroup/NavigationGroup.mjs';
195
196
  export { NotificationProvider, useNotificationController } from './components/src/components/NotificationProvider/NotificationProvider.mjs';
196
- import 'mobx';
197
197
  import 'luxon';
198
198
  import './components/src/components/NumberField/NumberField.mjs';
199
199
  import './components/src/components/Option/Option.mjs';
@@ -1,11 +1,11 @@
1
1
  import { ListShape } from './model/types';
2
2
  import { FlowComponentProps } from '../../lib/componentFactory/flowComponent';
3
3
  import { PropsWithChildren } from 'react';
4
- export interface ListProps<T> extends PropsWithChildren, FlowComponentProps, Omit<ListShape<T>, "search" | "loader" | "itemView" | "table" | "batchesController" | "filters" | "sorting"> {
4
+ export interface ListProps<T, TMeta = unknown> extends PropsWithChildren, FlowComponentProps, Omit<ListShape<T, TMeta>, "search" | "loader" | "itemView" | "table" | "batchesController" | "filters" | "sorting"> {
5
5
  /** The number of items to be displayed on one page. */
6
6
  batchSize?: number;
7
7
  hidePagination?: boolean;
8
8
  }
9
- export declare const List: import('react').FunctionComponent<ListProps<never> & import('react').RefAttributes<HTMLDivElement>>;
9
+ export declare const List: import('react').FunctionComponent<ListProps<never, unknown> & import('react').RefAttributes<HTMLDivElement>>;
10
10
  export default List;
11
11
  //# sourceMappingURL=List.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/components/List/List.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAc/D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,sCAAsC,CAAC;AAK9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAM/C,MAAM,WAAW,SAAS,CAAC,CAAC,CAC1B,SAAQ,iBAAiB,EACvB,kBAAkB,EAClB,IAAI,CACF,SAAS,CAAC,CAAC,CAAC,EACV,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,mBAAmB,GACnB,SAAS,GACT,SAAS,CACZ;IACH,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,IAAI,qGAuJf,CAAC;AAEH,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/components/List/List.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAc/D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,sCAAsC,CAAC;AAK9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAM/C,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAC3C,SAAQ,iBAAiB,EACvB,kBAAkB,EAClB,IAAI,CACF,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EACjB,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,mBAAmB,GACnB,SAAS,GACT,SAAS,CACZ;IACH,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,IAAI,8GAuJf,CAAC;AAEH,eAAe,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function useListMetadata<T = unknown>(): T | undefined;
2
+ //# sourceMappingURL=useListMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListMetadata.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/hooks/useListMetadata.ts"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,SAAS,CAM5D"}
@@ -8,6 +8,7 @@ export * from './components/ListItemView';
8
8
  export * from './components/ListSummary';
9
9
  export * from './views/EmptyView';
10
10
  export * from './hooks/useList';
11
+ export * from './hooks/useListMetadata';
11
12
  export * from './List';
12
13
  export * from './typedList';
13
14
  export * from './setupComponents/ListFilter';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/List/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,mBAAmB,CAAC;AAElC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAE5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/List/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uCAAuC,CAAC;AAE/C,YAAY,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,mBAAmB,CAAC;AAElC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAE5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC"}
@@ -9,7 +9,7 @@ import { Search } from './search/Search';
9
9
  import { ItemView } from './item/ItemView';
10
10
  import { Table } from './table/Table';
11
11
  import { default as z } from 'zod';
12
- export declare class List<T> {
12
+ export declare class List<T, TMeta = unknown> {
13
13
  static readonly viewModeSettingsStorageSchema: z.ZodOptional<z.ZodEnum<["list", "table", "tiles"]>>;
14
14
  readonly filters: Filter<T, never, never>[];
15
15
  readonly itemView?: ItemView<T>;
@@ -28,14 +28,15 @@ export declare class List<T> {
28
28
  readonly setViewMode: (viewMode: ListViewMode) => void;
29
29
  readonly supportsSettingsStorage: boolean;
30
30
  readonly settingStorageKey?: string;
31
+ metadata?: TMeta;
31
32
  private readonly settingsStore?;
32
33
  private readonly viewModeStorageKey?;
33
34
  private readonly filterSettingsStorageKey?;
34
35
  private readonly sortingStorageKey?;
35
- constructor(shape: ListShape<T>);
36
+ constructor(shape: ListShape<T, TMeta>);
36
37
  get isFiltered(): boolean;
37
38
  get visibleSorting(): Sorting<T>[];
38
- static useNew<T>(shape: ListShape<T>): List<T>;
39
+ static useNew<T, TMeta = unknown>(shape: ListShape<T, TMeta>): List<T, TMeta>;
39
40
  storeFilterDefaultSettings(): void;
40
41
  getStoredFilterDefaultSettings(): Record<string, string[]> | undefined;
41
42
  getStoredViewModeDefaultSetting(): "table" | "list" | "tiles" | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/model/List.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAClE,OAAO,UAAU,MAAM,oCAAoC,CAAC;AAC5D,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,SAAS,EACT,2BAA2B,EAC3B,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AAEtF,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,qBAAa,IAAI,CAAC,CAAC;IACjB,gBAAuB,6BAA6B,uDAEtC;IACd,SAAgB,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;IACnD,SAAgB,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvC,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnC,SAAgB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,SAAgB,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACzC,SAAgB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAgB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9C,SAAgB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC7C,SAAgB,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzC,SAAgB,cAAc,EAAE,2BAA2B,CAAC;IACrD,QAAQ,EAAE,YAAY,CAAC;IAC9B,SAAgB,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9D,SAAgB,uBAAuB,EAAE,OAAO,CAAC;IACjD,SAAgB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAS;gBAEzB,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAuEtC,IAAW,UAAU,IAAI,OAAO,CAK/B;IAED,IAAW,cAAc,iBAExB;WAEa,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAI9C,0BAA0B;IAqB1B,8BAA8B;IAU9B,+BAA+B;IAU/B,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAWxC,8BAA8B;;;;IAU9B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAMlC,YAAY,IAAI,IAAI;IAIpB,YAAY,IAAI,IAAI;IAIpB,YAAY,IAAI,IAAI;IAIpB,UAAU,IAAI,OAAO;CAG7B;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/model/List.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,14 @@ import { default as List } from './List';
3
3
  import { OnListChanged, PropertyName } from './types';
4
4
  import { SearchValue } from './search/types';
5
5
  import { Dispatch, SetStateAction } from 'react';
6
- export declare class ReactTable<T> {
7
- readonly list: List<T>;
6
+ export declare class ReactTable<T, TMeta = unknown> {
7
+ readonly list: List<T, TMeta>;
8
8
  readonly table: Table<T>;
9
9
  readonly sortingState: ColumnSort[];
10
10
  readonly updateSortingState: Dispatch<SetStateAction<ColumnSort[]>>;
11
11
  private constructor();
12
12
  get searchString(): SearchValue;
13
- static useNew<T>(list: List<T>, onChange?: OnListChanged<T>, tableOptions?: Partial<TableOptions<T>>): ReactTable<T>;
13
+ static useNew<T, TMeta = unknown>(list: List<T, TMeta>, onChange?: OnListChanged<T, TMeta>, tableOptions?: Partial<TableOptions<T>>): ReactTable<T, TMeta>;
14
14
  getTableColumn(property: PropertyName<T>): Column<T>;
15
15
  private useReactTable;
16
16
  private handleSortingStateUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"ReactTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/model/ReactTable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAEN,UAAU,EAEV,KAAK,EACL,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAS/B,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAErD,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGtD,qBAAa,UAAU,CAAC,CAAC;IACvB,SAAgB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,SAAgB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,SAAgB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3C,SAAgB,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAE3E,OAAO;IAmBP,IAAW,YAAY,IAAI,WAAW,CAErC;WAEa,MAAM,CAAC,CAAC,EACpB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,YAAY,GAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAM,GAC1C,UAAU,CAAC,CAAC,CAAC;IAIT,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAM3D,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,kBAAkB;CAkC3B;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ReactTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/model/ReactTable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAEN,UAAU,EAEV,KAAK,EACL,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAS/B,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAErD,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGtD,qBAAa,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO;IACxC,SAAgB,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,SAAgB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,SAAgB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3C,SAAgB,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAE3E,OAAO;IAmBP,IAAW,YAAY,IAAI,WAAW,CAErC;WAEa,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,EACrC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EACpB,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,EAClC,YAAY,GAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAM,GAC1C,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC;IAIhB,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAM3D,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,kBAAkB;CAkC3B;AAED,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"IncrementalLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,EAIV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAEhG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAKlE,qBAAa,iBAAiB,CAAC,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,SAAgB,aAAa,EAAE,OAAO,CAAC;IACvC,SAAgB,eAAe,EAAE,OAAO,CAAC;IACzC,SAAgB,gBAAgB,EAAE,OAAO,CAAC;IAC1C,SAAgB,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACvD,SAAgB,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAM;IAE7D,OAAO;WAgCO,MAAM,CAAC,CAAC,EACpB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,KAAK,GAAE,sBAAsB,CAAC,CAAC,CAAM,GACpC,iBAAiB,CAAC,CAAC,CAAC;IAIvB,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,KAAK;IAIN,YAAY,IAAI,OAAO;IAIvB,qBAAqB,IAAI,OAAO;IAIhC,OAAO,IAAI,CAAC,EAAE;IAIrB,OAAO,CAAC,UAAU;IA4CX,wBAAwB,IAAI,oBAAoB,EAAE;IA6BzD,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,yBAAyB;CAgClC"}
1
+ {"version":3,"file":"IncrementalLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,EAIV,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAEhG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAKlE,qBAAa,iBAAiB,CAAC,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,SAAgB,aAAa,EAAE,OAAO,CAAC;IACvC,SAAgB,eAAe,EAAE,OAAO,CAAC;IACzC,SAAgB,gBAAgB,EAAE,OAAO,CAAC;IAC1C,SAAgB,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACvD,SAAgB,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAM;IAE7D,OAAO;WAgCO,MAAM,CAAC,CAAC,EACpB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EACb,KAAK,GAAE,sBAAsB,CAAC,CAAC,CAAM,GACpC,iBAAiB,CAAC,CAAC,CAAC;IAIvB,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,KAAK;IAIN,YAAY,IAAI,OAAO;IAIvB,qBAAqB,IAAI,OAAO;IAIhC,OAAO,IAAI,CAAC,EAAE;IAIrB,OAAO,CAAC,UAAU;IA4CX,wBAAwB,IAAI,oBAAoB,EAAE;IA+BzD,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,yBAAyB;CAgClC"}
@@ -8,12 +8,14 @@ export declare class IncrementalLoaderState<T> {
8
8
  dataBatches: DataBatches<T>;
9
9
  prevDataBatches: DataBatches<T>;
10
10
  batchLoadingStates: BatchesLoadingState;
11
+ metadata?: unknown;
11
12
  readonly list: List<T>;
12
13
  private constructor();
13
14
  static useNew<T>(list: List<T>): IncrementalLoaderState<T>;
14
15
  reset(): void;
15
16
  setDataBatch(index: number, data: ListData<T>): void;
16
17
  setBatchLoadingState(index: number, state: AsyncResourceLoadingState): void;
18
+ setMetadata(metadata?: unknown): void;
17
19
  get mergedData(): T[];
18
20
  useMergedData(): T[];
19
21
  get isLoading(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"IncrementalLoaderState.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/IncrementalLoaderState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAGrD,KAAK,yBAAyB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AACjE,KAAK,WAAW,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,KAAK,mBAAmB,GAAG,yBAAyB,EAAE,CAAC;AAEvD,qBAAa,sBAAsB,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAM;IACjC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,CAAM;IACrC,kBAAkB,EAAE,mBAAmB,CAAY;IAC1D,SAAgB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE9B,OAAO;WAgBO,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC;IAI1D,KAAK,IAAI,IAAI;IAKb,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAWpD,oBAAoB,CACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,yBAAyB,GAC/B,IAAI;IAMP,IAAW,UAAU,IAAI,CAAC,EAAE,CAU3B;IAEM,aAAa,IAAI,CAAC,EAAE;IAI3B,IAAW,SAAS,IAAI,OAAO,CAE9B;IAEM,YAAY,IAAI,OAAO;IAIvB,aAAa,CAAC,UAAU,EAAE,MAAM;CAGxC"}
1
+ {"version":3,"file":"IncrementalLoaderState.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/IncrementalLoaderState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAGrD,KAAK,yBAAyB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AACjE,KAAK,WAAW,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,KAAK,mBAAmB,GAAG,yBAAyB,EAAE,CAAC;AAEvD,qBAAa,sBAAsB,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAM;IACjC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,CAAM;IACrC,kBAAkB,EAAE,mBAAmB,CAAY;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAa;IACtC,SAAgB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE9B,OAAO;WAkBO,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC;IAI1D,KAAK,IAAI,IAAI;IAKb,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAWpD,oBAAoB,CACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,yBAAyB,GAC/B,IAAI;IAMA,WAAW,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,IAAW,UAAU,IAAI,CAAC,EAAE,CAU3B;IAEM,aAAa,IAAI,CAAC,EAAE;IAI3B,IAAW,SAAS,IAAI,OAAO,CAE9B;IAEM,YAAY,IAAI,OAAO;IAIvB,aAAa,CAAC,UAAU,EAAE,MAAM;CAGxC"}
@@ -22,6 +22,7 @@ export type ListData<T> = readonly T[];
22
22
  export interface DataLoaderResult<T> {
23
23
  data: ListData<T>;
24
24
  itemTotalCount?: number;
25
+ metadata?: unknown;
25
26
  }
26
27
  export type HooksDataLoader<T> = (options: DataLoaderOptions<T>) => DataLoaderResult<T>;
27
28
  export type AsyncDataLoader<T> = (options: DataLoaderOptions<T>) => Promise<DataLoaderResult<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/loading/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,KAAK,qBAAqB,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;AAElE,KAAK,uBAAuB,CAAC,CAAC,IAAI,cAAc,CAC9C,CAAC,EACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CACxC,CAAC;AAEF,UAAU,2BAA2B;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC1C;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC;AAEvC,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAC/B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAEzB,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAC/B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CACpC,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAC3B,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAExC,UAAU,kBAAkB;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACzB;AAED,MAAM,MAAM,mCAAmC,CAAC,CAAC,IAAI;IACnD,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;CAC/C,GAAG,kBAAkB,CAAC;AAEvB,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IACpC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,GAAG,kBAAkB,CAAC;AAEvB,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IACpC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7B,GAAG,kBAAkB,CAAC;AAEvB,MAAM,MAAM,UAAU,CAAC,CAAC,IACpB,qBAAqB,CAAC,CAAC,CAAC,GACxB,oBAAoB,CAAC,CAAC,CAAC,GACvB,mCAAmC,CAAC,CAAC,CAAC,GACtC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAE5B,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B"}
@@ -15,13 +15,13 @@ export type CustomPropertyName = `${typeof customPropertyPrefix}${string}`;
15
15
  export type PropertyName<T> = DeepKeys<T> | CustomPropertyName;
16
16
  export type PropertyValue<T, TProp> = TProp extends CustomPropertyName ? T : DeepValue<T, TProp>;
17
17
  export type PropertyValueRenderMethod<TMatcherValue> = (prop: NonNullable<ItemType<TMatcherValue>>) => ReactNode;
18
- export type OnListChanged<T> = (list: List<T>) => void;
18
+ export type OnListChanged<T, TMeta = unknown> = (list: List<T, TMeta>) => void;
19
19
  export interface ListSupportedComponentProps extends MultipleSelection {
20
20
  "aria-labelledby"?: string;
21
21
  "aria-label"?: string;
22
22
  selectionBehavior?: SelectionBehavior;
23
23
  }
24
- export interface ListShape<T> extends ListSupportedComponentProps {
24
+ export interface ListShape<T, TMeta = unknown> extends ListSupportedComponentProps {
25
25
  settingStorageKey?: string;
26
26
  loader?: IncrementalLoaderShape<T>;
27
27
  filters?: FilterShape<T, never, never>[];
@@ -33,7 +33,7 @@ export interface ListShape<T> extends ListSupportedComponentProps {
33
33
  onAction?: ItemActionFn<T>;
34
34
  accordion?: boolean;
35
35
  getItemId?: GetItemId<T>;
36
- onChange?: OnListChanged<T>;
36
+ onChange?: OnListChanged<T, TMeta>;
37
37
  defaultViewMode?: ListViewMode;
38
38
  }
39
39
  export type PropertyRecord<T, TValue> = Partial<Record<PropertyName<T>, TValue>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/model/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/model/types.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { ListProps } from './List';
2
2
  import { ComponentType } from 'react';
3
- export declare const TypedList: <T>() => ComponentType<ListProps<T>>;
4
- export declare const typedList: <T>() => {
5
- List: ComponentType<ListProps<T>>;
3
+ export declare const TypedList: <T, TMeta = unknown>() => ComponentType<ListProps<T, TMeta>>;
4
+ export declare const typedList: <T, TMeta = unknown>() => {
5
+ List: ComponentType<ListProps<T, TMeta>>;
6
6
  Filter: <const TProp extends import('./model/types').PropertyName<T>, TMatcherValue = import('./model/types').PropertyValue<T, TProp>>(props: Omit<import('./model/filter/types').FilterShape<T, TProp, TMatcherValue>, "type" | "renderItem"> & {
7
7
  children?: import('./model/types').PropertyValueRenderMethod<TMatcherValue> | undefined;
8
8
  }) => import('react').ReactNode;
@@ -233,5 +233,6 @@ export declare const typedList: <T>() => {
233
233
  LoaderAsyncResource: ComponentType<Omit<import('./model/loading/types').AsyncResourceFactoryDataLoaderShape<T>, "asyncResourceFactory"> & {
234
234
  children: import('.').AsyncResourceFactory<T>;
235
235
  }>;
236
+ useMetadata: () => TMeta | undefined;
236
237
  };
237
238
  //# sourceMappingURL=typedList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typedList.d.ts","sourceRoot":"","sources":["../../../../src/components/List/typedList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAUxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAS3C,eAAO,MAAM,SAAS,GAAI,CAAC,OACN,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjD,eAAO,MAAM,SAAS,GAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBzB,CAAC"}
1
+ {"version":3,"file":"typedList.d.ts","sourceRoot":"","sources":["../../../../src/components/List/typedList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAUxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAU3C,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,KAAK,GAAG,OAAO,OACvB,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,KAAK,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB1C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mittwald/flow-react-components",
3
- "version": "0.2.0-alpha.565",
3
+ "version": "0.2.0-alpha.566",
4
4
  "type": "module",
5
5
  "description": "A React implementation of Flow, mittwald’s design system",
6
6
  "homepage": "https://mittwald.github.io/flow",
@@ -58,7 +58,7 @@
58
58
  "dependencies": {
59
59
  "@internationalized/string-compiler": "^3.2.6",
60
60
  "@mittwald/password-tools-js": "3.0.0-alpha.18",
61
- "@mittwald/react-tunnel": "0.2.0-alpha.565",
61
+ "@mittwald/react-tunnel": "0.2.0-alpha.566",
62
62
  "@mittwald/react-use-promise": "^4.2.2",
63
63
  "@react-aria/form": "^3.1.2",
64
64
  "@react-aria/live-announcer": "^3.4.4",
@@ -102,7 +102,7 @@
102
102
  "@faker-js/faker": "^10.1.0",
103
103
  "@internationalized/date": "^3.10.0",
104
104
  "@mittwald/flow-core": "",
105
- "@mittwald/flow-design-tokens": "0.2.0-alpha.565",
105
+ "@mittwald/flow-design-tokens": "0.2.0-alpha.566",
106
106
  "@mittwald/react-use-promise": "^4.2.2",
107
107
  "@mittwald/remote-dom-react": "1.2.2-mittwald.10",
108
108
  "@mittwald/typescript-config": "",
@@ -175,5 +175,5 @@
175
175
  "optional": true
176
176
  }
177
177
  },
178
- "gitHead": "62c124282d69a0605982827341c9a1749edd96f1"
178
+ "gitHead": "d42050283a9418ead835fbc2a5e4e3a20e115d45"
179
179
  }