@mittwald/flow-react-components 0.2.0-alpha.271 → 0.2.0-alpha.272
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 +7 -0
- package/dist/assets/doc-properties.json +120 -120
- package/dist/js/components/src/components/List/model/List.mjs +22 -1
- package/dist/js/components/src/components/List/model/List.mjs.map +1 -1
- package/dist/js/components/src/components/List/model/sorting/Sorting.mjs +12 -1
- package/dist/js/components/src/components/List/model/sorting/Sorting.mjs.map +1 -1
- package/dist/types/components/List/model/List.d.ts +6 -0
- package/dist/types/components/List/model/List.d.ts.map +1 -1
- package/dist/types/components/List/model/sorting/Sorting.d.ts +12 -0
- package/dist/types/components/List/model/sorting/Sorting.d.ts.map +1 -1
- package/dist/types/components/List/stories/Default.stories.d.ts.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.2.0-alpha.272](https://github.com/mittwald/flow/compare/0.2.0-alpha.271...0.2.0-alpha.272) (2025-06-17)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **List:** Fix stored view mode not used if default view mode enabled ([a9462d0](https://github.com/mittwald/flow/commit/a9462d05131eeeac00bb5b2f1d500dc415c734a9))
|
|
11
|
+
* **List:** Store sorting ([5211ef7](https://github.com/mittwald/flow/commit/5211ef7ecd028d32d70a2cbb998958c8dbb601e9))
|
|
12
|
+
|
|
6
13
|
# [0.2.0-alpha.271](https://github.com/mittwald/flow/compare/0.2.0-alpha.270...0.2.0-alpha.271) (2025-06-17)
|
|
7
14
|
|
|
8
15
|
**Note:** Version bump only for package @mittwald/flow-react-components
|
|
@@ -171294,200 +171294,204 @@
|
|
|
171294
171294
|
},
|
|
171295
171295
|
{
|
|
171296
171296
|
"tags": {
|
|
171297
|
-
"flr-generate": "all"
|
|
171297
|
+
"flr-generate": "all",
|
|
171298
|
+
"flr-clear-props-context": ""
|
|
171298
171299
|
},
|
|
171299
|
-
"filePath": "src/components/
|
|
171300
|
+
"filePath": "/home/runner/work/flow/flow/packages/components/src/components/Align/Align.tsx",
|
|
171300
171301
|
"description": "",
|
|
171301
|
-
"displayName": "
|
|
171302
|
+
"displayName": "Align",
|
|
171302
171303
|
"methods": [],
|
|
171303
171304
|
"props": {
|
|
171304
|
-
"
|
|
171305
|
+
"children": {
|
|
171305
171306
|
"defaultValue": null,
|
|
171306
171307
|
"description": "",
|
|
171307
|
-
"name": "
|
|
171308
|
-
"parent": {
|
|
171309
|
-
"fileName": "src/components/AreaChart/AreaChart.tsx",
|
|
171310
|
-
"name": "AreaChartProps"
|
|
171311
|
-
},
|
|
171308
|
+
"name": "children",
|
|
171312
171309
|
"declarations": [
|
|
171313
171310
|
{
|
|
171314
|
-
"fileName": "
|
|
171315
|
-
"name": "
|
|
171311
|
+
"fileName": "flow/node_modules/.pnpm/@types+react@19.1.6/node_modules/@types/react/index.d.ts",
|
|
171312
|
+
"name": "TypeLiteral"
|
|
171316
171313
|
}
|
|
171317
171314
|
],
|
|
171318
171315
|
"required": false,
|
|
171319
171316
|
"type": {
|
|
171320
|
-
"name": "
|
|
171317
|
+
"name": "ReactNode"
|
|
171321
171318
|
}
|
|
171322
171319
|
},
|
|
171323
|
-
"
|
|
171320
|
+
"className": {
|
|
171324
171321
|
"defaultValue": null,
|
|
171325
|
-
"description": "
|
|
171326
|
-
"name": "
|
|
171322
|
+
"description": "The elements class name.",
|
|
171323
|
+
"name": "className",
|
|
171327
171324
|
"parent": {
|
|
171328
|
-
"fileName": "src/
|
|
171329
|
-
"name": "
|
|
171325
|
+
"fileName": "components/src/lib/types/props.ts",
|
|
171326
|
+
"name": "PropsWithClassName"
|
|
171330
171327
|
},
|
|
171331
171328
|
"declarations": [
|
|
171332
171329
|
{
|
|
171333
|
-
"fileName": "src/
|
|
171334
|
-
"name": "
|
|
171330
|
+
"fileName": "components/src/lib/types/props.ts",
|
|
171331
|
+
"name": "PropsWithClassName"
|
|
171335
171332
|
}
|
|
171336
171333
|
],
|
|
171337
171334
|
"required": false,
|
|
171338
171335
|
"type": {
|
|
171339
|
-
"name": "
|
|
171336
|
+
"name": "string"
|
|
171340
171337
|
}
|
|
171341
171338
|
},
|
|
171342
|
-
"
|
|
171339
|
+
"wrapWith": {
|
|
171343
171340
|
"defaultValue": null,
|
|
171344
|
-
"description": "
|
|
171345
|
-
"name": "
|
|
171341
|
+
"description": "",
|
|
171342
|
+
"name": "wrapWith",
|
|
171346
171343
|
"parent": {
|
|
171347
|
-
"fileName": "src/
|
|
171348
|
-
"name": "
|
|
171344
|
+
"fileName": "components/src/lib/componentFactory/flowComponent.tsx",
|
|
171345
|
+
"name": "FlowComponentProps"
|
|
171349
171346
|
},
|
|
171350
171347
|
"declarations": [
|
|
171351
171348
|
{
|
|
171352
|
-
"fileName": "src/
|
|
171353
|
-
"name": "
|
|
171349
|
+
"fileName": "components/src/lib/componentFactory/flowComponent.tsx",
|
|
171350
|
+
"name": "FlowComponentProps"
|
|
171354
171351
|
}
|
|
171355
171352
|
],
|
|
171356
171353
|
"required": false,
|
|
171357
171354
|
"type": {
|
|
171358
|
-
"name": "
|
|
171355
|
+
"name": "ReactElement<unknown, string | JSXElementConstructor<any>>"
|
|
171359
171356
|
}
|
|
171360
171357
|
},
|
|
171361
|
-
"
|
|
171358
|
+
"tunnelId": {
|
|
171362
171359
|
"defaultValue": null,
|
|
171363
|
-
"description": "",
|
|
171364
|
-
"name": "
|
|
171360
|
+
"description": "@internal",
|
|
171361
|
+
"name": "tunnelId",
|
|
171365
171362
|
"parent": {
|
|
171366
|
-
"fileName": "
|
|
171367
|
-
"name": "
|
|
171363
|
+
"fileName": "components/src/lib/types/props.ts",
|
|
171364
|
+
"name": "PropsWithTunnel"
|
|
171368
171365
|
},
|
|
171369
171366
|
"declarations": [
|
|
171370
171367
|
{
|
|
171371
|
-
"fileName": "
|
|
171372
|
-
"name": "
|
|
171368
|
+
"fileName": "components/src/lib/types/props.ts",
|
|
171369
|
+
"name": "PropsWithTunnel"
|
|
171373
171370
|
}
|
|
171374
171371
|
],
|
|
171375
171372
|
"required": false,
|
|
171376
171373
|
"type": {
|
|
171377
|
-
"name": "string"
|
|
171374
|
+
"name": "string | null"
|
|
171378
171375
|
}
|
|
171379
171376
|
},
|
|
171380
|
-
"
|
|
171377
|
+
"ref": {
|
|
171381
171378
|
"defaultValue": null,
|
|
171382
|
-
"description": "",
|
|
171383
|
-
"name": "
|
|
171379
|
+
"description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}",
|
|
171380
|
+
"name": "ref",
|
|
171384
171381
|
"parent": {
|
|
171385
|
-
"fileName": "flow/node_modules/.pnpm
|
|
171386
|
-
"name": "
|
|
171382
|
+
"fileName": "flow/node_modules/.pnpm/@types+react@19.1.6/node_modules/@types/react/index.d.ts",
|
|
171383
|
+
"name": "RefAttributes"
|
|
171387
171384
|
},
|
|
171388
171385
|
"declarations": [
|
|
171389
171386
|
{
|
|
171390
|
-
"fileName": "flow/node_modules/.pnpm
|
|
171391
|
-
"name": "
|
|
171387
|
+
"fileName": "flow/node_modules/.pnpm/@types+react@19.1.6/node_modules/@types/react/index.d.ts",
|
|
171388
|
+
"name": "RefAttributes"
|
|
171392
171389
|
}
|
|
171393
171390
|
],
|
|
171394
171391
|
"required": false,
|
|
171395
171392
|
"type": {
|
|
171396
|
-
"name": "
|
|
171393
|
+
"name": "Ref<HTMLDivElement>"
|
|
171397
171394
|
}
|
|
171398
171395
|
},
|
|
171399
|
-
"
|
|
171396
|
+
"key": {
|
|
171400
171397
|
"defaultValue": null,
|
|
171401
171398
|
"description": "",
|
|
171402
|
-
"name": "
|
|
171399
|
+
"name": "key",
|
|
171403
171400
|
"parent": {
|
|
171404
|
-
"fileName": "flow/node_modules/.pnpm
|
|
171405
|
-
"name": "
|
|
171401
|
+
"fileName": "flow/node_modules/.pnpm/@types+react@19.1.6/node_modules/@types/react/index.d.ts",
|
|
171402
|
+
"name": "Attributes"
|
|
171406
171403
|
},
|
|
171407
171404
|
"declarations": [
|
|
171408
171405
|
{
|
|
171409
|
-
"fileName": "flow/node_modules/.pnpm
|
|
171410
|
-
"name": "
|
|
171406
|
+
"fileName": "flow/node_modules/.pnpm/@types+react@19.1.6/node_modules/@types/react/index.d.ts",
|
|
171407
|
+
"name": "Attributes"
|
|
171411
171408
|
}
|
|
171412
171409
|
],
|
|
171413
171410
|
"required": false,
|
|
171414
171411
|
"type": {
|
|
171415
|
-
"name": "
|
|
171412
|
+
"name": "Key | null"
|
|
171416
171413
|
}
|
|
171417
|
-
}
|
|
171418
|
-
|
|
171414
|
+
}
|
|
171415
|
+
}
|
|
171416
|
+
},
|
|
171417
|
+
{
|
|
171418
|
+
"tags": {
|
|
171419
|
+
"flr-generate": "all"
|
|
171420
|
+
},
|
|
171421
|
+
"filePath": "src/components/AreaChart/AreaChart.tsx",
|
|
171422
|
+
"description": "",
|
|
171423
|
+
"displayName": "AreaChart",
|
|
171424
|
+
"methods": [],
|
|
171425
|
+
"props": {
|
|
171426
|
+
"height": {
|
|
171419
171427
|
"defaultValue": null,
|
|
171420
171428
|
"description": "",
|
|
171421
|
-
"name": "
|
|
171429
|
+
"name": "height",
|
|
171422
171430
|
"parent": {
|
|
171423
|
-
"fileName": "
|
|
171424
|
-
"name": "
|
|
171431
|
+
"fileName": "src/components/AreaChart/AreaChart.tsx",
|
|
171432
|
+
"name": "AreaChartProps"
|
|
171425
171433
|
},
|
|
171426
171434
|
"declarations": [
|
|
171427
171435
|
{
|
|
171428
|
-
"fileName": "
|
|
171429
|
-
"name": "
|
|
171436
|
+
"fileName": "src/components/AreaChart/AreaChart.tsx",
|
|
171437
|
+
"name": "AreaChartProps"
|
|
171430
171438
|
}
|
|
171431
171439
|
],
|
|
171432
171440
|
"required": false,
|
|
171433
171441
|
"type": {
|
|
171434
|
-
"name": "
|
|
171442
|
+
"name": "string"
|
|
171435
171443
|
}
|
|
171436
171444
|
},
|
|
171437
|
-
"
|
|
171445
|
+
"emptyView": {
|
|
171438
171446
|
"defaultValue": null,
|
|
171439
|
-
"description": "",
|
|
171440
|
-
"name": "
|
|
171447
|
+
"description": "View that is provided when data is empty/undefined",
|
|
171448
|
+
"name": "emptyView",
|
|
171449
|
+
"parent": {
|
|
171450
|
+
"fileName": "src/components/AreaChart/AreaChart.tsx",
|
|
171451
|
+
"name": "AreaChartProps"
|
|
171452
|
+
},
|
|
171441
171453
|
"declarations": [
|
|
171442
171454
|
{
|
|
171443
|
-
"fileName": "
|
|
171444
|
-
"name": "
|
|
171455
|
+
"fileName": "src/components/AreaChart/AreaChart.tsx",
|
|
171456
|
+
"name": "AreaChartProps"
|
|
171445
171457
|
}
|
|
171446
171458
|
],
|
|
171447
171459
|
"required": false,
|
|
171448
171460
|
"type": {
|
|
171449
|
-
"name": "
|
|
171461
|
+
"name": "ComponentType<AreaChartEmptyViewProps>"
|
|
171450
171462
|
}
|
|
171451
|
-
}
|
|
171452
|
-
|
|
171453
|
-
},
|
|
171454
|
-
{
|
|
171455
|
-
"tags": {
|
|
171456
|
-
"flr-generate": "all",
|
|
171457
|
-
"flr-clear-props-context": ""
|
|
171458
|
-
},
|
|
171459
|
-
"filePath": "/home/runner/work/flow/flow/packages/components/src/components/Align/Align.tsx",
|
|
171460
|
-
"description": "",
|
|
171461
|
-
"displayName": "Align",
|
|
171462
|
-
"methods": [],
|
|
171463
|
-
"props": {
|
|
171464
|
-
"children": {
|
|
171463
|
+
},
|
|
171464
|
+
"flexGrow": {
|
|
171465
171465
|
"defaultValue": null,
|
|
171466
|
-
"description": "",
|
|
171467
|
-
"name": "
|
|
171466
|
+
"description": "Allow the height controlling container to set flex-grow: 1. Can only be\nused in combination with `height`",
|
|
171467
|
+
"name": "flexGrow",
|
|
171468
|
+
"parent": {
|
|
171469
|
+
"fileName": "src/components/AreaChart/AreaChart.tsx",
|
|
171470
|
+
"name": "AreaChartProps"
|
|
171471
|
+
},
|
|
171468
171472
|
"declarations": [
|
|
171469
171473
|
{
|
|
171470
|
-
"fileName": "
|
|
171471
|
-
"name": "
|
|
171474
|
+
"fileName": "src/components/AreaChart/AreaChart.tsx",
|
|
171475
|
+
"name": "AreaChartProps"
|
|
171472
171476
|
}
|
|
171473
171477
|
],
|
|
171474
171478
|
"required": false,
|
|
171475
171479
|
"type": {
|
|
171476
|
-
"name": "
|
|
171480
|
+
"name": "boolean"
|
|
171477
171481
|
}
|
|
171478
171482
|
},
|
|
171479
171483
|
"className": {
|
|
171480
171484
|
"defaultValue": null,
|
|
171481
|
-
"description": "
|
|
171485
|
+
"description": "",
|
|
171482
171486
|
"name": "className",
|
|
171483
171487
|
"parent": {
|
|
171484
|
-
"fileName": "
|
|
171485
|
-
"name": "
|
|
171488
|
+
"fileName": "flow/node_modules/.pnpm/recharts@3.0.0-beta.1_@types+react@19.1.6_redux@5.0.1/node_modules/recharts/types/chart/generateCategoricalChart.d.ts",
|
|
171489
|
+
"name": "CategoricalChartProps"
|
|
171486
171490
|
},
|
|
171487
171491
|
"declarations": [
|
|
171488
171492
|
{
|
|
171489
|
-
"fileName": "
|
|
171490
|
-
"name": "
|
|
171493
|
+
"fileName": "flow/node_modules/.pnpm/recharts@3.0.0-beta.1_@types+react@19.1.6_redux@5.0.1/node_modules/recharts/types/chart/generateCategoricalChart.d.ts",
|
|
171494
|
+
"name": "CategoricalChartProps"
|
|
171491
171495
|
}
|
|
171492
171496
|
],
|
|
171493
171497
|
"required": false,
|
|
@@ -171495,80 +171499,76 @@
|
|
|
171495
171499
|
"name": "string"
|
|
171496
171500
|
}
|
|
171497
171501
|
},
|
|
171498
|
-
"
|
|
171502
|
+
"data": {
|
|
171499
171503
|
"defaultValue": null,
|
|
171500
171504
|
"description": "",
|
|
171501
|
-
"name": "
|
|
171505
|
+
"name": "data",
|
|
171502
171506
|
"parent": {
|
|
171503
|
-
"fileName": "
|
|
171504
|
-
"name": "
|
|
171507
|
+
"fileName": "flow/node_modules/.pnpm/recharts@3.0.0-beta.1_@types+react@19.1.6_redux@5.0.1/node_modules/recharts/types/chart/generateCategoricalChart.d.ts",
|
|
171508
|
+
"name": "CategoricalChartProps"
|
|
171505
171509
|
},
|
|
171506
171510
|
"declarations": [
|
|
171507
171511
|
{
|
|
171508
|
-
"fileName": "
|
|
171509
|
-
"name": "
|
|
171512
|
+
"fileName": "flow/node_modules/.pnpm/recharts@3.0.0-beta.1_@types+react@19.1.6_redux@5.0.1/node_modules/recharts/types/chart/generateCategoricalChart.d.ts",
|
|
171513
|
+
"name": "CategoricalChartProps"
|
|
171510
171514
|
}
|
|
171511
171515
|
],
|
|
171512
171516
|
"required": false,
|
|
171513
171517
|
"type": {
|
|
171514
|
-
"name": "
|
|
171518
|
+
"name": "any[]"
|
|
171515
171519
|
}
|
|
171516
171520
|
},
|
|
171517
|
-
"
|
|
171521
|
+
"syncId": {
|
|
171518
171522
|
"defaultValue": null,
|
|
171519
|
-
"description": "
|
|
171520
|
-
"name": "
|
|
171523
|
+
"description": "",
|
|
171524
|
+
"name": "syncId",
|
|
171521
171525
|
"parent": {
|
|
171522
|
-
"fileName": "
|
|
171523
|
-
"name": "
|
|
171526
|
+
"fileName": "flow/node_modules/.pnpm/recharts@3.0.0-beta.1_@types+react@19.1.6_redux@5.0.1/node_modules/recharts/types/chart/generateCategoricalChart.d.ts",
|
|
171527
|
+
"name": "CategoricalChartProps"
|
|
171524
171528
|
},
|
|
171525
171529
|
"declarations": [
|
|
171526
171530
|
{
|
|
171527
|
-
"fileName": "
|
|
171528
|
-
"name": "
|
|
171531
|
+
"fileName": "flow/node_modules/.pnpm/recharts@3.0.0-beta.1_@types+react@19.1.6_redux@5.0.1/node_modules/recharts/types/chart/generateCategoricalChart.d.ts",
|
|
171532
|
+
"name": "CategoricalChartProps"
|
|
171529
171533
|
}
|
|
171530
171534
|
],
|
|
171531
171535
|
"required": false,
|
|
171532
171536
|
"type": {
|
|
171533
|
-
"name": "string |
|
|
171537
|
+
"name": "string | number"
|
|
171534
171538
|
}
|
|
171535
171539
|
},
|
|
171536
|
-
"
|
|
171540
|
+
"syncMethod": {
|
|
171537
171541
|
"defaultValue": null,
|
|
171538
|
-
"description": "
|
|
171539
|
-
"name": "
|
|
171542
|
+
"description": "",
|
|
171543
|
+
"name": "syncMethod",
|
|
171540
171544
|
"parent": {
|
|
171541
|
-
"fileName": "flow/node_modules/.pnpm
|
|
171542
|
-
"name": "
|
|
171545
|
+
"fileName": "flow/node_modules/.pnpm/recharts@3.0.0-beta.1_@types+react@19.1.6_redux@5.0.1/node_modules/recharts/types/chart/generateCategoricalChart.d.ts",
|
|
171546
|
+
"name": "CategoricalChartProps"
|
|
171543
171547
|
},
|
|
171544
171548
|
"declarations": [
|
|
171545
171549
|
{
|
|
171546
|
-
"fileName": "flow/node_modules/.pnpm
|
|
171547
|
-
"name": "
|
|
171550
|
+
"fileName": "flow/node_modules/.pnpm/recharts@3.0.0-beta.1_@types+react@19.1.6_redux@5.0.1/node_modules/recharts/types/chart/generateCategoricalChart.d.ts",
|
|
171551
|
+
"name": "CategoricalChartProps"
|
|
171548
171552
|
}
|
|
171549
171553
|
],
|
|
171550
171554
|
"required": false,
|
|
171551
171555
|
"type": {
|
|
171552
|
-
"name": "
|
|
171556
|
+
"name": "SyncMethod"
|
|
171553
171557
|
}
|
|
171554
171558
|
},
|
|
171555
|
-
"
|
|
171559
|
+
"children": {
|
|
171556
171560
|
"defaultValue": null,
|
|
171557
171561
|
"description": "",
|
|
171558
|
-
"name": "
|
|
171559
|
-
"parent": {
|
|
171560
|
-
"fileName": "flow/node_modules/.pnpm/@types+react@19.1.6/node_modules/@types/react/index.d.ts",
|
|
171561
|
-
"name": "Attributes"
|
|
171562
|
-
},
|
|
171562
|
+
"name": "children",
|
|
171563
171563
|
"declarations": [
|
|
171564
171564
|
{
|
|
171565
171565
|
"fileName": "flow/node_modules/.pnpm/@types+react@19.1.6/node_modules/@types/react/index.d.ts",
|
|
171566
|
-
"name": "
|
|
171566
|
+
"name": "TypeLiteral"
|
|
171567
171567
|
}
|
|
171568
171568
|
],
|
|
171569
171569
|
"required": false,
|
|
171570
171570
|
"type": {
|
|
171571
|
-
"name": "
|
|
171571
|
+
"name": "ReactNode"
|
|
171572
171572
|
}
|
|
171573
171573
|
}
|
|
171574
171574
|
}
|
|
@@ -36,6 +36,7 @@ class List {
|
|
|
36
36
|
settingsStore;
|
|
37
37
|
viewModeStorageKey;
|
|
38
38
|
filterSettingsStorageKey;
|
|
39
|
+
sortingStorageKey;
|
|
39
40
|
constructor(shape) {
|
|
40
41
|
const {
|
|
41
42
|
settingStorageKey,
|
|
@@ -57,6 +58,7 @@ class List {
|
|
|
57
58
|
this.settingStorageKey = settingStorageKey;
|
|
58
59
|
this.filterSettingsStorageKey = settingStorageKey ? `${settingStorageKey}.activeFilters` : void 0;
|
|
59
60
|
this.viewModeStorageKey = settingStorageKey ? `${settingStorageKey}.viewMode` : void 0;
|
|
61
|
+
this.sortingStorageKey = settingStorageKey ? `${settingStorageKey}.sorting` : void 0;
|
|
60
62
|
this.supportsSettingsStorage = !!this.settingStorageKey;
|
|
61
63
|
this.items = new ItemCollection(this);
|
|
62
64
|
this.filters = filters.map((shape2) => new Filter(this, shape2));
|
|
@@ -76,7 +78,7 @@ class List {
|
|
|
76
78
|
manualSorting: this.loader.manualSorting
|
|
77
79
|
});
|
|
78
80
|
const [viewMode, setViewMode] = useState(
|
|
79
|
-
|
|
81
|
+
this.getStoredViewModeDefaultSetting() ?? defaultViewMode ?? "list"
|
|
80
82
|
);
|
|
81
83
|
this.viewMode = viewMode;
|
|
82
84
|
this.setViewMode = (viewMode2) => {
|
|
@@ -137,6 +139,25 @@ class List {
|
|
|
137
139
|
);
|
|
138
140
|
}
|
|
139
141
|
}
|
|
142
|
+
storeSortingSettings(sorting) {
|
|
143
|
+
if (this.settingsStore && this.sortingStorageKey) {
|
|
144
|
+
this.settingsStore.set(
|
|
145
|
+
"List",
|
|
146
|
+
this.sortingStorageKey,
|
|
147
|
+
Sorting.storageSchema,
|
|
148
|
+
{ direction: sorting.direction, property: sorting.property }
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
getStoredSortingDefaultSetting() {
|
|
153
|
+
if (this.settingsStore && this.sortingStorageKey) {
|
|
154
|
+
return this.settingsStore.get(
|
|
155
|
+
"List",
|
|
156
|
+
this.sortingStorageKey,
|
|
157
|
+
Sorting.storageSchema
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
140
161
|
getSorting(id) {
|
|
141
162
|
const sorting = this.sorting.find((s) => s.id === id);
|
|
142
163
|
invariant(!!sorting, `Could not get Sorting (ID: ${id})`);
|
|
@@ -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\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.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 defaultViewMode ?? this.getStoredViewModeDefaultSetting() ?? \"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 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> {\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,6 +1,12 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
/* */
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
|
|
3
5
|
class Sorting {
|
|
6
|
+
static storageSchema = z.object({
|
|
7
|
+
direction: z.enum(["asc", "desc"]),
|
|
8
|
+
property: z.string().or(z.number())
|
|
9
|
+
}).optional();
|
|
4
10
|
list;
|
|
5
11
|
property;
|
|
6
12
|
name;
|
|
@@ -12,9 +18,13 @@ class Sorting {
|
|
|
12
18
|
this.property = shape.property;
|
|
13
19
|
this.name = shape.name;
|
|
14
20
|
this.direction = shape.direction ?? "asc";
|
|
15
|
-
this.defaultEnabled = shape.defaultEnabled ?? false;
|
|
21
|
+
this.defaultEnabled = this.getStoredDefaultEnabled() ?? shape.defaultEnabled ?? false;
|
|
16
22
|
this.customSortingFn = shape.customSortingFn;
|
|
17
23
|
}
|
|
24
|
+
getStoredDefaultEnabled() {
|
|
25
|
+
const storedSorting = this.list.getStoredSortingDefaultSetting();
|
|
26
|
+
return storedSorting?.property === this.property && storedSorting.direction === this.direction;
|
|
27
|
+
}
|
|
18
28
|
updateTableColumnDef(def) {
|
|
19
29
|
def.enableSorting = true;
|
|
20
30
|
if (this.customSortingFn) {
|
|
@@ -36,6 +46,7 @@ class Sorting {
|
|
|
36
46
|
}
|
|
37
47
|
enable() {
|
|
38
48
|
this.list.reactTable.getTableColumn(this.property).toggleSorting(this.direction === "desc", false);
|
|
49
|
+
this.list.storeSortingSettings(this);
|
|
39
50
|
}
|
|
40
51
|
clear() {
|
|
41
52
|
this.list.reactTable.getTableColumn(this.property).clearSorting();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sorting.mjs","sources":["../../../../../../../../src/components/List/model/sorting/Sorting.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n SortingDefaultMode,\n SortingShape,\n} from \"@/components/List/model/sorting/types\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport type {\n Column,\n ColumnDef,\n ColumnSort,\n SortDirection,\n SortingFn,\n} from \"@tanstack/react-table\";\n\nexport class Sorting<T> {\n public readonly list: List<T>;\n public readonly property: PropertyName<T>;\n public readonly name?: string;\n public readonly direction: SortDirection;\n public readonly defaultEnabled: SortingDefaultMode;\n public readonly customSortingFn?: SortingFn<T>;\n\n public constructor(list: List<T>, shape: SortingShape<T>) {\n this.list = list;\n this.property = shape.property;\n this.name = shape.name;\n this.direction = shape.direction ?? \"asc\";\n this.defaultEnabled
|
|
1
|
+
{"version":3,"file":"Sorting.mjs","sources":["../../../../../../../../src/components/List/model/sorting/Sorting.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n SortingDefaultMode,\n SortingShape,\n} from \"@/components/List/model/sorting/types\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport type {\n Column,\n ColumnDef,\n ColumnSort,\n SortDirection,\n SortingFn,\n} from \"@tanstack/react-table\";\nimport z from \"zod\";\n\nexport class Sorting<T> {\n public static readonly storageSchema = z\n .object({\n direction: z.enum([\"asc\", \"desc\"]),\n property: z.string().or(z.number()),\n })\n .optional();\n public readonly list: List<T>;\n public readonly property: PropertyName<T>;\n public readonly name?: string;\n public readonly direction: SortDirection;\n public readonly defaultEnabled: SortingDefaultMode;\n public readonly customSortingFn?: SortingFn<T>;\n\n public constructor(list: List<T>, shape: SortingShape<T>) {\n this.list = list;\n this.property = shape.property;\n this.name = shape.name;\n this.direction = shape.direction ?? \"asc\";\n this.defaultEnabled =\n this.getStoredDefaultEnabled() ?? shape.defaultEnabled ?? false;\n this.customSortingFn = shape.customSortingFn;\n }\n\n private getStoredDefaultEnabled() {\n const storedSorting = this.list.getStoredSortingDefaultSetting();\n return (\n storedSorting?.property === this.property &&\n storedSorting.direction === this.direction\n );\n }\n\n public updateTableColumnDef(def: ColumnDef<T>): void {\n def.enableSorting = true;\n if (this.customSortingFn) {\n def.sortingFn = this.customSortingFn;\n }\n }\n\n public getReactTableColumnSort(): ColumnSort {\n return {\n id: this.property as string,\n desc: this.direction === \"desc\",\n };\n }\n\n public isSorted(): boolean {\n const col = this.getTableColumn();\n return col.getIsSorted() == this.direction;\n }\n\n public getTableColumn(): Column<T> {\n return this.list.reactTable.getTableColumn(this.property);\n }\n\n public enable(): void {\n this.list.reactTable\n .getTableColumn(this.property)\n .toggleSorting(this.direction === \"desc\", false);\n this.list.storeSortingSettings(this);\n }\n\n public clear(): void {\n this.list.reactTable.getTableColumn(this.property).clearSorting();\n }\n\n public get id(): string {\n return `${this.getTableColumn().id}:${this.direction}`;\n }\n}\n"],"names":[],"mappings":";;AAeO,MAAM,OAAW,CAAA;AAAA,EACtB,OAAuB,aAAgB,GAAA,CAAA,CACpC,MAAO,CAAA;AAAA,IACN,WAAW,CAAE,CAAA,IAAA,CAAK,CAAC,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,IACjC,UAAU,CAAE,CAAA,MAAA,GAAS,EAAG,CAAA,CAAA,CAAE,QAAQ;AAAA,GACnC,EACA,QAAS,EAAA;AAAA,EACI,IAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EAET,WAAA,CAAY,MAAe,KAAwB,EAAA;AACxD,IAAA,IAAA,CAAK,IAAO,GAAA,IAAA;AACZ,IAAA,IAAA,CAAK,WAAW,KAAM,CAAA,QAAA;AACtB,IAAA,IAAA,CAAK,OAAO,KAAM,CAAA,IAAA;AAClB,IAAK,IAAA,CAAA,SAAA,GAAY,MAAM,SAAa,IAAA,KAAA;AACpC,IAAA,IAAA,CAAK,cACH,GAAA,IAAA,CAAK,uBAAwB,EAAA,IAAK,MAAM,cAAkB,IAAA,KAAA;AAC5D,IAAA,IAAA,CAAK,kBAAkB,KAAM,CAAA,eAAA;AAAA;AAC/B,EAEQ,uBAA0B,GAAA;AAChC,IAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,IAAA,CAAK,8BAA+B,EAAA;AAC/D,IAAA,OACE,eAAe,QAAa,KAAA,IAAA,CAAK,QACjC,IAAA,aAAA,CAAc,cAAc,IAAK,CAAA,SAAA;AAAA;AAErC,EAEO,qBAAqB,GAAyB,EAAA;AACnD,IAAA,GAAA,CAAI,aAAgB,GAAA,IAAA;AACpB,IAAA,IAAI,KAAK,eAAiB,EAAA;AACxB,MAAA,GAAA,CAAI,YAAY,IAAK,CAAA,eAAA;AAAA;AACvB;AACF,EAEO,uBAAsC,GAAA;AAC3C,IAAO,OAAA;AAAA,MACL,IAAI,IAAK,CAAA,QAAA;AAAA,MACT,IAAA,EAAM,KAAK,SAAc,KAAA;AAAA,KAC3B;AAAA;AACF,EAEO,QAAoB,GAAA;AACzB,IAAM,MAAA,GAAA,GAAM,KAAK,cAAe,EAAA;AAChC,IAAO,OAAA,GAAA,CAAI,WAAY,EAAA,IAAK,IAAK,CAAA,SAAA;AAAA;AACnC,EAEO,cAA4B,GAAA;AACjC,IAAA,OAAO,IAAK,CAAA,IAAA,CAAK,UAAW,CAAA,cAAA,CAAe,KAAK,QAAQ,CAAA;AAAA;AAC1D,EAEO,MAAe,GAAA;AACpB,IAAK,IAAA,CAAA,IAAA,CAAK,UACP,CAAA,cAAA,CAAe,IAAK,CAAA,QAAQ,EAC5B,aAAc,CAAA,IAAA,CAAK,SAAc,KAAA,MAAA,EAAQ,KAAK,CAAA;AACjD,IAAK,IAAA,CAAA,IAAA,CAAK,qBAAqB,IAAI,CAAA;AAAA;AACrC,EAEO,KAAc,GAAA;AACnB,IAAA,IAAA,CAAK,KAAK,UAAW,CAAA,cAAA,CAAe,IAAK,CAAA,QAAQ,EAAE,YAAa,EAAA;AAAA;AAClE,EAEA,IAAW,EAAa,GAAA;AACtB,IAAA,OAAO,GAAG,IAAK,CAAA,cAAA,GAAiB,EAAE,CAAA,CAAA,EAAI,KAAK,SAAS,CAAA,CAAA;AAAA;AAExD;;;;"}
|
|
@@ -31,6 +31,7 @@ export declare class List<T> {
|
|
|
31
31
|
private readonly settingsStore?;
|
|
32
32
|
private readonly viewModeStorageKey?;
|
|
33
33
|
private readonly filterSettingsStorageKey?;
|
|
34
|
+
private readonly sortingStorageKey?;
|
|
34
35
|
constructor(shape: ListShape<T>);
|
|
35
36
|
get isFiltered(): boolean;
|
|
36
37
|
get visibleSorting(): Sorting<T>[];
|
|
@@ -38,6 +39,11 @@ export declare class List<T> {
|
|
|
38
39
|
storeFilterDefaultSettings(): void;
|
|
39
40
|
getStoredFilterDefaultSettings(): Record<string, string[]> | undefined;
|
|
40
41
|
getStoredViewModeDefaultSetting(): "table" | "list" | "tiles" | undefined;
|
|
42
|
+
storeSortingSettings(sorting: Sorting<T>): void;
|
|
43
|
+
getStoredSortingDefaultSetting(): {
|
|
44
|
+
property: string | number;
|
|
45
|
+
direction: "desc" | "asc";
|
|
46
|
+
} | undefined;
|
|
41
47
|
getSorting(id: string): Sorting<T>;
|
|
42
48
|
clearSorting(): void;
|
|
43
49
|
resetFilters(): void;
|
|
@@ -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;
|
|
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"}
|
|
@@ -2,7 +2,18 @@ import { default as List } from '../List';
|
|
|
2
2
|
import { SortingDefaultMode, SortingShape } from './types';
|
|
3
3
|
import { PropertyName } from '../types';
|
|
4
4
|
import { Column, ColumnDef, ColumnSort, SortDirection, SortingFn } from '@tanstack/react-table';
|
|
5
|
+
import { default as z } from 'zod';
|
|
5
6
|
export declare class Sorting<T> {
|
|
7
|
+
static readonly storageSchema: z.ZodOptional<z.ZodObject<{
|
|
8
|
+
direction: z.ZodEnum<["asc", "desc"]>;
|
|
9
|
+
property: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
property: string | number;
|
|
12
|
+
direction: "desc" | "asc";
|
|
13
|
+
}, {
|
|
14
|
+
property: string | number;
|
|
15
|
+
direction: "desc" | "asc";
|
|
16
|
+
}>>;
|
|
6
17
|
readonly list: List<T>;
|
|
7
18
|
readonly property: PropertyName<T>;
|
|
8
19
|
readonly name?: string;
|
|
@@ -10,6 +21,7 @@ export declare class Sorting<T> {
|
|
|
10
21
|
readonly defaultEnabled: SortingDefaultMode;
|
|
11
22
|
readonly customSortingFn?: SortingFn<T>;
|
|
12
23
|
constructor(list: List<T>, shape: SortingShape<T>);
|
|
24
|
+
private getStoredDefaultEnabled;
|
|
13
25
|
updateTableColumnDef(def: ColumnDef<T>): void;
|
|
14
26
|
getReactTableColumnSort(): ColumnSort;
|
|
15
27
|
isSorted(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sorting.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/sorting/Sorting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACV,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Sorting.d.ts","sourceRoot":"","sources":["../../../../../../src/components/List/model/sorting/Sorting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACb,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,qBAAa,OAAO,CAAC,CAAC;IACpB,gBAAuB,aAAa;;;;;;;;;QAKtB;IACd,SAAgB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,SAAgB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAgB,SAAS,EAAE,aAAa,CAAC;IACzC,SAAgB,cAAc,EAAE,kBAAkB,CAAC;IACnD,SAAgB,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;gBAE5B,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAUxD,OAAO,CAAC,uBAAuB;IAQxB,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAO7C,uBAAuB,IAAI,UAAU;IAOrC,QAAQ,IAAI,OAAO;IAKnB,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;IAI3B,MAAM,IAAI,IAAI;IAOd,KAAK,IAAI,IAAI;IAIpB,IAAW,EAAE,IAAI,MAAM,CAEtB;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Default.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/List/stories/Default.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,SAAS,CAAC;AAyC3B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CAiG3B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,EAAE,KAwCzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwC/B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,KAyC3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mittwald/flow-react-components",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.272",
|
|
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
|
"@chakra-ui/live-region": "^2.1.0",
|
|
59
59
|
"@internationalized/string-compiler": "^3.2.6",
|
|
60
60
|
"@mittwald/password-tools-js": "^2.1.4",
|
|
61
|
-
"@mittwald/react-tunnel": "0.2.0-alpha.
|
|
61
|
+
"@mittwald/react-tunnel": "0.2.0-alpha.272",
|
|
62
62
|
"@mittwald/react-use-promise": "^3.0.4",
|
|
63
63
|
"@react-aria/form": "^3.0.16",
|
|
64
64
|
"@react-aria/utils": "^3.29.0",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"@faker-js/faker": "^9.8.0",
|
|
100
100
|
"@internationalized/date": "^3.8.1",
|
|
101
101
|
"@mittwald/flow-core": "",
|
|
102
|
-
"@mittwald/flow-design-tokens": "0.2.0-alpha.
|
|
102
|
+
"@mittwald/flow-design-tokens": "0.2.0-alpha.272",
|
|
103
103
|
"@mittwald/react-use-promise": "^3.0.4",
|
|
104
104
|
"@mittwald/remote-dom-react": "1.2.2-mittwald.3",
|
|
105
105
|
"@mittwald/typescript-config": "",
|
|
@@ -181,5 +181,5 @@
|
|
|
181
181
|
"optional": true
|
|
182
182
|
}
|
|
183
183
|
},
|
|
184
|
-
"gitHead": "
|
|
184
|
+
"gitHead": "cf659aaa6e463f1fdb50301714c54a5060f05576"
|
|
185
185
|
}
|