@cloudscape-design/components 3.0.45 → 3.0.46
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/container/internal.d.ts +2 -1
- package/container/internal.d.ts.map +1 -1
- package/container/internal.js +3 -2
- package/container/internal.js.map +1 -1
- package/container/styles.css.js +16 -15
- package/container/styles.scoped.css +29 -24
- package/container/styles.selectors.js +16 -15
- package/date-picker/styles.css.js +24 -24
- package/date-picker/styles.scoped.css +41 -41
- package/date-picker/styles.selectors.js +24 -24
- package/date-range-picker/styles.css.js +41 -41
- package/date-range-picker/styles.scoped.css +50 -50
- package/date-range-picker/styles.selectors.js +41 -41
- package/expandable-section/expandable-section-container.d.ts.map +1 -1
- package/expandable-section/expandable-section-container.js +1 -1
- package/expandable-section/expandable-section-container.js.map +1 -1
- package/internal/environment.js +1 -1
- package/internal/generated/styles/tokens.d.ts +17 -0
- package/internal/generated/styles/tokens.js +17 -0
- package/internal/generated/theming/index.cjs +35 -1
- package/internal/generated/theming/index.cjs.d.ts +85 -0
- package/internal/generated/theming/index.d.ts +85 -0
- package/internal/generated/theming/index.js +35 -1
- package/package.json +1 -1
- package/property-filter/controller.d.ts +14 -28
- package/property-filter/controller.d.ts.map +1 -1
- package/property-filter/controller.js +8 -8
- package/property-filter/controller.js.map +1 -1
- package/property-filter/index.d.ts.map +1 -1
- package/property-filter/index.js +6 -7
- package/property-filter/index.js.map +1 -1
- package/property-filter/interfaces.d.ts +25 -0
- package/property-filter/interfaces.d.ts.map +1 -1
- package/property-filter/interfaces.js.map +1 -1
- package/property-filter/token-editor.d.ts +16 -7
- package/property-filter/token-editor.d.ts.map +1 -1
- package/property-filter/token-editor.js +1 -2
- package/property-filter/token-editor.js.map +1 -1
- package/property-filter/token.d.ts +20 -9
- package/property-filter/token.d.ts.map +1 -1
- package/property-filter/token.js +1 -1
- package/property-filter/token.js.map +1 -1
- package/property-filter/use-load-items.d.ts +1 -2
- package/property-filter/use-load-items.d.ts.map +1 -1
- package/property-filter/use-load-items.js.map +1 -1
- package/property-filter/utils.d.ts +4 -4
- package/property-filter/utils.d.ts.map +1 -1
- package/property-filter/utils.js.map +1 -1
|
@@ -6326,7 +6326,24 @@ module.exports.preset = {
|
|
|
6326
6326
|
"colorTextStatusSuccess",
|
|
6327
6327
|
"colorTextStatusWarning",
|
|
6328
6328
|
"fontFamilyBase",
|
|
6329
|
-
"fontFamilyMonospace"
|
|
6329
|
+
"fontFamilyMonospace",
|
|
6330
|
+
"borderRadiusAlert",
|
|
6331
|
+
"borderRadiusBadge",
|
|
6332
|
+
"borderRadiusButton",
|
|
6333
|
+
"borderRadiusCalendarDayFocusRing",
|
|
6334
|
+
"borderRadiusCodeEditor",
|
|
6335
|
+
"borderRadiusContainer",
|
|
6336
|
+
"borderRadiusControlCircularFocusRing",
|
|
6337
|
+
"borderRadiusControlDefaultFocusRing",
|
|
6338
|
+
"borderRadiusDropdown",
|
|
6339
|
+
"borderRadiusFlashbar",
|
|
6340
|
+
"borderRadiusItem",
|
|
6341
|
+
"borderRadiusInput",
|
|
6342
|
+
"borderRadiusPopover",
|
|
6343
|
+
"borderRadiusTabsFocusRing",
|
|
6344
|
+
"borderRadiusTiles",
|
|
6345
|
+
"borderRadiusToken",
|
|
6346
|
+
"borderRadiusTutorialPanelItem"
|
|
6330
6347
|
],
|
|
6331
6348
|
"exposed": [
|
|
6332
6349
|
"colorChartsRed300",
|
|
@@ -6560,6 +6577,23 @@ module.exports.preset = {
|
|
|
6560
6577
|
"colorTextStatusWarning",
|
|
6561
6578
|
"fontFamilyBase",
|
|
6562
6579
|
"fontFamilyMonospace",
|
|
6580
|
+
"borderRadiusAlert",
|
|
6581
|
+
"borderRadiusBadge",
|
|
6582
|
+
"borderRadiusButton",
|
|
6583
|
+
"borderRadiusCalendarDayFocusRing",
|
|
6584
|
+
"borderRadiusCodeEditor",
|
|
6585
|
+
"borderRadiusContainer",
|
|
6586
|
+
"borderRadiusControlCircularFocusRing",
|
|
6587
|
+
"borderRadiusControlDefaultFocusRing",
|
|
6588
|
+
"borderRadiusDropdown",
|
|
6589
|
+
"borderRadiusFlashbar",
|
|
6590
|
+
"borderRadiusItem",
|
|
6591
|
+
"borderRadiusInput",
|
|
6592
|
+
"borderRadiusPopover",
|
|
6593
|
+
"borderRadiusTabsFocusRing",
|
|
6594
|
+
"borderRadiusTiles",
|
|
6595
|
+
"borderRadiusToken",
|
|
6596
|
+
"borderRadiusTutorialPanelItem",
|
|
6563
6597
|
"motionEasingResponsive",
|
|
6564
6598
|
"motionEasingSticky",
|
|
6565
6599
|
"motionEasingExpressive",
|
|
@@ -146,6 +146,23 @@ export declare interface TypedOverride {
|
|
|
146
146
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
147
147
|
fontFamilyBase?: GlobalValue;
|
|
148
148
|
fontFamilyMonospace?: GlobalValue;
|
|
149
|
+
borderRadiusAlert?: GlobalValue;
|
|
150
|
+
borderRadiusBadge?: GlobalValue;
|
|
151
|
+
borderRadiusButton?: GlobalValue;
|
|
152
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
153
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
154
|
+
borderRadiusContainer?: GlobalValue;
|
|
155
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
156
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
157
|
+
borderRadiusDropdown?: GlobalValue;
|
|
158
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
159
|
+
borderRadiusItem?: GlobalValue;
|
|
160
|
+
borderRadiusInput?: GlobalValue;
|
|
161
|
+
borderRadiusPopover?: GlobalValue;
|
|
162
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
163
|
+
borderRadiusTiles?: GlobalValue;
|
|
164
|
+
borderRadiusToken?: GlobalValue;
|
|
165
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
149
166
|
},
|
|
150
167
|
contexts?: {
|
|
151
168
|
'top-navigation'?: {
|
|
@@ -294,6 +311,23 @@ export declare interface TypedOverride {
|
|
|
294
311
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
295
312
|
fontFamilyBase?: GlobalValue;
|
|
296
313
|
fontFamilyMonospace?: GlobalValue;
|
|
314
|
+
borderRadiusAlert?: GlobalValue;
|
|
315
|
+
borderRadiusBadge?: GlobalValue;
|
|
316
|
+
borderRadiusButton?: GlobalValue;
|
|
317
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
318
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
319
|
+
borderRadiusContainer?: GlobalValue;
|
|
320
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
321
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
322
|
+
borderRadiusDropdown?: GlobalValue;
|
|
323
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
324
|
+
borderRadiusItem?: GlobalValue;
|
|
325
|
+
borderRadiusInput?: GlobalValue;
|
|
326
|
+
borderRadiusPopover?: GlobalValue;
|
|
327
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
328
|
+
borderRadiusTiles?: GlobalValue;
|
|
329
|
+
borderRadiusToken?: GlobalValue;
|
|
330
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
297
331
|
}
|
|
298
332
|
};
|
|
299
333
|
'header'?: {
|
|
@@ -442,6 +476,23 @@ export declare interface TypedOverride {
|
|
|
442
476
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
443
477
|
fontFamilyBase?: GlobalValue;
|
|
444
478
|
fontFamilyMonospace?: GlobalValue;
|
|
479
|
+
borderRadiusAlert?: GlobalValue;
|
|
480
|
+
borderRadiusBadge?: GlobalValue;
|
|
481
|
+
borderRadiusButton?: GlobalValue;
|
|
482
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
483
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
484
|
+
borderRadiusContainer?: GlobalValue;
|
|
485
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
486
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
487
|
+
borderRadiusDropdown?: GlobalValue;
|
|
488
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
489
|
+
borderRadiusItem?: GlobalValue;
|
|
490
|
+
borderRadiusInput?: GlobalValue;
|
|
491
|
+
borderRadiusPopover?: GlobalValue;
|
|
492
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
493
|
+
borderRadiusTiles?: GlobalValue;
|
|
494
|
+
borderRadiusToken?: GlobalValue;
|
|
495
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
445
496
|
}
|
|
446
497
|
};
|
|
447
498
|
'flashbar'?: {
|
|
@@ -590,6 +641,23 @@ export declare interface TypedOverride {
|
|
|
590
641
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
591
642
|
fontFamilyBase?: GlobalValue;
|
|
592
643
|
fontFamilyMonospace?: GlobalValue;
|
|
644
|
+
borderRadiusAlert?: GlobalValue;
|
|
645
|
+
borderRadiusBadge?: GlobalValue;
|
|
646
|
+
borderRadiusButton?: GlobalValue;
|
|
647
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
648
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
649
|
+
borderRadiusContainer?: GlobalValue;
|
|
650
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
651
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
652
|
+
borderRadiusDropdown?: GlobalValue;
|
|
653
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
654
|
+
borderRadiusItem?: GlobalValue;
|
|
655
|
+
borderRadiusInput?: GlobalValue;
|
|
656
|
+
borderRadiusPopover?: GlobalValue;
|
|
657
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
658
|
+
borderRadiusTiles?: GlobalValue;
|
|
659
|
+
borderRadiusToken?: GlobalValue;
|
|
660
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
593
661
|
}
|
|
594
662
|
};
|
|
595
663
|
'alert'?: {
|
|
@@ -738,6 +806,23 @@ export declare interface TypedOverride {
|
|
|
738
806
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
739
807
|
fontFamilyBase?: GlobalValue;
|
|
740
808
|
fontFamilyMonospace?: GlobalValue;
|
|
809
|
+
borderRadiusAlert?: GlobalValue;
|
|
810
|
+
borderRadiusBadge?: GlobalValue;
|
|
811
|
+
borderRadiusButton?: GlobalValue;
|
|
812
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
813
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
814
|
+
borderRadiusContainer?: GlobalValue;
|
|
815
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
816
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
817
|
+
borderRadiusDropdown?: GlobalValue;
|
|
818
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
819
|
+
borderRadiusItem?: GlobalValue;
|
|
820
|
+
borderRadiusInput?: GlobalValue;
|
|
821
|
+
borderRadiusPopover?: GlobalValue;
|
|
822
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
823
|
+
borderRadiusTiles?: GlobalValue;
|
|
824
|
+
borderRadiusToken?: GlobalValue;
|
|
825
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
741
826
|
}
|
|
742
827
|
}
|
|
743
828
|
}
|
|
@@ -146,6 +146,23 @@ export declare interface TypedOverride {
|
|
|
146
146
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
147
147
|
fontFamilyBase?: GlobalValue;
|
|
148
148
|
fontFamilyMonospace?: GlobalValue;
|
|
149
|
+
borderRadiusAlert?: GlobalValue;
|
|
150
|
+
borderRadiusBadge?: GlobalValue;
|
|
151
|
+
borderRadiusButton?: GlobalValue;
|
|
152
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
153
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
154
|
+
borderRadiusContainer?: GlobalValue;
|
|
155
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
156
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
157
|
+
borderRadiusDropdown?: GlobalValue;
|
|
158
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
159
|
+
borderRadiusItem?: GlobalValue;
|
|
160
|
+
borderRadiusInput?: GlobalValue;
|
|
161
|
+
borderRadiusPopover?: GlobalValue;
|
|
162
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
163
|
+
borderRadiusTiles?: GlobalValue;
|
|
164
|
+
borderRadiusToken?: GlobalValue;
|
|
165
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
149
166
|
},
|
|
150
167
|
contexts?: {
|
|
151
168
|
'top-navigation'?: {
|
|
@@ -294,6 +311,23 @@ export declare interface TypedOverride {
|
|
|
294
311
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
295
312
|
fontFamilyBase?: GlobalValue;
|
|
296
313
|
fontFamilyMonospace?: GlobalValue;
|
|
314
|
+
borderRadiusAlert?: GlobalValue;
|
|
315
|
+
borderRadiusBadge?: GlobalValue;
|
|
316
|
+
borderRadiusButton?: GlobalValue;
|
|
317
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
318
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
319
|
+
borderRadiusContainer?: GlobalValue;
|
|
320
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
321
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
322
|
+
borderRadiusDropdown?: GlobalValue;
|
|
323
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
324
|
+
borderRadiusItem?: GlobalValue;
|
|
325
|
+
borderRadiusInput?: GlobalValue;
|
|
326
|
+
borderRadiusPopover?: GlobalValue;
|
|
327
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
328
|
+
borderRadiusTiles?: GlobalValue;
|
|
329
|
+
borderRadiusToken?: GlobalValue;
|
|
330
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
297
331
|
}
|
|
298
332
|
};
|
|
299
333
|
'header'?: {
|
|
@@ -442,6 +476,23 @@ export declare interface TypedOverride {
|
|
|
442
476
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
443
477
|
fontFamilyBase?: GlobalValue;
|
|
444
478
|
fontFamilyMonospace?: GlobalValue;
|
|
479
|
+
borderRadiusAlert?: GlobalValue;
|
|
480
|
+
borderRadiusBadge?: GlobalValue;
|
|
481
|
+
borderRadiusButton?: GlobalValue;
|
|
482
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
483
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
484
|
+
borderRadiusContainer?: GlobalValue;
|
|
485
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
486
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
487
|
+
borderRadiusDropdown?: GlobalValue;
|
|
488
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
489
|
+
borderRadiusItem?: GlobalValue;
|
|
490
|
+
borderRadiusInput?: GlobalValue;
|
|
491
|
+
borderRadiusPopover?: GlobalValue;
|
|
492
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
493
|
+
borderRadiusTiles?: GlobalValue;
|
|
494
|
+
borderRadiusToken?: GlobalValue;
|
|
495
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
445
496
|
}
|
|
446
497
|
};
|
|
447
498
|
'flashbar'?: {
|
|
@@ -590,6 +641,23 @@ export declare interface TypedOverride {
|
|
|
590
641
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
591
642
|
fontFamilyBase?: GlobalValue;
|
|
592
643
|
fontFamilyMonospace?: GlobalValue;
|
|
644
|
+
borderRadiusAlert?: GlobalValue;
|
|
645
|
+
borderRadiusBadge?: GlobalValue;
|
|
646
|
+
borderRadiusButton?: GlobalValue;
|
|
647
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
648
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
649
|
+
borderRadiusContainer?: GlobalValue;
|
|
650
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
651
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
652
|
+
borderRadiusDropdown?: GlobalValue;
|
|
653
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
654
|
+
borderRadiusItem?: GlobalValue;
|
|
655
|
+
borderRadiusInput?: GlobalValue;
|
|
656
|
+
borderRadiusPopover?: GlobalValue;
|
|
657
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
658
|
+
borderRadiusTiles?: GlobalValue;
|
|
659
|
+
borderRadiusToken?: GlobalValue;
|
|
660
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
593
661
|
}
|
|
594
662
|
};
|
|
595
663
|
'alert'?: {
|
|
@@ -738,6 +806,23 @@ export declare interface TypedOverride {
|
|
|
738
806
|
colorTextStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
739
807
|
fontFamilyBase?: GlobalValue;
|
|
740
808
|
fontFamilyMonospace?: GlobalValue;
|
|
809
|
+
borderRadiusAlert?: GlobalValue;
|
|
810
|
+
borderRadiusBadge?: GlobalValue;
|
|
811
|
+
borderRadiusButton?: GlobalValue;
|
|
812
|
+
borderRadiusCalendarDayFocusRing?: GlobalValue;
|
|
813
|
+
borderRadiusCodeEditor?: GlobalValue;
|
|
814
|
+
borderRadiusContainer?: GlobalValue;
|
|
815
|
+
borderRadiusControlCircularFocusRing?: GlobalValue;
|
|
816
|
+
borderRadiusControlDefaultFocusRing?: GlobalValue;
|
|
817
|
+
borderRadiusDropdown?: GlobalValue;
|
|
818
|
+
borderRadiusFlashbar?: GlobalValue;
|
|
819
|
+
borderRadiusItem?: GlobalValue;
|
|
820
|
+
borderRadiusInput?: GlobalValue;
|
|
821
|
+
borderRadiusPopover?: GlobalValue;
|
|
822
|
+
borderRadiusTabsFocusRing?: GlobalValue;
|
|
823
|
+
borderRadiusTiles?: GlobalValue;
|
|
824
|
+
borderRadiusToken?: GlobalValue;
|
|
825
|
+
borderRadiusTutorialPanelItem?: GlobalValue;
|
|
741
826
|
}
|
|
742
827
|
}
|
|
743
828
|
}
|
|
@@ -6326,7 +6326,24 @@ export var preset = {
|
|
|
6326
6326
|
"colorTextStatusSuccess",
|
|
6327
6327
|
"colorTextStatusWarning",
|
|
6328
6328
|
"fontFamilyBase",
|
|
6329
|
-
"fontFamilyMonospace"
|
|
6329
|
+
"fontFamilyMonospace",
|
|
6330
|
+
"borderRadiusAlert",
|
|
6331
|
+
"borderRadiusBadge",
|
|
6332
|
+
"borderRadiusButton",
|
|
6333
|
+
"borderRadiusCalendarDayFocusRing",
|
|
6334
|
+
"borderRadiusCodeEditor",
|
|
6335
|
+
"borderRadiusContainer",
|
|
6336
|
+
"borderRadiusControlCircularFocusRing",
|
|
6337
|
+
"borderRadiusControlDefaultFocusRing",
|
|
6338
|
+
"borderRadiusDropdown",
|
|
6339
|
+
"borderRadiusFlashbar",
|
|
6340
|
+
"borderRadiusItem",
|
|
6341
|
+
"borderRadiusInput",
|
|
6342
|
+
"borderRadiusPopover",
|
|
6343
|
+
"borderRadiusTabsFocusRing",
|
|
6344
|
+
"borderRadiusTiles",
|
|
6345
|
+
"borderRadiusToken",
|
|
6346
|
+
"borderRadiusTutorialPanelItem"
|
|
6330
6347
|
],
|
|
6331
6348
|
"exposed": [
|
|
6332
6349
|
"colorChartsRed300",
|
|
@@ -6560,6 +6577,23 @@ export var preset = {
|
|
|
6560
6577
|
"colorTextStatusWarning",
|
|
6561
6578
|
"fontFamilyBase",
|
|
6562
6579
|
"fontFamilyMonospace",
|
|
6580
|
+
"borderRadiusAlert",
|
|
6581
|
+
"borderRadiusBadge",
|
|
6582
|
+
"borderRadiusButton",
|
|
6583
|
+
"borderRadiusCalendarDayFocusRing",
|
|
6584
|
+
"borderRadiusCodeEditor",
|
|
6585
|
+
"borderRadiusContainer",
|
|
6586
|
+
"borderRadiusControlCircularFocusRing",
|
|
6587
|
+
"borderRadiusControlDefaultFocusRing",
|
|
6588
|
+
"borderRadiusDropdown",
|
|
6589
|
+
"borderRadiusFlashbar",
|
|
6590
|
+
"borderRadiusItem",
|
|
6591
|
+
"borderRadiusInput",
|
|
6592
|
+
"borderRadiusPopover",
|
|
6593
|
+
"borderRadiusTabsFocusRing",
|
|
6594
|
+
"borderRadiusTiles",
|
|
6595
|
+
"borderRadiusToken",
|
|
6596
|
+
"borderRadiusTutorialPanelItem",
|
|
6563
6597
|
"motionEasingResponsive",
|
|
6564
6598
|
"motionEasingSticky",
|
|
6565
6599
|
"motionEasingExpressive",
|
package/package.json
CHANGED
|
@@ -1,30 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ComparisonOperator, FilteringOption, FilteringProperty, GroupText, I18nStrings, JoinOperation, ParsedText, Query, Token } from './interfaces';
|
|
2
|
+
import { NonCancelableEventHandler } from '../internal/events';
|
|
2
3
|
import { AutosuggestProps } from '../autosuggest/interfaces';
|
|
3
4
|
import { AutosuggestInputRef } from '../internal/components/autosuggest-input';
|
|
4
|
-
export declare const getQueryActions: (query:
|
|
5
|
-
setToken: (index: number, newToken:
|
|
5
|
+
export declare const getQueryActions: (query: Query, onChange: NonCancelableEventHandler<Query>, inputRef: React.RefObject<AutosuggestInputRef>) => {
|
|
6
|
+
setToken: (index: number, newToken: Token) => void;
|
|
6
7
|
removeToken: (index: number) => void;
|
|
7
8
|
removeAllTokens: () => void;
|
|
8
|
-
addToken: (newToken:
|
|
9
|
-
setOperation: (newOperation:
|
|
9
|
+
addToken: (newToken: Token) => void;
|
|
10
|
+
setOperation: (newOperation: JoinOperation) => void;
|
|
10
11
|
};
|
|
11
|
-
export declare
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
operator: PropertyFilterProps.ComparisonOperator;
|
|
15
|
-
value: string;
|
|
16
|
-
} | {
|
|
17
|
-
step: 'operator';
|
|
18
|
-
property: PropertyFilterProps.FilteringProperty;
|
|
19
|
-
operatorPrefix: string;
|
|
20
|
-
} | {
|
|
21
|
-
step: 'free-text';
|
|
22
|
-
operator?: PropertyFilterProps.ComparisonOperator;
|
|
23
|
-
value: string;
|
|
24
|
-
};
|
|
25
|
-
export declare const getAllowedOperators: (property: PropertyFilterProps.FilteringProperty) => PropertyFilterProps.ComparisonOperator[];
|
|
26
|
-
export declare const parseText: (filteringText: string, filteringProperties: readonly PropertyFilterProps.FilteringProperty[] | undefined, disableFreeTextFiltering: boolean) => ParsedText;
|
|
27
|
-
export declare const getPropertyOptions: (filteringProperty: PropertyFilterProps.FilteringProperty, filteringOptions: PropertyFilterProps['filteringOptions']) => import("@cloudscape-design/collection-hooks").PropertyFilterOption[] | undefined;
|
|
12
|
+
export declare const getAllowedOperators: (property: FilteringProperty) => ComparisonOperator[];
|
|
13
|
+
export declare const parseText: (filteringText: string, filteringProperties: readonly import("./interfaces").PropertyFilterProps.FilteringProperty[] | undefined, disableFreeTextFiltering: boolean) => ParsedText;
|
|
14
|
+
export declare const getPropertyOptions: (filteringProperty: FilteringProperty, filteringOptions: readonly FilteringOption[]) => import("@cloudscape-design/collection-hooks").PropertyFilterOption[];
|
|
28
15
|
interface OptionGroup<T> {
|
|
29
16
|
label: string;
|
|
30
17
|
options: T[];
|
|
@@ -32,11 +19,10 @@ interface OptionGroup<T> {
|
|
|
32
19
|
interface ExtendedAutosuggestOption extends AutosuggestProps.Option {
|
|
33
20
|
tokenValue: string;
|
|
34
21
|
}
|
|
35
|
-
export declare const getAllValueSuggestions: (filteringOptions:
|
|
36
|
-
export declare const getPropertyByKey: (filteringProperties:
|
|
37
|
-
export declare function getPropertySuggestions<T>(filteringProperties:
|
|
38
|
-
export declare
|
|
39
|
-
export declare const getAutosuggestOptions: (parsedText: ParsedText, filteringOptions: PropertyFilterProps['filteringOptions'], filteringProperties: PropertyFilterProps['filteringProperties'], customGroupsText: PropertyFilterProps['customGroupsText'], i18nStrings: Pick<PropertyFilterProps['i18nStrings'], 'groupPropertiesText' | 'groupValuesText' | 'operatorsText' | OperatorStrings>) => {
|
|
22
|
+
export declare const getAllValueSuggestions: (filteringOptions: readonly FilteringOption[], filteringProperties: readonly FilteringProperty[], operator: ComparisonOperator | undefined, i18nStrings: I18nStrings, customGroupsText: readonly GroupText[]) => OptionGroup<ExtendedAutosuggestOption>[];
|
|
23
|
+
export declare const getPropertyByKey: (filteringProperties: readonly FilteringProperty[], key: string) => import("./interfaces").PropertyFilterProps.FilteringProperty | undefined;
|
|
24
|
+
export declare function getPropertySuggestions<T>(filteringProperties: readonly FilteringProperty[], customGroupsText: readonly GroupText[], i18nStrings: I18nStrings, filteringPropertyToOption: (filteringProperty: FilteringProperty) => T): OptionGroup<T>[];
|
|
25
|
+
export declare const getAutosuggestOptions: (parsedText: ParsedText, filteringOptions: readonly FilteringOption[], filteringProperties: readonly FilteringProperty[], customGroupsText: readonly GroupText[], i18nStrings: I18nStrings) => {
|
|
40
26
|
filterText: string;
|
|
41
27
|
options: {
|
|
42
28
|
options: {
|
|
@@ -53,6 +39,6 @@ export declare const getAutosuggestOptions: (parsedText: ParsedText, filteringOp
|
|
|
53
39
|
keepOpenOnSelect: boolean;
|
|
54
40
|
}>)[];
|
|
55
41
|
};
|
|
56
|
-
export declare const operatorToDescription: (operator:
|
|
42
|
+
export declare const operatorToDescription: (operator: ComparisonOperator, i18nStrings: I18nStrings) => string;
|
|
57
43
|
export {};
|
|
58
44
|
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/property-filter/controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/property-filter/controller.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,aAAa,EACb,UAAU,EACV,KAAK,EACL,KAAK,EACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAA0B,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,eAAO,MAAM,eAAe,UACnB,KAAK,YACF,0BAA0B,KAAK,CAAC,YAChC,MAAM,SAAS,CAAC,mBAAmB,CAAC;sBAKrB,MAAM,YAAY,KAAK;yBAOpB,MAAM;;yBASN,KAAK;iCAKG,aAAa;CAUlD,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,iBAAiB,KAAG,kBAAkB,EAWnF,CAAC;AAQF,eAAO,MAAM,SAAS,kBACL,MAAM,sIAEK,OAAO,KAChC,UA6CF,CAAC;AAEF,eAAO,MAAM,kBAAkB,sBACV,iBAAiB,oBAClB,SAAS,eAAe,EAAE,yEAG7C,CAAC;AAEF,UAAU,WAAW,CAAC,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,EAAE,CAAC;CACd;AAED,UAAU,yBAA0B,SAAQ,gBAAgB,CAAC,MAAM;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,sBAAsB,qBACf,SAAS,eAAe,EAAE,uBACvB,SAAS,iBAAiB,EAAE,YACvC,kBAAkB,GAAG,SAAS,eAC3B,WAAW,oBACN,SAAS,SAAS,EAAE,6CAmCvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,wBAAyB,SAAS,iBAAiB,EAAE,OAAO,MAAM,6EAM9F,CAAC;AAOF,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,mBAAmB,EAAE,SAAS,iBAAiB,EAAE,EACjD,gBAAgB,EAAE,SAAS,SAAS,EAAE,EACtC,WAAW,EAAE,WAAW,EACxB,yBAAyB,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,CAAC,oBA0BvE;AAED,eAAO,MAAM,qBAAqB,eACpB,UAAU,oBACJ,SAAS,eAAe,EAAE,uBACvB,SAAS,iBAAiB,EAAE,oBAC/B,SAAS,SAAS,EAAE,eACzB,WAAW;;;;;;;;;;;;;;;;CAqEzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAAc,kBAAkB,eAAe,WAAW,WAY3F,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
1
3
|
import { __spreadArray } from "tslib";
|
|
2
4
|
import { fireNonCancelableEvent } from '../internal/events';
|
|
3
5
|
import { matchFilteringProperty, matchOperator, matchOperatorPrefix, trimFirstSpace, trimStart } from './utils';
|
|
4
|
-
export var getQueryActions = function (query, onChange, inputRef
|
|
6
|
+
export var getQueryActions = function (query, onChange, inputRef) {
|
|
5
7
|
var tokens = query.tokens, operation = query.operation;
|
|
6
8
|
var fireOnChange = function (tokens, operation) {
|
|
7
9
|
return fireNonCancelableEvent(onChange, { tokens: tokens, operation: operation });
|
|
@@ -17,13 +19,11 @@ export var getQueryActions = function (query, onChange, inputRef, preventFocus)
|
|
|
17
19
|
var _a;
|
|
18
20
|
var newTokens = tokens.filter(function (_, i) { return i !== index; });
|
|
19
21
|
fireOnChange(newTokens, operation);
|
|
20
|
-
preventFocus.current = true;
|
|
21
22
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focusNoOpen();
|
|
22
23
|
};
|
|
23
24
|
var removeAllTokens = function () {
|
|
24
25
|
var _a;
|
|
25
26
|
fireOnChange([], operation);
|
|
26
|
-
preventFocus.current = true;
|
|
27
27
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focusNoOpen();
|
|
28
28
|
};
|
|
29
29
|
var addToken = function (newToken) {
|
|
@@ -105,7 +105,7 @@ export var parseText = function (filteringText, filteringProperties, disableFree
|
|
|
105
105
|
};
|
|
106
106
|
};
|
|
107
107
|
export var getPropertyOptions = function (filteringProperty, filteringOptions) {
|
|
108
|
-
return filteringOptions
|
|
108
|
+
return filteringOptions.filter(function (option) { return option.propertyKey === filteringProperty.key; });
|
|
109
109
|
};
|
|
110
110
|
export var getAllValueSuggestions = function (filteringOptions, filteringProperties, operator, i18nStrings, customGroupsText) {
|
|
111
111
|
if (operator === void 0) { operator = '='; }
|
|
@@ -114,7 +114,7 @@ export var getAllValueSuggestions = function (filteringOptions, filteringPropert
|
|
|
114
114
|
options: []
|
|
115
115
|
};
|
|
116
116
|
var customGroups = {};
|
|
117
|
-
filteringOptions
|
|
117
|
+
filteringOptions.forEach(function (filteringOption) {
|
|
118
118
|
var property = getPropertyByKey(filteringProperties, filteringOption.propertyKey);
|
|
119
119
|
// given option refers to a non-existent filtering property
|
|
120
120
|
if (!property) {
|
|
@@ -125,7 +125,7 @@ export var getAllValueSuggestions = function (filteringOptions, filteringPropert
|
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
127
|
if (property.group && !customGroups[property.group]) {
|
|
128
|
-
var label =
|
|
128
|
+
var label = customGroupsText.reduce(function (acc, customGroup) { return (customGroup.group === property.group ? customGroup.values : acc); }, '');
|
|
129
129
|
customGroups[property.group] = {
|
|
130
130
|
label: label,
|
|
131
131
|
options: []
|
|
@@ -162,7 +162,7 @@ export function getPropertySuggestions(filteringProperties, customGroupsText, i1
|
|
|
162
162
|
var optionsGroup = defaultGroup;
|
|
163
163
|
if (group) {
|
|
164
164
|
if (!customGroups[group]) {
|
|
165
|
-
var label =
|
|
165
|
+
var label = customGroupsText.reduce(function (acc, customGroup) { return (customGroup.group === group ? customGroup.properties : acc); }, '');
|
|
166
166
|
customGroups[group] = { options: [], label: label };
|
|
167
167
|
}
|
|
168
168
|
optionsGroup = customGroups[group];
|
|
@@ -182,7 +182,7 @@ export var getAutosuggestOptions = function (parsedText, filteringOptions, filte
|
|
|
182
182
|
filterText: parsedText.value,
|
|
183
183
|
options: [
|
|
184
184
|
{
|
|
185
|
-
options:
|
|
185
|
+
options: options.map(function (_a) {
|
|
186
186
|
var value = _a.value;
|
|
187
187
|
return ({
|
|
188
188
|
tokenValue: propertyLabel_1 + parsedText.operator + value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/property-filter/controller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { PropertyFilterProps } from './interfaces';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport { matchFilteringProperty, matchOperator, matchOperatorPrefix, trimFirstSpace, trimStart } from './utils';\nimport { AutosuggestInputRef } from '../internal/components/autosuggest-input';\n\nexport const getQueryActions = (\n query: PropertyFilterProps['query'],\n onChange: PropertyFilterProps['onChange'],\n inputRef: React.RefObject<AutosuggestInputRef>,\n preventFocus: React.MutableRefObject<boolean>\n) => {\n const { tokens, operation } = query;\n const fireOnChange = (tokens: readonly PropertyFilterProps.Token[], operation: PropertyFilterProps.JoinOperation) =>\n fireNonCancelableEvent(onChange, { tokens, operation });\n const setToken = (index: number, newToken: PropertyFilterProps.Token) => {\n const newTokens = [...tokens];\n if (newTokens && index < newTokens.length) {\n newTokens[index] = newToken;\n }\n fireOnChange(newTokens, operation);\n };\n const removeToken = (index: number) => {\n const newTokens = tokens.filter((_, i) => i !== index);\n fireOnChange(newTokens, operation);\n preventFocus.current = true;\n inputRef.current?.focusNoOpen();\n };\n const removeAllTokens = () => {\n fireOnChange([], operation);\n preventFocus.current = true;\n inputRef.current?.focusNoOpen();\n };\n const addToken = (newToken: PropertyFilterProps.Token) => {\n const newTokens = [...tokens];\n newTokens.push(newToken);\n fireOnChange(newTokens, operation);\n };\n const setOperation = (newOperation: PropertyFilterProps.JoinOperation) => {\n fireOnChange(tokens, newOperation);\n };\n return {\n setToken,\n removeToken,\n removeAllTokens,\n addToken,\n setOperation,\n };\n};\n\nexport type ParsedText =\n | {\n step: 'property';\n property: PropertyFilterProps.FilteringProperty;\n operator: PropertyFilterProps.ComparisonOperator;\n value: string;\n }\n | { step: 'operator'; property: PropertyFilterProps.FilteringProperty; operatorPrefix: string }\n | { step: 'free-text'; operator?: PropertyFilterProps.ComparisonOperator; value: string };\n\nexport const getAllowedOperators = (\n property: PropertyFilterProps.FilteringProperty\n): PropertyFilterProps.ComparisonOperator[] => {\n const { operators, defaultOperator } = property;\n const operatorOrder = ['=', '!=', ':', '!:', '>=', '<=', '<', '>'] as const;\n const operatorSet: { [key: string]: true } = { [defaultOperator ?? '=']: true };\n // TODO: remove unknown type annotation once extended operators are supported.\n operators?.forEach((op: unknown) => {\n if (typeof op === 'string') {\n operatorSet[op] = true;\n }\n });\n return operatorOrder.filter(op => operatorSet[op]);\n};\n\n/*\n * parses the value of the filtering input to figure out the current step of entering the token:\n * - \"property\": means that a filter on a particular column is being added, with operator already finalized\n * - \"operator\": means that a filter on a particular column is being added, with operator not yet finalized\n * - \"free-text\": means that a \"free text\" token is being added\n */\nexport const parseText = (\n filteringText: string,\n filteringProperties: PropertyFilterProps['filteringProperties'] = [],\n disableFreeTextFiltering: boolean\n): ParsedText => {\n const negatedGlobalQuery = /^(!:|!)(.*)/.exec(filteringText);\n if (!disableFreeTextFiltering && negatedGlobalQuery) {\n return {\n step: 'free-text',\n operator: '!:',\n value: negatedGlobalQuery[2],\n };\n }\n\n const property = matchFilteringProperty(filteringProperties, filteringText);\n if (!property) {\n return {\n step: 'free-text',\n value: filteringText,\n };\n }\n\n const allowedOps = getAllowedOperators(property);\n const textWithoutProperty = filteringText.substring(property.propertyLabel.length);\n const operator = matchOperator(allowedOps, trimStart(textWithoutProperty));\n if (operator) {\n const operatorLastIndex = textWithoutProperty.indexOf(operator) + operator.length;\n const textWithoutPropertyAndOperator = textWithoutProperty.slice(operatorLastIndex);\n return {\n step: 'property',\n property,\n operator,\n // We need to remove the first leading space in case the user presses space\n // after the operator, for example: Owner: admin, will result in value of ` admin`\n // and we need to remove the first space, if the user added any more spaces only the\n // first one will be removed.\n value: trimFirstSpace(textWithoutPropertyAndOperator),\n };\n }\n\n const operatorPrefix = matchOperatorPrefix(allowedOps, trimStart(textWithoutProperty));\n if (operatorPrefix !== null) {\n return { step: 'operator', property, operatorPrefix };\n }\n\n return {\n step: 'free-text',\n value: filteringText,\n };\n};\n\nexport const getPropertyOptions = (\n filteringProperty: PropertyFilterProps.FilteringProperty,\n filteringOptions: PropertyFilterProps['filteringOptions']\n) => {\n return filteringOptions?.filter(option => option.propertyKey === filteringProperty.key);\n};\n\ninterface OptionGroup<T> {\n label: string;\n options: T[];\n}\n\ninterface ExtendedAutosuggestOption extends AutosuggestProps.Option {\n tokenValue: string;\n}\n\nexport const getAllValueSuggestions = (\n filteringOptions: PropertyFilterProps['filteringOptions'],\n filteringProperties: PropertyFilterProps['filteringProperties'],\n operator: PropertyFilterProps.ComparisonOperator | undefined = '=',\n i18nStrings: Pick<PropertyFilterProps.I18nStrings, 'groupValuesText'>,\n customGroupsText: PropertyFilterProps['customGroupsText']\n) => {\n const defaultGroup: OptionGroup<ExtendedAutosuggestOption> = {\n label: i18nStrings.groupValuesText,\n options: [],\n };\n const customGroups: { [K in string]: OptionGroup<ExtendedAutosuggestOption> } = {};\n filteringOptions?.forEach(filteringOption => {\n const property = getPropertyByKey(filteringProperties, filteringOption.propertyKey);\n // given option refers to a non-existent filtering property\n if (!property) {\n return;\n }\n // this option's filtering property does not support current operator\n if (getAllowedOperators(property).indexOf(operator) === -1) {\n return;\n }\n if (property.group && !customGroups[property.group]) {\n const label =\n customGroupsText?.reduce<string>(\n (acc, customGroup) => (customGroup.group === property.group ? customGroup.values : acc),\n ''\n ) || '';\n customGroups[property.group] = {\n label,\n options: [],\n };\n }\n const propertyGroup = property.group ? customGroups[property.group] : defaultGroup;\n propertyGroup.options.push({\n tokenValue: property.propertyLabel + (operator || '=') + filteringOption.value,\n label: filteringOption.value,\n __labelPrefix: property.propertyLabel + ' ' + (operator || '='),\n });\n });\n return [defaultGroup, ...Object.keys(customGroups).map(group => customGroups[group])];\n};\n\nexport const getPropertyByKey = (filteringProperties: PropertyFilterProps['filteringProperties'], key: string) => {\n const propertyMap = filteringProperties.reduce<{ [K: string]: PropertyFilterProps.FilteringProperty }>(\n (acc, property) => {\n acc[property.key] = property;\n return acc;\n },\n {}\n );\n return propertyMap[key] as PropertyFilterProps.FilteringProperty | undefined;\n};\n\nconst filteringPropertyToAutosuggestOption = (filteringProperty: PropertyFilterProps.FilteringProperty) => ({\n value: filteringProperty.propertyLabel,\n keepOpenOnSelect: true,\n});\n\nexport function getPropertySuggestions<T>(\n filteringProperties: PropertyFilterProps['filteringProperties'],\n customGroupsText: PropertyFilterProps['customGroupsText'],\n i18nStrings: Pick<PropertyFilterProps['i18nStrings'], 'groupPropertiesText'>,\n filteringPropertyToOption: (filteringProperty: PropertyFilterProps.FilteringProperty) => T\n) {\n const defaultGroup: OptionGroup<T> = {\n label: i18nStrings.groupPropertiesText,\n options: [],\n };\n const customGroups: { [K in string]: OptionGroup<T> } = {};\n\n filteringProperties.forEach(filteringProperty => {\n const { group } = filteringProperty;\n let optionsGroup = defaultGroup;\n if (group) {\n if (!customGroups[group]) {\n const label =\n customGroupsText?.reduce<string>(\n (acc, customGroup) => (customGroup.group === group ? customGroup.properties : acc),\n ''\n ) || '';\n customGroups[group] = { options: [], label };\n }\n optionsGroup = customGroups[group];\n }\n optionsGroup.options.push(filteringPropertyToOption(filteringProperty));\n });\n const defaultGroupArray = defaultGroup.options.length ? [defaultGroup] : [];\n const customGroupsArray = Object.keys(customGroups).map(groupKey => customGroups[groupKey]);\n return [...defaultGroupArray, ...customGroupsArray];\n}\n\nexport type OperatorStrings =\n | 'operatorLessText'\n | 'operatorLessOrEqualText'\n | 'operatorGreaterText'\n | 'operatorGreaterOrEqualText'\n | 'operatorContainsText'\n | 'operatorDoesNotContainText'\n | 'operatorEqualsText'\n | 'operatorDoesNotEqualText';\nexport const getAutosuggestOptions = (\n parsedText: ParsedText,\n filteringOptions: PropertyFilterProps['filteringOptions'],\n filteringProperties: PropertyFilterProps['filteringProperties'],\n customGroupsText: PropertyFilterProps['customGroupsText'],\n i18nStrings: Pick<\n PropertyFilterProps['i18nStrings'],\n 'groupPropertiesText' | 'groupValuesText' | 'operatorsText' | OperatorStrings\n >\n) => {\n switch (parsedText.step) {\n case 'property': {\n const { propertyLabel, groupValuesLabel } = parsedText.property;\n const options = getPropertyOptions(parsedText.property, filteringOptions);\n return {\n filterText: parsedText.value,\n options: [\n {\n options: (options || []).map(({ value }) => ({\n tokenValue: propertyLabel + parsedText.operator + value,\n label: value,\n __labelPrefix: propertyLabel + ' ' + parsedText.operator,\n })),\n label: groupValuesLabel,\n },\n ],\n };\n }\n case 'operator': {\n return {\n filterText: parsedText.property.propertyLabel + ' ' + parsedText.operatorPrefix,\n options: [\n ...getPropertySuggestions(\n filteringProperties,\n customGroupsText,\n i18nStrings,\n filteringPropertyToAutosuggestOption\n ),\n {\n options: getAllowedOperators(parsedText.property).map(value => ({\n value: parsedText.property.propertyLabel + ' ' + value + ' ',\n label: parsedText.property.propertyLabel + ' ' + value,\n description: operatorToDescription(value, i18nStrings),\n keepOpenOnSelect: true,\n })),\n label: i18nStrings.operatorsText,\n },\n ],\n };\n }\n case 'free-text': {\n const needsValueSuggestions = !!parsedText.value;\n const needsPropertySuggestions = !(parsedText.step === 'free-text' && parsedText.operator === '!:');\n return {\n filterText: parsedText.value,\n options: [\n ...(needsPropertySuggestions\n ? getPropertySuggestions(\n filteringProperties,\n customGroupsText,\n i18nStrings,\n filteringPropertyToAutosuggestOption\n )\n : []),\n ...(needsValueSuggestions\n ? getAllValueSuggestions(\n filteringOptions,\n filteringProperties,\n parsedText.operator,\n i18nStrings,\n customGroupsText\n )\n : []),\n ],\n };\n }\n }\n};\n\nexport const operatorToDescription = (\n operator: PropertyFilterProps.ComparisonOperator,\n i18nStrings: Pick<PropertyFilterProps['i18nStrings'], OperatorStrings>\n) => {\n const mapping: { [K in PropertyFilterProps.ComparisonOperator]: string } = {\n ['<']: i18nStrings.operatorLessText,\n ['<=']: i18nStrings.operatorLessOrEqualText,\n ['>']: i18nStrings.operatorGreaterText,\n ['>=']: i18nStrings.operatorGreaterOrEqualText,\n [':']: i18nStrings.operatorContainsText,\n ['!:']: i18nStrings.operatorDoesNotContainText,\n ['=']: i18nStrings.operatorEqualsText,\n ['!=']: i18nStrings.operatorDoesNotEqualText,\n };\n return mapping[operator];\n};\n"]}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/property-filter/controller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n ComparisonOperator,\n FilteringOption,\n FilteringProperty,\n GroupText,\n I18nStrings,\n JoinOperation,\n ParsedText,\n Query,\n Token,\n} from './interfaces';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { AutosuggestProps } from '../autosuggest/interfaces';\nimport { matchFilteringProperty, matchOperator, matchOperatorPrefix, trimFirstSpace, trimStart } from './utils';\nimport { AutosuggestInputRef } from '../internal/components/autosuggest-input';\n\nexport const getQueryActions = (\n query: Query,\n onChange: NonCancelableEventHandler<Query>,\n inputRef: React.RefObject<AutosuggestInputRef>\n) => {\n const { tokens, operation } = query;\n const fireOnChange = (tokens: readonly Token[], operation: JoinOperation) =>\n fireNonCancelableEvent(onChange, { tokens, operation });\n const setToken = (index: number, newToken: Token) => {\n const newTokens = [...tokens];\n if (newTokens && index < newTokens.length) {\n newTokens[index] = newToken;\n }\n fireOnChange(newTokens, operation);\n };\n const removeToken = (index: number) => {\n const newTokens = tokens.filter((_, i) => i !== index);\n fireOnChange(newTokens, operation);\n inputRef.current?.focusNoOpen();\n };\n const removeAllTokens = () => {\n fireOnChange([], operation);\n inputRef.current?.focusNoOpen();\n };\n const addToken = (newToken: Token) => {\n const newTokens = [...tokens];\n newTokens.push(newToken);\n fireOnChange(newTokens, operation);\n };\n const setOperation = (newOperation: JoinOperation) => {\n fireOnChange(tokens, newOperation);\n };\n return {\n setToken,\n removeToken,\n removeAllTokens,\n addToken,\n setOperation,\n };\n};\n\nexport const getAllowedOperators = (property: FilteringProperty): ComparisonOperator[] => {\n const { operators, defaultOperator } = property;\n const operatorOrder = ['=', '!=', ':', '!:', '>=', '<=', '<', '>'] as const;\n const operatorSet: { [key: string]: true } = { [defaultOperator ?? '=']: true };\n // TODO: remove unknown type annotation once extended operators are supported.\n operators?.forEach((op: unknown) => {\n if (typeof op === 'string') {\n operatorSet[op] = true;\n }\n });\n return operatorOrder.filter(op => operatorSet[op]);\n};\n\n/*\n * parses the value of the filtering input to figure out the current step of entering the token:\n * - \"property\": means that a filter on a particular column is being added, with operator already finalized\n * - \"operator\": means that a filter on a particular column is being added, with operator not yet finalized\n * - \"free-text\": means that a \"free text\" token is being added\n */\nexport const parseText = (\n filteringText: string,\n filteringProperties: readonly FilteringProperty[] = [],\n disableFreeTextFiltering: boolean\n): ParsedText => {\n const negatedGlobalQuery = /^(!:|!)(.*)/.exec(filteringText);\n if (!disableFreeTextFiltering && negatedGlobalQuery) {\n return {\n step: 'free-text',\n operator: '!:',\n value: negatedGlobalQuery[2],\n };\n }\n\n const property = matchFilteringProperty(filteringProperties, filteringText);\n if (!property) {\n return {\n step: 'free-text',\n value: filteringText,\n };\n }\n\n const allowedOps = getAllowedOperators(property);\n const textWithoutProperty = filteringText.substring(property.propertyLabel.length);\n const operator = matchOperator(allowedOps, trimStart(textWithoutProperty));\n if (operator) {\n const operatorLastIndex = textWithoutProperty.indexOf(operator) + operator.length;\n const textWithoutPropertyAndOperator = textWithoutProperty.slice(operatorLastIndex);\n return {\n step: 'property',\n property,\n operator,\n // We need to remove the first leading space in case the user presses space\n // after the operator, for example: Owner: admin, will result in value of ` admin`\n // and we need to remove the first space, if the user added any more spaces only the\n // first one will be removed.\n value: trimFirstSpace(textWithoutPropertyAndOperator),\n };\n }\n\n const operatorPrefix = matchOperatorPrefix(allowedOps, trimStart(textWithoutProperty));\n if (operatorPrefix !== null) {\n return { step: 'operator', property, operatorPrefix };\n }\n\n return {\n step: 'free-text',\n value: filteringText,\n };\n};\n\nexport const getPropertyOptions = (\n filteringProperty: FilteringProperty,\n filteringOptions: readonly FilteringOption[]\n) => {\n return filteringOptions.filter(option => option.propertyKey === filteringProperty.key);\n};\n\ninterface OptionGroup<T> {\n label: string;\n options: T[];\n}\n\ninterface ExtendedAutosuggestOption extends AutosuggestProps.Option {\n tokenValue: string;\n}\n\nexport const getAllValueSuggestions = (\n filteringOptions: readonly FilteringOption[],\n filteringProperties: readonly FilteringProperty[],\n operator: ComparisonOperator | undefined = '=',\n i18nStrings: I18nStrings,\n customGroupsText: readonly GroupText[]\n) => {\n const defaultGroup: OptionGroup<ExtendedAutosuggestOption> = {\n label: i18nStrings.groupValuesText,\n options: [],\n };\n const customGroups: { [K in string]: OptionGroup<ExtendedAutosuggestOption> } = {};\n filteringOptions.forEach(filteringOption => {\n const property = getPropertyByKey(filteringProperties, filteringOption.propertyKey);\n // given option refers to a non-existent filtering property\n if (!property) {\n return;\n }\n // this option's filtering property does not support current operator\n if (getAllowedOperators(property).indexOf(operator) === -1) {\n return;\n }\n if (property.group && !customGroups[property.group]) {\n const label = customGroupsText.reduce<string>(\n (acc, customGroup) => (customGroup.group === property.group ? customGroup.values : acc),\n ''\n );\n customGroups[property.group] = {\n label,\n options: [],\n };\n }\n const propertyGroup = property.group ? customGroups[property.group] : defaultGroup;\n propertyGroup.options.push({\n tokenValue: property.propertyLabel + (operator || '=') + filteringOption.value,\n label: filteringOption.value,\n __labelPrefix: property.propertyLabel + ' ' + (operator || '='),\n });\n });\n return [defaultGroup, ...Object.keys(customGroups).map(group => customGroups[group])];\n};\n\nexport const getPropertyByKey = (filteringProperties: readonly FilteringProperty[], key: string) => {\n const propertyMap = filteringProperties.reduce<{ [K: string]: FilteringProperty }>((acc, property) => {\n acc[property.key] = property;\n return acc;\n }, {});\n return propertyMap[key] as FilteringProperty | undefined;\n};\n\nconst filteringPropertyToAutosuggestOption = (filteringProperty: FilteringProperty) => ({\n value: filteringProperty.propertyLabel,\n keepOpenOnSelect: true,\n});\n\nexport function getPropertySuggestions<T>(\n filteringProperties: readonly FilteringProperty[],\n customGroupsText: readonly GroupText[],\n i18nStrings: I18nStrings,\n filteringPropertyToOption: (filteringProperty: FilteringProperty) => T\n) {\n const defaultGroup: OptionGroup<T> = {\n label: i18nStrings.groupPropertiesText,\n options: [],\n };\n const customGroups: { [K in string]: OptionGroup<T> } = {};\n\n filteringProperties.forEach(filteringProperty => {\n const { group } = filteringProperty;\n let optionsGroup = defaultGroup;\n if (group) {\n if (!customGroups[group]) {\n const label = customGroupsText.reduce<string>(\n (acc, customGroup) => (customGroup.group === group ? customGroup.properties : acc),\n ''\n );\n customGroups[group] = { options: [], label };\n }\n optionsGroup = customGroups[group];\n }\n optionsGroup.options.push(filteringPropertyToOption(filteringProperty));\n });\n const defaultGroupArray = defaultGroup.options.length ? [defaultGroup] : [];\n const customGroupsArray = Object.keys(customGroups).map(groupKey => customGroups[groupKey]);\n return [...defaultGroupArray, ...customGroupsArray];\n}\n\nexport const getAutosuggestOptions = (\n parsedText: ParsedText,\n filteringOptions: readonly FilteringOption[],\n filteringProperties: readonly FilteringProperty[],\n customGroupsText: readonly GroupText[],\n i18nStrings: I18nStrings\n) => {\n switch (parsedText.step) {\n case 'property': {\n const { propertyLabel, groupValuesLabel } = parsedText.property;\n const options = getPropertyOptions(parsedText.property, filteringOptions);\n return {\n filterText: parsedText.value,\n options: [\n {\n options: options.map(({ value }) => ({\n tokenValue: propertyLabel + parsedText.operator + value,\n label: value,\n __labelPrefix: propertyLabel + ' ' + parsedText.operator,\n })),\n label: groupValuesLabel,\n },\n ],\n };\n }\n case 'operator': {\n return {\n filterText: parsedText.property.propertyLabel + ' ' + parsedText.operatorPrefix,\n options: [\n ...getPropertySuggestions(\n filteringProperties,\n customGroupsText,\n i18nStrings,\n filteringPropertyToAutosuggestOption\n ),\n {\n options: getAllowedOperators(parsedText.property).map(value => ({\n value: parsedText.property.propertyLabel + ' ' + value + ' ',\n label: parsedText.property.propertyLabel + ' ' + value,\n description: operatorToDescription(value, i18nStrings),\n keepOpenOnSelect: true,\n })),\n label: i18nStrings.operatorsText,\n },\n ],\n };\n }\n case 'free-text': {\n const needsValueSuggestions = !!parsedText.value;\n const needsPropertySuggestions = !(parsedText.step === 'free-text' && parsedText.operator === '!:');\n return {\n filterText: parsedText.value,\n options: [\n ...(needsPropertySuggestions\n ? getPropertySuggestions(\n filteringProperties,\n customGroupsText,\n i18nStrings,\n filteringPropertyToAutosuggestOption\n )\n : []),\n ...(needsValueSuggestions\n ? getAllValueSuggestions(\n filteringOptions,\n filteringProperties,\n parsedText.operator,\n i18nStrings,\n customGroupsText\n )\n : []),\n ],\n };\n }\n }\n};\n\nexport const operatorToDescription = (operator: ComparisonOperator, i18nStrings: I18nStrings) => {\n const mapping: { [K in ComparisonOperator]: string } = {\n ['<']: i18nStrings.operatorLessText,\n ['<=']: i18nStrings.operatorLessOrEqualText,\n ['>']: i18nStrings.operatorGreaterText,\n ['>=']: i18nStrings.operatorGreaterOrEqualText,\n [':']: i18nStrings.operatorContainsText,\n ['!:']: i18nStrings.operatorDoesNotContainText,\n ['=']: i18nStrings.operatorEqualsText,\n ['!=']: i18nStrings.operatorDoesNotEqualText,\n };\n return mapping[operator];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAYzD,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAYzD,OAAO,EAAE,mBAAmB,EAAiE,MAAM,cAAc,CAAC;AASlH,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,QAAA,MAAM,cAAc,qGAuPnB,CAAC;AAGF,eAAe,cAAc,CAAC"}
|