@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.
- package/CHANGELOG.md +44 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/Bar.d.ts +11 -8
- package/dist/Bar.js +11 -9
- package/dist/Bar.js.map +1 -1
- package/dist/ComboBox.js +1 -0
- package/dist/ComboBox.js.map +1 -1
- package/dist/DateComponentBase.d.ts +2 -1
- package/dist/DateComponentBase.js +9 -12
- package/dist/DateComponentBase.js.map +1 -1
- package/dist/DatePicker.js +3 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/DateRangePicker.js +9 -3
- package/dist/DateRangePicker.js.map +1 -1
- package/dist/FormTemplate.js +2 -2
- package/dist/FormTemplate.js.map +1 -1
- package/dist/InputIcon.d.ts +0 -11
- package/dist/InputIcon.js +1 -15
- package/dist/InputIcon.js.map +1 -1
- package/dist/NumericInput.d.ts +4 -2
- package/dist/NumericInput.js +35 -2
- package/dist/NumericInput.js.map +1 -1
- package/dist/SliderTemplate.js +1 -1
- package/dist/SliderTemplate.js.map +1 -1
- package/dist/Tab.d.ts +0 -5
- package/dist/Tab.js +1 -11
- package/dist/Tab.js.map +1 -1
- package/dist/TabContainer.d.ts +1 -1
- package/dist/TabContainer.js +4 -3
- package/dist/TabContainer.js.map +1 -1
- package/dist/TabInStripTemplate.js +1 -2
- package/dist/TabInStripTemplate.js.map +1 -1
- package/dist/YearPicker.js +1 -1
- package/dist/YearPicker.js.map +1 -1
- package/dist/css/themes/Bar.css +1 -1
- package/dist/css/themes/ColorPicker.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +2 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +2 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +2 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +2 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +493 -727
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +475 -695
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +129 -128
- package/dist/custom-elements.json +126 -126
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/themes/Bar.css.d.ts +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/Form.css.d.ts +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItem.css.d.ts +1 -1
- package/dist/generated/themes/FormItem.css.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
- package/dist/generated/themes/FormItemSpan.css.js +1 -1
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +2 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +2 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +2 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +2 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +493 -727
- package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +475 -695
- package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/types/BarAccessibleRole.d.ts +2 -1
- package/dist/types/BarAccessibleRole.js +2 -1
- package/dist/types/BarAccessibleRole.js.map +1 -1
- package/dist/vscode.html-custom-data.json +7 -7
- package/dist/web-types.json +15 -15
- package/package.json +9 -9
- package/src/FormTemplate.tsx +2 -2
- package/src/SliderTemplate.tsx +1 -1
- package/src/TabInStripTemplate.tsx +2 -13
- package/src/i18n/messagebundle_en_US_saprigi.properties +16 -0
- package/src/themes/Bar.css +1 -1
- package/src/themes/ColorPicker.css +1 -5
- package/src/themes/Form.css +5 -3
- package/src/themes/FormItem.css +4 -0
- package/src/themes/FormItemSpan.css +5 -0
- package/src/themes/TabInStrip.css +35 -19
- package/src/themes/base/CalendarHeader-parameters.css +1 -1
- package/src/themes/base/CheckBox-parameters.css +1 -1
- package/src/themes/base/Input-parameters.css +1 -1
- package/src/themes/base/InputIcon-parameters.css +1 -1
- package/src/themes/base/Panel-parameters.css +1 -1
- package/src/themes/base/RadioButton-parameters.css +1 -1
- package/src/themes/base/RatingIndicator-parameters.css +1 -1
- package/src/themes/base/Select-parameters.css +1 -1
- package/src/themes/base/SliderHandle-parameters.css +1 -1
- package/src/themes/base/SliderScale-parameters.css +1 -1
- package/src/themes/base/Switch-parameters.css +1 -1
- package/src/themes/base/TabContainer-parameters.css +1 -1
- package/src/themes/base/TextArea-parameters.css +1 -1
- package/src/themes/base/Tokenizer-parameters.css +1 -1
- package/src/themes/base/sizes-parameters.css +1 -1
- package/src/themes/sap_fiori_3/Slider-parameters.css +1 -1
- package/src/themes/sap_fiori_3/SliderHandle-parameters.css +1 -1
- package/src/themes/sap_fiori_3/sizes-parameters.css +1 -1
- package/src/themes/sap_fiori_3_dark/Slider-parameters.css +1 -1
- package/src/themes/sap_fiori_3_dark/sizes-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcb/Input-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcb/Slider-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcw/Input-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcw/Slider-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +1 -1
- package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +1 -1
- package/src/themes/sap_horizon/Input-parameters.css +1 -1
- package/src/themes/sap_horizon/InputIcon-parameters.css +1 -1
- package/src/themes/sap_horizon/RadioButton-parameters.css +1 -1
- package/src/themes/sap_horizon/RatingIndicator-parameters.css +1 -1
- package/src/themes/sap_horizon/Slider-parameters.css +1 -1
- package/src/themes/sap_horizon/Switch-parameters.css +1 -1
- package/src/themes/sap_horizon/TextArea-parameters.css +1 -1
- package/src/themes/sap_horizon/Token-parameters.css +1 -1
- package/src/themes/sap_horizon/sizes-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/Input-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/InputIcon-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/RadioButton-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/RatingIndicator-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/Slider-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/Switch-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/TextArea-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/Token-parameters.css +1 -1
- package/src/themes/sap_horizon_dark/sizes-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/Input-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/InputIcon-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/RatingIndicator-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/Slider-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/Switch-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/TextArea-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/Token-parameters.css +1 -1
- package/src/themes/sap_horizon_hcb/sizes-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/Input-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/InputIcon-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/RatingIndicator-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/Slider-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/Switch-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/TextArea-parameters.css +1 -1
- package/src/themes/sap_horizon_hcw/Token-parameters.css +1 -1
- 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"]}
|
package/dist/FormTemplate.js
CHANGED
|
@@ -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 }) })] }) });
|
package/dist/FormTemplate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormTemplate.js","sourceRoot":"","sources":["../src/FormTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,YAAY;IACnC,OAAO,CACN,eACC,KAAK,EAAC,eAAe,EACrB,IAAI,EAAE,IAAI,CAAC,uBAAuB,gBACtB,IAAI,CAAC,uBAAuB,qBACvB,IAAI,CAAC,0BAA0B,EAChD,KAAK,EAAE;YACN,sBAAsB,EAAE,IAAI,CAAC,QAAQ;YACrC,sBAAsB,EAAE,IAAI,CAAC,QAAQ;YACrC,sBAAsB,EAAE,IAAI,CAAC,QAAQ;YACrC,uBAAuB,EAAE,IAAI,CAAC,SAAS;YACvC,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YACvD,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YACvD,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YACvD,2BAA2B,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;SACzD,aAEA,IAAI,CAAC,SAAS;gBACd,cAAK,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,YACxC,IAAI,CAAC,eAAe,CAAC,CAAC;wBACtB,eAAM,IAAI,EAAC,QAAQ,GAAQ;wBAC3B,CAAC;4BACD,KAAC,KAAK,IAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,YAAG,IAAI,CAAC,UAAU,GAAS,
|
|
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"]}
|
package/dist/InputIcon.d.ts
CHANGED
|
@@ -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.
|
|
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);
|
package/dist/InputIcon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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
|
|
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"]}
|
package/dist/NumericInput.d.ts
CHANGED
|
@@ -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
|
-
* @
|
|
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
|
|
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;
|
package/dist/NumericInput.js
CHANGED
|
@@ -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 {
|