@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.
Files changed (160) hide show
  1. package/READMEOSS.html +1 -1
  2. package/components/index.js.map +1 -1
  3. package/components/ix-checkbox-group.js +3 -3
  4. package/components/ix-checkbox.js +1 -1
  5. package/components/ix-custom-field.js +3 -3
  6. package/components/ix-date-input.js +8 -10
  7. package/components/ix-date-input.js.map +1 -1
  8. package/components/ix-datetime-picker.js +1 -1
  9. package/components/ix-field-label.js +1 -1
  10. package/components/ix-field-wrapper.js +1 -1
  11. package/components/ix-helper-text.js +1 -1
  12. package/components/ix-input.js +4 -4
  13. package/components/ix-menu-about.js +2 -2
  14. package/components/ix-menu-settings.js +1 -1
  15. package/components/ix-number-input.js +4 -4
  16. package/components/ix-pagination.js +3 -3
  17. package/components/ix-radio-group.js +3 -3
  18. package/components/ix-radio.js +1 -1
  19. package/components/ix-select.js +1 -1
  20. package/components/ix-tab-item.js +1 -1
  21. package/components/ix-textarea.js +4 -4
  22. package/components/ix-time-input.js +9 -11
  23. package/components/ix-time-input.js.map +1 -1
  24. package/components/ix-time-picker.js +1 -1
  25. package/components/ix-toggle.js +1 -1
  26. package/components/{p-DyGPjxFm.js → p-7E7AMiQV.js} +3 -3
  27. package/components/p-7E7AMiQV.js.map +1 -0
  28. package/components/{p-Bz7hxKB6.js → p-B1p0kpQJ.js} +3 -3
  29. package/components/{p-Bz7hxKB6.js.map → p-B1p0kpQJ.js.map} +1 -1
  30. package/components/{p-BVUD9f4A.js → p-BIg1TSrD.js} +3 -3
  31. package/components/{p-BVUD9f4A.js.map → p-BIg1TSrD.js.map} +1 -1
  32. package/components/{p-BZLbfHdO.js → p-BOQ00Fbs.js} +5 -5
  33. package/components/{p-BZLbfHdO.js.map → p-BOQ00Fbs.js.map} +1 -1
  34. package/components/{p-Cc4uqNv5.js → p-BiqdnsgA.js} +3 -3
  35. package/components/{p-Cc4uqNv5.js.map → p-BiqdnsgA.js.map} +1 -1
  36. package/components/{p-kJlC6ZD0.js → p-BmMUyJRQ.js} +35 -20
  37. package/components/p-BmMUyJRQ.js.map +1 -0
  38. package/components/{p-g2Y5blor.js → p-DUU5I7wZ.js} +3 -3
  39. package/components/{p-g2Y5blor.js.map → p-DUU5I7wZ.js.map} +1 -1
  40. package/components/{p-xHo-3QVy.js → p-Dq_H2flK.js} +9 -3
  41. package/components/p-Dq_H2flK.js.map +1 -0
  42. package/dist/cjs/index.cjs.js.map +1 -1
  43. package/dist/cjs/{input.fc-B5JMSZbY.js → input.fc-DrxRYq_G.js} +3 -3
  44. package/dist/cjs/{input.fc-B5JMSZbY.js.map → input.fc-DrxRYq_G.js.map} +1 -1
  45. package/dist/cjs/ix-checkbox-group.cjs.entry.js +1 -1
  46. package/dist/cjs/ix-checkbox.cjs.entry.js +1 -1
  47. package/dist/cjs/ix-custom-field.cjs.entry.js +1 -1
  48. package/dist/cjs/ix-date-input.cjs.entry.js +6 -8
  49. package/dist/cjs/ix-date-input.entry.cjs.js.map +1 -1
  50. package/dist/cjs/ix-field-label_2.cjs.entry.js +1 -1
  51. package/dist/cjs/ix-helper-text.cjs.entry.js +1 -1
  52. package/dist/cjs/ix-input.cjs.entry.js +2 -2
  53. package/dist/cjs/ix-number-input.cjs.entry.js +2 -2
  54. package/dist/cjs/ix-radio-group.cjs.entry.js +1 -1
  55. package/dist/cjs/ix-radio.cjs.entry.js +1 -1
  56. package/dist/cjs/ix-select.cjs.entry.js +1 -1
  57. package/dist/cjs/ix-tab-item.ix-tabs.entry.cjs.js.map +1 -1
  58. package/dist/cjs/ix-tab-item_2.cjs.entry.js +1 -1
  59. package/dist/cjs/ix-textarea.cjs.entry.js +2 -2
  60. package/dist/cjs/ix-time-input.cjs.entry.js +6 -8
  61. package/dist/cjs/ix-time-input.entry.cjs.js.map +1 -1
  62. package/dist/cjs/ix-time-picker.cjs.entry.js +33 -18
  63. package/dist/cjs/ix-time-picker.entry.cjs.js.map +1 -1
  64. package/dist/cjs/ix-toggle.cjs.entry.js +1 -1
  65. package/dist/cjs/{validation-CfL71_0d.js → validation-DTmSqO2d.js} +9 -2
  66. package/dist/{esm/validation-D_dk-JqT.js.map → cjs/validation-DTmSqO2d.js.map} +1 -1
  67. package/dist/collection/components/date-input/date-input.js +5 -7
  68. package/dist/collection/components/date-input/date-input.js.map +1 -1
  69. package/dist/collection/components/tab-item/tab-item.css +1 -1
  70. package/dist/collection/components/time-input/time-input.js +5 -7
  71. package/dist/collection/components/time-input/time-input.js.map +1 -1
  72. package/dist/collection/components/time-picker/time-picker.js +33 -18
  73. package/dist/collection/components/time-picker/time-picker.js.map +1 -1
  74. package/dist/collection/components/utils/input/validation.js +6 -0
  75. package/dist/collection/components/utils/input/validation.js.map +1 -1
  76. package/dist/collection/components/utils/modal/index.js.map +1 -1
  77. package/dist/collection/components/utils/modal/loading.js.map +1 -1
  78. package/dist/esm/index.js.map +1 -1
  79. package/dist/esm/{input.fc-CQbX6V05.js → input.fc-KJF8Z9iJ.js} +3 -3
  80. package/dist/esm/{input.fc-CQbX6V05.js.map → input.fc-KJF8Z9iJ.js.map} +1 -1
  81. package/dist/esm/ix-checkbox-group.entry.js +1 -1
  82. package/dist/esm/ix-checkbox.entry.js +1 -1
  83. package/dist/esm/ix-custom-field.entry.js +1 -1
  84. package/dist/esm/ix-date-input.entry.js +6 -8
  85. package/dist/esm/ix-date-input.entry.js.map +1 -1
  86. package/dist/esm/ix-field-label_2.entry.js +1 -1
  87. package/dist/esm/ix-helper-text.entry.js +1 -1
  88. package/dist/esm/ix-input.entry.js +2 -2
  89. package/dist/esm/ix-number-input.entry.js +2 -2
  90. package/dist/esm/ix-radio-group.entry.js +1 -1
  91. package/dist/esm/ix-radio.entry.js +1 -1
  92. package/dist/esm/ix-select.entry.js +1 -1
  93. package/dist/esm/ix-tab-item.ix-tabs.entry.js.map +1 -1
  94. package/dist/esm/ix-tab-item_2.entry.js +1 -1
  95. package/dist/esm/ix-textarea.entry.js +2 -2
  96. package/dist/esm/ix-time-input.entry.js +6 -8
  97. package/dist/esm/ix-time-input.entry.js.map +1 -1
  98. package/dist/esm/ix-time-picker.entry.js +33 -18
  99. package/dist/esm/ix-time-picker.entry.js.map +1 -1
  100. package/dist/esm/ix-toggle.entry.js +1 -1
  101. package/dist/esm/{validation-D_dk-JqT.js → validation-LJh16vt2.js} +9 -3
  102. package/dist/{cjs/validation-CfL71_0d.js.map → esm/validation-LJh16vt2.js.map} +1 -1
  103. package/dist/siemens-ix/index.esm.js.map +1 -1
  104. package/dist/siemens-ix/ix-date-input.entry.esm.js.map +1 -1
  105. package/dist/siemens-ix/ix-tab-item.ix-tabs.entry.esm.js.map +1 -1
  106. package/dist/siemens-ix/ix-time-input.entry.esm.js.map +1 -1
  107. package/dist/siemens-ix/ix-time-picker.entry.esm.js.map +1 -1
  108. package/dist/siemens-ix/p-0c325f08.entry.js +2 -0
  109. package/dist/siemens-ix/p-0c325f08.entry.js.map +1 -0
  110. package/dist/siemens-ix/p-0eca5a77.entry.js +2 -0
  111. package/dist/siemens-ix/{p-3751c675.entry.js.map → p-0eca5a77.entry.js.map} +1 -1
  112. package/dist/siemens-ix/{p-086d31e7.entry.js → p-26c629c3.entry.js} +2 -2
  113. package/dist/siemens-ix/{p-51ae739e.entry.js → p-33b3ed5b.entry.js} +2 -2
  114. package/dist/siemens-ix/{p-7f90eeef.entry.js → p-4431f891.entry.js} +2 -2
  115. package/dist/siemens-ix/{p-620158aa.entry.js → p-4e77d861.entry.js} +2 -2
  116. package/dist/siemens-ix/p-68aaf0fe.entry.js +2 -0
  117. package/dist/siemens-ix/p-68aaf0fe.entry.js.map +1 -0
  118. package/dist/siemens-ix/{p-ebef3d52.entry.js → p-79537728.entry.js} +2 -2
  119. package/dist/siemens-ix/{p-CAj3Tlcn.js → p-C7nQNUsO.js} +2 -2
  120. package/dist/siemens-ix/{p-CAj3Tlcn.js.map → p-C7nQNUsO.js.map} +1 -1
  121. package/dist/siemens-ix/{p-5iwF1M9X.js → p-DaswuiGO.js} +2 -2
  122. package/dist/siemens-ix/{p-5iwF1M9X.js.map → p-DaswuiGO.js.map} +1 -1
  123. package/dist/siemens-ix/{p-3b7573d6.entry.js → p-a4225101.entry.js} +2 -2
  124. package/dist/siemens-ix/{p-1c83cb5f.entry.js → p-b27a9744.entry.js} +2 -2
  125. package/dist/siemens-ix/{p-3f13b14e.entry.js → p-ba9ed3d1.entry.js} +2 -2
  126. package/dist/siemens-ix/{p-10f2a239.entry.js → p-c15e64a8.entry.js} +2 -2
  127. package/dist/siemens-ix/{p-7364534a.entry.js → p-c43b201b.entry.js} +2 -2
  128. package/dist/siemens-ix/{p-84df2a86.entry.js → p-d2c18c15.entry.js} +2 -2
  129. package/dist/siemens-ix/p-d2c18c15.entry.js.map +1 -0
  130. package/dist/siemens-ix/{p-5d6f43fd.entry.js → p-f119c105.entry.js} +2 -2
  131. package/dist/siemens-ix/{p-6445a54f.entry.js → p-fc73c8cc.entry.js} +2 -2
  132. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  133. package/dist/types/components/time-picker/time-picker.d.ts +2 -1
  134. package/dist/types/components/utils/input/validation.d.ts +1 -0
  135. package/dist/types/components/utils/modal/index.d.ts +1 -1
  136. package/dist/types/components/utils/modal/loading.d.ts +4 -0
  137. package/hydrate/index.js +48 -31
  138. package/hydrate/index.mjs +48 -31
  139. package/package.json +1 -1
  140. package/components/p-DyGPjxFm.js.map +0 -1
  141. package/components/p-kJlC6ZD0.js.map +0 -1
  142. package/components/p-xHo-3QVy.js.map +0 -1
  143. package/dist/siemens-ix/p-3751c675.entry.js +0 -2
  144. package/dist/siemens-ix/p-84df2a86.entry.js.map +0 -1
  145. package/dist/siemens-ix/p-dd16efd4.entry.js +0 -2
  146. package/dist/siemens-ix/p-dd16efd4.entry.js.map +0 -1
  147. package/dist/siemens-ix/p-f05aa76f.entry.js +0 -2
  148. package/dist/siemens-ix/p-f05aa76f.entry.js.map +0 -1
  149. /package/dist/siemens-ix/{p-086d31e7.entry.js.map → p-26c629c3.entry.js.map} +0 -0
  150. /package/dist/siemens-ix/{p-51ae739e.entry.js.map → p-33b3ed5b.entry.js.map} +0 -0
  151. /package/dist/siemens-ix/{p-7f90eeef.entry.js.map → p-4431f891.entry.js.map} +0 -0
  152. /package/dist/siemens-ix/{p-620158aa.entry.js.map → p-4e77d861.entry.js.map} +0 -0
  153. /package/dist/siemens-ix/{p-ebef3d52.entry.js.map → p-79537728.entry.js.map} +0 -0
  154. /package/dist/siemens-ix/{p-3b7573d6.entry.js.map → p-a4225101.entry.js.map} +0 -0
  155. /package/dist/siemens-ix/{p-1c83cb5f.entry.js.map → p-b27a9744.entry.js.map} +0 -0
  156. /package/dist/siemens-ix/{p-3f13b14e.entry.js.map → p-ba9ed3d1.entry.js.map} +0 -0
  157. /package/dist/siemens-ix/{p-10f2a239.entry.js.map → p-c15e64a8.entry.js.map} +0 -0
  158. /package/dist/siemens-ix/{p-7364534a.entry.js.map → p-c43b201b.entry.js.map} +0 -0
  159. /package/dist/siemens-ix/{p-5d6f43fd.entry.js.map → p-f119c105.entry.js.map} +0 -0
  160. /package/dist/siemens-ix/{p-6445a54f.entry.js.map → p-fc73c8cc.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"file":"p-BmMUyJRQ.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/time-picker/time-picker.scss?tag=ix-time-picker&encapsulation=shadow","src/components/time-picker/time-picker.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 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\n@use './common-variables' as vars;\n@use 'mixins/shadow-dom/component';\n@use 'mixins/input';\n@use 'legacy/components/forms';\n\n@include input.form;\n\n:host {\n display: block;\n position: relative;\n width: fit-content;\n\n @include component.ix-component;\n\n .standaloneAppearance {\n box-shadow: none;\n }\n\n .hidden {\n display: none;\n }\n\n .header {\n display: flex;\n align-items: center;\n justify-content: center;\n height: vars.$default-control-height;\n }\n\n .clock {\n display: flex;\n justify-content: center;\n align-items: start;\n\n .flex {\n display: flex;\n height: 100%;\n align-items: start;\n\n .columns {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n\n .column-header {\n height: 2.5rem;\n width: 2.5rem;\n line-height: 2.5rem;\n text-align: center;\n color: var(--theme-color-soft-text);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n }\n\n .column-separator {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100%;\n margin-top: 3rem;\n width: 0.5rem;\n }\n }\n\n .element-list {\n list-style-type: none;\n overflow: auto;\n padding: 0.0625rem;\n margin: -0.0625rem;\n max-height: calc(2.5rem * 6 + 0.125rem * 6);\n\n button {\n all: unset;\n }\n\n .element-container {\n box-sizing: border-box;\n width: 2.5rem;\n height: 2.5rem;\n margin-bottom: 0.125rem;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n color: var(--theme-color-primary);\n\n &:hover {\n background-color: var(--theme-datepicker-day--background--hover);\n }\n\n &:focus-visible {\n box-shadow: 0 0 0 1px var(--theme-color-focus-bdr);\n }\n }\n\n .selected {\n background-color: var(--theme-datepicker-day--background--selected);\n color: var(--theme-datepicker-day--color--selected);\n font-weight: var(--theme-font-weight-bold);\n\n &:hover {\n background-color: var(\n --theme-datepicker-day--background--selected-hover\n );\n }\n\n &:focus-visible {\n border: 0.0625rem solid var(--theme-color-inv-contrast-text);\n }\n }\n\n .element-list-padding {\n width: 2.5rem;\n height: calc(2.5rem * 5 + 5 * 0.125rem);\n min-height: calc(2.5rem * 5 + 5 * 0.125rem);\n }\n }\n\n div.element-list {\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n }\n\n .footer {\n display: flex;\n justify-content: space-between;\n gap: 0.5rem;\n flex-wrap: wrap;\n\n .confirm-button {\n margin-left: auto;\n }\n\n &--compact {\n flex-direction: column;\n align-items: center;\n\n .confirm-button {\n margin-left: initial;\n }\n }\n }\n\n .default-space {\n margin-left: vars.$default-space;\n }\n\n .text-align {\n text-align: center;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 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 {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { DateTime } from 'luxon';\nimport { OnListener } from '../utils/listener';\nimport type { TimePickerCorners } from './time-picker.types';\n\ntype TimePickerDescriptorUnit = 'hour' | 'minute' | 'second' | 'millisecond';\n\ninterface TimePickerDescriptor {\n unit: TimePickerDescriptorUnit;\n header: string;\n hidden: boolean;\n numberArray: number[];\n focusedValue: number;\n}\n\ninterface TimeOutputFormat {\n hour: string;\n minute: string;\n second: string;\n millisecond: string;\n}\n\nconst LUXON_FORMAT_PATTERNS = {\n // h, hh, H, HH and various time formats that include hours\n hours: /\\b[Hh]\\b|HH|hh|H{3,4}|h{3,4}|t|tt|ttt|tttt|T|TT|TTT|TTTT/,\n // m, mm and time formats that include minutes\n minutes: /\\bm\\b|mm|t|tt|ttt|tttt|T|TT|TTT|TTTT/,\n // s, ss and time formats that include seconds\n seconds: /\\bs\\b|ss|tt|ttt|tttt|TT|TTT|TTTT/,\n // S, SSS (milliseconds), u/uu/uuu (fractional seconds), x/X (timestamps)\n milliseconds: /\\bS\\b|SSS|u|uu|uuu/,\n};\n\nconst HOUR_INTERVAL_DEFAULT = 1;\nconst MINUTE_INTERVAL_DEFAULT = 1;\nconst SECOND_INTERVAL_DEFAULT = 1;\nconst MILLISECOND_INTERVAL_DEFAULT = 100;\n\nconst CONFIRM_BUTTON_DEFAULT = 'Confirm';\nconst HEADER_DEFAULT = 'Time';\n\nconst FORMATTED_TIME_EMPTY: TimeOutputFormat = {\n hour: '',\n minute: '',\n second: '',\n millisecond: '',\n};\n\n@Component({\n tag: 'ix-time-picker',\n styleUrl: 'time-picker.scss',\n shadow: true,\n})\nexport class TimePicker {\n @Element() hostElement!: HTMLIxTimePickerElement;\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 * Note: Formats that combine date and time (like f or F) are not supported. Timestamp tokens x and X are not supported either.\n */\n @Prop() format: string = 'TT';\n @Watch('format')\n watchFormatIntervalPropHandler(newValue: string) {\n if (!newValue) {\n return;\n }\n\n this.initPicker();\n this.updateScrollPositions();\n }\n\n /**\n * Corner style\n */\n @Prop() corners: TimePickerCorners = 'rounded';\n\n /**\n * Embedded style (for use in other components)\n */\n @Prop() embedded = false;\n\n /**\n * @internal Temporary prop needed until datetime-picker is reworked for new design\n */\n @Prop() dateTimePickerAppearance: boolean = false;\n\n /**\n * Hides the header of the picker.\n *\n * @since 3.2.0\n */\n @Prop() hideHeader: boolean = false;\n\n /**\n * Interval for hour selection\n *\n * @since 3.2.0\n */\n @Prop({ mutable: true }) hourInterval: number = HOUR_INTERVAL_DEFAULT;\n @Watch('hourInterval')\n watchHourIntervalPropHandler(newValue: number) {\n if (\n Number.isInteger(newValue) &&\n newValue >= 0 &&\n newValue <= (this.timeRef ? 12 : 23)\n ) {\n this.setTimePickerDescriptors();\n return;\n }\n\n this.printIntervalError('hour', newValue);\n this.hourInterval = HOUR_INTERVAL_DEFAULT;\n }\n\n /**\n * Interval for minute selection\n *\n * @since 3.2.0\n */\n @Prop({ mutable: true }) minuteInterval: number = MINUTE_INTERVAL_DEFAULT;\n @Watch('minuteInterval')\n watchMinuteIntervalPropHandler(newValue: number) {\n if (newValue >= 0 && newValue <= 59) {\n this.setTimePickerDescriptors();\n return;\n }\n\n this.printIntervalError('minute', newValue);\n this.minuteInterval = MINUTE_INTERVAL_DEFAULT;\n }\n\n /**\n * Interval for second selection\n *\n * @since 3.2.0\n */\n @Prop({ mutable: true }) secondInterval: number = SECOND_INTERVAL_DEFAULT;\n @Watch('secondInterval')\n watchSecondIntervalPropHandler(newValue: number) {\n if (newValue >= 0 && newValue <= 59) {\n this.setTimePickerDescriptors();\n return;\n }\n\n this.printIntervalError('second', newValue);\n this.secondInterval = SECOND_INTERVAL_DEFAULT;\n }\n\n /**\n * Interval for millisecond selection\n *\n * @since 3.2.0\n */\n @Prop({ mutable: true }) millisecondInterval: number =\n MILLISECOND_INTERVAL_DEFAULT;\n @Watch('millisecondInterval')\n watchMillisecondIntervalPropHandler(newValue: number) {\n if (newValue >= 0 && newValue <= 999) {\n this.setTimePickerDescriptors();\n return;\n }\n\n this.printIntervalError('millisecond', newValue);\n this.millisecondInterval = MILLISECOND_INTERVAL_DEFAULT;\n }\n\n private printIntervalError(intervalName: string, value: number) {\n console.error(\n `Value ${value} is not valid for ${intervalName}-interval. Falling back to default.`\n );\n }\n\n /**\n * Select time with format string\n * Format has to match the `format` property.\n */\n @Prop() time?: string;\n\n @Watch('time')\n watchTimePropHandler(newValue: string) {\n const timeFormat = DateTime.fromFormat(newValue, this.format);\n if (!timeFormat.isValid) {\n throw new Error('Format is not supported or not correct');\n }\n\n this._time = timeFormat;\n }\n\n /**\n * Get default time value\n * @returns DateTime.now() for empty state (no selection)\n */\n private getDefaultTime(): DateTime | undefined {\n return DateTime.now();\n }\n\n /**\n * Text of the time confirm button\n */\n @Prop({ attribute: 'i18n-confirm-time' }) i18nConfirmTime =\n CONFIRM_BUTTON_DEFAULT;\n\n /**\n * Text for top header\n */\n @Prop({ attribute: 'i18n-header' }) i18nHeader: string = HEADER_DEFAULT;\n\n /**\n * Text for hour column header\n */\n @Prop({ attribute: 'i18n-column-header' }) i18nHourColumnHeader: string =\n 'hr';\n\n /**\n * Text for 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 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 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 * Time event\n */\n @Event() timeSelect!: EventEmitter<string>;\n\n /**\n * Time change event\n */\n @Event() timeChange!: EventEmitter<string>;\n\n /**\n * Get the current time based on the wanted format\n */\n @Method()\n async getCurrentTime(): Promise<string | undefined> {\n return this._time?.toFormat(this.format);\n }\n\n @State() private _time?: DateTime;\n @Watch('_time')\n onTimeChange() {\n const formattedTimeOld = this.formattedTime;\n this.setTimeRef();\n this.formattedTime = this.getFormattedTime();\n\n this.updateScrollPositions(formattedTimeOld);\n }\n\n @State() private timeRef?: 'AM' | 'PM' | undefined;\n @State() private formattedTime: TimeOutputFormat = FORMATTED_TIME_EMPTY;\n @State() private timePickerDescriptors: TimePickerDescriptor[] = [];\n @State() private isUnitFocused: boolean = false;\n @State() private focusedUnit: TimePickerDescriptorUnit = 'hour';\n @State() private focusedValue: number = 0;\n\n private visibilityObserver?: MutationObserver;\n private focusScrollAlignment: 'start' | 'end' = 'start';\n\n componentWillLoad() {\n this.initPicker();\n }\n\n private initPicker() {\n let parsedTime: DateTime | undefined;\n\n if (this.time) {\n parsedTime = DateTime.fromFormat(this.time, this.format);\n\n if (!parsedTime.isValid) {\n console.error(\n `Invalid time format. The configured format does not match the format of the passed time. ${parsedTime.invalidReason}: ${parsedTime.invalidExplanation}`\n );\n parsedTime = this.getDefaultTime();\n }\n } else {\n parsedTime = this.getDefaultTime();\n }\n\n this._time = parsedTime;\n\n this.setTimeRef();\n this.setTimePickerDescriptors();\n this.setInitialFocusedValueAndUnit();\n\n this.watchHourIntervalPropHandler(this.hourInterval);\n this.watchMinuteIntervalPropHandler(this.minuteInterval);\n this.watchSecondIntervalPropHandler(this.secondInterval);\n this.watchMillisecondIntervalPropHandler(this.millisecondInterval);\n }\n\n componentDidLoad() {\n this.updateScrollPositions();\n this.setupVisibilityObserver();\n }\n\n componentDidRender() {\n if (this.isUnitFocused) {\n const elementContainer = this.getElementContainer(\n this.focusedUnit,\n this.focusedValue\n );\n const elementList = this.getElementList(this.focusedUnit);\n\n if (elementContainer) {\n elementContainer.focus({ preventScroll: true });\n\n if (!this.isElementVisible(elementContainer, elementList)) {\n this.scrollElementIntoView(\n elementContainer,\n elementList,\n this.focusScrollAlignment\n );\n }\n }\n }\n }\n\n disconnectedCallback() {\n if (this.visibilityObserver) {\n this.visibilityObserver.disconnect();\n }\n }\n\n @OnListener<TimePicker>('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (!this.isUnitFocused) {\n return;\n }\n\n let newValue = this.focusedValue;\n let shouldPreventDefault = true;\n let newValueInterval;\n\n switch (this.focusedUnit) {\n case 'hour':\n newValueInterval = this.hourInterval;\n break;\n case 'minute':\n newValueInterval = this.minuteInterval;\n break;\n case 'second':\n newValueInterval = this.secondInterval;\n break;\n case 'millisecond':\n newValueInterval = this.millisecondInterval;\n break;\n }\n\n switch (event.key) {\n case 'Tab':\n shouldPreventDefault = false;\n this.isUnitFocused = false;\n break;\n\n case 'ArrowUp':\n newValue -= newValueInterval;\n this.focusScrollAlignment = 'start';\n this.updateFocusedValue(newValue);\n this.updateDescriptorFocusedValue(this.focusedUnit, this.focusedValue);\n break;\n\n case 'ArrowDown':\n newValue += newValueInterval;\n this.focusScrollAlignment = 'end';\n this.updateFocusedValue(newValue);\n this.updateDescriptorFocusedValue(this.focusedUnit, this.focusedValue);\n break;\n\n case 'Enter':\n case ' ':\n this.select(this.focusedUnit, this.focusedValue);\n break;\n\n default:\n return;\n }\n\n if (shouldPreventDefault) {\n event.preventDefault();\n }\n }\n\n onUnitCellBlur(unit: TimePickerDescriptorUnit, event: FocusEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n // Check if column lost focus to scroll back to selected value\n if (relatedTarget) {\n const relatedUnit =\n relatedTarget.dataset.elementContainerId?.split('-')[0];\n\n if (relatedUnit !== unit) {\n this.elementListScrollToTop(\n unit,\n Number(this.formattedTime[unit]),\n 'smooth'\n );\n }\n }\n\n this.isUnitFocused = false;\n const focusedValue = Number(this.formattedTime[unit]);\n\n this.updateDescriptorFocusedValue(unit, focusedValue);\n }\n\n onUnitCellFocus(unit: TimePickerDescriptorUnit, value: number) {\n this.isUnitFocused = true;\n this.focusedUnit = unit;\n this.focusedValue = value;\n\n this.updateDescriptorFocusedValue(unit, value);\n }\n\n private getElementList(unit: TimePickerDescriptorUnit): HTMLDivElement {\n return this.hostElement.shadowRoot?.querySelector(\n `[data-element-list-id=\"${unit}\"]`\n ) as HTMLDivElement;\n }\n\n private getElementContainer(\n unit: TimePickerDescriptorUnit,\n number: number\n ): HTMLDivElement {\n return this.hostElement.shadowRoot?.querySelector(\n `[data-element-container-id=\"${unit}-${number}\"]`\n ) as HTMLDivElement;\n }\n\n private isElementVisible(\n element: HTMLElement,\n container: HTMLElement\n ): boolean {\n const elementRect = element.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n\n return (\n elementRect.top >= containerRect.top &&\n elementRect.bottom <= containerRect.bottom\n );\n }\n\n private scrollElementIntoView(\n element: HTMLElement,\n container: HTMLElement,\n alignment: 'start' | 'end'\n ) {\n const SCROLL_BUFFER = 1;\n const containerRect = container.getBoundingClientRect();\n const elementRect = element.getBoundingClientRect();\n\n if (alignment === 'end') {\n container.scrollTop +=\n elementRect.bottom - containerRect.bottom + SCROLL_BUFFER;\n } else {\n container.scrollTop +=\n elementRect.top - containerRect.top - SCROLL_BUFFER;\n }\n }\n\n private updateFocusedValue(value: number) {\n const numberArray = this.getNumberArrayForUnit(this.focusedUnit);\n const maxValue = numberArray[numberArray.length - 1];\n const minValue = numberArray[0];\n\n if (value > maxValue) {\n value = minValue;\n this.focusScrollAlignment = 'start';\n } else if (value < minValue) {\n value = maxValue;\n this.focusScrollAlignment = 'end';\n }\n\n this.focusedValue = value;\n }\n\n private setInitialFocusedValueAndUnit() {\n const firstVisibleDescriptor = this.timePickerDescriptors.find(\n (descriptor) => !descriptor.hidden\n );\n if (!firstVisibleDescriptor) {\n return;\n }\n\n const selectedValue = Number(\n this.formattedTime[firstVisibleDescriptor.unit]\n );\n const isValidSelection =\n firstVisibleDescriptor.numberArray.includes(selectedValue);\n\n this.focusedValue = isValidSelection\n ? selectedValue\n : firstVisibleDescriptor.numberArray[0];\n\n this.focusedUnit = firstVisibleDescriptor.unit;\n }\n\n private setupVisibilityObserver() {\n let dropdownElement: Element | null = this.hostElement;\n while (dropdownElement && dropdownElement.tagName !== 'IX-DROPDOWN') {\n dropdownElement = dropdownElement.parentElement;\n }\n\n if (!dropdownElement) {\n return;\n }\n\n this.visibilityObserver = new MutationObserver((mutations) =>\n this.mutationObserverCallback(mutations)\n );\n\n this.visibilityObserver.observe(dropdownElement, {\n attributes: true,\n attributeFilter: ['class', 'style'],\n });\n }\n\n private mutationObserverCallback(mutations: MutationRecord[]) {\n for (const mutation of mutations) {\n if (mutation.type !== 'attributes') {\n continue;\n }\n\n const dropdown = mutation.target as HTMLElement;\n\n if (!dropdown.classList.contains('show')) {\n // keep picker in sync with input\n if (this.time) {\n const timeFormat = DateTime.fromFormat(this.time, this.format);\n if (timeFormat.isValid) {\n this._time = DateTime.fromFormat(this.time, this.format);\n this.setInitialFocusedValueAndUnit();\n }\n }\n\n continue;\n }\n\n const elementsReady = this.areElementsRendered();\n if (!elementsReady) {\n continue;\n }\n\n this.updateScrollPositions();\n }\n }\n\n private areElementsRendered(): boolean {\n const elementLists =\n this.hostElement.shadowRoot?.querySelectorAll('.element-list');\n\n if (!elementLists || elementLists.length === 0) {\n return false;\n }\n\n return Array.from(elementLists).some(\n (list) => (list as HTMLElement).offsetHeight > 0\n );\n }\n\n private getFormattedTime(): TimeOutputFormat {\n if (!this._time) {\n return FORMATTED_TIME_EMPTY;\n }\n\n return {\n hour:\n this.timeRef !== undefined\n ? this._time.toFormat('h')\n : this._time.toFormat('H'),\n minute: this._time.toFormat('m'),\n second: this._time.toFormat('s'),\n millisecond: this._time.toFormat('S'),\n };\n }\n\n private timeUpdate(unit: TimePickerDescriptorUnit, value: number): number {\n let maxValue = DateTime.now().endOf('day').get(unit);\n\n if (unit === 'hour') {\n if (this.timeRef === 'PM') {\n // 12 PM should remain 12, other PM hours add 12\n value = value === 12 ? 12 : value + 12;\n } else if (this.timeRef === 'AM') {\n // 12 AM should be 0, other AM hours remain as is\n value = value === 12 ? 0 : value;\n maxValue = 12;\n }\n }\n\n if (value > maxValue) {\n value = maxValue;\n } else if (value < 0) {\n value = 0;\n }\n\n if (!this._time) {\n this._time = DateTime.now().startOf('day');\n }\n\n this._time = this._time.set({\n [unit]: value,\n });\n\n return value;\n }\n\n private changeTimeReference(newTimeRef: 'AM' | 'PM') {\n if (this.timeRef === newTimeRef) {\n return;\n }\n\n if (!this._time) {\n this._time = DateTime.now().startOf('day');\n }\n\n this.timeRef = newTimeRef;\n const currentHour = this._time.hour;\n\n if (newTimeRef === 'PM' && currentHour < 12) {\n this._time = this._time.plus({ hours: 12 });\n } else if (newTimeRef === 'AM' && currentHour >= 12) {\n this._time = this._time.minus({ hours: 12 });\n }\n\n this.timeChange.emit(this._time.toFormat(this.format));\n }\n\n private isFormat12Hour(format: string): boolean {\n // Remove any text that's inside quotes (literal text in Luxon format strings)\n let cleanFormat = '';\n let inQuote = false;\n\n for (let i = 0; i < format.length; i++) {\n const char = format[i];\n if (char === \"'\") {\n inQuote = !inQuote;\n } else if (!inQuote) {\n cleanFormat += char;\n }\n }\n\n // Check for specific 12-hour format tokens\n // Case-sensitive matching to distinguish between 'h' and 'H'\n return /h|a|t/.test(cleanFormat);\n }\n\n private setTimeRef() {\n const uses12HourFormat = this.isFormat12Hour(this.format);\n\n if (uses12HourFormat && this._time) {\n this.timeRef = this._time!.hour >= 12 ? 'PM' : 'AM';\n } else {\n this.timeRef = undefined;\n }\n }\n\n private getInitialFocusedValueForUnit(\n unit: TimePickerDescriptorUnit,\n numberArray: number[]\n ): number {\n const selectedValue = Number(this.formattedTime[unit]);\n return numberArray.includes(selectedValue) ? selectedValue : numberArray[0];\n }\n\n private setTimePickerDescriptors() {\n let hourNumbers = [];\n let minuteNumbers = [];\n let secondNumbers = [];\n let millisecondsNumbers = [];\n\n if (this.timeRef !== undefined) {\n hourNumbers = Array.from(\n { length: Math.ceil(12 / this.hourInterval) },\n (_, i) => i * this.hourInterval + 1\n ).filter((hour) => hour <= 12);\n } else {\n hourNumbers = Array.from(\n { length: Math.ceil(24 / this.hourInterval) },\n (_, i) => i * this.hourInterval\n );\n }\n\n minuteNumbers = Array.from(\n { length: Math.ceil(60 / this.minuteInterval) },\n (_, i) => i * this.minuteInterval\n );\n secondNumbers = Array.from(\n { length: Math.ceil(60 / this.secondInterval) },\n (_, i) => i * this.secondInterval\n );\n millisecondsNumbers = Array.from(\n { length: Math.ceil(1000 / this.millisecondInterval) },\n (_, i) => i * this.millisecondInterval\n );\n\n this.timePickerDescriptors = [\n {\n unit: 'hour',\n header: this.i18nHourColumnHeader,\n hidden: !LUXON_FORMAT_PATTERNS.hours.test(this.format),\n numberArray: hourNumbers,\n focusedValue: this.getInitialFocusedValueForUnit('hour', hourNumbers),\n },\n {\n unit: 'minute',\n header: this.i18nMinuteColumnHeader,\n hidden: !LUXON_FORMAT_PATTERNS.minutes.test(this.format),\n numberArray: minuteNumbers,\n focusedValue: this.getInitialFocusedValueForUnit(\n 'minute',\n minuteNumbers\n ),\n },\n {\n unit: 'second',\n header: this.i18nSecondColumnHeader,\n hidden: !LUXON_FORMAT_PATTERNS.seconds.test(this.format),\n numberArray: secondNumbers,\n focusedValue: this.getInitialFocusedValueForUnit(\n 'second',\n secondNumbers\n ),\n },\n {\n unit: 'millisecond',\n header: this.i18nMillisecondColumnHeader,\n hidden: !LUXON_FORMAT_PATTERNS.milliseconds.test(this.format),\n numberArray: millisecondsNumbers,\n focusedValue: this.getInitialFocusedValueForUnit(\n 'millisecond',\n millisecondsNumbers\n ),\n },\n ];\n\n this.timePickerDescriptors = this.timePickerDescriptors.filter(\n (item) => !item.hidden\n );\n }\n\n private getNumberArrayForUnit(unit: TimePickerDescriptorUnit): number[] {\n const descriptor = this.timePickerDescriptors.find(\n (descriptor) => descriptor.unit === unit\n );\n return descriptor ? descriptor.numberArray : [];\n }\n\n private isSelected(unit: TimePickerDescriptorUnit, number: number): boolean {\n return this.formattedTime![unit] === String(number);\n }\n\n private select(unit: TimePickerDescriptorUnit, number: number) {\n if (this.isSelected(unit, number)) {\n return;\n }\n\n this.formattedTime = {\n ...this.formattedTime!,\n [unit]: String(number),\n };\n\n this.timeUpdate(unit, number);\n this.elementListScrollToTop(unit, number, 'smooth');\n this.timeChange.emit(this._time!.toFormat(this.format));\n }\n\n private updateDescriptorFocusedValue(\n unit: TimePickerDescriptorUnit,\n value: number\n ) {\n const descriptorIndex = this.timePickerDescriptors.findIndex(\n (d) => d.unit === unit\n );\n if (descriptorIndex !== -1) {\n this.timePickerDescriptors = [\n ...this.timePickerDescriptors.slice(0, descriptorIndex),\n {\n ...this.timePickerDescriptors[descriptorIndex],\n focusedValue: value,\n },\n ...this.timePickerDescriptors.slice(descriptorIndex + 1),\n ];\n }\n }\n\n private elementListScrollToTop(\n unit: TimePickerDescriptorUnit,\n number: number,\n scrollBehaviour: 'smooth' | 'instant'\n ) {\n const elementList = this.getElementList(unit);\n const elementContainer = this.getElementContainer(unit, number);\n\n if (elementList && elementContainer) {\n const elementListHeight = elementList.clientHeight;\n const elementContainerHeight = elementContainer.clientHeight;\n\n // Offset which is used to adjust the scroll position to account for margins, elements being hidden, etc.\n let scrollPositionOffset = 11;\n if (this.hideHeader) {\n // 56 + 1 --> height of the header container and separator\n scrollPositionOffset -= 57;\n }\n\n const scrollPosition =\n elementContainer.offsetTop -\n elementListHeight / 2 +\n elementContainerHeight -\n scrollPositionOffset;\n\n elementList.scrollTo({\n top: scrollPosition,\n behavior: scrollBehaviour,\n });\n }\n }\n\n /**\n * Updates all scroll positions of the time picker elements\n * Updates only the elements that have changed if `formattedTimeOld` is provided\n */\n private updateScrollPositions(\n formattedTimeOld: TimeOutputFormat | undefined = undefined\n ) {\n for (const key in this.formattedTime) {\n const unitKey = key as keyof TimeOutputFormat;\n\n if (\n !formattedTimeOld ||\n this.formattedTime[unitKey] !== formattedTimeOld[unitKey]\n ) {\n this.elementListScrollToTop(\n unitKey as TimePickerDescriptorUnit,\n Number(this.formattedTime[unitKey]),\n 'instant'\n );\n }\n }\n }\n\n private formatUnitValue(\n unit: TimePickerDescriptorUnit,\n value: number\n ): string {\n if (unit === 'millisecond') {\n return value.toString().padStart(3, '0');\n }\n\n return value < 10 ? `0${value}` : value.toString();\n }\n\n private getColumnSeparator(currentIndex: number): string {\n if (currentIndex + 1 < this.timePickerDescriptors.length) {\n const nextUnit = this.timePickerDescriptors[currentIndex + 1].unit;\n return nextUnit === 'millisecond' ? '.' : ':';\n }\n\n return ':';\n }\n\n private getElementContainerTabIndex(\n number: number,\n descriptorUnit: TimePickerDescriptorUnit\n ): string {\n const descriptor = this.timePickerDescriptors.find(\n (d) => d.unit === descriptorUnit\n );\n\n if (number === descriptor?.focusedValue) {\n return '0';\n }\n\n return '-1';\n }\n\n render() {\n return (\n <Host>\n <ix-date-time-card\n embedded={this.embedded}\n timePickerAppearance={true}\n corners={this.corners}\n hasFooter={!this.dateTimePickerAppearance}\n hideHeader={this.hideHeader}\n >\n <div class=\"header\" slot=\"header\">\n <ix-typography format=\"body\">{this.i18nHeader}</ix-typography>\n </div>\n <div class=\"clock\">\n {this.timePickerDescriptors.map((descriptor, index: number) => (\n <div class=\"flex\">\n <div class={{ columns: true, hidden: descriptor.hidden }}>\n <div class=\"column-header\" title={descriptor.header}>\n {descriptor.header}\n </div>\n <div\n data-element-list-id={descriptor.unit}\n class=\"element-list\"\n tabIndex={-1}\n >\n {descriptor.numberArray.map((number) => {\n return (\n <button\n data-element-container-id={`${descriptor.unit}-${number}`}\n class={{\n selected: this.isSelected(descriptor.unit, number),\n 'element-container': true,\n }}\n onClick={() => {\n this.select(descriptor.unit, number);\n }}\n onFocus={() =>\n this.onUnitCellFocus(descriptor.unit, number)\n }\n onBlur={(e) =>\n this.onUnitCellBlur(descriptor.unit, e)\n }\n tabindex={this.getElementContainerTabIndex(\n number,\n descriptor.unit\n )}\n aria-label={`${descriptor.header}: ${number}`}\n >\n {this.formatUnitValue(descriptor.unit, number)}\n </button>\n );\n })}\n <div class=\"element-list-padding\"></div>\n </div>\n </div>\n\n {index !== this.timePickerDescriptors.length - 1 && (\n <div\n class={{\n 'column-separator': true,\n hidden: descriptor.hidden,\n }}\n >\n {this.getColumnSeparator(index)}\n </div>\n )}\n </div>\n ))}\n\n {this.timeRef && (\n <div class=\"flex\">\n <div class=\"column-separator\"></div>\n <div class=\"columns\">\n <div class=\"column-header\" title=\"AM/PM\" />\n <div class=\"element-list\" tabIndex={-1}>\n <button\n data-am-pm-id=\"AM\"\n class={{\n selected: this.timeRef === 'AM',\n 'element-container': true,\n }}\n onClick={() => this.changeTimeReference('AM')}\n tabindex=\"0\"\n aria-label=\"AM\"\n >\n AM\n </button>\n <button\n data-am-pm-id=\"PM\"\n class={{\n selected: this.timeRef === 'PM',\n 'element-container': true,\n }}\n onClick={() => this.changeTimeReference('PM')}\n tabindex=\"0\"\n aria-label=\"PM\"\n >\n PM\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div\n class={{\n footer: true,\n 'footer--compact': this.timePickerDescriptors.length <= 2,\n }}\n slot=\"footer\"\n >\n <ix-button\n class=\"confirm-button\"\n onClick={() => {\n this.timeSelect.emit(this._time?.toFormat(this.format));\n }}\n >\n {this.i18nConfirmTime}\n </ix-button>\n </div>\n </ix-date-time-card>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { h } from './p-D-__gyet.js';
2
2
  import { a as a11yBoolean } from './p-Bb7pDeaQ.js';
3
- import { s as shouldSuppressInternalValidation } from './p-xHo-3QVy.js';
3
+ import { s as shouldSuppressInternalValidation } from './p-Dq_H2flK.js';
4
4
  import { c as createMutationObserver } from './p-CX81WQtk.js';
5
5
  import { a as convertToRemString } from './p-JJddxCCh.js';
6
6
  import { a as animate } from './p-DhE1t8Qh.js';
@@ -220,6 +220,6 @@ const SlotStart = (props) => {
220
220
  };
221
221
 
222
222
  export { InputElement as I, SlotEnd as S, TextareaElement as T, addDisposableChangesAndVisibilityObservers as a, adjustPaddingForStartAndEnd as b, SlotStart as c, checkAllowedKeys as d, checkInternalValidity as e, getAriaAttributesForInput as g, handleSubmitOnEnterKeydown as h, mapValidationResult as m, onInputBlur as o };
223
- //# sourceMappingURL=p-g2Y5blor.js.map
223
+ //# sourceMappingURL=p-DUU5I7wZ.js.map
224
224
 
225
- //# sourceMappingURL=p-g2Y5blor.js.map
225
+ //# sourceMappingURL=p-DUU5I7wZ.js.map
@@ -1 +1 @@
1
- {"file":"p-g2Y5blor.js","mappings":"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","names":[],"sources":["src/components/input/input.animation.ts","src/components/input/input.util.ts","src/components/input/input.fc.tsx"],"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 */\nimport { animate } from 'animejs';\nimport Animation from '../utils/animation';\n\nexport function shakeInput(input: HTMLInputElement) {\n const xMax = 5;\n animate(input, {\n duration: Animation.defaultTime,\n easing: 'easeInOutSine',\n loop: 2,\n translateX: [\n {\n value: xMax * -1,\n },\n {\n value: xMax,\n },\n {\n value: xMax / -2,\n },\n {\n value: xMax / 2,\n },\n {\n value: 0,\n },\n ],\n });\n}\n","/*\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 { A11yAttributes, a11yBoolean } from '../utils/a11y';\nimport {\n IxFormComponent,\n IxInputFieldComponent,\n ValidationResults,\n shouldSuppressInternalValidation,\n} from '../utils/input';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport { convertToRemString } from '../utils/rwd.util';\nimport { generateUUID } from '../utils/uuid';\nimport { shakeInput } from './input.animation';\n\nexport function createIdIfNotExists(\n element: IxFormComponent,\n idPrefix: string = 'input'\n) {\n return element.hasAttribute('id')\n ? element.getAttribute('id')\n : `${idPrefix}-${generateUUID()}`;\n}\n\nexport function mapValidationResult<T>(\n ref: IxInputFieldComponent<T>,\n result: ValidationResults\n) {\n ref.isInvalid = result.isInvalid || result.isInvalidByRequired;\n ref.isValid = result.isValid;\n ref.isInfo = result.isInfo;\n ref.isWarning = result.isWarning;\n}\n\nexport function checkAllowedKeys<T>(\n comp: IxInputFieldComponent<T>,\n event: KeyboardEvent\n) {\n if (comp.allowedCharactersPattern) {\n const regex = new RegExp(comp.allowedCharactersPattern);\n if (!regex.test(event.key)) {\n event.preventDefault();\n shakeInput(comp.inputRef.current);\n }\n }\n}\n\nexport async function checkInternalValidity<T>(\n comp: IxFormComponent<T>,\n input: HTMLInputElement | HTMLTextAreaElement\n) {\n const validityState = input.validity;\n const currentValidityState = !comp.hostElement.classList.contains(\n 'ix-invalid--validity-invalid'\n );\n const newValidityState = validityState.valid;\n\n if (currentValidityState !== newValidityState) {\n const eventResult = comp.validityStateChange.emit(validityState);\n if (eventResult.defaultPrevented) {\n return;\n }\n }\n\n if (comp.value === null || comp.value === undefined) {\n return;\n }\n\n const skipValidation = await shouldSuppressInternalValidation(comp);\n if (skipValidation) {\n return;\n }\n\n const { valid } = validityState;\n comp.hostElement.classList.toggle('ix-invalid--validity-invalid', !valid);\n}\n\nexport function onInputBlur<T>(\n comp: IxFormComponent<T>,\n input?: HTMLInputElement | HTMLTextAreaElement | null\n) {\n comp.ixBlur.emit();\n\n if (!input) {\n throw new Error('Input element is not available');\n }\n\n input.setAttribute('data-ix-touched', 'true');\n checkInternalValidity(comp, input);\n}\n\nexport function applyPaddingEnd(\n inputElement: HTMLElement | null,\n width: number,\n options: {\n slotEnd: boolean;\n additionalPaddingRight?: string;\n }\n) {\n if (!inputElement) {\n return;\n }\n\n const remInPixels = 16;\n const padding = convertToRemString(width + remInPixels / 2);\n\n if (options.slotEnd) {\n inputElement.style.paddingRight = `calc(${padding} + ${\n options.additionalPaddingRight ?? '0rem'\n })`;\n } else {\n inputElement.style.paddingLeft = padding;\n }\n}\n\nexport function adjustPaddingForStartAndEnd(\n startElement: HTMLElement | null,\n endElement: HTMLElement | null,\n inputElement: HTMLElement | null\n) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (startElement) {\n const startBoundingRect = startElement.getBoundingClientRect();\n if (startBoundingRect) {\n applyPaddingEnd(inputElement, startBoundingRect.width, {\n slotEnd: false,\n });\n }\n }\n\n if (endElement) {\n const endBoundingRect = endElement.getBoundingClientRect();\n if (endBoundingRect) {\n applyPaddingEnd(inputElement, endBoundingRect.width, {\n slotEnd: true,\n });\n }\n }\n });\n });\n}\n\nexport function getAriaAttributesForInput(\n component: IxInputFieldComponent\n): A11yAttributes {\n const inputAria: A11yAttributes = {\n 'aria-invalid': `${a11yBoolean(component.isInvalid)}`,\n 'aria-required': `${a11yBoolean(component.required)}`,\n };\n\n if (component.isInvalid && component.invalidText) {\n inputAria['aria-errormessage'] = component.invalidText;\n }\n return inputAria;\n}\n\nexport type DisposableChangesAndVisibilityObservers = () => void;\n\nexport const addDisposableChangesAndVisibilityObservers = (\n element: HTMLElement,\n callback: () => void\n): DisposableChangesAndVisibilityObservers => {\n const intersectionObserver = observeElementUntilVisible(element, callback);\n const mutationObserver = createMutationObserver(callback);\n\n mutationObserver.observe(element, {\n subtree: true,\n attributes: true,\n });\n\n return () => {\n intersectionObserver.disconnect();\n mutationObserver.disconnect();\n };\n};\n\nfunction observeElementUntilVisible(\n hostElement: HTMLElement,\n updateCallback: () => void\n): IntersectionObserver {\n const intersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n updateCallback();\n }\n });\n });\n\n intersectionObserver.observe(hostElement);\n return intersectionObserver;\n}\n\nexport function handleSubmitOnEnterKeydown(\n event: KeyboardEvent,\n suppressSubmitOnEnter: boolean,\n form: HTMLFormElement | null | undefined\n) {\n if (suppressSubmitOnEnter || event.key !== 'Enter' || !form) {\n return;\n }\n\n event.preventDefault();\n const submitButton = form.querySelector<HTMLElement>(\n 'button[type=\"submit\"], ix-button[type=\"submit\"]'\n );\n\n if (submitButton) {\n form.requestSubmit(submitButton);\n }\n\n if (form.length === 1) {\n form.requestSubmit();\n }\n}\n","/*\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 */\nimport { FunctionalComponent, h } from '@stencil/core';\nimport { A11yAttributes } from '../utils/a11y';\nimport { handleSubmitOnEnterKeydown } from './input.util';\nimport { MakeRef } from '../utils/make-ref';\n\nexport function TextareaElement(\n props: Readonly<{\n resizeBehavior: 'both' | 'horizontal' | 'vertical' | 'none';\n textareaHeight?: string;\n textareaWidth?: string;\n textareaRows?: number;\n textareaCols?: number;\n disabled: boolean;\n readonly: boolean;\n maxLength?: number;\n minLength?: number;\n isInvalid: boolean;\n required: boolean;\n value: string;\n placeholder?: string;\n textAreaRef: (el: HTMLTextAreaElement | undefined) => void;\n valueChange: (value: string) => void;\n updateFormInternalValue: (value: string) => void;\n onBlur: () => void;\n ariaAttributes?: A11yAttributes;\n }>\n) {\n return (\n <textarea\n readOnly={props.readonly}\n disabled={props.disabled}\n maxLength={props.maxLength}\n minLength={props.minLength}\n cols={props.textareaCols}\n rows={props.textareaRows}\n ref={props.textAreaRef}\n class={{\n 'is-invalid': props.isInvalid,\n }}\n required={props.required}\n value={props.value}\n placeholder={props.placeholder}\n onInput={(inputEvent) => {\n const target = inputEvent.target as HTMLInputElement;\n props.updateFormInternalValue(target.value);\n props.valueChange(target.value);\n }}\n onBlur={() => props.onBlur()}\n style={{\n resize: props.resizeBehavior,\n height: props.textareaHeight,\n width: props.textareaWidth,\n }}\n {...props.ariaAttributes}\n ></textarea>\n );\n}\n\nexport function InputElement(\n props: Readonly<{\n id: string;\n disabled: boolean;\n readonly: boolean;\n maxLength?: string | number;\n minLength?: string | number;\n max?: string | number;\n min?: string | number;\n step?: string | number;\n pattern?: string;\n type: string;\n isInvalid: boolean;\n required: boolean;\n value: string | number;\n placeholder?: string;\n textAlignment?: 'start' | 'end';\n inputRef: (el: HTMLInputElement | undefined) => void;\n onKeyPress: (event: KeyboardEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onBeforeInput?: (event: InputEvent) => void;\n onPaste?: (event: ClipboardEvent) => void;\n valueChange: (value: string) => void;\n updateFormInternalValue: (value: string) => void;\n onBlur: () => void;\n ariaAttributes?: A11yAttributes;\n form?: HTMLFormElement;\n suppressSubmitOnEnter?: boolean;\n }>\n) {\n return (\n <input\n id={props.id}\n autoComplete=\"off\"\n readOnly={props.readonly}\n disabled={props.disabled}\n step={props.step}\n min={props.min}\n max={props.max}\n maxLength={props.maxLength ? Number(props.maxLength) : undefined}\n minLength={props.minLength ? Number(props.minLength) : undefined}\n ref={props.inputRef}\n pattern={props.pattern}\n type={props.type}\n class={{\n 'is-invalid': props.isInvalid,\n }}\n style={{\n textAlign: props.textAlignment,\n }}\n required={props.required}\n value={props.value}\n placeholder={props.placeholder}\n onKeyPress={(event) => props.onKeyPress(event)}\n onKeyDown={(e) => {\n props.onKeyDown?.(e);\n handleSubmitOnEnterKeydown(\n e,\n !!props.suppressSubmitOnEnter,\n props.form\n );\n }}\n {...({\n onBeforeInput: (event: InputEvent) => props.onBeforeInput?.(event),\n } as any)}\n onPaste={(event) => props.onPaste?.(event)}\n onInput={(inputEvent) => {\n const target = inputEvent.target as HTMLInputElement;\n props.updateFormInternalValue(target.value);\n props.valueChange(target.value);\n }}\n onBlur={() => props.onBlur()}\n {...props.ariaAttributes}\n ></input>\n );\n}\n\nexport const SlotEnd: FunctionalComponent<{\n slotEndRef: MakeRef<HTMLDivElement>;\n onSlotChange?: (e: Event) => void;\n}> = (props, children) => {\n return (\n <div class=\"end-container\" ref={props.slotEndRef}>\n <slot name=\"end\" onSlotchange={props.onSlotChange}></slot>\n {children}\n </div>\n );\n};\n\nexport const SlotStart: FunctionalComponent<{\n slotStartRef: MakeRef<HTMLDivElement>;\n onSlotChange?: (e: Event) => void;\n}> = (props) => {\n return (\n <div class=\"start-container\" ref={props.slotStartRef}>\n <slot name=\"start\" onSlotchange={props.onSlotChange}></slot>\n </div>\n );\n};\n"],"version":3}
1
+ {"file":"p-DUU5I7wZ.js","mappings":"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","names":[],"sources":["src/components/input/input.animation.ts","src/components/input/input.util.ts","src/components/input/input.fc.tsx"],"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 */\nimport { animate } from 'animejs';\nimport Animation from '../utils/animation';\n\nexport function shakeInput(input: HTMLInputElement) {\n const xMax = 5;\n animate(input, {\n duration: Animation.defaultTime,\n easing: 'easeInOutSine',\n loop: 2,\n translateX: [\n {\n value: xMax * -1,\n },\n {\n value: xMax,\n },\n {\n value: xMax / -2,\n },\n {\n value: xMax / 2,\n },\n {\n value: 0,\n },\n ],\n });\n}\n","/*\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 { A11yAttributes, a11yBoolean } from '../utils/a11y';\nimport {\n IxFormComponent,\n IxInputFieldComponent,\n ValidationResults,\n shouldSuppressInternalValidation,\n} from '../utils/input';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport { convertToRemString } from '../utils/rwd.util';\nimport { generateUUID } from '../utils/uuid';\nimport { shakeInput } from './input.animation';\n\nexport function createIdIfNotExists(\n element: IxFormComponent,\n idPrefix: string = 'input'\n) {\n return element.hasAttribute('id')\n ? element.getAttribute('id')\n : `${idPrefix}-${generateUUID()}`;\n}\n\nexport function mapValidationResult<T>(\n ref: IxInputFieldComponent<T>,\n result: ValidationResults\n) {\n ref.isInvalid = result.isInvalid || result.isInvalidByRequired;\n ref.isValid = result.isValid;\n ref.isInfo = result.isInfo;\n ref.isWarning = result.isWarning;\n}\n\nexport function checkAllowedKeys<T>(\n comp: IxInputFieldComponent<T>,\n event: KeyboardEvent\n) {\n if (comp.allowedCharactersPattern) {\n const regex = new RegExp(comp.allowedCharactersPattern);\n if (!regex.test(event.key)) {\n event.preventDefault();\n shakeInput(comp.inputRef.current);\n }\n }\n}\n\nexport async function checkInternalValidity<T>(\n comp: IxFormComponent<T>,\n input: HTMLInputElement | HTMLTextAreaElement\n) {\n const validityState = input.validity;\n const currentValidityState = !comp.hostElement.classList.contains(\n 'ix-invalid--validity-invalid'\n );\n const newValidityState = validityState.valid;\n\n if (currentValidityState !== newValidityState) {\n const eventResult = comp.validityStateChange.emit(validityState);\n if (eventResult.defaultPrevented) {\n return;\n }\n }\n\n if (comp.value === null || comp.value === undefined) {\n return;\n }\n\n const skipValidation = await shouldSuppressInternalValidation(comp);\n if (skipValidation) {\n return;\n }\n\n const { valid } = validityState;\n comp.hostElement.classList.toggle('ix-invalid--validity-invalid', !valid);\n}\n\nexport function onInputBlur<T>(\n comp: IxFormComponent<T>,\n input?: HTMLInputElement | HTMLTextAreaElement | null\n) {\n comp.ixBlur.emit();\n\n if (!input) {\n throw new Error('Input element is not available');\n }\n\n input.setAttribute('data-ix-touched', 'true');\n checkInternalValidity(comp, input);\n}\n\nexport function applyPaddingEnd(\n inputElement: HTMLElement | null,\n width: number,\n options: {\n slotEnd: boolean;\n additionalPaddingRight?: string;\n }\n) {\n if (!inputElement) {\n return;\n }\n\n const remInPixels = 16;\n const padding = convertToRemString(width + remInPixels / 2);\n\n if (options.slotEnd) {\n inputElement.style.paddingRight = `calc(${padding} + ${\n options.additionalPaddingRight ?? '0rem'\n })`;\n } else {\n inputElement.style.paddingLeft = padding;\n }\n}\n\nexport function adjustPaddingForStartAndEnd(\n startElement: HTMLElement | null,\n endElement: HTMLElement | null,\n inputElement: HTMLElement | null\n) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (startElement) {\n const startBoundingRect = startElement.getBoundingClientRect();\n if (startBoundingRect) {\n applyPaddingEnd(inputElement, startBoundingRect.width, {\n slotEnd: false,\n });\n }\n }\n\n if (endElement) {\n const endBoundingRect = endElement.getBoundingClientRect();\n if (endBoundingRect) {\n applyPaddingEnd(inputElement, endBoundingRect.width, {\n slotEnd: true,\n });\n }\n }\n });\n });\n}\n\nexport function getAriaAttributesForInput(\n component: IxInputFieldComponent\n): A11yAttributes {\n const inputAria: A11yAttributes = {\n 'aria-invalid': `${a11yBoolean(component.isInvalid)}`,\n 'aria-required': `${a11yBoolean(component.required)}`,\n };\n\n if (component.isInvalid && component.invalidText) {\n inputAria['aria-errormessage'] = component.invalidText;\n }\n return inputAria;\n}\n\nexport type DisposableChangesAndVisibilityObservers = () => void;\n\nexport const addDisposableChangesAndVisibilityObservers = (\n element: HTMLElement,\n callback: () => void\n): DisposableChangesAndVisibilityObservers => {\n const intersectionObserver = observeElementUntilVisible(element, callback);\n const mutationObserver = createMutationObserver(callback);\n\n mutationObserver.observe(element, {\n subtree: true,\n attributes: true,\n });\n\n return () => {\n intersectionObserver.disconnect();\n mutationObserver.disconnect();\n };\n};\n\nfunction observeElementUntilVisible(\n hostElement: HTMLElement,\n updateCallback: () => void\n): IntersectionObserver {\n const intersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n updateCallback();\n }\n });\n });\n\n intersectionObserver.observe(hostElement);\n return intersectionObserver;\n}\n\nexport function handleSubmitOnEnterKeydown(\n event: KeyboardEvent,\n suppressSubmitOnEnter: boolean,\n form: HTMLFormElement | null | undefined\n) {\n if (suppressSubmitOnEnter || event.key !== 'Enter' || !form) {\n return;\n }\n\n event.preventDefault();\n const submitButton = form.querySelector<HTMLElement>(\n 'button[type=\"submit\"], ix-button[type=\"submit\"]'\n );\n\n if (submitButton) {\n form.requestSubmit(submitButton);\n }\n\n if (form.length === 1) {\n form.requestSubmit();\n }\n}\n","/*\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 */\nimport { FunctionalComponent, h } from '@stencil/core';\nimport { A11yAttributes } from '../utils/a11y';\nimport { handleSubmitOnEnterKeydown } from './input.util';\nimport { MakeRef } from '../utils/make-ref';\n\nexport function TextareaElement(\n props: Readonly<{\n resizeBehavior: 'both' | 'horizontal' | 'vertical' | 'none';\n textareaHeight?: string;\n textareaWidth?: string;\n textareaRows?: number;\n textareaCols?: number;\n disabled: boolean;\n readonly: boolean;\n maxLength?: number;\n minLength?: number;\n isInvalid: boolean;\n required: boolean;\n value: string;\n placeholder?: string;\n textAreaRef: (el: HTMLTextAreaElement | undefined) => void;\n valueChange: (value: string) => void;\n updateFormInternalValue: (value: string) => void;\n onBlur: () => void;\n ariaAttributes?: A11yAttributes;\n }>\n) {\n return (\n <textarea\n readOnly={props.readonly}\n disabled={props.disabled}\n maxLength={props.maxLength}\n minLength={props.minLength}\n cols={props.textareaCols}\n rows={props.textareaRows}\n ref={props.textAreaRef}\n class={{\n 'is-invalid': props.isInvalid,\n }}\n required={props.required}\n value={props.value}\n placeholder={props.placeholder}\n onInput={(inputEvent) => {\n const target = inputEvent.target as HTMLInputElement;\n props.updateFormInternalValue(target.value);\n props.valueChange(target.value);\n }}\n onBlur={() => props.onBlur()}\n style={{\n resize: props.resizeBehavior,\n height: props.textareaHeight,\n width: props.textareaWidth,\n }}\n {...props.ariaAttributes}\n ></textarea>\n );\n}\n\nexport function InputElement(\n props: Readonly<{\n id: string;\n disabled: boolean;\n readonly: boolean;\n maxLength?: string | number;\n minLength?: string | number;\n max?: string | number;\n min?: string | number;\n step?: string | number;\n pattern?: string;\n type: string;\n isInvalid: boolean;\n required: boolean;\n value: string | number;\n placeholder?: string;\n textAlignment?: 'start' | 'end';\n inputRef: (el: HTMLInputElement | undefined) => void;\n onKeyPress: (event: KeyboardEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onBeforeInput?: (event: InputEvent) => void;\n onPaste?: (event: ClipboardEvent) => void;\n valueChange: (value: string) => void;\n updateFormInternalValue: (value: string) => void;\n onBlur: () => void;\n ariaAttributes?: A11yAttributes;\n form?: HTMLFormElement;\n suppressSubmitOnEnter?: boolean;\n }>\n) {\n return (\n <input\n id={props.id}\n autoComplete=\"off\"\n readOnly={props.readonly}\n disabled={props.disabled}\n step={props.step}\n min={props.min}\n max={props.max}\n maxLength={props.maxLength ? Number(props.maxLength) : undefined}\n minLength={props.minLength ? Number(props.minLength) : undefined}\n ref={props.inputRef}\n pattern={props.pattern}\n type={props.type}\n class={{\n 'is-invalid': props.isInvalid,\n }}\n style={{\n textAlign: props.textAlignment,\n }}\n required={props.required}\n value={props.value}\n placeholder={props.placeholder}\n onKeyPress={(event) => props.onKeyPress(event)}\n onKeyDown={(e) => {\n props.onKeyDown?.(e);\n handleSubmitOnEnterKeydown(\n e,\n !!props.suppressSubmitOnEnter,\n props.form\n );\n }}\n {...({\n onBeforeInput: (event: InputEvent) => props.onBeforeInput?.(event),\n } as any)}\n onPaste={(event) => props.onPaste?.(event)}\n onInput={(inputEvent) => {\n const target = inputEvent.target as HTMLInputElement;\n props.updateFormInternalValue(target.value);\n props.valueChange(target.value);\n }}\n onBlur={() => props.onBlur()}\n {...props.ariaAttributes}\n ></input>\n );\n}\n\nexport const SlotEnd: FunctionalComponent<{\n slotEndRef: MakeRef<HTMLDivElement>;\n onSlotChange?: (e: Event) => void;\n}> = (props, children) => {\n return (\n <div class=\"end-container\" ref={props.slotEndRef}>\n <slot name=\"end\" onSlotchange={props.onSlotChange}></slot>\n {children}\n </div>\n );\n};\n\nexport const SlotStart: FunctionalComponent<{\n slotStartRef: MakeRef<HTMLDivElement>;\n onSlotChange?: (e: Event) => void;\n}> = (props) => {\n return (\n <div class=\"start-container\" ref={props.slotStartRef}>\n <slot name=\"start\" onSlotchange={props.onSlotChange}></slot>\n </div>\n );\n};\n"],"version":3}
@@ -112,8 +112,14 @@ function HookValidationLifecycle(options) {
112
112
  };
113
113
  };
114
114
  }
115
+ function getValidationText(isInputInvalid, customInvalidText, i18nFallbackText) {
116
+ if (isInputInvalid) {
117
+ return customInvalidText !== null && customInvalidText !== void 0 ? customInvalidText : i18nFallbackText;
118
+ }
119
+ return customInvalidText;
120
+ }
115
121
 
116
- export { HookValidationLifecycle as H, checkFieldClasses as a, createClassMutationObserver as c, shouldSuppressInternalValidation as s };
117
- //# sourceMappingURL=p-xHo-3QVy.js.map
122
+ export { HookValidationLifecycle as H, checkFieldClasses as a, createClassMutationObserver as c, getValidationText as g, shouldSuppressInternalValidation as s };
123
+ //# sourceMappingURL=p-Dq_H2flK.js.map
118
124
 
119
- //# sourceMappingURL=p-xHo-3QVy.js.map
125
+ //# sourceMappingURL=p-Dq_H2flK.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-Dq_H2flK.js","mappings":"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","names":[],"sources":["src/components/utils/input/validation.ts"],"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 */\nimport { getElement } from '@stencil/core';\nimport { HTMLIxFormComponentElement, IxFormComponent } from '.';\nimport { IxComponent } from '../internal';\n\nexport type ClassMutationObserver = {\n destroy: () => void;\n};\n\nexport async function isTouched<T>(host: IxFormComponent<T>) {\n if (typeof host.isTouched === 'function') {\n return host.isTouched();\n }\n}\n\nexport async function shouldSuppressInternalValidation<T>(\n host: IxFormComponent<T>\n) {\n if (\n host.getAssociatedFormElement &&\n typeof host.getAssociatedFormElement === 'function'\n ) {\n const form = await host.getAssociatedFormElement();\n\n if (!form) {\n return false;\n }\n\n return form.noValidate;\n }\n\n return false;\n}\n\nexport function createClassMutationObserver(\n element: HTMLElement,\n callback: () => void,\n options?: {\n includeChildren?: boolean;\n }\n): ClassMutationObserver {\n const observer = new MutationObserver(callback);\n observer.observe(element, {\n subtree: options?.includeChildren,\n childList: options?.includeChildren,\n attributes: true,\n attributeFilter: ['class'],\n });\n\n return {\n destroy() {\n observer.disconnect();\n },\n };\n}\n\nexport type ValidationResultProperty =\n | 'isInvalid'\n | 'isInvalidByRequired'\n | 'isValid'\n | 'isInfo'\n | 'isWarning';\nexport type ValidationResults = Record<ValidationResultProperty, boolean>;\n\nfunction classListContains(\n hostElement: HTMLIxFormComponentElement<unknown>,\n className: string,\n includeChildren: boolean\n) {\n return (\n hostElement.classList.contains(`${className}`) ||\n (includeChildren ? !!hostElement.querySelector(`.${className}`) : false)\n );\n}\n\nexport function checkFieldClasses(\n hostElement: HTMLIxFormComponentElement<unknown>,\n includeChildren = false\n): ValidationResults {\n return {\n isInvalid:\n classListContains(hostElement, 'ix-invalid', includeChildren) ||\n classListContains(\n hostElement,\n 'ix-invalid--validity-invalid',\n includeChildren\n ),\n isInvalidByRequired: classListContains(\n hostElement,\n 'ix-invalid--required',\n includeChildren\n ),\n isValid: classListContains(hostElement, 'ix-valid', includeChildren),\n isInfo: classListContains(hostElement, 'ix-info', includeChildren),\n isWarning: classListContains(hostElement, 'ix-warning', includeChildren),\n };\n}\n\nexport function HookValidationLifecycle(options?: {\n includeChildren?: boolean;\n}) {\n return (proto: IxComponent, methodName: string) => {\n let checkIfRequiredFunction: (() => Promise<void>) | null;\n let classMutationObserver: ClassMutationObserver | null;\n const { componentWillLoad, disconnectedCallback, connectedCallback } =\n proto;\n\n proto.connectedCallback = function () {\n const host = getElement(\n this\n ) as unknown as HTMLIxFormComponentElement<unknown>;\n\n checkIfRequiredFunction = async () => {\n const skipValidation = await shouldSuppressInternalValidation(host);\n if (skipValidation) {\n return;\n }\n\n if (host.hasValidValue && typeof host.hasValidValue === 'function') {\n const hasValue = await host.hasValidValue();\n const touched = await isTouched(host);\n\n if (host.required) {\n host.classList.toggle('ix-invalid--required', !hasValue && touched);\n } else {\n host.classList.remove('ix-invalid--required');\n }\n }\n\n if (\n host.getValidityState &&\n typeof host.getValidityState === 'function'\n ) {\n const validityState = await host.getValidityState();\n\n host.classList.toggle(\n `ix-invalid--validity-patternMismatch`,\n validityState.patternMismatch\n );\n }\n };\n\n host.addEventListener('checkedChange', checkIfRequiredFunction);\n host.addEventListener('valueChange', checkIfRequiredFunction);\n host.addEventListener('ixBlur', checkIfRequiredFunction);\n setTimeout(checkIfRequiredFunction);\n return connectedCallback?.call(this);\n };\n\n proto.componentWillLoad = function () {\n const host = getElement(\n this\n ) as unknown as HTMLIxFormComponentElement<unknown>;\n classMutationObserver = createClassMutationObserver(\n host,\n () => {\n const result = checkFieldClasses(host, options?.includeChildren);\n proto[methodName].call(this, result);\n },\n options\n );\n const result = checkFieldClasses(host, options?.includeChildren);\n proto[methodName].call(this, result);\n return componentWillLoad?.call(this);\n };\n\n proto.disconnectedCallback = function () {\n const host = getElement(this);\n\n if (host && classMutationObserver) {\n classMutationObserver.destroy();\n classMutationObserver = null;\n }\n\n if (host && checkIfRequiredFunction) {\n host.removeEventListener('checkedChange', checkIfRequiredFunction);\n host.removeEventListener('valueChange', checkIfRequiredFunction);\n host.removeEventListener('ixBlur', checkIfRequiredFunction);\n checkIfRequiredFunction = null;\n }\n\n return disconnectedCallback?.call(this);\n };\n };\n}\n\nexport function getValidationText(\n isInputInvalid: boolean,\n customInvalidText: string | undefined,\n i18nFallbackText: string\n): string | undefined {\n if (isInputInvalid) {\n return customInvalidText ?? i18nFallbackText;\n }\n return customInvalidText;\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["src/components/category-filter/filter-state.ts","src/components/toast/toast-utils.ts","src/components/utils/modal/loading.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 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 { LogicalFilterOperator } from './logical-filter-operator';\nexport class FilterState {\n public tokens: string[] = [];\n public categories: {\n id: string;\n value: string;\n operator: LogicalFilterOperator;\n }[] = [];\n}\n","/*\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 */\nimport type { ShowToastResult } from './toast-container.types';\nexport type ToastType = 'info' | 'success' | 'error' | 'warning';\nexport type ToastPosition = 'bottom-right' | 'top-right';\n\nexport interface ToastConfig {\n /**\n * Title of the toast\n */\n title?: string;\n /**\n * Message of the toast\n */\n message?: string | HTMLElement;\n /**\n * Action element that is displayed below the toast message/title\n */\n action?: HTMLElement;\n /**\n * Type of the toast\n */\n type?: ToastType;\n /**\n * Controls whether the toast closes automatically after a delay\n */\n autoClose?: boolean;\n /**\n * Sets the delay for autoClose in milliseconds\n */\n autoCloseDelay?: number;\n /**\n * Icon that is displayed with the toast\n */\n icon?: string;\n /**\n * Color of the icon\n */\n iconColor?: string;\n}\n\nexport function getToastContainer() {\n const containerList = Array.from(\n document.querySelectorAll('ix-toast-container')\n );\n const [container] = containerList;\n if (containerList.length > 1) {\n console.warn(\n 'Multiple toast containers were found. Only the first one will be used.'\n );\n return container;\n }\n if (!container) {\n const toastContainer = document.createElement('ix-toast-container');\n document.body.appendChild(toastContainer);\n\n return toastContainer;\n }\n return container;\n}\n\nexport function setToastPosition(position: ToastPosition) {\n const container = getToastContainer();\n container.setAttribute('position', position);\n}\n\nfunction toast(config: ToastConfig): Promise<ShowToastResult> {\n const container = getToastContainer();\n return container.showToast(config);\n}\n\ntoast.info = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'info',\n });\n};\n\ntoast.error = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'error',\n });\n};\n\ntoast.success = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'success',\n });\n};\n\ntoast.warning = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'warning',\n });\n};\n\nexport { toast };\n","/*\n * SPDX-FileCopyrightText: 2023 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 Animation from '../animation';\nimport { getCoreDelegate } from '../delegate';\n\nexport function showModalLoading(message: string) {\n const modal = document.createElement('ix-modal');\n modal.disableEscapeClose = true;\n\n const loading = document.createElement('ix-modal-loading');\n loading.innerText = message;\n modal.appendChild(loading);\n\n getCoreDelegate().attachView(modal);\n modal.showModal();\n\n return {\n update: (text: string) => (loading.innerHTML = text),\n finish: (text?: string, timeout: number = 250) => {\n if (text !== undefined) {\n loading.innerText = text;\n } else {\n timeout = 0;\n }\n setTimeout(() => {\n modal.closeModal(null);\n setTimeout(\n async () => await getCoreDelegate().removeView(modal),\n Animation.mediumTime\n );\n }, timeout);\n },\n };\n}\n"],"names":["modal","getCoreDelegate","Animation"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["src/components/category-filter/filter-state.ts","src/components/toast/toast-utils.ts","src/components/utils/modal/loading.ts"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 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 { LogicalFilterOperator } from './logical-filter-operator';\nexport class FilterState {\n public tokens: string[] = [];\n public categories: {\n id: string;\n value: string;\n operator: LogicalFilterOperator;\n }[] = [];\n}\n","/*\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 */\nimport type { ShowToastResult } from './toast-container.types';\nexport type ToastType = 'info' | 'success' | 'error' | 'warning';\nexport type ToastPosition = 'bottom-right' | 'top-right';\n\nexport interface ToastConfig {\n /**\n * Title of the toast\n */\n title?: string;\n /**\n * Message of the toast\n */\n message?: string | HTMLElement;\n /**\n * Action element that is displayed below the toast message/title\n */\n action?: HTMLElement;\n /**\n * Type of the toast\n */\n type?: ToastType;\n /**\n * Controls whether the toast closes automatically after a delay\n */\n autoClose?: boolean;\n /**\n * Sets the delay for autoClose in milliseconds\n */\n autoCloseDelay?: number;\n /**\n * Icon that is displayed with the toast\n */\n icon?: string;\n /**\n * Color of the icon\n */\n iconColor?: string;\n}\n\nexport function getToastContainer() {\n const containerList = Array.from(\n document.querySelectorAll('ix-toast-container')\n );\n const [container] = containerList;\n if (containerList.length > 1) {\n console.warn(\n 'Multiple toast containers were found. Only the first one will be used.'\n );\n return container;\n }\n if (!container) {\n const toastContainer = document.createElement('ix-toast-container');\n document.body.appendChild(toastContainer);\n\n return toastContainer;\n }\n return container;\n}\n\nexport function setToastPosition(position: ToastPosition) {\n const container = getToastContainer();\n container.setAttribute('position', position);\n}\n\nfunction toast(config: ToastConfig): Promise<ShowToastResult> {\n const container = getToastContainer();\n return container.showToast(config);\n}\n\ntoast.info = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'info',\n });\n};\n\ntoast.error = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'error',\n });\n};\n\ntoast.success = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'success',\n });\n};\n\ntoast.warning = (config: ToastConfig) => {\n return toast({\n ...config,\n type: 'warning',\n });\n};\n\nexport { toast };\n","/*\n * SPDX-FileCopyrightText: 2023 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 Animation from '../animation';\nimport { getCoreDelegate } from '../delegate';\n\nexport type ModalLoadingContext = {\n update: (text: string) => string;\n finish: (text?: string, timeout?: number) => void;\n};\n\nexport function showModalLoading(message: string) {\n const modal = document.createElement('ix-modal');\n modal.disableEscapeClose = true;\n\n const loading = document.createElement('ix-modal-loading');\n loading.innerText = message;\n modal.appendChild(loading);\n\n getCoreDelegate().attachView(modal);\n modal.showModal();\n\n return {\n update: (text: string) => (loading.innerHTML = text),\n finish: (text?: string, timeout: number = 250) => {\n if (text !== undefined) {\n loading.innerText = text;\n } else {\n timeout = 0;\n }\n setTimeout(() => {\n modal.closeModal(null);\n setTimeout(\n async () => await getCoreDelegate().removeView(modal),\n Animation.mediumTime\n );\n }, timeout);\n },\n };\n}\n"],"names":["modal","getCoreDelegate","Animation"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-C8Xo8L1k.js');
4
4
  var a11y = require('./a11y-B_6chCvu.js');
5
- var validation = require('./validation-CfL71_0d.js');
5
+ var validation = require('./validation-DTmSqO2d.js');
6
6
  var mutationObserver = require('./mutation-observer-DE0YMfYu.js');
7
7
  var rwd_util = require('./rwd.util-GTn-vgCJ.js');
8
8
  var anime_esm = require('./anime.esm-AXTM6yn_.js');
@@ -233,6 +233,6 @@ exports.getAriaAttributesForInput = getAriaAttributesForInput;
233
233
  exports.handleSubmitOnEnterKeydown = handleSubmitOnEnterKeydown;
234
234
  exports.mapValidationResult = mapValidationResult;
235
235
  exports.onInputBlur = onInputBlur;
236
- //# sourceMappingURL=input.fc-B5JMSZbY.js.map
236
+ //# sourceMappingURL=input.fc-DrxRYq_G.js.map
237
237
 
238
- //# sourceMappingURL=input.fc-B5JMSZbY.js.map
238
+ //# sourceMappingURL=input.fc-DrxRYq_G.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.fc-B5JMSZbY.js","sources":["src/components/input/input.animation.ts","src/components/input/input.util.ts","src/components/input/input.fc.tsx"],"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 */\nimport { animate } from 'animejs';\nimport Animation from '../utils/animation';\n\nexport function shakeInput(input: HTMLInputElement) {\n const xMax = 5;\n animate(input, {\n duration: Animation.defaultTime,\n easing: 'easeInOutSine',\n loop: 2,\n translateX: [\n {\n value: xMax * -1,\n },\n {\n value: xMax,\n },\n {\n value: xMax / -2,\n },\n {\n value: xMax / 2,\n },\n {\n value: 0,\n },\n ],\n });\n}\n","/*\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 { A11yAttributes, a11yBoolean } from '../utils/a11y';\nimport {\n IxFormComponent,\n IxInputFieldComponent,\n ValidationResults,\n shouldSuppressInternalValidation,\n} from '../utils/input';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport { convertToRemString } from '../utils/rwd.util';\nimport { generateUUID } from '../utils/uuid';\nimport { shakeInput } from './input.animation';\n\nexport function createIdIfNotExists(\n element: IxFormComponent,\n idPrefix: string = 'input'\n) {\n return element.hasAttribute('id')\n ? element.getAttribute('id')\n : `${idPrefix}-${generateUUID()}`;\n}\n\nexport function mapValidationResult<T>(\n ref: IxInputFieldComponent<T>,\n result: ValidationResults\n) {\n ref.isInvalid = result.isInvalid || result.isInvalidByRequired;\n ref.isValid = result.isValid;\n ref.isInfo = result.isInfo;\n ref.isWarning = result.isWarning;\n}\n\nexport function checkAllowedKeys<T>(\n comp: IxInputFieldComponent<T>,\n event: KeyboardEvent\n) {\n if (comp.allowedCharactersPattern) {\n const regex = new RegExp(comp.allowedCharactersPattern);\n if (!regex.test(event.key)) {\n event.preventDefault();\n shakeInput(comp.inputRef.current);\n }\n }\n}\n\nexport async function checkInternalValidity<T>(\n comp: IxFormComponent<T>,\n input: HTMLInputElement | HTMLTextAreaElement\n) {\n const validityState = input.validity;\n const currentValidityState = !comp.hostElement.classList.contains(\n 'ix-invalid--validity-invalid'\n );\n const newValidityState = validityState.valid;\n\n if (currentValidityState !== newValidityState) {\n const eventResult = comp.validityStateChange.emit(validityState);\n if (eventResult.defaultPrevented) {\n return;\n }\n }\n\n if (comp.value === null || comp.value === undefined) {\n return;\n }\n\n const skipValidation = await shouldSuppressInternalValidation(comp);\n if (skipValidation) {\n return;\n }\n\n const { valid } = validityState;\n comp.hostElement.classList.toggle('ix-invalid--validity-invalid', !valid);\n}\n\nexport function onInputBlur<T>(\n comp: IxFormComponent<T>,\n input?: HTMLInputElement | HTMLTextAreaElement | null\n) {\n comp.ixBlur.emit();\n\n if (!input) {\n throw new Error('Input element is not available');\n }\n\n input.setAttribute('data-ix-touched', 'true');\n checkInternalValidity(comp, input);\n}\n\nexport function applyPaddingEnd(\n inputElement: HTMLElement | null,\n width: number,\n options: {\n slotEnd: boolean;\n additionalPaddingRight?: string;\n }\n) {\n if (!inputElement) {\n return;\n }\n\n const remInPixels = 16;\n const padding = convertToRemString(width + remInPixels / 2);\n\n if (options.slotEnd) {\n inputElement.style.paddingRight = `calc(${padding} + ${\n options.additionalPaddingRight ?? '0rem'\n })`;\n } else {\n inputElement.style.paddingLeft = padding;\n }\n}\n\nexport function adjustPaddingForStartAndEnd(\n startElement: HTMLElement | null,\n endElement: HTMLElement | null,\n inputElement: HTMLElement | null\n) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (startElement) {\n const startBoundingRect = startElement.getBoundingClientRect();\n if (startBoundingRect) {\n applyPaddingEnd(inputElement, startBoundingRect.width, {\n slotEnd: false,\n });\n }\n }\n\n if (endElement) {\n const endBoundingRect = endElement.getBoundingClientRect();\n if (endBoundingRect) {\n applyPaddingEnd(inputElement, endBoundingRect.width, {\n slotEnd: true,\n });\n }\n }\n });\n });\n}\n\nexport function getAriaAttributesForInput(\n component: IxInputFieldComponent\n): A11yAttributes {\n const inputAria: A11yAttributes = {\n 'aria-invalid': `${a11yBoolean(component.isInvalid)}`,\n 'aria-required': `${a11yBoolean(component.required)}`,\n };\n\n if (component.isInvalid && component.invalidText) {\n inputAria['aria-errormessage'] = component.invalidText;\n }\n return inputAria;\n}\n\nexport type DisposableChangesAndVisibilityObservers = () => void;\n\nexport const addDisposableChangesAndVisibilityObservers = (\n element: HTMLElement,\n callback: () => void\n): DisposableChangesAndVisibilityObservers => {\n const intersectionObserver = observeElementUntilVisible(element, callback);\n const mutationObserver = createMutationObserver(callback);\n\n mutationObserver.observe(element, {\n subtree: true,\n attributes: true,\n });\n\n return () => {\n intersectionObserver.disconnect();\n mutationObserver.disconnect();\n };\n};\n\nfunction observeElementUntilVisible(\n hostElement: HTMLElement,\n updateCallback: () => void\n): IntersectionObserver {\n const intersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n updateCallback();\n }\n });\n });\n\n intersectionObserver.observe(hostElement);\n return intersectionObserver;\n}\n\nexport function handleSubmitOnEnterKeydown(\n event: KeyboardEvent,\n suppressSubmitOnEnter: boolean,\n form: HTMLFormElement | null | undefined\n) {\n if (suppressSubmitOnEnter || event.key !== 'Enter' || !form) {\n return;\n }\n\n event.preventDefault();\n const submitButton = form.querySelector<HTMLElement>(\n 'button[type=\"submit\"], ix-button[type=\"submit\"]'\n );\n\n if (submitButton) {\n form.requestSubmit(submitButton);\n }\n\n if (form.length === 1) {\n form.requestSubmit();\n }\n}\n","/*\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 */\nimport { FunctionalComponent, h } from '@stencil/core';\nimport { A11yAttributes } from '../utils/a11y';\nimport { handleSubmitOnEnterKeydown } from './input.util';\nimport { MakeRef } from '../utils/make-ref';\n\nexport function TextareaElement(\n props: Readonly<{\n resizeBehavior: 'both' | 'horizontal' | 'vertical' | 'none';\n textareaHeight?: string;\n textareaWidth?: string;\n textareaRows?: number;\n textareaCols?: number;\n disabled: boolean;\n readonly: boolean;\n maxLength?: number;\n minLength?: number;\n isInvalid: boolean;\n required: boolean;\n value: string;\n placeholder?: string;\n textAreaRef: (el: HTMLTextAreaElement | undefined) => void;\n valueChange: (value: string) => void;\n updateFormInternalValue: (value: string) => void;\n onBlur: () => void;\n ariaAttributes?: A11yAttributes;\n }>\n) {\n return (\n <textarea\n readOnly={props.readonly}\n disabled={props.disabled}\n maxLength={props.maxLength}\n minLength={props.minLength}\n cols={props.textareaCols}\n rows={props.textareaRows}\n ref={props.textAreaRef}\n class={{\n 'is-invalid': props.isInvalid,\n }}\n required={props.required}\n value={props.value}\n placeholder={props.placeholder}\n onInput={(inputEvent) => {\n const target = inputEvent.target as HTMLInputElement;\n props.updateFormInternalValue(target.value);\n props.valueChange(target.value);\n }}\n onBlur={() => props.onBlur()}\n style={{\n resize: props.resizeBehavior,\n height: props.textareaHeight,\n width: props.textareaWidth,\n }}\n {...props.ariaAttributes}\n ></textarea>\n );\n}\n\nexport function InputElement(\n props: Readonly<{\n id: string;\n disabled: boolean;\n readonly: boolean;\n maxLength?: string | number;\n minLength?: string | number;\n max?: string | number;\n min?: string | number;\n step?: string | number;\n pattern?: string;\n type: string;\n isInvalid: boolean;\n required: boolean;\n value: string | number;\n placeholder?: string;\n textAlignment?: 'start' | 'end';\n inputRef: (el: HTMLInputElement | undefined) => void;\n onKeyPress: (event: KeyboardEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onBeforeInput?: (event: InputEvent) => void;\n onPaste?: (event: ClipboardEvent) => void;\n valueChange: (value: string) => void;\n updateFormInternalValue: (value: string) => void;\n onBlur: () => void;\n ariaAttributes?: A11yAttributes;\n form?: HTMLFormElement;\n suppressSubmitOnEnter?: boolean;\n }>\n) {\n return (\n <input\n id={props.id}\n autoComplete=\"off\"\n readOnly={props.readonly}\n disabled={props.disabled}\n step={props.step}\n min={props.min}\n max={props.max}\n maxLength={props.maxLength ? Number(props.maxLength) : undefined}\n minLength={props.minLength ? Number(props.minLength) : undefined}\n ref={props.inputRef}\n pattern={props.pattern}\n type={props.type}\n class={{\n 'is-invalid': props.isInvalid,\n }}\n style={{\n textAlign: props.textAlignment,\n }}\n required={props.required}\n value={props.value}\n placeholder={props.placeholder}\n onKeyPress={(event) => props.onKeyPress(event)}\n onKeyDown={(e) => {\n props.onKeyDown?.(e);\n handleSubmitOnEnterKeydown(\n e,\n !!props.suppressSubmitOnEnter,\n props.form\n );\n }}\n {...({\n onBeforeInput: (event: InputEvent) => props.onBeforeInput?.(event),\n } as any)}\n onPaste={(event) => props.onPaste?.(event)}\n onInput={(inputEvent) => {\n const target = inputEvent.target as HTMLInputElement;\n props.updateFormInternalValue(target.value);\n props.valueChange(target.value);\n }}\n onBlur={() => props.onBlur()}\n {...props.ariaAttributes}\n ></input>\n );\n}\n\nexport const SlotEnd: FunctionalComponent<{\n slotEndRef: MakeRef<HTMLDivElement>;\n onSlotChange?: (e: Event) => void;\n}> = (props, children) => {\n return (\n <div class=\"end-container\" ref={props.slotEndRef}>\n <slot name=\"end\" onSlotchange={props.onSlotChange}></slot>\n {children}\n </div>\n );\n};\n\nexport const SlotStart: FunctionalComponent<{\n slotStartRef: MakeRef<HTMLDivElement>;\n onSlotChange?: (e: Event) => void;\n}> = (props) => {\n return (\n <div class=\"start-container\" ref={props.slotStartRef}>\n <slot name=\"start\" onSlotchange={props.onSlotChange}></slot>\n </div>\n );\n};\n"],"names":["animate","Animation","shouldSuppressInternalValidation","convertToRemString","a11yBoolean","mutationObserver","createMutationObserver","h"],"mappings":"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"}
1
+ {"version":3,"file":"input.fc-DrxRYq_G.js","sources":["src/components/input/input.animation.ts","src/components/input/input.util.ts","src/components/input/input.fc.tsx"],"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 */\nimport { animate } from 'animejs';\nimport Animation from '../utils/animation';\n\nexport function shakeInput(input: HTMLInputElement) {\n const xMax = 5;\n animate(input, {\n duration: Animation.defaultTime,\n easing: 'easeInOutSine',\n loop: 2,\n translateX: [\n {\n value: xMax * -1,\n },\n {\n value: xMax,\n },\n {\n value: xMax / -2,\n },\n {\n value: xMax / 2,\n },\n {\n value: 0,\n },\n ],\n });\n}\n","/*\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 { A11yAttributes, a11yBoolean } from '../utils/a11y';\nimport {\n IxFormComponent,\n IxInputFieldComponent,\n ValidationResults,\n shouldSuppressInternalValidation,\n} from '../utils/input';\nimport { createMutationObserver } from '../utils/mutation-observer';\nimport { convertToRemString } from '../utils/rwd.util';\nimport { generateUUID } from '../utils/uuid';\nimport { shakeInput } from './input.animation';\n\nexport function createIdIfNotExists(\n element: IxFormComponent,\n idPrefix: string = 'input'\n) {\n return element.hasAttribute('id')\n ? element.getAttribute('id')\n : `${idPrefix}-${generateUUID()}`;\n}\n\nexport function mapValidationResult<T>(\n ref: IxInputFieldComponent<T>,\n result: ValidationResults\n) {\n ref.isInvalid = result.isInvalid || result.isInvalidByRequired;\n ref.isValid = result.isValid;\n ref.isInfo = result.isInfo;\n ref.isWarning = result.isWarning;\n}\n\nexport function checkAllowedKeys<T>(\n comp: IxInputFieldComponent<T>,\n event: KeyboardEvent\n) {\n if (comp.allowedCharactersPattern) {\n const regex = new RegExp(comp.allowedCharactersPattern);\n if (!regex.test(event.key)) {\n event.preventDefault();\n shakeInput(comp.inputRef.current);\n }\n }\n}\n\nexport async function checkInternalValidity<T>(\n comp: IxFormComponent<T>,\n input: HTMLInputElement | HTMLTextAreaElement\n) {\n const validityState = input.validity;\n const currentValidityState = !comp.hostElement.classList.contains(\n 'ix-invalid--validity-invalid'\n );\n const newValidityState = validityState.valid;\n\n if (currentValidityState !== newValidityState) {\n const eventResult = comp.validityStateChange.emit(validityState);\n if (eventResult.defaultPrevented) {\n return;\n }\n }\n\n if (comp.value === null || comp.value === undefined) {\n return;\n }\n\n const skipValidation = await shouldSuppressInternalValidation(comp);\n if (skipValidation) {\n return;\n }\n\n const { valid } = validityState;\n comp.hostElement.classList.toggle('ix-invalid--validity-invalid', !valid);\n}\n\nexport function onInputBlur<T>(\n comp: IxFormComponent<T>,\n input?: HTMLInputElement | HTMLTextAreaElement | null\n) {\n comp.ixBlur.emit();\n\n if (!input) {\n throw new Error('Input element is not available');\n }\n\n input.setAttribute('data-ix-touched', 'true');\n checkInternalValidity(comp, input);\n}\n\nexport function applyPaddingEnd(\n inputElement: HTMLElement | null,\n width: number,\n options: {\n slotEnd: boolean;\n additionalPaddingRight?: string;\n }\n) {\n if (!inputElement) {\n return;\n }\n\n const remInPixels = 16;\n const padding = convertToRemString(width + remInPixels / 2);\n\n if (options.slotEnd) {\n inputElement.style.paddingRight = `calc(${padding} + ${\n options.additionalPaddingRight ?? '0rem'\n })`;\n } else {\n inputElement.style.paddingLeft = padding;\n }\n}\n\nexport function adjustPaddingForStartAndEnd(\n startElement: HTMLElement | null,\n endElement: HTMLElement | null,\n inputElement: HTMLElement | null\n) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (startElement) {\n const startBoundingRect = startElement.getBoundingClientRect();\n if (startBoundingRect) {\n applyPaddingEnd(inputElement, startBoundingRect.width, {\n slotEnd: false,\n });\n }\n }\n\n if (endElement) {\n const endBoundingRect = endElement.getBoundingClientRect();\n if (endBoundingRect) {\n applyPaddingEnd(inputElement, endBoundingRect.width, {\n slotEnd: true,\n });\n }\n }\n });\n });\n}\n\nexport function getAriaAttributesForInput(\n component: IxInputFieldComponent\n): A11yAttributes {\n const inputAria: A11yAttributes = {\n 'aria-invalid': `${a11yBoolean(component.isInvalid)}`,\n 'aria-required': `${a11yBoolean(component.required)}`,\n };\n\n if (component.isInvalid && component.invalidText) {\n inputAria['aria-errormessage'] = component.invalidText;\n }\n return inputAria;\n}\n\nexport type DisposableChangesAndVisibilityObservers = () => void;\n\nexport const addDisposableChangesAndVisibilityObservers = (\n element: HTMLElement,\n callback: () => void\n): DisposableChangesAndVisibilityObservers => {\n const intersectionObserver = observeElementUntilVisible(element, callback);\n const mutationObserver = createMutationObserver(callback);\n\n mutationObserver.observe(element, {\n subtree: true,\n attributes: true,\n });\n\n return () => {\n intersectionObserver.disconnect();\n mutationObserver.disconnect();\n };\n};\n\nfunction observeElementUntilVisible(\n hostElement: HTMLElement,\n updateCallback: () => void\n): IntersectionObserver {\n const intersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n updateCallback();\n }\n });\n });\n\n intersectionObserver.observe(hostElement);\n return intersectionObserver;\n}\n\nexport function handleSubmitOnEnterKeydown(\n event: KeyboardEvent,\n suppressSubmitOnEnter: boolean,\n form: HTMLFormElement | null | undefined\n) {\n if (suppressSubmitOnEnter || event.key !== 'Enter' || !form) {\n return;\n }\n\n event.preventDefault();\n const submitButton = form.querySelector<HTMLElement>(\n 'button[type=\"submit\"], ix-button[type=\"submit\"]'\n );\n\n if (submitButton) {\n form.requestSubmit(submitButton);\n }\n\n if (form.length === 1) {\n form.requestSubmit();\n }\n}\n","/*\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 */\nimport { FunctionalComponent, h } from '@stencil/core';\nimport { A11yAttributes } from '../utils/a11y';\nimport { handleSubmitOnEnterKeydown } from './input.util';\nimport { MakeRef } from '../utils/make-ref';\n\nexport function TextareaElement(\n props: Readonly<{\n resizeBehavior: 'both' | 'horizontal' | 'vertical' | 'none';\n textareaHeight?: string;\n textareaWidth?: string;\n textareaRows?: number;\n textareaCols?: number;\n disabled: boolean;\n readonly: boolean;\n maxLength?: number;\n minLength?: number;\n isInvalid: boolean;\n required: boolean;\n value: string;\n placeholder?: string;\n textAreaRef: (el: HTMLTextAreaElement | undefined) => void;\n valueChange: (value: string) => void;\n updateFormInternalValue: (value: string) => void;\n onBlur: () => void;\n ariaAttributes?: A11yAttributes;\n }>\n) {\n return (\n <textarea\n readOnly={props.readonly}\n disabled={props.disabled}\n maxLength={props.maxLength}\n minLength={props.minLength}\n cols={props.textareaCols}\n rows={props.textareaRows}\n ref={props.textAreaRef}\n class={{\n 'is-invalid': props.isInvalid,\n }}\n required={props.required}\n value={props.value}\n placeholder={props.placeholder}\n onInput={(inputEvent) => {\n const target = inputEvent.target as HTMLInputElement;\n props.updateFormInternalValue(target.value);\n props.valueChange(target.value);\n }}\n onBlur={() => props.onBlur()}\n style={{\n resize: props.resizeBehavior,\n height: props.textareaHeight,\n width: props.textareaWidth,\n }}\n {...props.ariaAttributes}\n ></textarea>\n );\n}\n\nexport function InputElement(\n props: Readonly<{\n id: string;\n disabled: boolean;\n readonly: boolean;\n maxLength?: string | number;\n minLength?: string | number;\n max?: string | number;\n min?: string | number;\n step?: string | number;\n pattern?: string;\n type: string;\n isInvalid: boolean;\n required: boolean;\n value: string | number;\n placeholder?: string;\n textAlignment?: 'start' | 'end';\n inputRef: (el: HTMLInputElement | undefined) => void;\n onKeyPress: (event: KeyboardEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onBeforeInput?: (event: InputEvent) => void;\n onPaste?: (event: ClipboardEvent) => void;\n valueChange: (value: string) => void;\n updateFormInternalValue: (value: string) => void;\n onBlur: () => void;\n ariaAttributes?: A11yAttributes;\n form?: HTMLFormElement;\n suppressSubmitOnEnter?: boolean;\n }>\n) {\n return (\n <input\n id={props.id}\n autoComplete=\"off\"\n readOnly={props.readonly}\n disabled={props.disabled}\n step={props.step}\n min={props.min}\n max={props.max}\n maxLength={props.maxLength ? Number(props.maxLength) : undefined}\n minLength={props.minLength ? Number(props.minLength) : undefined}\n ref={props.inputRef}\n pattern={props.pattern}\n type={props.type}\n class={{\n 'is-invalid': props.isInvalid,\n }}\n style={{\n textAlign: props.textAlignment,\n }}\n required={props.required}\n value={props.value}\n placeholder={props.placeholder}\n onKeyPress={(event) => props.onKeyPress(event)}\n onKeyDown={(e) => {\n props.onKeyDown?.(e);\n handleSubmitOnEnterKeydown(\n e,\n !!props.suppressSubmitOnEnter,\n props.form\n );\n }}\n {...({\n onBeforeInput: (event: InputEvent) => props.onBeforeInput?.(event),\n } as any)}\n onPaste={(event) => props.onPaste?.(event)}\n onInput={(inputEvent) => {\n const target = inputEvent.target as HTMLInputElement;\n props.updateFormInternalValue(target.value);\n props.valueChange(target.value);\n }}\n onBlur={() => props.onBlur()}\n {...props.ariaAttributes}\n ></input>\n );\n}\n\nexport const SlotEnd: FunctionalComponent<{\n slotEndRef: MakeRef<HTMLDivElement>;\n onSlotChange?: (e: Event) => void;\n}> = (props, children) => {\n return (\n <div class=\"end-container\" ref={props.slotEndRef}>\n <slot name=\"end\" onSlotchange={props.onSlotChange}></slot>\n {children}\n </div>\n );\n};\n\nexport const SlotStart: FunctionalComponent<{\n slotStartRef: MakeRef<HTMLDivElement>;\n onSlotChange?: (e: Event) => void;\n}> = (props) => {\n return (\n <div class=\"start-container\" ref={props.slotStartRef}>\n <slot name=\"start\" onSlotchange={props.onSlotChange}></slot>\n </div>\n );\n};\n"],"names":["animate","Animation","shouldSuppressInternalValidation","convertToRemString","a11yBoolean","mutationObserver","createMutationObserver","h"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-C8Xo8L1k.js');
4
- var validation = require('./validation-CfL71_0d.js');
4
+ var validation = require('./validation-DTmSqO2d.js');
5
5
  var makeRef = require('./make-ref-BaH6_YJk.js');
6
6
 
7
7
  const checkboxGroupCss = ":host{display:inline-block;position:relative}:host .checkbox-container{display:flex;flex-direction:column;gap:1rem;margin:0.375rem 0;flex-wrap:wrap}:host .checkbox-container.row-layout{flex-direction:row}";
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-C8Xo8L1k.js');
4
4
  var a11y = require('./a11y-B_6chCvu.js');
5
- var validation = require('./validation-CfL71_0d.js');
5
+ var validation = require('./validation-DTmSqO2d.js');
6
6
  var makeRef = require('./make-ref-BaH6_YJk.js');
7
7
 
8
8
  const checkboxCss = ":host{--ix-checkbox-check-color:var(--theme-color-primary--contrast);display:inline-block;position:relative}:host *,:host *::after,:host *::before{box-sizing:border-box}:host ::-webkit-scrollbar-button{display:none}@-moz-document url-prefix(){:host *{scrollbar-color:var(--theme-scrollbar-thumb--background) var(--theme-scrollbar-track--background);scrollbar-width:thin}}:host{}:host ::-webkit-scrollbar{width:0.5rem;height:0.5rem}:host{}:host ::-webkit-scrollbar-track{border-radius:5px;background:var(--theme-scrollbar-track--background)}:host ::-webkit-scrollbar-track:hover{background:var(--theme-scrollbar-track--background--hover)}:host{}:host ::-webkit-scrollbar-thumb{border-radius:5px;background:var(--theme-scrollbar-thumb--background)}:host{}:host ::-webkit-scrollbar-thumb:hover{background:var(--theme-scrollbar-thumb--background--hover)}:host ::-webkit-scrollbar-corner{display:none}:host button{all:unset;display:inline-flex;position:relative;align-items:center;justify-content:center;width:1.125rem;min-width:1.125rem;max-width:1.125rem;height:1.125rem;min-height:1.125rem;max-height:1.125rem;margin-right:0.5rem}:host button:disabled{background-color:var(--theme-checkbox-unchecked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--disabled)}:host button:focus-visible{outline:0.0625rem solid var(--theme-color-focus-bdr);outline-offset:var(--theme-checkbox--focus--outline-offset)}:host input[type=checkbox]{display:none}:host label{display:flex;justify-content:flex-start;align-items:flex-start;width:100%;height:100%}:host ix-typography{margin-top:0.125rem}:host button{background-color:var(--theme-checkbox-unchecked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color)}:host(:hover) button{background-color:var(--theme-checkbox-unchecked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--hover)}:host(:active) button{background-color:var(--theme-checkbox-unchecked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--active)}:host(.checked) button,:host(.indeterminate) button{background-color:var(--theme-checkbox-checked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color)}:host(.checked:hover) button,:host(.indeterminate:hover) button{background-color:var(--theme-checkbox-checked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--hover)}:host(.checked:active) button,:host(.indeterminate:active) button{background-color:var(--theme-checkbox-checked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--active)}:host(.disabled) button{background-color:var(--theme-checkbox-unchecked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--disabled)}:host(.checked.disabled) button,:host(.indeterminate.disabled) button{background-color:var(--theme-checkbox-checked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--disabled)}:host(.ix-info) button{--theme-checkbox-unchecked--background:var(\n --theme-checkbox-unchecked--background--info\n );--theme-checkbox-unchecked--background--hover:var(\n --theme-checkbox-unchecked--background--info--hover\n );--theme-checkbox-unchecked--background--active:var(\n --theme-checkbox-unchecked--background--info--active\n );--theme-checkbox-unchecked--border-color:var(\n --theme-checkbox-unchecked--border-color--info\n );--theme-checkbox-unchecked--border-color--hover:var(\n --theme-checkbox-unchecked--border-color--info--hover\n );--theme-checkbox-unchecked--border-color--active:var(\n --theme-checkbox-unchecked--border-color--info--active\n );--theme-checkbox-checked--background:var(\n --theme-checkbox-checked--background--info\n );--theme-checkbox-checked--background--hover:var(\n --theme-checkbox-checked--background--info--hover\n );--theme-checkbox-checked--background--active:var(\n --theme-checkbox-checked--background--info--active\n );--theme-checkbox-checked--border-color:var(\n --theme-checkbox-checked--border-color--info\n );--theme-checkbox-checked--border-color--hover:var(\n --theme-checkbox-checked--border-color--info--hover\n );--theme-checkbox-checked--border-color--active:var(\n --theme-checkbox-checked--border-color--info--active\n );--theme-checkbox-mixed--background:var(\n --theme-checkbox-mixed--background--info\n );--theme-checkbox-mixed--background--hover:var(\n --theme-checkbox-mixed--background--info--hover\n );--theme-checkbox-mixed--background--active:var(\n --theme-checkbox-mixed--background--info--active\n );--theme-checkbox-mixed--border-color:var(\n --theme-checkbox-mixed--border-color--info\n );--theme-checkbox-mixed--border-color--hover:var(\n --theme-checkbox-mixed--border-color--info--hover\n );--theme-checkbox-mixed--border-color--active:var(\n --theme-checkbox-mixed--border-color--info--active\n );background-color:var(--theme-checkbox-unchecked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color)}:host(.ix-info:hover) button{background-color:var(--theme-checkbox-unchecked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--hover)}:host(.ix-info:active) button{background-color:var(--theme-checkbox-unchecked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--active)}:host(.ix-info.checked) button,:host(.ix-info.indeterminate) button{background-color:var(--theme-checkbox-checked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color)}:host(.ix-info.checked:hover) button,:host(.ix-info.indeterminate:hover) button{background-color:var(--theme-checkbox-checked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--hover)}:host(.ix-info.checked:active) button,:host(.ix-info.indeterminate:active) button{background-color:var(--theme-checkbox-checked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--active)}:host(.ix-info.disabled) button{background-color:var(--theme-checkbox-unchecked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--disabled)}:host(.ix-info.checked.disabled) button,:host(.ix-info.indeterminate.disabled) button{background-color:var(--theme-checkbox-checked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--disabled)}:host(.ix-warning) button{--theme-checkbox-unchecked--background:var(\n --theme-checkbox-unchecked--background--warning\n );--theme-checkbox-unchecked--background--hover:var(\n --theme-checkbox-unchecked--background--warning--hover\n );--theme-checkbox-unchecked--background--active:var(\n --theme-checkbox-unchecked--background--warning--active\n );--theme-checkbox-unchecked--border-color:var(\n --theme-checkbox-unchecked--border-color--warning\n );--theme-checkbox-unchecked--border-color--hover:var(\n --theme-checkbox-unchecked--border-color--warning--hover\n );--theme-checkbox-unchecked--border-color--active:var(\n --theme-checkbox-unchecked--border-color--warning--active\n );--theme-checkbox-checked--background:var(\n --theme-checkbox-checked--background--warning\n );--theme-checkbox-checked--background--hover:var(\n --theme-checkbox-checked--background--warning--hover\n );--theme-checkbox-checked--background--active:var(\n --theme-checkbox-checked--background--warning--active\n );--theme-checkbox-checked--border-color:var(\n --theme-checkbox-checked--border-color--warning\n );--theme-checkbox-checked--border-color--hover:var(\n --theme-checkbox-checked--border-color--warning--hover\n );--theme-checkbox-checked--border-color--active:var(\n --theme-checkbox-checked--border-color--warning--active\n );--theme-checkbox-mixed--background:var(\n --theme-checkbox-mixed--background--warning\n );--theme-checkbox-mixed--background--hover:var(\n --theme-checkbox-mixed--background--warning--hover\n );--theme-checkbox-mixed--background--active:var(\n --theme-checkbox-mixed--background--warning--active\n );--theme-checkbox-mixed--border-color:var(\n --theme-checkbox-mixed--border-color--warning\n );--theme-checkbox-mixed--border-color--hover:var(\n --theme-checkbox-mixed--border-color--warning--hover\n );--theme-checkbox-mixed--border-color--active:var(\n --theme-checkbox-mixed--border-color--warning--active\n );background-color:var(--theme-checkbox-unchecked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color)}:host(.ix-warning:hover) button{background-color:var(--theme-checkbox-unchecked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--hover)}:host(.ix-warning:active) button{background-color:var(--theme-checkbox-unchecked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--active)}:host(.ix-warning.checked) button,:host(.ix-warning.indeterminate) button{background-color:var(--theme-checkbox-checked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color)}:host(.ix-warning.checked:hover) button,:host(.ix-warning.indeterminate:hover) button{background-color:var(--theme-checkbox-checked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--hover)}:host(.ix-warning.checked:active) button,:host(.ix-warning.indeterminate:active) button{background-color:var(--theme-checkbox-checked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--active)}:host(.ix-warning.disabled) button{background-color:var(--theme-checkbox-unchecked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--disabled)}:host(.ix-warning.checked.disabled) button,:host(.ix-warning.indeterminate.disabled) button{background-color:var(--theme-checkbox-checked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--disabled)}:host(.ix-invalid--required) button{--theme-checkbox-unchecked--background:var(\n --theme-checkbox-unchecked--background--invalid\n );--theme-checkbox-unchecked--background--hover:var(\n --theme-checkbox-unchecked--background--invalid--hover\n );--theme-checkbox-unchecked--background--active:var(\n --theme-checkbox-unchecked--background--invalid--active\n );--theme-checkbox-unchecked--border-color:var(\n --theme-checkbox-unchecked--border-color--invalid\n );--theme-checkbox-unchecked--border-color--hover:var(\n --theme-checkbox-unchecked--border-color--invalid--hover\n );--theme-checkbox-unchecked--border-color--active:var(\n --theme-checkbox-unchecked--border-color--invalid--active\n );--theme-checkbox-checked--background:var(\n --theme-checkbox-checked--background--invalid\n );--theme-checkbox-checked--background--hover:var(\n --theme-checkbox-checked--background--invalid--hover\n );--theme-checkbox-checked--background--active:var(\n --theme-checkbox-checked--background--invalid--active\n );--theme-checkbox-checked--border-color:var(\n --theme-checkbox-checked--border-color--invalid\n );--theme-checkbox-checked--border-color--hover:var(\n --theme-checkbox-checked--border-color--invalid--hover\n );--theme-checkbox-checked--border-color--active:var(\n --theme-checkbox-checked--border-color--invalid--active\n );--theme-checkbox-mixed--background:var(\n --theme-checkbox-mixed--background--invalid\n );--theme-checkbox-mixed--background--hover:var(\n --theme-checkbox-mixed--background--invalid--hover\n );--theme-checkbox-mixed--background--active:var(\n --theme-checkbox-mixed--background--invalid--active\n );--theme-checkbox-mixed--border-color:var(\n --theme-checkbox-mixed--border-color--invalid\n );--theme-checkbox-mixed--border-color--hover:var(\n --theme-checkbox-mixed--border-color--invalid--hover\n );--theme-checkbox-mixed--border-color--active:var(\n --theme-checkbox-mixed--border-color--invalid--active\n );background-color:var(--theme-checkbox-unchecked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color)}:host(.ix-invalid--required:hover) button{background-color:var(--theme-checkbox-unchecked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--hover)}:host(.ix-invalid--required:active) button{background-color:var(--theme-checkbox-unchecked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--active)}:host(.ix-invalid--required.checked) button,:host(.ix-invalid--required.indeterminate) button{background-color:var(--theme-checkbox-checked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color)}:host(.ix-invalid--required.checked:hover) button,:host(.ix-invalid--required.indeterminate:hover) button{background-color:var(--theme-checkbox-checked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--hover)}:host(.ix-invalid--required.checked:active) button,:host(.ix-invalid--required.indeterminate:active) button{background-color:var(--theme-checkbox-checked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--active)}:host(.ix-invalid--required.disabled) button{background-color:var(--theme-checkbox-unchecked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--disabled)}:host(.ix-invalid--required.checked.disabled) button,:host(.ix-invalid--required.indeterminate.disabled) button{background-color:var(--theme-checkbox-checked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--disabled)}:host(.ix-invalid) button{--theme-checkbox-unchecked--background:var(\n --theme-checkbox-unchecked--background--invalid\n );--theme-checkbox-unchecked--background--hover:var(\n --theme-checkbox-unchecked--background--invalid--hover\n );--theme-checkbox-unchecked--background--active:var(\n --theme-checkbox-unchecked--background--invalid--active\n );--theme-checkbox-unchecked--border-color:var(\n --theme-checkbox-unchecked--border-color--invalid\n );--theme-checkbox-unchecked--border-color--hover:var(\n --theme-checkbox-unchecked--border-color--invalid--hover\n );--theme-checkbox-unchecked--border-color--active:var(\n --theme-checkbox-unchecked--border-color--invalid--active\n );--theme-checkbox-checked--background:var(\n --theme-checkbox-checked--background--invalid\n );--theme-checkbox-checked--background--hover:var(\n --theme-checkbox-checked--background--invalid--hover\n );--theme-checkbox-checked--background--active:var(\n --theme-checkbox-checked--background--invalid--active\n );--theme-checkbox-checked--border-color:var(\n --theme-checkbox-checked--border-color--invalid\n );--theme-checkbox-checked--border-color--hover:var(\n --theme-checkbox-checked--border-color--invalid--hover\n );--theme-checkbox-checked--border-color--active:var(\n --theme-checkbox-checked--border-color--invalid--active\n );--theme-checkbox-mixed--background:var(\n --theme-checkbox-mixed--background--invalid\n );--theme-checkbox-mixed--background--hover:var(\n --theme-checkbox-mixed--background--invalid--hover\n );--theme-checkbox-mixed--background--active:var(\n --theme-checkbox-mixed--background--invalid--active\n );--theme-checkbox-mixed--border-color:var(\n --theme-checkbox-mixed--border-color--invalid\n );--theme-checkbox-mixed--border-color--hover:var(\n --theme-checkbox-mixed--border-color--invalid--hover\n );--theme-checkbox-mixed--border-color--active:var(\n --theme-checkbox-mixed--border-color--invalid--active\n );background-color:var(--theme-checkbox-unchecked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color)}:host(.ix-invalid:hover) button{background-color:var(--theme-checkbox-unchecked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--hover)}:host(.ix-invalid:active) button{background-color:var(--theme-checkbox-unchecked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--active)}:host(.ix-invalid.checked) button,:host(.ix-invalid.indeterminate) button{background-color:var(--theme-checkbox-checked--background);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color)}:host(.ix-invalid.checked:hover) button,:host(.ix-invalid.indeterminate:hover) button{background-color:var(--theme-checkbox-checked--background--hover);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--hover)}:host(.ix-invalid.checked:active) button,:host(.ix-invalid.indeterminate:active) button{background-color:var(--theme-checkbox-checked--background--active);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--active)}:host(.ix-invalid.disabled) button{background-color:var(--theme-checkbox-unchecked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-unchecked--border-color--disabled)}:host(.ix-invalid.checked.disabled) button,:host(.ix-invalid.indeterminate.disabled) button{background-color:var(--theme-checkbox-checked--background--disabled);border:var(--theme-checkbox--border-thickness) solid var(--theme-checkbox-checked--border-color--disabled)}:host(.disabled){pointer-events:none}:host(.disabled) button,:host(.disabled) label,:host(.disabled) input{pointer-events:none}";
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-C8Xo8L1k.js');
4
- var validation = require('./validation-CfL71_0d.js');
4
+ var validation = require('./validation-DTmSqO2d.js');
5
5
 
6
6
  const customFieldCss = ":host{display:block;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content}";
7
7
 
@@ -3,8 +3,8 @@
3
3
  var index = require('./index-C8Xo8L1k.js');
4
4
  var index$1 = require('./index-Dyz3z1FD.js');
5
5
  var datetime = require('./datetime-Dvtv5O8f.js');
6
- var input_fc = require('./input.fc-B5JMSZbY.js');
7
- var validation = require('./validation-CfL71_0d.js');
6
+ var input_fc = require('./input.fc-DrxRYq_G.js');
7
+ var validation = require('./validation-DTmSqO2d.js');
8
8
  var makeRef = require('./make-ref-BaH6_YJk.js');
9
9
  var pickerInput_util = require('./picker-input.util-DJNAVluZ.js');
10
10
  require('./a11y-B_6chCvu.js');
@@ -259,15 +259,13 @@ const DateInput = class {
259
259
  }
260
260
  render() {
261
261
  var _a;
262
- const invalidText = this.isInputInvalid
263
- ? this.i18nErrorDateUnparsable
264
- : this.invalidText;
265
- return (index.h(index.Host, { key: '011a0643000de99532a82efcecdcc48d20a817e1', class: {
262
+ const invalidText = validation.getValidationText(this.isInputInvalid, this.invalidText, this.i18nErrorDateUnparsable);
263
+ return (index.h(index.Host, { key: '4a7f986c62a82763e46faa0203a5b6ff82415aaf', class: {
266
264
  disabled: this.disabled,
267
265
  readonly: this.readonly,
268
- } }, index.h("ix-field-wrapper", { key: '08411e49b366d385cb96355bd4bd869d70bcee34', 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()), index.h("ix-dropdown", { key: 'b471b5b81f4b4ad45a9403d54be147658f3b3e42', "data-testid": "date-dropdown", trigger: this.inputElementRef.waitForCurrent(), ref: this.dropdownElementRef, closeBehavior: "outside", suppressOverflowBehavior: true, show: this.show, onShowChanged: (event) => {
266
+ } }, index.h("ix-field-wrapper", { key: 'c366d9ef3a538fd71e8d0f33d305e46da824421e', 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()), index.h("ix-dropdown", { key: '6f10990b1e667f0e079f951d920707c15e24e50e', "data-testid": "date-dropdown", trigger: this.inputElementRef.waitForCurrent(), ref: this.dropdownElementRef, closeBehavior: "outside", suppressOverflowBehavior: true, show: this.show, onShowChanged: (event) => {
269
267
  this.show = event.detail;
270
- } }, index.h("ix-date-picker", { key: '24ca8c4f0301ec042f13401e80463e85aa8a5d44', ref: this.datepickerRef, format: this.format, locale: this.locale, singleSelection: true, from: (_a = this.from) !== null && _a !== void 0 ? _a : '', minDate: this.minDate, maxDate: this.maxDate, onDateChange: (event) => {
268
+ } }, index.h("ix-date-picker", { key: 'df14f590271c8177fa10360e72b0338088ed79be', ref: this.datepickerRef, format: this.format, locale: this.locale, singleSelection: true, from: (_a = this.from) !== null && _a !== void 0 ? _a : '', minDate: this.minDate, maxDate: this.maxDate, onDateChange: (event) => {
271
269
  const { from } = event.detail;
272
270
  this.onInput(from);
273
271
  }, showWeekNumbers: this.showWeekNumbers, ariaLabelNextMonthButton: this.ariaLabelNextMonthButton, ariaLabelPreviousMonthButton: this.ariaLabelPreviousMonthButton, embedded: true }))));