@siemens/ix 4.1.0 → 4.2.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/READMEOSS.html +1 -1
- package/components/index.js.map +1 -1
- package/components/ix-checkbox-group.js +3 -3
- package/components/ix-checkbox.js +1 -1
- package/components/ix-custom-field.js +3 -3
- package/components/ix-date-input.js +8 -10
- package/components/ix-date-input.js.map +1 -1
- package/components/ix-datetime-picker.js +1 -1
- package/components/ix-field-label.js +1 -1
- package/components/ix-field-wrapper.js +1 -1
- package/components/ix-helper-text.js +1 -1
- package/components/ix-input.js +4 -4
- package/components/ix-menu-about.js +2 -2
- package/components/ix-menu-settings.js +1 -1
- package/components/ix-number-input.js +4 -4
- package/components/ix-pagination.js +3 -3
- package/components/ix-radio-group.js +3 -3
- package/components/ix-radio.js +1 -1
- package/components/ix-select.js +1 -1
- package/components/ix-tab-item.js +1 -1
- package/components/ix-textarea.js +4 -4
- package/components/ix-time-input.js +9 -11
- package/components/ix-time-input.js.map +1 -1
- package/components/ix-time-picker.js +1 -1
- package/components/ix-toggle.js +1 -1
- package/components/{p-DyGPjxFm.js → p-7E7AMiQV.js} +3 -3
- package/components/p-7E7AMiQV.js.map +1 -0
- package/components/{p-Bz7hxKB6.js → p-B1p0kpQJ.js} +3 -3
- package/components/{p-Bz7hxKB6.js.map → p-B1p0kpQJ.js.map} +1 -1
- package/components/{p-BVUD9f4A.js → p-BIg1TSrD.js} +3 -3
- package/components/{p-BVUD9f4A.js.map → p-BIg1TSrD.js.map} +1 -1
- package/components/{p-BZLbfHdO.js → p-BOQ00Fbs.js} +5 -5
- package/components/{p-BZLbfHdO.js.map → p-BOQ00Fbs.js.map} +1 -1
- package/components/{p-Cc4uqNv5.js → p-BiqdnsgA.js} +3 -3
- package/components/{p-Cc4uqNv5.js.map → p-BiqdnsgA.js.map} +1 -1
- package/components/{p-kJlC6ZD0.js → p-BmMUyJRQ.js} +35 -20
- package/components/p-BmMUyJRQ.js.map +1 -0
- package/components/{p-g2Y5blor.js → p-DUU5I7wZ.js} +3 -3
- package/components/{p-g2Y5blor.js.map → p-DUU5I7wZ.js.map} +1 -1
- package/components/{p-xHo-3QVy.js → p-Dq_H2flK.js} +9 -3
- package/components/p-Dq_H2flK.js.map +1 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{input.fc-B5JMSZbY.js → input.fc-DrxRYq_G.js} +3 -3
- package/dist/cjs/{input.fc-B5JMSZbY.js.map → input.fc-DrxRYq_G.js.map} +1 -1
- package/dist/cjs/ix-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/ix-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ix-custom-field.cjs.entry.js +1 -1
- package/dist/cjs/ix-date-input.cjs.entry.js +6 -8
- package/dist/cjs/ix-date-input.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-field-label_2.cjs.entry.js +1 -1
- package/dist/cjs/ix-helper-text.cjs.entry.js +1 -1
- package/dist/cjs/ix-input.cjs.entry.js +2 -2
- package/dist/cjs/ix-number-input.cjs.entry.js +2 -2
- package/dist/cjs/ix-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ix-radio.cjs.entry.js +1 -1
- package/dist/cjs/ix-select.cjs.entry.js +1 -1
- package/dist/cjs/ix-tab-item.ix-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-tab-item_2.cjs.entry.js +1 -1
- package/dist/cjs/ix-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ix-time-input.cjs.entry.js +6 -8
- package/dist/cjs/ix-time-input.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-time-picker.cjs.entry.js +33 -18
- package/dist/cjs/ix-time-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-toggle.cjs.entry.js +1 -1
- package/dist/cjs/{validation-CfL71_0d.js → validation-DTmSqO2d.js} +9 -2
- package/dist/{esm/validation-D_dk-JqT.js.map → cjs/validation-DTmSqO2d.js.map} +1 -1
- package/dist/collection/components/date-input/date-input.js +5 -7
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/tab-item/tab-item.css +1 -1
- package/dist/collection/components/time-input/time-input.js +5 -7
- package/dist/collection/components/time-input/time-input.js.map +1 -1
- package/dist/collection/components/time-picker/time-picker.js +33 -18
- package/dist/collection/components/time-picker/time-picker.js.map +1 -1
- package/dist/collection/components/utils/input/validation.js +6 -0
- package/dist/collection/components/utils/input/validation.js.map +1 -1
- package/dist/collection/components/utils/modal/index.js.map +1 -1
- package/dist/collection/components/utils/modal/loading.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{input.fc-CQbX6V05.js → input.fc-KJF8Z9iJ.js} +3 -3
- package/dist/esm/{input.fc-CQbX6V05.js.map → input.fc-KJF8Z9iJ.js.map} +1 -1
- package/dist/esm/ix-checkbox-group.entry.js +1 -1
- package/dist/esm/ix-checkbox.entry.js +1 -1
- package/dist/esm/ix-custom-field.entry.js +1 -1
- package/dist/esm/ix-date-input.entry.js +6 -8
- package/dist/esm/ix-date-input.entry.js.map +1 -1
- package/dist/esm/ix-field-label_2.entry.js +1 -1
- package/dist/esm/ix-helper-text.entry.js +1 -1
- package/dist/esm/ix-input.entry.js +2 -2
- package/dist/esm/ix-number-input.entry.js +2 -2
- package/dist/esm/ix-radio-group.entry.js +1 -1
- package/dist/esm/ix-radio.entry.js +1 -1
- package/dist/esm/ix-select.entry.js +1 -1
- package/dist/esm/ix-tab-item.ix-tabs.entry.js.map +1 -1
- package/dist/esm/ix-tab-item_2.entry.js +1 -1
- package/dist/esm/ix-textarea.entry.js +2 -2
- package/dist/esm/ix-time-input.entry.js +6 -8
- package/dist/esm/ix-time-input.entry.js.map +1 -1
- package/dist/esm/ix-time-picker.entry.js +33 -18
- package/dist/esm/ix-time-picker.entry.js.map +1 -1
- package/dist/esm/ix-toggle.entry.js +1 -1
- package/dist/esm/{validation-D_dk-JqT.js → validation-LJh16vt2.js} +9 -3
- package/dist/{cjs/validation-CfL71_0d.js.map → esm/validation-LJh16vt2.js.map} +1 -1
- package/dist/siemens-ix/index.esm.js.map +1 -1
- package/dist/siemens-ix/ix-date-input.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-tab-item.ix-tabs.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-time-input.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-time-picker.entry.esm.js.map +1 -1
- package/dist/siemens-ix/p-0c325f08.entry.js +2 -0
- package/dist/siemens-ix/p-0c325f08.entry.js.map +1 -0
- package/dist/siemens-ix/p-0eca5a77.entry.js +2 -0
- package/dist/siemens-ix/{p-3751c675.entry.js.map → p-0eca5a77.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-086d31e7.entry.js → p-26c629c3.entry.js} +2 -2
- package/dist/siemens-ix/{p-51ae739e.entry.js → p-33b3ed5b.entry.js} +2 -2
- package/dist/siemens-ix/{p-7f90eeef.entry.js → p-4431f891.entry.js} +2 -2
- package/dist/siemens-ix/{p-620158aa.entry.js → p-4e77d861.entry.js} +2 -2
- package/dist/siemens-ix/p-68aaf0fe.entry.js +2 -0
- package/dist/siemens-ix/p-68aaf0fe.entry.js.map +1 -0
- package/dist/siemens-ix/{p-ebef3d52.entry.js → p-79537728.entry.js} +2 -2
- package/dist/siemens-ix/{p-CAj3Tlcn.js → p-C7nQNUsO.js} +2 -2
- package/dist/siemens-ix/{p-CAj3Tlcn.js.map → p-C7nQNUsO.js.map} +1 -1
- package/dist/siemens-ix/{p-5iwF1M9X.js → p-DaswuiGO.js} +2 -2
- package/dist/siemens-ix/{p-5iwF1M9X.js.map → p-DaswuiGO.js.map} +1 -1
- package/dist/siemens-ix/{p-3b7573d6.entry.js → p-a4225101.entry.js} +2 -2
- package/dist/siemens-ix/{p-1c83cb5f.entry.js → p-b27a9744.entry.js} +2 -2
- package/dist/siemens-ix/{p-3f13b14e.entry.js → p-ba9ed3d1.entry.js} +2 -2
- package/dist/siemens-ix/{p-10f2a239.entry.js → p-c15e64a8.entry.js} +2 -2
- package/dist/siemens-ix/{p-7364534a.entry.js → p-c43b201b.entry.js} +2 -2
- package/dist/siemens-ix/{p-84df2a86.entry.js → p-d2c18c15.entry.js} +2 -2
- package/dist/siemens-ix/p-d2c18c15.entry.js.map +1 -0
- package/dist/siemens-ix/{p-5d6f43fd.entry.js → p-f119c105.entry.js} +2 -2
- package/dist/siemens-ix/{p-6445a54f.entry.js → p-fc73c8cc.entry.js} +2 -2
- package/dist/siemens-ix/siemens-ix.esm.js +1 -1
- package/dist/types/components/time-picker/time-picker.d.ts +2 -1
- package/dist/types/components/utils/input/validation.d.ts +1 -0
- package/dist/types/components/utils/modal/index.d.ts +1 -1
- package/dist/types/components/utils/modal/loading.d.ts +4 -0
- package/hydrate/index.js +48 -31
- package/hydrate/index.mjs +48 -31
- package/package.json +1 -1
- package/components/p-DyGPjxFm.js.map +0 -1
- package/components/p-kJlC6ZD0.js.map +0 -1
- package/components/p-xHo-3QVy.js.map +0 -1
- package/dist/siemens-ix/p-3751c675.entry.js +0 -2
- package/dist/siemens-ix/p-84df2a86.entry.js.map +0 -1
- package/dist/siemens-ix/p-dd16efd4.entry.js +0 -2
- package/dist/siemens-ix/p-dd16efd4.entry.js.map +0 -1
- package/dist/siemens-ix/p-f05aa76f.entry.js +0 -2
- package/dist/siemens-ix/p-f05aa76f.entry.js.map +0 -1
- /package/dist/siemens-ix/{p-086d31e7.entry.js.map → p-26c629c3.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-51ae739e.entry.js.map → p-33b3ed5b.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-7f90eeef.entry.js.map → p-4431f891.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-620158aa.entry.js.map → p-4e77d861.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-ebef3d52.entry.js.map → p-79537728.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-3b7573d6.entry.js.map → p-a4225101.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-1c83cb5f.entry.js.map → p-b27a9744.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-3f13b14e.entry.js.map → p-ba9ed3d1.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-10f2a239.entry.js.map → p-c15e64a8.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-7364534a.entry.js.map → p-c43b201b.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-5d6f43fd.entry.js.map → p-f119c105.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-6445a54f.entry.js.map → p-fc73c8cc.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-input.js","sourceRoot":"","sources":["../../../src/components/date-input/date-input.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { iconCalendar } from '@siemens/ix-icons/icons';\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { DateTime } from 'luxon';\nimport { SlotEnd, SlotStart } from '../input/input.fc';\nimport {\n DisposableChangesAndVisibilityObservers,\n addDisposableChangesAndVisibilityObservers,\n adjustPaddingForStartAndEnd,\n handleSubmitOnEnterKeydown,\n} from '../input/input.util';\nimport {\n ClassMutationObserver,\n HookValidationLifecycle,\n IxInputFieldComponent,\n ValidationResults,\n createClassMutationObserver,\n} from '../utils/input';\nimport { makeRef } from '../utils/make-ref';\nimport type { DateInputValidityState } from './date-input.types';\nimport {\n closeDropdown as closeDropdownUtil,\n createValidityState,\n handleIconClick,\n openDropdown as openDropdownUtil,\n} from '../utils/input/picker-input.util';\n\n/**\n * @form-ready\n *\n * @slot start - Element will be displayed at the start of the input\n * @slot end - Element will be displayed at the end of the input\n */\n@Component({\n tag: 'ix-date-input',\n styleUrl: 'date-input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class DateInput implements IxInputFieldComponent<string | undefined> {\n @Element() hostElement!: HTMLIxDateInputElement;\n @AttachInternals() formInternals!: ElementInternals;\n\n /**\n * Name of the input element\n */\n @Prop({ reflect: true }) name?: string;\n\n /**\n * Placeholder of the input element\n */\n @Prop({ reflect: true }) placeholder?: string;\n\n /**\n * Value of the input element\n */\n @Prop({ reflect: true, mutable: true }) value?: string = '';\n\n @Watch('value') watchValuePropHandler(newValue: string) {\n this.onInput(newValue);\n }\n\n /**\n * The earliest date that can be selected by the date input/picker.\n * If not set there will be no restriction.\n */\n @Prop() minDate = '';\n\n /**\n * The latest date that can be selected by the date input/picker.\n * If not set there will be no restriction.\n */\n @Prop() maxDate = '';\n\n /**\n * Locale identifier (e.g. 'en' or 'de').\n * The locale is used to translate the labels for weekdays and months.\n * It also determines the default order of weekdays based on the locale's conventions.\n * When the locale changes, the weekday labels are rotated according to the `weekStartIndex`.\n * It does not affect the values returned by methods and events.\n */\n @Prop() locale?: string;\n\n /**\n * Date format string.\n * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.\n */\n @Prop() format: string = 'yyyy/LL/dd';\n\n /**\n * Required attribute\n */\n @Prop() required?: boolean;\n\n /**\n * Helper text below the input field\n */\n @Prop() helperText?: string;\n\n /**\n * Label of the input field\n */\n @Prop() label?: string;\n\n /**\n * ARIA label for the calendar icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelCalendarButton?: string;\n\n /**\n * Error text below the input field\n */\n @Prop({ reflect: true }) invalidText?: string;\n\n /**\n * Readonly attribute\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Disabled attribute\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Info text below the input field\n */\n @Prop() infoText?: string;\n\n /**\n * Warning text below the input field\n */\n @Prop() warningText?: string;\n\n /**\n * Valid text below the input field\n */\n @Prop() validText?: string;\n\n /**\n * Show text as tooltip\n */\n @Prop() showTextAsTooltip?: boolean;\n\n /**\n * I18n string for the error message when the date is not parsable\n */\n @Prop({ attribute: 'i18n-error-date-unparsable' }) i18nErrorDateUnparsable =\n 'Date is not valid';\n\n /**\n * Shows week numbers displayed on the left side of the date picker\n *\n * @since 3.0.0\n */\n @Prop() showWeekNumbers = false;\n\n /**\n * The index of which day to start the week on, based on the Locale#weekdays array.\n * E.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.\n */\n @Prop() weekStartIndex = 0;\n\n /**\n * ARIA label for the previous month icon button\n * Will be set as aria-label on the nested HTML button element\n */\n @Prop() ariaLabelPreviousMonthButton?: string;\n\n /**\n * ARIA label for the next month icon button\n * Will be set as aria-label on the nested HTML button element\n */\n @Prop() ariaLabelNextMonthButton?: string;\n\n /**\n * If false, pressing Enter will submit the form (if inside a form).\n * Set to true to suppress submit on Enter.\n */\n @Prop({ reflect: true }) suppressSubmitOnEnter: boolean = false;\n\n /**\n * Text alignment within the date input. 'start' aligns the text to the start of the input, 'end' aligns the text to the end of the input.\n */\n @Prop() textAlignment: 'start' | 'end' = 'start';\n\n /**\n * Input change event.\n */\n @Event({ cancelable: false }) valueChange!: EventEmitter<string | undefined>;\n\n /**\n * Validation state change event.\n */\n @Event() validityStateChange!: EventEmitter<DateInputValidityState>;\n\n /** @internal */\n @Event() ixFocus!: EventEmitter<void>;\n\n /** @internal */\n @Event() ixBlur!: EventEmitter<void>;\n\n @State() show = false;\n @State() from?: string | null = null;\n @State() isInputInvalid = false;\n @State() isInvalid = false;\n @State() isValid = false;\n @State() isInfo = false;\n @State() isWarning = false;\n @State() focus = false;\n\n private readonly slotStartRef = makeRef<HTMLDivElement>();\n private readonly slotEndRef = makeRef<HTMLDivElement>();\n\n private readonly datepickerRef = makeRef<HTMLIxDatePickerElement>();\n\n private readonly inputElementRef = makeRef<HTMLInputElement>();\n private readonly dropdownElementRef = makeRef<HTMLIxDropdownElement>();\n private classObserver?: ClassMutationObserver;\n private invalidReason?: string;\n private touched = false;\n\n private disposableChangesAndVisibilityObservers?: DisposableChangesAndVisibilityObservers;\n\n updateFormInternalValue(value: string | undefined): void {\n if (value) {\n this.formInternals.setFormValue(value);\n } else {\n this.formInternals.setFormValue(null);\n }\n this.value = value;\n }\n\n connectedCallback(): void {\n this.classObserver = createClassMutationObserver(this.hostElement, () =>\n this.checkClassList()\n );\n\n this.disposableChangesAndVisibilityObservers =\n addDisposableChangesAndVisibilityObservers(\n this.hostElement,\n this.updatePaddings.bind(this)\n );\n }\n\n componentWillLoad(): void {\n this.onInput(this.value);\n if (this.isInputInvalid) {\n this.from = null;\n } else {\n this.watchValue();\n }\n\n this.checkClassList();\n this.updateFormInternalValue(this.value);\n }\n\n private updatePaddings() {\n adjustPaddingForStartAndEnd(\n this.slotStartRef.current,\n this.slotEndRef.current,\n this.inputElementRef.current\n );\n }\n\n disconnectedCallback(): void {\n this.classObserver?.destroy();\n this.disposableChangesAndVisibilityObservers?.();\n }\n\n @Watch('value')\n watchValue() {\n this.from = this.value;\n }\n\n /** @internal */\n @Method()\n hasValidValue(): Promise<boolean> {\n return Promise.resolve(!!this.value);\n }\n\n /** @internal */\n @Method()\n getAssociatedFormElement(): Promise<HTMLFormElement | null> {\n return Promise.resolve(this.formInternals.form);\n }\n\n async onInput(value: string | undefined) {\n this.value = value;\n if (!value) {\n this.valueChange.emit(value);\n return;\n }\n\n if (!this.format) {\n return;\n }\n\n const date = DateTime.fromFormat(value, this.format);\n const minDate = DateTime.fromFormat(this.minDate, this.format);\n const maxDate = DateTime.fromFormat(this.maxDate, this.format);\n\n this.isInputInvalid = !date.isValid || date < minDate || date > maxDate;\n\n if (this.isInputInvalid) {\n this.invalidReason = date.invalidReason || undefined;\n this.from = undefined;\n } else {\n this.updateFormInternalValue(value);\n this.closeDropdown();\n }\n\n this.valueChange.emit(value);\n }\n\n onCalenderClick(event: Event) {\n handleIconClick(\n event,\n this.show,\n () => this.openDropdown(),\n this.inputElementRef\n );\n }\n\n async openDropdown() {\n return openDropdownUtil(this.dropdownElementRef);\n }\n\n async closeDropdown() {\n return closeDropdownUtil(this.dropdownElementRef);\n }\n\n private checkClassList() {\n this.isInvalid = this.hostElement.classList.contains('ix-invalid');\n }\n\n private handleInputKeyDown(event: KeyboardEvent) {\n handleSubmitOnEnterKeydown(\n event,\n this.suppressSubmitOnEnter,\n this.formInternals.form\n );\n }\n\n private renderInput() {\n return (\n <div class=\"input-wrapper\">\n <SlotStart\n slotStartRef={this.slotStartRef}\n onSlotChange={() => this.updatePaddings()}\n ></SlotStart>\n <input\n autoComplete=\"off\"\n class={{\n 'is-invalid': this.isInputInvalid,\n }}\n disabled={this.disabled}\n readOnly={this.readonly}\n readonly={this.readonly}\n required={this.required}\n ref={this.inputElementRef}\n type=\"text\"\n value={this.value ?? ''}\n placeholder={this.placeholder}\n name={this.name}\n onInput={(event) => {\n const target = event.target as HTMLInputElement;\n this.onInput(target.value);\n }}\n onClick={(event) => {\n if (this.show) {\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onFocus={async () => {\n this.openDropdown();\n this.ixFocus.emit();\n }}\n onBlur={() => {\n this.ixBlur.emit();\n this.touched = true;\n }}\n onKeyDown={(event) => this.handleInputKeyDown(event)}\n style={{\n textAlign: this.textAlignment,\n }}\n ></input>\n <SlotEnd\n slotEndRef={this.slotEndRef}\n onSlotChange={() => this.updatePaddings()}\n >\n <ix-icon-button\n data-testid=\"open-calendar\"\n class={{ 'calendar-hidden': this.disabled || this.readonly }}\n variant=\"subtle-tertiary\"\n icon={iconCalendar}\n onClick={(event) => this.onCalenderClick(event)}\n aria-label={this.ariaLabelCalendarButton}\n ></ix-icon-button>\n </SlotEnd>\n </div>\n );\n }\n\n @HookValidationLifecycle()\n hookValidationLifecycle({\n isInfo,\n isInvalid,\n isInvalidByRequired,\n isValid,\n isWarning,\n }: ValidationResults) {\n this.isInvalid = isInvalid || isInvalidByRequired || this.isInputInvalid;\n this.isInfo = isInfo;\n this.isValid = isValid;\n this.isWarning = isWarning;\n }\n\n @Watch('isInputInvalid')\n async onInputValidationChange() {\n const state = await this.getValidityState();\n this.validityStateChange.emit({\n patternMismatch: state.patternMismatch,\n invalidReason: this.invalidReason,\n });\n }\n\n /** @internal */\n @Method()\n getValidityState(): Promise<ValidityState> {\n return Promise.resolve(\n createValidityState(this.isInputInvalid, !!this.required, this.value)\n );\n }\n\n /**\n * Get the native input element\n */\n @Method()\n getNativeInputElement(): Promise<HTMLInputElement> {\n return this.inputElementRef.waitForCurrent();\n }\n\n /**\n * Focuses the input field\n */\n @Method()\n async focusInput(): Promise<void> {\n return (await this.getNativeInputElement()).focus();\n }\n\n /**\n * Returns whether the text field has been touched.\n * @internal\n */\n @Method()\n isTouched(): Promise<boolean> {\n return Promise.resolve(this.touched);\n }\n\n render() {\n const invalidText = this.isInputInvalid\n ? this.i18nErrorDateUnparsable\n : this.invalidText;\n\n return (\n <Host\n class={{\n disabled: this.disabled,\n readonly: this.readonly,\n }}\n >\n <ix-field-wrapper\n label={this.label}\n helperText={this.helperText}\n isInvalid={this.isInvalid}\n invalidText={invalidText}\n infoText={this.infoText}\n isInfo={this.isInfo}\n isWarning={this.isWarning}\n warningText={this.warningText}\n isValid={this.isValid}\n validText={this.validText}\n showTextAsTooltip={this.showTextAsTooltip}\n required={this.required}\n controlRef={this.inputElementRef}\n >\n {this.renderInput()}\n </ix-field-wrapper>\n <ix-dropdown\n data-testid=\"date-dropdown\"\n trigger={this.inputElementRef.waitForCurrent()}\n ref={this.dropdownElementRef}\n closeBehavior=\"outside\"\n suppressOverflowBehavior={true}\n show={this.show}\n onShowChanged={(event) => {\n this.show = event.detail;\n }}\n >\n <ix-date-picker\n ref={this.datepickerRef}\n format={this.format}\n locale={this.locale}\n singleSelection\n from={this.from ?? ''}\n minDate={this.minDate}\n maxDate={this.maxDate}\n onDateChange={(event) => {\n const { from } = event.detail;\n this.onInput(from);\n }}\n showWeekNumbers={this.showWeekNumbers}\n ariaLabelNextMonthButton={this.ariaLabelNextMonthButton}\n ariaLabelPreviousMonthButton={this.ariaLabelPreviousMonthButton}\n embedded\n ></ix-date-picker>\n </ix-dropdown>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"date-input.js","sourceRoot":"","sources":["../../../src/components/date-input/date-input.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { iconCalendar } from '@siemens/ix-icons/icons';\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { DateTime } from 'luxon';\nimport { SlotEnd, SlotStart } from '../input/input.fc';\nimport {\n DisposableChangesAndVisibilityObservers,\n addDisposableChangesAndVisibilityObservers,\n adjustPaddingForStartAndEnd,\n handleSubmitOnEnterKeydown,\n} from '../input/input.util';\nimport {\n ClassMutationObserver,\n HookValidationLifecycle,\n IxInputFieldComponent,\n ValidationResults,\n createClassMutationObserver,\n getValidationText,\n} from '../utils/input';\nimport { makeRef } from '../utils/make-ref';\nimport type { DateInputValidityState } from './date-input.types';\nimport {\n closeDropdown as closeDropdownUtil,\n createValidityState,\n handleIconClick,\n openDropdown as openDropdownUtil,\n} from '../utils/input/picker-input.util';\n\n/**\n * @form-ready\n *\n * @slot start - Element will be displayed at the start of the input\n * @slot end - Element will be displayed at the end of the input\n */\n@Component({\n tag: 'ix-date-input',\n styleUrl: 'date-input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class DateInput implements IxInputFieldComponent<string | undefined> {\n @Element() hostElement!: HTMLIxDateInputElement;\n @AttachInternals() formInternals!: ElementInternals;\n\n /**\n * Name of the input element\n */\n @Prop({ reflect: true }) name?: string;\n\n /**\n * Placeholder of the input element\n */\n @Prop({ reflect: true }) placeholder?: string;\n\n /**\n * Value of the input element\n */\n @Prop({ reflect: true, mutable: true }) value?: string = '';\n\n @Watch('value') watchValuePropHandler(newValue: string) {\n this.onInput(newValue);\n }\n\n /**\n * The earliest date that can be selected by the date input/picker.\n * If not set there will be no restriction.\n */\n @Prop() minDate = '';\n\n /**\n * The latest date that can be selected by the date input/picker.\n * If not set there will be no restriction.\n */\n @Prop() maxDate = '';\n\n /**\n * Locale identifier (e.g. 'en' or 'de').\n * The locale is used to translate the labels for weekdays and months.\n * It also determines the default order of weekdays based on the locale's conventions.\n * When the locale changes, the weekday labels are rotated according to the `weekStartIndex`.\n * It does not affect the values returned by methods and events.\n */\n @Prop() locale?: string;\n\n /**\n * Date format string.\n * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.\n */\n @Prop() format: string = 'yyyy/LL/dd';\n\n /**\n * Required attribute\n */\n @Prop() required?: boolean;\n\n /**\n * Helper text below the input field\n */\n @Prop() helperText?: string;\n\n /**\n * Label of the input field\n */\n @Prop() label?: string;\n\n /**\n * ARIA label for the calendar icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelCalendarButton?: string;\n\n /**\n * Error text below the input field\n */\n @Prop({ reflect: true }) invalidText?: string;\n\n /**\n * Readonly attribute\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Disabled attribute\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Info text below the input field\n */\n @Prop() infoText?: string;\n\n /**\n * Warning text below the input field\n */\n @Prop() warningText?: string;\n\n /**\n * Valid text below the input field\n */\n @Prop() validText?: string;\n\n /**\n * Show text as tooltip\n */\n @Prop() showTextAsTooltip?: boolean;\n\n /**\n * I18n string for the error message when the date is not parsable\n */\n @Prop({ attribute: 'i18n-error-date-unparsable' }) i18nErrorDateUnparsable =\n 'Date is not valid';\n\n /**\n * Shows week numbers displayed on the left side of the date picker\n *\n * @since 3.0.0\n */\n @Prop() showWeekNumbers = false;\n\n /**\n * The index of which day to start the week on, based on the Locale#weekdays array.\n * E.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.\n */\n @Prop() weekStartIndex = 0;\n\n /**\n * ARIA label for the previous month icon button\n * Will be set as aria-label on the nested HTML button element\n */\n @Prop() ariaLabelPreviousMonthButton?: string;\n\n /**\n * ARIA label for the next month icon button\n * Will be set as aria-label on the nested HTML button element\n */\n @Prop() ariaLabelNextMonthButton?: string;\n\n /**\n * If false, pressing Enter will submit the form (if inside a form).\n * Set to true to suppress submit on Enter.\n */\n @Prop({ reflect: true }) suppressSubmitOnEnter: boolean = false;\n\n /**\n * Text alignment within the date input. 'start' aligns the text to the start of the input, 'end' aligns the text to the end of the input.\n */\n @Prop() textAlignment: 'start' | 'end' = 'start';\n\n /**\n * Input change event.\n */\n @Event({ cancelable: false }) valueChange!: EventEmitter<string | undefined>;\n\n /**\n * Validation state change event.\n */\n @Event() validityStateChange!: EventEmitter<DateInputValidityState>;\n\n /** @internal */\n @Event() ixFocus!: EventEmitter<void>;\n\n /** @internal */\n @Event() ixBlur!: EventEmitter<void>;\n\n @State() show = false;\n @State() from?: string | null = null;\n @State() isInputInvalid = false;\n @State() isInvalid = false;\n @State() isValid = false;\n @State() isInfo = false;\n @State() isWarning = false;\n @State() focus = false;\n\n private readonly slotStartRef = makeRef<HTMLDivElement>();\n private readonly slotEndRef = makeRef<HTMLDivElement>();\n\n private readonly datepickerRef = makeRef<HTMLIxDatePickerElement>();\n\n private readonly inputElementRef = makeRef<HTMLInputElement>();\n private readonly dropdownElementRef = makeRef<HTMLIxDropdownElement>();\n private classObserver?: ClassMutationObserver;\n private invalidReason?: string;\n private touched = false;\n\n private disposableChangesAndVisibilityObservers?: DisposableChangesAndVisibilityObservers;\n\n updateFormInternalValue(value: string | undefined): void {\n if (value) {\n this.formInternals.setFormValue(value);\n } else {\n this.formInternals.setFormValue(null);\n }\n this.value = value;\n }\n\n connectedCallback(): void {\n this.classObserver = createClassMutationObserver(this.hostElement, () =>\n this.checkClassList()\n );\n\n this.disposableChangesAndVisibilityObservers =\n addDisposableChangesAndVisibilityObservers(\n this.hostElement,\n this.updatePaddings.bind(this)\n );\n }\n\n componentWillLoad(): void {\n this.onInput(this.value);\n if (this.isInputInvalid) {\n this.from = null;\n } else {\n this.watchValue();\n }\n\n this.checkClassList();\n this.updateFormInternalValue(this.value);\n }\n\n private updatePaddings() {\n adjustPaddingForStartAndEnd(\n this.slotStartRef.current,\n this.slotEndRef.current,\n this.inputElementRef.current\n );\n }\n\n disconnectedCallback(): void {\n this.classObserver?.destroy();\n this.disposableChangesAndVisibilityObservers?.();\n }\n\n @Watch('value')\n watchValue() {\n this.from = this.value;\n }\n\n /** @internal */\n @Method()\n hasValidValue(): Promise<boolean> {\n return Promise.resolve(!!this.value);\n }\n\n /** @internal */\n @Method()\n getAssociatedFormElement(): Promise<HTMLFormElement | null> {\n return Promise.resolve(this.formInternals.form);\n }\n\n async onInput(value: string | undefined) {\n this.value = value;\n if (!value) {\n this.valueChange.emit(value);\n return;\n }\n\n if (!this.format) {\n return;\n }\n\n const date = DateTime.fromFormat(value, this.format);\n const minDate = DateTime.fromFormat(this.minDate, this.format);\n const maxDate = DateTime.fromFormat(this.maxDate, this.format);\n\n this.isInputInvalid = !date.isValid || date < minDate || date > maxDate;\n\n if (this.isInputInvalid) {\n this.invalidReason = date.invalidReason || undefined;\n this.from = undefined;\n } else {\n this.updateFormInternalValue(value);\n this.closeDropdown();\n }\n\n this.valueChange.emit(value);\n }\n\n onCalenderClick(event: Event) {\n handleIconClick(\n event,\n this.show,\n () => this.openDropdown(),\n this.inputElementRef\n );\n }\n\n async openDropdown() {\n return openDropdownUtil(this.dropdownElementRef);\n }\n\n async closeDropdown() {\n return closeDropdownUtil(this.dropdownElementRef);\n }\n\n private checkClassList() {\n this.isInvalid = this.hostElement.classList.contains('ix-invalid');\n }\n\n private handleInputKeyDown(event: KeyboardEvent) {\n handleSubmitOnEnterKeydown(\n event,\n this.suppressSubmitOnEnter,\n this.formInternals.form\n );\n }\n\n private renderInput() {\n return (\n <div class=\"input-wrapper\">\n <SlotStart\n slotStartRef={this.slotStartRef}\n onSlotChange={() => this.updatePaddings()}\n ></SlotStart>\n <input\n autoComplete=\"off\"\n class={{\n 'is-invalid': this.isInputInvalid,\n }}\n disabled={this.disabled}\n readOnly={this.readonly}\n readonly={this.readonly}\n required={this.required}\n ref={this.inputElementRef}\n type=\"text\"\n value={this.value ?? ''}\n placeholder={this.placeholder}\n name={this.name}\n onInput={(event) => {\n const target = event.target as HTMLInputElement;\n this.onInput(target.value);\n }}\n onClick={(event) => {\n if (this.show) {\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onFocus={async () => {\n this.openDropdown();\n this.ixFocus.emit();\n }}\n onBlur={() => {\n this.ixBlur.emit();\n this.touched = true;\n }}\n onKeyDown={(event) => this.handleInputKeyDown(event)}\n style={{\n textAlign: this.textAlignment,\n }}\n ></input>\n <SlotEnd\n slotEndRef={this.slotEndRef}\n onSlotChange={() => this.updatePaddings()}\n >\n <ix-icon-button\n data-testid=\"open-calendar\"\n class={{ 'calendar-hidden': this.disabled || this.readonly }}\n variant=\"subtle-tertiary\"\n icon={iconCalendar}\n onClick={(event) => this.onCalenderClick(event)}\n aria-label={this.ariaLabelCalendarButton}\n ></ix-icon-button>\n </SlotEnd>\n </div>\n );\n }\n\n @HookValidationLifecycle()\n hookValidationLifecycle({\n isInfo,\n isInvalid,\n isInvalidByRequired,\n isValid,\n isWarning,\n }: ValidationResults) {\n this.isInvalid = isInvalid || isInvalidByRequired || this.isInputInvalid;\n this.isInfo = isInfo;\n this.isValid = isValid;\n this.isWarning = isWarning;\n }\n\n @Watch('isInputInvalid')\n async onInputValidationChange() {\n const state = await this.getValidityState();\n this.validityStateChange.emit({\n patternMismatch: state.patternMismatch,\n invalidReason: this.invalidReason,\n });\n }\n\n /** @internal */\n @Method()\n getValidityState(): Promise<ValidityState> {\n return Promise.resolve(\n createValidityState(this.isInputInvalid, !!this.required, this.value)\n );\n }\n\n /**\n * Get the native input element\n */\n @Method()\n getNativeInputElement(): Promise<HTMLInputElement> {\n return this.inputElementRef.waitForCurrent();\n }\n\n /**\n * Focuses the input field\n */\n @Method()\n async focusInput(): Promise<void> {\n return (await this.getNativeInputElement()).focus();\n }\n\n /**\n * Returns whether the text field has been touched.\n * @internal\n */\n @Method()\n isTouched(): Promise<boolean> {\n return Promise.resolve(this.touched);\n }\n\n render() {\n const invalidText = getValidationText(\n this.isInputInvalid,\n this.invalidText,\n this.i18nErrorDateUnparsable\n );\n\n return (\n <Host\n class={{\n disabled: this.disabled,\n readonly: this.readonly,\n }}\n >\n <ix-field-wrapper\n label={this.label}\n helperText={this.helperText}\n isInvalid={this.isInvalid}\n invalidText={invalidText}\n infoText={this.infoText}\n isInfo={this.isInfo}\n isWarning={this.isWarning}\n warningText={this.warningText}\n isValid={this.isValid}\n validText={this.validText}\n showTextAsTooltip={this.showTextAsTooltip}\n required={this.required}\n controlRef={this.inputElementRef}\n >\n {this.renderInput()}\n </ix-field-wrapper>\n <ix-dropdown\n data-testid=\"date-dropdown\"\n trigger={this.inputElementRef.waitForCurrent()}\n ref={this.dropdownElementRef}\n closeBehavior=\"outside\"\n suppressOverflowBehavior={true}\n show={this.show}\n onShowChanged={(event) => {\n this.show = event.detail;\n }}\n >\n <ix-date-picker\n ref={this.datepickerRef}\n format={this.format}\n locale={this.locale}\n singleSelection\n from={this.from ?? ''}\n minDate={this.minDate}\n maxDate={this.maxDate}\n onDateChange={(event) => {\n const { from } = event.detail;\n this.onInput(from);\n }}\n showWeekNumbers={this.showWeekNumbers}\n ariaLabelNextMonthButton={this.ariaLabelNextMonthButton}\n ariaLabelPreviousMonthButton={this.ariaLabelPreviousMonthButton}\n embedded\n ></ix-date-picker>\n </ix-dropdown>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
z-index: 1;
|
|
168
168
|
height: 16px;
|
|
169
169
|
width: auto;
|
|
170
|
-
background-color: var(--theme-
|
|
170
|
+
background-color: var(--theme-color-1);
|
|
171
171
|
border: 1px solid var(--theme-tab-pill--border-color);
|
|
172
172
|
border-radius: 100px;
|
|
173
173
|
bottom: 6px;
|
|
@@ -21,7 +21,7 @@ import { Host, h, } from "@stencil/core";
|
|
|
21
21
|
import { DateTime } from "luxon";
|
|
22
22
|
import { SlotEnd, SlotStart } from "../input/input.fc";
|
|
23
23
|
import { addDisposableChangesAndVisibilityObservers, adjustPaddingForStartAndEnd, handleSubmitOnEnterKeydown, } from "../input/input.util";
|
|
24
|
-
import { HookValidationLifecycle, createClassMutationObserver, } from "../utils/input";
|
|
24
|
+
import { HookValidationLifecycle, createClassMutationObserver, getValidationText, } from "../utils/input";
|
|
25
25
|
import { makeRef } from "../utils/make-ref";
|
|
26
26
|
import { closeDropdown as closeDropdownUtil, createValidityState, handleIconClick, openDropdown as openDropdownUtil, } from "../utils/input/picker-input.util";
|
|
27
27
|
/**
|
|
@@ -272,15 +272,13 @@ export class TimeInput {
|
|
|
272
272
|
}
|
|
273
273
|
render() {
|
|
274
274
|
var _a;
|
|
275
|
-
const invalidText = this.isInputInvalid
|
|
276
|
-
|
|
277
|
-
: this.invalidText;
|
|
278
|
-
return (h(Host, { key: '2d781932da61679d4e51c81f43078daed57c74bd', class: {
|
|
275
|
+
const invalidText = getValidationText(this.isInputInvalid, this.invalidText, this.i18nErrorTimeUnparsable);
|
|
276
|
+
return (h(Host, { key: 'aff9b793fae69ba2eb713ae3b1bd2222b548fb25', class: {
|
|
279
277
|
disabled: this.disabled,
|
|
280
278
|
readonly: this.readonly,
|
|
281
|
-
} }, h("ix-field-wrapper", { key: '
|
|
279
|
+
} }, h("ix-field-wrapper", { key: '5e927fa4c2eeb94dba26b1f4ad1879a6a80ed823', label: this.label, helperText: this.helperText, isInvalid: this.isInvalid, invalidText: invalidText, infoText: this.infoText, isInfo: this.isInfo, isWarning: this.isWarning, warningText: this.warningText, isValid: this.isValid, validText: this.validText, showTextAsTooltip: this.showTextAsTooltip, required: this.required, controlRef: this.inputElementRef }, this.renderInput()), h("ix-dropdown", { key: '0b48b3c8574b0aafe42db74c990f1d269037bd82', "data-testid": "time-dropdown", trigger: this.inputElementRef.waitForCurrent(), ref: this.dropdownElementRef, closeBehavior: "outside", suppressOverflowBehavior: true, show: this.show, onShowChanged: (event) => {
|
|
282
280
|
this.show = event.detail;
|
|
283
|
-
} }, h("ix-time-picker", { key: '
|
|
281
|
+
} }, h("ix-time-picker", { key: 'b3b5536c702fc45c9fc5f323282149c2c2ccb542', ref: this.timePickerRef, format: this.format, time: (_a = this.time) !== null && _a !== void 0 ? _a : '', hourInterval: this.hourInterval, minuteInterval: this.minuteInterval, secondInterval: this.secondInterval, millisecondInterval: this.millisecondInterval, embedded: true, hideHeader: this.hideHeader, i18nConfirmTime: this.i18nSelectTime, i18nHeader: this.i18nTime, i18nHourColumnHeader: this.i18nHourColumnHeader, i18nSecondColumnHeader: this.i18nSecondColumnHeader, i18nMinuteColumnHeader: this.i18nMinuteColumnHeader, i18nMillisecondColumnHeader: this.i18nMillisecondColumnHeader, onTimeSelect: (event) => {
|
|
284
282
|
this.onInput(event.detail);
|
|
285
283
|
this.show = false;
|
|
286
284
|
} }))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-input.js","sourceRoot":"","sources":["../../../src/components/time-input/time-input.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { iconClock } from '@siemens/ix-icons/icons';\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { DateTime } from 'luxon';\nimport { SlotEnd, SlotStart } from '../input/input.fc';\nimport {\n DisposableChangesAndVisibilityObservers,\n addDisposableChangesAndVisibilityObservers,\n adjustPaddingForStartAndEnd,\n handleSubmitOnEnterKeydown,\n} from '../input/input.util';\nimport {\n ClassMutationObserver,\n HookValidationLifecycle,\n IxInputFieldComponent,\n ValidationResults,\n createClassMutationObserver,\n} from '../utils/input';\nimport { makeRef } from '../utils/make-ref';\nimport { IxTimePickerCustomEvent } from '../../components';\nimport type { TimeInputValidityState } from './time-input.types';\nimport {\n closeDropdown as closeDropdownUtil,\n createValidityState,\n handleIconClick,\n openDropdown as openDropdownUtil,\n} from '../utils/input/picker-input.util';\n\n/**\n * @since 3.2.0\n * @form-ready\n * @slot start - Element will be displayed at the start of the input\n * @slot end - Element will be displayed at the end of the input\n */\n@Component({\n tag: 'ix-time-input',\n styleUrl: 'time-input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class TimeInput implements IxInputFieldComponent<string> {\n @Element() hostElement!: HTMLIxTimeInputElement;\n @AttachInternals() formInternals!: ElementInternals;\n\n /**\n * Name of the input element\n */\n @Prop({ reflect: true }) name?: string;\n\n /**\n * Placeholder of the input element\n */\n @Prop({ reflect: true }) placeholder?: string;\n\n /**\n * Value of the input element\n */\n @Prop({ reflect: true, mutable: true }) value: string = '';\n\n @Watch('value') watchValuePropHandler(newValue: string) {\n this.onInput(newValue);\n }\n\n /**\n * Format of time string\n * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.\n */\n @Prop() format: string = 'TT';\n\n /**\n * Required attribute\n */\n @Prop() required?: boolean;\n\n /**\n * Helper text below the input field\n */\n @Prop() helperText?: string;\n\n /**\n * Label of the input field\n */\n @Prop() label?: string;\n\n /**\n * Error text below the input field\n */\n @Prop({ reflect: true }) invalidText?: string;\n\n /**\n * Readonly attribute\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Disabled attribute\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Info text below the input field\n */\n @Prop() infoText?: string;\n\n /**\n * Warning text below the input field\n */\n @Prop() warningText?: string;\n\n /**\n * Valid text below the input field\n */\n @Prop() validText?: string;\n\n /**\n * Show text as tooltip\n */\n @Prop() showTextAsTooltip?: boolean;\n\n /**\n * I18n string for the error message when the time is not parsable\n */\n @Prop({ attribute: 'i18n-error-time-unparsable' }) i18nErrorTimeUnparsable =\n 'Time is not valid';\n\n /**\n * Interval for hour selection\n */\n @Prop() hourInterval: number = 1;\n\n /**\n * Interval for minute selection\n */\n @Prop() minuteInterval: number = 1;\n\n /**\n * Interval for second selection\n */\n @Prop() secondInterval: number = 1;\n\n /**\n * Interval for millisecond selection\n */\n @Prop() millisecondInterval: number = 100;\n\n /**\n * Text of time-picker time select button\n */\n @Prop({ attribute: 'i18n-select-time' }) i18nSelectTime: string = 'Confirm';\n\n /**\n * Text for time-picker top label\n */\n @Prop({ attribute: 'i18n-time' }) i18nTime: string = 'Time';\n\n /**\n * Text for time-picker hour column header\n */\n @Prop({ attribute: 'i18n-hour-column-header' }) i18nHourColumnHeader: string =\n 'hr';\n\n /**\n * Text for time-picker minute column header\n */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Prop({ attribute: 'i18n-minute-column-header' })\n i18nMinuteColumnHeader: string = 'min';\n\n /**\n * Text for time-picker second column header\n */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Prop({ attribute: 'i18n-second-column-header' })\n i18nSecondColumnHeader: string = 'sec';\n\n /**\n * Text for time-picker millisecond column header\n */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Prop({ attribute: 'i18n-millisecond-column-header' })\n i18nMillisecondColumnHeader: string = 'ms';\n\n /**\n * If false, pressing Enter will submit the form (if inside a form).\n * Set to true to suppress submit on Enter.\n */\n @Prop({ reflect: true }) suppressSubmitOnEnter: boolean = false;\n\n /**\n * Hides the header of the picker.\n *\n * @since 4.0.0\n */\n @Prop() hideHeader: boolean = false;\n\n /**\n * Text alignment within the time input. 'start' aligns the text to the start of the input, 'end' aligns the text to the end of the input.\n */\n @Prop() textAlignment: 'start' | 'end' = 'start';\n\n /**\n * Input change event.\n */\n @Event({ cancelable: false }) valueChange!: EventEmitter<string>;\n\n /**\n * Validation state change event.\n */\n @Event() validityStateChange!: EventEmitter<TimeInputValidityState>;\n\n /** @internal */\n @Event() ixFocus!: EventEmitter<void>;\n\n /** @internal */\n @Event() ixBlur!: EventEmitter<void>;\n\n @State() show = false;\n @State() time: string | null = null;\n @State() isInputInvalid = false;\n @State() isInvalid = false;\n @State() isValid = false;\n @State() isInfo = false;\n @State() isWarning = false;\n @State() focus = false;\n\n private readonly slotStartRef = makeRef<HTMLDivElement>();\n private readonly slotEndRef = makeRef<HTMLDivElement>();\n\n private readonly timePickerRef = makeRef<HTMLIxTimePickerElement>();\n\n private readonly inputElementRef = makeRef<HTMLInputElement>();\n private readonly dropdownElementRef = makeRef<HTMLIxDropdownElement>();\n private classObserver?: ClassMutationObserver;\n private invalidReason?: string;\n private touched = false;\n\n private disposableChangesAndVisibilityObservers?: DisposableChangesAndVisibilityObservers;\n\n private handleInputKeyDown(event: KeyboardEvent) {\n handleSubmitOnEnterKeydown(\n event,\n this.suppressSubmitOnEnter,\n this.formInternals.form\n );\n }\n\n updateFormInternalValue(value: string): void {\n this.formInternals.setFormValue(value);\n this.value = value;\n }\n\n connectedCallback(): void {\n this.classObserver = createClassMutationObserver(this.hostElement, () =>\n this.checkClassList()\n );\n\n this.disposableChangesAndVisibilityObservers =\n addDisposableChangesAndVisibilityObservers(\n this.hostElement,\n this.updatePaddings.bind(this)\n );\n }\n\n componentWillLoad(): void {\n if (!this.value) {\n const now = DateTime.now();\n if (now.isValid) {\n this.value = now.toFormat(this.format);\n }\n }\n\n this.onInput(this.value);\n if (this.isInputInvalid) {\n this.time = null;\n } else {\n this.watchValue();\n }\n\n this.checkClassList();\n this.updateFormInternalValue(this.value);\n }\n\n private updatePaddings() {\n adjustPaddingForStartAndEnd(\n this.slotStartRef.current,\n this.slotEndRef.current,\n this.inputElementRef.current\n );\n }\n\n disconnectedCallback(): void {\n this.classObserver?.destroy();\n this.disposableChangesAndVisibilityObservers?.();\n }\n\n @Watch('value')\n watchValue() {\n this.time = this.value;\n }\n\n /** @internal */\n @Method()\n hasValidValue(): Promise<boolean> {\n return Promise.resolve(!!this.value);\n }\n\n /** @internal */\n @Method()\n getAssociatedFormElement(): Promise<HTMLFormElement | null> {\n return Promise.resolve(this.formInternals.form);\n }\n\n async onInput(value: string) {\n this.value = value;\n if (!value) {\n this.isInputInvalid = false;\n this.updateFormInternalValue(value);\n this.valueChange.emit(value);\n return;\n }\n\n if (!this.format) {\n return;\n }\n\n const time = DateTime.fromFormat(value, this.format);\n if (time.isValid) {\n this.isInputInvalid = false;\n } else {\n this.isInputInvalid = true;\n this.invalidReason = time.invalidReason;\n }\n\n this.updateFormInternalValue(value);\n this.valueChange.emit(value);\n }\n\n onTimeIconClick(event: Event) {\n handleIconClick(\n event,\n this.show,\n () => this.openDropdown(),\n this.inputElementRef\n );\n }\n\n async openDropdown() {\n // keep picker in sync with input\n this.time = this.value;\n\n return openDropdownUtil(this.dropdownElementRef);\n }\n\n async closeDropdown() {\n return closeDropdownUtil(this.dropdownElementRef);\n }\n\n private checkClassList() {\n this.isInvalid = this.hostElement.classList.contains('ix-invalid');\n }\n\n private renderInput() {\n return (\n <div class=\"input-wrapper\">\n <SlotStart\n slotStartRef={this.slotStartRef}\n onSlotChange={() => this.updatePaddings()}\n ></SlotStart>\n <input\n autoComplete=\"off\"\n class={{\n 'is-invalid': this.isInputInvalid,\n }}\n style={{\n textAlign: this.textAlignment,\n }}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n ref={this.inputElementRef}\n type=\"text\"\n value={this.value}\n placeholder={this.placeholder}\n name={this.name}\n onInput={(event) => {\n const target = event.target as HTMLInputElement;\n this.onInput(target.value);\n }}\n onClick={(event) => {\n if (this.show) {\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onFocus={async () => {\n this.openDropdown();\n this.ixFocus.emit();\n }}\n onBlur={() => {\n this.ixBlur.emit();\n this.touched = true;\n }}\n onKeyDown={(event) => this.handleInputKeyDown(event)}\n ></input>\n <SlotEnd\n slotEndRef={this.slotEndRef}\n onSlotChange={() => this.updatePaddings()}\n >\n <ix-icon-button\n data-testid=\"open-time-picker\"\n class={{ 'time-icon-hidden': this.disabled || this.readonly }}\n variant=\"subtle-tertiary\"\n icon={iconClock}\n onClick={(event) => this.onTimeIconClick(event)}\n aria-label=\"Toggle time picker\"\n aria-expanded={this.show}\n ></ix-icon-button>\n </SlotEnd>\n </div>\n );\n }\n\n @HookValidationLifecycle()\n hookValidationLifecycle({\n isInfo,\n isInvalid,\n isInvalidByRequired,\n isValid,\n isWarning,\n }: ValidationResults) {\n this.isInvalid = isInvalid || isInvalidByRequired || this.isInputInvalid;\n this.isInfo = isInfo;\n this.isValid = isValid;\n this.isWarning = isWarning;\n }\n\n @Watch('isInputInvalid')\n async onInputValidationChange() {\n const state = await this.getValidityState();\n this.validityStateChange.emit({\n patternMismatch: state.patternMismatch,\n invalidReason: this.invalidReason,\n });\n }\n\n /** @internal */\n @Method()\n getValidityState(): Promise<ValidityState> {\n return Promise.resolve(\n createValidityState(this.isInputInvalid, !!this.required, this.value)\n );\n }\n\n /**\n * Get the native input element\n */\n @Method()\n getNativeInputElement(): Promise<HTMLInputElement> {\n return this.inputElementRef.waitForCurrent();\n }\n\n /**\n * Focuses the input field\n */\n @Method()\n async focusInput(): Promise<void> {\n return (await this.getNativeInputElement()).focus();\n }\n\n /**\n * Returns whether the text field has been touched.\n * @internal\n */\n @Method()\n isTouched(): Promise<boolean> {\n return Promise.resolve(this.touched);\n }\n\n render() {\n const invalidText = this.isInputInvalid\n ? this.i18nErrorTimeUnparsable\n : this.invalidText;\n\n return (\n <Host\n class={{\n disabled: this.disabled,\n readonly: this.readonly,\n }}\n >\n <ix-field-wrapper\n label={this.label}\n helperText={this.helperText}\n isInvalid={this.isInvalid}\n invalidText={invalidText}\n infoText={this.infoText}\n isInfo={this.isInfo}\n isWarning={this.isWarning}\n warningText={this.warningText}\n isValid={this.isValid}\n validText={this.validText}\n showTextAsTooltip={this.showTextAsTooltip}\n required={this.required}\n controlRef={this.inputElementRef}\n >\n {this.renderInput()}\n </ix-field-wrapper>\n <ix-dropdown\n data-testid=\"time-dropdown\"\n trigger={this.inputElementRef.waitForCurrent()}\n ref={this.dropdownElementRef}\n closeBehavior=\"outside\"\n suppressOverflowBehavior={true}\n show={this.show}\n onShowChanged={(event) => {\n this.show = event.detail;\n }}\n >\n <ix-time-picker\n ref={this.timePickerRef}\n format={this.format}\n time={this.time ?? ''}\n hourInterval={this.hourInterval}\n minuteInterval={this.minuteInterval}\n secondInterval={this.secondInterval}\n millisecondInterval={this.millisecondInterval}\n embedded\n hideHeader={this.hideHeader}\n i18nConfirmTime={this.i18nSelectTime}\n i18nHeader={this.i18nTime}\n i18nHourColumnHeader={this.i18nHourColumnHeader}\n i18nSecondColumnHeader={this.i18nSecondColumnHeader}\n i18nMinuteColumnHeader={this.i18nMinuteColumnHeader}\n i18nMillisecondColumnHeader={this.i18nMillisecondColumnHeader}\n onTimeSelect={(event: IxTimePickerCustomEvent<string>) => {\n this.onInput(event.detail);\n\n this.show = false;\n }}\n ></ix-time-picker>\n </ix-dropdown>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"time-input.js","sourceRoot":"","sources":["../../../src/components/time-input/time-input.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { iconClock } from '@siemens/ix-icons/icons';\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n} from '@stencil/core';\nimport { DateTime } from 'luxon';\nimport { SlotEnd, SlotStart } from '../input/input.fc';\nimport {\n DisposableChangesAndVisibilityObservers,\n addDisposableChangesAndVisibilityObservers,\n adjustPaddingForStartAndEnd,\n handleSubmitOnEnterKeydown,\n} from '../input/input.util';\nimport {\n ClassMutationObserver,\n HookValidationLifecycle,\n IxInputFieldComponent,\n ValidationResults,\n createClassMutationObserver,\n getValidationText,\n} from '../utils/input';\nimport { makeRef } from '../utils/make-ref';\nimport { IxTimePickerCustomEvent } from '../../components';\nimport type { TimeInputValidityState } from './time-input.types';\nimport {\n closeDropdown as closeDropdownUtil,\n createValidityState,\n handleIconClick,\n openDropdown as openDropdownUtil,\n} from '../utils/input/picker-input.util';\n\n/**\n * @since 3.2.0\n * @form-ready\n * @slot start - Element will be displayed at the start of the input\n * @slot end - Element will be displayed at the end of the input\n */\n@Component({\n tag: 'ix-time-input',\n styleUrl: 'time-input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class TimeInput implements IxInputFieldComponent<string> {\n @Element() hostElement!: HTMLIxTimeInputElement;\n @AttachInternals() formInternals!: ElementInternals;\n\n /**\n * Name of the input element\n */\n @Prop({ reflect: true }) name?: string;\n\n /**\n * Placeholder of the input element\n */\n @Prop({ reflect: true }) placeholder?: string;\n\n /**\n * Value of the input element\n */\n @Prop({ reflect: true, mutable: true }) value: string = '';\n\n @Watch('value') watchValuePropHandler(newValue: string) {\n this.onInput(newValue);\n }\n\n /**\n * Format of time string\n * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.\n */\n @Prop() format: string = 'TT';\n\n /**\n * Required attribute\n */\n @Prop() required?: boolean;\n\n /**\n * Helper text below the input field\n */\n @Prop() helperText?: string;\n\n /**\n * Label of the input field\n */\n @Prop() label?: string;\n\n /**\n * Error text below the input field\n */\n @Prop({ reflect: true }) invalidText?: string;\n\n /**\n * Readonly attribute\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Disabled attribute\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Info text below the input field\n */\n @Prop() infoText?: string;\n\n /**\n * Warning text below the input field\n */\n @Prop() warningText?: string;\n\n /**\n * Valid text below the input field\n */\n @Prop() validText?: string;\n\n /**\n * Show text as tooltip\n */\n @Prop() showTextAsTooltip?: boolean;\n\n /**\n * I18n string for the error message when the time is not parsable\n */\n @Prop({ attribute: 'i18n-error-time-unparsable' }) i18nErrorTimeUnparsable =\n 'Time is not valid';\n\n /**\n * Interval for hour selection\n */\n @Prop() hourInterval: number = 1;\n\n /**\n * Interval for minute selection\n */\n @Prop() minuteInterval: number = 1;\n\n /**\n * Interval for second selection\n */\n @Prop() secondInterval: number = 1;\n\n /**\n * Interval for millisecond selection\n */\n @Prop() millisecondInterval: number = 100;\n\n /**\n * Text of time-picker time select button\n */\n @Prop({ attribute: 'i18n-select-time' }) i18nSelectTime: string = 'Confirm';\n\n /**\n * Text for time-picker top label\n */\n @Prop({ attribute: 'i18n-time' }) i18nTime: string = 'Time';\n\n /**\n * Text for time-picker hour column header\n */\n @Prop({ attribute: 'i18n-hour-column-header' }) i18nHourColumnHeader: string =\n 'hr';\n\n /**\n * Text for time-picker minute column header\n */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Prop({ attribute: 'i18n-minute-column-header' })\n i18nMinuteColumnHeader: string = 'min';\n\n /**\n * Text for time-picker second column header\n */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Prop({ attribute: 'i18n-second-column-header' })\n i18nSecondColumnHeader: string = 'sec';\n\n /**\n * Text for time-picker millisecond column header\n */\n // eslint-disable-next-line @stencil-community/decorators-style\n @Prop({ attribute: 'i18n-millisecond-column-header' })\n i18nMillisecondColumnHeader: string = 'ms';\n\n /**\n * If false, pressing Enter will submit the form (if inside a form).\n * Set to true to suppress submit on Enter.\n */\n @Prop({ reflect: true }) suppressSubmitOnEnter: boolean = false;\n\n /**\n * Hides the header of the picker.\n *\n * @since 4.0.0\n */\n @Prop() hideHeader: boolean = false;\n\n /**\n * Text alignment within the time input. 'start' aligns the text to the start of the input, 'end' aligns the text to the end of the input.\n */\n @Prop() textAlignment: 'start' | 'end' = 'start';\n\n /**\n * Input change event.\n */\n @Event({ cancelable: false }) valueChange!: EventEmitter<string>;\n\n /**\n * Validation state change event.\n */\n @Event() validityStateChange!: EventEmitter<TimeInputValidityState>;\n\n /** @internal */\n @Event() ixFocus!: EventEmitter<void>;\n\n /** @internal */\n @Event() ixBlur!: EventEmitter<void>;\n\n @State() show = false;\n @State() time: string | null = null;\n @State() isInputInvalid = false;\n @State() isInvalid = false;\n @State() isValid = false;\n @State() isInfo = false;\n @State() isWarning = false;\n @State() focus = false;\n\n private readonly slotStartRef = makeRef<HTMLDivElement>();\n private readonly slotEndRef = makeRef<HTMLDivElement>();\n\n private readonly timePickerRef = makeRef<HTMLIxTimePickerElement>();\n\n private readonly inputElementRef = makeRef<HTMLInputElement>();\n private readonly dropdownElementRef = makeRef<HTMLIxDropdownElement>();\n private classObserver?: ClassMutationObserver;\n private invalidReason?: string;\n private touched = false;\n\n private disposableChangesAndVisibilityObservers?: DisposableChangesAndVisibilityObservers;\n\n private handleInputKeyDown(event: KeyboardEvent) {\n handleSubmitOnEnterKeydown(\n event,\n this.suppressSubmitOnEnter,\n this.formInternals.form\n );\n }\n\n updateFormInternalValue(value: string): void {\n this.formInternals.setFormValue(value);\n this.value = value;\n }\n\n connectedCallback(): void {\n this.classObserver = createClassMutationObserver(this.hostElement, () =>\n this.checkClassList()\n );\n\n this.disposableChangesAndVisibilityObservers =\n addDisposableChangesAndVisibilityObservers(\n this.hostElement,\n this.updatePaddings.bind(this)\n );\n }\n\n componentWillLoad(): void {\n if (!this.value) {\n const now = DateTime.now();\n if (now.isValid) {\n this.value = now.toFormat(this.format);\n }\n }\n\n this.onInput(this.value);\n if (this.isInputInvalid) {\n this.time = null;\n } else {\n this.watchValue();\n }\n\n this.checkClassList();\n this.updateFormInternalValue(this.value);\n }\n\n private updatePaddings() {\n adjustPaddingForStartAndEnd(\n this.slotStartRef.current,\n this.slotEndRef.current,\n this.inputElementRef.current\n );\n }\n\n disconnectedCallback(): void {\n this.classObserver?.destroy();\n this.disposableChangesAndVisibilityObservers?.();\n }\n\n @Watch('value')\n watchValue() {\n this.time = this.value;\n }\n\n /** @internal */\n @Method()\n hasValidValue(): Promise<boolean> {\n return Promise.resolve(!!this.value);\n }\n\n /** @internal */\n @Method()\n getAssociatedFormElement(): Promise<HTMLFormElement | null> {\n return Promise.resolve(this.formInternals.form);\n }\n\n async onInput(value: string) {\n this.value = value;\n if (!value) {\n this.isInputInvalid = false;\n this.updateFormInternalValue(value);\n this.valueChange.emit(value);\n return;\n }\n\n if (!this.format) {\n return;\n }\n\n const time = DateTime.fromFormat(value, this.format);\n if (time.isValid) {\n this.isInputInvalid = false;\n } else {\n this.isInputInvalid = true;\n this.invalidReason = time.invalidReason;\n }\n\n this.updateFormInternalValue(value);\n this.valueChange.emit(value);\n }\n\n onTimeIconClick(event: Event) {\n handleIconClick(\n event,\n this.show,\n () => this.openDropdown(),\n this.inputElementRef\n );\n }\n\n async openDropdown() {\n // keep picker in sync with input\n this.time = this.value;\n\n return openDropdownUtil(this.dropdownElementRef);\n }\n\n async closeDropdown() {\n return closeDropdownUtil(this.dropdownElementRef);\n }\n\n private checkClassList() {\n this.isInvalid = this.hostElement.classList.contains('ix-invalid');\n }\n\n private renderInput() {\n return (\n <div class=\"input-wrapper\">\n <SlotStart\n slotStartRef={this.slotStartRef}\n onSlotChange={() => this.updatePaddings()}\n ></SlotStart>\n <input\n autoComplete=\"off\"\n class={{\n 'is-invalid': this.isInputInvalid,\n }}\n style={{\n textAlign: this.textAlignment,\n }}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n ref={this.inputElementRef}\n type=\"text\"\n value={this.value}\n placeholder={this.placeholder}\n name={this.name}\n onInput={(event) => {\n const target = event.target as HTMLInputElement;\n this.onInput(target.value);\n }}\n onClick={(event) => {\n if (this.show) {\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onFocus={async () => {\n this.openDropdown();\n this.ixFocus.emit();\n }}\n onBlur={() => {\n this.ixBlur.emit();\n this.touched = true;\n }}\n onKeyDown={(event) => this.handleInputKeyDown(event)}\n ></input>\n <SlotEnd\n slotEndRef={this.slotEndRef}\n onSlotChange={() => this.updatePaddings()}\n >\n <ix-icon-button\n data-testid=\"open-time-picker\"\n class={{ 'time-icon-hidden': this.disabled || this.readonly }}\n variant=\"subtle-tertiary\"\n icon={iconClock}\n onClick={(event) => this.onTimeIconClick(event)}\n aria-label=\"Toggle time picker\"\n aria-expanded={this.show}\n ></ix-icon-button>\n </SlotEnd>\n </div>\n );\n }\n\n @HookValidationLifecycle()\n hookValidationLifecycle({\n isInfo,\n isInvalid,\n isInvalidByRequired,\n isValid,\n isWarning,\n }: ValidationResults) {\n this.isInvalid = isInvalid || isInvalidByRequired || this.isInputInvalid;\n this.isInfo = isInfo;\n this.isValid = isValid;\n this.isWarning = isWarning;\n }\n\n @Watch('isInputInvalid')\n async onInputValidationChange() {\n const state = await this.getValidityState();\n this.validityStateChange.emit({\n patternMismatch: state.patternMismatch,\n invalidReason: this.invalidReason,\n });\n }\n\n /** @internal */\n @Method()\n getValidityState(): Promise<ValidityState> {\n return Promise.resolve(\n createValidityState(this.isInputInvalid, !!this.required, this.value)\n );\n }\n\n /**\n * Get the native input element\n */\n @Method()\n getNativeInputElement(): Promise<HTMLInputElement> {\n return this.inputElementRef.waitForCurrent();\n }\n\n /**\n * Focuses the input field\n */\n @Method()\n async focusInput(): Promise<void> {\n return (await this.getNativeInputElement()).focus();\n }\n\n /**\n * Returns whether the text field has been touched.\n * @internal\n */\n @Method()\n isTouched(): Promise<boolean> {\n return Promise.resolve(this.touched);\n }\n\n render() {\n const invalidText = getValidationText(\n this.isInputInvalid,\n this.invalidText,\n this.i18nErrorTimeUnparsable\n );\n\n return (\n <Host\n class={{\n disabled: this.disabled,\n readonly: this.readonly,\n }}\n >\n <ix-field-wrapper\n label={this.label}\n helperText={this.helperText}\n isInvalid={this.isInvalid}\n invalidText={invalidText}\n infoText={this.infoText}\n isInfo={this.isInfo}\n isWarning={this.isWarning}\n warningText={this.warningText}\n isValid={this.isValid}\n validText={this.validText}\n showTextAsTooltip={this.showTextAsTooltip}\n required={this.required}\n controlRef={this.inputElementRef}\n >\n {this.renderInput()}\n </ix-field-wrapper>\n <ix-dropdown\n data-testid=\"time-dropdown\"\n trigger={this.inputElementRef.waitForCurrent()}\n ref={this.dropdownElementRef}\n closeBehavior=\"outside\"\n suppressOverflowBehavior={true}\n show={this.show}\n onShowChanged={(event) => {\n this.show = event.detail;\n }}\n >\n <ix-time-picker\n ref={this.timePickerRef}\n format={this.format}\n time={this.time ?? ''}\n hourInterval={this.hourInterval}\n minuteInterval={this.minuteInterval}\n secondInterval={this.secondInterval}\n millisecondInterval={this.millisecondInterval}\n embedded\n hideHeader={this.hideHeader}\n i18nConfirmTime={this.i18nSelectTime}\n i18nHeader={this.i18nTime}\n i18nHourColumnHeader={this.i18nHourColumnHeader}\n i18nSecondColumnHeader={this.i18nSecondColumnHeader}\n i18nMinuteColumnHeader={this.i18nMinuteColumnHeader}\n i18nMillisecondColumnHeader={this.i18nMillisecondColumnHeader}\n onTimeSelect={(event: IxTimePickerCustomEvent<string>) => {\n this.onInput(event.detail);\n\n this.show = false;\n }}\n ></ix-time-picker>\n </ix-dropdown>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -231,15 +231,7 @@ export class TimePicker {
|
|
|
231
231
|
if (elementContainer) {
|
|
232
232
|
elementContainer.focus({ preventScroll: true });
|
|
233
233
|
if (!this.isElementVisible(elementContainer, elementList)) {
|
|
234
|
-
elementContainer.
|
|
235
|
-
block: this.focusScrollAlignment,
|
|
236
|
-
});
|
|
237
|
-
if (this.focusScrollAlignment === 'end') {
|
|
238
|
-
elementList.scrollTop += 4;
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
elementList.scrollTop -= 4;
|
|
242
|
-
}
|
|
234
|
+
this.scrollElementIntoView(elementContainer, elementList, this.focusScrollAlignment);
|
|
243
235
|
}
|
|
244
236
|
}
|
|
245
237
|
}
|
|
@@ -298,7 +290,16 @@ export class TimePicker {
|
|
|
298
290
|
event.preventDefault();
|
|
299
291
|
}
|
|
300
292
|
}
|
|
301
|
-
onUnitCellBlur(unit) {
|
|
293
|
+
onUnitCellBlur(unit, event) {
|
|
294
|
+
var _a;
|
|
295
|
+
const relatedTarget = event.relatedTarget;
|
|
296
|
+
// Check if column lost focus to scroll back to selected value
|
|
297
|
+
if (relatedTarget) {
|
|
298
|
+
const relatedUnit = (_a = relatedTarget.dataset.elementContainerId) === null || _a === void 0 ? void 0 : _a.split('-')[0];
|
|
299
|
+
if (relatedUnit !== unit) {
|
|
300
|
+
this.elementListScrollToTop(unit, Number(this.formattedTime[unit]), 'smooth');
|
|
301
|
+
}
|
|
302
|
+
}
|
|
302
303
|
this.isUnitFocused = false;
|
|
303
304
|
const focusedValue = Number(this.formattedTime[unit]);
|
|
304
305
|
this.updateDescriptorFocusedValue(unit, focusedValue);
|
|
@@ -323,6 +324,19 @@ export class TimePicker {
|
|
|
323
324
|
return (elementRect.top >= containerRect.top &&
|
|
324
325
|
elementRect.bottom <= containerRect.bottom);
|
|
325
326
|
}
|
|
327
|
+
scrollElementIntoView(element, container, alignment) {
|
|
328
|
+
const SCROLL_BUFFER = 1;
|
|
329
|
+
const containerRect = container.getBoundingClientRect();
|
|
330
|
+
const elementRect = element.getBoundingClientRect();
|
|
331
|
+
if (alignment === 'end') {
|
|
332
|
+
container.scrollTop +=
|
|
333
|
+
elementRect.bottom - containerRect.bottom + SCROLL_BUFFER;
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
container.scrollTop +=
|
|
337
|
+
elementRect.top - containerRect.top - SCROLL_BUFFER;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
326
340
|
updateFocusedValue(value) {
|
|
327
341
|
const numberArray = this.getNumberArrayForUnit(this.focusedUnit);
|
|
328
342
|
const maxValue = numberArray[numberArray.length - 1];
|
|
@@ -536,6 +550,9 @@ export class TimePicker {
|
|
|
536
550
|
return this.formattedTime[unit] === String(number);
|
|
537
551
|
}
|
|
538
552
|
select(unit, number) {
|
|
553
|
+
if (this.isSelected(unit, number)) {
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
539
556
|
this.formattedTime = Object.assign(Object.assign({}, this.formattedTime), { [unit]: String(number) });
|
|
540
557
|
this.timeUpdate(unit, number);
|
|
541
558
|
this.elementListScrollToTop(unit, number, 'smooth');
|
|
@@ -607,28 +624,26 @@ export class TimePicker {
|
|
|
607
624
|
return '-1';
|
|
608
625
|
}
|
|
609
626
|
render() {
|
|
610
|
-
return (h(Host, { key: '
|
|
627
|
+
return (h(Host, { key: 'da95d86956db27851713b28d3727ee9d8e33f785' }, h("ix-date-time-card", { key: '5a8a88d641f859eaa2c1e1e2f7b699abd56f7f74', embedded: this.embedded, timePickerAppearance: true, corners: this.corners, hasFooter: !this.dateTimePickerAppearance, hideHeader: this.hideHeader }, h("div", { key: '85639253213bee998504da73ea4de0421cf146c3', class: "header", slot: "header" }, h("ix-typography", { key: '0a21cf47dd51eaf17c44271dbe4d63d909523055', format: "body" }, this.i18nHeader)), h("div", { key: '9d716194b4a37662e298e8d59c54142e78b9a6a0', class: "clock" }, this.timePickerDescriptors.map((descriptor, index) => (h("div", { class: "flex" }, h("div", { class: { columns: true, hidden: descriptor.hidden } }, h("div", { class: "column-header", title: descriptor.header }, descriptor.header), h("div", { "data-element-list-id": descriptor.unit, class: "element-list", tabIndex: -1 }, descriptor.numberArray.map((number) => {
|
|
611
628
|
return (h("button", { "data-element-container-id": `${descriptor.unit}-${number}`, class: {
|
|
612
629
|
selected: this.isSelected(descriptor.unit, number),
|
|
613
630
|
'element-container': true,
|
|
614
|
-
}, onMouseDown: (e) => {
|
|
615
|
-
e.preventDefault();
|
|
616
631
|
}, onClick: () => {
|
|
617
632
|
this.select(descriptor.unit, number);
|
|
618
|
-
}, onFocus: () => this.onUnitCellFocus(descriptor.unit, number), onBlur: () => this.onUnitCellBlur(descriptor.unit), tabindex: this.getElementContainerTabIndex(number, descriptor.unit), "aria-label": `${descriptor.header}: ${number}` }, this.formatUnitValue(descriptor.unit, number)));
|
|
633
|
+
}, onFocus: () => this.onUnitCellFocus(descriptor.unit, number), onBlur: (e) => this.onUnitCellBlur(descriptor.unit, e), tabindex: this.getElementContainerTabIndex(number, descriptor.unit), "aria-label": `${descriptor.header}: ${number}` }, this.formatUnitValue(descriptor.unit, number)));
|
|
619
634
|
}), h("div", { class: "element-list-padding" }))), index !== this.timePickerDescriptors.length - 1 && (h("div", { class: {
|
|
620
635
|
'column-separator': true,
|
|
621
636
|
hidden: descriptor.hidden,
|
|
622
|
-
} }, this.getColumnSeparator(index)))))), this.timeRef && (h("div", { key: '
|
|
637
|
+
} }, this.getColumnSeparator(index)))))), this.timeRef && (h("div", { key: 'b177d5ea743648618ab6b877f60a37b46d8a5fa5', class: "flex" }, h("div", { key: 'a714f52d250386088368bdfe5c28ad45a1fe2dd0', class: "column-separator" }), h("div", { key: 'c7730b336e486ec34fd23e293b8e70e309d153fe', class: "columns" }, h("div", { key: '56677d7c350e235777e5d06afd61b925934923d6', class: "column-header", title: "AM/PM" }), h("div", { key: '764fd7297bdafaa69d24c9a2655c9d4fa7a73966', class: "element-list", tabIndex: -1 }, h("button", { key: '6b7ddefac72c7d4a778e8de6c42fd593003f5e5f', "data-am-pm-id": "AM", class: {
|
|
623
638
|
selected: this.timeRef === 'AM',
|
|
624
639
|
'element-container': true,
|
|
625
|
-
}, onClick: () => this.changeTimeReference('AM'), tabindex: "0", "aria-label": "AM" }, "AM"), h("button", { key: '
|
|
640
|
+
}, onClick: () => this.changeTimeReference('AM'), tabindex: "0", "aria-label": "AM" }, "AM"), h("button", { key: '75cccf55946da3b04faac2da0bd3c989b8f633a3', "data-am-pm-id": "PM", class: {
|
|
626
641
|
selected: this.timeRef === 'PM',
|
|
627
642
|
'element-container': true,
|
|
628
|
-
}, onClick: () => this.changeTimeReference('PM'), tabindex: "0", "aria-label": "PM" }, "PM")))))), h("div", { key: '
|
|
643
|
+
}, onClick: () => this.changeTimeReference('PM'), tabindex: "0", "aria-label": "PM" }, "PM")))))), h("div", { key: 'e033175f6d142fd73661703c89c975874bc9d6be', class: {
|
|
629
644
|
footer: true,
|
|
630
645
|
'footer--compact': this.timePickerDescriptors.length <= 2,
|
|
631
|
-
}, slot: "footer" }, h("ix-button", { key: '
|
|
646
|
+
}, slot: "footer" }, h("ix-button", { key: '795d890b983737fd09cc7471c428266945062262', class: "confirm-button", onClick: () => {
|
|
632
647
|
var _a;
|
|
633
648
|
this.timeSelect.emit((_a = this._time) === null || _a === void 0 ? void 0 : _a.toFormat(this.format));
|
|
634
649
|
} }, this.i18nConfirmTime)))));
|