@ui5/webcomponents 2.24.0-rc.1 → 2.24.0-rc.3

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 (138) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Bar.d.ts +4 -2
  4. package/dist/Bar.js +4 -2
  5. package/dist/Bar.js.map +1 -1
  6. package/dist/Breadcrumbs.d.ts +7 -0
  7. package/dist/Breadcrumbs.js +4 -1
  8. package/dist/Breadcrumbs.js.map +1 -1
  9. package/dist/ComboBox.d.ts +5 -0
  10. package/dist/ComboBox.js +26 -6
  11. package/dist/ComboBox.js.map +1 -1
  12. package/dist/ComboBoxItemCustom.d.ts +50 -0
  13. package/dist/ComboBoxItemCustom.js +71 -0
  14. package/dist/ComboBoxItemCustom.js.map +1 -0
  15. package/dist/ComboBoxItemCustomTemplate.d.ts +2 -0
  16. package/dist/ComboBoxItemCustomTemplate.js +9 -0
  17. package/dist/ComboBoxItemCustomTemplate.js.map +1 -0
  18. package/dist/ComboBoxPopoverTemplate.js +2 -2
  19. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  20. package/dist/Dialog.d.ts +19 -7
  21. package/dist/Dialog.js +88 -15
  22. package/dist/Dialog.js.map +1 -1
  23. package/dist/DialogTemplate.js +6 -10
  24. package/dist/DialogTemplate.js.map +1 -1
  25. package/dist/MenuItem.d.ts +1 -0
  26. package/dist/MenuItem.js +7 -0
  27. package/dist/MenuItem.js.map +1 -1
  28. package/dist/MultiComboBox.d.ts +2 -0
  29. package/dist/MultiComboBox.js +17 -7
  30. package/dist/MultiComboBox.js.map +1 -1
  31. package/dist/MultiComboBoxItemCustom.d.ts +67 -0
  32. package/dist/MultiComboBoxItemCustom.js +108 -0
  33. package/dist/MultiComboBoxItemCustom.js.map +1 -0
  34. package/dist/MultiComboBoxItemCustomTemplate.d.ts +2 -0
  35. package/dist/MultiComboBoxItemCustomTemplate.js +10 -0
  36. package/dist/MultiComboBoxItemCustomTemplate.js.map +1 -0
  37. package/dist/Popup.js +2 -4
  38. package/dist/Popup.js.map +1 -1
  39. package/dist/bundle.esm.js +2 -0
  40. package/dist/bundle.esm.js.map +1 -1
  41. package/dist/css/themes/ComboBoxItemCustom.css +1 -0
  42. package/dist/css/themes/Dialog.css +1 -1
  43. package/dist/css/themes/Form.css +1 -1
  44. package/dist/css/themes/FormItemSpan.css +1 -1
  45. package/dist/css/themes/FormLayout.css +1 -1
  46. package/dist/css/themes/MultiComboBoxItemCustom.css +1 -0
  47. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  48. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  49. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  50. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  51. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  52. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +2 -5
  53. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  54. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +2 -5
  55. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  56. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  57. package/dist/custom-elements-internal.json +354 -9
  58. package/dist/custom-elements.json +243 -9
  59. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  60. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  61. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  62. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  63. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  64. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  65. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  66. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  67. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  68. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  69. package/dist/generated/i18n/i18n-defaults.d.ts +12 -5
  70. package/dist/generated/i18n/i18n-defaults.js +12 -5
  71. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  72. package/dist/generated/themes/ComboBoxItemCustom.css.d.ts +2 -0
  73. package/dist/generated/themes/ComboBoxItemCustom.css.js +8 -0
  74. package/dist/generated/themes/ComboBoxItemCustom.css.js.map +1 -0
  75. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  76. package/dist/generated/themes/Dialog.css.js +1 -1
  77. package/dist/generated/themes/Dialog.css.js.map +1 -1
  78. package/dist/generated/themes/Form.css.d.ts +1 -1
  79. package/dist/generated/themes/Form.css.js +1 -1
  80. package/dist/generated/themes/Form.css.js.map +1 -1
  81. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  82. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  83. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  84. package/dist/generated/themes/FormLayout.css.d.ts +1 -1
  85. package/dist/generated/themes/FormLayout.css.js +1 -1
  86. package/dist/generated/themes/FormLayout.css.js.map +1 -1
  87. package/dist/generated/themes/MultiComboBoxItemCustom.css.d.ts +2 -0
  88. package/dist/generated/themes/MultiComboBoxItemCustom.css.js +8 -0
  89. package/dist/generated/themes/MultiComboBoxItemCustom.css.js.map +1 -0
  90. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  91. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  92. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  93. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  94. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  95. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  96. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  97. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  98. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  99. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  100. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  101. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  102. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  103. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  104. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  105. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  106. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +2 -5
  107. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  108. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  109. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  110. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  111. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  112. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +2 -5
  113. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  114. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  115. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  116. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  117. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  118. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  119. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  120. package/dist/types/ComboBoxSelectionChangeTrigger.d.ts +25 -0
  121. package/dist/types/ComboBoxSelectionChangeTrigger.js +27 -0
  122. package/dist/types/ComboBoxSelectionChangeTrigger.js.map +1 -0
  123. package/dist/vscode.html-custom-data.json +41 -2
  124. package/dist/web-types.json +112 -4
  125. package/package.json +9 -9
  126. package/src/ComboBoxItemCustomTemplate.tsx +10 -0
  127. package/src/ComboBoxPopoverTemplate.tsx +2 -2
  128. package/src/DialogTemplate.tsx +21 -14
  129. package/src/MultiComboBoxItemCustomTemplate.tsx +22 -0
  130. package/src/i18n/messagebundle.properties +29 -8
  131. package/src/themes/ComboBoxItemCustom.css +14 -0
  132. package/src/themes/Dialog.css +12 -7
  133. package/src/themes/FormItemSpan.css +4 -4
  134. package/src/themes/FormLayout.css +4 -4
  135. package/src/themes/MultiComboBoxItemCustom.css +19 -0
  136. package/src/themes/base/Dialog-parameters.css +2 -5
  137. package/src/themes/sap_horizon/Dialog-parameters.css +0 -8
  138. package/src/themes/sap_horizon_dark/Dialog-parameters.css +0 -8
package/dist/Bar.d.ts CHANGED
@@ -51,9 +51,11 @@ declare class Bar extends UI5Element {
51
51
  *
52
52
  * **Note:**
53
53
  *
54
- * - Set accessibleRole to "toolbar" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.
54
+ * - By default, accessibleRole is set to "Toolbar", which renders the ARIA role "toolbar".
55
55
  *
56
- * - If there is only one or no active element, it is recommended to avoid using the "toolbar" role, as it implies a grouping of multiple interactive controls.
56
+ * - Use the default accessibleRole value "Toolbar" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.
57
+ *
58
+ * - If there is only one or no active element, set accessibleRole to "None" to avoid rendering the ARIA role "toolbar", as that role implies a grouping of multiple interactive controls.
57
59
  *
58
60
  * @public
59
61
  * @default "Toolbar"
package/dist/Bar.js CHANGED
@@ -78,9 +78,11 @@ let Bar = class Bar extends UI5Element {
78
78
  *
79
79
  * **Note:**
80
80
  *
81
- * - Set accessibleRole to "toolbar" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.
81
+ * - By default, accessibleRole is set to "Toolbar", which renders the ARIA role "toolbar".
82
82
  *
83
- * - If there is only one or no active element, it is recommended to avoid using the "toolbar" role, as it implies a grouping of multiple interactive controls.
83
+ * - Use the default accessibleRole value "Toolbar" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.
84
+ *
85
+ * - If there is only one or no active element, set accessibleRole to "None" to avoid rendering the ARIA role "toolbar", as that role implies a grouping of multiple interactive controls.
84
86
  *
85
87
  * @public
86
88
  * @default "Toolbar"
package/dist/Bar.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Bar.js","sourceRoot":"","sources":["../src/Bar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type BarDesign from \"./types/BarDesign.js\";\nimport type BarAccessibleRole from \"./types/BarAccessibleRole.js\";\n\n// Template\nimport BarTemplate from \"./BarTemplate.js\";\n\n// Styles\nimport BarCss from \"./generated/themes/Bar.css.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The Bar is a container which is primarily used to hold titles, buttons and input elements\n * and its design and functionality is the basis for page headers and footers.\n * The component consists of three areas to hold its content - startContent slot, default slot and endContent slot.\n * It has the capability to center content, such as a title, while having other components on the left and right side.\n *\n * ### Usage\n * With the use of the design property, you can set the style of the Bar to appear designed like a Header, Subheader, Footer and FloatingFooter.\n *\n * **Note:** Do not place a Bar inside another Bar or inside any bar-like component. Doing so may cause unpredictable behavior.\n *\n * ### Responsive Behavior\n * The default slot will be centered in the available space between the startContent and the endContent areas,\n * therefore it might not always be centered in the entire bar.\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Bar.js\";`\n * @csspart bar - Used to style the wrapper of the content of the component\n * @csspart startContent - Used to style the wrapper of the start content of the component\n * @csspart midContent - Used to style the wrapper of the middle content of the component\n * @csspart endContent - Used to style the wrapper of the end content of the component\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.11\n */\n@customElement({\n\ttag: \"ui5-bar\",\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: BarCss,\n\ttemplate: BarTemplate,\n})\nclass Bar extends UI5Element {\n\t/**\n\t * Defines the component's design.\n\t * @default \"Header\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${BarDesign}` = \"Header\";\n\n\t/**\n\t * Specifies the ARIA role applied to the component for accessibility purposes.\n\t *\n\t * **Note:**\n\t *\n\t * - Set accessibleRole to \"toolbar\" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.\n\t *\n\t * - If there is only one or no active element, it is recommended to avoid using the \"toolbar\" role, as it implies a grouping of multiple interactive controls.\n\t *\n\t * @public\n\t * @default \"Toolbar\"\n\t * @since 2.10.0\n\t *\n\t */\n\t@property()\n\taccessibleRole: `${BarAccessibleRole}` = \"Toolbar\";\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @since 2.16.0\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the bar.\n\t * @default undefined\n\t * @since 2.16.0\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t* Defines the content at the start of the bar.\n\t* @public\n\t*/\n\t@slot()\n\tstartContent!: Slot<HTMLElement>;\n\n\t/**\n\t* Defines the content in the middle of the bar.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement, \"default\": true })\n\tmiddleContent!: DefaultSlot<HTMLElement>;\n\n\t/**\n\t* Defines the content at the end of the bar.\n\t* @public\n\t*/\n\t@slot()\n\tendContent!: Slot<HTMLElement>;\n\n\t_handleResizeBound: () => void;\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"label\": this.ariaLabelText,\n\t\t\t\"role\": this.effectiveRole,\n\t\t};\n\t}\n\n\tget ariaLabelText(): string | undefined {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn getEffectiveAriaLabelText(this);\n\t\t}\n\n\t\treturn this.design;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t}\n\n\thandleResize() {\n\t\tconst bar = this.getDomRef()!;\n\t\tconst barWidth = bar.offsetWidth;\n\t\tconst needShrinked = Array.from(bar.children).some(child => {\n\t\t\treturn (child as HTMLElement).offsetWidth > barWidth / 3;\n\t\t});\n\n\t\tbar.classList.toggle(\"ui5-bar-root-shrinked\", needShrinked);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\n\t\tthis.getDomRef()!.querySelectorAll(\".ui5-bar-content-container\").forEach(child => {\n\t\t\tResizeHandler.register(child as HTMLElement, this._handleResizeBound);\n\t\t}, this);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\n\t\tthis.getDomRef()!.querySelectorAll(\".ui5-bar-content-container\").forEach(child => {\n\t\t\tResizeHandler.deregister(child as HTMLElement, this._handleResizeBound);\n\t\t}, this);\n\t }\n\n\t get effectiveRole() {\n\t\treturn this.accessibleRole.toLowerCase() === \"toolbar\" ? \"toolbar\" as AriaRole : undefined;\n\t }\n}\n\nBar.define();\n\nexport default Bar;\n"]}
1
+ {"version":3,"file":"Bar.js","sourceRoot":"","sources":["../src/Bar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type BarDesign from \"./types/BarDesign.js\";\nimport type BarAccessibleRole from \"./types/BarAccessibleRole.js\";\n\n// Template\nimport BarTemplate from \"./BarTemplate.js\";\n\n// Styles\nimport BarCss from \"./generated/themes/Bar.css.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The Bar is a container which is primarily used to hold titles, buttons and input elements\n * and its design and functionality is the basis for page headers and footers.\n * The component consists of three areas to hold its content - startContent slot, default slot and endContent slot.\n * It has the capability to center content, such as a title, while having other components on the left and right side.\n *\n * ### Usage\n * With the use of the design property, you can set the style of the Bar to appear designed like a Header, Subheader, Footer and FloatingFooter.\n *\n * **Note:** Do not place a Bar inside another Bar or inside any bar-like component. Doing so may cause unpredictable behavior.\n *\n * ### Responsive Behavior\n * The default slot will be centered in the available space between the startContent and the endContent areas,\n * therefore it might not always be centered in the entire bar.\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Bar.js\";`\n * @csspart bar - Used to style the wrapper of the content of the component\n * @csspart startContent - Used to style the wrapper of the start content of the component\n * @csspart midContent - Used to style the wrapper of the middle content of the component\n * @csspart endContent - Used to style the wrapper of the end content of the component\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.11\n */\n@customElement({\n\ttag: \"ui5-bar\",\n\tfastNavigation: true,\n\trenderer: jsxRenderer,\n\tstyles: BarCss,\n\ttemplate: BarTemplate,\n})\nclass Bar extends UI5Element {\n\t/**\n\t * Defines the component's design.\n\t * @default \"Header\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${BarDesign}` = \"Header\";\n\n\t/**\n\t * Specifies the ARIA role applied to the component for accessibility purposes.\n\t *\n\t * **Note:**\n\t *\n\t * - By default, accessibleRole is set to \"Toolbar\", which renders the ARIA role \"toolbar\".\n\t *\n\t * - Use the default accessibleRole value \"Toolbar\" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.\n\t *\n\t * - If there is only one or no active element, set accessibleRole to \"None\" to avoid rendering the ARIA role \"toolbar\", as that role implies a grouping of multiple interactive controls.\n\t *\n\t * @public\n\t * @default \"Toolbar\"\n\t * @since 2.10.0\n\t *\n\t */\n\t@property()\n\taccessibleRole: `${BarAccessibleRole}` = \"Toolbar\";\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @since 2.16.0\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the bar.\n\t * @default undefined\n\t * @since 2.16.0\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t* Defines the content at the start of the bar.\n\t* @public\n\t*/\n\t@slot()\n\tstartContent!: Slot<HTMLElement>;\n\n\t/**\n\t* Defines the content in the middle of the bar.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement, \"default\": true })\n\tmiddleContent!: DefaultSlot<HTMLElement>;\n\n\t/**\n\t* Defines the content at the end of the bar.\n\t* @public\n\t*/\n\t@slot()\n\tendContent!: Slot<HTMLElement>;\n\n\t_handleResizeBound: () => void;\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"label\": this.ariaLabelText,\n\t\t\t\"role\": this.effectiveRole,\n\t\t};\n\t}\n\n\tget ariaLabelText(): string | undefined {\n\t\tif (this.accessibleName || this.accessibleNameRef) {\n\t\t\treturn getEffectiveAriaLabelText(this);\n\t\t}\n\n\t\treturn this.design;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t}\n\n\thandleResize() {\n\t\tconst bar = this.getDomRef()!;\n\t\tconst barWidth = bar.offsetWidth;\n\t\tconst needShrinked = Array.from(bar.children).some(child => {\n\t\t\treturn (child as HTMLElement).offsetWidth > barWidth / 3;\n\t\t});\n\n\t\tbar.classList.toggle(\"ui5-bar-root-shrinked\", needShrinked);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\n\t\tthis.getDomRef()!.querySelectorAll(\".ui5-bar-content-container\").forEach(child => {\n\t\t\tResizeHandler.register(child as HTMLElement, this._handleResizeBound);\n\t\t}, this);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\n\t\tthis.getDomRef()!.querySelectorAll(\".ui5-bar-content-container\").forEach(child => {\n\t\t\tResizeHandler.deregister(child as HTMLElement, this._handleResizeBound);\n\t\t}, this);\n\t }\n\n\t get effectiveRole() {\n\t\treturn this.accessibleRole.toLowerCase() === \"toolbar\" ? \"toolbar\" as AriaRole : undefined;\n\t }\n}\n\nBar.define();\n\nexport default Bar;\n"]}
@@ -76,6 +76,13 @@ declare class Breadcrumbs extends UI5Element implements IToolbarItemContent {
76
76
  * @public
77
77
  */
78
78
  separators: `${BreadcrumbsSeparator}`;
79
+ /**
80
+ * Defines the accessible name of the component.
81
+ * @default undefined
82
+ * @public
83
+ * @since 2.24.0
84
+ */
85
+ accessibleName?: string;
79
86
  /**
80
87
  * Holds the number of items in the overflow.
81
88
  * @default 0
@@ -470,7 +470,7 @@ let Breadcrumbs = Breadcrumbs_1 = class Breadcrumbs extends UI5Element {
470
470
  return !!this.responsivePopover && this.responsivePopover.open;
471
471
  }
472
472
  get _accessibleNameText() {
473
- return Breadcrumbs_1.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);
473
+ return this.accessibleName || Breadcrumbs_1.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);
474
474
  }
475
475
  get _dropdownArrowAccessibleNameText() {
476
476
  return Breadcrumbs_1.i18nBundle.getText(BREADCRUMBS_OVERFLOW_ARIA_LABEL);
@@ -488,6 +488,9 @@ __decorate([
488
488
  __decorate([
489
489
  property()
490
490
  ], Breadcrumbs.prototype, "separators", void 0);
491
+ __decorate([
492
+ property()
493
+ ], Breadcrumbs.prototype, "accessibleName", void 0);
491
494
  __decorate([
492
495
  property({ type: Number, noAttribute: true })
493
496
  ], Breadcrumbs.prototype, "_overflowSize", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../src/Breadcrumbs.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,cAAc,MAAM,yDAAyD,CAAC;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EACN,OAAO,EACP,MAAM,EACN,OAAO,GACP,MAAM,sCAAsC,CAAC;AAE9C,OAAO,aAAa,MAAM,wDAAwD,CAAC;AAEnF,OAAO,cAAc,MAAM,sDAAsD,CAAC;AAClF,OAAO,iBAAiB,MAAM,8BAA8B,CAAC;AAC7D,OAAO,sBAAsB,CAAC;AAK9B,OAAO,EACN,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,yBAAyB,EACzB,gCAAgC,GAChC,MAAM,mCAAmC,CAAC;AAO3C,YAAY;AACZ,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,SAAS;AACT,OAAO,cAAc,MAAM,uCAAuC,CAAC;AACnE,OAAO,qBAAqB,MAAM,8CAA8C,CAAC;AAejF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAuBH,IAAM,WAAW,mBAAjB,MAAM,WAAY,SAAQ,UAAU;IAqDnC;QACC,KAAK,EAAE,CAAC;QAlDT;;;;;;;;UAQE;QAEF,WAAM,GAA2B,UAAU,CAAC;QAE5C;;;;WAIG;QAEH,eAAU,GAA8B,OAAO,CAAC;QAEhD;;;;WAIG;QAEH,kBAAa,GAAG,CAAC,CAAC;QAclB,6BAA6B;QAC7B,0BAAqB,GAAG,IAAI,OAAO,EAA2B,CAAC;QAC/D,+DAA+D;QAC/D,4BAAuB,GAAG,CAAC,CAAC;QAS3B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE;YAC/C,cAAc,EAAE,cAAc,CAAC,IAAI;YACnC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;SACjD,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,IAAI,CAAC,kBAAkB,GAAG;YACzB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,eAAe;YAC9B,eAAe,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/D,IAAI,cAAc,CAAC,KAAa;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,cAAc;gBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvC,OAAO,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAChD,CAAC;SACD,CAAC;IACH,CAAC;IAED,cAAc,CAAC,UAAsB;QACpC,IAAI,UAAU,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAwB,CAAC,EAC9E,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/C,IAAI,YAAY,EAAE,CAAC;gBAClB,iDAAiD;gBACjD,0EAA0E;gBAC1E,0EAA0E;gBAC1E,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAChC,CAAC;QACF,CAAC;IACF,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAC,eAAe,CAAkB,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,MAAM,cAAc,EAAE,CAAC;QAEvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;IAED,UAAU;QACT,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,SAAS;QACR,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE;gBAC/C,cAAc,EAAE,cAAc,CAAC,IAAI;gBACnC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;aACjD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,kBAAkB;QACjB,MAAM,KAAK,GAAqB,IAAI,CAAC,MAAM,CAAC;QAE5C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,IAAI,sBAAsB;QACzB,OAAO,aAAW,CAAC,UAAU,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IACzE,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EACtB,YAAY,GAAG,IAAI,CAAC,8BAA8B,EAAE,EACpD,WAAW,GAAG,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAc,CAAC;QAEpF,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,MAAM,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAE5D,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,sBAAsB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnE,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACR,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,sBAAsB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3F,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACvE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,IAAI,CAAC,uBAAuB,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,YAAY;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,EACnC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EACxB,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EACpB,IAAI,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,IAAI,IAAI,CAAC,GAAG,eAAe,CAAE,CAAC;YAClF,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,wBAAwB,IAAI,KAAK,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAErC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,8CAA8C,CAAE,CAAC;YAC3G,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;IAED,eAAe;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EAC7B,cAAc,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,uBAAuB,CAAE,CAAC,WAAW,CAAC;QACpG,IAAI,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,EAC/C,YAAY,GAAG,CAAC,CAAC;QAElB,IAAI,aAAa,GAAG,cAAc,EAAE,CAAC;YACpC,qDAAqD;YACrD,aAAa,IAAI,IAAI,CAAC,uBAAuB,CAAC;QAC/C,CAAC;QAED,OAAO,CAAC,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC3F,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;YAED,gCAAgC;YAChC,aAAa,IAAI,SAAS,CAAC;YAC3B,YAAY,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAElC,yEAAyE;QACzE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAkB,CAAC,IAAI,GAAG,KAAK,CAAC;QACtC,CAAC;QAED,yDAAyD;QACzD,6CAA6C;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,OAAoB;QACpC,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,CAAC,CAAC;IACV,CAAC;IAED,qBAAqB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EAC7B,SAAS,GAAG,IAAI,CAAC,qBAAqB,EACtC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,CAAC,CAAC,CAAC;QAE9E,OAAO,eAAe,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,CAAoC;QAChD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAc,EAC5B,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EACxB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,EAAE,CAAE,EACpD,EACC,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,GACR,GAAG,CAAC,CAAC,MAAM,CAAC;QAEd,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACrC,MAAM;YACN,OAAO;YACP,OAAO;YACP,QAAQ;SACR,CAAC,EAAE,CAAC;YACJ,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YAC1C,IAAI;YACJ,MAAM;YACN,OAAO;YACP,OAAO;YACP,QAAQ;SACR,CAAC,EAAE,CAAC;YACJ,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,aAAa,CAAC,CAA6B;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EAC7B,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAC9B,EACC,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,GACR,GAAG,CAAC,CAAC;QAEP,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACrC,MAAM;YACN,OAAO;YACP,OAAO;YACP,QAAQ;SACR,CAAC,EAAE,CAAC;YACJ,OAAO;QACR,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACrC,IAAI;YACJ,MAAM;YACN,OAAO;YACP,OAAO;YACP,QAAQ;SACR,CAAC,CAAC;IACJ,CAAC;IAED,yBAAyB,CAAC,CAA8C;QACvE,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EACzC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EACxB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAE,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;YACrC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;SACf,CAAC,EAAE,CAAC;YACJ,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACrD,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,qBAAqB,CAAC,CAAC;YACvE,IAAI,CAAC,iBAAkB,CAAC,IAAI,GAAG,KAAK,CAAC;QACtC,CAAC;IACF,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAoB,0BAA0B,CAAE,CAAC;IACvF,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,iBAAiB;QAChB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC;QACrC,CAAC;IACF,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACxD,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,IAAqB;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,kBAAkB,CAAC,IAAqB;QACvC,iFAAiF;QACjF,mDAAmD;QACnD,OAAO,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAE,KAAqB,CAAC,MAAM,CAAC,CAAC;IAClG,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAG,CAAC,aAAa,CAAC,qBAAqB,IAAI,CAAC,YAAY,GAAG,CAAE,CAAC;QACzG,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,QAAgB,EAAE,IAAY;QAClD,OAAO,aAAW,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,sBAAsB,CAAC,IAAqB,EAAE,QAAgB,EAAE,IAAY;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAEzC,oEAAoE;QACpE,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,IAAI,YAAY,EAAE,CAAC;QACrE,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,YAAY,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,8BAA8B;QAC7B,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,0CAA0C,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE;aACrB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,wBAAwB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,QAAQ,CAAC;IACnD,CAAC;IAED,IAAI,oBAAoB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,wBAAwB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,SAAS,CAAC;YACvB,CAAC;QACF,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAQ,+CAA+C,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,uBAAuB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,KAAK,GAAG,CAAC;IACvD,CAAC;IAED,IAAI,8BAA8B;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACpD,OAAO,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,IAAI,uBAAuB;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,kFAAkF;QAClF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAO,yDAAyD,CAAE,CAAC;IACzG,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,SAAS,EAAE;aACrB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC;aAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aACzC,OAAO,EAAE,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,IAAI,mBAAmB;QACtB,OAAO,IAAI,CAAC,SAAS,EAAE;aACrB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aACzC,OAAO,EAAE,CAAC;IACb,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,+CAA+C;QAEhF,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACrE,KAAK,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;QAED,OAAO,KAAK;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;YACpF,IAAI,CAAC,kBAAkB,GAAG,KAAK,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC;YACtF,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAChD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,uBAAuB;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QAEjC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,YAAY,CAAC;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;QAEhD,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC7B,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,cAAc,IAAI,YAAY,EAAE,CAAC;QAC5E,CAAC;QAED,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,YAAY,EAAE,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,gBAAgB,CAAO,0CAA0C,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,2BAA2B;QAC9B,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACvD,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAChE,CAAC;IAED,IAAI,mBAAmB;QACtB,OAAO,aAAW,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,gCAAgC;QACnC,OAAO,aAAW,CAAC,UAAU,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,aAAW,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,WAAW;QACd,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AAtiBA;IADC,QAAQ,EAAE;2CACiC;AAQ5C;IADC,QAAQ,EAAE;+CACqC;AAQhD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;kDAC5B;AASlB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;0CACvC;AAY9B;IADN,IAAI,CAAC,oBAAoB,CAAC;qCACG;AAnDzB,WAAW;IAtBhB,aAAa,CAAC;QACd,GAAG,EAAE,iBAAiB;QACtB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,CAAC,cAAc,EAAE,qBAAqB,CAAC;KAC/C,CAAC;IACF;;;;;;;;;;OAUG;;IACF,KAAK,CAAC,YAAY,EAAE;QACpB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;GACI,WAAW,CAojBhB;AAED,WAAW,CAAC,MAAM,EAAE,CAAC;AAErB,eAAe,WAAW,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ChangeInfo, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { locationOpen } from \"@ui5/webcomponents-base/dist/Location.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { AccessibilityAttributes } from \"@ui5/webcomponents-base/dist/types.js\";\nimport {\n\tisSpace,\n\tisShow,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport BreadcrumbsDesign from \"./types/BreadcrumbsDesign.js\";\nimport \"./BreadcrumbsItem.js\";\nimport type BreadcrumbsItem from \"./BreadcrumbsItem.js\";\nimport type BreadcrumbsSeparator from \"./types/BreadcrumbsSeparator.js\";\nimport type { IToolbarItemContent } from \"./ToolbarItem.js\";\n\nimport {\n\tBREADCRUMB_ITEM_POS,\n\tBREADCRUMBS_ARIA_LABEL,\n\tBREADCRUMBS_OVERFLOW_ARIA_LABEL,\n\tBREADCRUMBS_CANCEL_BUTTON,\n\tFORM_SELECTABLE_AVALIABLE_VALUES,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type Link from \"./Link.js\";\nimport type { LinkClickEventDetail } from \"./Link.js\";\nimport type Label from \"./Label.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type { ListSelectionChangeEventDetail } from \"./List.js\";\n\n// Templates\nimport BreadcrumbsTemplate from \"./BreadcrumbsTemplate.js\";\n\n// Styles\nimport breadcrumbsCss from \"./generated/themes/Breadcrumbs.css.js\";\nimport breadcrumbsPopoverCss from \"./generated/themes/BreadcrumbsPopover.css.js\";\n\ntype BreadcrumbsItemClickEventDetail = {\n\titem: BreadcrumbsItem;\n\taltKey?: boolean;\n\tctrlKey?: boolean;\n\tmetaKey?: boolean;\n\tshiftKey?: boolean;\n}\n\ntype FocusAdaptor = ITabbable & {\n\tgetlabelWrapper: () => Element | null;\n\tforcedTabIndex: string;\n}\n\n/**\n * @class\n *\n * ### Overview\n * Enables users to navigate between items by providing a list of links to previous steps in the user's navigation path.\n * It helps the user to be aware of their location within the application and allows faster navigation.\n *\n * The last three steps can be accessed as links directly, while the remaining links prior to them are available\n * in a drop-down menu.\n *\n * You can choose the type of separator to be used from a number of predefined options.\n *\n * ### Keyboard Handling\n * The `ui5-breadcrumbs` provides advanced keyboard handling.\n *\n * - [F4], [Alt] + [Up], [Alt] + [Down], [Space], or [Enter] - If the dropdown arrow is focused - opens/closes the drop-down.\n * - [Space],[Enter] - Activates the focused item and triggers the `item-click` event.\n * - [Escape] - Closes the drop-down.\n * - [Left] - If the drop-down is closed - navigates one item to the left.\n * - [Right] - If the drop-down is closed - navigates one item to the right.\n * - [Up] - If the drop-down is open - moves focus to the next item.\n * - [Down] - If the drop-down is open - moves focus to the previous item.\n * - [Home] - Navigates to the first item.\n * - [End] - Navigates to the last item.\n * @constructor\n * @extends UI5Element\n * @implements {IToolbarItemContent}\n * @public\n * @since 1.0.0-rc.15\n */\n@customElement({\n\ttag: \"ui5-breadcrumbs\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: BreadcrumbsTemplate,\n\tstyles: [breadcrumbsCss, breadcrumbsPopoverCss],\n})\n/**\n * Fires when a `BreadcrumbsItem` is clicked.\n *\n * **Note:** You can prevent browser location change by calling `event.preventDefault()`.\n * @param {HTMLElement} item The clicked item.\n * @param {Boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {Boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {Boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {Boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Breadcrumbs extends UI5Element implements IToolbarItemContent {\n\teventDetails!: {\n\t\t\"item-click\": BreadcrumbsItemClickEventDetail,\n\t}\n\t/**\n\t * Defines the visual appearance of the last BreadcrumbsItem.\n\t *\n\t * The Breadcrumbs supports two visual appearances for the last BreadcrumbsItem:\n\t * - \"Standard\" - displaying the last item as \"current page\" (bold and without separator)\n\t * - \"NoCurrentPage\" - displaying the last item as a regular BreadcrumbsItem, followed by separator\n\t * @default \"Standard\"\n\t * @public\n\t*/\n\t@property()\n\tdesign: `${BreadcrumbsDesign}` = \"Standard\";\n\n\t/**\n\t * Determines the visual style of the separator between the breadcrumb items.\n\t * @default \"Slash\"\n\t * @public\n\t */\n\t@property()\n\tseparators: `${BreadcrumbsSeparator}` = \"Slash\";\n\n\t/**\n\t * Holds the number of items in the overflow.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_overflowSize = 0;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * **Note:** Use the `ui5-breadcrumbs-item` component to define the desired items.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: DefaultSlot<BreadcrumbsItem>;\n\n\t_itemNavigation: ItemNavigation\n\t_onResizeHandler: ResizeObserverCallback;\n\n\t// maps items to their widths\n\t_breadcrumbItemWidths = new WeakMap<BreadcrumbsItem, number>();\n\t// the width of the interactive element that opens the overflow\n\t_dropdownArrowLinkWidth = 0;\n\t_labelFocusAdaptor: FocusAdaptor;\n\tresponsivePopover?: ResponsivePopover;\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Auto,\n\t\t\tgetItemsCallback: () => this._getFocusableItems(),\n\t\t});\n\n\t\tthis._onResizeHandler = this._updateOverflow.bind(this);\n\n\t\tthis._labelFocusAdaptor = {\n\t\t\tid: `${this._id}-labelWrapper`,\n\t\t\tgetlabelWrapper: this.getCurrentLocationLabelWrapper.bind(this),\n\t\t\tset forcedTabIndex(value: string) {\n\t\t\t\tconst wrapper = this.getlabelWrapper();\n\t\t\t\twrapper && wrapper.setAttribute(\"tabindex\", value);\n\t\t\t},\n\t\t\tget forcedTabIndex() {\n\t\t\t\tconst wrapper = this.getlabelWrapper();\n\t\t\t\treturn wrapper?.getAttribute(\"tabindex\") || \"\";\n\t\t\t},\n\t\t};\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\") {\n\t\t\tconst itemIndex = this._getItems().indexOf(changeInfo.child as BreadcrumbsItem),\n\t\t\t\tisInOverflow = itemIndex < this._overflowSize;\n\t\t\tif (isInOverflow) {\n\t\t\t\t// the content of an overflowing item has changed\n\t\t\t\t// => need to render the item outside the overflow to obtain its new width\n\t\t\t\t// => lower-down the `_overfowSize` to exclude that item from the overflow\n\t\t\t\tthis._overflowSize = itemIndex;\n\t\t\t}\n\t\t}\n\t}\n\n\t_getItems() {\n\t\treturn this.getSlottedNodes<BreadcrumbsItem>(\"items\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._preprocessItems();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\n\t\tthis._cacheWidths();\n\t\tthis._updateOverflow();\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResizeHandler);\n\t}\n\n\t_initItemNavigation() {\n\t\tif (!this._itemNavigation) {\n\t\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\t\tnavigationMode: NavigationMode.Auto,\n\t\t\t\tgetItemsCallback: () => this._getFocusableItems(),\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Obtains the items for navigation via keyboard\n\t * @private\n\t */\n\t_getFocusableItems() {\n\t\tconst items: Array<ITabbable> = this._links;\n\n\t\tif (!this._isOverflowEmpty) {\n\t\t\titems.unshift(this._dropdownArrowLink);\n\t\t}\n\n\t\tif (this._endsWithCurrentLocation && !this._endsWithCurrentLinkItem) {\n\t\t\titems.push(this._labelFocusAdaptor);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\t/**\n\t * Returns the translatable accessible name for the popover\n\t * @private\n\t */\n\tget _accessibleNamePopover() {\n\t\treturn Breadcrumbs.i18nBundle.getText(FORM_SELECTABLE_AVALIABLE_VALUES);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target,\n\t\t\tlabelWrapper = this.getCurrentLocationLabelWrapper(),\n\t\t\tcurrentItem = (target === labelWrapper) ? this._labelFocusAdaptor : target as Link;\n\n\t\tthis._itemNavigation.setCurrentItem(currentItem);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isDropdownArrowFocused = this._isDropdownArrowFocused;\n\n\t\tif (isShow(e) && isDropdownArrowFocused && !this._isOverflowEmpty) {\n\t\t\te.preventDefault();\n\t\t\tthis._toggleRespPopover();\n\t\t\treturn;\n\t\t}\n\t\tif (isSpace(e) && isDropdownArrowFocused && !this._isOverflowEmpty && !this._isPickerOpen) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tif ((isEnter(e) || isSpace(e)) && this._isCurrentLocationLabelFocused) {\n\t\t\tthis._onLabelPress(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this._isDropdownArrowFocused && isSpace(e) && !this._isOverflowEmpty && !this._isPickerOpen) {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t/**\n\t * Caches the space required to render the content\n\t * @private\n\t */\n\t_cacheWidths() {\n\t\tconst map = this._breadcrumbItemWidths,\n\t\t\t items = this._getItems(),\n\t\t\t label = this._currentLocationLabel;\n\n\t\tfor (let i = this._overflowSize; i < items.length; i++) {\n\t\t\tconst item = items[i],\n\t\t\t\tlink = this.shadowRoot!.querySelector<HTMLElement>(`#${item._id}-link-wrapper`)!;\n\t\t\tmap.set(item, this._getElementWidth(link));\n\t\t}\n\n\t\tif (items.length && this._endsWithCurrentLocation && label) {\n\t\t\tconst item = items[items.length - 1];\n\n\t\t\tmap.set(item, this._getElementWidth(label));\n\t\t}\n\n\t\tif (!this._isOverflowEmpty) {\n\t\t\tconst arrow = this.shadowRoot!.querySelector<HTMLElement>(\".ui5-breadcrumbs-dropdown-arrow-link-wrapper\")!;\n\t\t\tthis._dropdownArrowLinkWidth = this._getElementWidth(arrow);\n\t\t}\n\t}\n\n\t_updateOverflow() {\n\t\tconst items = this._getItems(),\n\t\t\tavailableWidth = this.shadowRoot!.querySelector<HTMLElement>(\".ui5-breadcrumbs-root\")!.offsetWidth;\n\t\tlet requiredWidth = this._getTotalContentWidth(),\n\t\t\toverflowSize = 0;\n\n\t\tif (requiredWidth > availableWidth) {\n\t\t\t// need to show the component that opens the overflow\n\t\t\trequiredWidth += this._dropdownArrowLinkWidth;\n\t\t}\n\n\t\twhile ((requiredWidth >= availableWidth) && (overflowSize < this._maxAllowedOverflowSize)) {\n\t\t\tconst itemToOverflow = items[overflowSize];\n\t\t\tlet itemWidth = 0;\n\n\t\t\tif (this._isItemVisible(itemToOverflow)) {\n\t\t\t\titemWidth = this._breadcrumbItemWidths.get(itemToOverflow) || 0;\n\t\t\t}\n\n\t\t\t// move the item to the overflow\n\t\t\trequiredWidth -= itemWidth;\n\t\t\toverflowSize++;\n\t\t}\n\n\t\tthis._overflowSize = overflowSize;\n\n\t\t// if overflow was emptied while picker was open => close redundant popup\n\t\tif (this._isOverflowEmpty && this._isPickerOpen) {\n\t\t\tthis.responsivePopover!.open = false;\n\t\t}\n\n\t\t// if the last focused link has done into the overflow =>\n\t\t// ensure the first visible link is focusable\n\t\tconst focusableItems = this._getFocusableItems();\n\t\tif (!focusableItems.some(x => x.forcedTabIndex === \"0\")) {\n\t\t\tthis._itemNavigation.setCurrentItem(focusableItems[0]);\n\t\t}\n\t}\n\n\t_getElementWidth(element: HTMLElement) {\n\t\tif (element) {\n\t\t\treturn Math.ceil(element.getBoundingClientRect().width);\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t_getTotalContentWidth() {\n\t\tconst items = this._getItems(),\n\t\t\twidthsMap = this._breadcrumbItemWidths,\n\t\t\ttotalLinksWidth = items.reduce((sum, link) => sum + widthsMap.get(link)!, 0);\n\n\t\treturn totalLinksWidth;\n\t}\n\n\t_onLinkPress(e: CustomEvent<LinkClickEventDetail>) {\n\t\tconst link = e.target as Link,\n\t\t\titems = this._getItems(),\n\t\t\titem = items.find(x => `${x._id}-link` === link.id)!,\n\t\t\t{\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e.detail;\n\n\t\tif (!item.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t})) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"item-click\", {\n\t\t\titem,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t})) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onLabelPress(e: MouseEvent | KeyboardEvent) {\n\t\tconst items = this._getItems(),\n\t\t\titem = items[items.length - 1],\n\t\t\t{\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\tif (!item.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t})) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"item-click\", {\n\t\t\titem,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\t}\n\n\t_onOverflowListItemSelect(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst listItem = e.detail.selectedItems[0],\n\t\t\titems = this._getItems(),\n\t\t\titem = items.find(x => `${x._id}-li` === listItem.id)!;\n\n\t\tif (!item.fireDecoratorEvent(\"click\", {\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false,\n\t\t\tshiftKey: false,\n\t\t})) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.fireDecoratorEvent(\"item-click\", { item })) {\n\t\t\tlocationOpen(item.href, item.target || \"_self\", \"noopener,noreferrer\");\n\t\t\tthis.responsivePopover!.open = false;\n\t\t}\n\t}\n\n\t_respPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_toggleRespPopover() {\n\t\tthis.responsivePopover = this._respPopover();\n\n\t\tif (this._isPickerOpen) {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t_closeRespPopover() {\n\t\tif (this.responsivePopover) {\n\t\t\tthis.responsivePopover.open = false;\n\t\t}\n\t}\n\n\t_openRespPopover() {\n\t\tthis.responsivePopover = this._respPopover();\n\t\tthis.responsivePopover.opener = this._dropdownArrowLink;\n\t\tthis.responsivePopover.open = true;\n\t}\n\n\t_isItemVisible(item: BreadcrumbsItem) {\n\t\treturn !item.hidden && this._hasVisibleContent(item);\n\t}\n\n\t_hasVisibleContent(item: BreadcrumbsItem) {\n\t\t// the check is not complete but may be extended in the future if needed to cover\n\t\t// cases besides the standard (UX-recommended) ones\n\t\treturn item.innerText || Array.from(item.children).some(child => !(child as HTMLElement).hidden);\n\t}\n\n\t_preprocessItems() {\n\t\tthis.items.forEach(item => {\n\t\t\titem._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;\n\t\t});\n\t}\n\n\t_getItemPositionText(position: number, size: number) {\n\t\treturn Breadcrumbs.i18nBundle.getText(BREADCRUMB_ITEM_POS, position, size);\n\t}\n\n\t_getItemAccessibleName(item: BreadcrumbsItem, position: number, size: number) {\n\t\tconst positionText = this._getItemPositionText(position, size);\n\t\tconst itemsText = item.textContent || \"\";\n\n\t\t// innerText is needed as it is no longer read out when label is set\n\t\tlet text = \"\";\n\t\tif (item.accessibleName) {\n\t\t\ttext = `${itemsText.trim()} ${item.accessibleName} ${positionText}`;\n\t\t} else {\n\t\t\ttext = `${itemsText.trim()} ${positionText}`;\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tgetCurrentLocationLabelWrapper() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-breadcrumbs-current-location > span\");\n\t}\n\n\tget _visibleItems() {\n\t\treturn this._getItems()\n\t\t\t.slice(this._overflowSize)\n\t\t\t.filter(i => this._isItemVisible(i));\n\t}\n\n\tget _endsWithCurrentLinkItem() {\n\t\tconst items = this._getItems();\n\t\treturn (items.length && items[items.length - 1].href);\n\t}\n\n\tget _endsWithCurrentLocation() {\n\t\treturn this.design === BreadcrumbsDesign.Standard;\n\t}\n\n\tget _currentLocationText() {\n\t\tconst items = this._getItems();\n\t\tif (this._endsWithCurrentLocation && items.length) {\n\t\t\tconst item = items[items.length - 1];\n\t\t\tif (this._isItemVisible(item)) {\n\t\t\t\treturn item.innerText;\n\t\t\t}\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tget _currentLocationLabel() {\n\t\treturn this.shadowRoot!.querySelector<Label>(\".ui5-breadcrumbs-current-location [ui5-label]\");\n\t}\n\n\tget _isDropdownArrowFocused() {\n\t\treturn this._dropdownArrowLink.forcedTabIndex === \"0\";\n\t}\n\n\tget _isCurrentLocationLabelFocused() {\n\t\tconst label = this.getCurrentLocationLabelWrapper();\n\t\treturn label && label.tabIndex === 0;\n\t}\n\n\t/**\n\t * Returns the maximum allowed count of items in the overflow\n\t * with respect to the UX requirement to never overflow the last visible item\n\t */\n\tget _maxAllowedOverflowSize() {\n\t\tconst items = this._getItems().filter(item => this._isItemVisible(item));\n\t\t// all items except tha last visible one are allowed to overflow by UX requirement\n\t\treturn items.length - 1;\n\t}\n\n\t/**\n\t * Getter for the interactive element that opens the overflow\n\t * @private\n\t */\n\tget _dropdownArrowLink() {\n\t\treturn this.shadowRoot!.querySelector<Link>(\".ui5-breadcrumbs-dropdown-arrow-link-wrapper [ui5-link]\")!;\n\t}\n\n\t/**\n\t * Getter for the list of abstract breadcrumb items to be rendered as list-items inside the overflow\n\t */\n\tget _overflowItemsData() {\n\t\treturn this._getItems()\n\t\t\t.slice(0, this._overflowSize)\n\t\t\t.filter(item => this._isItemVisible(item))\n\t\t\t.reverse();\n\t}\n\n\t/**\n\t * Returns all items that should be displayed in the popover on mobile devices\n\t * @private\n\t */\n\tget _mobilePopoverItems() {\n\t\treturn this._getItems()\n\t\t\t.filter(item => this._isItemVisible(item))\n\t\t\t.reverse();\n\t}\n\n\t/**\n\t * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow\n\t */\n\tget _linksData() {\n\t\tconst items = this._visibleItems;\n\t\tconst itemsCount = items.length; // get size before removing of current location\n\n\t\tif (this._endsWithCurrentLocation && !this._endsWithCurrentLinkItem) {\n\t\t\titems.pop();\n\t\t}\n\n\t\treturn items\n\t\t\t.map((item, index) => {\n\t\t\t\titem._accessibleNameText = this._getItemAccessibleName(item, index + 1, itemsCount);\n\t\t\t\titem._isCurrentPageItem = index === (itemsCount - 1) && this._endsWithCurrentLocation;\n\t\t\t\titem._needsSeparator = !item._isCurrentPageItem;\n\t\t\t\treturn item;\n\t\t\t});\n\t}\n\n\t/**\n\t * Getter for accessible name of the current location. Includes the position of the current location and the size of the breadcrumbs\n\t */\n\tget _currentLocationAccName() {\n\t\tconst items = this._visibleItems;\n\n\t\tconst positionText = this._getItemPositionText(items.length, items.length);\n\t\tconst lastItem = items[items.length - 1];\n\n\t\tif (!lastItem) {\n\t\t\treturn positionText;\n\t\t}\n\n\t\tconst lastItemText = lastItem.textContent || \"\";\n\n\t\tif (lastItem.accessibleName) {\n\t\t\treturn `${lastItemText.trim()} ${lastItem.accessibleName} ${positionText}`;\n\t\t}\n\n\t\treturn `${lastItemText.trim()} ${positionText}`;\n\t}\n\n\t/**\n\t * Getter for the list of links corresponding to the abstract breadcrumb items\n\t */\n\tget _links() {\n\t\treturn Array.from(this.shadowRoot!.querySelectorAll<Link>(\".ui5-breadcrumbs-link-wrapper [ui5-link]\"));\n\t}\n\n\tget _isOverflowEmpty() {\n\t\treturn this._overflowItemsData.length === 0;\n\t}\n\n\tget linkAccessibilityAttributes(): Pick<AccessibilityAttributes, \"hasPopup\"> {\n\t\treturn {\n\t\t\thasPopup: this._isOverflowEmpty ? undefined : \"listbox\",\n\t\t};\n\t}\n\n\tget _isPickerOpen() {\n\t\treturn !!this.responsivePopover && this.responsivePopover.open;\n\t}\n\n\tget _accessibleNameText() {\n\t\treturn Breadcrumbs.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);\n\t}\n\n\tget _dropdownArrowAccessibleNameText() {\n\t\treturn Breadcrumbs.i18nBundle.getText(BREADCRUMBS_OVERFLOW_ARIA_LABEL);\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn Breadcrumbs.i18nBundle.getText(BREADCRUMBS_CANCEL_BUTTON);\n\t}\n\tget hasOverflow() {\n\t\treturn true;\n\t}\n}\n\nBreadcrumbs.define();\n\nexport default Breadcrumbs;\nexport type {\n\tBreadcrumbsItemClickEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../src/Breadcrumbs.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ChangeInfo, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { locationOpen } from \"@ui5/webcomponents-base/dist/Location.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { AccessibilityAttributes } from \"@ui5/webcomponents-base/dist/types.js\";\nimport {\n\tisSpace,\n\tisShow,\n\tisEnter,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport BreadcrumbsDesign from \"./types/BreadcrumbsDesign.js\";\nimport \"./BreadcrumbsItem.js\";\nimport type BreadcrumbsItem from \"./BreadcrumbsItem.js\";\nimport type BreadcrumbsSeparator from \"./types/BreadcrumbsSeparator.js\";\nimport type { IToolbarItemContent } from \"./ToolbarItem.js\";\n\nimport {\n\tBREADCRUMB_ITEM_POS,\n\tBREADCRUMBS_ARIA_LABEL,\n\tBREADCRUMBS_OVERFLOW_ARIA_LABEL,\n\tBREADCRUMBS_CANCEL_BUTTON,\n\tFORM_SELECTABLE_AVALIABLE_VALUES,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type Link from \"./Link.js\";\nimport type { LinkClickEventDetail } from \"./Link.js\";\nimport type Label from \"./Label.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type { ListSelectionChangeEventDetail } from \"./List.js\";\n\n// Templates\nimport BreadcrumbsTemplate from \"./BreadcrumbsTemplate.js\";\n\n// Styles\nimport breadcrumbsCss from \"./generated/themes/Breadcrumbs.css.js\";\nimport breadcrumbsPopoverCss from \"./generated/themes/BreadcrumbsPopover.css.js\";\n\ntype BreadcrumbsItemClickEventDetail = {\n\titem: BreadcrumbsItem;\n\taltKey?: boolean;\n\tctrlKey?: boolean;\n\tmetaKey?: boolean;\n\tshiftKey?: boolean;\n}\n\ntype FocusAdaptor = ITabbable & {\n\tgetlabelWrapper: () => Element | null;\n\tforcedTabIndex: string;\n}\n\n/**\n * @class\n *\n * ### Overview\n * Enables users to navigate between items by providing a list of links to previous steps in the user's navigation path.\n * It helps the user to be aware of their location within the application and allows faster navigation.\n *\n * The last three steps can be accessed as links directly, while the remaining links prior to them are available\n * in a drop-down menu.\n *\n * You can choose the type of separator to be used from a number of predefined options.\n *\n * ### Keyboard Handling\n * The `ui5-breadcrumbs` provides advanced keyboard handling.\n *\n * - [F4], [Alt] + [Up], [Alt] + [Down], [Space], or [Enter] - If the dropdown arrow is focused - opens/closes the drop-down.\n * - [Space],[Enter] - Activates the focused item and triggers the `item-click` event.\n * - [Escape] - Closes the drop-down.\n * - [Left] - If the drop-down is closed - navigates one item to the left.\n * - [Right] - If the drop-down is closed - navigates one item to the right.\n * - [Up] - If the drop-down is open - moves focus to the next item.\n * - [Down] - If the drop-down is open - moves focus to the previous item.\n * - [Home] - Navigates to the first item.\n * - [End] - Navigates to the last item.\n * @constructor\n * @extends UI5Element\n * @implements {IToolbarItemContent}\n * @public\n * @since 1.0.0-rc.15\n */\n@customElement({\n\ttag: \"ui5-breadcrumbs\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: BreadcrumbsTemplate,\n\tstyles: [breadcrumbsCss, breadcrumbsPopoverCss],\n})\n/**\n * Fires when a `BreadcrumbsItem` is clicked.\n *\n * **Note:** You can prevent browser location change by calling `event.preventDefault()`.\n * @param {HTMLElement} item The clicked item.\n * @param {Boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {Boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {Boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {Boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Breadcrumbs extends UI5Element implements IToolbarItemContent {\n\teventDetails!: {\n\t\t\"item-click\": BreadcrumbsItemClickEventDetail,\n\t}\n\t/**\n\t * Defines the visual appearance of the last BreadcrumbsItem.\n\t *\n\t * The Breadcrumbs supports two visual appearances for the last BreadcrumbsItem:\n\t * - \"Standard\" - displaying the last item as \"current page\" (bold and without separator)\n\t * - \"NoCurrentPage\" - displaying the last item as a regular BreadcrumbsItem, followed by separator\n\t * @default \"Standard\"\n\t * @public\n\t*/\n\t@property()\n\tdesign: `${BreadcrumbsDesign}` = \"Standard\";\n\n\t/**\n\t * Determines the visual style of the separator between the breadcrumb items.\n\t * @default \"Slash\"\n\t * @public\n\t */\n\t@property()\n\tseparators: `${BreadcrumbsSeparator}` = \"Slash\";\n\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.24.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Holds the number of items in the overflow.\n\t * @default 0\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_overflowSize = 0;\n\n\t/**\n\t * Defines the component items.\n\t *\n\t * **Note:** Use the `ui5-breadcrumbs-item` component to define the desired items.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: DefaultSlot<BreadcrumbsItem>;\n\n\t_itemNavigation: ItemNavigation\n\t_onResizeHandler: ResizeObserverCallback;\n\n\t// maps items to their widths\n\t_breadcrumbItemWidths = new WeakMap<BreadcrumbsItem, number>();\n\t// the width of the interactive element that opens the overflow\n\t_dropdownArrowLinkWidth = 0;\n\t_labelFocusAdaptor: FocusAdaptor;\n\tresponsivePopover?: ResponsivePopover;\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Auto,\n\t\t\tgetItemsCallback: () => this._getFocusableItems(),\n\t\t});\n\n\t\tthis._onResizeHandler = this._updateOverflow.bind(this);\n\n\t\tthis._labelFocusAdaptor = {\n\t\t\tid: `${this._id}-labelWrapper`,\n\t\t\tgetlabelWrapper: this.getCurrentLocationLabelWrapper.bind(this),\n\t\t\tset forcedTabIndex(value: string) {\n\t\t\t\tconst wrapper = this.getlabelWrapper();\n\t\t\t\twrapper && wrapper.setAttribute(\"tabindex\", value);\n\t\t\t},\n\t\t\tget forcedTabIndex() {\n\t\t\t\tconst wrapper = this.getlabelWrapper();\n\t\t\t\treturn wrapper?.getAttribute(\"tabindex\") || \"\";\n\t\t\t},\n\t\t};\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\") {\n\t\t\tconst itemIndex = this._getItems().indexOf(changeInfo.child as BreadcrumbsItem),\n\t\t\t\tisInOverflow = itemIndex < this._overflowSize;\n\t\t\tif (isInOverflow) {\n\t\t\t\t// the content of an overflowing item has changed\n\t\t\t\t// => need to render the item outside the overflow to obtain its new width\n\t\t\t\t// => lower-down the `_overfowSize` to exclude that item from the overflow\n\t\t\t\tthis._overflowSize = itemIndex;\n\t\t\t}\n\t\t}\n\t}\n\n\t_getItems() {\n\t\treturn this.getSlottedNodes<BreadcrumbsItem>(\"items\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._preprocessItems();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\n\t\tthis._cacheWidths();\n\t\tthis._updateOverflow();\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResizeHandler);\n\t}\n\n\t_initItemNavigation() {\n\t\tif (!this._itemNavigation) {\n\t\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\t\tnavigationMode: NavigationMode.Auto,\n\t\t\t\tgetItemsCallback: () => this._getFocusableItems(),\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Obtains the items for navigation via keyboard\n\t * @private\n\t */\n\t_getFocusableItems() {\n\t\tconst items: Array<ITabbable> = this._links;\n\n\t\tif (!this._isOverflowEmpty) {\n\t\t\titems.unshift(this._dropdownArrowLink);\n\t\t}\n\n\t\tif (this._endsWithCurrentLocation && !this._endsWithCurrentLinkItem) {\n\t\t\titems.push(this._labelFocusAdaptor);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\t/**\n\t * Returns the translatable accessible name for the popover\n\t * @private\n\t */\n\tget _accessibleNamePopover() {\n\t\treturn Breadcrumbs.i18nBundle.getText(FORM_SELECTABLE_AVALIABLE_VALUES);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target,\n\t\t\tlabelWrapper = this.getCurrentLocationLabelWrapper(),\n\t\t\tcurrentItem = (target === labelWrapper) ? this._labelFocusAdaptor : target as Link;\n\n\t\tthis._itemNavigation.setCurrentItem(currentItem);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isDropdownArrowFocused = this._isDropdownArrowFocused;\n\n\t\tif (isShow(e) && isDropdownArrowFocused && !this._isOverflowEmpty) {\n\t\t\te.preventDefault();\n\t\t\tthis._toggleRespPopover();\n\t\t\treturn;\n\t\t}\n\t\tif (isSpace(e) && isDropdownArrowFocused && !this._isOverflowEmpty && !this._isPickerOpen) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tif ((isEnter(e) || isSpace(e)) && this._isCurrentLocationLabelFocused) {\n\t\t\tthis._onLabelPress(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this._isDropdownArrowFocused && isSpace(e) && !this._isOverflowEmpty && !this._isPickerOpen) {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t/**\n\t * Caches the space required to render the content\n\t * @private\n\t */\n\t_cacheWidths() {\n\t\tconst map = this._breadcrumbItemWidths,\n\t\t\t items = this._getItems(),\n\t\t\t label = this._currentLocationLabel;\n\n\t\tfor (let i = this._overflowSize; i < items.length; i++) {\n\t\t\tconst item = items[i],\n\t\t\t\tlink = this.shadowRoot!.querySelector<HTMLElement>(`#${item._id}-link-wrapper`)!;\n\t\t\tmap.set(item, this._getElementWidth(link));\n\t\t}\n\n\t\tif (items.length && this._endsWithCurrentLocation && label) {\n\t\t\tconst item = items[items.length - 1];\n\n\t\t\tmap.set(item, this._getElementWidth(label));\n\t\t}\n\n\t\tif (!this._isOverflowEmpty) {\n\t\t\tconst arrow = this.shadowRoot!.querySelector<HTMLElement>(\".ui5-breadcrumbs-dropdown-arrow-link-wrapper\")!;\n\t\t\tthis._dropdownArrowLinkWidth = this._getElementWidth(arrow);\n\t\t}\n\t}\n\n\t_updateOverflow() {\n\t\tconst items = this._getItems(),\n\t\t\tavailableWidth = this.shadowRoot!.querySelector<HTMLElement>(\".ui5-breadcrumbs-root\")!.offsetWidth;\n\t\tlet requiredWidth = this._getTotalContentWidth(),\n\t\t\toverflowSize = 0;\n\n\t\tif (requiredWidth > availableWidth) {\n\t\t\t// need to show the component that opens the overflow\n\t\t\trequiredWidth += this._dropdownArrowLinkWidth;\n\t\t}\n\n\t\twhile ((requiredWidth >= availableWidth) && (overflowSize < this._maxAllowedOverflowSize)) {\n\t\t\tconst itemToOverflow = items[overflowSize];\n\t\t\tlet itemWidth = 0;\n\n\t\t\tif (this._isItemVisible(itemToOverflow)) {\n\t\t\t\titemWidth = this._breadcrumbItemWidths.get(itemToOverflow) || 0;\n\t\t\t}\n\n\t\t\t// move the item to the overflow\n\t\t\trequiredWidth -= itemWidth;\n\t\t\toverflowSize++;\n\t\t}\n\n\t\tthis._overflowSize = overflowSize;\n\n\t\t// if overflow was emptied while picker was open => close redundant popup\n\t\tif (this._isOverflowEmpty && this._isPickerOpen) {\n\t\t\tthis.responsivePopover!.open = false;\n\t\t}\n\n\t\t// if the last focused link has done into the overflow =>\n\t\t// ensure the first visible link is focusable\n\t\tconst focusableItems = this._getFocusableItems();\n\t\tif (!focusableItems.some(x => x.forcedTabIndex === \"0\")) {\n\t\t\tthis._itemNavigation.setCurrentItem(focusableItems[0]);\n\t\t}\n\t}\n\n\t_getElementWidth(element: HTMLElement) {\n\t\tif (element) {\n\t\t\treturn Math.ceil(element.getBoundingClientRect().width);\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t_getTotalContentWidth() {\n\t\tconst items = this._getItems(),\n\t\t\twidthsMap = this._breadcrumbItemWidths,\n\t\t\ttotalLinksWidth = items.reduce((sum, link) => sum + widthsMap.get(link)!, 0);\n\n\t\treturn totalLinksWidth;\n\t}\n\n\t_onLinkPress(e: CustomEvent<LinkClickEventDetail>) {\n\t\tconst link = e.target as Link,\n\t\t\titems = this._getItems(),\n\t\t\titem = items.find(x => `${x._id}-link` === link.id)!,\n\t\t\t{\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e.detail;\n\n\t\tif (!item.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t})) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"item-click\", {\n\t\t\titem,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t})) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onLabelPress(e: MouseEvent | KeyboardEvent) {\n\t\tconst items = this._getItems(),\n\t\t\titem = items[items.length - 1],\n\t\t\t{\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\tif (!item.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t})) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireDecoratorEvent(\"item-click\", {\n\t\t\titem,\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\t}\n\n\t_onOverflowListItemSelect(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tconst listItem = e.detail.selectedItems[0],\n\t\t\titems = this._getItems(),\n\t\t\titem = items.find(x => `${x._id}-li` === listItem.id)!;\n\n\t\tif (!item.fireDecoratorEvent(\"click\", {\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false,\n\t\t\tshiftKey: false,\n\t\t})) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.fireDecoratorEvent(\"item-click\", { item })) {\n\t\t\tlocationOpen(item.href, item.target || \"_self\", \"noopener,noreferrer\");\n\t\t\tthis.responsivePopover!.open = false;\n\t\t}\n\t}\n\n\t_respPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_toggleRespPopover() {\n\t\tthis.responsivePopover = this._respPopover();\n\n\t\tif (this._isPickerOpen) {\n\t\t\tthis._closeRespPopover();\n\t\t} else {\n\t\t\tthis._openRespPopover();\n\t\t}\n\t}\n\n\t_closeRespPopover() {\n\t\tif (this.responsivePopover) {\n\t\t\tthis.responsivePopover.open = false;\n\t\t}\n\t}\n\n\t_openRespPopover() {\n\t\tthis.responsivePopover = this._respPopover();\n\t\tthis.responsivePopover.opener = this._dropdownArrowLink;\n\t\tthis.responsivePopover.open = true;\n\t}\n\n\t_isItemVisible(item: BreadcrumbsItem) {\n\t\treturn !item.hidden && this._hasVisibleContent(item);\n\t}\n\n\t_hasVisibleContent(item: BreadcrumbsItem) {\n\t\t// the check is not complete but may be extended in the future if needed to cover\n\t\t// cases besides the standard (UX-recommended) ones\n\t\treturn item.innerText || Array.from(item.children).some(child => !(child as HTMLElement).hidden);\n\t}\n\n\t_preprocessItems() {\n\t\tthis.items.forEach(item => {\n\t\t\titem._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;\n\t\t});\n\t}\n\n\t_getItemPositionText(position: number, size: number) {\n\t\treturn Breadcrumbs.i18nBundle.getText(BREADCRUMB_ITEM_POS, position, size);\n\t}\n\n\t_getItemAccessibleName(item: BreadcrumbsItem, position: number, size: number) {\n\t\tconst positionText = this._getItemPositionText(position, size);\n\t\tconst itemsText = item.textContent || \"\";\n\n\t\t// innerText is needed as it is no longer read out when label is set\n\t\tlet text = \"\";\n\t\tif (item.accessibleName) {\n\t\t\ttext = `${itemsText.trim()} ${item.accessibleName} ${positionText}`;\n\t\t} else {\n\t\t\ttext = `${itemsText.trim()} ${positionText}`;\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tgetCurrentLocationLabelWrapper() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-breadcrumbs-current-location > span\");\n\t}\n\n\tget _visibleItems() {\n\t\treturn this._getItems()\n\t\t\t.slice(this._overflowSize)\n\t\t\t.filter(i => this._isItemVisible(i));\n\t}\n\n\tget _endsWithCurrentLinkItem() {\n\t\tconst items = this._getItems();\n\t\treturn (items.length && items[items.length - 1].href);\n\t}\n\n\tget _endsWithCurrentLocation() {\n\t\treturn this.design === BreadcrumbsDesign.Standard;\n\t}\n\n\tget _currentLocationText() {\n\t\tconst items = this._getItems();\n\t\tif (this._endsWithCurrentLocation && items.length) {\n\t\t\tconst item = items[items.length - 1];\n\t\t\tif (this._isItemVisible(item)) {\n\t\t\t\treturn item.innerText;\n\t\t\t}\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tget _currentLocationLabel() {\n\t\treturn this.shadowRoot!.querySelector<Label>(\".ui5-breadcrumbs-current-location [ui5-label]\");\n\t}\n\n\tget _isDropdownArrowFocused() {\n\t\treturn this._dropdownArrowLink.forcedTabIndex === \"0\";\n\t}\n\n\tget _isCurrentLocationLabelFocused() {\n\t\tconst label = this.getCurrentLocationLabelWrapper();\n\t\treturn label && label.tabIndex === 0;\n\t}\n\n\t/**\n\t * Returns the maximum allowed count of items in the overflow\n\t * with respect to the UX requirement to never overflow the last visible item\n\t */\n\tget _maxAllowedOverflowSize() {\n\t\tconst items = this._getItems().filter(item => this._isItemVisible(item));\n\t\t// all items except tha last visible one are allowed to overflow by UX requirement\n\t\treturn items.length - 1;\n\t}\n\n\t/**\n\t * Getter for the interactive element that opens the overflow\n\t * @private\n\t */\n\tget _dropdownArrowLink() {\n\t\treturn this.shadowRoot!.querySelector<Link>(\".ui5-breadcrumbs-dropdown-arrow-link-wrapper [ui5-link]\")!;\n\t}\n\n\t/**\n\t * Getter for the list of abstract breadcrumb items to be rendered as list-items inside the overflow\n\t */\n\tget _overflowItemsData() {\n\t\treturn this._getItems()\n\t\t\t.slice(0, this._overflowSize)\n\t\t\t.filter(item => this._isItemVisible(item))\n\t\t\t.reverse();\n\t}\n\n\t/**\n\t * Returns all items that should be displayed in the popover on mobile devices\n\t * @private\n\t */\n\tget _mobilePopoverItems() {\n\t\treturn this._getItems()\n\t\t\t.filter(item => this._isItemVisible(item))\n\t\t\t.reverse();\n\t}\n\n\t/**\n\t * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow\n\t */\n\tget _linksData() {\n\t\tconst items = this._visibleItems;\n\t\tconst itemsCount = items.length; // get size before removing of current location\n\n\t\tif (this._endsWithCurrentLocation && !this._endsWithCurrentLinkItem) {\n\t\t\titems.pop();\n\t\t}\n\n\t\treturn items\n\t\t\t.map((item, index) => {\n\t\t\t\titem._accessibleNameText = this._getItemAccessibleName(item, index + 1, itemsCount);\n\t\t\t\titem._isCurrentPageItem = index === (itemsCount - 1) && this._endsWithCurrentLocation;\n\t\t\t\titem._needsSeparator = !item._isCurrentPageItem;\n\t\t\t\treturn item;\n\t\t\t});\n\t}\n\n\t/**\n\t * Getter for accessible name of the current location. Includes the position of the current location and the size of the breadcrumbs\n\t */\n\tget _currentLocationAccName() {\n\t\tconst items = this._visibleItems;\n\n\t\tconst positionText = this._getItemPositionText(items.length, items.length);\n\t\tconst lastItem = items[items.length - 1];\n\n\t\tif (!lastItem) {\n\t\t\treturn positionText;\n\t\t}\n\n\t\tconst lastItemText = lastItem.textContent || \"\";\n\n\t\tif (lastItem.accessibleName) {\n\t\t\treturn `${lastItemText.trim()} ${lastItem.accessibleName} ${positionText}`;\n\t\t}\n\n\t\treturn `${lastItemText.trim()} ${positionText}`;\n\t}\n\n\t/**\n\t * Getter for the list of links corresponding to the abstract breadcrumb items\n\t */\n\tget _links() {\n\t\treturn Array.from(this.shadowRoot!.querySelectorAll<Link>(\".ui5-breadcrumbs-link-wrapper [ui5-link]\"));\n\t}\n\n\tget _isOverflowEmpty() {\n\t\treturn this._overflowItemsData.length === 0;\n\t}\n\n\tget linkAccessibilityAttributes(): Pick<AccessibilityAttributes, \"hasPopup\"> {\n\t\treturn {\n\t\t\thasPopup: this._isOverflowEmpty ? undefined : \"listbox\",\n\t\t};\n\t}\n\n\tget _isPickerOpen() {\n\t\treturn !!this.responsivePopover && this.responsivePopover.open;\n\t}\n\n\tget _accessibleNameText() {\n\t\treturn this.accessibleName || Breadcrumbs.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);\n\t}\n\n\tget _dropdownArrowAccessibleNameText() {\n\t\treturn Breadcrumbs.i18nBundle.getText(BREADCRUMBS_OVERFLOW_ARIA_LABEL);\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn Breadcrumbs.i18nBundle.getText(BREADCRUMBS_CANCEL_BUTTON);\n\t}\n\tget hasOverflow() {\n\t\treturn true;\n\t}\n}\n\nBreadcrumbs.define();\n\nexport default Breadcrumbs;\nexport type {\n\tBreadcrumbsItemClickEventDetail,\n};\n"]}
@@ -12,12 +12,14 @@ import type { IFormInputElement } from "@ui5/webcomponents-base/dist/features/In
12
12
  import type { IIcon } from "./Icon.js";
13
13
  import "./ComboBoxItem.js";
14
14
  import type ComboBoxItem from "./ComboBoxItem.js";
15
+ import "./ComboBoxItemCustom.js";
15
16
  import type Popover from "./Popover.js";
16
17
  import type ResponsivePopover from "./ResponsivePopover.js";
17
18
  import type List from "./List.js";
18
19
  import type { ListItemClickEventDetail } from "./List.js";
19
20
  import "./ComboBoxItemGroup.js";
20
21
  import type ComboBoxFilter from "./types/ComboBoxFilter.js";
22
+ import ComboBoxSelectionChangeTrigger from "./types/ComboBoxSelectionChangeTrigger.js";
21
23
  import type { InputEventDetail } from "./Input.js";
22
24
  import type { ListItemBaseClickEventDetail } from "./ListItemBase.js";
23
25
  import type InputComposition from "./features/InputComposition.js";
@@ -43,6 +45,7 @@ type ValueStateAnnouncement = Record<Exclude<ValueState, ValueState.None>, strin
43
45
  type ValueStateTypeAnnouncement = Record<Exclude<ValueState, ValueState.None>, string>;
44
46
  type ComboBoxSelectionChangeEventDetail = {
45
47
  item: ComboBoxItem | null;
48
+ trigger: `${ComboBoxSelectionChangeTrigger}`;
46
49
  };
47
50
  /**
48
51
  * @class
@@ -306,6 +309,7 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
306
309
  _autocomplete: boolean;
307
310
  _isKeyNavigation: boolean;
308
311
  _selectionPerformed: boolean;
312
+ _selectionTrigger?: `${ComboBoxSelectionChangeTrigger}`;
309
313
  _lastValue: string;
310
314
  _selectedItemText: string;
311
315
  _userTypedValue: string;
@@ -451,4 +455,5 @@ declare class ComboBox extends UI5Element implements IFormInputElement {
451
455
  };
452
456
  }
453
457
  export default ComboBox;
458
+ export { ComboBoxSelectionChangeTrigger };
454
459
  export type { ComboBoxSelectionChangeEventDetail, IComboBoxItem, };
package/dist/ComboBox.js CHANGED
@@ -39,10 +39,12 @@ import ResponsivePopoverCommonCss from "./generated/themes/ResponsivePopoverComm
39
39
  import ValueStateMessageCss from "./generated/themes/ValueStateMessage.css.js";
40
40
  import SuggestionsCss from "./generated/themes/Suggestions.css.js";
41
41
  import "./ComboBoxItem.js";
42
+ import "./ComboBoxItemCustom.js";
42
43
  // eslint-disable-next-line
43
44
  import "./ComboBoxItemGroup.js";
44
45
  // eslint-disable-next-line
45
46
  import { isInstanceOfComboBoxItemGroup } from "./ComboBoxItemGroup.js";
47
+ import ComboBoxSelectionChangeTrigger from "./types/ComboBoxSelectionChangeTrigger.js";
46
48
  const SKIP_ITEMS_SIZE = 10;
47
49
  var ValueStateIconMapping;
48
50
  (function (ValueStateIconMapping) {
@@ -591,6 +593,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
591
593
  this._applyAtomicValueAndSelection(item, filterValue);
592
594
  }
593
595
  _handleArrowDown(e, indexOfItem) {
596
+ this._selectionTrigger = ComboBoxSelectionChangeTrigger.Keyboard;
594
597
  const isOpen = this.open;
595
598
  if (this.focused && indexOfItem === -1 && isOpen) {
596
599
  this.focused = false;
@@ -606,6 +609,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
606
609
  this._handleItemNavigation(e, itemIndexToBeFocused, true /* isForward */);
607
610
  }
608
611
  _handleArrowUp(e, indexOfItem) {
612
+ this._selectionTrigger = ComboBoxSelectionChangeTrigger.Keyboard;
609
613
  const isOpen = this.open;
610
614
  if (indexOfItem === 0) {
611
615
  this._clearFocus();
@@ -620,6 +624,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
620
624
  this._handleItemNavigation(e, --indexOfItem, false /* isForward */);
621
625
  }
622
626
  _handlePageUp(e, indexOfItem) {
627
+ this._selectionTrigger = ComboBoxSelectionChangeTrigger.Keyboard;
623
628
  const allItems = this._getItems();
624
629
  const isProposedIndexValid = indexOfItem - SKIP_ITEMS_SIZE > -1;
625
630
  indexOfItem = isProposedIndexValid ? indexOfItem - SKIP_ITEMS_SIZE : 0;
@@ -627,6 +632,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
627
632
  this._handleItemNavigation(e, indexOfItem, shouldMoveForward);
628
633
  }
629
634
  _handlePageDown(e, indexOfItem) {
635
+ this._selectionTrigger = ComboBoxSelectionChangeTrigger.Keyboard;
630
636
  const allItems = this._getItems();
631
637
  const itemsLength = allItems.length;
632
638
  const isProposedIndexValid = indexOfItem + SKIP_ITEMS_SIZE < itemsLength;
@@ -635,10 +641,12 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
635
641
  this._handleItemNavigation(e, indexOfItem, shouldMoveForward);
636
642
  }
637
643
  _handleHome(e) {
644
+ this._selectionTrigger = ComboBoxSelectionChangeTrigger.Keyboard;
638
645
  const shouldMoveForward = isInstanceOfComboBoxItemGroup(this._filteredItems[0]) && !this.open;
639
646
  this._handleItemNavigation(e, 0, shouldMoveForward);
640
647
  }
641
648
  _handleEnd(e) {
649
+ this._selectionTrigger = ComboBoxSelectionChangeTrigger.Keyboard;
642
650
  this._handleItemNavigation(e, this._getItems().length - 1, true /* isForward */);
643
651
  }
644
652
  _keyup() {
@@ -885,8 +893,17 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
885
893
  }
886
894
  else {
887
895
  if (this._useSelectedValue) {
888
- itemToBeSelected = this.items.find(i => i.value === valueToMatch && (this.value === "" || i.text?.toLowerCase() === this.value.toLowerCase()));
889
- return;
896
+ // During initial render, match by value even if text is empty
897
+ if (this._initialRendering && this.value === "") {
898
+ itemToBeSelected = this._filteredItems.find(i => !i.isGroupItem && i.value === valueToMatch);
899
+ }
900
+ else if (this.value !== "") {
901
+ // When user is typing, require exact text match in addition to value match
902
+ itemToBeSelected = this._filteredItems.find(i => !i.isGroupItem && i.value === valueToMatch && i.text?.toLowerCase() === this.value.toLowerCase());
903
+ }
904
+ if (itemToBeSelected) {
905
+ return;
906
+ }
890
907
  }
891
908
  itemToBeSelected = item.text?.toLowerCase() === this.value.toLowerCase() ? item : undefined;
892
909
  }
@@ -913,22 +930,22 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
913
930
  this.selectedValue = itemToBeSelected?.value;
914
931
  }
915
932
  const noUserInteraction = !this.focused && !this._isKeyNavigation && !this._selectionPerformed && !this._iconPressed;
916
- // Skip firing "selection-change" event if this is initial rendering or if there has been no user interaction yet
917
933
  if (this._initialRendering || noUserInteraction) {
918
934
  return;
919
935
  }
920
- // Fire selection-change event only when selection actually changes
921
936
  if (previouslySelectedItem !== itemToBeSelected) {
937
+ const trigger = this._selectionTrigger || ComboBoxSelectionChangeTrigger.Typeahead;
938
+ this._selectionTrigger = undefined;
922
939
  if (itemToBeSelected) {
923
- // New item selected
924
940
  this.fireDecoratorEvent("selection-change", {
925
941
  item: itemToBeSelected,
942
+ trigger,
926
943
  });
927
944
  }
928
945
  else if (previouslySelectedItem) {
929
- // Selection cleared - fire event with 'null'
930
946
  this.fireDecoratorEvent("selection-change", {
931
947
  item: null,
948
+ trigger,
932
949
  });
933
950
  }
934
951
  }
@@ -978,6 +995,7 @@ let ComboBox = ComboBox_1 = class ComboBox extends UI5Element {
978
995
  if (!item.selected) {
979
996
  this.fireDecoratorEvent("selection-change", {
980
997
  item,
998
+ trigger: ComboBoxSelectionChangeTrigger.Click,
981
999
  });
982
1000
  }
983
1001
  this._fireChangeEvent();
@@ -1392,6 +1410,7 @@ ComboBox = ComboBox_1 = __decorate([
1392
1410
  /**
1393
1411
  * Fired when selection is changed by user interaction
1394
1412
  * @param {IComboBoxItem} item item to be selected.
1413
+ * @param {ComboBoxSelectionChangeTrigger} trigger source of the selection change - typeahead, click or keyboard navigation.
1395
1414
  * @public
1396
1415
  */
1397
1416
  ,
@@ -1401,4 +1420,5 @@ ComboBox = ComboBox_1 = __decorate([
1401
1420
  ], ComboBox);
1402
1421
  ComboBox.define();
1403
1422
  export default ComboBox;
1423
+ export { ComboBoxSelectionChangeTrigger };
1404
1424
  //# sourceMappingURL=ComboBox.js.map