@ds-mo/ui 14.19.1 → 14.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.package-ready.json +1 -1
- package/dist/agent-patterns.json +1 -1
- package/dist/agent.json +24 -8
- package/dist/angular/ds-filter-menu.d.ts +1 -1
- package/dist/angular/ds-filter-menu.js +3 -3
- package/dist/components/ds-agent-questionnaire.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-workflow.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-chart.js +1 -1
- package/dist/components/ds-card-overview.js +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-chart.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-filter-menu.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-actions.js +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-mobile-header.js +1 -1
- package/dist/components/ds-mobile-section-switcher.js +1 -1
- package/dist/components/ds-mobile-sheet-nav.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-pagination.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-tools.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-table-filter.js +1 -1
- package/dist/components/ds-table-filter.js.map +1 -1
- package/dist/components/ds-table-saved-views.js +1 -1
- package/dist/components/ds-table-sort.js +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-chart.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/{p-BNq9fr9S.js → p-1UAVanY9.js} +2 -2
- package/dist/components/{p-Crz606uD.js → p-AtUP95E_.js} +2 -2
- package/dist/components/{p-vrotWZxt.js → p-B2FT4Da6.js} +2 -2
- package/dist/components/p-B5-R5mb8.js +2 -0
- package/dist/components/p-B5-R5mb8.js.map +1 -0
- package/dist/components/{p-Drnyq8z7.js → p-B6rSDhJY.js} +2 -2
- package/dist/components/{p-DBYCwq9L.js → p-BUexfjjg.js} +2 -2
- package/dist/components/{p-Djxw2FjZ.js → p-BkelrY4-.js} +2 -2
- package/dist/components/{p-BubgDQlb.js → p-BmssRAEZ.js} +2 -2
- package/dist/components/{p-B6WQre5D.js → p-CCmgtju-.js} +2 -2
- package/dist/components/{p-Bx1IHqJb.js → p-CDw_WEVt.js} +2 -2
- package/dist/components/{p-1YHFQeI7.js → p-CUL5_8JM.js} +2 -2
- package/dist/components/{p-DZv2g9Pe.js → p-CptSB-tA.js} +2 -2
- package/dist/components/{p-Demfba7T.js → p-CyZqk196.js} +2 -2
- package/dist/components/{p-Cxr0IQjC.js → p-CzbsTZt7.js} +2 -2
- package/dist/components/{p-CFsLF-ts.js → p-D7QlTWbN.js} +2 -2
- package/dist/components/p-DBYv7fRq.js +2 -0
- package/dist/components/{p-CKtJ6FHM.js.map → p-DBYv7fRq.js.map} +1 -1
- package/dist/components/{p-D-MWvpg6.js → p-DGe5oXR0.js} +2 -2
- package/dist/components/p-DGe5oXR0.js.map +1 -0
- package/dist/components/{p-DsgEY6mZ.js → p-DIlScMvI.js} +2 -2
- package/dist/components/p-DLbHgbVj.js +2 -0
- package/dist/components/{p-Cp5Hr7Vz.js.map → p-DLbHgbVj.js.map} +1 -1
- package/dist/components/{p-D7v6Na7U.js → p-DM1Z_hh0.js} +2 -2
- package/dist/components/{p-BmlGeaY8.js → p-DWjTOoXs.js} +2 -2
- package/dist/components/{p-CRSwNbPk.js → p-DfDoqOlx.js} +2 -2
- package/dist/components/{p-DmWoFSGs.js → p-L8IIeDXM.js} +2 -2
- package/dist/components/{p-BWwiCvep.js → p-rw0ZxIE4.js} +2 -2
- package/dist/components/{p-DIqT1m2r.js → p-v4oqkJms.js} +2 -2
- package/dist/docs/components.json +112 -14
- package/dist/lib/utils/date-filter-value.d.ts +57 -0
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.js +67 -0
- package/dist/lib/utils/index.js.map +3 -3
- package/dist/mcp-data/registry/filter-menu.json +56 -9
- package/dist/mcp-data/registry/registry.json +23 -7
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/table-filter.json +5 -3
- package/dist/types/components/FilterMenu/FilterMenu.d.ts +20 -1
- package/dist/types/components/FilterMenu/filter-menu-calendar.d.ts +13 -0
- package/dist/types/components.d.ts +26 -4
- package/dist/types/utils/date-filter-value.d.ts +58 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/vue/ds-filter-menu.js +2 -0
- package/package.json +1 -1
- package/dist/components/p-CKtJ6FHM.js +0 -2
- package/dist/components/p-Cp5Hr7Vz.js +0 -2
- package/dist/components/p-CpUXubax.js +0 -2
- package/dist/components/p-CpUXubax.js.map +0 -1
- package/dist/components/p-D-MWvpg6.js.map +0 -1
- /package/dist/components/{p-BNq9fr9S.js.map → p-1UAVanY9.js.map} +0 -0
- /package/dist/components/{p-Crz606uD.js.map → p-AtUP95E_.js.map} +0 -0
- /package/dist/components/{p-vrotWZxt.js.map → p-B2FT4Da6.js.map} +0 -0
- /package/dist/components/{p-Drnyq8z7.js.map → p-B6rSDhJY.js.map} +0 -0
- /package/dist/components/{p-DBYCwq9L.js.map → p-BUexfjjg.js.map} +0 -0
- /package/dist/components/{p-Djxw2FjZ.js.map → p-BkelrY4-.js.map} +0 -0
- /package/dist/components/{p-BubgDQlb.js.map → p-BmssRAEZ.js.map} +0 -0
- /package/dist/components/{p-B6WQre5D.js.map → p-CCmgtju-.js.map} +0 -0
- /package/dist/components/{p-Bx1IHqJb.js.map → p-CDw_WEVt.js.map} +0 -0
- /package/dist/components/{p-1YHFQeI7.js.map → p-CUL5_8JM.js.map} +0 -0
- /package/dist/components/{p-DZv2g9Pe.js.map → p-CptSB-tA.js.map} +0 -0
- /package/dist/components/{p-Demfba7T.js.map → p-CyZqk196.js.map} +0 -0
- /package/dist/components/{p-Cxr0IQjC.js.map → p-CzbsTZt7.js.map} +0 -0
- /package/dist/components/{p-CFsLF-ts.js.map → p-D7QlTWbN.js.map} +0 -0
- /package/dist/components/{p-DsgEY6mZ.js.map → p-DIlScMvI.js.map} +0 -0
- /package/dist/components/{p-D7v6Na7U.js.map → p-DM1Z_hh0.js.map} +0 -0
- /package/dist/components/{p-BmlGeaY8.js.map → p-DWjTOoXs.js.map} +0 -0
- /package/dist/components/{p-CRSwNbPk.js.map → p-DfDoqOlx.js.map} +0 -0
- /package/dist/components/{p-DmWoFSGs.js.map → p-L8IIeDXM.js.map} +0 -0
- /package/dist/components/{p-BWwiCvep.js.map → p-rw0ZxIE4.js.map} +0 -0
- /package/dist/components/{p-DIqT1m2r.js.map → p-v4oqkJms.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-08-
|
|
2
|
+
"timestamp": "2026-08-27T04:39:44",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.43.5",
|
|
@@ -2036,6 +2036,7 @@
|
|
|
2036
2036
|
"ds-button-filled",
|
|
2037
2037
|
"ds-button-unfilled",
|
|
2038
2038
|
"ds-conversation-list-item",
|
|
2039
|
+
"ds-filter-menu",
|
|
2039
2040
|
"ds-menu",
|
|
2040
2041
|
"ds-mobile-bar-nav",
|
|
2041
2042
|
"ds-mobile-sheet-nav",
|
|
@@ -2062,6 +2063,9 @@
|
|
|
2062
2063
|
"ds-conversation-list-item": [
|
|
2063
2064
|
"ds-badge"
|
|
2064
2065
|
],
|
|
2066
|
+
"ds-filter-menu": [
|
|
2067
|
+
"ds-badge"
|
|
2068
|
+
],
|
|
2065
2069
|
"ds-menu": [
|
|
2066
2070
|
"ds-badge"
|
|
2067
2071
|
],
|
|
@@ -9800,6 +9804,46 @@
|
|
|
9800
9804
|
"getter": false,
|
|
9801
9805
|
"setter": false
|
|
9802
9806
|
},
|
|
9807
|
+
{
|
|
9808
|
+
"name": "footerLayout",
|
|
9809
|
+
"type": "\"categories-clear\" | \"summary\"",
|
|
9810
|
+
"complexType": {
|
|
9811
|
+
"original": "FilterMenuFooterLayout",
|
|
9812
|
+
"resolved": "\"categories-clear\" | \"summary\"",
|
|
9813
|
+
"references": {
|
|
9814
|
+
"FilterMenuFooterLayout": {
|
|
9815
|
+
"location": "local",
|
|
9816
|
+
"path": "/home/runner/work/compomo/compomo/src/wc/components/FilterMenu/FilterMenu.tsx",
|
|
9817
|
+
"id": "src/wc/components/FilterMenu/FilterMenu.tsx::FilterMenuFooterLayout"
|
|
9818
|
+
}
|
|
9819
|
+
}
|
|
9820
|
+
},
|
|
9821
|
+
"mutable": false,
|
|
9822
|
+
"attr": "footer-layout",
|
|
9823
|
+
"reflectToAttr": false,
|
|
9824
|
+
"docs": "Footer recipe: full-width selected summary or reserved category-pane Clear action.",
|
|
9825
|
+
"docsTags": [
|
|
9826
|
+
{
|
|
9827
|
+
"name": "default",
|
|
9828
|
+
"text": "'summary'"
|
|
9829
|
+
}
|
|
9830
|
+
],
|
|
9831
|
+
"default": "'summary'",
|
|
9832
|
+
"values": [
|
|
9833
|
+
{
|
|
9834
|
+
"value": "categories-clear",
|
|
9835
|
+
"type": "string"
|
|
9836
|
+
},
|
|
9837
|
+
{
|
|
9838
|
+
"value": "summary",
|
|
9839
|
+
"type": "string"
|
|
9840
|
+
}
|
|
9841
|
+
],
|
|
9842
|
+
"optional": false,
|
|
9843
|
+
"required": false,
|
|
9844
|
+
"getter": false,
|
|
9845
|
+
"setter": false
|
|
9846
|
+
},
|
|
9803
9847
|
{
|
|
9804
9848
|
"name": "hasBorder",
|
|
9805
9849
|
"type": "boolean",
|
|
@@ -10003,6 +10047,35 @@
|
|
|
10003
10047
|
"getter": false,
|
|
10004
10048
|
"setter": false
|
|
10005
10049
|
},
|
|
10050
|
+
{
|
|
10051
|
+
"name": "showSelectedCount",
|
|
10052
|
+
"type": "boolean",
|
|
10053
|
+
"complexType": {
|
|
10054
|
+
"original": "boolean",
|
|
10055
|
+
"resolved": "boolean",
|
|
10056
|
+
"references": {}
|
|
10057
|
+
},
|
|
10058
|
+
"mutable": false,
|
|
10059
|
+
"attr": "show-selected-count",
|
|
10060
|
+
"reflectToAttr": false,
|
|
10061
|
+
"docs": "Append the active-filter count to the visible trigger label.",
|
|
10062
|
+
"docsTags": [
|
|
10063
|
+
{
|
|
10064
|
+
"name": "default",
|
|
10065
|
+
"text": "true"
|
|
10066
|
+
}
|
|
10067
|
+
],
|
|
10068
|
+
"default": "true",
|
|
10069
|
+
"values": [
|
|
10070
|
+
{
|
|
10071
|
+
"type": "boolean"
|
|
10072
|
+
}
|
|
10073
|
+
],
|
|
10074
|
+
"optional": false,
|
|
10075
|
+
"required": false,
|
|
10076
|
+
"getter": false,
|
|
10077
|
+
"setter": false
|
|
10078
|
+
},
|
|
10006
10079
|
{
|
|
10007
10080
|
"name": "side",
|
|
10008
10081
|
"type": "\"bottom\" | \"left\" | \"right\" | \"top\"",
|
|
@@ -10143,7 +10216,7 @@
|
|
|
10143
10216
|
"mutable": false,
|
|
10144
10217
|
"attr": "trigger-label",
|
|
10145
10218
|
"reflectToAttr": false,
|
|
10146
|
-
"docs": "Select trigger text.
|
|
10219
|
+
"docs": "Select trigger text.",
|
|
10147
10220
|
"docsTags": [
|
|
10148
10221
|
{
|
|
10149
10222
|
"name": "default",
|
|
@@ -10347,25 +10420,26 @@
|
|
|
10347
10420
|
"ds-table-filter"
|
|
10348
10421
|
],
|
|
10349
10422
|
"dependencies": [
|
|
10350
|
-
"ds-checkbox",
|
|
10351
|
-
"ds-text",
|
|
10352
10423
|
"ds-button-unfilled",
|
|
10424
|
+
"ds-text",
|
|
10425
|
+
"ds-tab-group",
|
|
10426
|
+
"ds-checkbox",
|
|
10353
10427
|
"ds-tooltip",
|
|
10354
10428
|
"ds-icon",
|
|
10429
|
+
"ds-badge",
|
|
10355
10430
|
"ds-tag"
|
|
10356
10431
|
],
|
|
10357
10432
|
"dependencyGraph": {
|
|
10358
10433
|
"ds-filter-menu": [
|
|
10359
|
-
"ds-checkbox",
|
|
10360
|
-
"ds-text",
|
|
10361
10434
|
"ds-button-unfilled",
|
|
10435
|
+
"ds-text",
|
|
10436
|
+
"ds-tab-group",
|
|
10437
|
+
"ds-checkbox",
|
|
10362
10438
|
"ds-tooltip",
|
|
10363
10439
|
"ds-icon",
|
|
10440
|
+
"ds-badge",
|
|
10364
10441
|
"ds-tag"
|
|
10365
10442
|
],
|
|
10366
|
-
"ds-checkbox": [
|
|
10367
|
-
"ds-text"
|
|
10368
|
-
],
|
|
10369
10443
|
"ds-button-unfilled": [
|
|
10370
10444
|
"ds-tooltip",
|
|
10371
10445
|
"ds-loader",
|
|
@@ -10379,6 +10453,14 @@
|
|
|
10379
10453
|
"ds-badge": [
|
|
10380
10454
|
"ds-text"
|
|
10381
10455
|
],
|
|
10456
|
+
"ds-tab-group": [
|
|
10457
|
+
"ds-icon",
|
|
10458
|
+
"ds-text",
|
|
10459
|
+
"ds-badge"
|
|
10460
|
+
],
|
|
10461
|
+
"ds-checkbox": [
|
|
10462
|
+
"ds-text"
|
|
10463
|
+
],
|
|
10382
10464
|
"ds-tag": [
|
|
10383
10465
|
"ds-icon",
|
|
10384
10466
|
"ds-text"
|
|
@@ -25519,6 +25601,7 @@
|
|
|
25519
25601
|
"parts": [],
|
|
25520
25602
|
"states": [],
|
|
25521
25603
|
"dependents": [
|
|
25604
|
+
"ds-filter-menu",
|
|
25522
25605
|
"ds-mobile-header",
|
|
25523
25606
|
"ds-mobile-sheet-nav"
|
|
25524
25607
|
],
|
|
@@ -25536,6 +25619,9 @@
|
|
|
25536
25619
|
"ds-badge": [
|
|
25537
25620
|
"ds-text"
|
|
25538
25621
|
],
|
|
25622
|
+
"ds-filter-menu": [
|
|
25623
|
+
"ds-tab-group"
|
|
25624
|
+
],
|
|
25539
25625
|
"ds-mobile-header": [
|
|
25540
25626
|
"ds-tab-group"
|
|
25541
25627
|
],
|
|
@@ -28020,16 +28106,15 @@
|
|
|
28020
28106
|
"ds-filter-menu"
|
|
28021
28107
|
],
|
|
28022
28108
|
"ds-filter-menu": [
|
|
28023
|
-
"ds-checkbox",
|
|
28024
|
-
"ds-text",
|
|
28025
28109
|
"ds-button-unfilled",
|
|
28110
|
+
"ds-text",
|
|
28111
|
+
"ds-tab-group",
|
|
28112
|
+
"ds-checkbox",
|
|
28026
28113
|
"ds-tooltip",
|
|
28027
28114
|
"ds-icon",
|
|
28115
|
+
"ds-badge",
|
|
28028
28116
|
"ds-tag"
|
|
28029
28117
|
],
|
|
28030
|
-
"ds-checkbox": [
|
|
28031
|
-
"ds-text"
|
|
28032
|
-
],
|
|
28033
28118
|
"ds-button-unfilled": [
|
|
28034
28119
|
"ds-tooltip",
|
|
28035
28120
|
"ds-loader",
|
|
@@ -28043,6 +28128,14 @@
|
|
|
28043
28128
|
"ds-badge": [
|
|
28044
28129
|
"ds-text"
|
|
28045
28130
|
],
|
|
28131
|
+
"ds-tab-group": [
|
|
28132
|
+
"ds-icon",
|
|
28133
|
+
"ds-text",
|
|
28134
|
+
"ds-badge"
|
|
28135
|
+
],
|
|
28136
|
+
"ds-checkbox": [
|
|
28137
|
+
"ds-text"
|
|
28138
|
+
],
|
|
28046
28139
|
"ds-tag": [
|
|
28047
28140
|
"ds-icon",
|
|
28048
28141
|
"ds-text"
|
|
@@ -31557,6 +31650,11 @@
|
|
|
31557
31650
|
"docstring": "",
|
|
31558
31651
|
"path": "src/wc/utils/anchored-position.ts"
|
|
31559
31652
|
},
|
|
31653
|
+
"src/wc/components/FilterMenu/FilterMenu.tsx::FilterMenuFooterLayout": {
|
|
31654
|
+
"declaration": "export type FilterMenuFooterLayout = 'summary' | 'categories-clear';",
|
|
31655
|
+
"docstring": "",
|
|
31656
|
+
"path": "src/wc/components/FilterMenu/FilterMenu.tsx"
|
|
31657
|
+
},
|
|
31560
31658
|
"src/wc/components/FilterMenu/FilterMenu.tsx::FilterMenuChangeDetail": {
|
|
31561
31659
|
"declaration": "export interface FilterMenuChangeDetail {\n filterId: string;\n value: FilterMenuValue;\n}",
|
|
31562
31660
|
"docstring": "",
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export declare const DATE_FILTER_RELATIVE_PRESETS: readonly [{
|
|
2
|
+
readonly label: "Today";
|
|
3
|
+
readonly value: "today";
|
|
4
|
+
readonly days: 1;
|
|
5
|
+
readonly offset: 0;
|
|
6
|
+
}, {
|
|
7
|
+
readonly label: "Yesterday";
|
|
8
|
+
readonly value: "yesterday";
|
|
9
|
+
readonly days: 1;
|
|
10
|
+
readonly offset: -1;
|
|
11
|
+
}, {
|
|
12
|
+
readonly label: "Last 7 days";
|
|
13
|
+
readonly value: "last-7-days";
|
|
14
|
+
readonly days: 7;
|
|
15
|
+
readonly offset: 0;
|
|
16
|
+
}, {
|
|
17
|
+
readonly label: "Last 14 days";
|
|
18
|
+
readonly value: "last-14-days";
|
|
19
|
+
readonly days: 14;
|
|
20
|
+
readonly offset: 0;
|
|
21
|
+
}, {
|
|
22
|
+
readonly label: "Last 30 days";
|
|
23
|
+
readonly value: "last-30-days";
|
|
24
|
+
readonly days: 30;
|
|
25
|
+
readonly offset: 0;
|
|
26
|
+
}, {
|
|
27
|
+
readonly label: "Last 60 days";
|
|
28
|
+
readonly value: "last-60-days";
|
|
29
|
+
readonly days: 60;
|
|
30
|
+
readonly offset: 0;
|
|
31
|
+
}, {
|
|
32
|
+
readonly label: "Last 90 days";
|
|
33
|
+
readonly value: "last-90-days";
|
|
34
|
+
readonly days: 90;
|
|
35
|
+
readonly offset: 0;
|
|
36
|
+
}];
|
|
37
|
+
export type DateFilterRelativePreset = (typeof DATE_FILTER_RELATIVE_PRESETS)[number]['value'];
|
|
38
|
+
export type DateFilterRelativeValue = `relative:${DateFilterRelativePreset}`;
|
|
39
|
+
export type DateFilterRangeValue = `range:${string}/${string}`;
|
|
40
|
+
export type DateFilterValue = DateFilterRelativeValue | DateFilterRangeValue;
|
|
41
|
+
export interface DateFilterRange {
|
|
42
|
+
start: string;
|
|
43
|
+
end: string;
|
|
44
|
+
}
|
|
45
|
+
export type ParsedDateFilterValue = {
|
|
46
|
+
kind: 'relative';
|
|
47
|
+
preset: DateFilterRelativePreset;
|
|
48
|
+
} | ({
|
|
49
|
+
kind: 'range';
|
|
50
|
+
} & DateFilterRange);
|
|
51
|
+
export declare function isIsoCalendarDate(value: string): boolean;
|
|
52
|
+
export declare function shiftIsoCalendarDate(value: string, days: number): string;
|
|
53
|
+
export declare function dateFilterRelativeValue(preset: DateFilterRelativePreset): DateFilterRelativeValue;
|
|
54
|
+
export declare function dateFilterRangeValue(start: string, end?: string): DateFilterRangeValue;
|
|
55
|
+
export declare function parseDateFilterValue(value: unknown): ParsedDateFilterValue | null;
|
|
56
|
+
export declare function normalizeDateFilterValue(value: unknown): DateFilterValue | '';
|
|
57
|
+
export declare function resolveDateFilterRange(value: unknown, referenceDate: string): DateFilterRange | null;
|
|
@@ -25,3 +25,5 @@ export { CONTROL_SUPPORTING_TEXT_VARIANT, CONTROL_TEXT_VARIANT } from './control
|
|
|
25
25
|
export type { ControlInsetDepth, ControlSize } from './control-text';
|
|
26
26
|
export { choicePopupMinWidth, resolveChoicePopupAlignOffset } from './choice-popup-alignment';
|
|
27
27
|
export type { ChoicePopupAnchorAlignment } from './choice-popup-alignment';
|
|
28
|
+
export { DATE_FILTER_RELATIVE_PRESETS, dateFilterRangeValue, dateFilterRelativeValue, isIsoCalendarDate, normalizeDateFilterValue, parseDateFilterValue, resolveDateFilterRange, shiftIsoCalendarDate, } from './date-filter-value';
|
|
29
|
+
export type { DateFilterRange, DateFilterRangeValue, DateFilterRelativePreset, DateFilterRelativeValue, DateFilterValue, ParsedDateFilterValue, } from './date-filter-value';
|
package/dist/lib/utils/index.js
CHANGED
|
@@ -1057,9 +1057,69 @@ function resolveChoicePopupAlignOffset({
|
|
|
1057
1057
|
function choicePopupMinWidth(anchorWidth, sectionInsetPx) {
|
|
1058
1058
|
return anchorWidth + sectionInsetPx * 2;
|
|
1059
1059
|
}
|
|
1060
|
+
|
|
1061
|
+
// src/wc/utils/date-filter-value.ts
|
|
1062
|
+
var DATE_FILTER_RELATIVE_PRESETS = [
|
|
1063
|
+
{ label: "Today", value: "today", days: 1, offset: 0 },
|
|
1064
|
+
{ label: "Yesterday", value: "yesterday", days: 1, offset: -1 },
|
|
1065
|
+
{ label: "Last 7 days", value: "last-7-days", days: 7, offset: 0 },
|
|
1066
|
+
{ label: "Last 14 days", value: "last-14-days", days: 14, offset: 0 },
|
|
1067
|
+
{ label: "Last 30 days", value: "last-30-days", days: 30, offset: 0 },
|
|
1068
|
+
{ label: "Last 60 days", value: "last-60-days", days: 60, offset: 0 },
|
|
1069
|
+
{ label: "Last 90 days", value: "last-90-days", days: 90, offset: 0 }
|
|
1070
|
+
];
|
|
1071
|
+
var ISO_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
1072
|
+
function isIsoCalendarDate(value) {
|
|
1073
|
+
if (!ISO_DATE_PATTERN.test(value)) return false;
|
|
1074
|
+
const [year, month, day] = value.split("-").map(Number);
|
|
1075
|
+
const date = new Date(Date.UTC(year, month - 1, day));
|
|
1076
|
+
return date.getUTCFullYear() === year && date.getUTCMonth() === month - 1 && date.getUTCDate() === day;
|
|
1077
|
+
}
|
|
1078
|
+
function shiftIsoCalendarDate(value, days) {
|
|
1079
|
+
if (!isIsoCalendarDate(value)) return "";
|
|
1080
|
+
const [year, month, day] = value.split("-").map(Number);
|
|
1081
|
+
const date = new Date(Date.UTC(year, month - 1, day + days));
|
|
1082
|
+
return date.toISOString().slice(0, 10);
|
|
1083
|
+
}
|
|
1084
|
+
function dateFilterRelativeValue(preset) {
|
|
1085
|
+
return `relative:${preset}`;
|
|
1086
|
+
}
|
|
1087
|
+
function dateFilterRangeValue(start, end = start) {
|
|
1088
|
+
const ordered = start <= end ? [start, end] : [end, start];
|
|
1089
|
+
return `range:${ordered[0]}/${ordered[1]}`;
|
|
1090
|
+
}
|
|
1091
|
+
function parseDateFilterValue(value) {
|
|
1092
|
+
if (typeof value !== "string" || !value) return null;
|
|
1093
|
+
if (value.startsWith("relative:")) {
|
|
1094
|
+
const preset = value.slice("relative:".length);
|
|
1095
|
+
return DATE_FILTER_RELATIVE_PRESETS.some((candidate) => candidate.value === preset) ? { kind: "relative", preset } : null;
|
|
1096
|
+
}
|
|
1097
|
+
if (value.startsWith("range:")) {
|
|
1098
|
+
const [start, end, ...rest] = value.slice("range:".length).split("/");
|
|
1099
|
+
if (rest.length || !isIsoCalendarDate(start) || !isIsoCalendarDate(end)) return null;
|
|
1100
|
+
return start <= end ? { kind: "range", start, end } : { kind: "range", start: end, end: start };
|
|
1101
|
+
}
|
|
1102
|
+
return isIsoCalendarDate(value) ? { kind: "range", start: value, end: value } : null;
|
|
1103
|
+
}
|
|
1104
|
+
function normalizeDateFilterValue(value) {
|
|
1105
|
+
const parsed = parseDateFilterValue(value);
|
|
1106
|
+
if (!parsed) return "";
|
|
1107
|
+
return parsed.kind === "relative" ? dateFilterRelativeValue(parsed.preset) : dateFilterRangeValue(parsed.start, parsed.end);
|
|
1108
|
+
}
|
|
1109
|
+
function resolveDateFilterRange(value, referenceDate) {
|
|
1110
|
+
if (!isIsoCalendarDate(referenceDate)) return null;
|
|
1111
|
+
const parsed = parseDateFilterValue(value);
|
|
1112
|
+
if (!parsed) return null;
|
|
1113
|
+
if (parsed.kind === "range") return { start: parsed.start, end: parsed.end };
|
|
1114
|
+
const preset = DATE_FILTER_RELATIVE_PRESETS.find((candidate) => candidate.value === parsed.preset);
|
|
1115
|
+
if (!preset) return null;
|
|
1116
|
+
const end = shiftIsoCalendarDate(referenceDate, preset.offset);
|
|
1117
|
+
return { start: shiftIsoCalendarDate(end, -(preset.days - 1)), end };
|
|
1118
|
+
}
|
|
1060
1119
|
export {
|
|
1061
1120
|
CONTROL_SUPPORTING_TEXT_VARIANT,
|
|
1062
1121
|
CONTROL_TEXT_VARIANT,
|
|
1122
|
+
DATE_FILTER_RELATIVE_PRESETS,
|
|
1063
1123
|
DEFAULT_REQUIRED_MESSAGE,
|
|
1064
1124
|
SCROLL_EDGE_FADE_DEFAULT_SIZE,
|
|
1065
1125
|
SCROLL_EDGE_FADE_SIZE_VAR,
|
|
@@ -1080,16 +1140,21 @@ export {
|
|
|
1080
1140
|
computeMetricChange,
|
|
1081
1141
|
controlWidthClass,
|
|
1082
1142
|
cumulativeBins,
|
|
1143
|
+
dateFilterRangeValue,
|
|
1144
|
+
dateFilterRelativeValue,
|
|
1083
1145
|
defineChart,
|
|
1084
1146
|
densityX,
|
|
1085
1147
|
dot,
|
|
1086
1148
|
formatCompactNumber,
|
|
1087
1149
|
formatPercentage,
|
|
1088
1150
|
isElementTruncated,
|
|
1151
|
+
isIsoCalendarDate,
|
|
1089
1152
|
isScrollAtEdge,
|
|
1090
1153
|
lineY,
|
|
1154
|
+
normalizeDateFilterValue,
|
|
1091
1155
|
normalizeStack,
|
|
1092
1156
|
parseCssTimeMs,
|
|
1157
|
+
parseDateFilterValue,
|
|
1093
1158
|
pieLayout,
|
|
1094
1159
|
polar,
|
|
1095
1160
|
prefersReducedMotion,
|
|
@@ -1101,6 +1166,7 @@ export {
|
|
|
1101
1166
|
resolveChoicePopupAlignOffset,
|
|
1102
1167
|
resolveCssLengthPx,
|
|
1103
1168
|
resolveCssTimeMs,
|
|
1169
|
+
resolveDateFilterRange,
|
|
1104
1170
|
resolveMetricTrend,
|
|
1105
1171
|
resolveMotionTimeMs,
|
|
1106
1172
|
resolveSafeUrl,
|
|
@@ -1117,6 +1183,7 @@ export {
|
|
|
1117
1183
|
setFormControlValue,
|
|
1118
1184
|
setRepeatedFormControlValue,
|
|
1119
1185
|
setRequiredValidity,
|
|
1186
|
+
shiftIsoCalendarDate,
|
|
1120
1187
|
textMark,
|
|
1121
1188
|
truncateSvgTextToWidth
|
|
1122
1189
|
};
|