@ui5/webcomponents 2.23.0-rc.0 → 2.23.0-rc.2

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 (248) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ColorPicker.d.ts +2 -0
  4. package/dist/ColorPicker.js +26 -10
  5. package/dist/ColorPicker.js.map +1 -1
  6. package/dist/ColorPickerTemplate.js +2 -2
  7. package/dist/ColorPickerTemplate.js.map +1 -1
  8. package/dist/DayPicker.d.ts +3 -1
  9. package/dist/DayPicker.js +17 -3
  10. package/dist/DayPicker.js.map +1 -1
  11. package/dist/DayPickerTemplate.js +1 -1
  12. package/dist/DayPickerTemplate.js.map +1 -1
  13. package/dist/ExpandableText.d.ts +2 -0
  14. package/dist/ExpandableText.js +11 -0
  15. package/dist/ExpandableText.js.map +1 -1
  16. package/dist/Form.d.ts +9 -25
  17. package/dist/Form.js +42 -207
  18. package/dist/Form.js.map +1 -1
  19. package/dist/FormGroup.d.ts +11 -0
  20. package/dist/FormGroup.js +3 -0
  21. package/dist/FormGroup.js.map +1 -1
  22. package/dist/FormItem.d.ts +2 -0
  23. package/dist/FormItem.js.map +1 -1
  24. package/dist/FormTemplate.js +26 -15
  25. package/dist/FormTemplate.js.map +1 -1
  26. package/dist/ListItem.d.ts +2 -0
  27. package/dist/ListItem.js +4 -0
  28. package/dist/ListItem.js.map +1 -1
  29. package/dist/ListItemTemplate.js +1 -1
  30. package/dist/ListItemTemplate.js.map +1 -1
  31. package/dist/MenuItem.d.ts +1 -0
  32. package/dist/Popup.js +8 -3
  33. package/dist/Popup.js.map +1 -1
  34. package/dist/RadioButton.d.ts +1 -0
  35. package/dist/RadioButton.js +1 -0
  36. package/dist/RadioButton.js.map +1 -1
  37. package/dist/RadioButtonTemplate.js +1 -1
  38. package/dist/RadioButtonTemplate.js.map +1 -1
  39. package/dist/Tokenizer.js +10 -6
  40. package/dist/Tokenizer.js.map +1 -1
  41. package/dist/TreeItemBase.d.ts +1 -0
  42. package/dist/bundle.esm.js +3 -3
  43. package/dist/bundle.esm.js.map +1 -1
  44. package/dist/css/themes/ColorPicker.css +1 -1
  45. package/dist/css/themes/Form.css +1 -1
  46. package/dist/css/themes/FormItem.css +1 -1
  47. package/dist/css/themes/FormItemSpan.css +1 -1
  48. package/dist/css/themes/FormLayout.css +1 -1
  49. package/dist/css/themes/RadioButton.css +1 -1
  50. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  51. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  52. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  53. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  54. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  55. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +9 -10
  56. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  57. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +9 -10
  58. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  59. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  60. package/dist/custom-elements-internal.json +36 -5
  61. package/dist/custom-elements.json +36 -5
  62. package/dist/form-utils/FormUtils.d.ts +9 -0
  63. package/dist/form-utils/FormUtils.js +47 -0
  64. package/dist/form-utils/FormUtils.js.map +1 -0
  65. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  66. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  67. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  68. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  69. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  70. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  71. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  72. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  73. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  74. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  75. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  76. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  77. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  78. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  79. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  80. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  81. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  82. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  83. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  84. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  85. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  86. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  87. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  88. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  89. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  90. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  91. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  92. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  93. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  94. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  95. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  96. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  97. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  98. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  99. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  100. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  116. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  117. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  118. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  119. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  120. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  121. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  122. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  123. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  124. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  125. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  126. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  127. package/dist/generated/themes/ColorPicker.css.js +1 -1
  128. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  129. package/dist/generated/themes/Form.css.d.ts +1 -1
  130. package/dist/generated/themes/Form.css.js +1 -1
  131. package/dist/generated/themes/Form.css.js.map +1 -1
  132. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  133. package/dist/generated/themes/FormItem.css.js +1 -1
  134. package/dist/generated/themes/FormItem.css.js.map +1 -1
  135. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  136. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  137. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  138. package/dist/generated/themes/FormLayout.css.d.ts +1 -1
  139. package/dist/generated/themes/FormLayout.css.js +1 -1
  140. package/dist/generated/themes/FormLayout.css.js.map +1 -1
  141. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  142. package/dist/generated/themes/RadioButton.css.js +1 -1
  143. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  144. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  145. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  146. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  147. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  148. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  149. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  150. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  151. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  152. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  153. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  154. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  155. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  156. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  157. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  158. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  159. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  160. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +9 -10
  161. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  162. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  163. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  164. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  165. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  166. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +9 -10
  167. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  168. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  169. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  170. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  171. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  172. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  173. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  174. package/dist/vscode.html-custom-data.json +8 -3
  175. package/dist/web-types.json +20 -6
  176. package/package.json +9 -9
  177. package/src/ColorPickerTemplate.tsx +2 -2
  178. package/src/DayPickerTemplate.tsx +1 -0
  179. package/src/FormTemplate.tsx +41 -23
  180. package/src/ListItemTemplate.tsx +1 -1
  181. package/src/RadioButtonTemplate.tsx +1 -0
  182. package/src/i18n/messagebundle_ar.properties +1 -0
  183. package/src/i18n/messagebundle_bg.properties +1 -0
  184. package/src/i18n/messagebundle_ca.properties +1 -0
  185. package/src/i18n/messagebundle_cnr.properties +1 -0
  186. package/src/i18n/messagebundle_cs.properties +1 -0
  187. package/src/i18n/messagebundle_cy.properties +1 -0
  188. package/src/i18n/messagebundle_da.properties +1 -0
  189. package/src/i18n/messagebundle_de.properties +1 -0
  190. package/src/i18n/messagebundle_el.properties +1 -0
  191. package/src/i18n/messagebundle_en.properties +1 -0
  192. package/src/i18n/messagebundle_en_GB.properties +1 -0
  193. package/src/i18n/messagebundle_en_US_sappsd.properties +1 -0
  194. package/src/i18n/messagebundle_en_US_saprigi.properties +1 -0
  195. package/src/i18n/messagebundle_en_US_saptrc.properties +1 -0
  196. package/src/i18n/messagebundle_es.properties +1 -0
  197. package/src/i18n/messagebundle_es_MX.properties +1 -0
  198. package/src/i18n/messagebundle_et.properties +1 -0
  199. package/src/i18n/messagebundle_fi.properties +1 -0
  200. package/src/i18n/messagebundle_fr.properties +1 -0
  201. package/src/i18n/messagebundle_fr_CA.properties +1 -0
  202. package/src/i18n/messagebundle_hi.properties +1 -0
  203. package/src/i18n/messagebundle_hr.properties +2 -1
  204. package/src/i18n/messagebundle_hu.properties +1 -0
  205. package/src/i18n/messagebundle_id.properties +1 -0
  206. package/src/i18n/messagebundle_it.properties +1 -0
  207. package/src/i18n/messagebundle_iw.properties +1 -0
  208. package/src/i18n/messagebundle_ja.properties +1 -0
  209. package/src/i18n/messagebundle_kk.properties +1 -0
  210. package/src/i18n/messagebundle_ko.properties +1 -0
  211. package/src/i18n/messagebundle_lt.properties +1 -0
  212. package/src/i18n/messagebundle_lv.properties +1 -0
  213. package/src/i18n/messagebundle_mk.properties +1 -0
  214. package/src/i18n/messagebundle_ms.properties +1 -0
  215. package/src/i18n/messagebundle_nl.properties +1 -0
  216. package/src/i18n/messagebundle_no.properties +1 -0
  217. package/src/i18n/messagebundle_pl.properties +1 -0
  218. package/src/i18n/messagebundle_pt.properties +1 -0
  219. package/src/i18n/messagebundle_pt_PT.properties +1 -0
  220. package/src/i18n/messagebundle_ro.properties +1 -0
  221. package/src/i18n/messagebundle_ru.properties +1 -0
  222. package/src/i18n/messagebundle_sh.properties +1 -0
  223. package/src/i18n/messagebundle_sk.properties +1 -0
  224. package/src/i18n/messagebundle_sl.properties +1 -0
  225. package/src/i18n/messagebundle_sr.properties +1 -0
  226. package/src/i18n/messagebundle_sv.properties +1 -0
  227. package/src/i18n/messagebundle_th.properties +1 -0
  228. package/src/i18n/messagebundle_tr.properties +1 -0
  229. package/src/i18n/messagebundle_uk.properties +1 -0
  230. package/src/i18n/messagebundle_vi.properties +1 -0
  231. package/src/i18n/messagebundle_zh_CN.properties +1 -0
  232. package/src/i18n/messagebundle_zh_TW.properties +1 -0
  233. package/src/themes/ColorPicker.css +2 -0
  234. package/src/themes/Form.css +4 -2
  235. package/src/themes/FormItem.css +5 -51
  236. package/src/themes/FormItemSpan.css +9 -9
  237. package/src/themes/FormLayout.css +30 -113
  238. package/src/themes/RadioButton.css +17 -14
  239. package/src/themes/base/RadioButton-parameters.css +3 -3
  240. package/src/themes/base/sizes-parameters.css +4 -7
  241. package/src/themes/sap_horizon/CheckBox-parameters.css +5 -5
  242. package/src/themes/sap_horizon/RadioButton-parameters.css +2 -2
  243. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +5 -5
  244. package/src/themes/sap_horizon_dark/RadioButton-parameters.css +2 -2
  245. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +5 -5
  246. package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +2 -2
  247. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +5 -5
  248. package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../src/RadioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisLeft,\n\tisUp,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport RadioButtonGroup from \"./RadioButtonGroup.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\n\n// Template\nimport RadioButtonTemplate from \"./RadioButtonTemplate.js\";\n\n// i18n\nimport {\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tFORM_SELECTABLE_REQUIRED2,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport radioButtonCss from \"./generated/themes/RadioButton.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeRadio: RadioButton;\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-radio-button` component enables users to select a single option from a set of options.\n * When a `ui5-radio-button` is selected by the user, the\n * `change` event is fired.\n * When a `ui5-radio-button` that is within a group is selected, the one\n * that was previously selected gets automatically deselected. You can group radio buttons by using the `name` property.\n *\n * **Note:** If `ui5-radio-button` is not part of a group, it can be selected once, but can not be deselected back.\n *\n * ### Keyboard Handling\n *\n * Once the `ui5-radio-button` is on focus, it might be selected by pressing the Space and Enter keys.\n *\n * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,\n * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.\n *\n * **Note:** On entering radio button group, the focus goes to the currently selected radio button.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/RadioButton\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart outer-ring - Used to style the outer ring of the `ui5-radio-button`.\n * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.\n */\n@customElement({\n\ttag: \"ui5-radio-button\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\ttemplate: RadioButtonTemplate,\n\tstyles: radioButtonCss,\n})\n/**\n * Fired when the component checked state changes.\n * @public\n * @since 1.0.0-rc.15\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass RadioButton extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component isn't editable or selectable.\n\t * However, because it's focusable, it still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.9.0\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Defines whether the component is checked or not.\n\t *\n\t * **Note:** The property value can be changed with user interaction,\n\t * either by clicking/tapping on the component,\n\t * or by using the Space or Enter key.\n\t *\n\t * **Note:** Only enabled radio buttons can be checked.\n\t * Read-only radio buttons are not selectable, and therefore are always unchecked.\n\t * @default false\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tchecked = false;\n\n\t/**\n\t * Defines the text of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * Radio buttons with the same `name` will form a radio button group.\n\t *\n\t * **Note:** By this name the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** The selection can be changed with `ARROW_UP/DOWN` and `ARROW_LEFT/RIGHT` keys between radio buttons in same group.\n\t *\n\t * **Note:** Only one radio button can be selected per group.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines the form value of the component.\n\t * When a form with a radio button group is submitted, the group's value\n\t * will be the value of the currently selected radio button.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Defines whether the component text wraps when there is not enough space.\n\t *\n\t * **Note:** for option \"Normal\" the text will wrap and the words will not be broken based on hyphenation.\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"Normal\";\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.6.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t@property({ type: Number })\n\t_tabIndex?: number;\n\n\t/**\n\t * Defines the active state (pressed or not) of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines if the component is selected in specific group\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_groupChecked = false;\n\t@property({ type: Boolean, noAttribute: true })\n\t_groupRequired = false;\n\n\t_deactivate: () => void;\n\t_name = \"\";\n\t_checked = false;\n\n\tget formValidityMessage() {\n\t\treturn RadioButton.i18nBundle.getText(FORM_SELECTABLE_REQUIRED2);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this._groupRequired && !this._groupChecked };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.checked ? (this.value || \"on\") : null;\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeRadio) {\n\t\t\t\tactiveRadio.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tthis.syncGroup();\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis.syncGroup(true);\n\t}\n\n\tsyncGroup(forceRemove?: boolean) {\n\t\tconst oldGroup = this._name;\n\t\tconst currentGroup = this.name;\n\t\tconst oldChecked = this._checked;\n\t\tconst currentChecked = this.checked;\n\n\t\tif (forceRemove) {\n\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t}\n\n\t\tif (currentGroup !== oldGroup) {\n\t\t\tif (oldGroup) {\n\t\t\t\t// remove the control from the previous group\n\t\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t\t}\n\n\t\t\tif (currentGroup) {\n\t\t\t\t// add the control to the existing group\n\t\t\t\tRadioButtonGroup.addToGroup(this, currentGroup);\n\t\t\t}\n\t\t} else if (currentGroup && this.isConnected) {\n\t\t\tRadioButtonGroup.enforceSingleSelection(this, currentGroup);\n\t\t}\n\n\t\tif (this.name && currentChecked !== oldChecked) {\n\t\t\tRadioButtonGroup.updateTabOrder(this.name);\n\t\t}\n\n\t\tthis._name = this.name || \"\";\n\t\tthis._checked = this.checked;\n\t}\n\n\t_onclick() {\n\t\treturn this.toggle();\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectNextItem(this, currentGroup);\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectPreviousItem(this, currentGroup);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn e.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn this.toggle();\n\t\t}\n\n\t\tconst isRTL = this.effectiveDir === \"rtl\";\n\n\t\tif (isDown(e) || (!isRTL && isRight(e)) || (isRTL && isLeft(e))) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isUp(e) || (!isRTL && isLeft(e)) || (isRTL && isRight(e))) {\n\t\t\tthis._handleUp(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.toggle();\n\t\t}\n\n\t\tthis.active = false;\n\t}\n\n\t_onmousedown() {\n\t\tthis.active = true;\n\t\tactiveRadio = this; // eslint-disable-line\n\t}\n\n\t_onmouseup() {\n\t\tthis.active = false;\n\t}\n\n\t_onfocusout() {\n\t\tthis.active = false;\n\t}\n\n\ttoggle() {\n\t\tif (!this.canToggle()) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.name) {\n\t\t\tthis.checked = !this.checked;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t\treturn this;\n\t\t}\n\n\t\tRadioButtonGroup.selectItem(this, this.name);\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly || this.checked);\n\t}\n\n\tget effectiveAriaDisabled() {\n\t\treturn (this.disabled || this.readonly) ? true : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [getEffectiveAriaLabelText(this), this.text].filter(Boolean).join(\" \");\n\t}\n\n\tget effectiveAriaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\tswitch (this.valueState) {\n\t\tcase ValueState.Negative:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_ERROR);\n\t\tcase ValueState.Critical:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_WARNING);\n\t\tcase ValueState.Positive:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_SUCCESS);\n\t\tcase ValueState.Information:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_INFORMATION);\n\t\tdefault:\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tget effectiveTabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (this.name) {\n\t\t\treturn this._tabIndex;\n\t\t}\n\n\t\treturn tabindex ? parseInt(tabindex) : 0;\n\t}\n}\n\nRadioButton.define();\n\nexport default RadioButton;\n"]}
1
+ {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../src/RadioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisLeft,\n\tisUp,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport RadioButtonGroup from \"./RadioButtonGroup.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\n\n// Template\nimport RadioButtonTemplate from \"./RadioButtonTemplate.js\";\n\n// i18n\nimport {\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tFORM_SELECTABLE_REQUIRED2,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport radioButtonCss from \"./generated/themes/RadioButton.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeRadio: RadioButton;\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-radio-button` component enables users to select a single option from a set of options.\n * When a `ui5-radio-button` is selected by the user, the\n * `change` event is fired.\n * When a `ui5-radio-button` that is within a group is selected, the one\n * that was previously selected gets automatically deselected. You can group radio buttons by using the `name` property.\n *\n * **Note:** If `ui5-radio-button` is not part of a group, it can be selected once, but can not be deselected back.\n *\n * ### Keyboard Handling\n *\n * Once the `ui5-radio-button` is on focus, it might be selected by pressing the Space and Enter keys.\n *\n * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,\n * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.\n *\n * **Note:** On entering radio button group, the focus goes to the currently selected radio button.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/RadioButton\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart outer-ring - Used to style the outer ring of the `ui5-radio-button`.\n * @csspart inner-ring - Used to style the inner ring of the `ui5-radio-button`.\n * @csspart root - Used to style the root DOM element of the component.\n */\n@customElement({\n\ttag: \"ui5-radio-button\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\ttemplate: RadioButtonTemplate,\n\tstyles: radioButtonCss,\n})\n/**\n * Fired when the component checked state changes.\n * @public\n * @since 1.0.0-rc.15\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n\nclass RadioButton extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void,\n\t}\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component isn't editable or selectable.\n\t * However, because it's focusable, it still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t * @since 1.9.0\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Defines whether the component is checked or not.\n\t *\n\t * **Note:** The property value can be changed with user interaction,\n\t * either by clicking/tapping on the component,\n\t * or by using the Space or Enter key.\n\t *\n\t * **Note:** Only enabled radio buttons can be checked.\n\t * Read-only radio buttons are not selectable, and therefore are always unchecked.\n\t * @default false\n\t * @formEvents change\n\t * @formProperty\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\tchecked = false;\n\n\t/**\n\t * Defines the text of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttext?: string;\n\n\t/**\n\t * Defines the value state of the component.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tvalueState: `${ValueState}` = \"None\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * Radio buttons with the same `name` will form a radio button group.\n\t *\n\t * **Note:** By this name the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** The selection can be changed with `ARROW_UP/DOWN` and `ARROW_LEFT/RIGHT` keys between radio buttons in same group.\n\t *\n\t * **Note:** Only one radio button can be selected per group.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines the form value of the component.\n\t * When a form with a radio button group is submitted, the group's value\n\t * will be the value of the currently selected radio button.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tvalue = \"\";\n\n\t/**\n\t * Defines whether the component text wraps when there is not enough space.\n\t *\n\t * **Note:** for option \"Normal\" the text will wrap and the words will not be broken based on hyphenation.\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"Normal\";\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.6.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t@property({ type: Number })\n\t_tabIndex?: number;\n\n\t/**\n\t * Defines the active state (pressed or not) of the component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tactive = false;\n\n\t/**\n\t * Defines if the component is selected in specific group\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_groupChecked = false;\n\t@property({ type: Boolean, noAttribute: true })\n\t_groupRequired = false;\n\n\t_deactivate: () => void;\n\t_name = \"\";\n\t_checked = false;\n\n\tget formValidityMessage() {\n\t\treturn RadioButton.i18nBundle.getText(FORM_SELECTABLE_REQUIRED2);\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn { valueMissing: this._groupRequired && !this._groupChecked };\n\t}\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.checked ? (this.value || \"on\") : null;\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeRadio) {\n\t\t\t\tactiveRadio.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tthis.syncGroup();\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonExitDOM() {\n\t\tthis.syncGroup(true);\n\t}\n\n\tsyncGroup(forceRemove?: boolean) {\n\t\tconst oldGroup = this._name;\n\t\tconst currentGroup = this.name;\n\t\tconst oldChecked = this._checked;\n\t\tconst currentChecked = this.checked;\n\n\t\tif (forceRemove) {\n\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t}\n\n\t\tif (currentGroup !== oldGroup) {\n\t\t\tif (oldGroup) {\n\t\t\t\t// remove the control from the previous group\n\t\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t\t}\n\n\t\t\tif (currentGroup) {\n\t\t\t\t// add the control to the existing group\n\t\t\t\tRadioButtonGroup.addToGroup(this, currentGroup);\n\t\t\t}\n\t\t} else if (currentGroup && this.isConnected) {\n\t\t\tRadioButtonGroup.enforceSingleSelection(this, currentGroup);\n\t\t}\n\n\t\tif (this.name && currentChecked !== oldChecked) {\n\t\t\tRadioButtonGroup.updateTabOrder(this.name);\n\t\t}\n\n\t\tthis._name = this.name || \"\";\n\t\tthis._checked = this.checked;\n\t}\n\n\t_onclick() {\n\t\treturn this.toggle();\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectNextItem(this, currentGroup);\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\tRadioButtonGroup.selectPreviousItem(this, currentGroup);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn e.preventDefault();\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.active = true;\n\t\t\treturn this.toggle();\n\t\t}\n\n\t\tconst isRTL = this.effectiveDir === \"rtl\";\n\n\t\tif (isDown(e) || (!isRTL && isRight(e)) || (isRTL && isLeft(e))) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isUp(e) || (!isRTL && isLeft(e)) || (isRTL && isRight(e))) {\n\t\t\tthis._handleUp(e);\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.toggle();\n\t\t}\n\n\t\tthis.active = false;\n\t}\n\n\t_onmousedown() {\n\t\tthis.active = true;\n\t\tactiveRadio = this; // eslint-disable-line\n\t}\n\n\t_onmouseup() {\n\t\tthis.active = false;\n\t}\n\n\t_onfocusout() {\n\t\tthis.active = false;\n\t}\n\n\ttoggle() {\n\t\tif (!this.canToggle()) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.name) {\n\t\t\tthis.checked = !this.checked;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t\treturn this;\n\t\t}\n\n\t\tRadioButtonGroup.selectItem(this, this.name);\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly || this.checked);\n\t}\n\n\tget effectiveAriaDisabled() {\n\t\treturn (this.disabled || this.readonly) ? true : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [getEffectiveAriaLabelText(this), this.text].filter(Boolean).join(\" \");\n\t}\n\n\tget effectiveAriaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\tswitch (this.valueState) {\n\t\tcase ValueState.Negative:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_ERROR);\n\t\tcase ValueState.Critical:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_WARNING);\n\t\tcase ValueState.Positive:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_SUCCESS);\n\t\tcase ValueState.Information:\n\t\t\treturn RadioButton.i18nBundle.getText(VALUE_STATE_INFORMATION);\n\t\tdefault:\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tget effectiveTabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (this.name) {\n\t\t\treturn this._tabIndex;\n\t\t}\n\n\t\treturn tabindex ? parseInt(tabindex) : 0;\n\t}\n}\n\nRadioButton.define();\n\nexport default RadioButton;\n"]}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime"
2
2
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
3
3
  import Label from "./Label.js";
4
4
  export default function RadioButtonTemplate() {
5
- return (_jsxs("div", { role: "radio", class: "ui5-radio-root", "aria-checked": this.checked, "aria-disabled": this.effectiveAriaDisabled, "aria-describedby": this.effectiveAriaDescribedBy, "aria-label": this.ariaLabelText, tabindex: this.effectiveTabIndex, onClick: this._onclick, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onMouseDown: this._onmousedown, onMouseUp: this._onmouseup, onFocusOut: this._onfocusout, children: [_jsxs("div", { class: {
5
+ return (_jsxs("div", { role: "radio", class: "ui5-radio-root", part: "root", "aria-checked": this.checked, "aria-disabled": this.effectiveAriaDisabled, "aria-describedby": this.effectiveAriaDescribedBy, "aria-label": this.ariaLabelText, tabindex: this.effectiveTabIndex, onClick: this._onclick, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onMouseDown: this._onmousedown, onMouseUp: this._onmouseup, onFocusOut: this._onfocusout, children: [_jsxs("div", { class: {
6
6
  "ui5-radio-inner": true,
7
7
  "ui5-radio-inner--hoverable": !this.disabled && !this.readonly && isDesktop(),
8
8
  }, children: [_jsxs("svg", { class: "ui5-radio-svg", focusable: "false", "aria-hidden": "true", children: [_jsx("circle", { part: "outer-ring", class: "ui5-radio-svg-outer", cx: "50%", cy: "50%", r: "50%" }), _jsx("circle", { part: "inner-ring", class: "ui5-radio-svg-inner", cx: "50%", cy: "50%" })] }), _jsx("input", { type: "radio", required: this.required, checked: this.checked, readonly: this.readonly, disabled: this.disabled, name: this.name, "data-sap-no-tab-ref": true })] }), this.text &&
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButtonTemplate.js","sourceRoot":"","sources":["../src/RadioButtonTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEnE,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eACC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,gBAAgB,kBACR,IAAI,CAAC,OAAO,mBACX,IAAI,CAAC,qBAAqB,sBACvB,IAAI,CAAC,wBAAwB,gBACnC,IAAI,CAAC,aAAa,EAC9B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAChC,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,aAE5B,eAAK,KAAK,EAAE;oBACX,iBAAiB,EAAE,IAAI;oBACvB,4BAA4B,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE;iBAC7E,aACA,eAAK,KAAK,EAAC,eAAe,EAAC,SAAS,EAAC,OAAO,iBAAa,MAAM,aAC9D,iBAAQ,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,qBAAqB,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,GAAG,EAClF,iBAAQ,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,qBAAqB,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,GAAG,IACrE,EACN,gBACC,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,gCAEd,IACG,EAEL,IAAI,CAAC,IAAI;gBACT,KAAC,KAAK,IAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,YAAG,IAAI,CAAC,IAAI,GAAS,EAG3H,IAAI,CAAC,aAAa;gBAClB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAC,iBAAiB,YAAE,IAAI,CAAC,cAAc,GAAQ,IAE/E,CACN,CAAC;AACH,CAAC","sourcesContent":["import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type RadioButton from \"./RadioButton.js\";\nimport Label from \"./Label.js\";\n\nexport default function RadioButtonTemplate(this: RadioButton) {\n\treturn (\n\t\t<div\n\t\t\trole=\"radio\"\n\t\t\tclass=\"ui5-radio-root\"\n\t\t\taria-checked={this.checked}\n\t\t\taria-disabled={this.effectiveAriaDisabled}\n\t\t\taria-describedby={this.effectiveAriaDescribedBy}\n\t\t\taria-label={this.ariaLabelText}\n\t\t\ttabindex={this.effectiveTabIndex}\n\t\t\tonClick={this._onclick}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonMouseDown={this._onmousedown}\n\t\t\tonMouseUp={this._onmouseup}\n\t\t\tonFocusOut={this._onfocusout}\n\t\t>\n\t\t\t<div class={{\n\t\t\t\t\"ui5-radio-inner\": true,\n\t\t\t\t\"ui5-radio-inner--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t}}>\n\t\t\t\t<svg class=\"ui5-radio-svg\" focusable=\"false\" aria-hidden=\"true\">\n\t\t\t\t\t<circle part=\"outer-ring\" class=\"ui5-radio-svg-outer\" cx=\"50%\" cy=\"50%\" r=\"50%\" />\n\t\t\t\t\t<circle part=\"inner-ring\" class=\"ui5-radio-svg-inner\" cx=\"50%\" cy=\"50%\" />\n\t\t\t\t</svg>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tchecked={this.checked}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdata-sap-no-tab-ref\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{this.text &&\n\t\t\t\t<Label id={`${this._id}-label`} class=\"ui5-radio-label\" for={this._id} wrappingType={this.wrappingType}>{this.text}</Label>\n\t\t\t}\n\n\t\t\t{this.hasValueState &&\n\t\t\t\t<span id={`${this._id}-descr`} class=\"ui5-hidden-text\">{this.valueStateText}</span>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"RadioButtonTemplate.js","sourceRoot":"","sources":["../src/RadioButtonTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEnE,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eACC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,gBAAgB,EACtB,IAAI,EAAC,MAAM,kBACG,IAAI,CAAC,OAAO,mBACX,IAAI,CAAC,qBAAqB,sBACvB,IAAI,CAAC,wBAAwB,gBACnC,IAAI,CAAC,aAAa,EAC9B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAChC,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,aAE5B,eAAK,KAAK,EAAE;oBACX,iBAAiB,EAAE,IAAI;oBACvB,4BAA4B,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE;iBAC7E,aACA,eAAK,KAAK,EAAC,eAAe,EAAC,SAAS,EAAC,OAAO,iBAAa,MAAM,aAC9D,iBAAQ,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,qBAAqB,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,GAAG,EAClF,iBAAQ,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,qBAAqB,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,GAAG,IACrE,EACN,gBACC,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,gCAEd,IACG,EAEL,IAAI,CAAC,IAAI;gBACT,KAAC,KAAK,IAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,YAAG,IAAI,CAAC,IAAI,GAAS,EAG3H,IAAI,CAAC,aAAa;gBAClB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,KAAK,EAAC,iBAAiB,YAAE,IAAI,CAAC,cAAc,GAAQ,IAE/E,CACN,CAAC;AACH,CAAC","sourcesContent":["import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type RadioButton from \"./RadioButton.js\";\nimport Label from \"./Label.js\";\n\nexport default function RadioButtonTemplate(this: RadioButton) {\n\treturn (\n\t\t<div\n\t\t\trole=\"radio\"\n\t\t\tclass=\"ui5-radio-root\"\n\t\t\tpart=\"root\"\n\t\t\taria-checked={this.checked}\n\t\t\taria-disabled={this.effectiveAriaDisabled}\n\t\t\taria-describedby={this.effectiveAriaDescribedBy}\n\t\t\taria-label={this.ariaLabelText}\n\t\t\ttabindex={this.effectiveTabIndex}\n\t\t\tonClick={this._onclick}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonMouseDown={this._onmousedown}\n\t\t\tonMouseUp={this._onmouseup}\n\t\t\tonFocusOut={this._onfocusout}\n\t\t>\n\t\t\t<div class={{\n\t\t\t\t\"ui5-radio-inner\": true,\n\t\t\t\t\"ui5-radio-inner--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t}}>\n\t\t\t\t<svg class=\"ui5-radio-svg\" focusable=\"false\" aria-hidden=\"true\">\n\t\t\t\t\t<circle part=\"outer-ring\" class=\"ui5-radio-svg-outer\" cx=\"50%\" cy=\"50%\" r=\"50%\" />\n\t\t\t\t\t<circle part=\"inner-ring\" class=\"ui5-radio-svg-inner\" cx=\"50%\" cy=\"50%\" />\n\t\t\t\t</svg>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tchecked={this.checked}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdata-sap-no-tab-ref\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{this.text &&\n\t\t\t\t<Label id={`${this._id}-label`} class=\"ui5-radio-label\" for={this._id} wrappingType={this.wrappingType}>{this.text}</Label>\n\t\t\t}\n\n\t\t\t{this.hasValueState &&\n\t\t\t\t<span id={`${this._id}-descr`} class=\"ui5-hidden-text\">{this.valueStateText}</span>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
package/dist/Tokenizer.js CHANGED
@@ -441,13 +441,17 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
441
441
  e.preventDefault();
442
442
  const isCut = e.key.toLowerCase() === "x" || isDeleteShift(e);
443
443
  const selectedTokens = this._tokens.filter(token => token.selected);
444
- const focusedToken = selectedTokens.find(token => token.focused);
445
- if (isCut) {
446
- const cutResult = this._fillClipboard(ClipboardDataOperation.cut, selectedTokens);
447
- focusedToken && this.deleteToken(focusedToken);
444
+ const focusedToken = this._tokens.find(token => token.focused);
445
+ let tokensToCopy = selectedTokens;
446
+ if (!tokensToCopy.length && focusedToken) {
447
+ tokensToCopy = [focusedToken];
448
+ }
449
+ if (isCut && !this.readonly && tokensToCopy.length) {
450
+ const cutResult = this._fillClipboard(ClipboardDataOperation.cut, tokensToCopy);
451
+ this.deleteToken(tokensToCopy[0]);
448
452
  return cutResult;
449
453
  }
450
- return this._fillClipboard(ClipboardDataOperation.copy, selectedTokens);
454
+ return this._fillClipboard(ClipboardDataOperation.copy, tokensToCopy);
451
455
  }
452
456
  if (isCtrl && e.key.toLowerCase() === "i" && this._tokens.length > 0) {
453
457
  e.preventDefault();
@@ -729,7 +733,7 @@ let Tokenizer = Tokenizer_1 = class Tokenizer extends UI5Element {
729
733
  return this.showClearAll && this.hasTokens && this.multiLine && !this.readonly;
730
734
  }
731
735
  _fillClipboard(shortcutName, tokens) {
732
- const tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join("\r\n");
736
+ const tokensTexts = tokens.map(token => token.text).join("\r\n");
733
737
  // Async clipboard API (works in secure contexts - HTTPS/localhost)
734
738
  if (navigator.clipboard?.writeText && window.isSecureContext) {
735
739
  navigator.clipboard.writeText(tokensTexts)?.catch(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../src/Tokenizer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.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 customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getFocusedElement } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisLeftShiftCtrl,\n\tisRightShiftCtrl,\n\tisDeleteShift,\n\tisInsertCtrl,\n\tisEnd,\n\tisHome,\n\tisHomeShift,\n\tisEndShift,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisDown,\n\tisEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type List from \"./List.js\";\nimport type { ListItemDeleteEventDetail } from \"./List.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport type Token from \"./Token.js\";\nimport type { IToken } from \"./MultiInput.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./TokenizerTemplate.js\";\nimport type Button from \"./Button.js\";\nimport {\n\tMULTIINPUT_SHOW_MORE_TOKENS,\n\tTOKENIZER_ARIA_LABEL,\n\tTOKENIZER_ARIA_CONTAIN_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,\n\tTOKENIZER_SHOW_ALL_ITEMS,\n\tTOKENIZER_CLEAR_ALL,\n\tTOKENIZER_DIALOG_OK_BUTTON,\n\tTOKENIZER_DIALOG_CANCEL_BUTTON,\n\tINPUT_SUGGESTIONS_TITLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TokenizerCss from \"./generated/themes/Tokenizer.css.js\";\nimport TokenizerPopoverCss from \"./generated/themes/TokenizerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n// reuse suggestions focus styling for NMore popup\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\nimport type ListItem from \"./ListItem.js\";\n\ntype TokenCountMapType = { [x: number]: I18nText };\n\ntype TokenizerTokenDeleteEventDetail = {\n\ttokens: Token[];\n}\n\ntype TokenizerSelectionChangeEventDetail = {\n\ttokens: Token[];\n}\n\ntype TokenizerDialogButtonPressDetail = {\n\tconfirm: boolean;\n}\n\nenum ClipboardDataOperation {\n\tcut = \"cut\",\n\tcopy = \"copy\",\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-tokenizer` is an invisible container for `ui5-token`s that supports keyboard navigation and token selection.\n *\n * The `ui5-tokenizer` consists of two parts:\n * - Tokens - displays the available tokens.\n * - N-more indicator - contains the number of the remaining tokens that cannot be displayed due to the limited space.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The `ui5-tokenizer` provides advanced keyboard handling.\n * When a token is focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Left] or [Right] / [Up] or [Down] - Navigates left and right through the tokens.\n * - [Home] - Navigates to the first token.\n * - [End] - Navigates to the last token.\n *\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete):\n *\n * - [Space] - Selects a token.\n * - [Backspace] / [Delete] - Deletes a token.\n * **Note:** The deletion of a token is handled by the application with the use of the `token-delete` event.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Tokenizer.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.0.0\n * @experimental This component is availabe since 2.0 under an experimental flag and its API and behaviour are subject to change.\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\ttemplate: TokenizerTemplate,\n\tstyles: [\n\t\tTokenizerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t],\n})\n\n/**\n * Fired when tokens are being deleted (delete icon, delete or backspace is pressed)\n * @param {Array} tokens An array containing the deleted tokens.\n * @public\n */\n@event(\"token-delete\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when token selection is changed by user interaction\n *\n * @param {Array<Token>} tokens An array of the selected items.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when nMore link is pressed.\n * @private\n */\n@event(\"show-more-items-press\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before nMore Popover is opened.\n * @private\n */\n@event(\"before-more-popover-open\", {\n\tbubbles: true,\n})\n\nclass Tokenizer extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\t\"token-delete\": TokenizerTokenDeleteEventDetail,\n\t\t\"selection-change\": TokenizerSelectionChangeEventDetail,\n\t\t\"show-more-items-press\": void,\n\t\t\"before-more-popover-open\": void,\n\t};\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether tokens are displayed on multiple lines.\n\t *\n\t * **Note:** The `multiLine` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmultiLine = false;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * **Note:** When the component is used inside a form element,\n\t * the value is sent as the first element in the form data, even if it's empty.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ type: String })\n\tdeclare name?: string;\n\n\t/**\n\t * Defines whether \"Clear All\" button is present. Ensure `multiLine` is enabled, otherwise `showClearAll` will have no effect.\n\t *\n\t * **Note:** The `showClearAll` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowClearAll = false;\n\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\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 component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Indicates if the tokenizer should show all tokens or n more label instead\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpanded = false;\n\n\t/**\n\t * Indicates if the nMore popover is open\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topen = false\n\n\t/**\n\t * Defines the ID or DOM Reference of the element that the menu is shown at\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the tokenizer.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({\n\t\tconverter: DOMReferenceConverter,\n\t})\n\topener?: HTMLElement | string | null;\n\n\t/**\n\t * Sets the min-width of the nMore Popover.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tpopoverMinWidth?: number;\n\n\t/**\n\t * Sets the title of the nMore Popover on mobile.\n\t * **Note:** Used inside MultiInput component.\n\t * @private\n\t */\n\t@property()\n\tpopoverTitle?: string;\n\n\t/**\n\t * Prevents tokens to be part of the tab chain.\n\t * **Note:** Used inside MultiInput, MultiComboBox and FileUploader components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus = false;\n\n\t/**\n\t * Prevent opening of n-more Popover when label is clicked\n\t * **Note:** Used inside MultiComboBox component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventPopoverOpen = false;\n\n\t/**\n\t * Hides the popover arrow.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thidePopoverArrow = false;\n\n\t@property({ type: Number })\n\t_nMoreCount = 0;\n\n\t@property({ type: Number })\n\t_tokensCount = 0;\n\n\t/**\n\t * Defines the tokens to be displayed.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: [\"text\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\ttokens!: DefaultSlot<Token>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement | undefined;\n\t_expandedScrollWidth?: number;\n\t_tokenDeleting = false;\n\t_preventCollapse = false;\n\t_skipTabIndex = false;\n\t_previousToken: Token | null = null;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\t_deletedDialogItems!: Token[];\n\t_lastFocusedToken: Token | null = null;\n\t_isFocusSetInternally: boolean = false;\n\t/**\n\t * Scroll to end when tokenizer is expanded\n\t * @private\n\t */\n\t_scrollToEndOnExpand = false;\n\n\t_handleResize() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tget formFormattedValue(): FormData | null {\n\t\tconst tokens = this.tokens || [];\n\n\t\tif (this.name && tokens.length) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst name = this.name;\n\n\t\t\ttokens.forEach(token => {\n\t\t\t\tformData.append(name, token.text || \"\");\n\t\t\t});\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\n\t\tthis._itemNav = new ItemNavigation(this, {\n\t\t\tcurrentIndex: -1,\n\t\t\tgetItemsCallback: this._getVisibleTokens.bind(this),\n\t\t});\n\n\t\tthis._deletedDialogItems = [];\n\t}\n\n\thandleClearAll() {\n\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: this._tokens });\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.multiLine) {\n\t\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\t}\n\n\t\tconst tokensLength = this._tokens.length;\n\t\tthis._tokensCount = tokensLength;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.singleToken = (tokensLength === 1) || this.multiLine;\n\t\t\ttoken.readonly = this.readonly;\n\t\t\t// Clear lastVisibleToken when expanding\n\t\t\tif (this.expanded && token.lastVisibleToken) {\n\t\t\t\ttoken.lastVisibleToken = false;\n\t\t\t}\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t}\n\n\t_handleNMoreClick() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expanded = true;\n\n\t\tif (!this.preventPopoverOpen) {\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._skipTabIndex = true;\n\n\t\tthis.fireDecoratorEvent(\"show-more-items-press\");\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-token\")) {\n\t\t\tconst target = e.target as Token;\n\n\t\t\tif (this.open) {\n\t\t\t\tthis._preventCollapse = true;\n\t\t\t}\n\n\t\t\tif (!target.toBeDeleted) {\n\t\t\t\tthis._addTokenToNavigation(target);\n\t\t\t\tthis._scrollToToken(target);\n\t\t\t}\n\t\t}\n\t}\n\n\tonTokenSelect(e: CustomEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst firstToken = tokens[0];\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (tokens.length === 1 && firstToken.isTruncatable) {\n\t\t\tthis.open = firstToken.selected;\n\t\t}\n\n\t\tif (this.multiLine && targetToken.isTruncatable) {\n\t\t\tthis.opener = targetToken;\n\t\t\tthis.open = targetToken.selected;\n\t\t}\n\t}\n\n\t_getVisibleTokens() {\n\t\tif (this.disabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn this._tokens.filter((token, index) => {\n\t\t\treturn index < (this._tokens.length - this._nMoreCount);\n\t\t});\n\t}\n\n\tonAfterRendering() {\n\t\tconst tokensArray = this._tokens;\n\t\tconst firstToken = tokensArray[0];\n\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\n\t\tif (firstToken && !this.disabled && !this.preventInitialFocus && !this._skipTabIndex && !this._isFocusSetInternally) {\n\t\t\tfirstToken.forcedTabIndex = \"0\";\n\t\t}\n\n\t\tif (this._scrollEnablement) {\n\t\t\tthis._scrollEnablement.scrollContainer = this.contentDom;\n\t\t}\n\n\t\tif (this.expanded) {\n\t\t\tthis._expandedScrollWidth = this.contentDom.scrollWidth;\n\t\t}\n\n\t\tthis._scrollToEndIfNeeded();\n\n\t\t// Only reset _tokenDeleting if no token is currently marked for deletion\n\t\t// This prevents resetting the flag before the actual deletion logic executes\n\t\tconst hasTokenToBeDeleted = this._tokens.some(token => token.toBeDeleted);\n\n\t\tif (!hasTokenToBeDeleted) {\n\t\t\tthis._tokenDeleting = false;\n\t\t}\n\n\t\t// Update lastVisibleToken after rendering is complete to avoid render loops\n\t\trenderFinished().then(() => {\n\t\t\tthis._updateLastVisibleTokenAttribute();\n\t\t});\n\t}\n\n\t/**\n\t * Updates the lastVisibleToken property on tokens.\n\t * When collapsed with overflow, marks the last visible token for proper spacing to the n-more indicator.\n\t * @private\n\t */\n\t_updateLastVisibleTokenAttribute() {\n\t\tconst tokensArray = this._tokens;\n\t\tconst hasOverflow = this._nMoreCount > 0;\n\t\tconst visibleTokens = tokensArray.filter(token => !token.overflows);\n\t\tconst lastVisibleToken = visibleTokens.length > 0 ? visibleTokens[visibleTokens.length - 1] : undefined;\n\n\t\ttokensArray.forEach(token => {\n\t\t\ttoken.lastVisibleToken = (!this.expanded && hasOverflow && token === lastVisibleToken);\n\t\t});\n\t}\n\n\t/**\n\t * Scrolls the container to the end to ensure very long tokens are visible at their end.\n\t * Otherwise, tokens may appear visually cut off.\n\t * @protected\n\t */\n\t_scrollToEndIfNeeded() {\n\t\t// if scroll to end is prevented, skip scroll to the end\n\t\tif (!this._scrollToEndOnExpand) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.tokens.length || this.expanded) {\n\t\t\tthis.scrollToEnd();\n\t\t}\n\t}\n\n\t_delete(e: CustomEvent<TokenDeleteEventDetail>) {\n\t\tconst target = e.target as Token;\n\n\t\tif (!e.detail) { // if there are no details, the event is triggered by a click\n\t\t\tthis._tokenClickDelete(e, target);\n\t\t\tthis.open = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.deleteToken(target, e.detail.backSpace);\n\t}\n\n\t_tokenClickDelete(e: CustomEvent<TokenDeleteEventDetail>, token: Token) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(target); // The index of the token that just got deleted\n\t\tconst nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1; // The index of the next token that needs to be focused next due to the deletion\n\t\tconst nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t}\n\n\t_handleCurrentItemAfterDeletion(nextToken: Token) {\n\t\tif (nextToken && !isPhone()) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tnextToken.focus();\n\t\t\t\tthis._itemNav.setCurrentItem(nextToken);\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Removes a token from the Tokenizer.\n\t * This method should only be used by ui5-multi-combobox and ui5-multi-input\n\t * @protected\n\t * @param token Token to be focused.\n\t * @param forwardFocusToPrevious Indicates whether the focus will be forwarded to previous or next token after deletion.\n\t */\n\tdeleteToken(token: Token, forwardFocusToPrevious?: boolean) {\n\t\tconst tokens = this._tokens;\n\t\tconst deletedTokenIndex = tokens.indexOf(token);\n\t\tlet nextTokenIndex = (deletedTokenIndex === tokens.length - 1) ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\tconst notSelectedTokens = tokens.filter(t => !t.selected);\n\n\t\tif (forwardFocusToPrevious) { // on backspace key select the previous item (unless deleting the first)\n\t\t\tnextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;\n\t\t} else { // on delete key or mouse click on the \"x\" select the next item (unless deleting the last)\n\t\t\tnextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\t}\n\n\t\tlet nextToken = tokens[nextTokenIndex];\n\n\t\tif (notSelectedTokens.length > 1) {\n\t\t\twhile (nextToken && nextToken.selected) {\n\t\t\t\tnextTokenIndex = forwardFocusToPrevious ? --nextTokenIndex : ++nextTokenIndex;\n\n\t\t\t\tif (nextTokenIndex < 0) {\n\t\t\t\t\tnextToken = notSelectedTokens[0];\n\t\t\t\t}\n\n\t\t\t\tif (nextTokenIndex > notSelectedTokens.length) {\n\t\t\t\t\tnextToken = notSelectedTokens[notSelectedTokens.length - 1];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnextToken = notSelectedTokens[0];\n\t\t}\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\n\t\tif (this._selectedTokens.length) {\n\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: this._selectedTokens });\n\t\t} else {\n\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t\t}\n\t}\n\n\tasync itemDelete(e: CustomEvent<ListItemDeleteEventDetail>) {\n\t\tconst token = this.getTokenByRefId(e.detail.item.getAttribute(\"data-ui5-token-ref-id\")!);\n\n\t\tconst tokensArray = this._tokens;\n\n\t\t// delay the token deletion in order to close the popover before removing token of the DOM\n\t\tif (tokensArray.length === 1) {\n\t\t\tconst morePopover = this.getPopover();\n\n\t\t\tmorePopover.addEventListener(\"ui5-close\", () => {\n\t\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t\t\t}, {\n\t\t\t\tonce: true,\n\t\t\t});\n\t\t\tthis.open = false;\n\t\t} else {\n\t\t\tif (isPhone()) {\n\t\t\t\tthis._deletedDialogItems.push(token);\n\t\t\t} else {\n\t\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t\t\t}\n\t\t\tconst currentListItem = e.detail.item as ListItem;\n\t\t\tconst nextListItem = currentListItem.nextElementSibling as ListItem;\n\t\t\tconst previousListItem = currentListItem.previousElementSibling as ListItem;\n\t\t\tconst focusItem = nextListItem || previousListItem;\n\n\t\t\tif (focusItem) {\n\t\t\t\tawait renderFinished();\n\t\t\t\tfocusItem.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleBeforeClose() {\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\thandleBeforeOpen() {\n\t\tconst list = this._getList();\n\t\tconst firstListItem = list.querySelectorAll(\"[ui5-li]\")[0] as ListItem;\n\n\t\tlist._itemNavigation.setCurrentItem(firstListItem);\n\n\t\tthis.fireDecoratorEvent(\"before-more-popover-open\");\n\t}\n\n\thandleAfterClose() {\n\t\tthis.open = false;\n\t\t// Don't reset _preventCollapse if we're in the middle of deleting a token\n\t\tif (!this._tokenDeleting) {\n\t\t\tthis._preventCollapse = false;\n\t\t}\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\thandleDialogButtonPress(e: UI5CustomEvent<Button, \"click\">) {\n\t\tconst isOkButton = (e.target as HTMLElement).hasAttribute(\"data-ui5-tokenizer-dialog-ok-button\");\n\t\tconst confirm = !!isOkButton;\n\n\t\tif (confirm && this._deletedDialogItems.length) {\n\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: this._deletedDialogItems });\n\t\t}\n\n\t\tthis.open = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif (isEscape(e)) {\n\t\t\treturn this._deselectAllTokens();\n\t\t}\n\n\t\tif ((isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\" || isDeleteShift(e);\n\t\t\tconst selectedTokens = this._tokens.filter(token => token.selected);\n\t\t\tconst focusedToken = selectedTokens.find(token => token.focused);\n\n\t\t\tif (isCut) {\n\t\t\t\tconst cutResult = this._fillClipboard(ClipboardDataOperation.cut, selectedTokens);\n\n\t\t\t\tfocusedToken && this.deleteToken(focusedToken);\n\n\t\t\t\treturn cutResult;\n\t\t\t}\n\n\t\t\treturn this._fillClipboard(ClipboardDataOperation.copy, selectedTokens);\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"i\" && this._tokens.length > 0) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isSpaceCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._handleTokenSelection(e, false);\n\t\t}\n\n\t\tif (isHomeShift(e) || isPageUpShift(e)) {\n\t\t\tthis._handleHomeShift(e);\n\t\t}\n\n\t\tif (isEndShift(e) || isPageDownShift(e)) {\n\t\t\tthis._handleEndShift(e);\n\t\t}\n\n\t\tthis._handleItemNavigation(e, this._tokens);\n\t}\n\n\t_onPopoverListKeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && e.key.toLowerCase() === \"i\") || isEscape(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.open = false;\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen && this._focusedElementBeforeOpen.focus();\n\n\t\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\t\tthis._focusLastToken();\n\t\t\t}\n\t\t}\n\n\t\tif (e.key.toLowerCase() === \"f7\") {\n\t\t\te.preventDefault();\n\n\t\t\tconst eventTarget = e.target as ListItem;\n\t\t\tconst activeElement = getActiveElement();\n\n\t\t\tif (activeElement?.part.value === \"native-li\") {\n\t\t\t\teventTarget.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!.focus();\n\t\t\t} else {\n\t\t\t\teventTarget.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, tokens: Array<Token>) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\t\tconst target = e.target as Token;\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e) || isDownCtrl(e) || isUpCtrl(e)) {\n\t\t\treturn this._handleArrowCtrl(e, target, tokens, isRightCtrl(e) || isDownCtrl(e));\n\t\t}\n\n\t\tif (isLeftShift(e) || isRightShift(e) || isUpShift(e) || isDownShift(e) || isLeftShiftCtrl(e) || isRightShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleArrowShift(target, tokens, (isRightShift(e) || isRightShiftCtrl(e) || isDownShift(e)));\n\t\t}\n\n\t\tif (isHome(e) || isEnd(e) || isHomeCtrl(e) || isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleHome(tokens, isEnd(e) || isEndCtrl(e));\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"a\") {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._toggleTokenSelection(tokens);\n\t\t}\n\n\t\tif (isLeft(e) || isRight(e) || isUp(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tconst nextTokenIdx = this._calcNextTokenIndex(this._tokens.find(token => token.focused)!, tokens, (isRight(e) || isDown(e)));\n\t\t\tthis._scrollToToken(tokens[nextTokenIdx]);\n\t\t}\n\t}\n\n\t_handleHome(tokens: Array<Token>, endKeyPressed: boolean) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst index = endKeyPressed ? tokens.length - 1 : 0;\n\n\t\ttokens[index].focus();\n\t}\n\n\t_handleHomeShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index <= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[0].focus();\n\t}\n\n\t_handleEndShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index >= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[tokens.length - 1].focus();\n\t}\n\n\t_calcNextTokenIndex(focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tif (!tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tlet nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex >= tokens.length) {\n\t\t\tnextIndex = tokens.length - 1;\n\t\t}\n\n\t\tif (nextIndex < 0) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent, focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tconst nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);\n\n\t\te.preventDefault();\n\n\t\tif (nextIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_handleArrowShift(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tconst nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\tif (nextIndex === -1 || nextIndex === tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfocusedToken.selected = true;\n\t\ttokens[nextIndex].selected = true;\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[nextIndex].focus();\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (!e.shiftKey) {\n\t\t\tthis._previousToken = targetToken;\n\t\t}\n\n\t\tlet focusedToken = targetToken;\n\n\t\tif (this._previousToken) {\n\t\t\tfocusedToken = this._previousToken;\n\t\t} else {\n\t\t\tthis._previousToken = focusedToken;\n\t\t}\n\n\t\tif (e.shiftKey) {\n\t\t\tconst tokensArray = this._tokens;\n\t\t\tconst lastClickedIndex = tokensArray.indexOf(targetToken);\n\t\t\tconst firstSelectedTokenIndex = tokensArray.indexOf(focusedToken);\n\t\t\tconst start = Math.min(lastClickedIndex, firstSelectedTokenIndex);\n\t\t\tconst end = Math.max(lastClickedIndex, firstSelectedTokenIndex);\n\n\t\t\tif (lastClickedIndex !== -1) {\n\t\t\t\ttokensArray.forEach((token, i) => {\n\t\t\t\t\ttoken.selected = i >= start && i <= end;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenSelection(e);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as Token;\n\t\tthis._lastFocusedToken = target;\n\n\t\tif (target && target.toBeDeleted) {\n\t\t\tthis._tokenDeleting = true;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis.expanded = true;\n\t\tthis._addTokenToNavigation(e.target as Token);\n\t}\n\n\t_addTokenToNavigation(token: Token) {\n\t\tthis._scrollToEndOnExpand = false;\n\t\tthis._itemNav.setCurrentItem(token);\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tconst relatedTarget = e.relatedTarget as HTMLElement;\n\t\tconst tokenLosingFocus = e.target as Token;\n\n\t\t// If the token losing focus is being deleted, prevent collapse\n\t\tif (tokenLosingFocus?.toBeDeleted) {\n\t\t\tthis._preventCollapse = true;\n\t\t}\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._itemNav._currentIndex = -1;\n\t\tthis._skipTabIndex = true;\n\n\t\tif (!this.contains(relatedTarget) && !this.preventInitialFocus) {\n\t\t\tthis._tokens[0].forcedTabIndex = \"0\";\n\t\t\tthis._isFocusSetInternally = false;\n\t\t\tthis._skipTabIndex = false;\n\t\t}\n\n\t\tconst hasTokenToBeDeleted = this._tokens.some(token => token.toBeDeleted);\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse && !hasTokenToBeDeleted) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\t/**\n \t * Determines the DOM element to focus when the Tokenizer receives focus.\n \t * If the last-focused token is not overflown, focus is restored to it.\n \t * Otherwise, the focus defaults to the first visible token.\n \t */\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\tif (this._lastFocusedToken && !this.overflownTokens.includes(this._lastFocusedToken)) {\n\t\t\tthis._itemNav._currentIndex = this.tokens.indexOf(this._lastFocusedToken);\n\t\t\tthis._isFocusSetInternally = true;\n\t\t\tthis.tokens[0].forcedTabIndex = \"-1\";\n\t\t} else {\n\t\t\tthis._itemNav._currentIndex = 0;\n\t\t}\n\t\treturn this._itemNav._getCurrentItem();\n\t}\n\n\t_toggleTokenSelection(tokens: Array<Token>) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokensAreSelected = tokens.every(token => token.selected);\n\t\ttokens.forEach(token => { token.selected = !tokensAreSelected; });\n\n\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\ttokens: this._selectedTokens,\n\t\t});\n\t}\n\n\t_handleTokenSelection(e: KeyboardEvent | MouseEvent, deselectAll = true) {\n\t\tconst target = e.target as Token;\n\n\t\tif (target.hasAttribute(\"ui5-token\")) {\n\t\t\tconst deselectTokens = deselectAll ? this._tokens : [];\n\n\t\t\tdeselectTokens.forEach(token => {\n\t\t\t\tif (token !== target) {\n\t\t\t\t\ttoken.selected = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\t}\n\n\t_deselectAllTokens() {\n\t\tconst hadSelection = this._selectedTokens.length > 0;\n\t\tthis._tokens.forEach(token => { token.selected = false; });\n\n\t\tif (hadSelection) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: [],\n\t\t\t});\n\t\t}\n\t}\n\n\tget hasTokens() {\n\t\treturn this._tokens.length > 0;\n\t}\n\n\tget showEffectiveClearAll() {\n\t\treturn this.showClearAll && this.hasTokens && this.multiLine && !this.readonly;\n\t}\n\n\t_fillClipboard(shortcutName: ClipboardDataOperation, tokens: Array<IToken>) {\n\t\tconst tokensTexts = tokens.filter(token => token.selected).map(token => token.text).join(\"\\r\\n\");\n\n\t\t// Async clipboard API (works in secure contexts - HTTPS/localhost)\n\t\tif (navigator.clipboard?.writeText && window.isSecureContext) {\n\t\t\tnavigator.clipboard.writeText(tokensTexts)?.catch(() => {\n\t\t\t\t// Silent fallback - user can retry\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback for HTTP: use ClipboardEvent with execCommand\n\t\t// execCommand is deprecated but it is kept for compatibility reasons, as\n\t\t// there is no other way to write to clipboard in non-secure contexts\n\t\tconst fillClipboardHandler = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData) {\n\t\t\t\te.clipboardData.setData(\"text/plain\", tokensTexts);\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t};\n\n\t\tdocument.addEventListener(shortcutName, fillClipboardHandler);\n\t\tdocument.execCommand(shortcutName);\n\t\tdocument.removeEventListener(shortcutName, fillClipboardHandler);\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its beginning.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToStart() {\n\t\tif (this._scrollEnablement?.scrollContainer) {\n\t\t\tthis._scrollEnablement?.scrollTo(0, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its end when expanded.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToEnd() {\n\t\tconst expandedTokenizerScrollWidth = this.contentDom && (this.effectiveDir !== \"rtl\" ? this.contentDom.scrollWidth : -this.contentDom.scrollWidth);\n\t\tif (this._scrollEnablement?.scrollContainer) {\n\t\t\tthis._scrollEnablement?.scrollTo(expandedTokenizerScrollWidth, 0, 5, 10);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls token to the visible area of the container.\n\t * Adds 5 pixels to the scroll position to ensure padding and border visibility on both ends\n\t * For the last token, if its width is more than the needed space, scroll to the end without offset\n\t * @protected\n\t */\n\t_scrollToToken(token: IToken) {\n\t\tif (!this.contentDom) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenContainerRect = this.contentDom.getBoundingClientRect();\n\t\tconst oneSideBorderAndPaddingOffset = 5;\n\n\t\tconst isLastToken = this._tokens.indexOf(token as Token) === this._tokens.length - 1;\n\t\tif (isLastToken) {\n\t\t\tthis.scrollToEnd();\n\t\t\treturn;\n\t\t}\n\n\t\tif (tokenRect.left < tokenContainerRect.left) {\n\t\t\tthis._scrollEnablement?.scrollTo(this.contentDom.scrollLeft - (tokenContainerRect.left - tokenRect.left + oneSideBorderAndPaddingOffset), 0);\n\t\t} else if (tokenRect.right > tokenContainerRect.right) {\n\t\t\tthis._scrollEnablement?.scrollTo(this.contentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + oneSideBorderAndPaddingOffset), 0);\n\t\t}\n\t}\n\n\t_getList() {\n\t\treturn this.getPopover().querySelector<List>(\"[ui5-list]\")!;\n\t}\n\n\tget _tokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget morePopoverOpener(): HTMLElement | string | null {\n\t\t// return this.opener ? this : this.opener;\n\t\tif (this.opener) {\n\t\t\treturn this.opener;\n\t\t}\n\t\treturn this;\n\t}\n\n\tget _nMoreText() {\n\t\tif (!this._nMoreCount) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._getVisibleTokens().length) {\n\t\t\treturn Tokenizer.i18nBundle.getText(MULTIINPUT_SHOW_MORE_TOKENS, this._nMoreCount);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_SHOW_ALL_ITEMS, this._nMoreCount);\n\t}\n\n\tget _clearAllText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_CLEAR_ALL);\n\t}\n\n\tget showNMore() {\n\t\treturn !this.expanded && !!this.overflownTokens.length;\n\t}\n\n\tget contentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer--content\")!;\n\t}\n\n\tget moreLink() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-more-text\");\n\t}\n\n\tget tokenizerLabel() {\n\t\tconst effectiveLabelText = getEffectiveAriaLabelText(this);\n\t\treturn effectiveLabelText || Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL);\n\t}\n\n\tget _okButtonText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_DIALOG_OK_BUTTON);\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_DIALOG_CANCEL_BUTTON);\n\t}\n\n\tget tokenizerAriaDescription() {\n\t\treturn getEffectiveAriaLabelText(this) ? Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL) : undefined;\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaReadonly() {\n\t\treturn this.readonly || undefined;\n\t}\n\n\tget morePopoverTitle() {\n\t\treturn this.popoverTitle || getEffectiveAriaLabelText(this) || Tokenizer.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget overflownTokens() {\n\t\tif (!this.contentDom) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst tokensArray = this._tokens;\n\n\t\t// Reset the overflow prop of the tokens first in order\n\t\t// to use their dimensions for calculation because already\n\t\t// hidden tokens are set to 'display: none'\n\t\ttokensArray.forEach(token => {\n\t\t\ttoken.overflows = false;\n\t\t});\n\n\t\treturn tokensArray.filter(token => {\n\t\t\tconst parentRect = this.contentDom.getBoundingClientRect();\n\t\t\tconst tokenRect = token.getBoundingClientRect();\n\t\t\tconst tokenEnd = Number(tokenRect.right.toFixed(2));\n\t\t\tconst parentEnd = Number(parentRect.right.toFixed(2));\n\t\t\tconst tokenStart = Number(tokenRect.left.toFixed(2));\n\t\t\tconst parentStart = Number(parentRect.left.toFixed(2));\n\n\t\t\ttoken.overflows = !this.expanded && ((tokenStart < parentStart) || (tokenEnd > parentEnd));\n\n\t\t\treturn token.overflows;\n\t\t});\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _selectedTokens() {\n\t\treturn this._tokens.filter(token => token.selected);\n\t}\n\n\tget _nMoreListMode() {\n\t\tif (this.readonly || this.disabled) {\n\t\t\treturn ListSelectionMode.None;\n\t\t}\n\n\t\treturn ListSelectionMode.Delete;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_focusLastToken() {\n\t\tconst tokens = this._tokens;\n\t\tif (tokens.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastToken = tokens[tokens.length - 1];\n\t\tlastToken.focus();\n\t}\n\n\tgetPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tgetTokenByRefId(refId: string) {\n\t\treturn this._tokens.find(token => token._id === refId)!;\n\t}\n}\n\nconst getTokensCountText = (iTokenCount: number) => {\n\tconst tokenCountMap: TokenCountMapType = {\n\t\t0: TOKENIZER_ARIA_CONTAIN_TOKEN,\n\t\t1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\t};\n\n\tif (iTokenCount in tokenCountMap) {\n\t\treturn Tokenizer.i18nBundle.getText(tokenCountMap[iTokenCount]);\n\t}\n\n\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);\n};\n\nTokenizer.define();\n\nexport default Tokenizer;\nexport { getTokensCountText };\nexport { ClipboardDataOperation };\nexport type { TokenizerTokenDeleteEventDetail, TokenizerSelectionChangeEventDetail, TokenizerDialogButtonPressDetail };\n"]}
1
+ {"version":3,"file":"Tokenizer.js","sourceRoot":"","sources":["../src/Tokenizer.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.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 customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getFocusedElement } from \"@ui5/webcomponents-base/dist/util/PopupUtils.js\";\nimport ScrollEnablement from \"@ui5/webcomponents-base/dist/delegate/ScrollEnablement.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tisSpace,\n\tisSpaceCtrl,\n\tisSpaceShift,\n\tisLeftCtrl,\n\tisRightCtrl,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisLeftShift,\n\tisRightShift,\n\tisLeftShiftCtrl,\n\tisRightShiftCtrl,\n\tisDeleteShift,\n\tisInsertCtrl,\n\tisEnd,\n\tisHome,\n\tisHomeShift,\n\tisEndShift,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisRight,\n\tisLeft,\n\tisUp,\n\tisDown,\n\tisEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type ResponsivePopover from \"./ResponsivePopover.js\";\nimport type List from \"./List.js\";\nimport type { ListItemDeleteEventDetail } from \"./List.js\";\nimport ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport type Token from \"./Token.js\";\nimport type { IToken } from \"./MultiInput.js\";\nimport type { TokenDeleteEventDetail } from \"./Token.js\";\nimport TokenizerTemplate from \"./TokenizerTemplate.js\";\nimport type Button from \"./Button.js\";\nimport {\n\tMULTIINPUT_SHOW_MORE_TOKENS,\n\tTOKENIZER_ARIA_LABEL,\n\tTOKENIZER_ARIA_CONTAIN_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\tTOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,\n\tTOKENIZER_SHOW_ALL_ITEMS,\n\tTOKENIZER_CLEAR_ALL,\n\tTOKENIZER_DIALOG_OK_BUTTON,\n\tTOKENIZER_DIALOG_CANCEL_BUTTON,\n\tINPUT_SUGGESTIONS_TITLE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TokenizerCss from \"./generated/themes/Tokenizer.css.js\";\nimport TokenizerPopoverCss from \"./generated/themes/TokenizerPopover.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n// reuse suggestions focus styling for NMore popup\nimport SuggestionsCss from \"./generated/themes/Suggestions.css.js\";\nimport type ListItem from \"./ListItem.js\";\n\ntype TokenCountMapType = { [x: number]: I18nText };\n\ntype TokenizerTokenDeleteEventDetail = {\n\ttokens: Token[];\n}\n\ntype TokenizerSelectionChangeEventDetail = {\n\ttokens: Token[];\n}\n\ntype TokenizerDialogButtonPressDetail = {\n\tconfirm: boolean;\n}\n\nenum ClipboardDataOperation {\n\tcut = \"cut\",\n\tcopy = \"copy\",\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-tokenizer` is an invisible container for `ui5-token`s that supports keyboard navigation and token selection.\n *\n * The `ui5-tokenizer` consists of two parts:\n * - Tokens - displays the available tokens.\n * - N-more indicator - contains the number of the remaining tokens that cannot be displayed due to the limited space.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The `ui5-tokenizer` provides advanced keyboard handling.\n * When a token is focused the user can use the following keyboard\n * shortcuts in order to perform a navigation:\n *\n * - [Left] or [Right] / [Up] or [Down] - Navigates left and right through the tokens.\n * - [Home] - Navigates to the first token.\n * - [End] - Navigates to the last token.\n *\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete):\n *\n * - [Space] - Selects a token.\n * - [Backspace] / [Delete] - Deletes a token.\n * **Note:** The deletion of a token is handled by the application with the use of the `token-delete` event.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Tokenizer.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.0.0\n * @experimental This component is availabe since 2.0 under an experimental flag and its API and behaviour are subject to change.\n */\n@customElement({\n\ttag: \"ui5-tokenizer\",\n\tlanguageAware: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\ttemplate: TokenizerTemplate,\n\tstyles: [\n\t\tTokenizerCss,\n\t\tResponsivePopoverCommonCss,\n\t\tSuggestionsCss,\n\t\tTokenizerPopoverCss,\n\t],\n})\n\n/**\n * Fired when tokens are being deleted (delete icon, delete or backspace is pressed)\n * @param {Array} tokens An array containing the deleted tokens.\n * @public\n */\n@event(\"token-delete\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when token selection is changed by user interaction\n *\n * @param {Array<Token>} tokens An array of the selected items.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when nMore link is pressed.\n * @private\n */\n@event(\"show-more-items-press\", {\n\tbubbles: true,\n})\n\n/**\n * Fired before nMore Popover is opened.\n * @private\n */\n@event(\"before-more-popover-open\", {\n\tbubbles: true,\n})\n\nclass Tokenizer extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\t\"token-delete\": TokenizerTokenDeleteEventDetail,\n\t\t\"selection-change\": TokenizerSelectionChangeEventDetail,\n\t\t\"show-more-items-press\": void,\n\t\t\"before-more-popover-open\": void,\n\t};\n\n\t/**\n\t * Defines whether the component is read-only.\n\t *\n\t * **Note:** A read-only component is not editable,\n\t * but still provides visual feedback upon user interaction.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines whether tokens are displayed on multiple lines.\n\t *\n\t * **Note:** The `multiLine` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tmultiLine = false;\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * **Note:** When the component is used inside a form element,\n\t * the value is sent as the first element in the form data, even if it's empty.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ type: String })\n\tdeclare name?: string;\n\n\t/**\n\t * Defines whether \"Clear All\" button is present. Ensure `multiLine` is enabled, otherwise `showClearAll` will have no effect.\n\t *\n\t * **Note:** The `showClearAll` property is in an experimental state and is a subject to change.\n\t * @default false\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowClearAll = false;\n\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** A disabled component is completely noninteractive.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\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 component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Indicates if the tokenizer should show all tokens or n more label instead\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\texpanded = false;\n\n\t/**\n\t * Indicates if the nMore popover is open\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\topen = false\n\n\t/**\n\t * Defines the ID or DOM Reference of the element that the menu is shown at\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the tokenizer.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({\n\t\tconverter: DOMReferenceConverter,\n\t})\n\topener?: HTMLElement | string | null;\n\n\t/**\n\t * Sets the min-width of the nMore Popover.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tpopoverMinWidth?: number;\n\n\t/**\n\t * Sets the title of the nMore Popover on mobile.\n\t * **Note:** Used inside MultiInput component.\n\t * @private\n\t */\n\t@property()\n\tpopoverTitle?: string;\n\n\t/**\n\t * Prevents tokens to be part of the tab chain.\n\t * **Note:** Used inside MultiInput, MultiComboBox and FileUploader components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventInitialFocus = false;\n\n\t/**\n\t * Prevent opening of n-more Popover when label is clicked\n\t * **Note:** Used inside MultiComboBox component.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tpreventPopoverOpen = false;\n\n\t/**\n\t * Hides the popover arrow.\n\t * **Note:** Used inside MultiInput and MultiComboBox components.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thidePopoverArrow = false;\n\n\t@property({ type: Number })\n\t_nMoreCount = 0;\n\n\t@property({ type: Number })\n\t_tokensCount = 0;\n\n\t/**\n\t * Defines the tokens to be displayed.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: [\"text\"],\n\t\t\tslots: false,\n\t\t},\n\t})\n\ttokens!: DefaultSlot<Token>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\t_resizeHandler: ResizeObserverCallback;\n\t_itemNav: ItemNavigation;\n\t_scrollEnablement: ScrollEnablement | undefined;\n\t_expandedScrollWidth?: number;\n\t_tokenDeleting = false;\n\t_preventCollapse = false;\n\t_skipTabIndex = false;\n\t_previousToken: Token | null = null;\n\t_focusedElementBeforeOpen?: HTMLElement | null;\n\t_deletedDialogItems!: Token[];\n\t_lastFocusedToken: Token | null = null;\n\t_isFocusSetInternally: boolean = false;\n\t/**\n\t * Scroll to end when tokenizer is expanded\n\t * @private\n\t */\n\t_scrollToEndOnExpand = false;\n\n\t_handleResize() {\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\t}\n\n\tget formFormattedValue(): FormData | null {\n\t\tconst tokens = this.tokens || [];\n\n\t\tif (this.name && tokens.length) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst name = this.name;\n\n\t\t\ttokens.forEach(token => {\n\t\t\t\tformData.append(name, token.text || \"\");\n\t\t\t});\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._resizeHandler = this._handleResize.bind(this);\n\n\t\tthis._itemNav = new ItemNavigation(this, {\n\t\t\tcurrentIndex: -1,\n\t\t\tgetItemsCallback: this._getVisibleTokens.bind(this),\n\t\t});\n\n\t\tthis._deletedDialogItems = [];\n\t}\n\n\thandleClearAll() {\n\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: this._tokens });\n\t}\n\n\tonBeforeRendering() {\n\t\tif (!this.multiLine) {\n\t\t\tthis._scrollEnablement = new ScrollEnablement(this);\n\t\t}\n\n\t\tconst tokensLength = this._tokens.length;\n\t\tthis._tokensCount = tokensLength;\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.singleToken = (tokensLength === 1) || this.multiLine;\n\t\t\ttoken.readonly = this.readonly;\n\t\t\t// Clear lastVisibleToken when expanding\n\t\t\tif (this.expanded && token.lastVisibleToken) {\n\t\t\t\ttoken.lastVisibleToken = false;\n\t\t\t}\n\t\t});\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._resizeHandler);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._resizeHandler);\n\t}\n\n\t_handleNMoreClick() {\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expanded = true;\n\n\t\tif (!this.preventPopoverOpen) {\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._skipTabIndex = true;\n\n\t\tthis.fireDecoratorEvent(\"show-more-items-press\");\n\t}\n\n\t_onmousedown(e: MouseEvent) {\n\t\tif ((e.target as HTMLElement).hasAttribute(\"ui5-token\")) {\n\t\t\tconst target = e.target as Token;\n\n\t\t\tif (this.open) {\n\t\t\t\tthis._preventCollapse = true;\n\t\t\t}\n\n\t\t\tif (!target.toBeDeleted) {\n\t\t\t\tthis._addTokenToNavigation(target);\n\t\t\t\tthis._scrollToToken(target);\n\t\t\t}\n\t\t}\n\t}\n\n\tonTokenSelect(e: CustomEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst firstToken = tokens[0];\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (tokens.length === 1 && firstToken.isTruncatable) {\n\t\t\tthis.open = firstToken.selected;\n\t\t}\n\n\t\tif (this.multiLine && targetToken.isTruncatable) {\n\t\t\tthis.opener = targetToken;\n\t\t\tthis.open = targetToken.selected;\n\t\t}\n\t}\n\n\t_getVisibleTokens() {\n\t\tif (this.disabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn this._tokens.filter((token, index) => {\n\t\t\treturn index < (this._tokens.length - this._nMoreCount);\n\t\t});\n\t}\n\n\tonAfterRendering() {\n\t\tconst tokensArray = this._tokens;\n\t\tconst firstToken = tokensArray[0];\n\n\t\tthis._nMoreCount = this.overflownTokens.length;\n\n\t\tif (firstToken && !this.disabled && !this.preventInitialFocus && !this._skipTabIndex && !this._isFocusSetInternally) {\n\t\t\tfirstToken.forcedTabIndex = \"0\";\n\t\t}\n\n\t\tif (this._scrollEnablement) {\n\t\t\tthis._scrollEnablement.scrollContainer = this.contentDom;\n\t\t}\n\n\t\tif (this.expanded) {\n\t\t\tthis._expandedScrollWidth = this.contentDom.scrollWidth;\n\t\t}\n\n\t\tthis._scrollToEndIfNeeded();\n\n\t\t// Only reset _tokenDeleting if no token is currently marked for deletion\n\t\t// This prevents resetting the flag before the actual deletion logic executes\n\t\tconst hasTokenToBeDeleted = this._tokens.some(token => token.toBeDeleted);\n\n\t\tif (!hasTokenToBeDeleted) {\n\t\t\tthis._tokenDeleting = false;\n\t\t}\n\n\t\t// Update lastVisibleToken after rendering is complete to avoid render loops\n\t\trenderFinished().then(() => {\n\t\t\tthis._updateLastVisibleTokenAttribute();\n\t\t});\n\t}\n\n\t/**\n\t * Updates the lastVisibleToken property on tokens.\n\t * When collapsed with overflow, marks the last visible token for proper spacing to the n-more indicator.\n\t * @private\n\t */\n\t_updateLastVisibleTokenAttribute() {\n\t\tconst tokensArray = this._tokens;\n\t\tconst hasOverflow = this._nMoreCount > 0;\n\t\tconst visibleTokens = tokensArray.filter(token => !token.overflows);\n\t\tconst lastVisibleToken = visibleTokens.length > 0 ? visibleTokens[visibleTokens.length - 1] : undefined;\n\n\t\ttokensArray.forEach(token => {\n\t\t\ttoken.lastVisibleToken = (!this.expanded && hasOverflow && token === lastVisibleToken);\n\t\t});\n\t}\n\n\t/**\n\t * Scrolls the container to the end to ensure very long tokens are visible at their end.\n\t * Otherwise, tokens may appear visually cut off.\n\t * @protected\n\t */\n\t_scrollToEndIfNeeded() {\n\t\t// if scroll to end is prevented, skip scroll to the end\n\t\tif (!this._scrollToEndOnExpand) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.tokens.length || this.expanded) {\n\t\t\tthis.scrollToEnd();\n\t\t}\n\t}\n\n\t_delete(e: CustomEvent<TokenDeleteEventDetail>) {\n\t\tconst target = e.target as Token;\n\n\t\tif (!e.detail) { // if there are no details, the event is triggered by a click\n\t\t\tthis._tokenClickDelete(e, target);\n\t\t\tthis.open = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.deleteToken(target, e.detail.backSpace);\n\t}\n\n\t_tokenClickDelete(e: CustomEvent<TokenDeleteEventDetail>, token: Token) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst deletedTokenIndex = token ? tokens.indexOf(token) : tokens.indexOf(target); // The index of the token that just got deleted\n\t\tconst nextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1; // The index of the next token that needs to be focused next due to the deletion\n\t\tconst nextToken = tokens[nextTokenIndex]; // if the last item was deleted this will be undefined\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t}\n\n\t_handleCurrentItemAfterDeletion(nextToken: Token) {\n\t\tif (nextToken && !isPhone()) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tnextToken.focus();\n\t\t\t\tthis._itemNav.setCurrentItem(nextToken);\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Removes a token from the Tokenizer.\n\t * This method should only be used by ui5-multi-combobox and ui5-multi-input\n\t * @protected\n\t * @param token Token to be focused.\n\t * @param forwardFocusToPrevious Indicates whether the focus will be forwarded to previous or next token after deletion.\n\t */\n\tdeleteToken(token: Token, forwardFocusToPrevious?: boolean) {\n\t\tconst tokens = this._tokens;\n\t\tconst deletedTokenIndex = tokens.indexOf(token);\n\t\tlet nextTokenIndex = (deletedTokenIndex === tokens.length - 1) ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\tconst notSelectedTokens = tokens.filter(t => !t.selected);\n\n\t\tif (forwardFocusToPrevious) { // on backspace key select the previous item (unless deleting the first)\n\t\t\tnextTokenIndex = deletedTokenIndex === 0 ? deletedTokenIndex + 1 : deletedTokenIndex - 1;\n\t\t} else { // on delete key or mouse click on the \"x\" select the next item (unless deleting the last)\n\t\t\tnextTokenIndex = deletedTokenIndex === tokens.length - 1 ? deletedTokenIndex - 1 : deletedTokenIndex + 1;\n\t\t}\n\n\t\tlet nextToken = tokens[nextTokenIndex];\n\n\t\tif (notSelectedTokens.length > 1) {\n\t\t\twhile (nextToken && nextToken.selected) {\n\t\t\t\tnextTokenIndex = forwardFocusToPrevious ? --nextTokenIndex : ++nextTokenIndex;\n\n\t\t\t\tif (nextTokenIndex < 0) {\n\t\t\t\t\tnextToken = notSelectedTokens[0];\n\t\t\t\t}\n\n\t\t\t\tif (nextTokenIndex > notSelectedTokens.length) {\n\t\t\t\t\tnextToken = notSelectedTokens[notSelectedTokens.length - 1];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnextToken = notSelectedTokens[0];\n\t\t}\n\n\t\tthis._handleCurrentItemAfterDeletion(nextToken);\n\n\t\tthis._tokenDeleting = true;\n\n\t\tif (this._selectedTokens.length) {\n\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: this._selectedTokens });\n\t\t} else {\n\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t\t}\n\t}\n\n\tasync itemDelete(e: CustomEvent<ListItemDeleteEventDetail>) {\n\t\tconst token = this.getTokenByRefId(e.detail.item.getAttribute(\"data-ui5-token-ref-id\")!);\n\n\t\tconst tokensArray = this._tokens;\n\n\t\t// delay the token deletion in order to close the popover before removing token of the DOM\n\t\tif (tokensArray.length === 1) {\n\t\t\tconst morePopover = this.getPopover();\n\n\t\t\tmorePopover.addEventListener(\"ui5-close\", () => {\n\t\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t\t\t}, {\n\t\t\t\tonce: true,\n\t\t\t});\n\t\t\tthis.open = false;\n\t\t} else {\n\t\t\tif (isPhone()) {\n\t\t\t\tthis._deletedDialogItems.push(token);\n\t\t\t} else {\n\t\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: [token] });\n\t\t\t}\n\t\t\tconst currentListItem = e.detail.item as ListItem;\n\t\t\tconst nextListItem = currentListItem.nextElementSibling as ListItem;\n\t\t\tconst previousListItem = currentListItem.previousElementSibling as ListItem;\n\t\t\tconst focusItem = nextListItem || previousListItem;\n\n\t\t\tif (focusItem) {\n\t\t\t\tawait renderFinished();\n\t\t\t\tfocusItem.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleBeforeClose() {\n\t\tif (!this._tokenDeleting && !this._preventCollapse) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\thandleBeforeOpen() {\n\t\tconst list = this._getList();\n\t\tconst firstListItem = list.querySelectorAll(\"[ui5-li]\")[0] as ListItem;\n\n\t\tlist._itemNavigation.setCurrentItem(firstListItem);\n\n\t\tthis.fireDecoratorEvent(\"before-more-popover-open\");\n\t}\n\n\thandleAfterClose() {\n\t\tthis.open = false;\n\t\t// Don't reset _preventCollapse if we're in the middle of deleting a token\n\t\tif (!this._tokenDeleting) {\n\t\t\tthis._preventCollapse = false;\n\t\t}\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\thandleDialogButtonPress(e: UI5CustomEvent<Button, \"click\">) {\n\t\tconst isOkButton = (e.target as HTMLElement).hasAttribute(\"data-ui5-tokenizer-dialog-ok-button\");\n\t\tconst confirm = !!isOkButton;\n\n\t\tif (confirm && this._deletedDialogItems.length) {\n\t\t\tthis.fireDecoratorEvent(\"token-delete\", { tokens: this._deletedDialogItems });\n\t\t}\n\n\t\tthis.open = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif (isEscape(e)) {\n\t\t\treturn this._deselectAllTokens();\n\t\t}\n\n\t\tif ((isCtrl && [\"c\", \"x\"].includes(e.key.toLowerCase())) || isDeleteShift(e) || isInsertCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tconst isCut = e.key.toLowerCase() === \"x\" || isDeleteShift(e);\n\t\t\tconst selectedTokens = this._tokens.filter(token => token.selected);\n\t\t\tconst focusedToken = this._tokens.find(token => token.focused);\n\t\t\tlet tokensToCopy = selectedTokens;\n\t\t\tif (!tokensToCopy.length && focusedToken) {\n\t\t\t\ttokensToCopy = [focusedToken];\n\t\t\t}\n\n\t\t\tif (isCut && !this.readonly && tokensToCopy.length) {\n\t\t\t\tconst cutResult = this._fillClipboard(ClipboardDataOperation.cut, tokensToCopy);\n\n\t\t\t\tthis.deleteToken(tokensToCopy[0]);\n\n\t\t\t\treturn cutResult;\n\t\t\t}\n\n\t\t\treturn this._fillClipboard(ClipboardDataOperation.copy, tokensToCopy);\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"i\" && this._tokens.length > 0) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\n\t\t\tthis.open = true;\n\t\t}\n\n\t\tif (isSpaceShift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (isSpace(e) || isSpaceCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._handleTokenSelection(e, false);\n\t\t}\n\n\t\tif (isHomeShift(e) || isPageUpShift(e)) {\n\t\t\tthis._handleHomeShift(e);\n\t\t}\n\n\t\tif (isEndShift(e) || isPageDownShift(e)) {\n\t\t\tthis._handleEndShift(e);\n\t\t}\n\n\t\tthis._handleItemNavigation(e, this._tokens);\n\t}\n\n\t_onPopoverListKeydown(e: KeyboardEvent) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\n\t\tif ((isCtrl && e.key.toLowerCase() === \"i\") || isEscape(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.open = false;\n\n\t\t\tthis._preventCollapse = true;\n\t\t\tthis._focusedElementBeforeOpen && this._focusedElementBeforeOpen.focus();\n\n\t\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\t\tthis._focusLastToken();\n\t\t\t}\n\t\t}\n\n\t\tif (e.key.toLowerCase() === \"f7\") {\n\t\t\te.preventDefault();\n\n\t\t\tconst eventTarget = e.target as ListItem;\n\t\t\tconst activeElement = getActiveElement();\n\n\t\t\tif (activeElement?.part.value === \"native-li\") {\n\t\t\t\teventTarget.shadowRoot!.querySelector<HTMLElement>(\"[part=delete-button]\")!.focus();\n\t\t\t} else {\n\t\t\t\teventTarget.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleItemNavigation(e: KeyboardEvent, tokens: Array<Token>) {\n\t\tconst isCtrl = !!(e.metaKey || e.ctrlKey);\n\t\tconst target = e.target as Token;\n\n\t\tif (isLeftCtrl(e) || isRightCtrl(e) || isDownCtrl(e) || isUpCtrl(e)) {\n\t\t\treturn this._handleArrowCtrl(e, target, tokens, isRightCtrl(e) || isDownCtrl(e));\n\t\t}\n\n\t\tif (isLeftShift(e) || isRightShift(e) || isUpShift(e) || isDownShift(e) || isLeftShiftCtrl(e) || isRightShiftCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleArrowShift(target, tokens, (isRightShift(e) || isRightShiftCtrl(e) || isDownShift(e)));\n\t\t}\n\n\t\tif (isHome(e) || isEnd(e) || isHomeCtrl(e) || isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn this._handleHome(tokens, isEnd(e) || isEndCtrl(e));\n\t\t}\n\n\t\tif (isCtrl && e.key.toLowerCase() === \"a\") {\n\t\t\te.preventDefault();\n\n\t\t\treturn this._toggleTokenSelection(tokens);\n\t\t}\n\n\t\tif (isLeft(e) || isRight(e) || isUp(e) || isDown(e)) {\n\t\t\te.preventDefault();\n\t\t\tconst nextTokenIdx = this._calcNextTokenIndex(this._tokens.find(token => token.focused)!, tokens, (isRight(e) || isDown(e)));\n\t\t\tthis._scrollToToken(tokens[nextTokenIdx]);\n\t\t}\n\t}\n\n\t_handleHome(tokens: Array<Token>, endKeyPressed: boolean) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst index = endKeyPressed ? tokens.length - 1 : 0;\n\n\t\ttokens[index].focus();\n\t}\n\n\t_handleHomeShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index <= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[0].focus();\n\t}\n\n\t_handleEndShift(e: KeyboardEvent) {\n\t\tconst tokens = this._tokens;\n\t\tconst target = e.target as Token;\n\t\tconst currentTokenIdx = tokens.indexOf(target);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\ttokens.filter((token, index) => index >= currentTokenIdx).forEach(token => {\n\t\t\ttoken.selected = true;\n\t\t});\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[tokens.length - 1].focus();\n\t}\n\n\t_calcNextTokenIndex(focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tif (!tokens.length) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tlet nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\n\t\tif (nextIndex >= tokens.length) {\n\t\t\tnextIndex = tokens.length - 1;\n\t\t}\n\n\t\tif (nextIndex < 0) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\treturn nextIndex;\n\t}\n\n\t_handleArrowCtrl(e: KeyboardEvent, focusedToken: IToken, tokens: Array<IToken>, backwards: boolean) {\n\t\tconst nextIndex = this._calcNextTokenIndex(focusedToken, tokens, backwards);\n\n\t\te.preventDefault();\n\n\t\tif (nextIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\ttokens[nextIndex].focus();\n\t\t}, 0);\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_handleArrowShift(focusedToken: Token, tokens: Array<Token>, backwards: boolean) {\n\t\tconst focusedTokenIndex = tokens.indexOf(focusedToken);\n\t\tconst nextIndex = backwards ? (focusedTokenIndex + 1) : (focusedTokenIndex - 1);\n\t\tconst previousSelectedTokens = [...this._selectedTokens];\n\n\t\tif (nextIndex === -1 || nextIndex === tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfocusedToken.selected = true;\n\t\ttokens[nextIndex].selected = true;\n\n\t\tconst selectedTokensChanged = JSON.stringify(previousSelectedTokens) !== JSON.stringify(this._selectedTokens);\n\n\t\tif (selectedTokensChanged) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\n\t\ttokens[nextIndex].focus();\n\n\t\tthis._scrollToToken(tokens[nextIndex]);\n\t}\n\n\t_click(e: MouseEvent) {\n\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst targetToken = e.target as Token;\n\n\t\tif (!e.shiftKey) {\n\t\t\tthis._previousToken = targetToken;\n\t\t}\n\n\t\tlet focusedToken = targetToken;\n\n\t\tif (this._previousToken) {\n\t\t\tfocusedToken = this._previousToken;\n\t\t} else {\n\t\t\tthis._previousToken = focusedToken;\n\t\t}\n\n\t\tif (e.shiftKey) {\n\t\t\tconst tokensArray = this._tokens;\n\t\t\tconst lastClickedIndex = tokensArray.indexOf(targetToken);\n\t\t\tconst firstSelectedTokenIndex = tokensArray.indexOf(focusedToken);\n\t\t\tconst start = Math.min(lastClickedIndex, firstSelectedTokenIndex);\n\t\t\tconst end = Math.max(lastClickedIndex, firstSelectedTokenIndex);\n\n\t\t\tif (lastClickedIndex !== -1) {\n\t\t\t\ttokensArray.forEach((token, i) => {\n\t\t\t\t\ttoken.selected = i >= start && i <= end;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleTokenSelection(e);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = e.target as Token;\n\t\tthis._lastFocusedToken = target;\n\n\t\tif (target && target.toBeDeleted) {\n\t\t\tthis._tokenDeleting = true;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis.expanded = true;\n\t\tthis._addTokenToNavigation(e.target as Token);\n\t}\n\n\t_addTokenToNavigation(token: Token) {\n\t\tthis._scrollToEndOnExpand = false;\n\t\tthis._itemNav.setCurrentItem(token);\n\t}\n\n\t_onfocusout(e: FocusEvent) {\n\t\tconst relatedTarget = e.relatedTarget as HTMLElement;\n\t\tconst tokenLosingFocus = e.target as Token;\n\n\t\t// If the token losing focus is being deleted, prevent collapse\n\t\tif (tokenLosingFocus?.toBeDeleted) {\n\t\t\tthis._preventCollapse = true;\n\t\t}\n\n\t\tthis._tokens.forEach(token => {\n\t\t\ttoken.forcedTabIndex = \"-1\";\n\t\t});\n\n\t\tthis._itemNav._currentIndex = -1;\n\t\tthis._skipTabIndex = true;\n\n\t\tif (!this.contains(relatedTarget) && !this.preventInitialFocus) {\n\t\t\tthis._tokens[0].forcedTabIndex = \"0\";\n\t\t\tthis._isFocusSetInternally = false;\n\t\t\tthis._skipTabIndex = false;\n\t\t}\n\n\t\tconst hasTokenToBeDeleted = this._tokens.some(token => token.toBeDeleted);\n\n\t\tif (!this._tokenDeleting && !this._preventCollapse && !hasTokenToBeDeleted) {\n\t\t\tthis._preventCollapse = false;\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\t/**\n \t * Determines the DOM element to focus when the Tokenizer receives focus.\n \t * If the last-focused token is not overflown, focus is restored to it.\n \t * Otherwise, the focus defaults to the first visible token.\n \t */\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\tif (this._lastFocusedToken && !this.overflownTokens.includes(this._lastFocusedToken)) {\n\t\t\tthis._itemNav._currentIndex = this.tokens.indexOf(this._lastFocusedToken);\n\t\t\tthis._isFocusSetInternally = true;\n\t\t\tthis.tokens[0].forcedTabIndex = \"-1\";\n\t\t} else {\n\t\t\tthis._itemNav._currentIndex = 0;\n\t\t}\n\t\treturn this._itemNav._getCurrentItem();\n\t}\n\n\t_toggleTokenSelection(tokens: Array<Token>) {\n\t\tif (!tokens || !tokens.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokensAreSelected = tokens.every(token => token.selected);\n\t\ttokens.forEach(token => { token.selected = !tokensAreSelected; });\n\n\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\ttokens: this._selectedTokens,\n\t\t});\n\t}\n\n\t_handleTokenSelection(e: KeyboardEvent | MouseEvent, deselectAll = true) {\n\t\tconst target = e.target as Token;\n\n\t\tif (target.hasAttribute(\"ui5-token\")) {\n\t\t\tconst deselectTokens = deselectAll ? this._tokens : [];\n\n\t\t\tdeselectTokens.forEach(token => {\n\t\t\t\tif (token !== target) {\n\t\t\t\t\ttoken.selected = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: this._selectedTokens,\n\t\t\t});\n\t\t}\n\t}\n\n\t_deselectAllTokens() {\n\t\tconst hadSelection = this._selectedTokens.length > 0;\n\t\tthis._tokens.forEach(token => { token.selected = false; });\n\n\t\tif (hadSelection) {\n\t\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\t\ttokens: [],\n\t\t\t});\n\t\t}\n\t}\n\n\tget hasTokens() {\n\t\treturn this._tokens.length > 0;\n\t}\n\n\tget showEffectiveClearAll() {\n\t\treturn this.showClearAll && this.hasTokens && this.multiLine && !this.readonly;\n\t}\n\n\t_fillClipboard(shortcutName: ClipboardDataOperation, tokens: Array<IToken>) {\n\t\tconst tokensTexts = tokens.map(token => token.text).join(\"\\r\\n\");\n\n\t\t// Async clipboard API (works in secure contexts - HTTPS/localhost)\n\t\tif (navigator.clipboard?.writeText && window.isSecureContext) {\n\t\t\tnavigator.clipboard.writeText(tokensTexts)?.catch(() => {\n\t\t\t\t// Silent fallback - user can retry\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback for HTTP: use ClipboardEvent with execCommand\n\t\t// execCommand is deprecated but it is kept for compatibility reasons, as\n\t\t// there is no other way to write to clipboard in non-secure contexts\n\t\tconst fillClipboardHandler = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData) {\n\t\t\t\te.clipboardData.setData(\"text/plain\", tokensTexts);\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t};\n\n\t\tdocument.addEventListener(shortcutName, fillClipboardHandler);\n\t\tdocument.execCommand(shortcutName);\n\t\tdocument.removeEventListener(shortcutName, fillClipboardHandler);\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its beginning.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToStart() {\n\t\tif (this._scrollEnablement?.scrollContainer) {\n\t\t\tthis._scrollEnablement?.scrollTo(0, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls the container of the tokens to its end when expanded.\n\t * This method is used by MultiInput and MultiComboBox.\n\t * @protected\n\t */\n\tscrollToEnd() {\n\t\tconst expandedTokenizerScrollWidth = this.contentDom && (this.effectiveDir !== \"rtl\" ? this.contentDom.scrollWidth : -this.contentDom.scrollWidth);\n\t\tif (this._scrollEnablement?.scrollContainer) {\n\t\t\tthis._scrollEnablement?.scrollTo(expandedTokenizerScrollWidth, 0, 5, 10);\n\t\t}\n\t}\n\n\t/**\n\t * Scrolls token to the visible area of the container.\n\t * Adds 5 pixels to the scroll position to ensure padding and border visibility on both ends\n\t * For the last token, if its width is more than the needed space, scroll to the end without offset\n\t * @protected\n\t */\n\t_scrollToToken(token: IToken) {\n\t\tif (!this.contentDom) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst tokenRect = token.getBoundingClientRect();\n\t\tconst tokenContainerRect = this.contentDom.getBoundingClientRect();\n\t\tconst oneSideBorderAndPaddingOffset = 5;\n\n\t\tconst isLastToken = this._tokens.indexOf(token as Token) === this._tokens.length - 1;\n\t\tif (isLastToken) {\n\t\t\tthis.scrollToEnd();\n\t\t\treturn;\n\t\t}\n\n\t\tif (tokenRect.left < tokenContainerRect.left) {\n\t\t\tthis._scrollEnablement?.scrollTo(this.contentDom.scrollLeft - (tokenContainerRect.left - tokenRect.left + oneSideBorderAndPaddingOffset), 0);\n\t\t} else if (tokenRect.right > tokenContainerRect.right) {\n\t\t\tthis._scrollEnablement?.scrollTo(this.contentDom.scrollLeft + (tokenRect.right - tokenContainerRect.right + oneSideBorderAndPaddingOffset), 0);\n\t\t}\n\t}\n\n\t_getList() {\n\t\treturn this.getPopover().querySelector<List>(\"[ui5-list]\")!;\n\t}\n\n\tget _tokens() {\n\t\treturn this.getSlottedNodes<Token>(\"tokens\");\n\t}\n\n\tget morePopoverOpener(): HTMLElement | string | null {\n\t\t// return this.opener ? this : this.opener;\n\t\tif (this.opener) {\n\t\t\treturn this.opener;\n\t\t}\n\t\treturn this;\n\t}\n\n\tget _nMoreText() {\n\t\tif (!this._nMoreCount) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._getVisibleTokens().length) {\n\t\t\treturn Tokenizer.i18nBundle.getText(MULTIINPUT_SHOW_MORE_TOKENS, this._nMoreCount);\n\t\t}\n\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_SHOW_ALL_ITEMS, this._nMoreCount);\n\t}\n\n\tget _clearAllText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_CLEAR_ALL);\n\t}\n\n\tget showNMore() {\n\t\treturn !this.expanded && !!this.overflownTokens.length;\n\t}\n\n\tget contentDom() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer--content\")!;\n\t}\n\n\tget moreLink() {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(\".ui5-tokenizer-more-text\");\n\t}\n\n\tget tokenizerLabel() {\n\t\tconst effectiveLabelText = getEffectiveAriaLabelText(this);\n\t\treturn effectiveLabelText || Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL);\n\t}\n\n\tget _okButtonText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_DIALOG_OK_BUTTON);\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn Tokenizer.i18nBundle.getText(TOKENIZER_DIALOG_CANCEL_BUTTON);\n\t}\n\n\tget tokenizerAriaDescription() {\n\t\treturn getEffectiveAriaLabelText(this) ? Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_LABEL) : undefined;\n\t}\n\n\tget _ariaDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _ariaReadonly() {\n\t\treturn this.readonly || undefined;\n\t}\n\n\tget morePopoverTitle() {\n\t\treturn this.popoverTitle || getEffectiveAriaLabelText(this) || Tokenizer.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget overflownTokens() {\n\t\tif (!this.contentDom) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst tokensArray = this._tokens;\n\n\t\t// Reset the overflow prop of the tokens first in order\n\t\t// to use their dimensions for calculation because already\n\t\t// hidden tokens are set to 'display: none'\n\t\ttokensArray.forEach(token => {\n\t\t\ttoken.overflows = false;\n\t\t});\n\n\t\treturn tokensArray.filter(token => {\n\t\t\tconst parentRect = this.contentDom.getBoundingClientRect();\n\t\t\tconst tokenRect = token.getBoundingClientRect();\n\t\t\tconst tokenEnd = Number(tokenRect.right.toFixed(2));\n\t\t\tconst parentEnd = Number(parentRect.right.toFixed(2));\n\t\t\tconst tokenStart = Number(tokenRect.left.toFixed(2));\n\t\t\tconst parentStart = Number(parentRect.left.toFixed(2));\n\n\t\t\ttoken.overflows = !this.expanded && ((tokenStart < parentStart) || (tokenEnd > parentEnd));\n\n\t\t\treturn token.overflows;\n\t\t});\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _selectedTokens() {\n\t\treturn this._tokens.filter(token => token.selected);\n\t}\n\n\tget _nMoreListMode() {\n\t\tif (this.readonly || this.disabled) {\n\t\t\treturn ListSelectionMode.None;\n\t\t}\n\n\t\treturn ListSelectionMode.Delete;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpopover: {\n\t\t\t\t\"min-width\": this.popoverMinWidth ? `${this.popoverMinWidth}px` : `${this.getBoundingClientRect().width}px`,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_focusLastToken() {\n\t\tconst tokens = this._tokens;\n\t\tif (tokens.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastToken = tokens[tokens.length - 1];\n\t\tlastToken.focus();\n\t}\n\n\tgetPopover() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\tgetTokenByRefId(refId: string) {\n\t\treturn this._tokens.find(token => token._id === refId)!;\n\t}\n}\n\nconst getTokensCountText = (iTokenCount: number) => {\n\tconst tokenCountMap: TokenCountMapType = {\n\t\t0: TOKENIZER_ARIA_CONTAIN_TOKEN,\n\t\t1: TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,\n\t};\n\n\tif (iTokenCount in tokenCountMap) {\n\t\treturn Tokenizer.i18nBundle.getText(tokenCountMap[iTokenCount]);\n\t}\n\n\treturn Tokenizer.i18nBundle.getText(TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS, iTokenCount);\n};\n\nTokenizer.define();\n\nexport default Tokenizer;\nexport { getTokensCountText };\nexport { ClipboardDataOperation };\nexport type { TokenizerTokenDeleteEventDetail, TokenizerSelectionChangeEventDetail, TokenizerDialogButtonPressDetail };\n"]}
@@ -167,6 +167,7 @@ declare class TreeItemBase extends ListItem {
167
167
  ariaChecked?: boolean;
168
168
  tooltip?: string;
169
169
  ariaKeyShortcuts?: string;
170
+ ariaDescribedBy?: string;
170
171
  };
171
172
  /**
172
173
  * Used to duck-type TreeItem elements without using instanceof
@@ -221,11 +221,11 @@ registerIconLoader("my-custom-icons", () => {
221
221
  }]);
222
222
  });
223
223
  registerIcon("pencil", {
224
- collection: "my-custom-icons",
224
+ collection: "my-custom-icons2",
225
225
  customTemplate: IconPensilJSXTemplate,
226
226
  });
227
227
  unsafeRegisterIcon("pencil2", {
228
- collection: "my-custom-icons",
228
+ collection: "my-custom-icons3",
229
229
  customTemplateAsString: `<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
230
230
  <g clip-path="url(#clip0_2221_23716)"><path d="M11.3333 1.99998C11.503 1.79933 11.7131 1.63601 11.9499 1.52043C12.1868 1.40485 12.4453 1.33953 12.709 1.32865C12.9727 1.31777 13.2358 1.36156 13.4815 1.45723C13.7272 1.55291 13.9502 1.69836 14.1361 1.88432C14.3221 2.07029 14.467 2.29268 14.5616 2.53734C14.6562 2.78199 14.6985 3.04353 14.6857 3.3053C14.6728 3.56706 14.6052 3.8233 14.4872 4.05769C14.3691 4.29207 14.2032 4.49947 13.9999 4.66664L4.99992 13.6666L1.33325 14.6666L2.33325 11L11.3333 1.99998Z" stroke-linecap="round" stroke-linejoin="round"/><path d="M10 3.33331L12.6667 5.99998" stroke-linecap="round" stroke-linejoin="round"/></g>
231
231
  <defs>
@@ -234,7 +234,7 @@ unsafeRegisterIcon("pencil2", {
234
234
  </svg>`,
235
235
  });
236
236
  registerIcon("myIcon", {
237
- collection: "my-custom-icons",
237
+ collection: "my-custom-icons4",
238
238
  pathData: "M16.5 76c0-41 32-75 72-75h335c40 0 72 34 72 75v329c0 41-32 75-72 75h-335c-40 0-72-34-72-75V76zm263 356h144c13 0 24-12 24-27V76c0-15-11-27-24-27h-144v383zM88.5 49c-13 0-24 12-24 27v329c0 15 11 27 24 27h143V49h-143z",
239
239
  });
240
240
  // @ts-ignore