@cloudscape-design/components-themeable 3.0.685 → 3.0.687
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/lib/internal/manifest.json +1 -1
- package/lib/internal/scss/internal/components/button-trigger/styles.scss +1 -1
- package/lib/internal/scss/internal/components/checkbox-icon/styles.scss +5 -1
- package/lib/internal/scss/radio-group/styles.scss +6 -1
- package/lib/internal/scss/slider/mixins.scss +23 -0
- package/lib/internal/scss/slider/styles.scss +57 -0
- package/lib/internal/scss/tiles/styles.scss +4 -0
- package/lib/internal/scss/toggle/styles.scss +10 -0
- package/lib/internal/scss/token-group/styles.scss +15 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/index.js +9 -2
- package/lib/internal/template/app-layout/visual-refresh-toolbar/index.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts +2 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js +5 -2
- package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
- package/lib/internal/template/breadcrumb-group/index.d.ts.map +1 -1
- package/lib/internal/template/breadcrumb-group/index.js +5 -0
- package/lib/internal/template/breadcrumb-group/index.js.map +1 -1
- package/lib/internal/template/checkbox/base-checkbox.d.ts +7 -0
- package/lib/internal/template/checkbox/base-checkbox.d.ts.map +1 -1
- package/lib/internal/template/checkbox/base-checkbox.js.map +1 -1
- package/lib/internal/template/checkbox/internal.d.ts.map +1 -1
- package/lib/internal/template/checkbox/internal.js +3 -3
- package/lib/internal/template/checkbox/internal.js.map +1 -1
- package/lib/internal/template/date-picker/interfaces.d.ts +1 -1
- package/lib/internal/template/date-picker/interfaces.js.map +1 -1
- package/lib/internal/template/date-range-picker/index.d.ts.map +1 -1
- package/lib/internal/template/date-range-picker/index.js +1 -3
- package/lib/internal/template/date-range-picker/index.js.map +1 -1
- package/lib/internal/template/input/interfaces.d.ts +1 -1
- package/lib/internal/template/input/interfaces.js.map +1 -1
- package/lib/internal/template/internal/base-component/styles.scoped.css +11 -0
- package/lib/internal/template/internal/components/abstract-switch/index.d.ts +2 -1
- package/lib/internal/template/internal/components/abstract-switch/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/abstract-switch/index.js +2 -2
- package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
- package/lib/internal/template/internal/components/button-trigger/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/button-trigger/index.js +5 -2
- package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
- package/lib/internal/template/internal/components/button-trigger/styles.css.js +11 -11
- package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +26 -26
- package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +11 -11
- package/lib/internal/template/internal/components/checkbox-icon/index.d.ts +2 -1
- package/lib/internal/template/internal/components/checkbox-icon/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/checkbox-icon/index.js +6 -2
- package/lib/internal/template/internal/components/checkbox-icon/index.js.map +1 -1
- package/lib/internal/template/internal/components/checkbox-icon/styles.css.js +9 -7
- package/lib/internal/template/internal/components/checkbox-icon/styles.scoped.css +11 -8
- package/lib/internal/template/internal/components/checkbox-icon/styles.selectors.js +9 -7
- package/lib/internal/template/internal/environment.js +1 -1
- package/lib/internal/template/internal/environment.json +1 -1
- package/lib/internal/template/internal/generated/styles/tokens.d.ts +1 -0
- package/lib/internal/template/internal/generated/styles/tokens.js +1 -0
- package/lib/internal/template/internal/generated/theming/index.cjs +33 -0
- package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +8 -0
- package/lib/internal/template/internal/generated/theming/index.d.ts +8 -0
- package/lib/internal/template/internal/generated/theming/index.js +33 -0
- package/lib/internal/template/internal/plugins/api.d.ts +4 -0
- package/lib/internal/template/internal/plugins/api.d.ts.map +1 -1
- package/lib/internal/template/internal/plugins/api.js +3 -0
- package/lib/internal/template/internal/plugins/api.js.map +1 -1
- package/lib/internal/template/internal/plugins/controllers/breadcrumbs.d.ts +31 -0
- package/lib/internal/template/internal/plugins/controllers/breadcrumbs.d.ts.map +1 -0
- package/lib/internal/template/internal/plugins/controllers/breadcrumbs.js +70 -0
- package/lib/internal/template/internal/plugins/controllers/breadcrumbs.js.map +1 -0
- package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.d.ts +4 -0
- package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.d.ts.map +1 -0
- package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js +42 -0
- package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js.map +1 -0
- package/lib/internal/template/multiselect/internal.d.ts.map +1 -1
- package/lib/internal/template/multiselect/internal.js +3 -3
- package/lib/internal/template/multiselect/internal.js.map +1 -1
- package/lib/internal/template/radio-group/interfaces.d.ts +6 -0
- package/lib/internal/template/radio-group/interfaces.d.ts.map +1 -1
- package/lib/internal/template/radio-group/interfaces.js.map +1 -1
- package/lib/internal/template/radio-group/internal.d.ts.map +1 -1
- package/lib/internal/template/radio-group/internal.js +3 -3
- package/lib/internal/template/radio-group/internal.js.map +1 -1
- package/lib/internal/template/radio-group/radio-button.d.ts +1 -0
- package/lib/internal/template/radio-group/radio-button.d.ts.map +1 -1
- package/lib/internal/template/radio-group/radio-button.js +7 -3
- package/lib/internal/template/radio-group/radio-button.js.map +1 -1
- package/lib/internal/template/radio-group/styles.css.js +10 -9
- package/lib/internal/template/radio-group/styles.scoped.css +19 -15
- package/lib/internal/template/radio-group/styles.selectors.js +10 -9
- package/lib/internal/template/select/interfaces.d.ts +5 -0
- package/lib/internal/template/select/interfaces.d.ts.map +1 -1
- package/lib/internal/template/select/interfaces.js.map +1 -1
- package/lib/internal/template/select/internal.d.ts.map +1 -1
- package/lib/internal/template/select/internal.js +2 -2
- package/lib/internal/template/select/internal.js.map +1 -1
- package/lib/internal/template/select/parts/trigger.d.ts +1 -0
- package/lib/internal/template/select/parts/trigger.d.ts.map +1 -1
- package/lib/internal/template/select/parts/trigger.js +2 -2
- package/lib/internal/template/select/parts/trigger.js.map +1 -1
- package/lib/internal/template/slider/interfaces.d.ts +6 -0
- package/lib/internal/template/slider/interfaces.d.ts.map +1 -1
- package/lib/internal/template/slider/interfaces.js.map +1 -1
- package/lib/internal/template/slider/internal.d.ts +1 -1
- package/lib/internal/template/slider/internal.d.ts.map +1 -1
- package/lib/internal/template/slider/internal.js +15 -6
- package/lib/internal/template/slider/internal.js.map +1 -1
- package/lib/internal/template/slider/styles.css.js +27 -25
- package/lib/internal/template/slider/styles.scoped.css +129 -62
- package/lib/internal/template/slider/styles.selectors.js +27 -25
- package/lib/internal/template/slider/tick-marks.d.ts +1 -0
- package/lib/internal/template/slider/tick-marks.d.ts.map +1 -1
- package/lib/internal/template/slider/tick-marks.js +2 -1
- package/lib/internal/template/slider/tick-marks.js.map +1 -1
- package/lib/internal/template/slider/utils.d.ts +1 -0
- package/lib/internal/template/slider/utils.d.ts.map +1 -1
- package/lib/internal/template/slider/utils.js +1 -0
- package/lib/internal/template/slider/utils.js.map +1 -1
- package/lib/internal/template/tiles/interfaces.d.ts +6 -0
- package/lib/internal/template/tiles/interfaces.d.ts.map +1 -1
- package/lib/internal/template/tiles/interfaces.js.map +1 -1
- package/lib/internal/template/tiles/internal.d.ts.map +1 -1
- package/lib/internal/template/tiles/internal.js +3 -3
- package/lib/internal/template/tiles/internal.js.map +1 -1
- package/lib/internal/template/tiles/styles.css.js +30 -29
- package/lib/internal/template/tiles/styles.scoped.css +75 -70
- package/lib/internal/template/tiles/styles.selectors.js +30 -29
- package/lib/internal/template/tiles/tile.d.ts +1 -0
- package/lib/internal/template/tiles/tile.d.ts.map +1 -1
- package/lib/internal/template/tiles/tile.js +4 -4
- package/lib/internal/template/tiles/tile.js.map +1 -1
- package/lib/internal/template/toggle/internal.d.ts.map +1 -1
- package/lib/internal/template/toggle/internal.js +4 -2
- package/lib/internal/template/toggle/internal.js.map +1 -1
- package/lib/internal/template/toggle/styles.css.js +10 -8
- package/lib/internal/template/toggle/styles.scoped.css +23 -14
- package/lib/internal/template/toggle/styles.selectors.js +10 -8
- package/lib/internal/template/token-group/dismiss-button.d.ts +1 -0
- package/lib/internal/template/token-group/dismiss-button.d.ts.map +1 -1
- package/lib/internal/template/token-group/dismiss-button.js +7 -2
- package/lib/internal/template/token-group/dismiss-button.js.map +1 -1
- package/lib/internal/template/token-group/interfaces.d.ts +5 -0
- package/lib/internal/template/token-group/interfaces.d.ts.map +1 -1
- package/lib/internal/template/token-group/interfaces.js.map +1 -1
- package/lib/internal/template/token-group/internal.d.ts +1 -1
- package/lib/internal/template/token-group/internal.d.ts.map +1 -1
- package/lib/internal/template/token-group/internal.js +2 -2
- package/lib/internal/template/token-group/internal.js.map +1 -1
- package/lib/internal/template/token-group/styles.css.js +10 -9
- package/lib/internal/template/token-group/styles.scoped.css +33 -19
- package/lib/internal/template/token-group/styles.selectors.js +10 -9
- package/lib/internal/template/token-group/token.d.ts +2 -1
- package/lib/internal/template/token-group/token.d.ts.map +1 -1
- package/lib/internal/template/token-group/token.js +3 -3
- package/lib/internal/template/token-group/token.js.map +1 -1
- package/lib/internal/template/top-navigation/1.0-beta/interfaces.d.ts +1 -1
- package/lib/internal/template/top-navigation/1.0-beta/interfaces.js.map +1 -1
- package/lib/internal/template/top-navigation/interfaces.d.ts +1 -1
- package/lib/internal/template/top-navigation/interfaces.js.map +1 -1
- package/package.json +1 -1
|
@@ -130,6 +130,7 @@ export declare interface TypedOverride {
|
|
|
130
130
|
colorBorderStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
131
131
|
colorForegroundControlDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
132
132
|
colorForegroundControlDisabled?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
133
|
+
colorForegroundControlReadOnly?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
133
134
|
colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
134
135
|
colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
135
136
|
colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
@@ -353,6 +354,7 @@ export declare interface TypedOverride {
|
|
|
353
354
|
colorBorderStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
354
355
|
colorForegroundControlDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
355
356
|
colorForegroundControlDisabled?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
357
|
+
colorForegroundControlReadOnly?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
356
358
|
colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
357
359
|
colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
358
360
|
colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
@@ -576,6 +578,7 @@ export declare interface TypedOverride {
|
|
|
576
578
|
colorBorderStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
577
579
|
colorForegroundControlDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
578
580
|
colorForegroundControlDisabled?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
581
|
+
colorForegroundControlReadOnly?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
579
582
|
colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
580
583
|
colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
581
584
|
colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
@@ -799,6 +802,7 @@ export declare interface TypedOverride {
|
|
|
799
802
|
colorBorderStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
800
803
|
colorForegroundControlDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
801
804
|
colorForegroundControlDisabled?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
805
|
+
colorForegroundControlReadOnly?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
802
806
|
colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
803
807
|
colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
804
808
|
colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
@@ -1022,6 +1026,7 @@ export declare interface TypedOverride {
|
|
|
1022
1026
|
colorBorderStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1023
1027
|
colorForegroundControlDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1024
1028
|
colorForegroundControlDisabled?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1029
|
+
colorForegroundControlReadOnly?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1025
1030
|
colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1026
1031
|
colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1027
1032
|
colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
@@ -1245,6 +1250,7 @@ export declare interface TypedOverride {
|
|
|
1245
1250
|
colorBorderStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1246
1251
|
colorForegroundControlDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1247
1252
|
colorForegroundControlDisabled?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1253
|
+
colorForegroundControlReadOnly?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1248
1254
|
colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1249
1255
|
colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1250
1256
|
colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
@@ -1468,6 +1474,7 @@ export declare interface TypedOverride {
|
|
|
1468
1474
|
colorBorderStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1469
1475
|
colorForegroundControlDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1470
1476
|
colorForegroundControlDisabled?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1477
|
+
colorForegroundControlReadOnly?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1471
1478
|
colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1472
1479
|
colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1473
1480
|
colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
@@ -1691,6 +1698,7 @@ export declare interface TypedOverride {
|
|
|
1691
1698
|
colorBorderStatusWarning?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1692
1699
|
colorForegroundControlDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1693
1700
|
colorForegroundControlDisabled?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1701
|
+
colorForegroundControlReadOnly?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1694
1702
|
colorTextAccent?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1695
1703
|
colorTextBodyDefault?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
1696
1704
|
colorTextBodySecondary?: GlobalValue | TypedModeValueOverride<'light' | 'dark'>;
|
|
@@ -1285,6 +1285,10 @@ export var preset = {
|
|
|
1285
1285
|
"light": "{colorWhite}",
|
|
1286
1286
|
"dark": "{colorGrey800}"
|
|
1287
1287
|
},
|
|
1288
|
+
"colorForegroundControlReadOnly": {
|
|
1289
|
+
"light": "{colorGrey550}",
|
|
1290
|
+
"dark": "{colorGrey450}"
|
|
1291
|
+
},
|
|
1288
1292
|
"colorShadowDefault": {
|
|
1289
1293
|
"light": "{colorGreyTransparentHeavy}",
|
|
1290
1294
|
"dark": "{colorGreyTransparentHeavy}"
|
|
@@ -3431,6 +3435,10 @@ export var preset = {
|
|
|
3431
3435
|
"light": "{colorGrey800}",
|
|
3432
3436
|
"dark": "{colorGrey800}"
|
|
3433
3437
|
},
|
|
3438
|
+
"colorForegroundControlReadOnly": {
|
|
3439
|
+
"light": "{colorGrey450}",
|
|
3440
|
+
"dark": "{colorGrey450}"
|
|
3441
|
+
},
|
|
3434
3442
|
"colorShadowDefault": {
|
|
3435
3443
|
"light": "{colorGreyTransparentHeavy}",
|
|
3436
3444
|
"dark": "{colorGreyTransparentHeavy}"
|
|
@@ -4497,6 +4505,10 @@ export var preset = {
|
|
|
4497
4505
|
"light": "{colorGrey800}",
|
|
4498
4506
|
"dark": "{colorGrey800}"
|
|
4499
4507
|
},
|
|
4508
|
+
"colorForegroundControlReadOnly": {
|
|
4509
|
+
"light": "{colorGrey450}",
|
|
4510
|
+
"dark": "{colorGrey450}"
|
|
4511
|
+
},
|
|
4500
4512
|
"colorShadowDefault": {
|
|
4501
4513
|
"light": "{colorGreyTransparentHeavy}",
|
|
4502
4514
|
"dark": "{colorGreyTransparentHeavy}"
|
|
@@ -5495,6 +5507,10 @@ export var preset = {
|
|
|
5495
5507
|
"light": "{colorWhite}",
|
|
5496
5508
|
"dark": "{colorGrey800}"
|
|
5497
5509
|
},
|
|
5510
|
+
"colorForegroundControlReadOnly": {
|
|
5511
|
+
"light": "{colorGrey550}",
|
|
5512
|
+
"dark": "{colorGrey450}"
|
|
5513
|
+
},
|
|
5498
5514
|
"colorShadowDefault": {
|
|
5499
5515
|
"light": "{colorGreyTransparentHeavy}",
|
|
5500
5516
|
"dark": "{colorGreyTransparentHeavy}"
|
|
@@ -6493,6 +6509,10 @@ export var preset = {
|
|
|
6493
6509
|
"light": "{colorWhite}",
|
|
6494
6510
|
"dark": "{colorGrey800}"
|
|
6495
6511
|
},
|
|
6512
|
+
"colorForegroundControlReadOnly": {
|
|
6513
|
+
"light": "{colorGrey550}",
|
|
6514
|
+
"dark": "{colorGrey450}"
|
|
6515
|
+
},
|
|
6496
6516
|
"colorShadowDefault": {
|
|
6497
6517
|
"light": "{colorGreyTransparentHeavy}",
|
|
6498
6518
|
"dark": "{colorGreyTransparentHeavy}"
|
|
@@ -7491,6 +7511,10 @@ export var preset = {
|
|
|
7491
7511
|
"light": "{colorWhite}",
|
|
7492
7512
|
"dark": "{colorGrey800}"
|
|
7493
7513
|
},
|
|
7514
|
+
"colorForegroundControlReadOnly": {
|
|
7515
|
+
"light": "{colorGrey550}",
|
|
7516
|
+
"dark": "{colorGrey450}"
|
|
7517
|
+
},
|
|
7494
7518
|
"colorShadowDefault": {
|
|
7495
7519
|
"light": "{colorGreyTransparentHeavy}",
|
|
7496
7520
|
"dark": "{colorGreyTransparentHeavy}"
|
|
@@ -8491,6 +8515,10 @@ export var preset = {
|
|
|
8491
8515
|
"light": "{colorGrey800}",
|
|
8492
8516
|
"dark": "{colorGrey800}"
|
|
8493
8517
|
},
|
|
8518
|
+
"colorForegroundControlReadOnly": {
|
|
8519
|
+
"light": "{colorGrey450}",
|
|
8520
|
+
"dark": "{colorGrey450}"
|
|
8521
|
+
},
|
|
8494
8522
|
"colorShadowDefault": {
|
|
8495
8523
|
"light": "{colorGreyTransparentHeavy}",
|
|
8496
8524
|
"dark": "{colorGreyTransparentHeavy}"
|
|
@@ -9209,6 +9237,7 @@ export var preset = {
|
|
|
9209
9237
|
"colorBorderTutorial": "color",
|
|
9210
9238
|
"colorForegroundControlDefault": "color",
|
|
9211
9239
|
"colorForegroundControlDisabled": "color",
|
|
9240
|
+
"colorForegroundControlReadOnly": "color",
|
|
9212
9241
|
"colorShadowDefault": "color",
|
|
9213
9242
|
"colorShadowMedium": "color",
|
|
9214
9243
|
"colorShadowSide": "color",
|
|
@@ -9610,6 +9639,7 @@ export var preset = {
|
|
|
9610
9639
|
"colorBorderStatusWarning",
|
|
9611
9640
|
"colorForegroundControlDefault",
|
|
9612
9641
|
"colorForegroundControlDisabled",
|
|
9642
|
+
"colorForegroundControlReadOnly",
|
|
9613
9643
|
"colorTextAccent",
|
|
9614
9644
|
"colorTextBodyDefault",
|
|
9615
9645
|
"colorTextBodySecondary",
|
|
@@ -9928,6 +9958,7 @@ export var preset = {
|
|
|
9928
9958
|
"colorBorderStatusWarning",
|
|
9929
9959
|
"colorForegroundControlDefault",
|
|
9930
9960
|
"colorForegroundControlDisabled",
|
|
9961
|
+
"colorForegroundControlReadOnly",
|
|
9931
9962
|
"colorTextAccent",
|
|
9932
9963
|
"colorTextBodyDefault",
|
|
9933
9964
|
"colorTextBodySecondary",
|
|
@@ -10409,6 +10440,7 @@ export var preset = {
|
|
|
10409
10440
|
"colorBorderTutorial": "color-border-tutorial",
|
|
10410
10441
|
"colorForegroundControlDefault": "color-foreground-control-default",
|
|
10411
10442
|
"colorForegroundControlDisabled": "color-foreground-control-disabled",
|
|
10443
|
+
"colorForegroundControlReadOnly": "color-foreground-control-read-only",
|
|
10412
10444
|
"colorShadowDefault": "color-shadow-default",
|
|
10413
10445
|
"colorShadowMedium": "color-shadow-medium",
|
|
10414
10446
|
"colorShadowSide": "color-shadow-side",
|
|
@@ -11118,6 +11150,7 @@ export var preset = {
|
|
|
11118
11150
|
"colorBorderTutorial": "--color-border-tutorial-kk53ya",
|
|
11119
11151
|
"colorForegroundControlDefault": "--color-foreground-control-default-wq2gpa",
|
|
11120
11152
|
"colorForegroundControlDisabled": "--color-foreground-control-disabled-zmz2k2",
|
|
11153
|
+
"colorForegroundControlReadOnly": "--color-foreground-control-read-only-ibiswj",
|
|
11121
11154
|
"colorShadowDefault": "--color-shadow-default-8jp634",
|
|
11122
11155
|
"colorShadowMedium": "--color-shadow-medium-wuskz4",
|
|
11123
11156
|
"colorShadowSide": "--color-shadow-side-75ahs7",
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { DrawersApiInternal, DrawersApiPublic } from './controllers/drawers';
|
|
2
2
|
import { ActionsApiInternal, ActionsApiPublic } from './controllers/action-buttons';
|
|
3
|
+
import { BreadcrumbsApiInternal } from './controllers/breadcrumbs';
|
|
4
|
+
import { BreadcrumbGroupProps } from '../../breadcrumb-group/interfaces';
|
|
3
5
|
interface AwsuiApi {
|
|
4
6
|
awsuiPlugins: {
|
|
5
7
|
appLayout: DrawersApiPublic;
|
|
@@ -10,6 +12,7 @@ interface AwsuiApi {
|
|
|
10
12
|
appLayout: DrawersApiInternal;
|
|
11
13
|
alert: ActionsApiInternal;
|
|
12
14
|
flashbar: ActionsApiInternal;
|
|
15
|
+
breadcrumbs: BreadcrumbsApiInternal<BreadcrumbGroupProps>;
|
|
13
16
|
};
|
|
14
17
|
}
|
|
15
18
|
export declare function loadApi(): AwsuiApi;
|
|
@@ -21,6 +24,7 @@ export declare const awsuiPlugins: {
|
|
|
21
24
|
appLayout: DrawersApiInternal;
|
|
22
25
|
alert: ActionsApiInternal;
|
|
23
26
|
flashbar: ActionsApiInternal;
|
|
27
|
+
breadcrumbs: BreadcrumbsApiInternal<BreadcrumbGroupProps>;
|
|
24
28
|
};
|
|
25
29
|
export {};
|
|
26
30
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/internal/plugins/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAqB,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAA2B,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/internal/plugins/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAqB,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAA2B,MAAM,8BAA8B,CAAC;AAC7G,OAAO,EAAE,sBAAsB,EAAyB,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,UAAU,QAAQ;IAChB,YAAY,EAAE;QACZ,SAAS,EAAE,gBAAgB,CAAC;QAC5B,KAAK,EAAE,gBAAgB,CAAC;QACxB,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,CAAC;IACF,oBAAoB,EAAE;QACpB,SAAS,EAAE,kBAAkB,CAAC;QAC9B,KAAK,EAAE,kBAAkB,CAAC;QAC1B,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,WAAW,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;KAC3D,CAAC;CACH;AAwBD,wBAAgB,OAAO,aAQtB;AAED,eAAO,MAAQ,YAAY;eA5CZ,gBAAgB;WACpB,gBAAgB;cACb,gBAAgB;GA0CD,oBAAoB;eAvClC,kBAAkB;WACtB,kBAAkB;cACf,kBAAkB;iBACf,uBAAuB,oBAAoB,CAAC;CAoCE,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { DrawersController } from './controllers/drawers';
|
|
4
4
|
import { ActionButtonsController } from './controllers/action-buttons';
|
|
5
|
+
import { BreadcrumbsController } from './controllers/breadcrumbs';
|
|
5
6
|
const storageKey = Symbol.for('awsui-plugin-api');
|
|
6
7
|
function findUpApi(currentWindow) {
|
|
7
8
|
try {
|
|
@@ -42,6 +43,8 @@ function installApi(api) {
|
|
|
42
43
|
const flashbarActions = new ActionButtonsController();
|
|
43
44
|
api.awsuiPlugins.flashbar = flashbarActions.installPublic(api.awsuiPlugins.flashbar);
|
|
44
45
|
api.awsuiPluginsInternal.flashbar = flashbarActions.installInternal(api.awsuiPluginsInternal.flashbar);
|
|
46
|
+
const breadcrumbs = new BreadcrumbsController();
|
|
47
|
+
api.awsuiPluginsInternal.breadcrumbs = breadcrumbs.installInternal(api.awsuiPluginsInternal.breadcrumbs);
|
|
45
48
|
return api;
|
|
46
49
|
}
|
|
47
50
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/internal/plugins/api.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAwC,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAwC,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/internal/plugins/api.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAwC,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAwC,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC7G,OAAO,EAA0B,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAG1F,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAoBlD,SAAS,SAAS,CAAC,aAA4B;IAC7C,IAAI;QACF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,UAAU,CAAC,EAAE;YAC/B,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,aAAa,EAAE;YAC5D,4DAA4D;YAC5D,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,SAAS,CAAC,aAAa,CAAC,MAAuB,CAAC,CAAC;KACzD;IAAC,OAAO,EAAE,EAAE;QACX,0CAA0C;QAC1C,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC;KACvB;IACD,MAAM,GAAG,GAAG,MAAkC,CAAC;IAC/C,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;AAIhE,SAAS,UAAU,CAAC,GAA0B;;IAC5C,MAAA,GAAG,CAAC,YAAY,oCAAhB,GAAG,CAAC,YAAY,GAAK,EAAE,EAAC;IACxB,MAAA,GAAG,CAAC,oBAAoB,oCAAxB,GAAG,CAAC,oBAAoB,GAAK,EAAE,EAAC;IAEhC,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACjD,GAAG,CAAC,YAAY,CAAC,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACxF,GAAG,CAAC,oBAAoB,CAAC,SAAS,GAAG,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAE1G,MAAM,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACnD,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5E,GAAG,CAAC,oBAAoB,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE9F,MAAM,eAAe,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACtD,GAAG,CAAC,YAAY,CAAC,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACrF,GAAG,CAAC,oBAAoB,CAAC,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAEvG,MAAM,WAAW,GAAG,IAAI,qBAAqB,EAAwB,CAAC;IACtE,GAAG,CAAC,oBAAoB,CAAC,WAAW,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEzG,OAAO,GAAe,CAAC;AACzB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { DrawersApiInternal, DrawersApiPublic, DrawersController } from './controllers/drawers';\nimport { ActionsApiInternal, ActionsApiPublic, ActionButtonsController } from './controllers/action-buttons';\nimport { BreadcrumbsApiInternal, BreadcrumbsController } from './controllers/breadcrumbs';\nimport { BreadcrumbGroupProps } from '../../breadcrumb-group/interfaces';\n\nconst storageKey = Symbol.for('awsui-plugin-api');\n\ninterface AwsuiApi {\n awsuiPlugins: {\n appLayout: DrawersApiPublic;\n alert: ActionsApiPublic;\n flashbar: ActionsApiPublic;\n };\n awsuiPluginsInternal: {\n appLayout: DrawersApiInternal;\n alert: ActionsApiInternal;\n flashbar: ActionsApiInternal;\n breadcrumbs: BreadcrumbsApiInternal<BreadcrumbGroupProps>;\n };\n}\n\ninterface WindowWithApi extends Window {\n [storageKey]: AwsuiApi;\n}\n\nfunction findUpApi(currentWindow: WindowWithApi): AwsuiApi | undefined {\n try {\n if (currentWindow?.[storageKey]) {\n return currentWindow[storageKey];\n }\n\n if (!currentWindow || currentWindow.parent === currentWindow) {\n // When the window has no more parents, it references itself\n return undefined;\n }\n\n return findUpApi(currentWindow.parent as WindowWithApi);\n } catch (ex) {\n // Most likely a cross-origin access error\n return undefined;\n }\n}\n\nexport function loadApi() {\n if (typeof window === 'undefined') {\n return installApi({});\n }\n const win = window as unknown as WindowWithApi;\n const existingApi = findUpApi(win);\n win[storageKey] = installApi(existingApi ?? {});\n return win[storageKey];\n}\n\nexport const { awsuiPlugins, awsuiPluginsInternal } = loadApi();\n\ntype DeepPartial<T> = T extends (...args: any) => any ? T : { [P in keyof T]?: DeepPartial<T[P]> };\n\nfunction installApi(api: DeepPartial<AwsuiApi>): AwsuiApi {\n api.awsuiPlugins ??= {};\n api.awsuiPluginsInternal ??= {};\n\n const appLayoutDrawers = new DrawersController();\n api.awsuiPlugins.appLayout = appLayoutDrawers.installPublic(api.awsuiPlugins.appLayout);\n api.awsuiPluginsInternal.appLayout = appLayoutDrawers.installInternal(api.awsuiPluginsInternal.appLayout);\n\n const alertActions = new ActionButtonsController();\n api.awsuiPlugins.alert = alertActions.installPublic(api.awsuiPlugins.alert);\n api.awsuiPluginsInternal.alert = alertActions.installInternal(api.awsuiPluginsInternal.alert);\n\n const flashbarActions = new ActionButtonsController();\n api.awsuiPlugins.flashbar = flashbarActions.installPublic(api.awsuiPlugins.flashbar);\n api.awsuiPluginsInternal.flashbar = flashbarActions.installInternal(api.awsuiPluginsInternal.flashbar);\n\n const breadcrumbs = new BreadcrumbsController<BreadcrumbGroupProps>();\n api.awsuiPluginsInternal.breadcrumbs = breadcrumbs.installInternal(api.awsuiPluginsInternal.breadcrumbs);\n\n return api as AwsuiApi;\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
type ChangeCallback<T> = (props: T | null) => void;
|
|
2
|
+
export interface BreadcrumbsGlobalRegistration<T> {
|
|
3
|
+
update(props: T): void;
|
|
4
|
+
cleanup(): void;
|
|
5
|
+
}
|
|
6
|
+
export interface BreadcrumbsApiInternal<T> {
|
|
7
|
+
registerAppLayout: (changeCallback: ChangeCallback<T>) => (() => void) | void;
|
|
8
|
+
registerBreadcrumbs: (props: T, onRegistered: () => void) => BreadcrumbsGlobalRegistration<T>;
|
|
9
|
+
getStateForTesting: () => {
|
|
10
|
+
appLayoutUpdateCallback: ChangeCallback<T> | null;
|
|
11
|
+
breadcrumbInstances: Array<{
|
|
12
|
+
props: T;
|
|
13
|
+
}>;
|
|
14
|
+
breadcrumbRegistrations: Array<() => void>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare class BreadcrumbsController<T> {
|
|
18
|
+
#private;
|
|
19
|
+
registerAppLayout: (changeCallback: ChangeCallback<T>) => (() => void) | undefined;
|
|
20
|
+
registerBreadcrumbs: (props: T, onRegistered: () => void) => BreadcrumbsGlobalRegistration<T>;
|
|
21
|
+
getStateForTesting: () => {
|
|
22
|
+
appLayoutUpdateCallback: ChangeCallback<T> | null;
|
|
23
|
+
breadcrumbInstances: {
|
|
24
|
+
props: T;
|
|
25
|
+
}[];
|
|
26
|
+
breadcrumbRegistrations: (() => void)[];
|
|
27
|
+
};
|
|
28
|
+
installInternal(internalApi?: Partial<BreadcrumbsApiInternal<T>>): BreadcrumbsApiInternal<T>;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=breadcrumbs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/breadcrumbs.ts"],"names":[],"mappings":"AAIA,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;AAEnD,MAAM,WAAW,6BAA6B,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,iBAAiB,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9E,mBAAmB,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,IAAI,KAAK,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAC9F,kBAAkB,EAAE,MAAM;QACxB,uBAAuB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAClD,mBAAmB,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,CAAC,CAAA;SAAE,CAAC,CAAC;QACzC,uBAAuB,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;KAC5C,CAAC;CACH;AAED,qBAAa,qBAAqB,CAAC,CAAC;;IAoBlC,iBAAiB,mBAAoB,eAAe,CAAC,CAAC,8BASpD;IAEF,mBAAmB,UAAW,CAAC,gBAAgB,MAAM,IAAI,KAAG,8BAA8B,CAAC,CAAC,CAiB1F;IAEF,kBAAkB;;;mBAhDmB,CAAC;;wCACA,IAAI;MAqDxC;IAEF,eAAe,CAAC,WAAW,GAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC;CAOjG"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var _BreadcrumbsController_appLayoutUpdateCallback, _BreadcrumbsController_breadcrumbInstances, _BreadcrumbsController_breadcrumbRegistrations, _BreadcrumbsController_notifyAppLayout, _BreadcrumbsController_notifyBreadcrumbs;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
import debounce from '../../debounce';
|
|
6
|
+
export class BreadcrumbsController {
|
|
7
|
+
constructor() {
|
|
8
|
+
_BreadcrumbsController_appLayoutUpdateCallback.set(this, null);
|
|
9
|
+
_BreadcrumbsController_breadcrumbInstances.set(this, []);
|
|
10
|
+
_BreadcrumbsController_breadcrumbRegistrations.set(this, []);
|
|
11
|
+
_BreadcrumbsController_notifyAppLayout.set(this, debounce(() => {
|
|
12
|
+
var _a;
|
|
13
|
+
if (!__classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f")) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const latestBreadcrumb = __classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbInstances, "f")[__classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbInstances, "f").length - 1];
|
|
17
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f").call(this, (_a = latestBreadcrumb === null || latestBreadcrumb === void 0 ? void 0 : latestBreadcrumb.props) !== null && _a !== void 0 ? _a : null);
|
|
18
|
+
}, 0));
|
|
19
|
+
_BreadcrumbsController_notifyBreadcrumbs.set(this, debounce(() => {
|
|
20
|
+
if (!__classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f")) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbRegistrations, "f").forEach(listener => listener());
|
|
24
|
+
}, 0));
|
|
25
|
+
this.registerAppLayout = (changeCallback) => {
|
|
26
|
+
if (__classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f")) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
__classPrivateFieldSet(this, _BreadcrumbsController_appLayoutUpdateCallback, changeCallback, "f");
|
|
30
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_notifyBreadcrumbs, "f").call(this);
|
|
31
|
+
return () => {
|
|
32
|
+
__classPrivateFieldSet(this, _BreadcrumbsController_appLayoutUpdateCallback, null, "f");
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
this.registerBreadcrumbs = (props, onRegistered) => {
|
|
36
|
+
const instance = { props: props };
|
|
37
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbInstances, "f").push(instance);
|
|
38
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbRegistrations, "f").push(onRegistered);
|
|
39
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_notifyBreadcrumbs, "f").call(this);
|
|
40
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_notifyAppLayout, "f").call(this);
|
|
41
|
+
return {
|
|
42
|
+
update: props => {
|
|
43
|
+
instance.props = props;
|
|
44
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_notifyAppLayout, "f").call(this);
|
|
45
|
+
},
|
|
46
|
+
cleanup: () => {
|
|
47
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbInstances, "f").splice(__classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbInstances, "f").indexOf(instance), 1);
|
|
48
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbRegistrations, "f").splice(__classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbRegistrations, "f").indexOf(onRegistered), 1);
|
|
49
|
+
__classPrivateFieldGet(this, _BreadcrumbsController_notifyAppLayout, "f").call(this);
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
this.getStateForTesting = () => {
|
|
54
|
+
return {
|
|
55
|
+
appLayoutUpdateCallback: __classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f"),
|
|
56
|
+
breadcrumbInstances: __classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbInstances, "f"),
|
|
57
|
+
breadcrumbRegistrations: __classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbRegistrations, "f"),
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
installInternal(internalApi = {}) {
|
|
62
|
+
var _a, _b, _c;
|
|
63
|
+
(_a = internalApi.registerBreadcrumbs) !== null && _a !== void 0 ? _a : (internalApi.registerBreadcrumbs = this.registerBreadcrumbs);
|
|
64
|
+
(_b = internalApi.registerAppLayout) !== null && _b !== void 0 ? _b : (internalApi.registerAppLayout = this.registerAppLayout);
|
|
65
|
+
(_c = internalApi.getStateForTesting) !== null && _c !== void 0 ? _c : (internalApi.getStateForTesting = this.getStateForTesting);
|
|
66
|
+
return internalApi;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
_BreadcrumbsController_appLayoutUpdateCallback = new WeakMap(), _BreadcrumbsController_breadcrumbInstances = new WeakMap(), _BreadcrumbsController_breadcrumbRegistrations = new WeakMap(), _BreadcrumbsController_notifyAppLayout = new WeakMap(), _BreadcrumbsController_notifyBreadcrumbs = new WeakMap();
|
|
70
|
+
//# sourceMappingURL=breadcrumbs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/breadcrumbs.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 debounce from '../../debounce';\n\ntype ChangeCallback<T> = (props: T | null) => void;\n\nexport interface BreadcrumbsGlobalRegistration<T> {\n update(props: T): void;\n cleanup(): void;\n}\n\nexport interface BreadcrumbsApiInternal<T> {\n registerAppLayout: (changeCallback: ChangeCallback<T>) => (() => void) | void;\n registerBreadcrumbs: (props: T, onRegistered: () => void) => BreadcrumbsGlobalRegistration<T>;\n getStateForTesting: () => {\n appLayoutUpdateCallback: ChangeCallback<T> | null;\n breadcrumbInstances: Array<{ props: T }>;\n breadcrumbRegistrations: Array<() => void>;\n };\n}\n\nexport class BreadcrumbsController<T> {\n #appLayoutUpdateCallback: ChangeCallback<T> | null = null;\n #breadcrumbInstances: Array<{ props: T }> = [];\n #breadcrumbRegistrations: Array<() => void> = [];\n\n #notifyAppLayout = debounce(() => {\n if (!this.#appLayoutUpdateCallback) {\n return;\n }\n const latestBreadcrumb = this.#breadcrumbInstances[this.#breadcrumbInstances.length - 1];\n this.#appLayoutUpdateCallback(latestBreadcrumb?.props ?? null);\n }, 0);\n\n #notifyBreadcrumbs = debounce(() => {\n if (!this.#appLayoutUpdateCallback) {\n return;\n }\n this.#breadcrumbRegistrations.forEach(listener => listener());\n }, 0);\n\n registerAppLayout = (changeCallback: ChangeCallback<T>) => {\n if (this.#appLayoutUpdateCallback) {\n return;\n }\n this.#appLayoutUpdateCallback = changeCallback;\n this.#notifyBreadcrumbs();\n return () => {\n this.#appLayoutUpdateCallback = null;\n };\n };\n\n registerBreadcrumbs = (props: T, onRegistered: () => void): BreadcrumbsGlobalRegistration<T> => {\n const instance = { props: props };\n this.#breadcrumbInstances.push(instance);\n this.#breadcrumbRegistrations.push(onRegistered);\n this.#notifyBreadcrumbs();\n this.#notifyAppLayout();\n return {\n update: props => {\n instance.props = props;\n this.#notifyAppLayout();\n },\n cleanup: () => {\n this.#breadcrumbInstances.splice(this.#breadcrumbInstances.indexOf(instance), 1);\n this.#breadcrumbRegistrations.splice(this.#breadcrumbRegistrations.indexOf(onRegistered), 1);\n this.#notifyAppLayout();\n },\n };\n };\n\n getStateForTesting = () => {\n return {\n appLayoutUpdateCallback: this.#appLayoutUpdateCallback,\n breadcrumbInstances: this.#breadcrumbInstances,\n breadcrumbRegistrations: this.#breadcrumbRegistrations,\n };\n };\n\n installInternal(internalApi: Partial<BreadcrumbsApiInternal<T>> = {}): BreadcrumbsApiInternal<T> {\n internalApi.registerBreadcrumbs ??= this.registerBreadcrumbs;\n internalApi.registerAppLayout ??= this.registerAppLayout;\n internalApi.getStateForTesting ??= this.getStateForTesting;\n\n return internalApi as BreadcrumbsApiInternal<T>;\n }\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BreadcrumbGroupProps } from '../../../breadcrumb-group/interfaces';
|
|
2
|
+
export declare function useSetGlobalBreadcrumbs<T extends BreadcrumbGroupProps.Item>(props: BreadcrumbGroupProps<T>): boolean;
|
|
3
|
+
export declare function useGetGlobalBreadcrumbs(): BreadcrumbGroupProps<any> | null;
|
|
4
|
+
//# sourceMappingURL=use-global-breadcrumbs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-global-breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAyB5E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,WAQ1G;AAED,wBAAgB,uBAAuB,qCAUtC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
4
|
+
import { awsuiPluginsInternal } from '../api';
|
|
5
|
+
import { getGlobalFlag } from '../../utils/global-flags';
|
|
6
|
+
function useSetGlobalBreadcrumbsImplementation(props) {
|
|
7
|
+
const registrationRef = useRef();
|
|
8
|
+
const [registered, setRegistered] = useState(false);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const registration = awsuiPluginsInternal.breadcrumbs.registerBreadcrumbs(props, () => setRegistered(true));
|
|
11
|
+
registrationRef.current = registration;
|
|
12
|
+
return () => {
|
|
13
|
+
registration.cleanup();
|
|
14
|
+
};
|
|
15
|
+
// subsequent prop changes are handled by another effect
|
|
16
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
|
+
}, []);
|
|
18
|
+
useLayoutEffect(() => {
|
|
19
|
+
var _a;
|
|
20
|
+
(_a = registrationRef.current) === null || _a === void 0 ? void 0 : _a.update(props);
|
|
21
|
+
});
|
|
22
|
+
return registered;
|
|
23
|
+
}
|
|
24
|
+
export function useSetGlobalBreadcrumbs(props) {
|
|
25
|
+
// avoid additional side effects when this feature is not active
|
|
26
|
+
if (!getGlobalFlag('appLayoutWidget')) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
// getGlobalFlag() value does not change without full page reload
|
|
30
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
31
|
+
return useSetGlobalBreadcrumbsImplementation(props);
|
|
32
|
+
}
|
|
33
|
+
export function useGetGlobalBreadcrumbs() {
|
|
34
|
+
const [discoveredBreadcrumbs, setDiscoveredBreadcrumbs] = useState(null);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
return awsuiPluginsInternal.breadcrumbs.registerAppLayout(breadcrumbs => {
|
|
37
|
+
setDiscoveredBreadcrumbs(breadcrumbs);
|
|
38
|
+
});
|
|
39
|
+
}, []);
|
|
40
|
+
return discoveredBreadcrumbs;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=use-global-breadcrumbs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-global-breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,SAAS,qCAAqC,CAAC,KAAgC;IAC7E,MAAM,eAAe,GAAG,MAAM,EAA8D,CAAC;IAC7F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5G,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;QAEvC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,wDAAwD;QACxD,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAe,CAAC,GAAG,EAAE;;QACnB,MAAA,eAAe,CAAC,OAAO,0CAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAsC,KAA8B;IACzG,gEAAgE;IAChE,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IACD,iEAAiE;IACjE,sDAAsD;IACtD,OAAO,qCAAqC,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAmC,IAAI,CAAC,CAAC;IAE3G,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YACtE,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,qBAAqB,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { awsuiPluginsInternal } from '../api';\nimport { getGlobalFlag } from '../../utils/global-flags';\nimport { BreadcrumbGroupProps } from '../../../breadcrumb-group/interfaces';\nimport { BreadcrumbsGlobalRegistration } from '../controllers/breadcrumbs';\n\nfunction useSetGlobalBreadcrumbsImplementation(props: BreadcrumbGroupProps<any>) {\n const registrationRef = useRef<BreadcrumbsGlobalRegistration<BreadcrumbGroupProps> | null>();\n const [registered, setRegistered] = useState(false);\n\n useEffect(() => {\n const registration = awsuiPluginsInternal.breadcrumbs.registerBreadcrumbs(props, () => setRegistered(true));\n registrationRef.current = registration;\n\n return () => {\n registration.cleanup();\n };\n // subsequent prop changes are handled by another effect\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useLayoutEffect(() => {\n registrationRef.current?.update(props);\n });\n\n return registered;\n}\n\nexport function useSetGlobalBreadcrumbs<T extends BreadcrumbGroupProps.Item>(props: BreadcrumbGroupProps<T>) {\n // avoid additional side effects when this feature is not active\n if (!getGlobalFlag('appLayoutWidget')) {\n return false;\n }\n // getGlobalFlag() value does not change without full page reload\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useSetGlobalBreadcrumbsImplementation(props);\n}\n\nexport function useGetGlobalBreadcrumbs() {\n const [discoveredBreadcrumbs, setDiscoveredBreadcrumbs] = useState<BreadcrumbGroupProps<any> | null>(null);\n\n useEffect(() => {\n return awsuiPluginsInternal.breadcrumbs.registerAppLayout(breadcrumbs => {\n setDiscoveredBreadcrumbs(breadcrumbs);\n });\n }, []);\n\n return discoveredBreadcrumbs;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/multiselect/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AA2B3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAShD,QAAA,MAAM,mBAAmB;;
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/multiselect/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AA2B3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAShD,QAAA,MAAM,mBAAmB;;8CA0UxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -31,7 +31,7 @@ import { useInternalI18n } from '../i18n/context';
|
|
|
31
31
|
import { warnOnce } from '@cloudscape-design/component-toolkit/internal';
|
|
32
32
|
const InternalMultiselect = React.forwardRef((_a, externalRef) => {
|
|
33
33
|
var _b;
|
|
34
|
-
var { options = [], filteringType = 'none', filteringPlaceholder, filteringAriaLabel, filteringClearAriaLabel, filteringResultsText, ariaRequired, placeholder, disabled, ariaLabel, statusType = 'finished', empty, loadingText, finishedText, errorText, noMatch, renderHighlightedAriaLive, selectedOptions = [], deselectAriaLabel, keepOpen = true, tokenLimit, i18nStrings, onBlur, onFocus, onLoadItems, onChange, virtualScroll, inlineTokens = false, hideTokens = false, expandToViewport, tokenLimitShowFewerAriaLabel, tokenLimitShowMoreAriaLabel, __internalRootRef = null, autoFocus } = _a, restProps = __rest(_a, ["options", "filteringType", "filteringPlaceholder", "filteringAriaLabel", "filteringClearAriaLabel", "filteringResultsText", "ariaRequired", "placeholder", "disabled", "ariaLabel", "statusType", "empty", "loadingText", "finishedText", "errorText", "noMatch", "renderHighlightedAriaLive", "selectedOptions", "deselectAriaLabel", "keepOpen", "tokenLimit", "i18nStrings", "onBlur", "onFocus", "onLoadItems", "onChange", "virtualScroll", "inlineTokens", "hideTokens", "expandToViewport", "tokenLimitShowFewerAriaLabel", "tokenLimitShowMoreAriaLabel", "__internalRootRef", "autoFocus"]);
|
|
34
|
+
var { options = [], filteringType = 'none', filteringPlaceholder, filteringAriaLabel, filteringClearAriaLabel, filteringResultsText, ariaRequired, placeholder, disabled, readOnly, ariaLabel, statusType = 'finished', empty, loadingText, finishedText, errorText, noMatch, renderHighlightedAriaLive, selectedOptions = [], deselectAriaLabel, keepOpen = true, tokenLimit, i18nStrings, onBlur, onFocus, onLoadItems, onChange, virtualScroll, inlineTokens = false, hideTokens = false, expandToViewport, tokenLimitShowFewerAriaLabel, tokenLimitShowMoreAriaLabel, __internalRootRef = null, autoFocus } = _a, restProps = __rest(_a, ["options", "filteringType", "filteringPlaceholder", "filteringAriaLabel", "filteringClearAriaLabel", "filteringResultsText", "ariaRequired", "placeholder", "disabled", "readOnly", "ariaLabel", "statusType", "empty", "loadingText", "finishedText", "errorText", "noMatch", "renderHighlightedAriaLive", "selectedOptions", "deselectAriaLabel", "keepOpen", "tokenLimit", "i18nStrings", "onBlur", "onFocus", "onLoadItems", "onChange", "virtualScroll", "inlineTokens", "hideTokens", "expandToViewport", "tokenLimitShowFewerAriaLabel", "tokenLimitShowMoreAriaLabel", "__internalRootRef", "autoFocus"]);
|
|
35
35
|
checkOptionValueField('Multiselect', 'options', options);
|
|
36
36
|
const baseProps = getBaseProps(restProps);
|
|
37
37
|
const formFieldContext = useFormFieldContext(restProps);
|
|
@@ -128,7 +128,7 @@ const InternalMultiselect = React.forwardRef((_a, externalRef) => {
|
|
|
128
128
|
hasRecoveryCallback: !!onLoadItems,
|
|
129
129
|
});
|
|
130
130
|
const filter = (React.createElement(Filter, Object.assign({ clearAriaLabel: filteringClearAriaLabel, filteringType: filteringType, placeholder: filteringPlaceholder, ariaLabel: filteringAriaLabel, ariaRequired: ariaRequired, value: filteringValue }, getFilterProps())));
|
|
131
|
-
const trigger = (React.createElement(Trigger, Object.assign({ placeholder: placeholder, disabled: disabled, triggerProps: getTriggerProps(disabled, autoFocus), selectedOption: null, selectedOptions: selectedOptions, triggerVariant: inlineTokens ? 'tokens' : 'placeholder', isOpen: isOpen }, formFieldContext, { controlId: controlId, ariaLabelledby: joinStrings(formFieldContext.ariaLabelledby, multiSelectAriaLabelId) })));
|
|
131
|
+
const trigger = (React.createElement(Trigger, Object.assign({ placeholder: placeholder, disabled: disabled, readOnly: readOnly, triggerProps: getTriggerProps(disabled, autoFocus), selectedOption: null, selectedOptions: selectedOptions, triggerVariant: inlineTokens ? 'tokens' : 'placeholder', isOpen: isOpen }, formFieldContext, { controlId: controlId, ariaLabelledby: joinStrings(formFieldContext.ariaLabelledby, multiSelectAriaLabelId) })));
|
|
132
132
|
const menuProps = Object.assign(Object.assign({}, getMenuProps()), { onLoadMore: handleLoadMore, ariaLabelledby: joinStrings(multiSelectAriaLabelId, controlId), ariaDescribedby: dropdownStatus.content ? footerId : undefined });
|
|
133
133
|
const announcement = useAnnouncement({
|
|
134
134
|
announceSelected,
|
|
@@ -179,7 +179,7 @@ const InternalMultiselect = React.forwardRef((_a, externalRef) => {
|
|
|
179
179
|
return (React.createElement("div", Object.assign({}, baseProps, { ref: mergedRef, className: clsx(styles.root, baseProps.className), onKeyPress: handleNativeSearch }),
|
|
180
180
|
React.createElement(Dropdown, Object.assign({}, dropdownProps, { ariaLabelledby: dropdownProps.dropdownContentRole ? joinStrings(multiSelectAriaLabelId, controlId) : undefined, ariaDescribedby: dropdownProps.dropdownContentRole ? (dropdownStatus.content ? footerId : undefined) : undefined, open: isOpen, trigger: trigger, header: filter, onMouseDown: handleMouseDown, footer: dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: isOpen ? dropdownStatus.content : null, id: footerId })) : null, expandToViewport: expandToViewport, stretchBeyondTriggerWidth: true }),
|
|
181
181
|
React.createElement(ListComponent, { listBottom: !dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: isOpen ? dropdownStatus.content : null, id: footerId })) : null, menuProps: menuProps, getOptionProps: getOptionProps, filteredOptions: filteredOptions, filteringValue: filteringValue, ref: scrollToIndex, hasDropdownStatus: dropdownStatus.content !== null, checkboxes: true, useInteractiveGroups: useInteractiveGroups, screenReaderContent: announcement, highlightType: highlightType })),
|
|
182
|
-
showTokens && (React.createElement(InternalTokenGroup, { className: styles.tokens, alignment: "horizontal", limit: tokenLimit, items: tokens, onDismiss: handleTokenDismiss, i18nStrings: tokenGroupI18nStrings, limitShowMoreAriaLabel: tokenLimitShowMoreAriaLabel, limitShowFewerAriaLabel: tokenLimitShowFewerAriaLabel, disableOuterPadding: true })),
|
|
182
|
+
showTokens && (React.createElement(InternalTokenGroup, { className: styles.tokens, alignment: "horizontal", limit: tokenLimit, items: tokens, onDismiss: handleTokenDismiss, i18nStrings: tokenGroupI18nStrings, limitShowMoreAriaLabel: tokenLimitShowMoreAriaLabel, limitShowFewerAriaLabel: tokenLimitShowFewerAriaLabel, disableOuterPadding: true, readOnly: readOnly })),
|
|
183
183
|
React.createElement(ScreenreaderOnly, { id: multiSelectAriaLabelId }, ariaLabel)));
|
|
184
184
|
});
|
|
185
185
|
export default InternalMultiselect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/multiselect/internal.tsx"],"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 React, { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component/index.js';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { isGroup } from '../internal/components/option/utils/filter-options';\n\nimport DropdownFooter from '../internal/components/dropdown-footer/index.js';\nimport { prepareOptions } from '../internal/components/option/utils/prepare-options';\nimport { OptionDefinition, OptionGroup } from '../internal/components/option/interfaces';\nimport Dropdown from '../internal/components/dropdown';\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\n\nimport { useSelect, MenuProps } from '../select/utils/use-select';\nimport { useNativeSearch } from '../select/utils/use-native-search';\nimport { useLoadItems } from '../select/utils/use-load-items';\nimport { useAnnouncement } from '../select/utils/use-announcement';\nimport { findOptionIndex } from '../select/utils/connect-options';\nimport PlainList, { SelectListProps } from '../select/parts/plain-list';\nimport VirtualList from '../select/parts/virtual-list';\nimport { checkOptionValueField } from '../select/utils/check-option-value-field.js';\nimport Filter from '../select/parts/filter';\nimport Trigger from '../select/parts/trigger';\n\nimport InternalTokenGroup from '../token-group/internal';\nimport { TokenGroupProps } from '../token-group/interfaces';\n\nimport { MultiselectProps } from './interfaces';\nimport styles from './styles.css.js';\nimport ScreenreaderOnly from '../internal/components/screenreader-only';\nimport { joinStrings } from '../internal/utils/strings';\nimport { useInternalI18n } from '../i18n/context';\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\ntype InternalMultiselectProps = MultiselectProps & InternalBaseComponentProps & { inlineTokens?: boolean };\n\nconst InternalMultiselect = React.forwardRef(\n (\n {\n options = [],\n filteringType = 'none',\n filteringPlaceholder,\n filteringAriaLabel,\n filteringClearAriaLabel,\n filteringResultsText,\n ariaRequired,\n placeholder,\n disabled,\n ariaLabel,\n statusType = 'finished',\n empty,\n loadingText,\n finishedText,\n errorText,\n noMatch,\n renderHighlightedAriaLive,\n selectedOptions = [],\n deselectAriaLabel,\n keepOpen = true,\n tokenLimit,\n i18nStrings,\n onBlur,\n onFocus,\n onLoadItems,\n onChange,\n virtualScroll,\n inlineTokens = false,\n hideTokens = false,\n expandToViewport,\n tokenLimitShowFewerAriaLabel,\n tokenLimitShowMoreAriaLabel,\n __internalRootRef = null,\n autoFocus,\n ...restProps\n }: InternalMultiselectProps,\n externalRef: React.Ref<MultiselectProps.Ref>\n ) => {\n checkOptionValueField('Multiselect', 'options', options);\n\n const baseProps = getBaseProps(restProps);\n const formFieldContext = useFormFieldContext(restProps);\n const i18n = useInternalI18n('multiselect');\n\n const i18nCommon = useInternalI18n('select');\n const recoveryText = i18nCommon('recoveryText', restProps.recoveryText);\n const errorIconAriaLabel = i18nCommon('errorIconAriaLabel', restProps.errorIconAriaLabel);\n const selectedAriaLabel = i18nCommon('selectedAriaLabel', restProps.selectedAriaLabel);\n\n if (restProps.recoveryText && !onLoadItems) {\n warnOnce('Multiselect', '`onLoadItems` must be provided for `recoveryText` to be displayed.');\n }\n\n const { handleLoadMore, handleRecoveryClick, fireLoadItems } = useLoadItems({\n onLoadItems,\n options,\n statusType,\n });\n const useInteractiveGroups = true;\n const [filteringValue, setFilteringValue] = useState('');\n const { filteredOptions, parentMap, totalCount, matchesCount } = prepareOptions(\n options,\n filteringType,\n filteringValue\n );\n\n const updateSelectedOption = useCallback(\n (option: OptionDefinition | OptionGroup) => {\n const filtered = filteredOptions.filter(item => item.type !== 'parent').map(item => item.option);\n\n // switch between selection and deselection behavior, ignores disabled options to prevent\n // getting stuck on one behavior when an option is disabled and its state cannot be changed\n const isAllChildrenSelected = (optionsArray: OptionDefinition[]) =>\n optionsArray.every(item => findOptionIndex(selectedOptions, item) > -1 || item.disabled);\n const intersection = (visibleOptions: OptionDefinition[], options: OptionDefinition[]) =>\n visibleOptions.filter(item => findOptionIndex(options, item) > -1 && !item.disabled);\n const union = (visibleOptions: OptionDefinition[], options: OptionDefinition[]) =>\n visibleOptions.filter(item => findOptionIndex(options, item) === -1).concat(options);\n const select = (options: OptionDefinition[], selectedOptions: OptionDefinition[]) => {\n return union(selectedOptions, options);\n };\n const unselect = (options: OptionDefinition[], selectedOptions: OptionDefinition[]) => {\n return selectedOptions.filter(option => findOptionIndex(options, option) === -1);\n };\n let newSelectedOptions = [...selectedOptions];\n\n if (isGroup(option)) {\n const visibleOptions = intersection([...option.options], filtered);\n newSelectedOptions = isAllChildrenSelected(visibleOptions)\n ? unselect(visibleOptions, newSelectedOptions)\n : select(visibleOptions, newSelectedOptions);\n } else {\n newSelectedOptions = isAllChildrenSelected([option])\n ? unselect([option], newSelectedOptions)\n : select([option], newSelectedOptions);\n }\n\n fireNonCancelableEvent(onChange, {\n selectedOptions: newSelectedOptions,\n });\n },\n [onChange, selectedOptions, filteredOptions]\n );\n\n const rootRef = useRef<HTMLDivElement>(null);\n\n const selfControlId = useUniqueId('trigger');\n const controlId = formFieldContext.controlId ?? selfControlId;\n\n const multiSelectAriaLabelId = useUniqueId('multiselect-arialabel-');\n\n const footerId = useUniqueId('footer');\n\n const scrollToIndex = useRef<SelectListProps.SelectListRef>(null);\n const {\n isOpen,\n highlightType,\n highlightedOption,\n highlightedIndex,\n getTriggerProps,\n getDropdownProps,\n getFilterProps,\n getMenuProps,\n getOptionProps,\n highlightOption,\n announceSelected,\n } = useSelect({\n selectedOptions,\n updateSelectedOption,\n options: filteredOptions,\n filteringType,\n onFocus,\n onBlur,\n externalRef,\n keepOpen,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups,\n statusType,\n });\n\n const handleNativeSearch = useNativeSearch({\n isEnabled: filteringType === 'none' && isOpen,\n options: filteredOptions,\n highlightOption: highlightOption,\n highlightedOption: highlightedOption?.option,\n useInteractiveGroups,\n });\n\n const isEmpty = !options || options.length === 0;\n const isNoMatch = filteredOptions && filteredOptions.length === 0;\n const isFiltered =\n filteringType !== 'none' && filteringValue.length > 0 && filteredOptions && filteredOptions.length > 0;\n const filteredText = isFiltered ? filteringResultsText?.(matchesCount, totalCount) : undefined;\n const dropdownStatus = useDropdownStatus({\n statusType,\n empty,\n loadingText,\n finishedText,\n errorText,\n recoveryText,\n isEmpty,\n isNoMatch,\n noMatch,\n isFiltered,\n filteringResultsText: filteredText,\n onRecoveryClick: handleRecoveryClick,\n errorIconAriaLabel: errorIconAriaLabel,\n hasRecoveryCallback: !!onLoadItems,\n });\n\n const filter = (\n <Filter\n clearAriaLabel={filteringClearAriaLabel}\n filteringType={filteringType}\n placeholder={filteringPlaceholder}\n ariaLabel={filteringAriaLabel}\n ariaRequired={ariaRequired}\n value={filteringValue}\n {...getFilterProps()}\n />\n );\n\n const trigger = (\n <Trigger\n placeholder={placeholder}\n disabled={disabled}\n triggerProps={getTriggerProps(disabled, autoFocus)}\n selectedOption={null}\n selectedOptions={selectedOptions}\n triggerVariant={inlineTokens ? 'tokens' : 'placeholder'}\n isOpen={isOpen}\n {...formFieldContext}\n controlId={controlId}\n ariaLabelledby={joinStrings(formFieldContext.ariaLabelledby, multiSelectAriaLabelId)}\n />\n );\n\n const menuProps: MenuProps = {\n ...getMenuProps(),\n onLoadMore: handleLoadMore,\n ariaLabelledby: joinStrings(multiSelectAriaLabelId, controlId),\n ariaDescribedby: dropdownStatus.content ? footerId : undefined,\n };\n\n const announcement = useAnnouncement({\n announceSelected,\n highlightedOption,\n getParent: option => parentMap.get(option)?.option as undefined | OptionGroup,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n });\n\n const tokens: TokenGroupProps['items'] = selectedOptions.map(option => ({\n label: option.label,\n disabled: disabled || option.disabled,\n labelTag: option.labelTag,\n description: option.description,\n iconAlt: option.iconAlt,\n iconName: option.iconName,\n iconUrl: option.iconUrl,\n iconSvg: option.iconSvg,\n tags: option.tags,\n dismissLabel: i18n('deselectAriaLabel', deselectAriaLabel?.(option), format =>\n format({ option__label: option.label ?? '' })\n ),\n }));\n\n useEffect(() => {\n scrollToIndex.current?.(highlightedIndex);\n }, [highlightedIndex]);\n\n const ListComponent = virtualScroll ? VirtualList : PlainList;\n\n const handleMouseDown = (event: React.MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (target !== document.activeElement) {\n // prevent currently focused element from losing it\n event.preventDefault();\n }\n };\n\n const showTokens = !hideTokens && !inlineTokens && tokens.length > 0;\n const handleTokenDismiss: TokenGroupProps['onDismiss'] = ({ detail }) => {\n const optionToDeselect = selectedOptions[detail.itemIndex];\n updateSelectedOption(optionToDeselect);\n const targetRef = getTriggerProps().ref;\n if (targetRef.current) {\n targetRef.current.focus();\n }\n };\n\n const tokenGroupI18nStrings: TokenGroupProps.I18nStrings = {\n limitShowFewer: i18nStrings?.tokenLimitShowFewer,\n limitShowMore: i18nStrings?.tokenLimitShowMore,\n };\n\n const mergedRef = useMergeRefs(rootRef, __internalRootRef);\n\n const dropdownProps = getDropdownProps();\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(styles.root, baseProps.className)}\n onKeyPress={handleNativeSearch}\n >\n <Dropdown\n {...dropdownProps}\n ariaLabelledby={\n dropdownProps.dropdownContentRole ? joinStrings(multiSelectAriaLabelId, controlId) : undefined\n }\n ariaDescribedby={\n dropdownProps.dropdownContentRole ? (dropdownStatus.content ? footerId : undefined) : undefined\n }\n open={isOpen}\n trigger={trigger}\n header={filter}\n onMouseDown={handleMouseDown}\n footer={\n dropdownStatus.isSticky ? (\n <DropdownFooter content={isOpen ? dropdownStatus.content : null} id={footerId} />\n ) : null\n }\n expandToViewport={expandToViewport}\n stretchBeyondTriggerWidth={true}\n >\n <ListComponent\n listBottom={\n !dropdownStatus.isSticky ? (\n <DropdownFooter content={isOpen ? dropdownStatus.content : null} id={footerId} />\n ) : null\n }\n menuProps={menuProps}\n getOptionProps={getOptionProps}\n filteredOptions={filteredOptions}\n filteringValue={filteringValue}\n ref={scrollToIndex}\n hasDropdownStatus={dropdownStatus.content !== null}\n checkboxes={true}\n useInteractiveGroups={useInteractiveGroups}\n screenReaderContent={announcement}\n highlightType={highlightType}\n />\n </Dropdown>\n {showTokens && (\n <InternalTokenGroup\n className={styles.tokens}\n alignment=\"horizontal\"\n limit={tokenLimit}\n items={tokens}\n onDismiss={handleTokenDismiss}\n i18nStrings={tokenGroupI18nStrings}\n limitShowMoreAriaLabel={tokenLimitShowMoreAriaLabel}\n limitShowFewerAriaLabel={tokenLimitShowFewerAriaLabel}\n disableOuterPadding={true}\n />\n )}\n <ScreenreaderOnly id={multiSelectAriaLabelId}>{ariaLabel}</ScreenreaderOnly>\n </div>\n );\n }\n);\n\nexport default InternalMultiselect;\n"]}
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/multiselect/internal.tsx"],"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 React, { useCallback, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component/index.js';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { isGroup } from '../internal/components/option/utils/filter-options';\n\nimport DropdownFooter from '../internal/components/dropdown-footer/index.js';\nimport { prepareOptions } from '../internal/components/option/utils/prepare-options';\nimport { OptionDefinition, OptionGroup } from '../internal/components/option/interfaces';\nimport Dropdown from '../internal/components/dropdown';\nimport { useDropdownStatus } from '../internal/components/dropdown-status';\n\nimport { useSelect, MenuProps } from '../select/utils/use-select';\nimport { useNativeSearch } from '../select/utils/use-native-search';\nimport { useLoadItems } from '../select/utils/use-load-items';\nimport { useAnnouncement } from '../select/utils/use-announcement';\nimport { findOptionIndex } from '../select/utils/connect-options';\nimport PlainList, { SelectListProps } from '../select/parts/plain-list';\nimport VirtualList from '../select/parts/virtual-list';\nimport { checkOptionValueField } from '../select/utils/check-option-value-field.js';\nimport Filter from '../select/parts/filter';\nimport Trigger from '../select/parts/trigger';\n\nimport InternalTokenGroup from '../token-group/internal';\nimport { TokenGroupProps } from '../token-group/interfaces';\n\nimport { MultiselectProps } from './interfaces';\nimport styles from './styles.css.js';\nimport ScreenreaderOnly from '../internal/components/screenreader-only';\nimport { joinStrings } from '../internal/utils/strings';\nimport { useInternalI18n } from '../i18n/context';\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\ntype InternalMultiselectProps = MultiselectProps & InternalBaseComponentProps & { inlineTokens?: boolean };\n\nconst InternalMultiselect = React.forwardRef(\n (\n {\n options = [],\n filteringType = 'none',\n filteringPlaceholder,\n filteringAriaLabel,\n filteringClearAriaLabel,\n filteringResultsText,\n ariaRequired,\n placeholder,\n disabled,\n readOnly,\n ariaLabel,\n statusType = 'finished',\n empty,\n loadingText,\n finishedText,\n errorText,\n noMatch,\n renderHighlightedAriaLive,\n selectedOptions = [],\n deselectAriaLabel,\n keepOpen = true,\n tokenLimit,\n i18nStrings,\n onBlur,\n onFocus,\n onLoadItems,\n onChange,\n virtualScroll,\n inlineTokens = false,\n hideTokens = false,\n expandToViewport,\n tokenLimitShowFewerAriaLabel,\n tokenLimitShowMoreAriaLabel,\n __internalRootRef = null,\n autoFocus,\n ...restProps\n }: InternalMultiselectProps,\n externalRef: React.Ref<MultiselectProps.Ref>\n ) => {\n checkOptionValueField('Multiselect', 'options', options);\n\n const baseProps = getBaseProps(restProps);\n const formFieldContext = useFormFieldContext(restProps);\n const i18n = useInternalI18n('multiselect');\n\n const i18nCommon = useInternalI18n('select');\n const recoveryText = i18nCommon('recoveryText', restProps.recoveryText);\n const errorIconAriaLabel = i18nCommon('errorIconAriaLabel', restProps.errorIconAriaLabel);\n const selectedAriaLabel = i18nCommon('selectedAriaLabel', restProps.selectedAriaLabel);\n\n if (restProps.recoveryText && !onLoadItems) {\n warnOnce('Multiselect', '`onLoadItems` must be provided for `recoveryText` to be displayed.');\n }\n\n const { handleLoadMore, handleRecoveryClick, fireLoadItems } = useLoadItems({\n onLoadItems,\n options,\n statusType,\n });\n const useInteractiveGroups = true;\n const [filteringValue, setFilteringValue] = useState('');\n const { filteredOptions, parentMap, totalCount, matchesCount } = prepareOptions(\n options,\n filteringType,\n filteringValue\n );\n\n const updateSelectedOption = useCallback(\n (option: OptionDefinition | OptionGroup) => {\n const filtered = filteredOptions.filter(item => item.type !== 'parent').map(item => item.option);\n\n // switch between selection and deselection behavior, ignores disabled options to prevent\n // getting stuck on one behavior when an option is disabled and its state cannot be changed\n const isAllChildrenSelected = (optionsArray: OptionDefinition[]) =>\n optionsArray.every(item => findOptionIndex(selectedOptions, item) > -1 || item.disabled);\n const intersection = (visibleOptions: OptionDefinition[], options: OptionDefinition[]) =>\n visibleOptions.filter(item => findOptionIndex(options, item) > -1 && !item.disabled);\n const union = (visibleOptions: OptionDefinition[], options: OptionDefinition[]) =>\n visibleOptions.filter(item => findOptionIndex(options, item) === -1).concat(options);\n const select = (options: OptionDefinition[], selectedOptions: OptionDefinition[]) => {\n return union(selectedOptions, options);\n };\n const unselect = (options: OptionDefinition[], selectedOptions: OptionDefinition[]) => {\n return selectedOptions.filter(option => findOptionIndex(options, option) === -1);\n };\n let newSelectedOptions = [...selectedOptions];\n\n if (isGroup(option)) {\n const visibleOptions = intersection([...option.options], filtered);\n newSelectedOptions = isAllChildrenSelected(visibleOptions)\n ? unselect(visibleOptions, newSelectedOptions)\n : select(visibleOptions, newSelectedOptions);\n } else {\n newSelectedOptions = isAllChildrenSelected([option])\n ? unselect([option], newSelectedOptions)\n : select([option], newSelectedOptions);\n }\n\n fireNonCancelableEvent(onChange, {\n selectedOptions: newSelectedOptions,\n });\n },\n [onChange, selectedOptions, filteredOptions]\n );\n\n const rootRef = useRef<HTMLDivElement>(null);\n\n const selfControlId = useUniqueId('trigger');\n const controlId = formFieldContext.controlId ?? selfControlId;\n\n const multiSelectAriaLabelId = useUniqueId('multiselect-arialabel-');\n\n const footerId = useUniqueId('footer');\n\n const scrollToIndex = useRef<SelectListProps.SelectListRef>(null);\n const {\n isOpen,\n highlightType,\n highlightedOption,\n highlightedIndex,\n getTriggerProps,\n getDropdownProps,\n getFilterProps,\n getMenuProps,\n getOptionProps,\n highlightOption,\n announceSelected,\n } = useSelect({\n selectedOptions,\n updateSelectedOption,\n options: filteredOptions,\n filteringType,\n onFocus,\n onBlur,\n externalRef,\n keepOpen,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups,\n statusType,\n });\n\n const handleNativeSearch = useNativeSearch({\n isEnabled: filteringType === 'none' && isOpen,\n options: filteredOptions,\n highlightOption: highlightOption,\n highlightedOption: highlightedOption?.option,\n useInteractiveGroups,\n });\n\n const isEmpty = !options || options.length === 0;\n const isNoMatch = filteredOptions && filteredOptions.length === 0;\n const isFiltered =\n filteringType !== 'none' && filteringValue.length > 0 && filteredOptions && filteredOptions.length > 0;\n const filteredText = isFiltered ? filteringResultsText?.(matchesCount, totalCount) : undefined;\n const dropdownStatus = useDropdownStatus({\n statusType,\n empty,\n loadingText,\n finishedText,\n errorText,\n recoveryText,\n isEmpty,\n isNoMatch,\n noMatch,\n isFiltered,\n filteringResultsText: filteredText,\n onRecoveryClick: handleRecoveryClick,\n errorIconAriaLabel: errorIconAriaLabel,\n hasRecoveryCallback: !!onLoadItems,\n });\n\n const filter = (\n <Filter\n clearAriaLabel={filteringClearAriaLabel}\n filteringType={filteringType}\n placeholder={filteringPlaceholder}\n ariaLabel={filteringAriaLabel}\n ariaRequired={ariaRequired}\n value={filteringValue}\n {...getFilterProps()}\n />\n );\n\n const trigger = (\n <Trigger\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n triggerProps={getTriggerProps(disabled, autoFocus)}\n selectedOption={null}\n selectedOptions={selectedOptions}\n triggerVariant={inlineTokens ? 'tokens' : 'placeholder'}\n isOpen={isOpen}\n {...formFieldContext}\n controlId={controlId}\n ariaLabelledby={joinStrings(formFieldContext.ariaLabelledby, multiSelectAriaLabelId)}\n />\n );\n\n const menuProps: MenuProps = {\n ...getMenuProps(),\n onLoadMore: handleLoadMore,\n ariaLabelledby: joinStrings(multiSelectAriaLabelId, controlId),\n ariaDescribedby: dropdownStatus.content ? footerId : undefined,\n };\n\n const announcement = useAnnouncement({\n announceSelected,\n highlightedOption,\n getParent: option => parentMap.get(option)?.option as undefined | OptionGroup,\n selectedAriaLabel,\n renderHighlightedAriaLive,\n });\n\n const tokens: TokenGroupProps['items'] = selectedOptions.map(option => ({\n label: option.label,\n disabled: disabled || option.disabled,\n labelTag: option.labelTag,\n description: option.description,\n iconAlt: option.iconAlt,\n iconName: option.iconName,\n iconUrl: option.iconUrl,\n iconSvg: option.iconSvg,\n tags: option.tags,\n dismissLabel: i18n('deselectAriaLabel', deselectAriaLabel?.(option), format =>\n format({ option__label: option.label ?? '' })\n ),\n }));\n\n useEffect(() => {\n scrollToIndex.current?.(highlightedIndex);\n }, [highlightedIndex]);\n\n const ListComponent = virtualScroll ? VirtualList : PlainList;\n\n const handleMouseDown = (event: React.MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (target !== document.activeElement) {\n // prevent currently focused element from losing it\n event.preventDefault();\n }\n };\n\n const showTokens = !hideTokens && !inlineTokens && tokens.length > 0;\n const handleTokenDismiss: TokenGroupProps['onDismiss'] = ({ detail }) => {\n const optionToDeselect = selectedOptions[detail.itemIndex];\n updateSelectedOption(optionToDeselect);\n const targetRef = getTriggerProps().ref;\n if (targetRef.current) {\n targetRef.current.focus();\n }\n };\n\n const tokenGroupI18nStrings: TokenGroupProps.I18nStrings = {\n limitShowFewer: i18nStrings?.tokenLimitShowFewer,\n limitShowMore: i18nStrings?.tokenLimitShowMore,\n };\n\n const mergedRef = useMergeRefs(rootRef, __internalRootRef);\n\n const dropdownProps = getDropdownProps();\n\n return (\n <div\n {...baseProps}\n ref={mergedRef}\n className={clsx(styles.root, baseProps.className)}\n onKeyPress={handleNativeSearch}\n >\n <Dropdown\n {...dropdownProps}\n ariaLabelledby={\n dropdownProps.dropdownContentRole ? joinStrings(multiSelectAriaLabelId, controlId) : undefined\n }\n ariaDescribedby={\n dropdownProps.dropdownContentRole ? (dropdownStatus.content ? footerId : undefined) : undefined\n }\n open={isOpen}\n trigger={trigger}\n header={filter}\n onMouseDown={handleMouseDown}\n footer={\n dropdownStatus.isSticky ? (\n <DropdownFooter content={isOpen ? dropdownStatus.content : null} id={footerId} />\n ) : null\n }\n expandToViewport={expandToViewport}\n stretchBeyondTriggerWidth={true}\n >\n <ListComponent\n listBottom={\n !dropdownStatus.isSticky ? (\n <DropdownFooter content={isOpen ? dropdownStatus.content : null} id={footerId} />\n ) : null\n }\n menuProps={menuProps}\n getOptionProps={getOptionProps}\n filteredOptions={filteredOptions}\n filteringValue={filteringValue}\n ref={scrollToIndex}\n hasDropdownStatus={dropdownStatus.content !== null}\n checkboxes={true}\n useInteractiveGroups={useInteractiveGroups}\n screenReaderContent={announcement}\n highlightType={highlightType}\n />\n </Dropdown>\n {showTokens && (\n <InternalTokenGroup\n className={styles.tokens}\n alignment=\"horizontal\"\n limit={tokenLimit}\n items={tokens}\n onDismiss={handleTokenDismiss}\n i18nStrings={tokenGroupI18nStrings}\n limitShowMoreAriaLabel={tokenLimitShowMoreAriaLabel}\n limitShowFewerAriaLabel={tokenLimitShowFewerAriaLabel}\n disableOuterPadding={true}\n readOnly={readOnly}\n />\n )}\n <ScreenreaderOnly id={multiSelectAriaLabelId}>{ariaLabel}</ScreenreaderOnly>\n </div>\n );\n }\n);\n\nexport default InternalMultiselect;\n"]}
|
|
@@ -45,6 +45,12 @@ export interface RadioGroupProps extends BaseComponentProps, FormFieldControlPro
|
|
|
45
45
|
* @deprecated Has no effect.
|
|
46
46
|
*/
|
|
47
47
|
controlId?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Specifies if the whole group is read-only, which prevents the
|
|
50
|
+
* user from modifying the value, but does not prevent the value from
|
|
51
|
+
* being included in a form submission. A read-only control is still focusable.
|
|
52
|
+
*/
|
|
53
|
+
readOnly?: boolean;
|
|
48
54
|
}
|
|
49
55
|
export declare namespace RadioGroupProps {
|
|
50
56
|
interface RadioButtonDefinition {
|