@ui5/webcomponents 2.28.0-rc.0 → 2.29.0-rc.0

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 (187) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Bar.d.ts +11 -8
  4. package/dist/Bar.js +11 -9
  5. package/dist/Bar.js.map +1 -1
  6. package/dist/ComboBox.js +1 -0
  7. package/dist/ComboBox.js.map +1 -1
  8. package/dist/DateComponentBase.d.ts +2 -1
  9. package/dist/DateComponentBase.js +9 -12
  10. package/dist/DateComponentBase.js.map +1 -1
  11. package/dist/DatePicker.js +3 -2
  12. package/dist/DatePicker.js.map +1 -1
  13. package/dist/DateRangePicker.js +9 -3
  14. package/dist/DateRangePicker.js.map +1 -1
  15. package/dist/FormTemplate.js +2 -2
  16. package/dist/FormTemplate.js.map +1 -1
  17. package/dist/InputIcon.d.ts +0 -11
  18. package/dist/InputIcon.js +1 -15
  19. package/dist/InputIcon.js.map +1 -1
  20. package/dist/NumericInput.d.ts +4 -2
  21. package/dist/NumericInput.js +35 -2
  22. package/dist/NumericInput.js.map +1 -1
  23. package/dist/SliderTemplate.js +1 -1
  24. package/dist/SliderTemplate.js.map +1 -1
  25. package/dist/Tab.d.ts +0 -5
  26. package/dist/Tab.js +1 -11
  27. package/dist/Tab.js.map +1 -1
  28. package/dist/TabContainer.d.ts +1 -1
  29. package/dist/TabContainer.js +4 -3
  30. package/dist/TabContainer.js.map +1 -1
  31. package/dist/TabInStripTemplate.js +1 -2
  32. package/dist/TabInStripTemplate.js.map +1 -1
  33. package/dist/YearPicker.js +1 -1
  34. package/dist/YearPicker.js.map +1 -1
  35. package/dist/css/themes/Bar.css +1 -1
  36. package/dist/css/themes/ColorPicker.css +1 -1
  37. package/dist/css/themes/Form.css +1 -1
  38. package/dist/css/themes/FormItem.css +1 -1
  39. package/dist/css/themes/FormItemSpan.css +1 -1
  40. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +2 -1
  41. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +2 -1
  42. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +2 -1
  43. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +2 -1
  44. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  45. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +493 -727
  46. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  47. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +475 -695
  48. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  49. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  50. package/dist/custom-elements-internal.json +129 -128
  51. package/dist/custom-elements.json +126 -126
  52. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  53. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  54. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  55. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  56. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  57. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  58. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  59. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  60. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  61. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  62. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  63. package/dist/generated/themes/Bar.css.d.ts +1 -1
  64. package/dist/generated/themes/Bar.css.js +1 -1
  65. package/dist/generated/themes/Bar.css.js.map +1 -1
  66. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  67. package/dist/generated/themes/ColorPicker.css.js +1 -1
  68. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  69. package/dist/generated/themes/Form.css.d.ts +1 -1
  70. package/dist/generated/themes/Form.css.js +1 -1
  71. package/dist/generated/themes/Form.css.js.map +1 -1
  72. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  73. package/dist/generated/themes/FormItem.css.js +1 -1
  74. package/dist/generated/themes/FormItem.css.js.map +1 -1
  75. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  76. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  77. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  78. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  79. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +2 -1
  80. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  81. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  82. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +2 -1
  83. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  84. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  85. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +2 -1
  86. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  87. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  88. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +2 -1
  89. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  90. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  91. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  92. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  93. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  94. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +493 -727
  95. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  96. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  97. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  98. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  99. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  100. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +475 -695
  101. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  102. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  103. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  104. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  105. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  106. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  107. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  108. package/dist/types/BarAccessibleRole.d.ts +2 -1
  109. package/dist/types/BarAccessibleRole.js +2 -1
  110. package/dist/types/BarAccessibleRole.js.map +1 -1
  111. package/dist/vscode.html-custom-data.json +7 -7
  112. package/dist/web-types.json +15 -15
  113. package/package.json +9 -9
  114. package/src/FormTemplate.tsx +2 -2
  115. package/src/SliderTemplate.tsx +1 -1
  116. package/src/TabInStripTemplate.tsx +2 -13
  117. package/src/i18n/messagebundle_en_US_saprigi.properties +16 -0
  118. package/src/themes/Bar.css +1 -1
  119. package/src/themes/ColorPicker.css +1 -5
  120. package/src/themes/Form.css +5 -3
  121. package/src/themes/FormItem.css +4 -0
  122. package/src/themes/FormItemSpan.css +5 -0
  123. package/src/themes/TabInStrip.css +35 -19
  124. package/src/themes/base/CalendarHeader-parameters.css +1 -1
  125. package/src/themes/base/CheckBox-parameters.css +1 -1
  126. package/src/themes/base/Input-parameters.css +1 -1
  127. package/src/themes/base/InputIcon-parameters.css +1 -1
  128. package/src/themes/base/Panel-parameters.css +1 -1
  129. package/src/themes/base/RadioButton-parameters.css +1 -1
  130. package/src/themes/base/RatingIndicator-parameters.css +1 -1
  131. package/src/themes/base/Select-parameters.css +1 -1
  132. package/src/themes/base/SliderHandle-parameters.css +1 -1
  133. package/src/themes/base/SliderScale-parameters.css +1 -1
  134. package/src/themes/base/Switch-parameters.css +1 -1
  135. package/src/themes/base/TabContainer-parameters.css +1 -1
  136. package/src/themes/base/TextArea-parameters.css +1 -1
  137. package/src/themes/base/Tokenizer-parameters.css +1 -1
  138. package/src/themes/base/sizes-parameters.css +1 -1
  139. package/src/themes/sap_fiori_3/Slider-parameters.css +1 -1
  140. package/src/themes/sap_fiori_3/SliderHandle-parameters.css +1 -1
  141. package/src/themes/sap_fiori_3/sizes-parameters.css +1 -1
  142. package/src/themes/sap_fiori_3_dark/Slider-parameters.css +1 -1
  143. package/src/themes/sap_fiori_3_dark/sizes-parameters.css +1 -1
  144. package/src/themes/sap_fiori_3_hcb/Input-parameters.css +1 -1
  145. package/src/themes/sap_fiori_3_hcb/Slider-parameters.css +1 -1
  146. package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +1 -1
  147. package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +1 -1
  148. package/src/themes/sap_fiori_3_hcw/Input-parameters.css +1 -1
  149. package/src/themes/sap_fiori_3_hcw/Slider-parameters.css +1 -1
  150. package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +1 -1
  151. package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +1 -1
  152. package/src/themes/sap_horizon/Input-parameters.css +1 -1
  153. package/src/themes/sap_horizon/InputIcon-parameters.css +1 -1
  154. package/src/themes/sap_horizon/RadioButton-parameters.css +1 -1
  155. package/src/themes/sap_horizon/RatingIndicator-parameters.css +1 -1
  156. package/src/themes/sap_horizon/Slider-parameters.css +1 -1
  157. package/src/themes/sap_horizon/Switch-parameters.css +1 -1
  158. package/src/themes/sap_horizon/TextArea-parameters.css +1 -1
  159. package/src/themes/sap_horizon/Token-parameters.css +1 -1
  160. package/src/themes/sap_horizon/sizes-parameters.css +1 -1
  161. package/src/themes/sap_horizon_dark/Input-parameters.css +1 -1
  162. package/src/themes/sap_horizon_dark/InputIcon-parameters.css +1 -1
  163. package/src/themes/sap_horizon_dark/RadioButton-parameters.css +1 -1
  164. package/src/themes/sap_horizon_dark/RatingIndicator-parameters.css +1 -1
  165. package/src/themes/sap_horizon_dark/Slider-parameters.css +1 -1
  166. package/src/themes/sap_horizon_dark/Switch-parameters.css +1 -1
  167. package/src/themes/sap_horizon_dark/TextArea-parameters.css +1 -1
  168. package/src/themes/sap_horizon_dark/Token-parameters.css +1 -1
  169. package/src/themes/sap_horizon_dark/sizes-parameters.css +1 -1
  170. package/src/themes/sap_horizon_hcb/Input-parameters.css +1 -1
  171. package/src/themes/sap_horizon_hcb/InputIcon-parameters.css +1 -1
  172. package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +1 -1
  173. package/src/themes/sap_horizon_hcb/RatingIndicator-parameters.css +1 -1
  174. package/src/themes/sap_horizon_hcb/Slider-parameters.css +1 -1
  175. package/src/themes/sap_horizon_hcb/Switch-parameters.css +1 -1
  176. package/src/themes/sap_horizon_hcb/TextArea-parameters.css +1 -1
  177. package/src/themes/sap_horizon_hcb/Token-parameters.css +1 -1
  178. package/src/themes/sap_horizon_hcb/sizes-parameters.css +1 -1
  179. package/src/themes/sap_horizon_hcw/Input-parameters.css +1 -1
  180. package/src/themes/sap_horizon_hcw/InputIcon-parameters.css +1 -1
  181. package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +1 -1
  182. package/src/themes/sap_horizon_hcw/RatingIndicator-parameters.css +1 -1
  183. package/src/themes/sap_horizon_hcw/Slider-parameters.css +1 -1
  184. package/src/themes/sap_horizon_hcw/Switch-parameters.css +1 -1
  185. package/src/themes/sap_horizon_hcw/TextArea-parameters.css +1 -1
  186. package/src/themes/sap_horizon_hcw/Token-parameters.css +1 -1
  187. package/src/themes/sap_horizon_hcw/sizes-parameters.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../src/DateRangePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport getTodayUTCTimestamp from \"@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js\";\nimport type DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport {\n\tDATERANGE_DESCRIPTION,\n\tDATERANGEPICKER_POPOVER_ACCESSIBLE_NAME,\n\tDATETIME_COMPONENTS_PLACEHOLDER_PREFIX,\n\tDATERANGE_VALUE_MISSING,\n\tDATERANGE_PATTERN_MISMATCH,\n\tDATERANGE_UNDERFLOW,\n\tDATERANGE_OVERFLOW,\n\tCALENDAR_FOOTER_CANCEL_BUTTON,\n\tCALENDAR_FOOTER_OK_BUTTON,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport DateRangePickerTemplate from \"./DateRangePickerTemplate.js\";\n\n// Styles\nimport DateRangePickerCss from \"./generated/themes/DateRangePicker.css.js\";\nimport DatePicker from \"./DatePicker.js\";\n\nimport type {\n\tDatePickerChangeEventDetail as DateRangePickerChangeEventDetail,\n\tDatePickerInputEventDetail as DateRangePickerInputEventDetail,\n} from \"./DatePicker.js\";\nimport type { CalendarSelectionChangeEventDetail } from \"./Calendar.js\";\nimport type CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nconst DEFAULT_DELIMITER = \"-\";\n\n/**\n * @class\n *\n * ### Overview\n * The DateRangePicker enables the users to enter a localized date range using touch, mouse, keyboard input, or by selecting a date range in the calendar.\n *\n * ### Usage\n * The user can enter a date by:\n * Using the calendar that opens in a popup or typing it in directly in the input field (not available for mobile devices).\n * For the `ui5-daterange-picker`:\n *\n * **Note:** Relative date values such as \"today\", \"yesterday\", or \"tomorrow\" are not supported.\n * Entering a relative date sets the component to an error state.\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DateRangePicker.js\";`\n *\n * ### Keyboard Handling\n * The `ui5-daterange-picker` provides advanced keyboard handling.\n *\n * When the `ui5-daterange-picker` input field is focused the user can\n * increment or decrement respectively the range start or end date, depending on where the cursor is.\n * The following shortcuts are available:\n *\n * - [Page Down] - Decrements the corresponding day of the month by one\n * - [Shift] + [Page Down] - Decrements the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Down] - Decrements the corresponding year by one\n * - [Page Up] - Increments the corresponding day of the month by one\n * - [Shift] + [Page Up] - Increments the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Up] - Increments the corresponding year by one\n * @constructor\n * @extends DatePicker\n * @since 1.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-daterange-picker\",\n\tstyles: [DatePicker.styles, DateRangePickerCss],\n\ttemplate: DateRangePickerTemplate,\n})\nclass DateRangePicker extends DatePicker implements IFormInputElement {\n\t /**\n\t * Determines the symbol which separates the dates.\n\t * If not supplied, the default time interval delimiter for the current locale will be used.\n\t * @default \"-\"\n\t * @public\n\t */\n\t@property()\n\tdelimiter = \"-\";\n\n\t/**\n\t * Defines whether the component displays two months side by side in the picker popup.\n\t *\n\t * When enabled, two consecutive months are shown, making it easier to select date ranges\n\t * that span multiple months without the need to navigate between months.\n\t *\n\t * **Note:** On mobile devices only a single month\n\t * will be displayed regardless of this setting.\n\t *\n\t * @default false\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@property({ type: Boolean })\n\tshowTwoMonths = false;\n\n\t /**\n\t * The first date in the range during selection (this is a temporary value, not the first date in the value range)\n\t * @private\n\t */\n\t@property()\n\t_tempValue?: string;\n\n\tprivate _prevDelimiter: string | null;\n\n\tget formValidityMessage() {\n\t\tconst validity = this.formValidity;\n\n\t\tif (validity.valueMissing) {\n\t\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_VALUE_MISSING, this.getFormat().oFormatOptions.pattern as string);\n\t\t}\n\t\tif (validity.patternMismatch) {\n\t\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_PATTERN_MISMATCH, this.getFormat().oFormatOptions.pattern as string);\n\t\t}\n\t\tif (validity.rangeUnderflow) {\n\t\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_UNDERFLOW, this.minDate);\n\t\t}\n\t\tif (validity.rangeOverflow) {\n\t\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_OVERFLOW, this.maxDate);\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn {\n\t\t\tvalueMissing: this.required && !this.value,\n\t\t\tpatternMismatch: !!this.value && !this.isValidValue(this.value),\n\t\t\trangeUnderflow: !!this.value && !this.isValidMin(this.value),\n\t\t\trangeOverflow: !!this.value && !this.isValidMax(this.value),\n\t\t};\n\t}\n\n\tget formFormattedValue() {\n\t\tconst values = this._splitValueByDelimiter(this.value || \"\").filter(Boolean);\n\n\t\tif (values.length && this.name) {\n\t\t\tconst formData = new FormData();\n\n\t\t\tfor (let i = 0; i < values.length; i++) {\n\t\t\t\tformData.append(this.name, values[i]);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._prevDelimiter = null;\n\t}\n\n\t/**\n\t * Checks if a date string is a relative date (e.g. \"today\", \"tomorrow\")\n\t * that would be resolved by DateFormat.parseRelative().\n\t * Relative dates are not supported in DateRangePicker.\n\t * @private\n\t */\n\t_isRelativeValue(dateString: string, format: DateFormat): boolean {\n\t\tconst trimmed = dateString.trim();\n\t\tif (!trimmed) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst parsed = format.parse(trimmed);\n\t\tif (!parsed) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst formatted = format.format(parsed);\n\t\treturn formatted !== trimmed;\n\t}\n\n\t/**\n\t * **Note:** The getter method is inherited and not supported. If called it will return an empty value.\n\t * @public\n\t * @default null\n\t */\n\tget dateValue(): Date | null {\n\t\treturn null;\n\t}\n\n\t/**\n\t * **Note:** The getter method is inherited and not supported. If called it will return an empty value.\n\t * @public\n\t * @default null\n\t */\n\tget dateValueUTC(): Date | null {\n\t\treturn null;\n\t}\n\n\tget _startDateTimestamp() {\n\t\treturn this._extractFirstTimestamp(this.value);\n\t}\n\n\tget _endDateTimestamp() {\n\t\treturn this._extractLastTimestamp(this.value);\n\t}\n\n\tget _tempTimestamp() {\n\t\treturn this._tempValue && (this.getValueFormat().parse(this._tempValue, true) as Date).getTime() / 1000; // valueformat\n\t}\n\n\t/**\n\t * Required by DatePicker.js\n\t * @override\n\t */\n\tget _calendarSelectionMode(): `${CalendarSelectionMode}` {\n\t\treturn \"Range\";\n\t}\n\n\t/**\n\t * Required by DatePicker.js - set the calendar focus on the first selected date (or today if not set)\n\t * @override\n\t */\n\tget _calendarTimestamp() {\n\t\treturn this._tempTimestamp || this._startDateTimestamp || getTodayUTCTimestamp(this._primaryCalendarType);\n\t}\n\n\t/**\n\t * Required by DatePicker.js\n\t * @override\n\t */\n\tget _calendarSelectedDates() {\n\t\tif (this._tempValue) {\n\t\t\treturn [this._tempValue];\n\t\t}\n\t\tif (this.value && this._checkValueValidity(this.value)) {\n\t\t\treturn this._splitValueByDelimiter(this.value);\n\t\t}\n\t\treturn [];\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t/**\n\t * Returns the start date of the currently selected range as JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget startDateValue(): Date | null {\n\t\treturn CalendarDate.fromTimestamp(this._startDateTimestamp! * 1000).toLocalJSDate();\n\t}\n\n\t/**\n\t * Returns the end date of the currently selected range as JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget endDateValue(): Date | null {\n\t\treturn CalendarDate.fromTimestamp(this._endDateTimestamp! * 1000).toLocalJSDate();\n\t}\n\n\tget startValue(): string {\n\t\treturn this._calendarSelectedDates[0] || \"\";\n\t}\n\n\tget endValue(): string {\n\t\treturn this._calendarSelectedDates[1] || \"\";\n\t}\n\n\tget _lastDateRangeForTheCurrentYear() {\n\t\tconst currentYear = UI5Date.getInstance().getFullYear();\n\t\tconst lastDayOfTheYear = UI5Date.getInstance(currentYear, 11, 31, 23, 59, 59);\n\t\tconst sevenDaysBeforeLastDayOfYear = UI5Date.getInstance(currentYear, 11, 24, 23, 59, 59);\n\n\t\treturn `${this.getFormat().format(sevenDaysBeforeLastDayOfYear)} ${this._effectiveDelimiter} ${this.getFormat().format(lastDayOfTheYear)}`;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _placeholder() {\n\t\tif (this.placeholder) {\n\t\t\treturn this.placeholder;\n\t\t}\n\n\t\t// translatable placeholder – for example \"e.g. 2025-12-27 - 2025-12-31\"\n\t\treturn `${DateRangePicker.i18nBundle.getText(DATETIME_COMPONENTS_PLACEHOLDER_PREFIX)} ${this._lastDateRangeForTheCurrentYear}`;\n\t}\n\n\tget _submitDisabled() {\n\t\treturn !this._startDateTimestamp || !this._endDateTimestamp;\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn DateRangePicker.i18nBundle.getText(CALENDAR_FOOTER_CANCEL_BUTTON);\n\t}\n\n\tget _okButtonText() {\n\t\treturn DateRangePicker.i18nBundle.getText(CALENDAR_FOOTER_OK_BUTTON);\n\t}\n\n\t/**\n\t * Handles clicking on the `submit` button, within the picker`s footer in mobile devices.\n\t */\n\t_submitClick() {\n\t\tif (!this._startDateTimestamp || !this._endDateTimestamp) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newValue = this._buildValue(this._startDateTimestamp, this._endDateTimestamp);\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * Handles clicking on the `cancel` button, within the picker`s footer,\n\t * that would disregard the user selection.\n\t */\n\t_cancelClick() {\n\t\tthis._tempValue = \"\";\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget roleDescription() {\n\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_DESCRIPTION);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget pickerAccessibleName() {\n\t\treturn DateRangePicker.i18nBundle.getText(DATERANGEPICKER_POPOVER_ACCESSIBLE_NAME, this.ariaLabelText);\n\t}\n\n\t/**\n\t * @override\n\t */\n\t onResponsivePopoverAfterClose() {\n\t\tthis._tempValue = \"\"; // reset _tempValue on popover close\n\t\tsuper.onResponsivePopoverAfterClose();\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @public\n\t * @param value A value to be tested against the current date format\n\t */\n\tisValid(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\tif (parts.some(dateString => this._isRelativeValue(dateString, this.getFormat()))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValid(dateString)); // must be at most 2 dates and each must be valid\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @public\n\t * @param value A value to be tested against the current date format\n\t */\n\tisValidValue(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\tif (parts.some(dateString => this._isRelativeValue(dateString, this.getValueFormat()))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValidValue(dateString)); // must be at most 2 dates and each must be valid\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @public\n\t * @param value A value to be tested against the current date format\n\t */\n\tisValidDisplayValue(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\tif (parts.some(dateString => this._isRelativeValue(dateString, this.getDisplayFormat()))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValidDisplayValue(dateString)); // must be at most 2 dates and each must be valid\n\t}\n\n\t/**\n\t * Checks if a date is between the minimum and maximum date.\n\t * @public\n\t * @param value A value to be checked\n\t */\n\tisInValidRange(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isInValidRange(dateString));\n\t}\n\n\tisValidMin(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValidMin(dateString));\n\t}\n\n\tisValidMax(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValidMax(dateString));\n\t}\n\n\t/**\n\t * Extract both dates as timestamps, flip if necessary, and build (which will use the desired format so we enforce the format too)\n\t * @override\n\t */\n\tnormalizeValue(value: string) {\n\t\tconst firstDateTimestamp = this._extractFirstTimestamp(value);\n\t\tconst lastDateTimestamp = this._extractLastTimestamp(value);\n\t\tif (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary\n\t\t\treturn this._buildValue(lastDateTimestamp, firstDateTimestamp);\n\t\t}\n\t\treturn this._buildValue(firstDateTimestamp, lastDateTimestamp);\n\t}\n\n\t/**\n\t * The parser understands many formats, but we need one format\n\t * @override\n\t * @protected\n\t */\n\tnormalizeDisplayValue(value: string) {\n\t\tconst values = this._splitValueByDelimiter(value);\n\t\tconst firstDateTimestamp = this._exctractDisplayTimestamp(values[0]);\n\t\tconst lastDateTimestamp = this._exctractDisplayTimestamp(values[1]);\n\n\t\tif (!firstDateTimestamp || !lastDateTimestamp) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary\n\t\t\treturn this._buildDisplayValue(lastDateTimestamp, firstDateTimestamp);\n\t\t}\n\n\t\treturn this._buildDisplayValue(firstDateTimestamp, lastDateTimestamp);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tgetValueFromDisplayValue(value: string): string {\n\t\tconst values = this._splitValueByDelimiter(value);\n\t\tlet firstDateString = \"\";\n\t\tlet lastDateString = \"\";\n\n\t\tfirstDateString = this._getValueStringFromTimestamp((this._exctractDisplayTimestamp(values[0]) as number) * 1000);\n\t\tlastDateString = this._getValueStringFromTimestamp((this._exctractDisplayTimestamp(values[1]) as number) * 1000);\n\n\t\tif (!firstDateString || !lastDateString) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tonSelectedDatesChange(event: CustomEvent<CalendarSelectionChangeEventDetail>) {\n\t\tevent.preventDefault(); // never let the calendar update its own dates, the parent component controls them\n\t\tconst values = event.detail.selectedValues;\n\n\t\tif (values.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (values.length === 1) { // Do nothing until the user selects 2 dates, we don't change any state at all for one date\n\t\t\tthis._tempValue = values[0];\n\t\t\treturn;\n\t\t}\n\t\tconst newValue = this._buildValue(event.detail.selectedDates[0], event.detail.selectedDates[1]); // the value will be normalized so we don't need to order them here\n\t\tif (!this._isPhone) { // on desktop we update the value immediately, on mobile we wait for the user to confirm the selection with the \"OK\" button\n\t\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t\t\tthis._togglePicker();\n\t\t} else {\n\t\t\tthis._updateValueAndFireEvents(newValue, true, [\"value-changed\"]); // fire value-changed immediately on mobile so the app can react to the change (e.g. update the input field), but wait with firing \"change\" until the user clicks \"OK\"\n\t\t}\n\t}\n\n\t/**\n\t * @override\n\t */\n\tasync _modifyDateValue(amount: number, unit: string, preserveDate?: boolean) {\n\t\tif (!this._endDateTimestamp) { // If empty or only one date -> treat as datepicker entirely\n\t\t\treturn super._modifyDateValue(amount, unit, preserveDate);\n\t\t}\n\n\t\tlet caretPos: number = this._dateTimeInput.getCaretPosition()!; // caret position is always number for input of type text;\n\t\tlet newValue: string;\n\n\t\tif (caretPos <= this.value.indexOf(this._effectiveDelimiter)) { // The user is focusing the first date -> change it and keep the second date\n\t\t\tconst startDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._startDateTimestamp! * 1000), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\t\tconst newStartDateTimestamp = startDateModified.valueOf() / 1000;\n\t\t\tif (newStartDateTimestamp > this._endDateTimestamp) { // dates flipped -> move the caret to the same position but on the last date\n\t\t\t\tcaretPos += Math.ceil(this.value.length / 2);\n\t\t\t}\n\t\t\tnewValue = this._buildValue(newStartDateTimestamp, this._endDateTimestamp); // the value will be normalized so we don't try to order them here\n\t\t} else {\n\t\t\tconst endDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._endDateTimestamp * 1000), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\t\tconst newEndDateTimestamp = endDateModified.valueOf() / 1000;\n\t\t\tnewValue = this._buildValue(this._startDateTimestamp, newEndDateTimestamp); // the value will be normalized so we don't try to order them here\n\t\t\tif (newEndDateTimestamp < this._startDateTimestamp!) { // dates flipped -> move the caret to the same position but on the first date\n\t\t\t\tcaretPos -= Math.ceil(this.value.length / 2);\n\t\t\t}\n\t\t}\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\n\t\tawait renderFinished();\n\t\tthis._dateTimeInput.setCaretPosition(caretPos); // Return the caret to the previous (or the adjusted, if dates flipped) position after rendering\n\t}\n\n\tget _effectiveDelimiter(): string {\n\t\treturn this.delimiter || DEFAULT_DELIMITER;\n\t}\n\n\t_splitValueByDelimiter(value: string) {\n\t\tconst valuesArray: Array<string> = [];\n\t\tconst partsArray = value.split(this._prevDelimiter || this._effectiveDelimiter);\n\t\t// if format successfully parse the value, the value contains only single date\n\t\tif (this.getValueFormat().parse(value)) {\n\t\t\tvaluesArray[0] = partsArray.join(this._effectiveDelimiter);\n\t\t\tvaluesArray[1] = \"\";\n\t\t} else {\n\t\t\tvaluesArray[0] = partsArray.slice(0, partsArray.length / 2).join(this._effectiveDelimiter);\n\t\t\tvaluesArray[1] = partsArray.slice(partsArray.length / 2).join(this._effectiveDelimiter);\n\t\t}\n\n\t\treturn valuesArray;\n\t}\n\n\t/**\n\t * The parser understands many formats, but we need one format\n\t * @protected\n\t */\n\tnormalizeFormattedValue(value: string) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\n\t\tlet firstDateString = \"\";\n\t\tlet lastDateString = \"\";\n\n\t\tfirstDateString = this._getValueStringFromTimestamp((this._extractFirstTimestamp(value) as number) * 1000);\n\t\tlastDateString = this._getValueStringFromTimestamp((this._extractLastTimestamp(value) as number) * 1000);\n\n\t\tif (!firstDateString && !lastDateString) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t}\n\n\t/**\n\t * Returns a UTC timestamp, representing the first date in the value string or undefined if the value is empty\n\t * @private\n\t */\n\t_extractFirstTimestamp(value: string) {\n\t\tif (!value || !this._checkValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst dateStrings = this._splitValueByDelimiter(value); // at least one item guaranteed due to the checks above (non-empty and valid)\n\n\t\tconst parsedDate = this.getValueFormat().parse(dateStrings[0], true) as Date;\n\n\t\treturn parsedDate.getTime() / 1000;\n\t}\n\n\t/**\n\t * Returns a UTC timestamp, representing the last date in the value string or undefined if the value is empty or there is just one date\n\t * @private\n\t */\n\t_extractLastTimestamp(value: string) {\n\t\tif (!value || !this._checkValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet dateStrings = this._splitValueByDelimiter(value);\n\t\tdateStrings = dateStrings.filter(str => str !== \" \"); // remove empty strings\n\t\tif (dateStrings[1]) {\n\t\t\tconst parsedDate = this.getValueFormat().parse(dateStrings[1], true) as Date;\n\n\t\t\treturn parsedDate.getTime() / 1000;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t_exctractDisplayTimestamp(value: string) {\n\t\tif (!value || !this._checkDisplayValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (value) {\n\t\t\tconst parsedDate = this.getDisplayFormat().parse(value, true) as Date;\n\n\t\t\treturn parsedDate.getTime() / 1000;\n\t\t}\n\t}\n\n\t/**\n\t * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp\n\t * @private\n\t */\n\t_buildValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined): string {\n\t\tthis._prevDelimiter = this._effectiveDelimiter;\n\t\tif (firstDateTimestamp) {\n\t\t\tconst firstDateString = this._getValueStringFromTimestamp(firstDateTimestamp * 1000);\n\n\t\t\tif (!lastDateTimestamp) {\n\t\t\t\treturn firstDateString;\n\t\t\t}\n\n\t\t\tconst lastDateString = this._getValueStringFromTimestamp(lastDateTimestamp * 1000);\n\t\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp\n\t * @private\n\t */\n\t_buildDisplayValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined) {\n\t\tthis._prevDelimiter = this._effectiveDelimiter;\n\t\tif (firstDateTimestamp) {\n\t\t\tconst firstDateString = this._getDisplayStringFromTimestamp(firstDateTimestamp * 1000);\n\n\t\t\tif (!lastDateTimestamp) {\n\t\t\t\treturn firstDateString;\n\t\t\t}\n\n\t\t\tconst lastDateString = this._getDisplayStringFromTimestamp(lastDateTimestamp * 1000);\n\t\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tgetDisplayValueFromValue(value: string): string {\n\t\tif (this.isLiveUpdate) {\n\t\t\treturn value;\n\t\t}\n\n\t\tlet firstDateString = \"\";\n\t\tlet lastDateString = \"\";\n\n\t\tfirstDateString = this._getDisplayStringFromTimestamp((this._extractFirstTimestamp(value) as number) * 1000);\n\t\tlastDateString = this._getDisplayStringFromTimestamp((this._extractLastTimestamp(value) as number) * 1000);\n\n\t\tif (!firstDateString || !lastDateString) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t}\n\n\tget displayValue() : string {\n\t\tif (!this.value) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn this.getDisplayValueFromValue(this.value);\n\t}\n}\n\nDateRangePicker.define();\n\nexport default DateRangePicker;\nexport type {\n\tDateRangePickerChangeEventDetail,\n\tDateRangePickerInputEventDetail,\n};\n"]}
1
+ {"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../src/DateRangePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport UI5Date from \"@ui5/webcomponents-localization/dist/dates/UI5Date.js\";\nimport modifyDateBy from \"@ui5/webcomponents-localization/dist/dates/modifyDateBy.js\";\nimport getTodayUTCTimestamp from \"@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js\";\nimport type DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.js\";\nimport {\n\tDATERANGE_DESCRIPTION,\n\tDATERANGEPICKER_POPOVER_ACCESSIBLE_NAME,\n\tDATERANGE_VALUE_MISSING,\n\tDATERANGE_PATTERN_MISMATCH,\n\tDATERANGE_UNDERFLOW,\n\tDATERANGE_OVERFLOW,\n\tCALENDAR_FOOTER_CANCEL_BUTTON,\n\tCALENDAR_FOOTER_OK_BUTTON,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport DateRangePickerTemplate from \"./DateRangePickerTemplate.js\";\n\n// Styles\nimport DateRangePickerCss from \"./generated/themes/DateRangePicker.css.js\";\nimport DatePicker from \"./DatePicker.js\";\n\nimport type {\n\tDatePickerChangeEventDetail as DateRangePickerChangeEventDetail,\n\tDatePickerInputEventDetail as DateRangePickerInputEventDetail,\n} from \"./DatePicker.js\";\nimport type { CalendarSelectionChangeEventDetail } from \"./Calendar.js\";\nimport type CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nconst DEFAULT_DELIMITER = \"-\";\n\n/**\n * @class\n *\n * ### Overview\n * The DateRangePicker enables the users to enter a localized date range using touch, mouse, keyboard input, or by selecting a date range in the calendar.\n *\n * ### Usage\n * The user can enter a date by:\n * Using the calendar that opens in a popup or typing it in directly in the input field (not available for mobile devices).\n * For the `ui5-daterange-picker`:\n *\n * **Note:** Relative date values such as \"today\", \"yesterday\", or \"tomorrow\" are not supported.\n * Entering a relative date sets the component to an error state.\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/DateRangePicker.js\";`\n *\n * ### Keyboard Handling\n * The `ui5-daterange-picker` provides advanced keyboard handling.\n *\n * When the `ui5-daterange-picker` input field is focused the user can\n * increment or decrement respectively the range start or end date, depending on where the cursor is.\n * The following shortcuts are available:\n *\n * - [Page Down] - Decrements the corresponding day of the month by one\n * - [Shift] + [Page Down] - Decrements the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Down] - Decrements the corresponding year by one\n * - [Page Up] - Increments the corresponding day of the month by one\n * - [Shift] + [Page Up] - Increments the corresponding month by one\n * - [Shift] + [Ctrl] + [Page Up] - Increments the corresponding year by one\n * @constructor\n * @extends DatePicker\n * @since 1.0.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-daterange-picker\",\n\tstyles: [DatePicker.styles, DateRangePickerCss],\n\ttemplate: DateRangePickerTemplate,\n})\nclass DateRangePicker extends DatePicker implements IFormInputElement {\n\t /**\n\t * Determines the symbol which separates the dates.\n\t * If not supplied, the default time interval delimiter for the current locale will be used.\n\t * @default \"-\"\n\t * @public\n\t */\n\t@property()\n\tdelimiter = \"-\";\n\n\t/**\n\t * Defines whether the component displays two months side by side in the picker popup.\n\t *\n\t * When enabled, two consecutive months are shown, making it easier to select date ranges\n\t * that span multiple months without the need to navigate between months.\n\t *\n\t * **Note:** On mobile devices only a single month\n\t * will be displayed regardless of this setting.\n\t *\n\t * @default false\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@property({ type: Boolean })\n\tshowTwoMonths = false;\n\n\t /**\n\t * The first date in the range during selection (this is a temporary value, not the first date in the value range)\n\t * @private\n\t */\n\t@property()\n\t_tempValue?: string;\n\n\tprivate _prevDelimiter: string | null;\n\n\tget formValidityMessage() {\n\t\tconst validity = this.formValidity;\n\n\t\tif (validity.valueMissing) {\n\t\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_VALUE_MISSING, this.getFormat().oFormatOptions.pattern as string);\n\t\t}\n\t\tif (validity.patternMismatch) {\n\t\t\t// @ts-ignore oFormatOptions is a private API of DateFormat\n\t\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_PATTERN_MISMATCH, this.getFormat().oFormatOptions.pattern as string);\n\t\t}\n\t\tif (validity.rangeUnderflow) {\n\t\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_UNDERFLOW, this.minDate);\n\t\t}\n\t\tif (validity.rangeOverflow) {\n\t\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_OVERFLOW, this.maxDate);\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tget formValidity(): ValidityStateFlags {\n\t\treturn {\n\t\t\tvalueMissing: this.required && !this.value,\n\t\t\tpatternMismatch: !!this.value && !this.isValidValue(this.value),\n\t\t\trangeUnderflow: !!this.value && !this.isValidMin(this.value),\n\t\t\trangeOverflow: !!this.value && !this.isValidMax(this.value),\n\t\t};\n\t}\n\n\tget formFormattedValue() {\n\t\tconst values = this._splitValueByDelimiter(this.value || \"\").filter(Boolean);\n\n\t\tif (values.length && this.name) {\n\t\t\tconst formData = new FormData();\n\n\t\t\tfor (let i = 0; i < values.length; i++) {\n\t\t\t\tformData.append(this.name, values[i]);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._prevDelimiter = null;\n\t}\n\n\t/**\n\t * Checks if a date string is a relative date (e.g. \"today\", \"tomorrow\")\n\t * that would be resolved by DateFormat.parseRelative().\n\t * Relative dates are not supported in DateRangePicker.\n\t * @private\n\t */\n\t_isRelativeValue(dateString: string, format: DateFormat): boolean {\n\t\tconst trimmed = dateString.trim();\n\t\tif (!trimmed) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst parsed = format.parse(trimmed);\n\t\tif (!parsed) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst formatted = format.format(parsed);\n\t\treturn formatted !== trimmed;\n\t}\n\n\t/**\n\t * **Note:** The getter method is inherited and not supported. If called it will return an empty value.\n\t * @public\n\t * @default null\n\t */\n\tget dateValue(): Date | null {\n\t\treturn null;\n\t}\n\n\t/**\n\t * **Note:** The getter method is inherited and not supported. If called it will return an empty value.\n\t * @public\n\t * @default null\n\t */\n\tget dateValueUTC(): Date | null {\n\t\treturn null;\n\t}\n\n\tget _startDateTimestamp() {\n\t\treturn this._extractFirstTimestamp(this.value);\n\t}\n\n\tget _endDateTimestamp() {\n\t\treturn this._extractLastTimestamp(this.value);\n\t}\n\n\tget _tempTimestamp() {\n\t\treturn this._tempValue && (this.getValueFormat().parse(this._tempValue, true) as Date).getTime() / 1000; // valueformat\n\t}\n\n\t/**\n\t * Required by DatePicker.js\n\t * @override\n\t */\n\tget _calendarSelectionMode(): `${CalendarSelectionMode}` {\n\t\treturn \"Range\";\n\t}\n\n\t/**\n\t * Required by DatePicker.js - set the calendar focus on the first selected date (or today if not set)\n\t * @override\n\t */\n\tget _calendarTimestamp() {\n\t\treturn this._tempTimestamp || this._startDateTimestamp || getTodayUTCTimestamp(this._primaryCalendarType);\n\t}\n\n\t/**\n\t * Required by DatePicker.js\n\t * @override\n\t */\n\tget _calendarSelectedDates() {\n\t\tif (this._tempValue) {\n\t\t\treturn [this._tempValue];\n\t\t}\n\t\tif (this.value && this._checkValueValidity(this.value)) {\n\t\t\treturn this._splitValueByDelimiter(this.value);\n\t\t}\n\t\treturn [];\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t/**\n\t * Returns the start date of the currently selected range as JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget startDateValue(): Date | null {\n\t\treturn CalendarDate.fromTimestamp(this._startDateTimestamp! * 1000).toLocalJSDate();\n\t}\n\n\t/**\n\t * Returns the end date of the currently selected range as JavaScript Date instance.\n\t * @public\n\t * @default null\n\t */\n\tget endDateValue(): Date | null {\n\t\treturn CalendarDate.fromTimestamp(this._endDateTimestamp! * 1000).toLocalJSDate();\n\t}\n\n\tget startValue(): string {\n\t\treturn this._calendarSelectedDates[0] || \"\";\n\t}\n\n\tget endValue(): string {\n\t\treturn this._calendarSelectedDates[1] || \"\";\n\t}\n\n\tget _lastDateRangeForTheCurrentYear() {\n\t\tconst currentYear = UI5Date.getInstance().getFullYear();\n\t\tconst lastDayOfTheYear = UI5Date.getInstance(currentYear, 11, 31, 23, 59, 59);\n\t\tconst sevenDaysBeforeLastDayOfYear = UI5Date.getInstance(currentYear, 11, 24, 23, 59, 59);\n\n\t\treturn `${this.getFormat().format(sevenDaysBeforeLastDayOfYear)} ${this._effectiveDelimiter} ${this.getFormat().format(lastDayOfTheYear)}`;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget _placeholder() {\n\t\tif (this.placeholder) {\n\t\t\treturn this.placeholder;\n\t\t}\n\t\tconst delimiter = ` ${this._effectiveDelimiter} `;\n\t\tconst placeHolderFormatter = this.getFormat({\n\t\t\tinterval: true,\n\t\t\tsingleIntervalValue: true,\n\t\t\tintervalDelimiter: delimiter,\n\t\t});\n\t\t// @ts-expect-error getPlaceholderText is a runtime API not exposed in type definitions\n\t\treturn placeHolderFormatter.getPlaceholderText(this._minDate.toLocalJSDate(), this._maxDate.toLocalJSDate()) as string;\n\t}\n\n\tget _submitDisabled() {\n\t\treturn !this._startDateTimestamp || !this._endDateTimestamp;\n\t}\n\n\tget _cancelButtonText() {\n\t\treturn DateRangePicker.i18nBundle.getText(CALENDAR_FOOTER_CANCEL_BUTTON);\n\t}\n\n\tget _okButtonText() {\n\t\treturn DateRangePicker.i18nBundle.getText(CALENDAR_FOOTER_OK_BUTTON);\n\t}\n\n\t/**\n\t * Handles clicking on the `submit` button, within the picker`s footer in mobile devices.\n\t */\n\t_submitClick() {\n\t\tif (!this._startDateTimestamp || !this._endDateTimestamp) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newValue = this._buildValue(this._startDateTimestamp, this._endDateTimestamp);\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * Handles clicking on the `cancel` button, within the picker`s footer,\n\t * that would disregard the user selection.\n\t */\n\t_cancelClick() {\n\t\tthis._tempValue = \"\";\n\t\tthis._togglePicker();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget roleDescription() {\n\t\treturn DateRangePicker.i18nBundle.getText(DATERANGE_DESCRIPTION);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget pickerAccessibleName() {\n\t\treturn DateRangePicker.i18nBundle.getText(DATERANGEPICKER_POPOVER_ACCESSIBLE_NAME, this.ariaLabelText);\n\t}\n\n\t/**\n\t * @override\n\t */\n\t onResponsivePopoverAfterClose() {\n\t\tthis._tempValue = \"\"; // reset _tempValue on popover close\n\t\tsuper.onResponsivePopoverAfterClose();\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @public\n\t * @param value A value to be tested against the current date format\n\t */\n\tisValid(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\tif (parts.some(dateString => this._isRelativeValue(dateString, this.getFormat()))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValid(dateString)); // must be at most 2 dates and each must be valid\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @public\n\t * @param value A value to be tested against the current date format\n\t */\n\tisValidValue(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\tif (parts.some(dateString => this._isRelativeValue(dateString, this.getValueFormat()))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValidValue(dateString)); // must be at most 2 dates and each must be valid\n\t}\n\n\t/**\n\t * Checks if a value is valid against the current date format of the DatePicker.\n\t * @public\n\t * @param value A value to be tested against the current date format\n\t */\n\tisValidDisplayValue(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\tif (parts.some(dateString => this._isRelativeValue(dateString, this.getDisplayFormat()))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValidDisplayValue(dateString)); // must be at most 2 dates and each must be valid\n\t}\n\n\t/**\n\t * Checks if a date is between the minimum and maximum date.\n\t * @public\n\t * @param value A value to be checked\n\t */\n\tisInValidRange(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isInValidRange(dateString));\n\t}\n\n\tisValidMin(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValidMin(dateString));\n\t}\n\n\tisValidMax(value: string): boolean {\n\t\tconst parts = this._splitValueByDelimiter(value).filter(str => str.trim() !== \"\");\n\n\t\treturn parts.length <= 2 && parts.every(dateString => super.isValidMax(dateString));\n\t}\n\n\t/**\n\t * Extract both dates as timestamps, flip if necessary, and build (which will use the desired format so we enforce the format too)\n\t * @override\n\t */\n\tnormalizeValue(value: string) {\n\t\tconst firstDateTimestamp = this._extractFirstTimestamp(value);\n\t\tconst lastDateTimestamp = this._extractLastTimestamp(value);\n\t\tif (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary\n\t\t\treturn this._buildValue(lastDateTimestamp, firstDateTimestamp);\n\t\t}\n\t\treturn this._buildValue(firstDateTimestamp, lastDateTimestamp);\n\t}\n\n\t/**\n\t * The parser understands many formats, but we need one format\n\t * @override\n\t * @protected\n\t */\n\tnormalizeDisplayValue(value: string) {\n\t\tconst values = this._splitValueByDelimiter(value);\n\t\tconst firstDateTimestamp = this._exctractDisplayTimestamp(values[0]);\n\t\tconst lastDateTimestamp = this._exctractDisplayTimestamp(values[1]);\n\n\t\tif (!firstDateTimestamp || !lastDateTimestamp) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary\n\t\t\treturn this._buildDisplayValue(lastDateTimestamp, firstDateTimestamp);\n\t\t}\n\n\t\treturn this._buildDisplayValue(firstDateTimestamp, lastDateTimestamp);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tgetValueFromDisplayValue(value: string): string {\n\t\tconst values = this._splitValueByDelimiter(value);\n\t\tlet firstDateString = \"\";\n\t\tlet lastDateString = \"\";\n\n\t\tfirstDateString = this._getValueStringFromTimestamp((this._exctractDisplayTimestamp(values[0]) as number) * 1000);\n\t\tlastDateString = this._getValueStringFromTimestamp((this._exctractDisplayTimestamp(values[1]) as number) * 1000);\n\n\t\tif (!firstDateString || !lastDateString) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t}\n\n\t/**\n\t * @override\n\t */\n\tonSelectedDatesChange(event: CustomEvent<CalendarSelectionChangeEventDetail>) {\n\t\tevent.preventDefault(); // never let the calendar update its own dates, the parent component controls them\n\t\tconst values = event.detail.selectedValues;\n\n\t\tif (values.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (values.length === 1) { // Do nothing until the user selects 2 dates, we don't change any state at all for one date\n\t\t\tthis._tempValue = values[0];\n\t\t\treturn;\n\t\t}\n\t\tconst newValue = this._buildValue(event.detail.selectedDates[0], event.detail.selectedDates[1]); // the value will be normalized so we don't need to order them here\n\t\tif (!this._isPhone) { // on desktop we update the value immediately, on mobile we wait for the user to confirm the selection with the \"OK\" button\n\t\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\t\t\tthis._togglePicker();\n\t\t} else {\n\t\t\tthis._updateValueAndFireEvents(newValue, true, [\"value-changed\"]); // fire value-changed immediately on mobile so the app can react to the change (e.g. update the input field), but wait with firing \"change\" until the user clicks \"OK\"\n\t\t}\n\t}\n\n\t/**\n\t * @override\n\t */\n\tasync _modifyDateValue(amount: number, unit: string, preserveDate?: boolean) {\n\t\tif (!this._endDateTimestamp) { // If empty or only one date -> treat as datepicker entirely\n\t\t\treturn super._modifyDateValue(amount, unit, preserveDate);\n\t\t}\n\n\t\tlet caretPos: number = this._dateTimeInput.getCaretPosition()!; // caret position is always number for input of type text;\n\t\tlet newValue: string;\n\n\t\tif (caretPos <= this.value.indexOf(this._effectiveDelimiter)) { // The user is focusing the first date -> change it and keep the second date\n\t\t\tconst startDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._startDateTimestamp! * 1000), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\t\tconst newStartDateTimestamp = startDateModified.valueOf() / 1000;\n\t\t\tif (newStartDateTimestamp > this._endDateTimestamp) { // dates flipped -> move the caret to the same position but on the last date\n\t\t\t\tcaretPos += Math.ceil(this.value.length / 2);\n\t\t\t}\n\t\t\tnewValue = this._buildValue(newStartDateTimestamp, this._endDateTimestamp); // the value will be normalized so we don't try to order them here\n\t\t} else {\n\t\t\tconst endDateModified = modifyDateBy(CalendarDate.fromTimestamp(this._endDateTimestamp * 1000), amount, unit, preserveDate, this._minDate, this._maxDate);\n\t\t\tconst newEndDateTimestamp = endDateModified.valueOf() / 1000;\n\t\t\tnewValue = this._buildValue(this._startDateTimestamp, newEndDateTimestamp); // the value will be normalized so we don't try to order them here\n\t\t\tif (newEndDateTimestamp < this._startDateTimestamp!) { // dates flipped -> move the caret to the same position but on the first date\n\t\t\t\tcaretPos -= Math.ceil(this.value.length / 2);\n\t\t\t}\n\t\t}\n\t\tthis._updateValueAndFireEvents(newValue, true, [\"change\", \"value-changed\"]);\n\n\t\tawait renderFinished();\n\t\tthis._dateTimeInput.setCaretPosition(caretPos); // Return the caret to the previous (or the adjusted, if dates flipped) position after rendering\n\t}\n\n\tget _effectiveDelimiter(): string {\n\t\treturn this.delimiter || DEFAULT_DELIMITER;\n\t}\n\n\t_splitValueByDelimiter(value: string) {\n\t\tconst valuesArray: Array<string> = [];\n\t\tconst partsArray = value.split(this._prevDelimiter || this._effectiveDelimiter);\n\t\t// if format successfully parse the value, the value contains only single date\n\t\tif (this.getValueFormat().parse(value)) {\n\t\t\tvaluesArray[0] = partsArray.join(this._effectiveDelimiter);\n\t\t\tvaluesArray[1] = \"\";\n\t\t} else {\n\t\t\tvaluesArray[0] = partsArray.slice(0, partsArray.length / 2).join(this._effectiveDelimiter);\n\t\t\tvaluesArray[1] = partsArray.slice(partsArray.length / 2).join(this._effectiveDelimiter);\n\t\t}\n\n\t\treturn valuesArray;\n\t}\n\n\t/**\n\t * The parser understands many formats, but we need one format\n\t * @protected\n\t */\n\tnormalizeFormattedValue(value: string) {\n\t\tif (value === \"\") {\n\t\t\treturn value;\n\t\t}\n\n\t\tlet firstDateString = \"\";\n\t\tlet lastDateString = \"\";\n\n\t\tfirstDateString = this._getValueStringFromTimestamp((this._extractFirstTimestamp(value) as number) * 1000);\n\t\tlastDateString = this._getValueStringFromTimestamp((this._extractLastTimestamp(value) as number) * 1000);\n\n\t\tif (!firstDateString && !lastDateString) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t}\n\n\t/**\n\t * Returns a UTC timestamp, representing the first date in the value string or undefined if the value is empty\n\t * @private\n\t */\n\t_extractFirstTimestamp(value: string) {\n\t\tif (!value || !this._checkValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst dateStrings = this._splitValueByDelimiter(value); // at least one item guaranteed due to the checks above (non-empty and valid)\n\n\t\tconst parsedDate = this.getValueFormat().parse(dateStrings[0], true) as Date;\n\n\t\treturn parsedDate.getTime() / 1000;\n\t}\n\n\t/**\n\t * Returns a UTC timestamp, representing the last date in the value string or undefined if the value is empty or there is just one date\n\t * @private\n\t */\n\t_extractLastTimestamp(value: string) {\n\t\tif (!value || !this._checkValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet dateStrings = this._splitValueByDelimiter(value);\n\t\tdateStrings = dateStrings.filter(str => str !== \" \"); // remove empty strings\n\t\tif (dateStrings[1]) {\n\t\t\tconst parsedDate = this.getValueFormat().parse(dateStrings[1], true) as Date;\n\n\t\t\treturn parsedDate.getTime() / 1000;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t_exctractDisplayTimestamp(value: string) {\n\t\tif (!value || !this._checkDisplayValueValidity(value)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (value) {\n\t\t\tconst parsedDate = this.getDisplayFormat().parse(value, true) as Date;\n\n\t\t\treturn parsedDate.getTime() / 1000;\n\t\t}\n\t}\n\n\t/**\n\t * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp\n\t * @private\n\t */\n\t_buildValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined): string {\n\t\tthis._prevDelimiter = this._effectiveDelimiter;\n\t\tif (firstDateTimestamp) {\n\t\t\tconst firstDateString = this._getValueStringFromTimestamp(firstDateTimestamp * 1000);\n\n\t\t\tif (!lastDateTimestamp) {\n\t\t\t\treturn firstDateString;\n\t\t\t}\n\n\t\t\tconst lastDateString = this._getValueStringFromTimestamp(lastDateTimestamp * 1000);\n\t\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp\n\t * @private\n\t */\n\t_buildDisplayValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined) {\n\t\tthis._prevDelimiter = this._effectiveDelimiter;\n\t\tif (firstDateTimestamp) {\n\t\t\tconst firstDateString = this._getDisplayStringFromTimestamp(firstDateTimestamp * 1000);\n\n\t\t\tif (!lastDateTimestamp) {\n\t\t\t\treturn firstDateString;\n\t\t\t}\n\n\t\t\tconst lastDateString = this._getDisplayStringFromTimestamp(lastDateTimestamp * 1000);\n\t\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tgetDisplayValueFromValue(value: string): string {\n\t\tif (this.isLiveUpdate) {\n\t\t\treturn value;\n\t\t}\n\n\t\tlet firstDateString = \"\";\n\t\tlet lastDateString = \"\";\n\n\t\tfirstDateString = this._getDisplayStringFromTimestamp((this._extractFirstTimestamp(value) as number) * 1000);\n\t\tlastDateString = this._getDisplayStringFromTimestamp((this._extractLastTimestamp(value) as number) * 1000);\n\n\t\tif (!firstDateString || !lastDateString) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n\t}\n\n\tget displayValue() : string {\n\t\tif (!this.value) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\treturn this.getDisplayValueFromValue(this.value);\n\t}\n}\n\nDateRangePicker.define();\n\nexport default DateRangePicker;\nexport type {\n\tDateRangePickerChangeEventDetail,\n\tDateRangePickerInputEventDetail,\n};\n"]}
@@ -14,7 +14,7 @@ export default function FormTemplate() {
14
14
  _jsx("div", { class: "ui5-form-header", part: "header", children: this.hasCustomHeader ?
15
15
  _jsx("slot", { name: "header" })
16
16
  :
17
- _jsx(Title, { id: `${this._id}-header-text`, level: this.headerLevel, children: this.headerText }) }), this.hasGroupItems ? groupedItemsLayout.call(this) : standaloneItemsLayout.call(this)] }));
17
+ _jsx(Title, { id: `${this._id}-header-text`, wrappingType: "None", level: this.headerLevel, children: this.headerText }) }), this.hasGroupItems ? groupedItemsLayout.call(this) : standaloneItemsLayout.call(this)] }));
18
18
  }
19
19
  function groupedItemsLayout() {
20
20
  return _jsx("div", { class: "ui5-form-layout", part: "layout", children: this.groupItemsInfo.map(groupItemInfo => {
@@ -25,7 +25,7 @@ function groupedItemsLayout() {
25
25
  "--ui5-form-column-span-l": groupItem.colsL,
26
26
  "--ui5-form-column-span-xl": groupItem.colsXl,
27
27
  }, part: "column", children: _jsxs("div", { class: "ui5-form-group", role: groupItemInfo.role, "aria-labelledby": groupItemInfo.accessibleNameRef, "aria-label": groupItemInfo.accessibleName, children: [groupItem.headerText &&
28
- _jsx("div", { class: "ui5-form-group-heading", children: _jsx(Title, { id: `${groupItem._id}-group-header-text`, level: groupItem.headerLevel, size: "H6", children: groupItem.headerText }) }), this.accessibleMode === "Edit" ?
28
+ _jsx("div", { class: "ui5-form-group-heading", children: _jsx(Title, { id: `${groupItem._id}-group-header-text`, wrappingType: "None", level: groupItem.headerLevel, size: "H6", children: groupItem.headerText }) }), this.accessibleMode === "Edit" ?
29
29
  _jsx("div", { class: "ui5-form-group-layout", children: _jsx("slot", { name: groupItem._individualSlot }) })
30
30
  :
31
31
  _jsx("dl", { class: "ui5-form-group-layout", "aria-labelledby": groupItemInfo.accessibleNameRefInner, "aria-label": groupItemInfo.accessibleNameInner, children: _jsx("slot", { name: groupItem._individualSlot }) })] }) });
@@ -1 +1 @@
1
- {"version":3,"file":"FormTemplate.js","sourceRoot":"","sources":["../src/FormTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Form from \"./Form.js\";\nimport Title from \"./Title.js\";\n\nexport default function FormTemplate(this: Form) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-form-root\"\n\t\t\trole={this.effectiveAccessibleRole}\n\t\t\taria-label={this.effectiveAccessibleName}\n\t\t\taria-labelledby={this.effectiveAccessibleNameRef}\n\t\t\tstyle={{\n\t\t\t\t\"--ui5-form-columns-s\": this.columnsS,\n\t\t\t\t\"--ui5-form-columns-m\": this.columnsM,\n\t\t\t\t\"--ui5-form-columns-l\": this.columnsL,\n\t\t\t\t\"--ui5-form-columns-xl\": this.columnsXl,\n\t\t\t\t\"--ui5-form-item-layout-S\": this.getFormItemLayout(\"S\"),\n\t\t\t\t\"--ui5-form-item-layout-M\": this.getFormItemLayout(\"M\"),\n\t\t\t\t\"--ui5-form-item-layout-L\": this.getFormItemLayout(\"L\"),\n\t\t\t\t\"--ui5-form-item-layout-XL\": this.getFormItemLayout(\"XL\"),\n\t\t\t}}\n\t\t>\n\t\t\t{this.hasHeader &&\n\t\t\t\t<div class=\"ui5-form-header\" part=\"header\">\n\t\t\t\t\t{this.hasCustomHeader ?\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<Title id={`${this._id}-header-text`} level={this.headerLevel}>{this.headerText}</Title>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t{this.hasGroupItems ? groupedItemsLayout.call(this) : standaloneItemsLayout.call(this)}\n\t\t</div>\n\t);\n}\n\nfunction groupedItemsLayout(this: Form) {\n\treturn <div class=\"ui5-form-layout\" part=\"layout\">\n\t\t{this.groupItemsInfo.map(groupItemInfo => {\n\t\t\tconst groupItem = groupItemInfo.groupItem;\n\t\t\treturn <div\n\t\t\t\tclass=\"ui5-form-column\"\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--ui5-form-column-span-s\": groupItem.colsS,\n\t\t\t\t\t\"--ui5-form-column-span-m\": groupItem.colsM,\n\t\t\t\t\t\"--ui5-form-column-span-l\": groupItem.colsL,\n\t\t\t\t\t\"--ui5-form-column-span-xl\": groupItem.colsXl,\n\t\t\t\t}}\n\t\t\t\tpart=\"column\"\n\t\t\t>\n\t\t\t\t<div class=\"ui5-form-group\"\n\t\t\t\t\trole={groupItemInfo.role}\n\t\t\t\t\taria-labelledby={groupItemInfo.accessibleNameRef}\n\t\t\t\t\taria-label={groupItemInfo.accessibleName}\n\t\t\t\t>\n\t\t\t\t\t{groupItem.headerText &&\n\t\t\t\t\t\t<div class=\"ui5-form-group-heading\">\n\t\t\t\t\t\t\t<Title id={`${groupItem._id}-group-header-text`} level={groupItem.headerLevel} size=\"H6\">{groupItem.headerText}</Title>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t{this.accessibleMode === \"Edit\" ?\n\t\t\t\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<dl class=\"ui5-form-group-layout\" aria-labelledby={groupItemInfo.accessibleNameRefInner} aria-label={groupItemInfo.accessibleNameInner}>\n\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>;\n\t\t})}\n\t</div>;\n}\n\nfunction standaloneItemsLayout(this: Form) {\n\tconst column = <div\n\t\tclass=\"ui5-form-column\"\n\t\tstyle={{\n\t\t\t\"--ui5-form-column-span-s\": this.columnsS,\n\t\t\t\"--ui5-form-column-span-m\": this.columnsM,\n\t\t\t\"--ui5-form-column-span-l\": this.columnsL,\n\t\t\t\"--ui5-form-column-span-xl\": this.columnsXl,\n\t\t}}\n\t\tpart=\"column\"\n\t>\n\t\t{this.accessibleMode === \"Edit\" ?\n\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t{standaloneItemsLayoutContent.call(this)}\n\t\t\t</div>\n\t\t\t:\n\t\t\t<dl class=\"ui5-form-group-layout\">\n\t\t\t\t{standaloneItemsLayoutContent.call(this)}\n\t\t\t</dl>\n\t\t}\n\t</div>;\n\n\treturn <div class=\"ui5-form-layout\" part=\"layout\">{column}</div>;\n}\n\nfunction standaloneItemsLayoutContent(this: Form) {\n\treturn this.itemsInfo.map(itemInfo => {\n\t\tconst item = itemInfo.item;\n\t\treturn (\n\t\t\t<div class=\"ui5-form-item\">\n\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t</div >\n\t\t);\n\t});\n}\n"]}
1
+ {"version":3,"file":"FormTemplate.js","sourceRoot":"","sources":["../src/FormTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type Form from \"./Form.js\";\nimport Title from \"./Title.js\";\n\nexport default function FormTemplate(this: Form) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-form-root\"\n\t\t\trole={this.effectiveAccessibleRole}\n\t\t\taria-label={this.effectiveAccessibleName}\n\t\t\taria-labelledby={this.effectiveAccessibleNameRef}\n\t\t\tstyle={{\n\t\t\t\t\"--ui5-form-columns-s\": this.columnsS,\n\t\t\t\t\"--ui5-form-columns-m\": this.columnsM,\n\t\t\t\t\"--ui5-form-columns-l\": this.columnsL,\n\t\t\t\t\"--ui5-form-columns-xl\": this.columnsXl,\n\t\t\t\t\"--ui5-form-item-layout-S\": this.getFormItemLayout(\"S\"),\n\t\t\t\t\"--ui5-form-item-layout-M\": this.getFormItemLayout(\"M\"),\n\t\t\t\t\"--ui5-form-item-layout-L\": this.getFormItemLayout(\"L\"),\n\t\t\t\t\"--ui5-form-item-layout-XL\": this.getFormItemLayout(\"XL\"),\n\t\t\t}}\n\t\t>\n\t\t\t{this.hasHeader &&\n\t\t\t\t<div class=\"ui5-form-header\" part=\"header\">\n\t\t\t\t\t{this.hasCustomHeader ?\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<Title id={`${this._id}-header-text`} wrappingType=\"None\" level={this.headerLevel}>{this.headerText}</Title>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t{this.hasGroupItems ? groupedItemsLayout.call(this) : standaloneItemsLayout.call(this)}\n\t\t</div>\n\t);\n}\n\nfunction groupedItemsLayout(this: Form) {\n\treturn <div class=\"ui5-form-layout\" part=\"layout\">\n\t\t{this.groupItemsInfo.map(groupItemInfo => {\n\t\t\tconst groupItem = groupItemInfo.groupItem;\n\t\t\treturn <div\n\t\t\t\tclass=\"ui5-form-column\"\n\t\t\t\tstyle={{\n\t\t\t\t\t\"--ui5-form-column-span-s\": groupItem.colsS,\n\t\t\t\t\t\"--ui5-form-column-span-m\": groupItem.colsM,\n\t\t\t\t\t\"--ui5-form-column-span-l\": groupItem.colsL,\n\t\t\t\t\t\"--ui5-form-column-span-xl\": groupItem.colsXl,\n\t\t\t\t}}\n\t\t\t\tpart=\"column\"\n\t\t\t>\n\t\t\t\t<div class=\"ui5-form-group\"\n\t\t\t\t\trole={groupItemInfo.role}\n\t\t\t\t\taria-labelledby={groupItemInfo.accessibleNameRef}\n\t\t\t\t\taria-label={groupItemInfo.accessibleName}\n\t\t\t\t>\n\t\t\t\t\t{groupItem.headerText &&\n\t\t\t\t\t\t<div class=\"ui5-form-group-heading\">\n\t\t\t\t\t\t\t<Title id={`${groupItem._id}-group-header-text`} wrappingType=\"None\" level={groupItem.headerLevel} size=\"H6\">{groupItem.headerText}</Title>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t{this.accessibleMode === \"Edit\" ?\n\t\t\t\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<dl class=\"ui5-form-group-layout\" aria-labelledby={groupItemInfo.accessibleNameRefInner} aria-label={groupItemInfo.accessibleNameInner}>\n\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>;\n\t\t})}\n\t</div>;\n}\n\nfunction standaloneItemsLayout(this: Form) {\n\tconst column = <div\n\t\tclass=\"ui5-form-column\"\n\t\tstyle={{\n\t\t\t\"--ui5-form-column-span-s\": this.columnsS,\n\t\t\t\"--ui5-form-column-span-m\": this.columnsM,\n\t\t\t\"--ui5-form-column-span-l\": this.columnsL,\n\t\t\t\"--ui5-form-column-span-xl\": this.columnsXl,\n\t\t}}\n\t\tpart=\"column\"\n\t>\n\t\t{this.accessibleMode === \"Edit\" ?\n\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t{standaloneItemsLayoutContent.call(this)}\n\t\t\t</div>\n\t\t\t:\n\t\t\t<dl class=\"ui5-form-group-layout\">\n\t\t\t\t{standaloneItemsLayoutContent.call(this)}\n\t\t\t</dl>\n\t\t}\n\t</div>;\n\n\treturn <div class=\"ui5-form-layout\" part=\"layout\">{column}</div>;\n}\n\nfunction standaloneItemsLayoutContent(this: Form) {\n\treturn this.itemsInfo.map(itemInfo => {\n\t\tconst item = itemInfo.item;\n\t\treturn (\n\t\t\t<div class=\"ui5-form-item\">\n\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t</div >\n\t\t);\n\t});\n}\n"]}
@@ -42,17 +42,6 @@ declare class InputIcon extends UI5Element {
42
42
  * @public
43
43
  */
44
44
  accessibleName?: string;
45
- /**
46
- * Defines whether the native `title` tooltip, derived from `accessibleName`, is displayed.
47
- *
48
- * **Note:** When set, the `accessibleName` is still announced by screen readers, but no
49
- * `title` tooltip is rendered.
50
- *
51
- * @since 2.28.0
52
- * @default false
53
- * @public
54
- */
55
- hideTooltip: boolean;
56
45
  /**
57
46
  * @private
58
47
  */
package/dist/InputIcon.js CHANGED
@@ -35,17 +35,6 @@ import "./Icon.js";
35
35
  let InputIcon = class InputIcon extends UI5Element {
36
36
  constructor() {
37
37
  super(...arguments);
38
- /**
39
- * Defines whether the native `title` tooltip, derived from `accessibleName`, is displayed.
40
- *
41
- * **Note:** When set, the `accessibleName` is still announced by screen readers, but no
42
- * `title` tooltip is rendered.
43
- *
44
- * @since 2.28.0
45
- * @default false
46
- * @public
47
- */
48
- this.hideTooltip = false;
49
38
  /**
50
39
  * @private
51
40
  */
@@ -91,7 +80,7 @@ let InputIcon = class InputIcon extends UI5Element {
91
80
  return this.accessibleName || undefined;
92
81
  }
93
82
  get effectiveTitle() {
94
- return this.hideTooltip ? undefined : (this.accessibleName || undefined);
83
+ return this.accessibleName || undefined;
95
84
  }
96
85
  };
97
86
  __decorate([
@@ -100,9 +89,6 @@ __decorate([
100
89
  __decorate([
101
90
  property()
102
91
  ], InputIcon.prototype, "accessibleName", void 0);
103
- __decorate([
104
- property({ type: Boolean })
105
- ], InputIcon.prototype, "hideTooltip", void 0);
106
92
  __decorate([
107
93
  property({ type: Boolean, noAttribute: true })
108
94
  ], InputIcon.prototype, "_pressed", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"InputIcon.js","sourceRoot":"","sources":["../src/InputIcon.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element 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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport InputIconTemplate from \"./InputIconTemplate.js\";\nimport inputIconCss from \"./generated/themes/InputIcon.css.js\";\nimport \"./Icon.js\";\n\n/**\n * @class\n * ### Overview\n * The `ui5-input-icon` component represents an interactive icon that can be placed inside an `ui5-input` component.\n * Unlike the standard `ui5-icon`, this component provides button-like behavior with hover, focus, and active states,\n * matching the visual style of the input's built-in clear icon.\n *\n * ### Usage\n * Use `ui5-input-icon` for interactive icons that users can click (e.g., search, voice input, camera).\n * For decorative icons, use the standard `ui5-icon` component instead.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/InputIcon.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.25.0\n */\n@customElement({\n\ttag: \"ui5-input-icon\",\n\trenderer: jsxRenderer,\n\ttemplate: InputIconTemplate,\n\tstyles: inputIconCss,\n\tlanguageAware: false,\n\tthemeAware: true,\n})\n/**\n * Fired when the `ui5-input-icon` is activated either with a click/tap or by using the Enter or Space key.\n * @public\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass InputIcon extends UI5Element {\n\teventDetails!: {\n\t\tclick: void;\n\t}\n\n\t/**\n\t * Defines the icon name to be displayed.\n\t *\n\t * **Note:** Make sure you import the desired icon before using it.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines the accessible name of the icon.\n\t *\n\t * **Note:** This property is used for accessibility purposes and will be announced by screen readers.\n\t * When set, it is also rendered as a native `title` tooltip, unless `hideTooltip` is set.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines whether the native `title` tooltip, derived from `accessibleName`, is displayed.\n\t *\n\t * **Note:** When set, the `accessibleName` is still announced by screen readers, but no\n\t * `title` tooltip is rendered.\n\t *\n\t * @since 2.28.0\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideTooltip = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_pressed = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_focused = false;\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n\n\t_onmousedown() {\n\t\tthis._pressed = true;\n\t}\n\n\t_onmouseup() {\n\t\tthis._pressed = false;\n\t}\n\n\t_onmouseleave() {\n\t\tthis._pressed = false;\n\t}\n\n\t_onfocus() {\n\t\tthis._focused = true;\n\t}\n\n\t_onblur() {\n\t\tthis._focused = false;\n\t\tthis._pressed = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e) || isSpace(e)) {\n\t\t\tthis._pressed = true;\n\t\t\te.preventDefault(); // Prevent scrolling on Space\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isEnter(e) || isSpace(e)) {\n\t\t\tthis._pressed = false;\n\t\t\tthis.fireDecoratorEvent(\"click\");\n\t\t}\n\t}\n\n\tget effectiveAriaLabel() {\n\t\treturn this.accessibleName || undefined;\n\t}\n\n\tget effectiveTitle() {\n\t\treturn this.hideTooltip ? undefined : (this.accessibleName || undefined);\n\t}\n}\n\nInputIcon.define();\n\nexport default InputIcon;\n"]}
1
+ {"version":3,"file":"InputIcon.js","sourceRoot":"","sources":["../src/InputIcon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,YAAY,MAAM,qCAAqC,CAAC;AAC/D,OAAO,WAAW,CAAC;AAEnB;;;;;;;;;;;;;;;;;;GAkBG;AAgBH,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;IAAlC;;QA4BC;;WAEG;QAEH,aAAQ,GAAG,KAAK,CAAC;QAEjB;;WAEG;QAEH,aAAQ,GAAG,KAAK,CAAC;IAiDlB,CAAC;IA/CA,QAAQ,CAAC,CAAa;QACrB,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,YAAY;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,UAAU;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,OAAO;QACN,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,6BAA6B;QAClD,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;IACzC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;IACzC,CAAC;CACD,CAAA;AAzEA;IADC,QAAQ,EAAE;uCACG;AAYd;IADC,QAAQ,EAAE;iDACa;AAMxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;2CAC9B;AAMjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;2CAC9B;AAtCZ,SAAS;IAfd,aAAa,CAAC;QACd,GAAG,EAAE,gBAAgB;QACrB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,YAAY;QACpB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,IAAI;KAChB,CAAC;IACF;;;OAGG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;KACb,CAAC;GACI,SAAS,CAuFd;AAED,SAAS,CAAC,MAAM,EAAE,CAAC;AAEnB,eAAe,SAAS,CAAC","sourcesContent":["import UI5Element 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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport InputIconTemplate from \"./InputIconTemplate.js\";\nimport inputIconCss from \"./generated/themes/InputIcon.css.js\";\nimport \"./Icon.js\";\n\n/**\n * @class\n * ### Overview\n * The `ui5-input-icon` component represents an interactive icon that can be placed inside an `ui5-input` component.\n * Unlike the standard `ui5-icon`, this component provides button-like behavior with hover, focus, and active states,\n * matching the visual style of the input's built-in clear icon.\n *\n * ### Usage\n * Use `ui5-input-icon` for interactive icons that users can click (e.g., search, voice input, camera).\n * For decorative icons, use the standard `ui5-icon` component instead.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/InputIcon.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.25.0\n */\n@customElement({\n\ttag: \"ui5-input-icon\",\n\trenderer: jsxRenderer,\n\ttemplate: InputIconTemplate,\n\tstyles: inputIconCss,\n\tlanguageAware: false,\n\tthemeAware: true,\n})\n/**\n * Fired when the `ui5-input-icon` is activated either with a click/tap or by using the Enter or Space key.\n * @public\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass InputIcon extends UI5Element {\n\teventDetails!: {\n\t\tclick: void;\n\t}\n\n\t/**\n\t * Defines the icon name to be displayed.\n\t *\n\t * **Note:** Make sure you import the desired icon before using it.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines the accessible name of the icon.\n\t *\n\t * **Note:** This property is used for accessibility purposes and will be announced by screen readers.\n\t * When set, it is also rendered as a native `title` tooltip, unless `hideTooltip` is set.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_pressed = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_focused = false;\n\n\t_onclick(e: MouseEvent) {\n\t\te.stopImmediatePropagation();\n\t\tthis.fireDecoratorEvent(\"click\");\n\t}\n\n\t_onmousedown() {\n\t\tthis._pressed = true;\n\t}\n\n\t_onmouseup() {\n\t\tthis._pressed = false;\n\t}\n\n\t_onmouseleave() {\n\t\tthis._pressed = false;\n\t}\n\n\t_onfocus() {\n\t\tthis._focused = true;\n\t}\n\n\t_onblur() {\n\t\tthis._focused = false;\n\t\tthis._pressed = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e) || isSpace(e)) {\n\t\t\tthis._pressed = true;\n\t\t\te.preventDefault(); // Prevent scrolling on Space\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isEnter(e) || isSpace(e)) {\n\t\t\tthis._pressed = false;\n\t\t\tthis.fireDecoratorEvent(\"click\");\n\t\t}\n\t}\n\n\tget effectiveAriaLabel() {\n\t\treturn this.accessibleName || undefined;\n\t}\n\n\tget effectiveTitle() {\n\t\treturn this.accessibleName || undefined;\n\t}\n}\n\nInputIcon.define();\n\nexport default InputIcon;\n"]}
@@ -111,7 +111,7 @@ declare class NumericInput extends UI5Element implements IFormInputElement {
111
111
  * **Note:** When no placeholder is set, the format pattern is displayed as a placeholder.
112
112
  * Passing an empty string as the value of this property will make the component appear empty - without placeholder or format pattern.
113
113
  * @default undefined
114
- * @private
114
+ * @public
115
115
  */
116
116
  placeholder?: string;
117
117
  /**
@@ -179,7 +179,8 @@ declare class NumericInput extends UI5Element implements IFormInputElement {
179
179
  get formValidityMessage(): string;
180
180
  get formValidity(): ValidityStateFlags;
181
181
  get formFormattedValue(): FormData | string | null;
182
- get type(): InputType;
182
+ get _isDesktop(): boolean;
183
+ get type(): InputType.Text | InputType.Number;
183
184
  get decIconTitle(): string;
184
185
  get incIconTitle(): string;
185
186
  get _decIconClickable(): boolean;
@@ -230,6 +231,7 @@ declare class NumericInput extends UI5Element implements IFormInputElement {
230
231
  * @private
231
232
  */
232
233
  _parseNumber(formattedValue: string): number;
234
+ _syncValueFromInput(): void;
233
235
  _incValue(): void;
234
236
  _decValue(): void;
235
237
  get _isValueWithCorrectPrecision(): boolean;
@@ -27,6 +27,7 @@ import NumericInputCss from "./generated/themes/NumericInput.css.js";
27
27
  import getCachedLocaleDataInstance from "@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js";
28
28
  import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
29
29
  import { attachLanguageChange, detachLanguageChange } from "@ui5/webcomponents-base/dist/locale/languageChange.js";
30
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
30
31
  // Spin variables
31
32
  const INITIAL_WAIT_TIMEOUT = 500; // milliseconds
32
33
  const ACCELERATION = 0.8;
@@ -153,8 +154,11 @@ let NumericInput = NumericInput_1 = class NumericInput extends UI5Element {
153
154
  get formFormattedValue() {
154
155
  return this.value.toString();
155
156
  }
157
+ get _isDesktop() {
158
+ return isDesktop();
159
+ }
156
160
  get type() {
157
- return InputType.Text;
161
+ return this._isDesktop ? InputType.Text : InputType.Number;
158
162
  }
159
163
  // icons-related
160
164
  get decIconTitle() {
@@ -234,11 +238,20 @@ let NumericInput = NumericInput_1 = class NumericInput extends UI5Element {
234
238
  if (!this._formatter) {
235
239
  this._formatter = NumberFormat.getFloatInstance({
236
240
  decimals: this.valuePrecision,
241
+ ...(!this._isDesktop && {
242
+ decimalSeparator: ".",
243
+ groupingEnabled: false,
244
+ minusSign: "-",
245
+ plusSign: "+",
246
+ }),
237
247
  });
238
248
  }
239
249
  return this._formatter;
240
250
  }
241
251
  get delimiter() {
252
+ if (!this._isDesktop) {
253
+ return ".";
254
+ }
242
255
  if (!this._delimiter) {
243
256
  const localeData = getCachedLocaleDataInstance(getLocale());
244
257
  this._delimiter = localeData.getNumberSymbol("decimal") || ".";
@@ -246,6 +259,9 @@ let NumericInput = NumericInput_1 = class NumericInput extends UI5Element {
246
259
  return this._delimiter;
247
260
  }
248
261
  get groupSeparator() {
262
+ if (!this._isDesktop) {
263
+ return "";
264
+ }
249
265
  if (!this._groupSeparator) {
250
266
  const localeData = getCachedLocaleDataInstance(getLocale());
251
267
  this._groupSeparator = localeData.getNumberSymbol("group") || ",";
@@ -371,6 +387,14 @@ let NumericInput = NumericInput_1 = class NumericInput extends UI5Element {
371
387
  _parseNumber(formattedValue) {
372
388
  return this.formatter.parse(formattedValue);
373
389
  }
390
+ _syncValueFromInput() {
391
+ const raw = this._removeGroupSeparators(this.input.value);
392
+ const parsed = this._parseNumber(raw);
393
+ if (!Number.isNaN(parsed)) {
394
+ this.value = parsed;
395
+ this._inputValue = this.input.value;
396
+ }
397
+ }
374
398
  _incValue() {
375
399
  if (this._incIconClickable && !this.disabled && !this.readonly) {
376
400
  this._modifyValue(this.step, true);
@@ -397,7 +421,7 @@ let NumericInput = NumericInput_1 = class NumericInput extends UI5Element {
397
421
  }
398
422
  _onInputChange() {
399
423
  this._setDefaultInputValueIfNeeded();
400
- const updatedValue = this._removeGroupSeparators(this.input.value);
424
+ const updatedValue = this._isDesktop ? this._removeGroupSeparators(this.input.value) : this.input.value;
401
425
  const inputValue = this._parseNumber(updatedValue);
402
426
  if (this._isValueChanged(inputValue)) {
403
427
  this._updateValueAndValidate(Number.isNaN(inputValue) ? this.min || 0 : inputValue);
@@ -484,6 +508,9 @@ let NumericInput = NumericInput_1 = class NumericInput extends UI5Element {
484
508
  if (e.key && e.key.length !== 1) {
485
509
  return;
486
510
  }
511
+ if (!this._isDesktop) {
512
+ return;
513
+ }
487
514
  const caretPosition = this._getCaretPosition();
488
515
  const inputValue = this.innerInput.value;
489
516
  const typedValue = this._getValueOnkeyDown(e, inputValue, caretPosition);
@@ -516,6 +543,9 @@ let NumericInput = NumericInput_1 = class NumericInput extends UI5Element {
516
543
  e.preventDefault();
517
544
  }
518
545
  if (!this._decIconDisabled) {
546
+ if (this._isFocused) {
547
+ this._syncValueFromInput();
548
+ }
519
549
  this._spinValue(false, true);
520
550
  }
521
551
  else {
@@ -527,6 +557,9 @@ let NumericInput = NumericInput_1 = class NumericInput extends UI5Element {
527
557
  e.preventDefault();
528
558
  }
529
559
  if (!this._incIconDisabled) {
560
+ if (this._isFocused) {
561
+ this._syncValueFromInput();
562
+ }
530
563
  this._spinValue(true, true);
531
564
  }
532
565
  else {