@ui5/webcomponents 2.26.0 → 2.27.0-rc.1

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 (208) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Avatar.d.ts +7 -0
  4. package/dist/Avatar.js +18 -5
  5. package/dist/Avatar.js.map +1 -1
  6. package/dist/ComboBoxItemGroup.d.ts +2 -0
  7. package/dist/ComboBoxItemGroup.js +2 -0
  8. package/dist/ComboBoxItemGroup.js.map +1 -1
  9. package/dist/DatePicker.d.ts +14 -0
  10. package/dist/DatePicker.js +14 -0
  11. package/dist/DatePicker.js.map +1 -1
  12. package/dist/DayPicker.d.ts +1 -0
  13. package/dist/DayPicker.js +4 -1
  14. package/dist/DayPicker.js.map +1 -1
  15. package/dist/DayPickerTemplate.js +1 -1
  16. package/dist/DayPickerTemplate.js.map +1 -1
  17. package/dist/Icon.js +3 -0
  18. package/dist/Icon.js.map +1 -1
  19. package/dist/List.js +1 -1
  20. package/dist/List.js.map +1 -1
  21. package/dist/ListBoxItemGroupTemplate.js +1 -1
  22. package/dist/ListBoxItemGroupTemplate.js.map +1 -1
  23. package/dist/ListItem.d.ts +4 -2
  24. package/dist/ListItem.js +5 -9
  25. package/dist/ListItem.js.map +1 -1
  26. package/dist/ListItemBaseTemplate.d.ts +2 -0
  27. package/dist/ListItemBaseTemplate.js +1 -1
  28. package/dist/ListItemBaseTemplate.js.map +1 -1
  29. package/dist/ListItemGroup.d.ts +7 -23
  30. package/dist/ListItemGroup.js +4 -21
  31. package/dist/ListItemGroup.js.map +1 -1
  32. package/dist/ListItemGroupBase.d.ts +41 -0
  33. package/dist/ListItemGroupBase.js +54 -0
  34. package/dist/ListItemGroupBase.js.map +1 -0
  35. package/dist/ListItemStandardTemplate.js +1 -1
  36. package/dist/ListItemStandardTemplate.js.map +1 -1
  37. package/dist/MultiComboBoxItemGroup.d.ts +2 -0
  38. package/dist/MultiComboBoxItemGroup.js +2 -0
  39. package/dist/MultiComboBoxItemGroup.js.map +1 -1
  40. package/dist/NumberInput.d.ts +271 -0
  41. package/dist/NumberInput.js +719 -0
  42. package/dist/NumberInput.js.map +1 -0
  43. package/dist/NumberInputTemplate.d.ts +2 -0
  44. package/dist/NumberInputTemplate.js +18 -0
  45. package/dist/NumberInputTemplate.js.map +1 -0
  46. package/dist/Option.d.ts +10 -0
  47. package/dist/Option.js +6 -0
  48. package/dist/Option.js.map +1 -1
  49. package/dist/OptionGroup.d.ts +34 -0
  50. package/dist/OptionGroup.js +61 -0
  51. package/dist/OptionGroup.js.map +1 -0
  52. package/dist/OptionGroupTemplate.d.ts +2 -0
  53. package/dist/OptionGroupTemplate.js +6 -0
  54. package/dist/OptionGroupTemplate.js.map +1 -0
  55. package/dist/OptionTemplate.js +6 -1
  56. package/dist/OptionTemplate.js.map +1 -1
  57. package/dist/Popover.js +5 -3
  58. package/dist/Popover.js.map +1 -1
  59. package/dist/Select.d.ts +19 -2
  60. package/dist/Select.js +79 -28
  61. package/dist/Select.js.map +1 -1
  62. package/dist/SelectPopoverTemplate.js +1 -1
  63. package/dist/SelectPopoverTemplate.js.map +1 -1
  64. package/dist/SelectTemplate.js +2 -1
  65. package/dist/SelectTemplate.js.map +1 -1
  66. package/dist/SplitButton.d.ts +7 -3
  67. package/dist/SplitButton.js +4 -4
  68. package/dist/SplitButton.js.map +1 -1
  69. package/dist/SplitButtonTemplate.js +1 -1
  70. package/dist/SplitButtonTemplate.js.map +1 -1
  71. package/dist/StepInput.d.ts +14 -127
  72. package/dist/StepInput.js +40 -472
  73. package/dist/StepInput.js.map +1 -1
  74. package/dist/StepInputTemplate.js +4 -15
  75. package/dist/StepInputTemplate.js.map +1 -1
  76. package/dist/SuggestionItemGroup.d.ts +2 -0
  77. package/dist/SuggestionItemGroup.js +2 -0
  78. package/dist/SuggestionItemGroup.js.map +1 -1
  79. package/dist/ToolbarButton.d.ts +18 -0
  80. package/dist/ToolbarButton.js +16 -0
  81. package/dist/ToolbarButton.js.map +1 -1
  82. package/dist/ToolbarButtonTemplate.js +1 -1
  83. package/dist/ToolbarButtonTemplate.js.map +1 -1
  84. package/dist/bundle.esm.js +2 -0
  85. package/dist/bundle.esm.js.map +1 -1
  86. package/dist/css/themes/NumberInput.css +1 -0
  87. package/dist/css/themes/OptionGroup.css +1 -0
  88. package/dist/css/themes/StepInput.css +1 -1
  89. package/dist/css/themes/TimePickerClock.css +1 -1
  90. package/dist/css/themes/TimeSelectionClocks.css +1 -1
  91. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  92. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  93. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  94. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  95. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  96. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +30 -22
  97. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  98. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +31 -24
  99. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  100. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  101. package/dist/custom-elements-internal.json +719 -156
  102. package/dist/custom-elements.json +658 -162
  103. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  108. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  109. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  110. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  111. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  112. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  113. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  114. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  115. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  116. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  117. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  118. package/dist/generated/i18n/i18n-defaults.d.ts +8 -6
  119. package/dist/generated/i18n/i18n-defaults.js +8 -6
  120. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  121. package/dist/generated/themes/NumberInput.css.d.ts +2 -0
  122. package/dist/generated/themes/NumberInput.css.js +8 -0
  123. package/dist/generated/themes/NumberInput.css.js.map +1 -0
  124. package/dist/generated/themes/OptionGroup.css.d.ts +2 -0
  125. package/dist/generated/themes/OptionGroup.css.js +8 -0
  126. package/dist/generated/themes/OptionGroup.css.js.map +1 -0
  127. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  128. package/dist/generated/themes/StepInput.css.js +1 -1
  129. package/dist/generated/themes/StepInput.css.js.map +1 -1
  130. package/dist/generated/themes/TimePickerClock.css.d.ts +1 -1
  131. package/dist/generated/themes/TimePickerClock.css.js +1 -1
  132. package/dist/generated/themes/TimePickerClock.css.js.map +1 -1
  133. package/dist/generated/themes/TimeSelectionClocks.css.d.ts +1 -1
  134. package/dist/generated/themes/TimeSelectionClocks.css.js +1 -1
  135. package/dist/generated/themes/TimeSelectionClocks.css.js.map +1 -1
  136. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  137. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  138. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  139. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  140. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  141. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  142. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  143. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  144. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  145. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  146. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  147. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  148. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  149. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  150. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  151. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  152. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +30 -22
  153. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  154. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  155. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  156. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  157. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  158. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +31 -24
  159. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  160. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  161. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  162. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  163. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  164. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  165. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  166. package/dist/vscode.html-custom-data.json +117 -17
  167. package/dist/web-types.json +266 -34
  168. package/package.json +9 -9
  169. package/src/DayPickerTemplate.tsx +1 -1
  170. package/src/ListBoxItemGroupTemplate.tsx +1 -1
  171. package/src/ListItemBaseTemplate.tsx +4 -0
  172. package/src/ListItemStandardTemplate.tsx +1 -1
  173. package/src/NumberInputTemplate.tsx +95 -0
  174. package/src/OptionGroupTemplate.tsx +20 -0
  175. package/src/OptionTemplate.tsx +6 -1
  176. package/src/SelectPopoverTemplate.tsx +1 -1
  177. package/src/SelectTemplate.tsx +6 -0
  178. package/src/SplitButtonTemplate.tsx +1 -2
  179. package/src/StepInputTemplate.tsx +23 -86
  180. package/src/ToolbarButtonTemplate.tsx +2 -0
  181. package/src/i18n/messagebundle.properties +13 -8
  182. package/src/i18n/messagebundle_de.properties +2 -2
  183. package/src/i18n/messagebundle_en.properties +2 -0
  184. package/src/i18n/messagebundle_en_US_saprigi.properties +7 -6
  185. package/src/i18n/messagebundle_pl.properties +1 -1
  186. package/src/i18n/messagebundle_ru.properties +1 -1
  187. package/src/themes/NumberInput.css +321 -0
  188. package/src/themes/OptionGroup.css +28 -0
  189. package/src/themes/StepInput.css +0 -276
  190. package/src/themes/TimePickerClock.css +1 -1
  191. package/src/themes/TimeSelectionClocks.css +1 -1
  192. package/src/themes/base/NumberInput-parameters.css +31 -0
  193. package/src/themes/base/sizes-parameters.css +3 -3
  194. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -1
  195. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  196. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  197. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  198. package/src/themes/sap_horizon/NumberInput-parameters.css +26 -0
  199. package/src/themes/sap_horizon/parameters-bundle.css +1 -1
  200. package/src/themes/sap_horizon_dark/NumberInput-parameters.css +26 -0
  201. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  202. package/src/themes/sap_horizon_hcb/NumberInput-parameters.css +14 -0
  203. package/src/themes/sap_horizon_hcb/parameters-bundle.css +2 -1
  204. package/src/themes/sap_horizon_hcw/NumberInput-parameters.css +14 -0
  205. package/src/themes/sap_horizon_hcw/parameters-bundle.css +2 -1
  206. package/src/themes/base/StepInput-parameters.css +0 -25
  207. package/src/themes/sap_horizon/StepInput-parameters.css +0 -25
  208. package/src/themes/sap_horizon_dark/StepInput-parameters.css +0 -25
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["../src/NumberInput.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisUpCtrl,\n\tisDownCtrl,\n\tisUpShift,\n\tisDownShift,\n\tisUpShiftCtrl,\n\tisDownShiftCtrl,\n\tisPageUpShift,\n\tisPageDownShift,\n\tisEscape,\n\tisEnter,\n\tisMinus,\n} from \"@ui5/webcomponents-base/dist/Keys.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, getAssociatedLabelForTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport { submitForm } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport NumberInputTemplate from \"./NumberInputTemplate.js\";\nimport {\n\tNUMBERINPUT_DEC_ICON_TITLE,\n\tNUMBERINPUT_INC_ICON_TITLE,\n\tNUMBERINPUT_PATTERN_MISSMATCH,\n\tNUMBERINPUT_RANGEOVERFLOW,\n\tNUMBERINPUT_RANGEUNDERFLOW,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/less.js\";\nimport \"@ui5/webcomponents-icons/dist/add.js\";\n\nimport type Input from \"./Input.js\";\nimport type { InputAccInfo, InputEventDetail } from \"./Input.js\";\nimport InputType from \"./types/InputType.js\";\nimport NumberFormat from \"@ui5/webcomponents-localization/dist/NumberFormat.js\";\n\n// Styles\nimport NumberInputCss from \"./generated/themes/NumberInput.css.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport { attachLanguageChange, detachLanguageChange } from \"@ui5/webcomponents-base/dist/locale/languageChange.js\";\n\n// Spin variables\nconst INITIAL_WAIT_TIMEOUT = 500; // milliseconds\nconst ACCELERATION = 0.8;\nconst MIN_WAIT_TIMEOUT = 50; // milliseconds\nconst INITIAL_SPEED = 120; // milliseconds\n\ntype NumberInputValueStateChangeEventDetail = {\n\tvalueState: `${ValueState}`,\n\tvalid: boolean,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-number-input` component is a numeric input field. It allows users to enter, edit and select numeric values.\n *\n * ### Usage\n *\n * The default step is 1 but the app developer can set a different one.\n *\n * App developers can set a maximum and minimum value for `ui5-number-input`.\n * The increase/decrease button and the up/down keyboard navigation become disabled when\n * the value reaches the max/min or a new value is entered from the input which is greater/less than the max/min.\n *\n * #### When to use:\n *\n * - To enter or adjust numeric values.\n * - To adjust values for a specific step.\n *\n * #### When not to use:\n *\n * - To enter a static number (for example, postal code, phone number, or ID). In this case,\n * use the regular `ui5-input` instead.\n * - To enter dates and times. In this case, use date/time related components instead.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/NumberInput.js\";`\n * @constructor\n * @extends UI5Element\n * @since 2.26.0\n * @experimental\n * @public\n */\n@customElement({\n\ttag: \"ui5-number-input\",\n\tcldr: true,\n\tformAssociated: true,\n\trenderer: jsxRenderer,\n\tstyles: NumberInputCss,\n\ttemplate: NumberInputTemplate,\n\tlanguageAware: true,\n})\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the value of the component changes at each keystroke.\n * @public\n */\n@event(\"input\", {\n\tcancelable: true,\n\tbubbles: true,\n})\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if its default action is\n * prevented, the component will not update the value state.\n * @public\n * @param {string} valueState The new `valueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event(\"value-state-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n@event(\"_request-submit\", {\n\tbubbles: true,\n})\nclass NumberInput extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void\n\t\tinput: InputEventDetail\n\t\t\"value-state-change\": NumberInputValueStateChangeEventDetail\n\t\t\"_request-submit\": void\n\t}\n\n\t/**\n\t * Defines a value of the component.\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tvalue = 0;\n\n\t/**\n\t * Defines a minimum value of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ type: Number })\n\tmin?: number;\n\n\t/**\n\t * Defines a maximum value of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ type: Number })\n\tmax?: number;\n\n\t/**\n\t * Defines a step of increasing/decreasing the value of the component.\n\t * @default 1\n\t * @public\n\t */\n\t@property({ type: Number })\n\tstep: number = 1;\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 * Defines whether the component is required.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\trequired = false;\n\n\t/**\n\t * Determines whether the component is displayed as disabled.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Determines whether the component is displayed as read-only.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\treadonly = false;\n\n\t/**\n\t * Defines a short hint, intended to aid the user with data entry when the\n\t * component has no value.\n\t *\n\t * **Note:** When no placeholder is set, the format pattern is displayed as a placeholder.\n\t * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tplaceholder?: string;\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 * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Determines the number of digits after the decimal point of the component.\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tvaluePrecision = 0;\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 * Controls whether the increment/decrement step buttons are shown.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_showStepButtons = false;\n\n\t@property({ noAttribute: true })\n\t_externalAriaLabel?: string;\n\n\t@property({ noAttribute: true })\n\t_decIconDisabled = false;\n\n\t@property({ noAttribute: true })\n\t_incIconDisabled = false;\n\n\t@property({ type: Boolean })\n\tfocused = false;\n\n\t@property({ noAttribute: true })\n\t_inputFocused = false;\n\n\t@property({ noAttribute: true })\n\t_previousValue: number | undefined;\n\n\t@property({ noAttribute: true })\n\t_waitTimeout: number = INITIAL_WAIT_TIMEOUT;\n\n\t@property({ noAttribute: true })\n\t_speed: number = INITIAL_SPEED;\n\n\t@property({ noAttribute: true })\n\t_btnDown?: boolean;\n\n\t@property({ noAttribute: true })\n\t_spinTimeoutId?: Timeout;\n\n\t@property({ noAttribute: true })\n\t_spinStarted = false;\n\n\t@property({ noAttribute: true })\n\t_inputValue?: string;\n\n\t/**\n\t * Defines the value state message that will be displayed as pop up under the component.\n\t *\n\t * **Note:** If not specified, a default text (in the respective language) will be displayed.\n\t *\n\t * **Note:** The `valueStateMessage` would be displayed,\n\t * when the component is in `Information`, `Critical` or `Negative` value state.\n\t * @public\n\t */\n\t@slot()\n\tvalueStateMessage!: Slot<HTMLElement>;\n\n\t_initialValueState?: `${ValueState}`;\n\n\t_formatter?: NumberFormat;\n\n\t_languageChangeHandler?: (lang: string) => Promise<void>;\n\n\t_languageChanged?: boolean = false;\n\n\t_delimiter?: string;\n\n\t_groupSeparator?: string;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tasync formElementAnchor() {\n\t\treturn (await this.getFocusDomRefAsync() as UI5Element)?.getFocusDomRefAsync();\n\t}\n\n\tget formValidityMessage() {\n\t\tconst validity = this.formValidity;\n\n\t\tif (validity.patternMismatch) {\n\t\t\treturn NumberInput.i18nBundle.getText(NUMBERINPUT_PATTERN_MISSMATCH, this.valuePrecision);\n\t\t}\n\t\tif (validity.rangeUnderflow) {\n\t\t\treturn NumberInput.i18nBundle.getText(NUMBERINPUT_RANGEUNDERFLOW, this.min as number);\n\t\t}\n\t\tif (validity.rangeOverflow) {\n\t\t\treturn NumberInput.i18nBundle.getText(NUMBERINPUT_RANGEOVERFLOW, this.max as number);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn {\n\t\t\tpatternMismatch: this.value !== 0 && !this._isValueWithCorrectPrecision,\n\t\t\trangeOverflow: this.max !== undefined && this.value > this.max,\n\t\t\trangeUnderflow: this.min !== undefined && this.value < this.min,\n\t\t};\n\t}\n\n\tget formFormattedValue(): FormData | string | null {\n\t\treturn this.value.toString();\n\t}\n\n\tget type() {\n\t\treturn InputType.Text;\n\t}\n\n\t// icons-related\n\n\tget decIconTitle() {\n\t\treturn NumberInput.i18nBundle.getText(NUMBERINPUT_DEC_ICON_TITLE);\n\t}\n\n\tget incIconTitle() {\n\t\treturn NumberInput.i18nBundle.getText(NUMBERINPUT_INC_ICON_TITLE);\n\t}\n\n\tget _decIconClickable() {\n\t\treturn !this._decIconDisabled && !this.readonly && !this.disabled;\n\t}\n\n\tget _incIconClickable() {\n\t\treturn !this._incIconDisabled && !this.readonly && !this.disabled;\n\t}\n\n\tget _isFocused() {\n\t\treturn this.focused;\n\t}\n\n\tget _displayValue() {\n\t\t// For the cases when there is set value precision but the input value is not with correct precision we don't need to format it\n\t\tconst value = this.input?.value && !this._isValueWithCorrectPrecision ? this.input.value : this._formatNumber(this.value);\n\t\tif ((this.value === 0) || (Number.isInteger(this.value))) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif (this.input && this.value === this._parseNumber(this.input.value)) { // For the cases where the number is fractional and is ending with 0s.\n\t\t\treturn this.input.value;\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tget accInfo(): InputAccInfo {\n\t\treturn {\n\t\t\t\"ariaRequired\": this.required,\n\t\t\t\"ariaLabel\": getEffectiveAriaLabelText(this) || this._externalAriaLabel || getAssociatedLabelForTexts(this),\n\t\t};\n\t}\n\n\tget inputAttributes() {\n\t\treturn {\n\t\t\tmin: this.min === undefined ? undefined : this.min,\n\t\t\tmax: this.max === undefined ? undefined : this.max,\n\t\t\tstep: this.step,\n\t\t};\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this._languageChanged) {\n\t\t\tthis._inputValue = this._formatNumber(this.value);\n\t\t\tthis._languageChanged = false;\n\t\t\tthis.valueState = ValueState.None;\n\t\t}\n\t\tthis._setButtonState();\n\t}\n\n\tonEnterDOM() {\n\t\tthis._setupLanguageChangeHandler();\n\t}\n\n\tonExitDOM() {\n\t\tthis._cleanupLanguageChangeHandler();\n\t\tthis._resetSpin();\n\t}\n\n\t_setupLanguageChangeHandler() {\n\t\tif (this._languageChangeHandler) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._languageChangeHandler = () => {\n\t\t\tthis._formatter = undefined;\n\t\t\tthis._languageChanged = true;\n\t\t\tthis._delimiter = undefined;\n\t\t\tthis._groupSeparator = undefined;\n\n\t\t\treturn Promise.resolve();\n\t\t};\n\t\tattachLanguageChange(this._languageChangeHandler);\n\t}\n\n\t_cleanupLanguageChangeHandler() {\n\t\tif (this._languageChangeHandler) {\n\t\t\tdetachLanguageChange(this._languageChangeHandler);\n\t\t\tthis._languageChangeHandler = undefined;\n\t\t}\n\t}\n\n\tget formatter(): NumberFormat {\n\t\tif (!this._formatter) {\n\t\t\tthis._formatter = NumberFormat.getFloatInstance({\n\t\t\t\tdecimals: this.valuePrecision,\n\t\t\t});\n\t\t}\n\n\t\treturn this._formatter;\n\t}\n\n\tget delimiter() {\n\t\tif (!this._delimiter) {\n\t\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\t\tthis._delimiter = localeData.getNumberSymbol(\"decimal\") || \".\";\n\t\t}\n\n\t\treturn this._delimiter;\n\t}\n\n\tget groupSeparator() {\n\t\tif (!this._groupSeparator) {\n\t\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\t\tthis._groupSeparator = localeData.getNumberSymbol(\"group\") || \",\";\n\t\t}\n\n\t\treturn this._groupSeparator;\n\t}\n\n\tget input(): Input {\n\t\treturn this.shadowRoot!.querySelector<Input>(\"[ui5-input]\")!;\n\t}\n\n\tget innerInput(): HTMLInputElement {\n\t\treturn this.input.shadowRoot!.querySelector<HTMLInputElement>(\"input\")!;\n\t}\n\n\t_onButtonFocusOut() {\n\t\tsetTimeout(() => {\n\t\t\tif (!this._inputFocused && !this.shadowRoot!.activeElement) {\n\t\t\t\tthis.focused = false;\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\t_onInput(e: CustomEvent<InputEventDetail>) {\n\t\tconst prevented = !this.fireDecoratorEvent(\"input\", { inputType: e.detail.inputType });\n\n\t\tif (prevented) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onInputFocusIn() {\n\t\tthis._inputFocused = true;\n\t}\n\n\t_onInputFocusOut() {\n\t\tthis._inputFocused = false;\n\t\tthis._onInputChange();\n\t}\n\n\t_onMouseWheel(e: WheelEvent) {\n\t\tif (this.disabled || this.readonly || !this._isFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst isScrollUp = e.deltaY < 0;\n\t\tconst modifier = isScrollUp ? this.step : -this.step;\n\t\tthis._modifyValue(modifier, true);\n\t}\n\n\t_setButtonState() {\n\t\tthis._decIconDisabled = this.min !== undefined && this.value <= this.min;\n\t\tthis._incIconDisabled = this.max !== undefined && this.value >= this.max;\n\t}\n\n\t_validate() {\n\t\tif (this._initialValueState === undefined) {\n\t\t\tthis._initialValueState = this.valueState;\n\t\t}\n\n\t\tthis._updateValueState();\n\t}\n\n\t_updateValueState() {\n\t\tconst isWithinRange = (this.min === undefined || this._parseNumber(this.input.value) >= this.min)\n\t\t\t\t\t\t\t && (this.max === undefined || this._parseNumber(this.input.value) <= this.max);\n\t\tconst isValueWithCorrectPrecision = this._isValueWithCorrectPrecision;\n\t\tconst previousValueState = this.valueState;\n\t\tconst isValid = isWithinRange && isValueWithCorrectPrecision;\n\n\t\tthis.valueState = isValid ? ValueState.None : ValueState.Negative;\n\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"value-state-change\", {\n\t\t\tvalueState: this.valueState,\n\t\t\tvalid: isValid,\n\t\t});\n\n\t\tif (eventPrevented) {\n\t\t\tthis.valueState = previousValueState;\n\t\t}\n\t}\n\n\t_preciseValue(value: number) {\n\t\tconst pow = 10 ** this.valuePrecision;\n\t\treturn Math.round(value * pow) / pow;\n\t}\n\n\t_fireChangeEvent() {\n\t\tif (this._previousValue !== this.value) {\n\t\t\tthis._previousValue = this.value;\n\t\t\tthis.fireDecoratorEvent(\"change\");\n\t\t}\n\t}\n\n\t/**\n\t * Value modifier - modifies the value of the component, validates the new value and enables/disables increment and\n\t * decrement buttons according to the value and min/max values (if set). Fires `change` event when requested\n\t * @private\n\t * @param modifier modifies the value of the component with the given modifier (positive or negative)\n\t * @param fireChangeEvent if `true`, fires `change` event when the value is changed\n\t */\n\t_modifyValue(modifier: number, fireChangeEvent = false) {\n\t\tif (this.min !== undefined && this.max !== undefined && this.min > this.max) {\n\t\t\tconsole.warn(`[ui5-number-input] Invalid configuration: 'min' (${this.min}) is greater than 'max' (${this.max}). Value modification skipped.`); // eslint-disable-line\n\t\t\treturn;\n\t\t}\n\t\tlet value;\n\t\tvalue = this.value + modifier;\n\t\tif (this.min !== undefined && value < this.min) {\n\t\t\tvalue = this.min;\n\t\t}\n\t\tif (this.max !== undefined && value > this.max) {\n\t\t\tvalue = this.max;\n\t\t}\n\t\tvalue = this._preciseValue(value);\n\t\tif (value !== this.value) {\n\t\t\tthis.value = value;\n\t\t\tthis._inputValue = this._formatNumber(value);\n\t\t\tthis._validate();\n\t\t\tthis._setButtonState();\n\t\t\tthis.focused = true;\n\t\t\tif (fireChangeEvent) {\n\t\t\t\tthis._fireChangeEvent();\n\t\t\t} else {\n\t\t\t\tthis.input.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Formats a number with thousands separator based on current locale\n\t * @private\n\t */\n\t_formatNumber(value: number): string {\n\t\treturn this.formatter.format(value);\n\t}\n\n\t/**\n\t * Parses formatted number string back to numeric value\n\t * @private\n\t*/\n\t_parseNumber(formattedValue: string): number {\n\t\treturn this.formatter.parse(formattedValue) as number;\n\t}\n\n\t_incValue() {\n\t\tif (this._incIconClickable && !this.disabled && !this.readonly) {\n\t\t\tthis._modifyValue(this.step, true);\n\t\t\tthis._previousValue = this.value;\n\t\t}\n\t}\n\n\t_decValue() {\n\t\tif (this._decIconClickable && !this.disabled && !this.readonly) {\n\t\t\tthis._modifyValue(-this.step, true);\n\t\t\tthis._previousValue = this.value;\n\t\t}\n\t}\n\n\tget _isValueWithCorrectPrecision() {\n\t\tconst delimiter = this.delimiter;\n\t\t// check if the value will be displayed with correct precision\n\t\t// _displayValue has special formatting logic\n\t\tif (this.valuePrecision === 0 && !this.input?.value.includes(delimiter) && ((this.value === 0) || (Number.isInteger(this.value)))) {\n\t\t\t// integers and zero will be formatted with toFixed, so they're always valid\n\t\t\treturn true;\n\t\t}\n\t\tconst numberParts = this.input?.value?.split(delimiter);\n\t\tconst decimalPartLength = numberParts?.length > 1 ? numberParts[1].length : 0;\n\n\t\treturn decimalPartLength === this.valuePrecision;\n\t}\n\n\t_onInputChange() {\n\t\tthis._setDefaultInputValueIfNeeded();\n\t\tconst updatedValue = this._removeGroupSeparators(this.input.value);\n\t\tconst inputValue = this._parseNumber(updatedValue);\n\t\tif (this._isValueChanged(inputValue)) {\n\t\t\tthis._updateValueAndValidate(Number.isNaN(inputValue) ? this.min || 0 : inputValue);\n\t\t}\n\t}\n\n\t_setDefaultInputValueIfNeeded() {\n\t\tif (this.input.value === \"\") {\n\t\t\tthis._inputValue = this._formatNumber(this.min || 0);\n\t\t}\n\t}\n\n\t_isValueChanged(inputValue: number) {\n\t\tconst isValueWithCorrectPrecision = this._isValueWithCorrectPrecision;\n\t\tconst isWithinRange = (this.min === undefined || inputValue >= this.min) && (this.max === undefined || inputValue <= this.max);\n\t\t// Treat values as distinct when the precision was just corrected (e.g., from 3.4000 to 3.40) while\n\t\t// the value was previously invalid due to precision — but only when the value is in range. Without\n\t\t// this guard the condition also triggers for range violations, causing a redundant second _validate call.\n\t\tconst isPrecisionCorrectButValueStateError = isValueWithCorrectPrecision && isWithinRange && this.valueState === ValueState.Negative;\n\n\t\treturn this.value !== this._previousValue\n\t\t\t|| this.value !== inputValue\n\t\t\t|| inputValue === 0\n\t\t\t|| !isValueWithCorrectPrecision\n\t\t\t|| isPrecisionCorrectButValueStateError\n\t\t\t|| Number.isNaN(inputValue);\n\t}\n\n\t_updateValueAndValidate(inputValue: number) {\n\t\tthis.value = inputValue;\n\t\tthis._inputValue = undefined;\n\t\tthis._validate();\n\t\tthis._setButtonState();\n\t\tthis._fireChangeEvent();\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t\tthis._previousValue = this.value;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t\tthis._previousValue = undefined;\n\t}\n\n\t_onInputRequestSubmit() {\n\t\tif (this._internals.form) {\n\t\t\tsubmitForm(this);\n\t\t} else {\n\t\t\tthis.fireDecoratorEvent(\"_request-submit\");\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._onInputChange();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isUp(e)) {\n\t\t\t// step up\n\t\t\tthis._modifyValue(this.step);\n\t\t} else if (isDown(e)) {\n\t\t\t// step down\n\t\t\tthis._modifyValue(-this.step);\n\t\t} else if (isEscape(e)) {\n\t\t\t// return previous value\n\t\t\tif (this._previousValue === undefined) {\n\t\t\t\tthis._previousValue = this.value;\n\t\t\t}\n\t\t\tthis.value = this._previousValue;\n\t\t\tthis._inputValue = this._formatNumber(this.value);\n\t\t} else if (this.max !== undefined && (isPageUpShift(e) || isUpShiftCtrl(e))) {\n\t\t\t// step to max\n\t\t\tthis._modifyValue(this.max - this.value);\n\t\t} else if (this.min !== undefined && (isPageDownShift(e) || isDownShiftCtrl(e))) {\n\t\t\t// step to min\n\t\t\tthis._modifyValue(this.min - this.value);\n\t\t} else if (!isUpCtrl(e) && !isDownCtrl(e) && !isUpShift(e) && !isDownShift(e)) {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (e.key && e.key.length !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst caretPosition = this._getCaretPosition();\n\t\tconst inputValue = this.innerInput.value;\n\t\tconst typedValue = this._getValueOnkeyDown(e, inputValue, caretPosition!);\n\t\tconst parsedValue = this._parseNumber(typedValue);\n\t\tconst isValidTypedValue = this._isInputValueValid(typedValue, parsedValue);\n\n\t\tif (preventDefault || !isValidTypedValue) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (caretPosition === 0 && isMinus(e)) {\n\t\t\tthis._updateValueAndValidate(parsedValue);\n\t\t}\n\t}\n\n\t_getCaretPosition() {\n\t\treturn this.input.getDomRef()!.querySelector(\"input\")!.selectionStart;\n\t}\n\n\t_getValueOnkeyDown(e: KeyboardEvent, inputValue: string, cursorPosition?: number) {\n\t\tconst typedValue = `${inputValue.substring(0, cursorPosition)}${e.key}${inputValue.substring(cursorPosition!)}`;\n\t\tconst updatedValue = this._removeGroupSeparators(typedValue);\n\t\treturn updatedValue;\n\t}\n\n\t_removeGroupSeparators(value: string) {\n\t\tconst groupSeparator = this.groupSeparator;\n\t\treturn value.replaceAll(groupSeparator, \"\");\n\t}\n\n\t_isInputValueValid(typedValue: string, parsedValue: number) {\n\t\treturn !Number.isNaN(parsedValue) && !/, {2,}/.test(typedValue);\n\t}\n\n\t_decSpin(e: MouseEvent) {\n\t\tif (this._isFocused || this._decIconDisabled) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tif (!this._decIconDisabled) {\n\t\t\tthis._spinValue(false, true);\n\t\t} else {\n\t\t\tthis.input.focus();\n\t\t}\n\t}\n\n\t_incSpin(e: MouseEvent) {\n\t\tif (this._isFocused || this._incIconDisabled) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tif (!this._incIconDisabled) {\n\t\t\tthis._spinValue(true, true);\n\t\t} else {\n\t\t\tthis.input.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Calculates the time which should be waited until _spinValue function is called.\n\t */\n\t_calcWaitTimeout() {\n\t\tthis._speed *= ACCELERATION;\n\t\tthis._waitTimeout = ((this._waitTimeout - this._speed) < MIN_WAIT_TIMEOUT ? MIN_WAIT_TIMEOUT : (this._waitTimeout - this._speed));\n\t\treturn this._waitTimeout;\n\t}\n\n\t/**\n\t * Called when the increment or decrement button is pressed and held to set new value.\n\t * @private\n\t * @param increment - is this the increment button or not so the values should be spin accordingly up or down\n\t * @param resetVariables - whether to reset the spin-related variables or not\n\t */\n\t_spinValue(increment: boolean, resetVariables = false) {\n\t\tif (resetVariables) {\n\t\t\tthis._waitTimeout = INITIAL_WAIT_TIMEOUT;\n\t\t\tthis._speed = INITIAL_SPEED;\n\t\t\tthis._btnDown = true;\n\t\t}\n\t\tthis._spinTimeoutId = setTimeout(() => {\n\t\t\tif (this._btnDown) {\n\t\t\t\tthis._spinStarted = true;\n\t\t\t\tthis._modifyValue(increment ? this.step : -this.step);\n\t\t\t\tthis._setButtonState();\n\t\t\t\tif ((!this._incIconDisabled && increment) || (!this._decIconDisabled && !increment)) {\n\t\t\t\t\tthis._spinValue(increment);\n\t\t\t\t} else {\n\t\t\t\t\tthis._resetSpin();\n\t\t\t\t\tthis._fireChangeEvent();\n\t\t\t\t}\n\t\t\t}\n\t\t}, this._calcWaitTimeout());\n\t}\n\n\t/**\n\t* Resets spin process\n\t*/\n\t_resetSpin() {\n\t\tclearTimeout(this._spinTimeoutId);\n\t\tthis._btnDown = false;\n\t\tthis._spinStarted = false;\n\t}\n\n\t/**\n\t* Resets spin process when mouse outs + or - buttons\n\t*/\n\t_resetSpinOut() {\n\t\tif (this._btnDown) {\n\t\t\tthis._resetSpin();\n\t\t\tthis._fireChangeEvent();\n\t\t}\n\t}\n}\n\nNumberInput.define();\n\nexport default NumberInput;\nexport type {\n\tNumberInputValueStateChangeEventDetail,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import type NumberInput from "./NumberInput.js";
2
+ export default function NumberInputTemplate(this: NumberInput): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import Icon from "./Icon.js";
3
+ import Input from "./Input.js";
4
+ import less from "@ui5/webcomponents-icons/dist/less.js";
5
+ import add from "@ui5/webcomponents-icons/dist/add.js";
6
+ export default function NumberInputTemplate() {
7
+ return (_jsxs("div", { id: `${this._id}`, class: { "ui5-number-input-root": true, "ui5-number-input-root--with-buttons": this._showStepButtons && !this.readonly }, onKeyDown: this._onkeydown, onFocusIn: this._onfocusin, onFocusOut: this._onfocusout, onWheel: this._onMouseWheel, children: [this._showStepButtons && !this.readonly &&
8
+ _jsx("div", { class: "ui5-step-icon ui5-step-dec", title: this.decIconTitle, onMouseDown: this._decSpin, onMouseUp: this._resetSpin, onMouseOut: this._resetSpinOut, children: _jsx(Icon, { id: `${this._id}-dec`, name: less, tabindex: -1, accessibleName: this.decIconTitle, onClick: this._decValue, onFocusOut: this._onButtonFocusOut, class: {
9
+ "inputIcon": true,
10
+ "ui5-number-input-icon--clickable": this._decIconClickable,
11
+ }, showTooltip: true }) }), _jsx(Input, { id: `${this._id}-inner`, "data-sap-focus-ref": true, class: "ui5-number-input-input", placeholder: this.placeholder, type: this.type, value: this._inputValue ?? this._displayValue, disabled: this.disabled, required: this.required, readonly: this.readonly, focused: this.focused, "onui5-_request-submit": this._onInputRequestSubmit, valueState: this.valueState, _inputAccInfo: this.accInfo, _nativeInputAttributes: this.inputAttributes, onChange: this._onInputChange, onFocusOut: this._onInputFocusOut, onFocusIn: this._onInputFocusIn, onInput: this._onInput, children: this.valueStateMessage.length > 0 &&
12
+ _jsx("slot", { name: "valueStateMessage", slot: "valueStateMessage" }) }), this._showStepButtons && !this.readonly &&
13
+ _jsx("div", { class: "ui5-step-icon ui5-step-inc", title: this.incIconTitle, onMouseDown: this._incSpin, onMouseUp: this._resetSpin, onMouseOut: this._resetSpinOut, children: _jsx(Icon, { id: `${this._id}-inc`, class: {
14
+ "inputIcon": true,
15
+ "ui5-number-input-icon--clickable": this._incIconClickable,
16
+ }, name: add, tabindex: -1, accessibleName: this.incIconTitle, onClick: this._incValue, onFocusOut: this._onButtonFocusOut, showTooltip: true }) })] }));
17
+ }
18
+ //# sourceMappingURL=NumberInputTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberInputTemplate.js","sourceRoot":"","sources":["../src/NumberInputTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type NumberInput from \"./NumberInput.js\";\nimport Icon from \"./Icon.js\";\nimport Input from \"./Input.js\";\n\nimport less from \"@ui5/webcomponents-icons/dist/less.js\";\nimport add from \"@ui5/webcomponents-icons/dist/add.js\";\n\nexport default function NumberInputTemplate(this: NumberInput) {\n\treturn (\n\t\t<div\n\t\t\tid={`${this._id}`}\n\t\t\tclass={{ \"ui5-number-input-root\": true, \"ui5-number-input-root--with-buttons\": this._showStepButtons && !this.readonly }}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonFocusIn={this._onfocusin}\n\t\t\tonFocusOut={this._onfocusout}\n\t\t\tonWheel={this._onMouseWheel}\n\t\t>\n\t\t\t{/* Decrement Icon */}\n\t\t\t{this._showStepButtons && !this.readonly &&\n\t\t\t<div\n\t\t\t\tclass=\"ui5-step-icon ui5-step-dec\"\n\t\t\t\ttitle={this.decIconTitle}\n\t\t\t\tonMouseDown={this._decSpin}\n\t\t\t\tonMouseUp={this._resetSpin}\n\t\t\t\tonMouseOut={this._resetSpinOut}\n\t\t\t>\n\t\t\t\t<Icon\n\t\t\t\t\tid={`${this._id}-dec`}\n\t\t\t\t\tname={less}\n\t\t\t\t\ttabindex={-1}\n\t\t\t\t\taccessibleName={this.decIconTitle}\n\t\t\t\t\tonClick={this._decValue}\n\t\t\t\t\tonFocusOut={this._onButtonFocusOut}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t\"inputIcon\": true,\n\t\t\t\t\t\t\"ui5-number-input-icon--clickable\": this._decIconClickable,\n\t\t\t\t\t}}\n\t\t\t\t\tshowTooltip={true}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t}\n\n\t\t\t{/* INPUT */}\n\t\t\t<Input\n\t\t\t\tid={`${this._id}-inner`}\n\t\t\t\tdata-sap-focus-ref\n\t\t\t\tclass=\"ui5-number-input-input\"\n\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\ttype={this.type}\n\t\t\t\tvalue={this._inputValue ?? this._displayValue}\n\t\t\t\tdisabled={this.disabled}\n\t\t\t\trequired={this.required}\n\t\t\t\treadonly={this.readonly}\n\t\t\t\tfocused={this.focused}\n\t\t\t\tonui5-_request-submit={this._onInputRequestSubmit}\n\t\t\t\tvalueState={this.valueState}\n\t\t\t\t_inputAccInfo={this.accInfo}\n\t\t\t\t_nativeInputAttributes={this.inputAttributes}\n\t\t\t\tonChange={this._onInputChange}\n\t\t\t\tonFocusOut={this._onInputFocusOut}\n\t\t\t\tonFocusIn={this._onInputFocusIn}\n\t\t\t\tonInput={this._onInput}\n\t\t\t>\n\t\t\t\t{this.valueStateMessage.length > 0 &&\n\t\t\t\t\t<slot name=\"valueStateMessage\" slot=\"valueStateMessage\"></slot>\n\t\t\t\t}\n\t\t\t</Input>\n\n\t\t\t{/* Increment Icon */}\n\t\t\t{this._showStepButtons && !this.readonly &&\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ui5-step-icon ui5-step-inc\"\n\t\t\t\t\ttitle={this.incIconTitle}\n\t\t\t\t\tonMouseDown={this._incSpin}\n\t\t\t\t\tonMouseUp={this._resetSpin}\n\t\t\t\t\tonMouseOut={this._resetSpinOut}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tid={`${this._id}-inc`}\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\"inputIcon\": true,\n\t\t\t\t\t\t\t\"ui5-number-input-icon--clickable\": this._incIconClickable,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tname={add}\n\t\t\t\t\t\ttabindex={-1}\n\t\t\t\t\t\taccessibleName={this.incIconTitle}\n\t\t\t\t\t\tonClick={this._incValue}\n\t\t\t\t\t\tonFocusOut={this._onButtonFocusOut}\n\t\t\t\t\t\tshowTooltip={true}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
package/dist/Option.d.ts CHANGED
@@ -65,6 +65,16 @@ declare class Option extends ListItemBase implements IOption {
65
65
  */
66
66
  selected: boolean;
67
67
  get displayIconBegin(): boolean;
68
+ /**
69
+ * Per-group aria-setsize, set by Select when this option is inside a ui5-option-group.
70
+ * @private
71
+ */
72
+ _forcedSetsize?: number;
73
+ /**
74
+ * Per-group aria-posinset, set by Select when this option is inside a ui5-option-group.
75
+ * @private
76
+ */
77
+ _forcedPosinset?: number;
68
78
  get effectiveDisplayText(): string;
69
79
  }
70
80
  export default Option;
package/dist/Option.js CHANGED
@@ -55,6 +55,12 @@ __decorate([
55
55
  __decorate([
56
56
  property({ type: Boolean })
57
57
  ], Option.prototype, "selected", void 0);
58
+ __decorate([
59
+ property({ type: Number, noAttribute: true })
60
+ ], Option.prototype, "_forcedSetsize", void 0);
61
+ __decorate([
62
+ property({ type: Number, noAttribute: true })
63
+ ], Option.prototype, "_forcedPosinset", void 0);
58
64
  Option = __decorate([
59
65
  customElement({
60
66
  tag: "ui5-option",
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","sourceRoot":"","sources":["../src/Option.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAE3E,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,WAAW;AACX,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,SAAS;AACT,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,yBAAyB,MAAM,kDAAkD,CAAC;AAGzF;;;;;;;;;;;;;;GAcG;AAWH,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,YAAY;IA6DhC,IAAI,gBAAgB;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/B,CAAC;CACD,CAAA;AA1DA;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;oCAC5C;AASzB;IADC,QAAQ,EAAE;qCACI;AAYf;IADC,QAAQ,EAAE;oCACG;AASd;IADC,QAAQ,EAAE;8CACa;AASxB;IADC,QAAQ,EAAE;uCACM;AAUT;IADP,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACF;AA3DrB,MAAM;IAVX,aAAa,CAAC;QACd,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE;YACP,YAAY,CAAC,MAAM;YACnB,yBAAyB;YACzB,eAAe;YACf,aAAa;SACb;KACD,CAAC;GACI,MAAM,CAoEX;AAED,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,eAAe,MAAM,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { IOption } from \"./Select.js\";\nimport ListItemBase from \"./ListItemBase.js\";\n\n// Template\nimport OptionTemplate from \"./OptionTemplate.js\";\n\n// Styles\nimport optionBaseCss from \"./generated/themes/OptionBase.css.js\";\nimport listItemIconCss from \"./generated/themes/ListItemIcon.css.js\";\nimport listItemAdditionalTextCss from \"./generated/themes/ListItemAdditionalText.css.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-option` component defines the content of an option in the `ui5-select`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Option.js\";`\n * @constructor\n * @extends ListItemBase\n * @implements {IOption}\n * @public\n */\n@customElement({\n\ttag: \"ui5-option\",\n\ttemplate: OptionTemplate,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tlistItemAdditionalTextCss,\n\t\tlistItemIconCss,\n\t\toptionBaseCss,\n\t],\n})\nclass Option extends ListItemBase implements IOption {\n\teventDetails!: ListItemBase[\"eventDetails\"];\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true, invalidateOnChildChange: true })\n\ttext!: DefaultSlot<Node>;\n\n\t/**\n\t * Defines the value of the `ui5-select` inside an HTML Form element when this component is selected.\n\t * For more information on HTML Form support, see the `name` property of `ui5-select`.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tvalue?: string;\n\n\t/**\n\t * Defines the `icon` source URI.\n\t *\n\t * **Note:**\n\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t * [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the option.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the tooltip of the option.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the selected state of the component.\n\t *\n\t * @default false\n\t * @public\n\t * @deprecated since 2.20.0, please use the parent Select's `value` property instead.\n\t */\n\t@property({ type: Boolean })\n\tdeclare selected: boolean;\n\n\tget displayIconBegin(): boolean {\n\t\treturn !!this.icon;\n\t}\n\n\tget effectiveDisplayText() {\n\t\treturn this.textContent || \"\";\n\t}\n}\n\nOption.define();\n\nexport default Option;\n"]}
1
+ {"version":3,"file":"Option.js","sourceRoot":"","sources":["../src/Option.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAE3E,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,WAAW;AACX,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,SAAS;AACT,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,yBAAyB,MAAM,kDAAkD,CAAC;AAGzF;;;;;;;;;;;;;;GAcG;AAWH,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,YAAY;IA6DhC,IAAI,gBAAgB;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACpB,CAAC;IAgBD,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/B,CAAC;CACD,CAAA;AAxEA;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;oCAC5C;AASzB;IADC,QAAQ,EAAE;qCACI;AAYf;IADC,QAAQ,EAAE;oCACG;AASd;IADC,QAAQ,EAAE;8CACa;AASxB;IADC,QAAQ,EAAE;uCACM;AAUT;IADP,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACF;AAW1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;8CACtB;AAOxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;+CACrB;AA7EpB,MAAM;IAVX,aAAa,CAAC;QACd,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,cAAc;QACxB,MAAM,EAAE;YACP,YAAY,CAAC,MAAM;YACnB,yBAAyB;YACzB,eAAe;YACf,aAAa;SACb;KACD,CAAC;GACI,MAAM,CAkFX;AAED,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,eAAe,MAAM,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { IOption } from \"./Select.js\";\nimport ListItemBase from \"./ListItemBase.js\";\n\n// Template\nimport OptionTemplate from \"./OptionTemplate.js\";\n\n// Styles\nimport optionBaseCss from \"./generated/themes/OptionBase.css.js\";\nimport listItemIconCss from \"./generated/themes/ListItemIcon.css.js\";\nimport listItemAdditionalTextCss from \"./generated/themes/ListItemAdditionalText.css.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-option` component defines the content of an option in the `ui5-select`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Option.js\";`\n * @constructor\n * @extends ListItemBase\n * @implements {IOption}\n * @public\n */\n@customElement({\n\ttag: \"ui5-option\",\n\ttemplate: OptionTemplate,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tlistItemAdditionalTextCss,\n\t\tlistItemIconCss,\n\t\toptionBaseCss,\n\t],\n})\nclass Option extends ListItemBase implements IOption {\n\teventDetails!: ListItemBase[\"eventDetails\"];\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true, invalidateOnChildChange: true })\n\ttext!: DefaultSlot<Node>;\n\n\t/**\n\t * Defines the value of the `ui5-select` inside an HTML Form element when this component is selected.\n\t * For more information on HTML Form support, see the `name` property of `ui5-select`.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tvalue?: string;\n\n\t/**\n\t * Defines the `icon` source URI.\n\t *\n\t * **Note:**\n\t * SAP-icons font provides numerous built-in icons. To find all the available icons, see the\n\t * [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the `additionalText`, displayed in the end of the option.\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalText?: string;\n\n\t/**\n\t * Defines the tooltip of the option.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\ttooltip?: string;\n\n\t/**\n\t * Defines the selected state of the component.\n\t *\n\t * @default false\n\t * @public\n\t * @deprecated since 2.20.0, please use the parent Select's `value` property instead.\n\t */\n\t@property({ type: Boolean })\n\tdeclare selected: boolean;\n\n\tget displayIconBegin(): boolean {\n\t\treturn !!this.icon;\n\t}\n\n\t/**\n\t * Per-group aria-setsize, set by Select when this option is inside a ui5-option-group.\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_forcedSetsize?: number;\n\n\t/**\n\t * Per-group aria-posinset, set by Select when this option is inside a ui5-option-group.\n\t * @private\n\t */\n\t@property({ type: Number, noAttribute: true })\n\t_forcedPosinset?: number;\n\n\tget effectiveDisplayText() {\n\t\treturn this.textContent || \"\";\n\t}\n}\n\nOption.define();\n\nexport default Option;\n"]}
@@ -0,0 +1,34 @@
1
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
+ import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
+ import ListItemGroupBase from "./ListItemGroupBase.js";
4
+ import type Option from "./Option.js";
5
+ /**
6
+ * @class
7
+ *
8
+ * ### Overview
9
+ *
10
+ * The `ui5-option-group` component is used to group options within a `ui5-select`.
11
+ *
12
+ * ### ES6 Module Import
13
+ *
14
+ * `import "@ui5/webcomponents/dist/OptionGroup.js";`
15
+ * @constructor
16
+ * @extends ListItemGroupBase
17
+ * @public
18
+ * @since 2.26.0
19
+ */
20
+ declare class OptionGroup extends ListItemGroupBase {
21
+ eventDetails: ListItemGroupBase["eventDetails"];
22
+ static i18nBundle: I18nBundle;
23
+ /**
24
+ * Defines the options of the group.
25
+ *
26
+ * **Note:** Use the `ui5-option` component to define the desired options.
27
+ * @public
28
+ */
29
+ items: DefaultSlot<Option>;
30
+ get isOptionGroup(): boolean;
31
+ get _groupHeaderRoleDescription(): string;
32
+ }
33
+ export declare const isInstanceOfOptionGroup: (object: any) => object is OptionGroup;
34
+ export default OptionGroup;
@@ -0,0 +1,61 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var OptionGroup_1;
8
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
10
+ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
11
+ import createInstanceChecker from "@ui5/webcomponents-base/dist/util/createInstanceChecker.js";
12
+ import ListItemGroupBase from "./ListItemGroupBase.js";
13
+ import OptionGroupTemplate from "./OptionGroupTemplate.js";
14
+ import { LIST_ITEM_GROUP_HEADER } from "./generated/i18n/i18n-defaults.js";
15
+ import OptionGroupCss from "./generated/themes/OptionGroup.css.js";
16
+ /**
17
+ * @class
18
+ *
19
+ * ### Overview
20
+ *
21
+ * The `ui5-option-group` component is used to group options within a `ui5-select`.
22
+ *
23
+ * ### ES6 Module Import
24
+ *
25
+ * `import "@ui5/webcomponents/dist/OptionGroup.js";`
26
+ * @constructor
27
+ * @extends ListItemGroupBase
28
+ * @public
29
+ * @since 2.26.0
30
+ */
31
+ let OptionGroup = OptionGroup_1 = class OptionGroup extends ListItemGroupBase {
32
+ get isOptionGroup() {
33
+ return true;
34
+ }
35
+ get _groupHeaderRoleDescription() {
36
+ return OptionGroup_1.i18nBundle.getText(LIST_ITEM_GROUP_HEADER);
37
+ }
38
+ };
39
+ __decorate([
40
+ slot({
41
+ "default": true,
42
+ invalidateOnChildChange: true,
43
+ individualSlots: true,
44
+ type: HTMLElement,
45
+ })
46
+ ], OptionGroup.prototype, "items", void 0);
47
+ __decorate([
48
+ i18n("@ui5/webcomponents")
49
+ ], OptionGroup, "i18nBundle", void 0);
50
+ OptionGroup = OptionGroup_1 = __decorate([
51
+ customElement({
52
+ tag: "ui5-option-group",
53
+ languageAware: true,
54
+ template: OptionGroupTemplate,
55
+ styles: [OptionGroupCss],
56
+ })
57
+ ], OptionGroup);
58
+ OptionGroup.define();
59
+ export const isInstanceOfOptionGroup = createInstanceChecker("isOptionGroup");
60
+ export default OptionGroup;
61
+ //# sourceMappingURL=OptionGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionGroup.js","sourceRoot":"","sources":["../src/OptionGroup.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAGnE,OAAO,qBAAqB,MAAM,4DAA4D,CAAC;AAC/F,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,cAAc,MAAM,uCAAuC,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AAOH,IAAM,WAAW,mBAAjB,MAAM,WAAY,SAAQ,iBAAiB;IAoB1C,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,2BAA2B;QAC9B,OAAO,aAAW,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D,CAAC;CACD,CAAA;AATA;IANC,IAAI,CAAC;QACL,SAAS,EAAE,IAAI;QACf,uBAAuB,EAAE,IAAI;QAC7B,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,WAAW;KACjB,CAAC;0CAC0B;AAdrB;IADN,IAAI,CAAC,oBAAoB,CAAC;qCACG;AAJzB,WAAW;IANhB,aAAa,CAAC;QACd,GAAG,EAAE,kBAAkB;QACvB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,CAAC,cAAc,CAAC;KACxB,CAAC;GACI,WAAW,CA2BhB;AAED,WAAW,CAAC,MAAM,EAAE,CAAC;AAErB,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAc,eAAe,CAAC,CAAC;AAC3F,eAAe,WAAW,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\nimport ListItemGroupBase from \"./ListItemGroupBase.js\";\nimport type Option from \"./Option.js\";\nimport OptionGroupTemplate from \"./OptionGroupTemplate.js\";\nimport { LIST_ITEM_GROUP_HEADER } from \"./generated/i18n/i18n-defaults.js\";\nimport OptionGroupCss from \"./generated/themes/OptionGroup.css.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-option-group` component is used to group options within a `ui5-select`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/OptionGroup.js\";`\n * @constructor\n * @extends ListItemGroupBase\n * @public\n * @since 2.26.0\n */\n@customElement({\n\ttag: \"ui5-option-group\",\n\tlanguageAware: true,\n\ttemplate: OptionGroupTemplate,\n\tstyles: [OptionGroupCss],\n})\nclass OptionGroup extends ListItemGroupBase {\n\teventDetails!: ListItemGroupBase[\"eventDetails\"];\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Defines the options of the group.\n\t *\n\t * **Note:** Use the `ui5-option` component to define the desired options.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: true,\n\t\tindividualSlots: true,\n\t\ttype: HTMLElement,\n\t})\n\titems!: DefaultSlot<Option>;\n\n\tget isOptionGroup(): boolean {\n\t\treturn true;\n\t}\n\n\tget _groupHeaderRoleDescription(): string {\n\t\treturn OptionGroup.i18nBundle.getText(LIST_ITEM_GROUP_HEADER);\n\t}\n}\n\nOptionGroup.define();\n\nexport const isInstanceOfOptionGroup = createInstanceChecker<OptionGroup>(\"isOptionGroup\");\nexport default OptionGroup;\n"]}
@@ -0,0 +1,2 @@
1
+ import type OptionGroup from "./OptionGroup.js";
2
+ export default function OptionGroupTemplate(this: OptionGroup): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
+ export default function OptionGroupTemplate() {
3
+ return (_jsxs("div", { class: "ui5-option-group-root", role: "group", "aria-label": this.headerText || undefined, "aria-roledescription": this._groupHeaderRoleDescription, children: [this.headerText &&
4
+ _jsx("div", { class: "ui5-option-group-header", "aria-hidden": "true", children: this.headerText }), this.items.map((item) => _jsx("slot", { name: item._individualSlot }))] }));
5
+ }
6
+ //# sourceMappingURL=OptionGroupTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionGroupTemplate.js","sourceRoot":"","sources":["../src/OptionGroupTemplate.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,eACC,KAAK,EAAC,uBAAuB,EAC7B,IAAI,EAAC,OAAO,gBACA,IAAI,CAAC,UAAU,IAAI,SAAS,0BAClB,IAAI,CAAC,2BAA2B,aAErD,IAAI,CAAC,UAAU;gBACf,cAAK,KAAK,EAAC,yBAAyB,iBAAa,MAAM,YACrD,IAAI,CAAC,UAAU,GACX,EAEN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,CAAC,IACvE,CACN,CAAC;AACH,CAAC","sourcesContent":["import type OptionGroup from \"./OptionGroup.js\";\nimport type Option from \"./Option.js\";\n\nexport default function OptionGroupTemplate(this: OptionGroup) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-option-group-root\"\n\t\t\trole=\"group\"\n\t\t\taria-label={this.headerText || undefined}\n\t\t\taria-roledescription={this._groupHeaderRoleDescription}\n\t\t>\n\t\t\t{this.headerText &&\n\t\t\t\t<div class=\"ui5-option-group-header\" aria-hidden=\"true\">\n\t\t\t\t\t{this.headerText}\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t{this.items.map((item: Option) => <slot name={item._individualSlot}></slot>)}\n\t\t</div>\n\t);\n}\n"]}
@@ -2,7 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime"
2
2
  import Icon from "./Icon.js";
3
3
  import ListItemBaseTemplate from "./ListItemBaseTemplate.js";
4
4
  export default function OptionTemplate() {
5
- return ListItemBaseTemplate.call(this, { listItemContent }, { role: "option", title: this.tooltip });
5
+ return ListItemBaseTemplate.call(this, { listItemContent }, {
6
+ role: "option",
7
+ title: this.tooltip,
8
+ ariaSetsize: this._forcedSetsize,
9
+ ariaPosinset: this._forcedPosinset,
10
+ });
6
11
  }
7
12
  function listItemContent() {
8
13
  return (_jsxs("div", { part: "content", id: `${this._id}-content`, class: "ui5-li-content", children: [this.displayIconBegin &&
@@ -1 +1 @@
1
- {"version":3,"file":"OptionTemplate.js","sourceRoot":"","sources":["../src/OptionTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,OAAO,UAAU,cAAc;IACrC,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,CACN,eAAK,IAAI,EAAC,SAAS,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,EAAC,gBAAgB,aACnE,IAAI,CAAC,gBAAgB;gBACrB,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,YAAY,GAAG,EAE5E,eAAK,KAAK,EAAC,qBAAqB,aAC/B,eAAM,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,cAAc,YAAC,gBAAa,GAAO,EAC3D,IAAI,CAAC,cAAc;wBACnB,eAAM,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,wBAAwB,YAAE,IAAI,CAAC,cAAc,GAAQ,IAEpF,IACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import Icon from \"./Icon.js\";\nimport ListItemBaseTemplate from \"./ListItemBaseTemplate.js\";\nimport type Option from \"./Option.js\";\n\nexport default function OptionTemplate(this: Option) {\n\treturn ListItemBaseTemplate.call(this, { listItemContent }, { role: \"option\", title: this.tooltip });\n}\n\nfunction listItemContent(this: Option) {\n\treturn (\n\t\t<div part=\"content\" id={`${this._id}-content`} class=\"ui5-li-content\">\n\t\t\t{this.displayIconBegin &&\n\t\t\t\t<Icon part=\"icon\" name={this.icon} class=\"ui5-li-icon\" mode=\"Decorative\" />\n\t\t\t}\n\t\t\t<div class=\"ui5-li-text-wrapper\">\n\t\t\t\t<span part=\"title\" class=\"ui5-li-title\"><slot></slot></span>\n\t\t\t\t{this.additionalText &&\n\t\t\t\t\t<span part=\"additional-text\" class=\"ui5-li-additional-text\">{this.additionalText}</span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"OptionTemplate.js","sourceRoot":"","sources":["../src/OptionTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,OAAO,UAAU,cAAc;IACrC,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE;QAC3D,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI,CAAC,OAAO;QACnB,WAAW,EAAE,IAAI,CAAC,cAAc;QAChC,YAAY,EAAE,IAAI,CAAC,eAAe;KAClC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACvB,OAAO,CACN,eAAK,IAAI,EAAC,SAAS,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,EAAC,gBAAgB,aACnE,IAAI,CAAC,gBAAgB;gBACrB,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,YAAY,GAAG,EAE5E,eAAK,KAAK,EAAC,qBAAqB,aAC/B,eAAM,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,cAAc,YAAC,gBAAa,GAAO,EAC3D,IAAI,CAAC,cAAc;wBACnB,eAAM,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,wBAAwB,YAAE,IAAI,CAAC,cAAc,GAAQ,IAEpF,IACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import Icon from \"./Icon.js\";\nimport ListItemBaseTemplate from \"./ListItemBaseTemplate.js\";\nimport type Option from \"./Option.js\";\n\nexport default function OptionTemplate(this: Option) {\n\treturn ListItemBaseTemplate.call(this, { listItemContent }, {\n\t\trole: \"option\",\n\t\ttitle: this.tooltip,\n\t\tariaSetsize: this._forcedSetsize,\n\t\tariaPosinset: this._forcedPosinset,\n\t});\n}\n\nfunction listItemContent(this: Option) {\n\treturn (\n\t\t<div part=\"content\" id={`${this._id}-content`} class=\"ui5-li-content\">\n\t\t\t{this.displayIconBegin &&\n\t\t\t\t<Icon part=\"icon\" name={this.icon} class=\"ui5-li-icon\" mode=\"Decorative\" />\n\t\t\t}\n\t\t\t<div class=\"ui5-li-text-wrapper\">\n\t\t\t\t<span part=\"title\" class=\"ui5-li-title\"><slot></slot></span>\n\t\t\t\t{this.additionalText &&\n\t\t\t\t\t<span part=\"additional-text\" class=\"ui5-li-additional-text\">{this.additionalText}</span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
package/dist/Popover.js CHANGED
@@ -538,15 +538,17 @@ let Popover = Popover_1 = class Popover extends Popup {
538
538
  }
539
539
  this._maxHeight = Math.round(maxHeight - Popover_1.VIEWPORT_MARGIN);
540
540
  this._maxWidth = Math.round(maxWidth - Popover_1.VIEWPORT_MARGIN);
541
+ const borderRadius = Number.parseInt(window.getComputedStyle(this).getPropertyValue("border-radius"));
542
+ const arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical, borderRadius);
543
+ // Apply the RTL correction before the dead-band check so it is baked into `this._left`
544
+ // once. Adding it after would re-apply it every reposition, causing the position to drift.
545
+ left += this.getRTLCorrectionLeft();
541
546
  if (this._left === undefined || Math.abs(this._left - left) > 1.5) {
542
547
  this._left = Math.round(left);
543
548
  }
544
549
  if (this._top === undefined || Math.abs(this._top - top) > 1.5) {
545
550
  this._top = Math.round(top);
546
551
  }
547
- const borderRadius = Number.parseInt(window.getComputedStyle(this).getPropertyValue("border-radius"));
548
- const arrowPos = this.getArrowPosition(targetRect, popoverSize, left, top, isVertical, borderRadius);
549
- this._left += this.getRTLCorrectionLeft();
550
552
  return {
551
553
  arrow: arrowPos,
552
554
  top: this._top,