@cloudscape-design/components 3.0.738 → 3.0.740

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/autosuggest/autosuggest-option.d.ts.map +1 -1
  2. package/autosuggest/autosuggest-option.js +1 -1
  3. package/autosuggest/autosuggest-option.js.map +1 -1
  4. package/autosuggest/options-controller.d.ts.map +1 -1
  5. package/autosuggest/options-controller.js.map +1 -1
  6. package/button-dropdown/interfaces.d.ts +5 -0
  7. package/button-dropdown/interfaces.d.ts.map +1 -1
  8. package/button-dropdown/interfaces.js.map +1 -1
  9. package/button-dropdown/internal.d.ts.map +1 -1
  10. package/button-dropdown/internal.js +4 -4
  11. package/button-dropdown/internal.js.map +1 -1
  12. package/expandable-section/expandable-section-header.d.ts.map +1 -1
  13. package/expandable-section/expandable-section-header.js +6 -3
  14. package/expandable-section/expandable-section-header.js.map +1 -1
  15. package/expandable-section/interfaces.d.ts +2 -1
  16. package/expandable-section/interfaces.d.ts.map +1 -1
  17. package/expandable-section/interfaces.js.map +1 -1
  18. package/expandable-section/styles.css.js +34 -32
  19. package/expandable-section/styles.scoped.css +68 -67
  20. package/expandable-section/styles.selectors.js +34 -32
  21. package/expandable-section/utils.d.ts +1 -0
  22. package/expandable-section/utils.d.ts.map +1 -1
  23. package/expandable-section/utils.js +7 -3
  24. package/expandable-section/utils.js.map +1 -1
  25. package/i18n/messages/all.all.js +1 -1
  26. package/i18n/messages/all.all.json +1 -1
  27. package/i18n/messages/all.ar.js +1 -1
  28. package/i18n/messages/all.ar.json +1 -1
  29. package/i18n/messages/all.de.js +1 -1
  30. package/i18n/messages/all.de.json +1 -1
  31. package/i18n/messages/all.en-GB.js +1 -1
  32. package/i18n/messages/all.en-GB.json +1 -1
  33. package/i18n/messages/all.es.js +1 -1
  34. package/i18n/messages/all.es.json +1 -1
  35. package/i18n/messages/all.fr.js +1 -1
  36. package/i18n/messages/all.fr.json +1 -1
  37. package/i18n/messages/all.id.js +1 -1
  38. package/i18n/messages/all.id.json +1 -1
  39. package/i18n/messages/all.it.js +1 -1
  40. package/i18n/messages/all.it.json +1 -1
  41. package/i18n/messages/all.ja.js +1 -1
  42. package/i18n/messages/all.ja.json +1 -1
  43. package/i18n/messages/all.ko.js +1 -1
  44. package/i18n/messages/all.ko.json +1 -1
  45. package/i18n/messages/all.pt-BR.js +1 -1
  46. package/i18n/messages/all.pt-BR.json +1 -1
  47. package/i18n/messages/all.tr.js +1 -1
  48. package/i18n/messages/all.tr.json +1 -1
  49. package/i18n/messages/all.zh-CN.js +1 -1
  50. package/i18n/messages/all.zh-CN.json +1 -1
  51. package/i18n/messages/all.zh-TW.js +1 -1
  52. package/i18n/messages/all.zh-TW.json +1 -1
  53. package/internal/components/option/analytics-metadata/styles.css.js +6 -0
  54. package/internal/components/option/analytics-metadata/styles.scoped.css +7 -0
  55. package/internal/components/option/analytics-metadata/styles.selectors.js +7 -0
  56. package/internal/components/option/option-parts.d.ts.map +1 -1
  57. package/internal/components/option/option-parts.js +2 -1
  58. package/internal/components/option/option-parts.js.map +1 -1
  59. package/internal/components/selectable-item/analytics-metadata/interfaces.d.ts +11 -0
  60. package/internal/components/selectable-item/analytics-metadata/interfaces.d.ts.map +1 -0
  61. package/internal/components/selectable-item/analytics-metadata/interfaces.js +2 -0
  62. package/internal/components/selectable-item/analytics-metadata/interfaces.js.map +1 -0
  63. package/internal/components/selectable-item/analytics-metadata/styles.css.js +7 -0
  64. package/internal/components/selectable-item/analytics-metadata/styles.scoped.css +8 -0
  65. package/internal/components/selectable-item/analytics-metadata/styles.selectors.js +8 -0
  66. package/internal/components/selectable-item/analytics-metadata/utils.d.ts +4 -0
  67. package/internal/components/selectable-item/analytics-metadata/utils.d.ts.map +1 -0
  68. package/internal/components/selectable-item/analytics-metadata/utils.js +39 -0
  69. package/internal/components/selectable-item/analytics-metadata/utils.js.map +1 -0
  70. package/internal/components/selectable-item/index.d.ts +2 -26
  71. package/internal/components/selectable-item/index.d.ts.map +1 -1
  72. package/internal/components/selectable-item/index.js +9 -3
  73. package/internal/components/selectable-item/index.js.map +1 -1
  74. package/internal/components/selectable-item/interfaces.d.ts +35 -0
  75. package/internal/components/selectable-item/interfaces.d.ts.map +1 -0
  76. package/internal/components/selectable-item/interfaces.js +4 -0
  77. package/internal/components/selectable-item/interfaces.js.map +1 -0
  78. package/internal/components/token-list/analytics-metadata/interfaces.d.ts +9 -0
  79. package/internal/components/token-list/analytics-metadata/interfaces.d.ts.map +1 -0
  80. package/internal/components/token-list/analytics-metadata/interfaces.js +2 -0
  81. package/internal/components/token-list/analytics-metadata/interfaces.js.map +1 -0
  82. package/internal/components/token-list/token-limit-toggle.d.ts.map +1 -1
  83. package/internal/components/token-list/token-limit-toggle.js +9 -1
  84. package/internal/components/token-list/token-limit-toggle.js.map +1 -1
  85. package/internal/environment.js +1 -1
  86. package/internal/environment.json +1 -1
  87. package/internal/manifest.json +1 -1
  88. package/package.json +1 -1
  89. package/property-filter/controller.d.ts +4 -3
  90. package/property-filter/controller.d.ts.map +1 -1
  91. package/property-filter/controller.js +27 -11
  92. package/property-filter/controller.js.map +1 -1
  93. package/property-filter/i18n-utils.d.ts +4 -24
  94. package/property-filter/i18n-utils.d.ts.map +1 -1
  95. package/property-filter/i18n-utils.js +12 -6
  96. package/property-filter/i18n-utils.js.map +1 -1
  97. package/property-filter/interfaces.d.ts +25 -8
  98. package/property-filter/interfaces.d.ts.map +1 -1
  99. package/property-filter/interfaces.js.map +1 -1
  100. package/property-filter/internal.d.ts +3 -4
  101. package/property-filter/internal.d.ts.map +1 -1
  102. package/property-filter/internal.js +20 -13
  103. package/property-filter/internal.js.map +1 -1
  104. package/property-filter/styles.css.js +38 -38
  105. package/property-filter/styles.scoped.css +46 -38
  106. package/property-filter/styles.selectors.js +38 -38
  107. package/property-filter/token-editor.d.ts +4 -3
  108. package/property-filter/token-editor.d.ts.map +1 -1
  109. package/property-filter/token-editor.js +15 -13
  110. package/property-filter/token-editor.js.map +1 -1
  111. package/property-filter/token.d.ts +3 -3
  112. package/property-filter/token.d.ts.map +1 -1
  113. package/property-filter/token.js +46 -19
  114. package/property-filter/token.js.map +1 -1
  115. package/property-filter/utils.d.ts +12 -0
  116. package/property-filter/utils.d.ts.map +1 -1
  117. package/property-filter/utils.js +22 -0
  118. package/property-filter/utils.js.map +1 -1
  119. package/select/parts/item.d.ts.map +1 -1
  120. package/select/parts/item.js +1 -1
  121. package/select/parts/item.js.map +1 -1
  122. package/select/parts/multiselect-item.d.ts.map +1 -1
  123. package/select/parts/multiselect-item.js +1 -1
  124. package/select/parts/multiselect-item.js.map +1 -1
  125. package/test-utils/dom/property-filter/index.d.ts +17 -15
  126. package/test-utils/dom/property-filter/index.js +34 -39
  127. package/test-utils/dom/property-filter/index.js.map +1 -1
  128. package/test-utils/selectors/property-filter/index.d.ts +17 -15
  129. package/test-utils/selectors/property-filter/index.js +36 -39
  130. package/test-utils/selectors/property-filter/index.js.map +1 -1
  131. package/test-utils/tsconfig.tsbuildinfo +1 -1
  132. package/token-group/analytics-metadata/interfaces.d.ts +18 -0
  133. package/token-group/analytics-metadata/interfaces.d.ts.map +1 -0
  134. package/token-group/analytics-metadata/interfaces.js +2 -0
  135. package/token-group/analytics-metadata/interfaces.js.map +1 -0
  136. package/token-group/dismiss-button.d.ts.map +1 -1
  137. package/token-group/dismiss-button.js +9 -2
  138. package/token-group/dismiss-button.js.map +1 -1
  139. package/token-group/index.d.ts.map +1 -1
  140. package/token-group/index.js +9 -1
  141. package/token-group/index.js.map +1 -1
  142. package/token-group/internal.d.ts.map +1 -1
  143. package/token-group/internal.js +5 -2
  144. package/token-group/internal.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"option-parts.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/option-parts.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 from 'react';\nimport clsx from 'clsx';\n\nimport { IconProps } from '../../../icon/interfaces';\nimport InternalIcon from '../../../icon/internal';\nimport HighlightMatch from './highlight-match';\n\nimport styles from './styles.css.js';\n\ninterface LabelProps {\n label?: string;\n prefix?: string;\n highlightText?: string;\n triggerVariant: boolean;\n}\nexport const Label = ({ label, prefix, highlightText, triggerVariant }: LabelProps) => (\n <span className={clsx(styles.label, triggerVariant && styles['trigger-variant'])}>\n {prefix && (\n <span className={clsx(styles['label-prefix'], triggerVariant && styles['trigger-variant'])}>{prefix} </span>\n )}\n <HighlightMatch str={label} highlightText={highlightText} />\n </span>\n);\n\ninterface LabelTagProps {\n labelTag?: string;\n highlightText?: string;\n triggerVariant: boolean;\n}\nexport const LabelTag = ({ labelTag, highlightText, triggerVariant }: LabelTagProps) =>\n labelTag ? (\n <span className={clsx(styles['label-tag'], triggerVariant && styles['trigger-variant'])}>\n <HighlightMatch str={labelTag} highlightText={highlightText} />\n </span>\n ) : null;\n\ninterface DescriptionProps {\n description?: string;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const Description = ({\n description,\n highlightedOption,\n highlightText,\n selectedOption,\n triggerVariant,\n}: DescriptionProps) =>\n description ? (\n <span\n className={clsx(styles.description, {\n [styles['trigger-variant']]: triggerVariant,\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n <HighlightMatch str={description} highlightText={highlightText} />\n </span>\n ) : null;\n\ninterface TagsProps {\n tags?: ReadonlyArray<string>;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const Tags = ({ tags, highlightedOption, highlightText, selectedOption, triggerVariant }: TagsProps) =>\n tags ? (\n <span\n className={clsx(styles.tags, {\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n {tags.map((tag, idx) => (\n <span key={idx} className={clsx(styles.tag, triggerVariant && styles['trigger-variant'])}>\n <HighlightMatch str={tag} highlightText={highlightText} />\n </span>\n ))}\n </span>\n ) : null;\n\ninterface FilteringTagProps {\n filteringTags?: ReadonlyArray<string>;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const FilteringTags = ({\n filteringTags,\n highlightedOption,\n highlightText,\n selectedOption,\n triggerVariant,\n}: FilteringTagProps) => {\n if (!highlightText || !filteringTags) {\n return null;\n }\n\n const searchElement = highlightText.toLowerCase();\n\n return (\n <span\n className={clsx(styles.tags, {\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n {filteringTags.map((filteringTag, key) => {\n const match = filteringTag.toLowerCase().indexOf(searchElement) !== -1;\n if (match) {\n return (\n <span\n className={clsx(styles.tag, triggerVariant && styles['trigger-variant'])}\n key={key}\n aria-disabled={true}\n >\n <HighlightMatch str={filteringTag} highlightText={highlightText} />\n </span>\n );\n }\n return null;\n })}\n </span>\n );\n};\n\nexport const OptionIcon = (props: IconProps) => {\n if (!props.name && !props.url && !props.svg) {\n return null;\n }\n\n return (\n <span className={clsx(styles.icon, props.size === 'big' && [styles[`icon-size-big`]])}>\n <InternalIcon {...props} />\n </span>\n );\n};\n"]}
1
+ {"version":3,"file":"option-parts.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/option-parts.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 from 'react';\nimport clsx from 'clsx';\n\nimport { IconProps } from '../../../icon/interfaces';\nimport InternalIcon from '../../../icon/internal';\nimport HighlightMatch from './highlight-match';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\ninterface LabelProps {\n label?: string;\n prefix?: string;\n highlightText?: string;\n triggerVariant: boolean;\n}\nexport const Label = ({ label, prefix, highlightText, triggerVariant }: LabelProps) => (\n <span className={clsx(styles.label, analyticsSelectors.label, triggerVariant && styles['trigger-variant'])}>\n {prefix && (\n <span className={clsx(styles['label-prefix'], triggerVariant && styles['trigger-variant'])}>{prefix} </span>\n )}\n <HighlightMatch str={label} highlightText={highlightText} />\n </span>\n);\n\ninterface LabelTagProps {\n labelTag?: string;\n highlightText?: string;\n triggerVariant: boolean;\n}\nexport const LabelTag = ({ labelTag, highlightText, triggerVariant }: LabelTagProps) =>\n labelTag ? (\n <span className={clsx(styles['label-tag'], triggerVariant && styles['trigger-variant'])}>\n <HighlightMatch str={labelTag} highlightText={highlightText} />\n </span>\n ) : null;\n\ninterface DescriptionProps {\n description?: string;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const Description = ({\n description,\n highlightedOption,\n highlightText,\n selectedOption,\n triggerVariant,\n}: DescriptionProps) =>\n description ? (\n <span\n className={clsx(styles.description, {\n [styles['trigger-variant']]: triggerVariant,\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n <HighlightMatch str={description} highlightText={highlightText} />\n </span>\n ) : null;\n\ninterface TagsProps {\n tags?: ReadonlyArray<string>;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const Tags = ({ tags, highlightedOption, highlightText, selectedOption, triggerVariant }: TagsProps) =>\n tags ? (\n <span\n className={clsx(styles.tags, {\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n {tags.map((tag, idx) => (\n <span key={idx} className={clsx(styles.tag, triggerVariant && styles['trigger-variant'])}>\n <HighlightMatch str={tag} highlightText={highlightText} />\n </span>\n ))}\n </span>\n ) : null;\n\ninterface FilteringTagProps {\n filteringTags?: ReadonlyArray<string>;\n highlightedOption: boolean;\n highlightText?: string;\n selectedOption: boolean;\n triggerVariant: boolean;\n}\nexport const FilteringTags = ({\n filteringTags,\n highlightedOption,\n highlightText,\n selectedOption,\n triggerVariant,\n}: FilteringTagProps) => {\n if (!highlightText || !filteringTags) {\n return null;\n }\n\n const searchElement = highlightText.toLowerCase();\n\n return (\n <span\n className={clsx(styles.tags, {\n [styles.highlighted]: highlightedOption,\n [styles.selected]: selectedOption,\n })}\n >\n {filteringTags.map((filteringTag, key) => {\n const match = filteringTag.toLowerCase().indexOf(searchElement) !== -1;\n if (match) {\n return (\n <span\n className={clsx(styles.tag, triggerVariant && styles['trigger-variant'])}\n key={key}\n aria-disabled={true}\n >\n <HighlightMatch str={filteringTag} highlightText={highlightText} />\n </span>\n );\n }\n return null;\n })}\n </span>\n );\n};\n\nexport const OptionIcon = (props: IconProps) => {\n if (!props.name && !props.url && !props.svg) {\n return null;\n }\n\n return (\n <span className={clsx(styles.icon, props.size === 'big' && [styles[`icon-size-big`]])}>\n <InternalIcon {...props} />\n </span>\n );\n};\n"]}
@@ -0,0 +1,11 @@
1
+ import { LabelIdentifier } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
2
+ export interface GeneratedAnalyticsMetadataSelectableItemSelect {
3
+ action: 'select';
4
+ detail: {
5
+ label: LabelIdentifier;
6
+ position?: string;
7
+ value?: string;
8
+ groupLabel?: LabelIdentifier;
9
+ };
10
+ }
11
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/selectable-item/analytics-metadata/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kEAAkE,CAAC;AAEnG,MAAM,WAAW,8CAA8C;IAC7D,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE;QACN,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../../src/internal/components/selectable-item/analytics-metadata/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { LabelIdentifier } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nexport interface GeneratedAnalyticsMetadataSelectableItemSelect {\n action: 'select';\n detail: {\n label: LabelIdentifier;\n position?: string;\n value?: string;\n groupLabel?: LabelIdentifier;\n };\n}\n"]}
@@ -0,0 +1,7 @@
1
+
2
+ import './styles.scoped.css';
3
+ export default {
4
+ "parent": "awsui_parent_2dmmi_qu62t_5",
5
+ "option-content": "awsui_option-content_2dmmi_qu62t_6"
6
+ };
7
+
@@ -0,0 +1,8 @@
1
+ /*
2
+ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ .awsui_parent_2dmmi_qu62t_5:not(#\9),
6
+ .awsui_option-content_2dmmi_qu62t_6:not(#\9) {
7
+ /* used in analytics metadata */
8
+ }
@@ -0,0 +1,8 @@
1
+
2
+ // es-module interop with Babel and Typescript
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ module.exports.default = {
5
+ "parent": "awsui_parent_2dmmi_qu62t_5",
6
+ "option-content": "awsui_option-content_2dmmi_qu62t_6"
7
+ };
8
+
@@ -0,0 +1,4 @@
1
+ import { SelectableItemProps } from '../interfaces';
2
+ import { GeneratedAnalyticsMetadataSelectableItemSelect } from './interfaces';
3
+ export declare const getAnalyticsSelectActionMetadata: ({ isChild, value, ...restProps }: Partial<SelectableItemProps>) => GeneratedAnalyticsMetadataSelectableItemSelect;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/selectable-item/analytics-metadata/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,8CAA8C,EAAE,MAAM,cAAc,CAAC;AAK9E,eAAO,MAAM,gCAAgC,qCAI1C,QAAQ,mBAAmB,CAAC,KAAG,8CAkCjC,CAAC"}
@@ -0,0 +1,39 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { __rest } from "tslib";
4
+ import optionAnalyticsSelectors from './../../option/analytics-metadata/styles.css.js';
5
+ import analyticsSelectors from './styles.css.js';
6
+ export const getAnalyticsSelectActionMetadata = (_a) => {
7
+ var { isChild, value } = _a, restProps = __rest(_a, ["isChild", "value"]);
8
+ const dataAttributes = restProps;
9
+ const analyticsMetadata = {
10
+ action: 'select',
11
+ detail: {
12
+ label: {
13
+ selector: [`.${optionAnalyticsSelectors.label}`, `.${analyticsSelectors['option-content']}`],
14
+ },
15
+ },
16
+ };
17
+ let position = undefined;
18
+ if ((isChild && dataAttributes['data-group-index'] && dataAttributes['data-in-group-index']) ||
19
+ dataAttributes['data-child-index']) {
20
+ position = `${dataAttributes['data-group-index']},${dataAttributes['data-in-group-index'] || dataAttributes['data-child-index']}`;
21
+ }
22
+ else if (dataAttributes['data-test-index']) {
23
+ position = `${dataAttributes['data-test-index']}`;
24
+ }
25
+ if (position) {
26
+ analyticsMetadata.detail.position = position;
27
+ }
28
+ if (value) {
29
+ analyticsMetadata.detail.value = value;
30
+ }
31
+ if (isChild) {
32
+ analyticsMetadata.detail.groupLabel = {
33
+ root: 'body',
34
+ selector: `.${analyticsSelectors.parent}[data-group-index="${dataAttributes['data-group-index']}"] .${analyticsSelectors['option-content']}`,
35
+ };
36
+ }
37
+ return analyticsMetadata;
38
+ };
39
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/internal/components/selectable-item/analytics-metadata/utils.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;;AAKtC,OAAO,wBAAwB,MAAM,iDAAiD,CAAC;AACvF,OAAO,kBAAkB,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,EAIlB,EAAkD,EAAE;QAJlC,EAC/C,OAAO,EACP,KAAK,OAEwB,EAD1B,SAAS,cAHmC,oBAIhD,CADa;IAEZ,MAAM,cAAc,GAAG,SAA+B,CAAC;IAEvD,MAAM,iBAAiB,GAAmD;QACxE,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,QAAQ,EAAE,CAAC,IAAI,wBAAwB,CAAC,KAAK,EAAE,EAAE,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;aAC7F;SACF;KACF,CAAC;IAEF,IAAI,QAAQ,GAAG,SAAS,CAAC;IACzB,IACE,CAAC,OAAO,IAAI,cAAc,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC;QACxF,cAAc,CAAC,kBAAkB,CAAC,EAClC;QACA,QAAQ,GAAG,GAAG,cAAc,CAAC,kBAAkB,CAAC,IAAI,cAAc,CAAC,qBAAqB,CAAC,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;KACnI;SAAM,IAAI,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5C,QAAQ,GAAG,GAAG,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;KACnD;IACD,IAAI,QAAQ,EAAE;QACZ,iBAAiB,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC9C;IACD,IAAI,KAAK,EAAE;QACT,iBAAiB,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;KACxC;IACD,IAAI,OAAO,EAAE;QACX,iBAAiB,CAAC,MAAM,CAAC,UAAU,GAAG;YACpC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI,kBAAkB,CAAC,MAAM,sBAAsB,cAAc,CAAC,kBAAkB,CAAC,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,EAAE;SAC7I,CAAC;KACH;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ItemDataAttributes, SelectableItemProps } from '../interfaces';\nimport { GeneratedAnalyticsMetadataSelectableItemSelect } from './interfaces';\n\nimport optionAnalyticsSelectors from './../../option/analytics-metadata/styles.css.js';\nimport analyticsSelectors from './styles.css.js';\n\nexport const getAnalyticsSelectActionMetadata = ({\n isChild,\n value,\n ...restProps\n}: Partial<SelectableItemProps>): GeneratedAnalyticsMetadataSelectableItemSelect => {\n const dataAttributes = restProps as ItemDataAttributes;\n\n const analyticsMetadata: GeneratedAnalyticsMetadataSelectableItemSelect = {\n action: 'select',\n detail: {\n label: {\n selector: [`.${optionAnalyticsSelectors.label}`, `.${analyticsSelectors['option-content']}`],\n },\n },\n };\n\n let position = undefined;\n if (\n (isChild && dataAttributes['data-group-index'] && dataAttributes['data-in-group-index']) ||\n dataAttributes['data-child-index']\n ) {\n position = `${dataAttributes['data-group-index']},${dataAttributes['data-in-group-index'] || dataAttributes['data-child-index']}`;\n } else if (dataAttributes['data-test-index']) {\n position = `${dataAttributes['data-test-index']}`;\n }\n if (position) {\n analyticsMetadata.detail.position = position;\n }\n if (value) {\n analyticsMetadata.detail.value = value;\n }\n if (isChild) {\n analyticsMetadata.detail.groupLabel = {\n root: 'body',\n selector: `.${analyticsSelectors.parent}[data-group-index=\"${dataAttributes['data-group-index']}\"] .${analyticsSelectors['option-content']}`,\n };\n }\n return analyticsMetadata;\n};\n"]}
@@ -1,30 +1,6 @@
1
1
  import React from 'react';
2
- import { BaseComponentProps } from '../../base-component';
3
- import { HighlightType } from '../options-list/utils/use-highlight-option.js';
4
- export type SelectableItemProps = BaseComponentProps & {
5
- children: React.ReactNode;
6
- selected?: boolean;
7
- highlighted?: boolean;
8
- disabled?: boolean;
9
- hasBackground?: boolean;
10
- isParent?: boolean;
11
- isChild?: boolean;
12
- virtualPosition?: number;
13
- padBottom?: boolean;
14
- isNextSelected?: boolean;
15
- useInteractiveGroups?: boolean;
16
- screenReaderContent?: string;
17
- ariaPosinset?: number;
18
- ariaSetsize?: number;
19
- highlightType?: HighlightType['type'];
20
- ariaDescribedby?: string;
21
- } & ({
22
- ariaSelected?: boolean;
23
- ariaChecked?: never;
24
- } | {
25
- ariaSelected?: never;
26
- ariaChecked?: boolean | 'mixed';
27
- });
2
+ import { SelectableItemProps } from './interfaces';
3
+ export { SelectableItemProps };
28
4
  declare const _default: React.ForwardRefExoticComponent<SelectableItemProps & React.RefAttributes<HTMLDivElement>>;
29
5
  export default _default;
30
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/selectable-item/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAgB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAI9E,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,CAAC;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,YAAY,CAAC,EAAE,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,CAAC,CAAC;;AAuGlH,wBAAgD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/selectable-item/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAOvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,EAAE,mBAAmB,EAAE,CAAC;;AAkH/B,wBAAgD"}
@@ -3,16 +3,20 @@ import { __rest } from "tslib";
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import React, { useLayoutEffect, useRef } from 'react';
5
5
  import clsx from 'clsx';
6
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
6
7
  import { getBaseProps } from '../../base-component';
8
+ import { getAnalyticsSelectActionMetadata } from './analytics-metadata/utils';
9
+ import analyticsSelectors from './analytics-metadata/styles.css.js';
7
10
  import styles from './styles.css.js';
8
11
  const SelectableItem = (_a, ref) => {
9
- var { children: content, ariaSelected, ariaChecked, selected, highlighted, disabled, hasBackground, isParent, isChild, virtualPosition, padBottom, isNextSelected, useInteractiveGroups, screenReaderContent, ariaPosinset, ariaSetsize, highlightType } = _a, restProps = __rest(_a, ["children", "ariaSelected", "ariaChecked", "selected", "highlighted", "disabled", "hasBackground", "isParent", "isChild", "virtualPosition", "padBottom", "isNextSelected", "useInteractiveGroups", "screenReaderContent", "ariaPosinset", "ariaSetsize", "highlightType"]);
12
+ var { children: content, ariaSelected, ariaChecked, selected, highlighted, disabled, hasBackground, isParent, isChild, virtualPosition, padBottom, isNextSelected, useInteractiveGroups, screenReaderContent, ariaPosinset, ariaSetsize, highlightType, value } = _a, restProps = __rest(_a, ["children", "ariaSelected", "ariaChecked", "selected", "highlighted", "disabled", "hasBackground", "isParent", "isChild", "virtualPosition", "padBottom", "isNextSelected", "useInteractiveGroups", "screenReaderContent", "ariaPosinset", "ariaSetsize", "highlightType", "value"]);
10
13
  const _b = getBaseProps(restProps), { className } = _b, rest = __rest(_b, ["className"]);
11
14
  const classNames = clsx(className, styles['selectable-item'], {
12
15
  [styles.selected]: selected,
13
16
  [styles.highlighted]: highlighted,
14
17
  [styles['has-background']]: hasBackground,
15
18
  [styles.parent]: isParent,
19
+ [analyticsSelectors.parent]: isParent,
16
20
  [styles.child]: isChild,
17
21
  [styles['is-keyboard']]: highlightType === 'keyboard',
18
22
  [styles.disabled]: disabled,
@@ -63,8 +67,10 @@ const SelectableItem = (_a, ref) => {
63
67
  if (restProps.ariaDescribedby) {
64
68
  a11yProperties['aria-describedby'] = restProps.ariaDescribedby;
65
69
  }
66
- return (React.createElement("li", Object.assign({ role: "option", className: classNames, style: style }, a11yProperties, rest),
67
- React.createElement("div", { className: styles['option-content'], ref: contentRef }, content),
70
+ return (React.createElement("li", Object.assign({ role: "option", className: classNames, style: style }, a11yProperties, rest, (isParent || disabled
71
+ ? {}
72
+ : getAnalyticsMetadataAttribute(getAnalyticsSelectActionMetadata(Object.assign({ isChild, value }, restProps))))),
73
+ React.createElement("div", { className: clsx(styles['option-content'], analyticsSelectors['option-content']), ref: contentRef }, content),
68
74
  React.createElement("div", { className: styles['measure-strut'], ref: ref }),
69
75
  React.createElement("div", { className: styles['screenreader-content'], ref: screenReaderContentRef })));
70
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/selectable-item/index.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, { useLayoutEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { BaseComponentProps, getBaseProps } from '../../base-component';\nimport { HighlightType } from '../options-list/utils/use-highlight-option.js';\n\nimport styles from './styles.css.js';\n\nexport type SelectableItemProps = BaseComponentProps & {\n children: React.ReactNode;\n selected?: boolean;\n highlighted?: boolean;\n disabled?: boolean;\n hasBackground?: boolean;\n isParent?: boolean;\n isChild?: boolean;\n virtualPosition?: number;\n padBottom?: boolean;\n isNextSelected?: boolean;\n useInteractiveGroups?: boolean;\n screenReaderContent?: string;\n ariaPosinset?: number;\n ariaSetsize?: number;\n highlightType?: HighlightType['type'];\n ariaDescribedby?: string;\n} & ({ ariaSelected?: boolean; ariaChecked?: never } | { ariaSelected?: never; ariaChecked?: boolean | 'mixed' });\n\nconst SelectableItem = (\n {\n children: content,\n ariaSelected,\n ariaChecked,\n selected,\n highlighted,\n disabled,\n hasBackground,\n isParent,\n isChild,\n virtualPosition,\n padBottom,\n isNextSelected,\n useInteractiveGroups,\n screenReaderContent,\n ariaPosinset,\n ariaSetsize,\n highlightType,\n ...restProps\n }: SelectableItemProps,\n ref: React.Ref<HTMLDivElement>\n) => {\n const { className, ...rest } = getBaseProps(restProps);\n const classNames = clsx(className, styles['selectable-item'], {\n [styles.selected]: selected,\n [styles.highlighted]: highlighted,\n [styles['has-background']]: hasBackground,\n [styles.parent]: isParent,\n [styles.child]: isChild,\n [styles['is-keyboard']]: highlightType === 'keyboard',\n [styles.disabled]: disabled,\n [styles.virtual]: virtualPosition !== undefined,\n [styles['pad-bottom']]: padBottom,\n [styles['next-item-selected']]: isNextSelected,\n [styles.interactiveGroups]: useInteractiveGroups,\n });\n\n const contentRef = useRef<HTMLDivElement>(null);\n const screenReaderContentRef = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n // the state of aria-hidden and announcement is not set back because NVDA+Firefox would announce\n // the item which lost highlight\n // set aria-hidden true when there is announcement content, so that screen reader still announce\n // meaningful content when navigate with screen reader cursor\n // imperatively update to avoid announcement made multiple times when content updates\n if (highlighted && screenReaderContent) {\n if (contentRef.current) {\n contentRef.current.setAttribute('aria-hidden', 'true');\n }\n if (screenReaderContentRef.current) {\n screenReaderContentRef.current.textContent = screenReaderContent;\n }\n }\n }, [highlighted, screenReaderContent, contentRef, screenReaderContentRef]);\n\n const style =\n virtualPosition !== undefined\n ? {\n transform: `translateY(${virtualPosition}px)`,\n }\n : undefined;\n\n const a11yProperties: Record<string, string | number | boolean | undefined> = {\n 'aria-disabled': disabled,\n };\n\n if (isParent && !useInteractiveGroups) {\n a11yProperties['aria-hidden'] = true;\n }\n\n if (ariaSelected !== undefined) {\n a11yProperties['aria-selected'] = ariaSelected;\n }\n\n // Safari+VO needs aria-checked for multi-selection. Otherwise it only announces selected option even though another option is highlighted.\n if (ariaChecked !== undefined) {\n a11yProperties['aria-checked'] = ariaChecked;\n }\n\n if (ariaPosinset && ariaSetsize) {\n a11yProperties['aria-posinset'] = ariaPosinset;\n a11yProperties['aria-setsize'] = ariaSetsize;\n }\n\n if (restProps.ariaDescribedby) {\n a11yProperties['aria-describedby'] = restProps.ariaDescribedby;\n }\n\n return (\n <li role=\"option\" className={classNames} style={style} {...a11yProperties} {...rest}>\n <div className={styles['option-content']} ref={contentRef}>\n {content}\n </div>\n <div className={styles['measure-strut']} ref={ref} />\n <div className={styles['screenreader-content']} ref={screenReaderContentRef}></div>\n </li>\n );\n};\n\nexport default React.forwardRef(SelectableItem);\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/selectable-item/index.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, { useLayoutEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { getBaseProps } from '../../base-component';\nimport { getAnalyticsSelectActionMetadata } from './analytics-metadata/utils';\nimport { SelectableItemProps } from './interfaces';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { SelectableItemProps };\n\nconst SelectableItem = (\n {\n children: content,\n ariaSelected,\n ariaChecked,\n selected,\n highlighted,\n disabled,\n hasBackground,\n isParent,\n isChild,\n virtualPosition,\n padBottom,\n isNextSelected,\n useInteractiveGroups,\n screenReaderContent,\n ariaPosinset,\n ariaSetsize,\n highlightType,\n value,\n ...restProps\n }: SelectableItemProps,\n ref: React.Ref<HTMLDivElement>\n) => {\n const { className, ...rest } = getBaseProps(restProps);\n const classNames = clsx(className, styles['selectable-item'], {\n [styles.selected]: selected,\n [styles.highlighted]: highlighted,\n [styles['has-background']]: hasBackground,\n [styles.parent]: isParent,\n [analyticsSelectors.parent]: isParent,\n [styles.child]: isChild,\n [styles['is-keyboard']]: highlightType === 'keyboard',\n [styles.disabled]: disabled,\n [styles.virtual]: virtualPosition !== undefined,\n [styles['pad-bottom']]: padBottom,\n [styles['next-item-selected']]: isNextSelected,\n [styles.interactiveGroups]: useInteractiveGroups,\n });\n\n const contentRef = useRef<HTMLDivElement>(null);\n const screenReaderContentRef = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n // the state of aria-hidden and announcement is not set back because NVDA+Firefox would announce\n // the item which lost highlight\n // set aria-hidden true when there is announcement content, so that screen reader still announce\n // meaningful content when navigate with screen reader cursor\n // imperatively update to avoid announcement made multiple times when content updates\n if (highlighted && screenReaderContent) {\n if (contentRef.current) {\n contentRef.current.setAttribute('aria-hidden', 'true');\n }\n if (screenReaderContentRef.current) {\n screenReaderContentRef.current.textContent = screenReaderContent;\n }\n }\n }, [highlighted, screenReaderContent, contentRef, screenReaderContentRef]);\n\n const style =\n virtualPosition !== undefined\n ? {\n transform: `translateY(${virtualPosition}px)`,\n }\n : undefined;\n\n const a11yProperties: Record<string, string | number | boolean | undefined> = {\n 'aria-disabled': disabled,\n };\n\n if (isParent && !useInteractiveGroups) {\n a11yProperties['aria-hidden'] = true;\n }\n\n if (ariaSelected !== undefined) {\n a11yProperties['aria-selected'] = ariaSelected;\n }\n\n // Safari+VO needs aria-checked for multi-selection. Otherwise it only announces selected option even though another option is highlighted.\n if (ariaChecked !== undefined) {\n a11yProperties['aria-checked'] = ariaChecked;\n }\n\n if (ariaPosinset && ariaSetsize) {\n a11yProperties['aria-posinset'] = ariaPosinset;\n a11yProperties['aria-setsize'] = ariaSetsize;\n }\n\n if (restProps.ariaDescribedby) {\n a11yProperties['aria-describedby'] = restProps.ariaDescribedby;\n }\n\n return (\n <li\n role=\"option\"\n className={classNames}\n style={style}\n {...a11yProperties}\n {...rest}\n {...(isParent || disabled\n ? {}\n : getAnalyticsMetadataAttribute(getAnalyticsSelectActionMetadata({ isChild, value, ...restProps })))}\n >\n <div className={clsx(styles['option-content'], analyticsSelectors['option-content'])} ref={contentRef}>\n {content}\n </div>\n <div className={styles['measure-strut']} ref={ref} />\n <div className={styles['screenreader-content']} ref={screenReaderContentRef}></div>\n </li>\n );\n};\n\nexport default React.forwardRef(SelectableItem);\n"]}
@@ -0,0 +1,35 @@
1
+ /// <reference types="react" />
2
+ import { BaseComponentProps } from '../../base-component';
3
+ import { HighlightType } from '../options-list/utils/use-highlight-option';
4
+ export type SelectableItemProps = BaseComponentProps & {
5
+ children: React.ReactNode;
6
+ selected?: boolean;
7
+ highlighted?: boolean;
8
+ disabled?: boolean;
9
+ hasBackground?: boolean;
10
+ isParent?: boolean;
11
+ isChild?: boolean;
12
+ virtualPosition?: number;
13
+ padBottom?: boolean;
14
+ isNextSelected?: boolean;
15
+ useInteractiveGroups?: boolean;
16
+ screenReaderContent?: string;
17
+ ariaPosinset?: number;
18
+ ariaSetsize?: number;
19
+ highlightType?: HighlightType['type'];
20
+ ariaDescribedby?: string;
21
+ value?: string;
22
+ } & ({
23
+ ariaSelected?: boolean;
24
+ ariaChecked?: never;
25
+ } | {
26
+ ariaSelected?: never;
27
+ ariaChecked?: boolean | 'mixed';
28
+ });
29
+ export interface ItemDataAttributes {
30
+ 'data-group-index'?: string;
31
+ 'data-child-index'?: string;
32
+ 'data-in-group-index'?: string;
33
+ 'data-test-index'?: string;
34
+ }
35
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/selectable-item/interfaces.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,CAAC;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,YAAY,CAAC,EAAE,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,CAAC,CAAC;AAElH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,4 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export {};
4
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../src/internal/components/selectable-item/interfaces.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { BaseComponentProps } from '../../base-component';\nimport { HighlightType } from '../options-list/utils/use-highlight-option';\n\nexport type SelectableItemProps = BaseComponentProps & {\n children: React.ReactNode;\n selected?: boolean;\n highlighted?: boolean;\n disabled?: boolean;\n hasBackground?: boolean;\n isParent?: boolean;\n isChild?: boolean;\n virtualPosition?: number;\n padBottom?: boolean;\n isNextSelected?: boolean;\n useInteractiveGroups?: boolean;\n screenReaderContent?: string;\n ariaPosinset?: number;\n ariaSetsize?: number;\n highlightType?: HighlightType['type'];\n ariaDescribedby?: string;\n value?: string;\n} & ({ ariaSelected?: boolean; ariaChecked?: never } | { ariaSelected?: never; ariaChecked?: boolean | 'mixed' });\n\nexport interface ItemDataAttributes {\n 'data-group-index'?: string;\n 'data-child-index'?: string;\n 'data-in-group-index'?: string;\n 'data-test-index'?: string;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { LabelIdentifier } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
2
+ export interface GeneratedAnalyticsMetadataTokenListShowMore {
3
+ action: 'showMore';
4
+ detail: {
5
+ label: LabelIdentifier;
6
+ expanded: string;
7
+ };
8
+ }
9
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/token-list/analytics-metadata/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kEAAkE,CAAC;AAEnG,MAAM,WAAW,2CAA2C;IAC1D,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE;QACN,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../../src/internal/components/token-list/analytics-metadata/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { LabelIdentifier } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nexport interface GeneratedAnalyticsMetadataTokenListShowMore {\n action: 'showMore';\n detail: {\n label: LabelIdentifier;\n expanded: string;\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"token-limit-toggle.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/token-list/token-limit-toggle.tsx"],"names":[],"mappings":";AAOA,OAAO,EAA0B,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,UAAU,qBAAqB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,SAAS,EACT,SAAS,EACT,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,WAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,EAAE,qBAAqB,eA0BvB"}
1
+ {"version":3,"file":"token-limit-toggle.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/token-list/token-limit-toggle.tsx"],"names":[],"mappings":";AASA,OAAO,EAA0B,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,UAAU,qBAAqB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,SAAS,EACT,SAAS,EACT,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,WAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,EAAE,qBAAqB,eAmCvB"}
@@ -1,6 +1,7 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React, { useCallback } from 'react';
4
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
4
5
  import { useInternalI18n } from '../../../i18n/context';
5
6
  import InternalIcon from '../../../icon/internal';
6
7
  import { fireNonCancelableEvent } from '../../events';
@@ -15,7 +16,14 @@ export default function TokenLimitToggle({ controlId, allHidden, expanded, numbe
15
16
  const handleClick = useCallback(() => {
16
17
  fireNonCancelableEvent(onClick, null);
17
18
  }, [onClick]);
18
- return (React.createElement("button", { type: "button", className: styles.toggle, onClick: handleClick, "aria-controls": controlId, "aria-expanded": expanded, "aria-label": ariaLabel },
19
+ const analyticsMetadata = {
20
+ action: 'showMore',
21
+ detail: {
22
+ label: { root: 'self' },
23
+ expanded: `${!expanded}`,
24
+ },
25
+ };
26
+ return (React.createElement("button", Object.assign({ type: "button", className: styles.toggle, onClick: handleClick, "aria-controls": controlId, "aria-expanded": expanded, "aria-label": ariaLabel }, getAnalyticsMetadataAttribute(analyticsMetadata)),
19
27
  React.createElement(InternalIcon, { name: expanded ? 'treeview-collapse' : 'treeview-expand' }),
20
28
  React.createElement("span", { className: styles.description }, description)));
21
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"token-limit-toggle.js","sourceRoot":"","sources":["../../../../../src/internal/components/token-list/token-limit-toggle.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAA6B,MAAM,cAAc,CAAC;AAGjF,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAYrC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,SAAS,EACT,SAAS,EACT,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,uBAAuB,EACvB,sBAAsB,GACA;IACtB,MAAM,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAE5C,MAAM,yBAAyB,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,qBAAqB,EAAE,CAAC;IAClG,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,WAAW,CAAC,cAAc,CAAC;QAChE,CAAC,CAAC,GAAG,IAAI,CAAC,2BAA2B,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,yBAAyB,GAAG,CAAC;IAC3G,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAE9E,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,OAAO,EAAE,WAAW,mBACL,SAAS,mBACT,QAAQ,gBACX,SAAS;QAErB,oBAAC,YAAY,IAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,GAAI;QAC1E,8BAAM,SAAS,EAAE,MAAM,CAAC,WAAW,IAAG,WAAW,CAAQ,CAClD,CACV,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { useCallback } from 'react';\n\nimport { useInternalI18n } from '../../../i18n/context';\nimport InternalIcon from '../../../icon/internal';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../../events';\nimport { I18nStrings } from './interfaces';\n\nimport styles from './styles.css.js';\ninterface TokenLimitToggleProps {\n controlId?: string;\n allHidden: boolean;\n expanded: boolean;\n numberOfHiddenOptions: number;\n onClick?: NonCancelableEventHandler<null>;\n i18nStrings?: I18nStrings;\n limitShowFewerAriaLabel?: string;\n limitShowMoreAriaLabel?: string;\n}\n\nexport default function TokenLimitToggle({\n controlId,\n allHidden,\n expanded,\n numberOfHiddenOptions,\n onClick,\n i18nStrings = {},\n limitShowFewerAriaLabel,\n limitShowMoreAriaLabel,\n}: TokenLimitToggleProps) {\n const i18n = useInternalI18n('token-group');\n\n const numberOfHiddenOptionLabel = allHidden ? numberOfHiddenOptions : `+${numberOfHiddenOptions}`;\n const description = expanded\n ? i18n('i18nStrings.limitShowFewer', i18nStrings.limitShowFewer)\n : `${i18n('i18nStrings.limitShowMore', i18nStrings.limitShowMore) || ''} (${numberOfHiddenOptionLabel})`;\n const ariaLabel = expanded ? limitShowFewerAriaLabel : limitShowMoreAriaLabel;\n\n const handleClick = useCallback(() => {\n fireNonCancelableEvent(onClick, null);\n }, [onClick]);\n\n return (\n <button\n type=\"button\"\n className={styles.toggle}\n onClick={handleClick}\n aria-controls={controlId}\n aria-expanded={expanded}\n aria-label={ariaLabel}\n >\n <InternalIcon name={expanded ? 'treeview-collapse' : 'treeview-expand'} />\n <span className={styles.description}>{description}</span>\n </button>\n );\n}\n"]}
1
+ {"version":3,"file":"token-limit-toggle.js","sourceRoot":"","sources":["../../../../../src/internal/components/token-list/token-limit-toggle.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAA6B,MAAM,cAAc,CAAC;AAIjF,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAYrC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,SAAS,EACT,SAAS,EACT,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,uBAAuB,EACvB,sBAAsB,GACA;IACtB,MAAM,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAE5C,MAAM,yBAAyB,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,qBAAqB,EAAE,CAAC;IAClG,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,WAAW,CAAC,cAAc,CAAC;QAChE,CAAC,CAAC,GAAG,IAAI,CAAC,2BAA2B,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,yBAAyB,GAAG,CAAC;IAC3G,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAE9E,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,iBAAiB,GAAgD;QACrE,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;SACzB;KACF,CAAC;IAEF,OAAO,CACL,8CACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,OAAO,EAAE,WAAW,mBACL,SAAS,mBACT,QAAQ,gBACX,SAAS,IACjB,6BAA6B,CAAC,iBAAiB,CAAC;QAEpD,oBAAC,YAAY,IAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,GAAI;QAC1E,8BAAM,SAAS,EAAE,MAAM,CAAC,WAAW,IAAG,WAAW,CAAQ,CAClD,CACV,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { useCallback } from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../../../i18n/context';\nimport InternalIcon from '../../../icon/internal';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../../events';\nimport { GeneratedAnalyticsMetadataTokenListShowMore } from './analytics-metadata/interfaces';\nimport { I18nStrings } from './interfaces';\n\nimport styles from './styles.css.js';\ninterface TokenLimitToggleProps {\n controlId?: string;\n allHidden: boolean;\n expanded: boolean;\n numberOfHiddenOptions: number;\n onClick?: NonCancelableEventHandler<null>;\n i18nStrings?: I18nStrings;\n limitShowFewerAriaLabel?: string;\n limitShowMoreAriaLabel?: string;\n}\n\nexport default function TokenLimitToggle({\n controlId,\n allHidden,\n expanded,\n numberOfHiddenOptions,\n onClick,\n i18nStrings = {},\n limitShowFewerAriaLabel,\n limitShowMoreAriaLabel,\n}: TokenLimitToggleProps) {\n const i18n = useInternalI18n('token-group');\n\n const numberOfHiddenOptionLabel = allHidden ? numberOfHiddenOptions : `+${numberOfHiddenOptions}`;\n const description = expanded\n ? i18n('i18nStrings.limitShowFewer', i18nStrings.limitShowFewer)\n : `${i18n('i18nStrings.limitShowMore', i18nStrings.limitShowMore) || ''} (${numberOfHiddenOptionLabel})`;\n const ariaLabel = expanded ? limitShowFewerAriaLabel : limitShowMoreAriaLabel;\n\n const handleClick = useCallback(() => {\n fireNonCancelableEvent(onClick, null);\n }, [onClick]);\n\n const analyticsMetadata: GeneratedAnalyticsMetadataTokenListShowMore = {\n action: 'showMore',\n detail: {\n label: { root: 'self' },\n expanded: `${!expanded}`,\n },\n };\n\n return (\n <button\n type=\"button\"\n className={styles.toggle}\n onClick={handleClick}\n aria-controls={controlId}\n aria-expanded={expanded}\n aria-label={ariaLabel}\n {...getAnalyticsMetadataAttribute(analyticsMetadata)}\n >\n <InternalIcon name={expanded ? 'treeview-collapse' : 'treeview-expand'} />\n <span className={styles.description}>{description}</span>\n </button>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  export var PACKAGE_SOURCE = "components";
2
- export var PACKAGE_VERSION = "3.0.0 (67017e5c)";
2
+ export var PACKAGE_VERSION = "3.0.0 (78993c6b)";
3
3
  export var THEME = "open-source-visual-refresh";
4
4
  export var ALWAYS_VISUAL_REFRESH = true;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "PACKAGE_SOURCE": "components",
3
- "PACKAGE_VERSION": "3.0.0 (67017e5c)",
3
+ "PACKAGE_VERSION": "3.0.0 (78993c6b)",
4
4
  "THEME": "default",
5
5
  "ALWAYS_VISUAL_REFRESH": false
6
6
  }
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "67017e5c84697e448c5d34ca06c470dec4da4a7e"
2
+ "commit": "78993c6bc01155566dc9b1a3790616ddc394e2b6"
3
3
  }
package/package.json CHANGED
@@ -126,7 +126,7 @@
126
126
  "./internal/base-component/index.js",
127
127
  "./internal/base-component/styles.css.js"
128
128
  ],
129
- "version": "3.0.738",
129
+ "version": "3.0.740",
130
130
  "repository": {
131
131
  "type": "git",
132
132
  "url": "https://github.com/cloudscape-design/components.git"
@@ -1,14 +1,15 @@
1
1
  import { NonCancelableEventHandler } from '../internal/events';
2
2
  import { I18nStringsOperators } from './i18n-utils';
3
- import { ComparisonOperator, GroupText, I18nStrings, InternalFilteringOption, InternalFilteringProperty, InternalFreeTextFiltering, InternalQuery, InternalToken, JoinOperation, ParsedText, Query } from './interfaces';
3
+ import { ComparisonOperator, GroupText, I18nStrings, InternalFilteringOption, InternalFilteringProperty, InternalFreeTextFiltering, InternalQuery, InternalToken, InternalTokenGroup, JoinOperation, ParsedText, Query } from './interfaces';
4
4
  type I18nStringsController = I18nStringsOperators & Pick<I18nStrings, 'operatorsText' | 'groupPropertiesText' | 'groupValuesText'>;
5
- export declare const getQueryActions: ({ query, onChange, filteringOptions, }: {
5
+ export declare const getQueryActions: ({ query, onChange, filteringOptions, enableTokenGroups, }: {
6
6
  query: InternalQuery;
7
7
  onChange: NonCancelableEventHandler<Query>;
8
8
  filteringOptions: readonly InternalFilteringOption[];
9
+ enableTokenGroups: boolean;
9
10
  }) => {
10
11
  addToken: (token: InternalToken) => void;
11
- updateToken: (updateIndex: number, newToken: InternalToken) => void;
12
+ updateToken: (updateIndex: number, updatedToken: InternalToken | InternalTokenGroup, releasedTokens: InternalToken[]) => void;
12
13
  updateOperation: (operation: JoinOperation) => void;
13
14
  removeToken: (removeIndex: number) => void;
14
15
  removeAllTokens: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/property-filter/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,KAAK,EAEN,MAAM,cAAc,CAAC;AAUtB,KAAK,qBAAqB,GAAG,oBAAoB,GAC/C,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,CAAC;AAEjF,eAAO,MAAM,eAAe;WAKnB,aAAa;cACV,0BAA0B,KAAK,CAAC;sBACxB,SAAS,uBAAuB,EAAE;;sBAU3B,aAAa;+BAIJ,MAAM,YAAY,aAAa;iCAI7B,aAAa;+BAIf,MAAM;;CASzC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,yBAAyB,KAAG,kBAAkB,EAK3F,CAAC;AAQF,eAAO,MAAM,SAAS,kBACL,MAAM,uBACA,SAAS,yBAAyB,EAAE,qBACtC,yBAAyB,KAC3C,UA+CF,CAAC;AAEF,UAAU,WAAW,CAAC,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,EAAE,CAAC;CACd;AAED,eAAO,MAAM,sBAAsB,qBACf,SAAS,uBAAuB,EAAE,YAC1C,kBAAkB,GAAG,SAAS,eAC3B,qBAAqB,oBAChB,SAAS,SAAS,EAAE,uFAmCvC,CAAC;AAQF,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,mBAAmB,EAAE,SAAS,yBAAyB,EAAE,EACzD,gBAAgB,EAAE,SAAS,SAAS,EAAE,EACtC,WAAW,EAAE,qBAAqB,EAClC,yBAAyB,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,KAAK,CAAC,oBA0B/E;AAED,eAAO,MAAM,qBAAqB,eACpB,UAAU,uBACD,SAAS,yBAAyB,EAAE,oBACvC,SAAS,uBAAuB,EAAE,oBAClC,SAAS,SAAS,EAAE,eACzB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DnC,CAAC"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/property-filter/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAA0B,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,KAAK,EAGN,MAAM,cAAc,CAAC;AAWtB,KAAK,qBAAqB,GAAG,oBAAoB,GAC/C,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,CAAC;AAEjF,eAAO,MAAM,eAAe;WAMnB,aAAa;cACV,0BAA0B,KAAK,CAAC;sBACxB,SAAS,uBAAuB,EAAE;uBACjC,OAAO;;sBAkBD,aAAa;+BAKvB,MAAM,gBACL,aAAa,GAAG,kBAAkB,kBAChC,aAAa,EAAE;iCAmBG,aAAa;+BARf,MAAM;;CAazC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,yBAAyB,KAAG,kBAAkB,EAK3F,CAAC;AAQF,eAAO,MAAM,SAAS,kBACL,MAAM,uBACA,SAAS,yBAAyB,EAAE,qBACtC,yBAAyB,KAC3C,UA+CF,CAAC;AAEF,UAAU,WAAW,CAAC,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,EAAE,CAAC;CACd;AAED,eAAO,MAAM,sBAAsB,qBACf,SAAS,uBAAuB,EAAE,YAC1C,kBAAkB,GAAG,SAAS,eAC3B,qBAAqB,oBAChB,SAAS,SAAS,EAAE,uFAmCvC,CAAC;AAQF,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,mBAAmB,EAAE,SAAS,yBAAyB,EAAE,EACzD,gBAAgB,EAAE,SAAS,SAAS,EAAE,EACtC,WAAW,EAAE,qBAAqB,EAClC,yBAAyB,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,KAAK,CAAC,oBA0B/E;AAED,eAAO,MAAM,qBAAqB,eACpB,UAAU,uBACD,SAAS,yBAAyB,EAAE,oBACvC,SAAS,uBAAuB,EAAE,oBAClC,SAAS,SAAS,EAAE,eACzB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DnC,CAAC"}
@@ -2,21 +2,34 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { fireNonCancelableEvent } from '../internal/events';
4
4
  import { operatorToDescription } from './i18n-utils';
5
- import { matchFilteringProperty, matchOperator, matchOperatorPrefix, matchTokenValue, removeOperator, trimStart, } from './utils';
6
- export const getQueryActions = ({ query, onChange, filteringOptions, }) => {
7
- const fireOnChange = (tokens, operation) => fireNonCancelableEvent(onChange, { tokens, operation });
8
- const setQuery = ({ operation, tokens }) => {
9
- const matchedTokens = tokens.map(token => matchTokenValue(token, filteringOptions));
10
- fireOnChange(matchedTokens, operation);
5
+ import { matchFilteringProperty, matchOperator, matchOperatorPrefix, matchTokenValue, removeOperator, tokenGroupToTokens, trimStart, } from './utils';
6
+ export const getQueryActions = ({ query, onChange, filteringOptions, enableTokenGroups, }) => {
7
+ const setQuery = (query) => {
8
+ function transformToken(token) {
9
+ if ('operator' in token) {
10
+ return matchTokenValue(token, filteringOptions);
11
+ }
12
+ return Object.assign(Object.assign({}, token), { tokens: token.tokens.map(transformToken) });
13
+ }
14
+ const tokens = query.tokens.map(transformToken);
15
+ if (enableTokenGroups) {
16
+ fireNonCancelableEvent(onChange, { tokens: [], operation: query.operation, tokenGroups: tokens });
17
+ }
18
+ else {
19
+ fireNonCancelableEvent(onChange, { tokens: tokenGroupToTokens(tokens), operation: query.operation });
20
+ }
11
21
  };
12
22
  const addToken = (token) => {
13
23
  setQuery(Object.assign(Object.assign({}, query), { tokens: [...query.tokens, token] }));
14
24
  };
15
- const updateToken = (updateIndex, newToken) => {
16
- setQuery(Object.assign(Object.assign({}, query), { tokens: query.tokens.map((token, index) => (index === updateIndex ? newToken : token)) }));
17
- };
18
- const updateOperation = (operation) => {
19
- setQuery(Object.assign(Object.assign({}, query), { operation }));
25
+ const updateToken = (updateIndex, updatedToken, releasedTokens) => {
26
+ const nestedTokens = tokenGroupToTokens([updatedToken]);
27
+ const capturedTokenIndices = nestedTokens.map(token => token.standaloneIndex).filter(index => index !== undefined);
28
+ const tokens = query.tokens
29
+ .map((token, index) => (index === updateIndex ? updatedToken : token))
30
+ .filter((_, index) => index === updateIndex || !capturedTokenIndices.includes(index));
31
+ tokens.push(...releasedTokens);
32
+ setQuery(Object.assign(Object.assign({}, query), { tokens }));
20
33
  };
21
34
  const removeToken = (removeIndex) => {
22
35
  setQuery(Object.assign(Object.assign({}, query), { tokens: query.tokens.filter((_, index) => index !== removeIndex) }));
@@ -24,6 +37,9 @@ export const getQueryActions = ({ query, onChange, filteringOptions, }) => {
24
37
  const removeAllTokens = () => {
25
38
  setQuery(Object.assign(Object.assign({}, query), { tokens: [] }));
26
39
  };
40
+ const updateOperation = (operation) => {
41
+ setQuery(Object.assign(Object.assign({}, query), { operation }));
42
+ };
27
43
  return { addToken, updateToken, updateOperation, removeToken, removeAllTokens };
28
44
  };
29
45
  export const getAllowedOperators = (property) => {