@db-ux/wc-core-components 4.0.3 → 4.1.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 (126) hide show
  1. package/CHANGELOG.md +32 -15
  2. package/README.md +9 -4
  3. package/dist/cjs/db-checkbox.cjs.entry.js +30 -4
  4. package/dist/cjs/db-checkbox.entry.cjs.js.map +1 -1
  5. package/dist/cjs/db-custom-select-dropdown.db-custom-select-list.db-custom-select-list-item.db-input.db-tag.entry.cjs.js.map +1 -1
  6. package/dist/cjs/db-custom-select-dropdown_5.cjs.entry.js +32 -5
  7. package/dist/cjs/db-custom-select.cjs.entry.js +76 -47
  8. package/dist/cjs/db-custom-select.entry.cjs.js.map +1 -1
  9. package/dist/cjs/db-notification.cjs.entry.js +2 -2
  10. package/dist/cjs/db-notification.entry.cjs.js.map +1 -1
  11. package/dist/cjs/db-radio.cjs.entry.js +39 -4
  12. package/dist/cjs/db-radio.entry.cjs.js.map +1 -1
  13. package/dist/cjs/db-select.cjs.entry.js +32 -5
  14. package/dist/cjs/db-select.entry.cjs.js.map +1 -1
  15. package/dist/cjs/db-switch.cjs.entry.js +31 -4
  16. package/dist/cjs/db-switch.entry.cjs.js.map +1 -1
  17. package/dist/cjs/db-textarea.cjs.entry.js +32 -5
  18. package/dist/cjs/db-textarea.entry.cjs.js.map +1 -1
  19. package/dist/cjs/db-ux.cjs.js +1 -1
  20. package/dist/cjs/form-components-CPqbzZwG.js +41 -0
  21. package/dist/cjs/form-components-CPqbzZwG.js.map +1 -0
  22. package/dist/cjs/index.cjs.js.map +1 -1
  23. package/dist/cjs/loader.cjs.js +1 -1
  24. package/dist/collection/components/checkbox/checkbox.js +34 -4
  25. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  26. package/dist/collection/components/custom-select/custom-select.js +108 -50
  27. package/dist/collection/components/custom-select/custom-select.js.map +1 -1
  28. package/dist/collection/components/custom-select/model.js.map +1 -1
  29. package/dist/collection/components/input/input.js +36 -5
  30. package/dist/collection/components/input/input.js.map +1 -1
  31. package/dist/collection/components/notification/notification.js +12 -12
  32. package/dist/collection/components/notification/notification.js.map +1 -1
  33. package/dist/collection/components/radio/model.js.map +1 -1
  34. package/dist/collection/components/radio/radio.js +61 -5
  35. package/dist/collection/components/radio/radio.js.map +1 -1
  36. package/dist/collection/components/select/select.js +36 -5
  37. package/dist/collection/components/select/select.js.map +1 -1
  38. package/dist/collection/components/switch/switch.js +34 -4
  39. package/dist/collection/components/switch/switch.js.map +1 -1
  40. package/dist/collection/components/textarea/textarea.js +36 -5
  41. package/dist/collection/components/textarea/textarea.js.map +1 -1
  42. package/dist/collection/shared/model.js.map +1 -1
  43. package/dist/collection/utils/form-components.js +31 -0
  44. package/dist/collection/utils/form-components.js.map +1 -1
  45. package/dist/custom-elements.json +235 -28
  46. package/dist/db-ux/db-checkbox.entry.esm.js.map +1 -1
  47. package/dist/db-ux/db-custom-select-dropdown.db-custom-select-list.db-custom-select-list-item.db-input.db-tag.entry.esm.js.map +1 -1
  48. package/dist/db-ux/db-custom-select.entry.esm.js.map +1 -1
  49. package/dist/db-ux/db-notification.entry.esm.js.map +1 -1
  50. package/dist/db-ux/db-radio.entry.esm.js.map +1 -1
  51. package/dist/db-ux/db-select.entry.esm.js.map +1 -1
  52. package/dist/db-ux/db-switch.entry.esm.js.map +1 -1
  53. package/dist/db-ux/db-textarea.entry.esm.js.map +1 -1
  54. package/dist/db-ux/db-ux.esm.js +1 -1
  55. package/dist/db-ux/index.esm.js.map +1 -1
  56. package/dist/db-ux/p-59f30e71.entry.js +2 -0
  57. package/dist/db-ux/p-59f30e71.entry.js.map +1 -0
  58. package/dist/db-ux/p-5cbbd49b.entry.js +2 -0
  59. package/dist/db-ux/p-5cbbd49b.entry.js.map +1 -0
  60. package/dist/db-ux/p-68b70ec5.entry.js +2 -0
  61. package/dist/db-ux/p-68b70ec5.entry.js.map +1 -0
  62. package/dist/db-ux/p-751434fa.entry.js +2 -0
  63. package/dist/db-ux/p-751434fa.entry.js.map +1 -0
  64. package/dist/db-ux/p-7f3a0030.entry.js +2 -0
  65. package/dist/db-ux/p-7f3a0030.entry.js.map +1 -0
  66. package/dist/db-ux/p-8f698fc9.entry.js +2 -0
  67. package/dist/db-ux/p-8f698fc9.entry.js.map +1 -0
  68. package/dist/db-ux/p-952cd568.entry.js +2 -0
  69. package/dist/db-ux/p-952cd568.entry.js.map +1 -0
  70. package/dist/db-ux/p-CdVqfu2Z.js +2 -0
  71. package/dist/db-ux/p-CdVqfu2Z.js.map +1 -0
  72. package/dist/db-ux/p-bc2e8a30.entry.js +2 -0
  73. package/dist/db-ux/p-bc2e8a30.entry.js.map +1 -0
  74. package/dist/esm/db-checkbox.entry.js +30 -4
  75. package/dist/esm/db-checkbox.entry.js.map +1 -1
  76. package/dist/esm/db-custom-select-dropdown.db-custom-select-list.db-custom-select-list-item.db-input.db-tag.entry.js.map +1 -1
  77. package/dist/esm/db-custom-select-dropdown_5.entry.js +32 -5
  78. package/dist/esm/db-custom-select.entry.js +76 -47
  79. package/dist/esm/db-custom-select.entry.js.map +1 -1
  80. package/dist/esm/db-notification.entry.js +2 -2
  81. package/dist/esm/db-notification.entry.js.map +1 -1
  82. package/dist/esm/db-radio.entry.js +40 -5
  83. package/dist/esm/db-radio.entry.js.map +1 -1
  84. package/dist/esm/db-select.entry.js +32 -5
  85. package/dist/esm/db-select.entry.js.map +1 -1
  86. package/dist/esm/db-switch.entry.js +31 -4
  87. package/dist/esm/db-switch.entry.js.map +1 -1
  88. package/dist/esm/db-textarea.entry.js +32 -5
  89. package/dist/esm/db-textarea.entry.js.map +1 -1
  90. package/dist/esm/db-ux.js +1 -1
  91. package/dist/esm/form-components-DmI6JmyJ.js +37 -0
  92. package/dist/esm/form-components-DmI6JmyJ.js.map +1 -0
  93. package/dist/esm/index.js.map +1 -1
  94. package/dist/esm/loader.js +1 -1
  95. package/dist/types/components/checkbox/checkbox.d.ts +5 -1
  96. package/dist/types/components/custom-select/custom-select.d.ts +5 -0
  97. package/dist/types/components/custom-select/model.d.ts +5 -0
  98. package/dist/types/components/input/input.d.ts +6 -2
  99. package/dist/types/components/notification/notification.d.ts +1 -1
  100. package/dist/types/components/radio/model.d.ts +3 -3
  101. package/dist/types/components/radio/radio.d.ts +7 -1
  102. package/dist/types/components/select/select.d.ts +6 -2
  103. package/dist/types/components/switch/switch.d.ts +5 -1
  104. package/dist/types/components/textarea/textarea.d.ts +6 -2
  105. package/dist/types/components.d.ts +4 -0
  106. package/dist/types/shared/model.d.ts +6 -2
  107. package/dist/types/utils/form-components.d.ts +9 -0
  108. package/dist/vscode.html-custom-data.json +11 -6
  109. package/dist/web-types.json +43 -18
  110. package/package.json +3 -3
  111. package/dist/db-ux/p-1761357c.entry.js +0 -2
  112. package/dist/db-ux/p-1761357c.entry.js.map +0 -1
  113. package/dist/db-ux/p-233758c5.entry.js +0 -2
  114. package/dist/db-ux/p-233758c5.entry.js.map +0 -1
  115. package/dist/db-ux/p-60f913fa.entry.js +0 -2
  116. package/dist/db-ux/p-60f913fa.entry.js.map +0 -1
  117. package/dist/db-ux/p-93620721.entry.js +0 -2
  118. package/dist/db-ux/p-93620721.entry.js.map +0 -1
  119. package/dist/db-ux/p-c423e7ba.entry.js +0 -2
  120. package/dist/db-ux/p-c423e7ba.entry.js.map +0 -1
  121. package/dist/db-ux/p-c7815d81.entry.js +0 -2
  122. package/dist/db-ux/p-c7815d81.entry.js.map +0 -1
  123. package/dist/db-ux/p-decb47b4.entry.js +0 -2
  124. package/dist/db-ux/p-decb47b4.entry.js.map +0 -1
  125. package/dist/db-ux/p-ecab99ff.entry.js +0 -2
  126. package/dist/db-ux/p-ecab99ff.entry.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment } from './index-C6WmMqtR.js';
2
2
  import { l as DEFAULT_INVALID_MESSAGE, g as DEFAULT_VALID_MESSAGE_ID_SUFFIX, h as DEFAULT_INVALID_MESSAGE_ID_SUFFIX, f as DEFAULT_MESSAGE_ID_SUFFIX, i as DEFAULT_PLACEHOLDER_ID_SUFFIX, k as DEFAULT_VALID_MESSAGE, a as DEFAULT_LABEL } from './constants-DC9V_oNU.js';
3
3
  import { h as hasVoiceOver, d as delay, s as stringPropVisible, u as uuid, e as getBoolean, g as getBooleanAsString, k as getHideProp, c as cls } from './index-DhKljLRG.js';
4
+ import { c as addValueResetEventListener } from './form-components-DmI6JmyJ.js';
4
5
 
5
6
  const DBSelect = class {
6
7
  constructor(hostRef) {
@@ -20,6 +21,7 @@ const DBSelect = class {
20
21
  this._value = "";
21
22
  this.initialized = false;
22
23
  this._voiceOverFallback = "";
24
+ this.abortController = undefined;
23
25
  }
24
26
  hasValidState() {
25
27
  var _a;
@@ -63,13 +65,13 @@ const DBSelect = class {
63
65
  this.click.emit(event);
64
66
  }
65
67
  }
66
- handleInput(event) {
68
+ handleInput(event, reset) {
67
69
  if (this.input) {
68
70
  this.input.emit(event);
69
71
  }
70
72
  this.handleValidation();
71
73
  }
72
- handleChange(event) {
74
+ handleChange(event, reset) {
73
75
  if (this.change) {
74
76
  this.change.emit(event);
75
77
  }
@@ -161,6 +163,26 @@ const DBSelect = class {
161
163
  watch2() {
162
164
  this.watch2Fn();
163
165
  }
166
+ watch3Fn() {
167
+ if (this._ref) {
168
+ const defaultValue = undefined;
169
+ let controller = this.abortController;
170
+ if (!controller) {
171
+ controller = new AbortController();
172
+ this.abortController = controller;
173
+ }
174
+ addValueResetEventListener(this._ref, {
175
+ value: this.value,
176
+ defaultValue,
177
+ }, (event) => {
178
+ this.handleChange(event, true);
179
+ this.handleInput(event, true);
180
+ }, controller.signal);
181
+ }
182
+ }
183
+ watch3() {
184
+ this.watch3Fn();
185
+ }
164
186
  componentDidLoad() {
165
187
  var _a;
166
188
  this.enableAttributePassing(this._ref, "db-select");
@@ -175,20 +197,25 @@ const DBSelect = class {
175
197
  this.watch0Fn();
176
198
  this.watch1Fn();
177
199
  this.watch2Fn();
200
+ this.watch3Fn();
201
+ }
202
+ disconnectedCallback() {
203
+ var _a;
204
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
178
205
  }
179
206
  render() {
180
207
  var _a, _b, _c, _d, _e;
181
- return (h("div", { key: '3c3bb0ec9b5e040323211dc012ae9ef2f18edd28', class: cls("db-select", this.className), "data-variant": this.variant, "data-hide-label": getHideProp(this.showLabel), "data-hide-asterisk": getHideProp(this.showRequiredAsterisk), "data-icon": this.icon, "data-show-icon": getBooleanAsString(this.showIcon) }, h("label", { key: '42de14ce2de05affc0178480c3b07383c1582d32', htmlFor: this._id }, (_a = this.label) !== null && _a !== void 0 ? _a : DEFAULT_LABEL), h("select", { key: '6de35614bc8874be81ac0e92897f3ab97f42a93c', "aria-invalid": this.validation === "invalid", "data-custom-validity": this.validation, ref: (el) => {
208
+ return (h("div", { key: '6f0b33fa59eabb7891532225ec76bec1156c4fad', class: cls("db-select", this.className), "data-variant": this.variant, "data-hide-label": getHideProp(this.showLabel), "data-hide-asterisk": getHideProp(this.showRequiredAsterisk), "data-icon": this.icon, "data-show-icon": getBooleanAsString(this.showIcon) }, h("label", { key: 'bc79488892bd8983ff118f0ea5aa1946a9cb64c0', htmlFor: this._id }, (_a = this.label) !== null && _a !== void 0 ? _a : DEFAULT_LABEL), h("select", { key: '757d18a1e4ca479094c74e072538f2c5ff165a20', "aria-invalid": this.validation === "invalid", "data-custom-validity": this.validation, ref: (el) => {
182
209
  this._ref = el;
183
210
  }, required: getBoolean(this.required, "required"), disabled: getBoolean(this.disabled, "disabled"), id: this._id, name: this.name, size: this.size,
184
211
  /* @ts-ignore */
185
212
  value: (_b = this.value) !== null && _b !== void 0 ? _b : this._value, autocomplete: this.autocomplete, multiple: this.multiple, onInput: (event) => this.handleInput(event), onClick: (event) => this.handleClick(event), onChange: (event) => this.handleChange(event), onBlur: (event) => this.handleBlur(event), onFocus: (event) => this.handleFocus(event), "aria-describedby": (_c = this.ariaDescribedBy) !== null && _c !== void 0 ? _c : this._descByIds }, this.variant === "floating" || this.placeholder ? (h("option", { class: "placeholder", value: "" })) : null, ((_d = this.options) === null || _d === void 0 ? void 0 : _d.length) ? ((_e = this.options) === null || _e === void 0 ? void 0 : _e.map((option) => {
186
213
  var _a;
187
214
  return (h(Fragment, null, option.options ? (h("optgroup", { label: this.getOptionLabel(option), key: undefined }, (_a = option.options) === null || _a === void 0 ? void 0 : _a.map((optgroupOption) => (h("option", { value: optgroupOption.value, selected: optgroupOption.selected, disabled: optgroupOption.disabled, key: undefined }, this.getOptionLabel(optgroupOption)))))) : (h("option", { value: option.value, disabled: option.disabled, selected: option.selected, key: undefined }, this.getOptionLabel(option)))));
188
- })) : (h("slot", null))), this.placeholder ? (h("span", { class: "db-select-placeholder", id: this._placeholderId }, this.placeholder)) : null, stringPropVisible(this.message, this.showMessage) ? (h("db-infotext", { size: "small", icon: this.messageIcon, id: this._messageId }, this.message)) : null, this.hasValidState() ? (h("db-infotext", { size: "small", semantic: "successful", id: this._validMessageId }, this.validMessage || DEFAULT_VALID_MESSAGE)) : null, h("db-infotext", { key: 'c33aafbbf890e84ba036622a9579e1be2a8be812', size: "small", semantic: "critical", id: this._invalidMessageId }, this._invalidMessage), h("span", { key: '86b74ac1a6764783339bda2d0413f71f1d1cff0a', "data-visually-hidden": "true", role: "status" }, this._voiceOverFallback)));
215
+ })) : (h("slot", null))), this.placeholder ? (h("span", { class: "db-select-placeholder", id: this._placeholderId }, this.placeholder)) : null, stringPropVisible(this.message, this.showMessage) ? (h("db-infotext", { size: "small", icon: this.messageIcon, id: this._messageId }, this.message)) : null, this.hasValidState() ? (h("db-infotext", { size: "small", semantic: "successful", id: this._validMessageId }, this.validMessage || DEFAULT_VALID_MESSAGE)) : null, h("db-infotext", { key: '9090d9710df91b2ba2ead2ff1db38e3feb7385ad', size: "small", semantic: "critical", id: this._invalidMessageId }, this._invalidMessage), h("span", { key: '0989f2ea0636fb0e1b25d85a2a5cc057df89f38d', "data-visually-hidden": "true", role: "status" }, this._voiceOverFallback)));
189
216
  }
190
217
  static get watchers() { return {
191
- "_ref": ["watch0"],
218
+ "_ref": ["watch0", "watch3"],
192
219
  "invalidMessage": ["watch0"],
193
220
  "_id": ["watch1"],
194
221
  "initialized": ["watch1"],
@@ -1 +1 @@
1
- {"version":3,"file":"db-select.entry.js","sources":["src/components/select/select.tsx"],"sourcesContent":["import {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_LABEL,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_PLACEHOLDER_ID_SUFFIX,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport {\n ChangeEvent,\n ClickEvent,\n InputEvent,\n InteractionEvent,\n} from \"../../shared/model\";\nimport {\n cls,\n delay,\n getBoolean,\n getBooleanAsString,\n getHideProp,\n getOptionKey,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport { DBSelectOptionType, DBSelectProps, DBSelectState } from \"./model\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-select\",\n})\nexport class DBSelect {\n private _ref!: HTMLSelectElement | any;\n @Prop() id: DBSelectProps[\"id\"];\n @Prop() invalidMessage: DBSelectProps[\"invalidMessage\"];\n @Prop() message: DBSelectProps[\"message\"];\n @Prop() showMessage: DBSelectProps[\"showMessage\"];\n @Prop() placeholder: DBSelectProps[\"placeholder\"];\n @Prop() value: DBSelectProps[\"value\"];\n @Prop() validMessage: DBSelectProps[\"validMessage\"];\n @Prop() validation: DBSelectProps[\"validation\"];\n @Prop() required: DBSelectProps[\"required\"];\n @Event() click: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onClick\"]>[number]\n > | void;\n @Event() input: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onInput\"]>[number]\n > | void;\n @Event() change: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onFocus\"]>[number]\n > | void;\n @Prop({attribute: \"classname\"}) className: DBSelectProps[\"className\"];\n @Prop() variant: DBSelectProps[\"variant\"];\n @Prop() showLabel: DBSelectProps[\"showLabel\"];\n @Prop() showRequiredAsterisk: DBSelectProps[\"showRequiredAsterisk\"];\n @Prop() icon: DBSelectProps[\"icon\"];\n @Prop() showIcon: DBSelectProps[\"showIcon\"];\n @Prop() label: DBSelectProps[\"label\"];\n @Prop() disabled: DBSelectProps[\"disabled\"];\n @Prop() name: DBSelectProps[\"name\"];\n @Prop() size: DBSelectProps[\"size\"];\n @Prop() autocomplete: DBSelectProps[\"autocomplete\"];\n @Prop() multiple: DBSelectProps[\"multiple\"];\n @Prop() ariaDescribedBy: DBSelectProps[\"ariaDescribedBy\"];\n @Prop() options: DBSelectProps[\"options\"];\n @Prop() messageIcon: DBSelectProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _placeholderId = \"\";\n @State() _descByIds = undefined;\n @State() _value = \"\";\n @State() initialized = false;\n @State() _voiceOverFallback = \"\";\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n /* For a11y reasons we need to map the correct message with the select */\n if (!this._ref?.validity.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this._invalidMessage;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (\n this.hasValidState() &&\n this._ref?.validity.valid &&\n this.required\n ) {\n this._descByIds = this._validMessageId;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId;\n } else if (this.placeholder) {\n this._descByIds = this._placeholderId;\n } else {\n this._descByIds = undefined;\n }\n }\n handleClick(event: ClickEvent<HTMLSelectElement> | any) {\n if (this.click) {\n this.click.emit(event);\n }\n }\n handleInput(event: InputEvent<HTMLSelectElement> | any) {\n if (this.input) {\n this.input.emit(event);\n }\n this.handleValidation();\n }\n handleChange(event: ChangeEvent<HTMLSelectElement> | any) {\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLSelectElement> | any) {\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLSelectElement> | any) {\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n getOptionLabel(option: DBSelectOptionType) {\n return option.label ?? option.value?.toString();\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLSelectElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n }\n\n @Watch(\"_ref\")\n @Watch(\"invalidMessage\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._id && this.initialized) {\n const messageId = this._id + DEFAULT_MESSAGE_ID_SUFFIX;\n const placeholderId = this._id + DEFAULT_PLACEHOLDER_ID_SUFFIX;\n this._messageId = messageId;\n this._validMessageId = this._id + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = this._id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._placeholderId = placeholderId;\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = messageId;\n } else if (this.placeholder) {\n this._descByIds = placeholderId;\n } else {\n this._descByIds = undefined;\n }\n this.handleValidation();\n this.initialized = false;\n }\n }\n\n @Watch(\"_id\")\n @Watch(\"initialized\")\n watch1() {\n this.watch1Fn();\n }\n\n watch2Fn() {\n this._value = this.value;\n }\n\n @Watch(\"value\")\n watch2() {\n this.watch2Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-select\");\n this.initialized = true;\n const mId = this.id ?? `select-${uuid()}`;\n this._id = mId;\n this._messageId = mId + DEFAULT_MESSAGE_ID_SUFFIX;\n this._validMessageId = mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._placeholderId = mId + DEFAULT_PLACEHOLDER_ID_SUFFIX;\n this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;\n this.watch0Fn();\n this.watch1Fn();\n this.watch2Fn();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-select\", this.className)}\n data-variant={this.variant}\n data-hide-label={getHideProp(this.showLabel)}\n data-hide-asterisk={getHideProp(this.showRequiredAsterisk)}\n data-icon={this.icon}\n data-show-icon={getBooleanAsString(this.showIcon)}\n >\n <label htmlFor={this._id}>{this.label ?? DEFAULT_LABEL}</label>\n <select\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n ref={(el: any) => {\n this._ref = el;\n }}\n required={getBoolean(this.required, \"required\")}\n disabled={getBoolean(this.disabled, \"disabled\")}\n id={this._id}\n name={this.name}\n size={this.size}\n /* @ts-ignore */\nvalue={this.value ?? this._value}\n autocomplete={this.autocomplete}\n multiple={this.multiple}\n onInput={(event) => this.handleInput(event)}\n onClick={(event) => this.handleClick(event)}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n aria-describedby={this.ariaDescribedBy ?? this._descByIds}\n >\n {this.variant === \"floating\" || this.placeholder ? (\n <option class=\"placeholder\" value=\"\"></option>\n ) : null}\n {this.options?.length ? (\n this.options?.map((option) => (\n <Fragment>\n {option.options ? (\n <optgroup label={this.getOptionLabel(option)} key={undefined}>\n {option.options?.map((optgroupOption) => (\n <option\n value={optgroupOption.value}\n selected={optgroupOption.selected}\n disabled={optgroupOption.disabled}\n key={undefined}\n >\n {this.getOptionLabel(optgroupOption)}\n </option>\n ))}\n </optgroup>\n ) : (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.selected}\n key={undefined}\n >\n {this.getOptionLabel(option)}\n </option>\n )}\n </Fragment>\n ))\n ) : (\n <slot></slot>\n )}\n </select>\n {this.placeholder ? (\n <span class=\"db-select-placeholder\" id={this._placeholderId}>\n {this.placeholder}\n </span>\n ) : null}\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n icon={this.messageIcon}\n id={this._messageId}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage || DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-select.entry.js","sources":["src/components/select/select.tsx"],"sourcesContent":["import {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_LABEL,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_PLACEHOLDER_ID_SUFFIX,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport {\n ChangeEvent,\n ClickEvent,\n InputEvent,\n InteractionEvent,\n} from \"../../shared/model\";\nimport {\n cls,\n delay,\n getBoolean,\n getBooleanAsString,\n getHideProp,\n getOptionKey,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n addValueResetEventListener,\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport { DBSelectOptionType, DBSelectProps, DBSelectState } from \"./model\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-select\",\n})\nexport class DBSelect {\n private _ref!: HTMLSelectElement | any;\n @Prop() id: DBSelectProps[\"id\"];\n @Prop() invalidMessage: DBSelectProps[\"invalidMessage\"];\n @Prop() message: DBSelectProps[\"message\"];\n @Prop() showMessage: DBSelectProps[\"showMessage\"];\n @Prop() placeholder: DBSelectProps[\"placeholder\"];\n @Prop() value: DBSelectProps[\"value\"];\n @Prop() validMessage: DBSelectProps[\"validMessage\"];\n @Prop() validation: DBSelectProps[\"validation\"];\n @Prop() required: DBSelectProps[\"required\"];\n @Event() click: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onClick\"]>[number]\n > | void;\n @Event() input: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onInput\"]>[number]\n > | void;\n @Event() change: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onFocus\"]>[number]\n > | void;\n @Prop({attribute: \"classname\"}) className: DBSelectProps[\"className\"];\n @Prop() variant: DBSelectProps[\"variant\"];\n @Prop() showLabel: DBSelectProps[\"showLabel\"];\n @Prop() showRequiredAsterisk: DBSelectProps[\"showRequiredAsterisk\"];\n @Prop() icon: DBSelectProps[\"icon\"];\n @Prop() showIcon: DBSelectProps[\"showIcon\"];\n @Prop() label: DBSelectProps[\"label\"];\n @Prop() disabled: DBSelectProps[\"disabled\"];\n @Prop() name: DBSelectProps[\"name\"];\n @Prop() size: DBSelectProps[\"size\"];\n @Prop() autocomplete: DBSelectProps[\"autocomplete\"];\n @Prop() multiple: DBSelectProps[\"multiple\"];\n @Prop() ariaDescribedBy: DBSelectProps[\"ariaDescribedBy\"];\n @Prop() options: DBSelectProps[\"options\"];\n @Prop() messageIcon: DBSelectProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _placeholderId = \"\";\n @State() _descByIds = undefined;\n @State() _value = \"\";\n @State() initialized = false;\n @State() _voiceOverFallback = \"\";\n @State() abortController = undefined;\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n /* For a11y reasons we need to map the correct message with the select */\n if (!this._ref?.validity.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this._invalidMessage;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (\n this.hasValidState() &&\n this._ref?.validity.valid &&\n this.required\n ) {\n this._descByIds = this._validMessageId;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId;\n } else if (this.placeholder) {\n this._descByIds = this._placeholderId;\n } else {\n this._descByIds = undefined;\n }\n }\n handleClick(event: ClickEvent<HTMLSelectElement> | any) {\n if (this.click) {\n this.click.emit(event);\n }\n }\n handleInput(event: InputEvent<HTMLSelectElement> | any, reset?: boolean) {\n if (this.input) {\n this.input.emit(event);\n }\n this.handleValidation();\n }\n handleChange(event: ChangeEvent<HTMLSelectElement> | any, reset?: boolean) {\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLSelectElement> | any) {\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLSelectElement> | any) {\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n getOptionLabel(option: DBSelectOptionType) {\n return option.label ?? option.value?.toString();\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLSelectElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n }\n\n @Watch(\"_ref\")\n @Watch(\"invalidMessage\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._id && this.initialized) {\n const messageId = this._id + DEFAULT_MESSAGE_ID_SUFFIX;\n const placeholderId = this._id + DEFAULT_PLACEHOLDER_ID_SUFFIX;\n this._messageId = messageId;\n this._validMessageId = this._id + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = this._id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._placeholderId = placeholderId;\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = messageId;\n } else if (this.placeholder) {\n this._descByIds = placeholderId;\n } else {\n this._descByIds = undefined;\n }\n this.handleValidation();\n this.initialized = false;\n }\n }\n\n @Watch(\"_id\")\n @Watch(\"initialized\")\n watch1() {\n this.watch1Fn();\n }\n\n watch2Fn() {\n this._value = this.value;\n }\n\n @Watch(\"value\")\n watch2() {\n this.watch2Fn();\n }\n\n watch3Fn() {\n if (this._ref) {\n const defaultValue = undefined;\n let controller = this.abortController;\n if (!controller) {\n controller = new AbortController();\n this.abortController = controller;\n }\n addValueResetEventListener(\n this._ref,\n {\n value: this.value,\n defaultValue,\n },\n (event) => {\n this.handleChange(event, true);\n this.handleInput(event, true);\n },\n controller.signal\n );\n }\n }\n\n @Watch(\"_ref\")\n watch3() {\n this.watch3Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-select\");\n this.initialized = true;\n const mId = this.id ?? `select-${uuid()}`;\n this._id = mId;\n this._messageId = mId + DEFAULT_MESSAGE_ID_SUFFIX;\n this._validMessageId = mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._placeholderId = mId + DEFAULT_PLACEHOLDER_ID_SUFFIX;\n this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;\n this.watch0Fn();\n this.watch1Fn();\n this.watch2Fn();\n this.watch3Fn();\n }\n disconnectedCallback() {\n this.abortController?.abort();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-select\", this.className)}\n data-variant={this.variant}\n data-hide-label={getHideProp(this.showLabel)}\n data-hide-asterisk={getHideProp(this.showRequiredAsterisk)}\n data-icon={this.icon}\n data-show-icon={getBooleanAsString(this.showIcon)}\n >\n <label htmlFor={this._id}>{this.label ?? DEFAULT_LABEL}</label>\n <select\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n ref={(el: any) => {\n this._ref = el;\n }}\n required={getBoolean(this.required, \"required\")}\n disabled={getBoolean(this.disabled, \"disabled\")}\n id={this._id}\n name={this.name}\n size={this.size}\n /* @ts-ignore */\nvalue={this.value ?? this._value}\n autocomplete={this.autocomplete}\n multiple={this.multiple}\n onInput={(event) => this.handleInput(event)}\n onClick={(event) => this.handleClick(event)}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n aria-describedby={this.ariaDescribedBy ?? this._descByIds}\n >\n {this.variant === \"floating\" || this.placeholder ? (\n <option class=\"placeholder\" value=\"\"></option>\n ) : null}\n {this.options?.length ? (\n this.options?.map((option) => (\n <Fragment>\n {option.options ? (\n <optgroup label={this.getOptionLabel(option)} key={undefined}>\n {option.options?.map((optgroupOption) => (\n <option\n value={optgroupOption.value}\n selected={optgroupOption.selected}\n disabled={optgroupOption.disabled}\n key={undefined}\n >\n {this.getOptionLabel(optgroupOption)}\n </option>\n ))}\n </optgroup>\n ) : (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.selected}\n key={undefined}\n >\n {this.getOptionLabel(option)}\n </option>\n )}\n </Fragment>\n ))\n ) : (\n <slot></slot>\n )}\n </select>\n {this.placeholder ? (\n <span class=\"db-select-placeholder\" id={this._placeholderId}>\n {this.placeholder}\n </span>\n ) : null}\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n icon={this.messageIcon}\n id={this._messageId}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage || DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"names":[],"mappings":";;;;;MAqDa,QAAQ,GAAA,MAAA;AAHpB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;;AA4CU,QAAA,IAAG,CAAA,GAAA,GAAG,SAAS;AACf,QAAA,IAAU,CAAA,UAAA,GAAG,SAAS;AACtB,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS;AAC3B,QAAA,IAAiB,CAAA,iBAAA,GAAG,SAAS;AAC7B,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS;AAC3B,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE;AACnB,QAAA,IAAU,CAAA,UAAA,GAAG,SAAS;AACtB,QAAA,IAAM,CAAA,MAAA,GAAG,EAAE;AACX,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK;AACnB,QAAA,IAAkB,CAAA,kBAAA,GAAG,EAAE;AACvB,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS;AAiTrC;IA/SC,aAAa,GAAA;;AACX,QAAA,OAAO,CAAC,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC;;IAE7D,gBAAgB,GAAA;;;AAEd,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,KAAK,CAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB;AACxC,YAAA,IAAI,CAAC,eAAe;AAClB,gBAAA,IAAI,CAAC,cAAc;qBACnB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB,CAAA;AAC5B,oBAAA,uBAAuB;YACzB,IAAI,YAAY,EAAE,EAAE;AAClB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe;AAC9C,gBAAA,KAAK,CAAC,OAAO,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;;;aAE9C,IACL,IAAI,CAAC,aAAa,EAAE;aACpB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,KAAK,CAAA;YACzB,IAAI,CAAC,QAAQ,EACb;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;YACtC,IAAI,YAAY,EAAE,EAAE;gBAClB,IAAI,CAAC,kBAAkB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,qBAAqB;AACpE,gBAAA,KAAK,CAAC,OAAO,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;;;aAE9C,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;;AAC5B,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc;;aAChC;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;;AAG/B,IAAA,WAAW,CAAC,KAA0C,EAAA;AACpD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAG1B,WAAW,CAAC,KAA0C,EAAE,KAAe,EAAA;AACrE,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;QAExB,IAAI,CAAC,gBAAgB,EAAE;;IAEzB,YAAY,CAAC,KAA2C,EAAE,KAAe,EAAA;AACvE,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;QAEzB,IAAI,CAAC,gBAAgB,EAAE;;AAEzB,IAAA,UAAU,CAAC,KAAgD,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAGzB,IAAA,WAAW,CAAC,KAAgD,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAG1B,IAAA,cAAc,CAAC,MAA0B,EAAA;;QACvC,OAAO,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;;AAGjD;;;;AAIG;IACK,sBAAsB,CAC5B,OAAiC,EACjC,qBAA6B,EAAA;QAE7B,MAAM,MAAM,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,OAAO,CAAC,qBAAqB,CAAC;AACtD,QAAA,IAAI,OAAO,IAAI,MAAM,EAAE;AACrB,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU;AACpC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,gBAAA,IACE,IAAI;AACJ,qBAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAChE;oBACA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;AAC3C,oBAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;gBAEnC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;oBACjC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;AACtD,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;oBACvD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;oBAClD,OAAO,CAAC,YAAY,CAClB,IAAI,CAAC,IAAI,EACT,CAAG,EAAA,YAAY,GAAG,CAAG,EAAA,YAAY,CAAG,CAAA,CAAA,GAAG,EAAE,CAAG,EAAA,KAAK,CAAE,CAAA,CACpD;oBACD,IAAI,cAAc,EAAE;;AAElB,wBAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;;yBACnC;AACL,wBAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;IAO3C,QAAQ,GAAA;;AACN,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,IAAI,CAAC,cAAc;iBACnB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB,CAAA;AAC5B,gBAAA,uBAAuB;;IAK3B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;AAChC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,yBAAyB;AACtD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,GAAG,6BAA6B;AAC9D,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,GAAG,+BAA+B;YACjE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,GAAG,iCAAiC;AACrE,YAAA,IAAI,CAAC,cAAc,GAAG,aAAa;YACnC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;AACtB,iBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,gBAAA,IAAI,CAAC,UAAU,GAAG,aAAa;;iBAC1B;AACL,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;YAE7B,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;;IAM5B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;;IAI1B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,YAAY,GAAG,SAAS;AAC9B,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe;YACrC,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,UAAU,GAAG,IAAI,eAAe,EAAE;AAClC,gBAAA,IAAI,CAAC,eAAe,GAAG,UAAU;;AAEnC,YAAA,0BAA0B,CACxB,IAAI,CAAC,IAAI,EACT;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY;aACb,EACD,CAAC,KAAK,KAAI;AACR,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9B,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/B,aAAC,EACD,UAAU,CAAC,MAAM,CAClB;;;IAKL,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,gBAAgB,GAAA;;QACd,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;AACnD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACvB,MAAM,GAAG,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAU,OAAA,EAAA,IAAI,EAAE,CAAA,CAAE;AACzC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,yBAAyB;AACjD,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,+BAA+B;AAC5D,QAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,GAAG,iCAAiC;AAChE,QAAA,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,6BAA6B;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,IAAI,uBAAuB;QACrE,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;;IAEjB,oBAAoB,GAAA;;QAClB,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;IAG/B,MAAM,GAAA;;AACJ,QAAA,QACE,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EACzB,cAAA,EAAA,IAAI,CAAC,OAAO,EAAA,iBAAA,EACT,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EACxB,oBAAA,EAAA,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAA,WAAA,EAC/C,IAAI,CAAC,IAAI,EACJ,gBAAA,EAAA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAA,EAEjD,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,OAAO,EAAE,IAAI,CAAC,GAAG,EAAA,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,aAAa,CAAS,EAC/D,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,cAAA,EACgB,IAAI,CAAC,UAAU,KAAK,SAAS,EACrB,sBAAA,EAAA,IAAI,CAAC,UAAU,EACrC,GAAG,EAAE,CAAC,EAAO,KAAI;AACf,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AAChB,aAAC,EACD,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC/C,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC/C,EAAE,EAAE,IAAI,CAAC,GAAG,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI;;YAEzB,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,CAAC,MAAM,EACtB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAC3C,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAC3C,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAC7C,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EACzC,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,sBACzB,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI,CAAC,UAAU,EAAA,EAExD,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,WAAW,IAC9C,cAAQ,KAAK,EAAC,aAAa,EAAC,KAAK,EAAC,EAAE,EAAA,CAAU,IAC5C,IAAI,EACP,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,KACnB,MAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,CAAC,CAAC,MAAM,KAAI;;AAAC,YAAA,QAC5B,CAAC,CAAA,QAAQ,EACN,IAAA,EAAA,MAAM,CAAC,OAAO,IACb,CAAA,CAAA,UAAA,EAAA,EAAU,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EACzD,EAAA,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,CAAC,CAAC,cAAc,MAClC,CACE,CAAA,QAAA,EAAA,EAAA,KAAK,EAAE,cAAc,CAAC,KAAK,EAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ,EACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ,EACjC,GAAG,EAAE,SAAS,EAAA,EAEb,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAC7B,CACV,CAAC,CACO,KAEX,CACE,CAAA,QAAA,EAAA,EAAA,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,GAAG,EAAE,SAAS,EAAA,EAEb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CACrB,CACV,CACQ;AACZ,SAAA,CAAC,KAEF,CAAA,CAAA,MAAA,EAAA,IAAA,CAAa,CACd,CACM,EACR,IAAI,CAAC,WAAW,IACf,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,uBAAuB,EAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAA,EACxD,IAAI,CAAC,WAAW,CACZ,IACL,IAAI,EACP,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAChD,mBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,EAAE,EAAE,IAAI,CAAC,UAAU,EAElB,EAAA,IAAI,CAAC,OAAO,CACD,IACZ,IAAI,EACP,IAAI,CAAC,aAAa,EAAE,IACnB,CACE,CAAA,aAAA,EAAA,EAAA,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,YAAY,EACrB,EAAE,EAAE,IAAI,CAAC,eAAe,EAAA,EAEvB,IAAI,CAAC,YAAY,IAAI,qBAAqB,CAC/B,IACZ,IAAI,EACR,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,UAAU,EACnB,EAAE,EAAE,IAAI,CAAC,iBAAiB,IAEzB,IAAI,CAAC,eAAe,CACT,EACd,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,sBAAA,EAA2B,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC5C,IAAI,CAAC,kBAAkB,CACnB,CACH;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-C6WmMqtR.js';
2
2
  import { l as DEFAULT_INVALID_MESSAGE, f as DEFAULT_MESSAGE_ID_SUFFIX, g as DEFAULT_VALID_MESSAGE_ID_SUFFIX, h as DEFAULT_INVALID_MESSAGE_ID_SUFFIX, k as DEFAULT_VALID_MESSAGE } from './constants-DC9V_oNU.js';
3
3
  import { h as hasVoiceOver, d as delay, s as stringPropVisible, u as uuid, e as getBoolean, k as getHideProp, g as getBooleanAsString, c as cls } from './index-DhKljLRG.js';
4
+ import { a as addCheckedResetEventListener } from './form-components-DmI6JmyJ.js';
4
5
 
5
6
  const DBSwitch = class {
6
7
  constructor(hostRef) {
@@ -15,6 +16,7 @@ const DBSwitch = class {
15
16
  this._invalidMessage = undefined;
16
17
  this._descByIds = undefined;
17
18
  this._voiceOverFallback = "";
19
+ this.abortController = undefined;
18
20
  }
19
21
  hasValidState() {
20
22
  var _a;
@@ -53,7 +55,7 @@ const DBSwitch = class {
53
55
  }
54
56
  this._descByIds = undefined;
55
57
  }
56
- handleChange(event) {
58
+ handleChange(event, reset) {
57
59
  if (this.change) {
58
60
  this.change.emit(event);
59
61
  }
@@ -107,6 +109,25 @@ const DBSwitch = class {
107
109
  watch0() {
108
110
  this.watch0Fn();
109
111
  }
112
+ watch1Fn() {
113
+ if (this._ref) {
114
+ const defaultChecked = undefined;
115
+ let controller = this.abortController;
116
+ if (!controller) {
117
+ controller = new AbortController();
118
+ this.abortController = controller;
119
+ }
120
+ addCheckedResetEventListener(this._ref, {
121
+ checked: this.checked,
122
+ defaultChecked,
123
+ }, (event) => {
124
+ this.handleChange(event, true);
125
+ }, controller.signal);
126
+ }
127
+ }
128
+ watch1() {
129
+ this.watch1Fn();
130
+ }
110
131
  componentDidLoad() {
111
132
  var _a;
112
133
  this.enableAttributePassing(this._ref, "db-switch");
@@ -116,12 +137,17 @@ const DBSwitch = class {
116
137
  this._invalidMessageId = `${this._id}${DEFAULT_INVALID_MESSAGE_ID_SUFFIX}`;
117
138
  this.handleValidation();
118
139
  this.watch0Fn();
140
+ this.watch1Fn();
141
+ }
142
+ disconnectedCallback() {
143
+ var _a;
144
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
119
145
  }
120
146
  render() {
121
147
  var _a, _b, _c, _d;
122
- return (h("div", { key: 'eaca89f608b76584b1fa9671103faf6b4dcd3c92', class: cls("db-switch", this.className), "data-visual-aid": getBooleanAsString(this.visualAid), "data-size": this.size, "data-hide-label": getHideProp(this.showLabel), "data-variant": this.variant, "data-hide-asterisk": getHideProp(this.showRequiredAsterisk), "data-custom-validity": this.validation }, h("label", { key: '0a9aba40a632407f91c9b41e281a9f19c20f0473', htmlFor: this._id }, h("input", { key: '6b9351bea73008d4bd176371e356be5fe69f16f1', type: "checkbox", role: "switch", id: this._id, ref: (el) => {
148
+ return (h("div", { key: '401496c9700b4120826226a937a2007c90d2cb8b', class: cls("db-switch", this.className), "data-visual-aid": getBooleanAsString(this.visualAid), "data-size": this.size, "data-hide-label": getHideProp(this.showLabel), "data-variant": this.variant, "data-hide-asterisk": getHideProp(this.showRequiredAsterisk), "data-custom-validity": this.validation }, h("label", { key: '7ddb305df8a5ee7f5b7d054726d33fb474f97047', htmlFor: this._id }, h("input", { key: '04e8c665741cfb25da649d142a0dc06a65957191', type: "checkbox", role: "switch", id: this._id, ref: (el) => {
123
149
  this._ref = el;
124
- }, checked: getBoolean(this.checked, "checked"), value: this.value, disabled: getBoolean(this.disabled, "disabled"), "aria-invalid": this.validation === "invalid" ? "true" : undefined, "aria-describedby": this._descByIds, name: this.name, required: getBoolean(this.required, "required"), "data-aid-icon": (_a = this.iconLeading) !== null && _a !== void 0 ? _a : this.icon, "data-aid-icon-trailing": this.iconTrailing, onChange: (event) => this.handleChange(event), onBlur: (event) => this.handleBlur(event), onFocus: (event) => this.handleFocus(event) }), this.label ? this.label : h("slot", null)), stringPropVisible(this.message, this.showMessage) ? (h("db-infotext", { size: "small", semantic: "adaptive", id: this._messageId, icon: this.messageIcon }, this.message)) : null, this.hasValidState() ? (h("db-infotext", { size: "small", semantic: "successful", id: this._validMessageId }, (_b = this.validMessage) !== null && _b !== void 0 ? _b : DEFAULT_VALID_MESSAGE)) : null, h("db-infotext", { key: 'ab8814fd7d0dad8e03dea66eecfe9da4a245985f', size: "small", semantic: "critical", id: this._invalidMessageId }, (_d = (_c = this._invalidMessage) !== null && _c !== void 0 ? _c : this.invalidMessage) !== null && _d !== void 0 ? _d : DEFAULT_INVALID_MESSAGE), h("span", { key: 'cb5cec6bdca51ce0eab42558871d5bfd7c717a0a', "data-visually-hidden": "true", role: "status" }, this._voiceOverFallback)));
150
+ }, checked: getBoolean(this.checked, "checked"), value: this.value, disabled: getBoolean(this.disabled, "disabled"), "aria-invalid": this.validation === "invalid" ? "true" : undefined, "aria-describedby": this._descByIds, name: this.name, required: getBoolean(this.required, "required"), "data-aid-icon": (_a = this.iconLeading) !== null && _a !== void 0 ? _a : this.icon, "data-aid-icon-trailing": this.iconTrailing, onChange: (event) => this.handleChange(event), onBlur: (event) => this.handleBlur(event), onFocus: (event) => this.handleFocus(event) }), this.label ? this.label : h("slot", null)), stringPropVisible(this.message, this.showMessage) ? (h("db-infotext", { size: "small", semantic: "adaptive", id: this._messageId, icon: this.messageIcon }, this.message)) : null, this.hasValidState() ? (h("db-infotext", { size: "small", semantic: "successful", id: this._validMessageId }, (_b = this.validMessage) !== null && _b !== void 0 ? _b : DEFAULT_VALID_MESSAGE)) : null, h("db-infotext", { key: 'e581b23eeefc04c410db09968e8dde51c660ee2a', size: "small", semantic: "critical", id: this._invalidMessageId }, (_d = (_c = this._invalidMessage) !== null && _c !== void 0 ? _c : this.invalidMessage) !== null && _d !== void 0 ? _d : DEFAULT_INVALID_MESSAGE), h("span", { key: '65915eec5f15f01c9ce87cf212571425807cba1a', "data-visually-hidden": "true", role: "status" }, this._voiceOverFallback)));
125
151
  }
126
152
  static get watchers() { return {
127
153
  "validation": ["watch0"],
@@ -130,7 +156,8 @@ const DBSwitch = class {
130
156
  "showMessage": ["watch0"],
131
157
  "validMessage": ["watch0"],
132
158
  "invalidMessage": ["watch0"],
133
- "checked": ["watch0"]
159
+ "checked": ["watch0"],
160
+ "_ref": ["watch1"]
134
161
  }; }
135
162
  };
136
163
 
@@ -1 +1 @@
1
- {"version":3,"file":"db-switch.entry.js","sources":["src/components/switch/switch.tsx"],"sourcesContent":["import {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport { ChangeEvent, InteractionEvent } from \"../../shared/model\";\nimport {\n cls,\n delay,\n getBoolean,\n getBooleanAsString,\n getHideProp,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport { DBSwitchProps, DBSwitchState } from \"./model\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-switch\",\n})\nexport class DBSwitch {\n private _ref!: HTMLInputElement | any;\n @Prop() id: DBSwitchProps[\"id\"];\n @Prop() validation: DBSwitchProps[\"validation\"];\n @Prop() required: DBSwitchProps[\"required\"];\n @Prop() message: DBSwitchProps[\"message\"];\n @Prop() showMessage: DBSwitchProps[\"showMessage\"];\n @Prop() validMessage: DBSwitchProps[\"validMessage\"];\n @Prop() invalidMessage: DBSwitchProps[\"invalidMessage\"];\n @Prop() checked: DBSwitchProps[\"checked\"];\n @Event() change: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onFocus\"]>[number]\n > | void;\n @Prop() visualAid: DBSwitchProps[\"visualAid\"];\n @Prop() size: DBSwitchProps[\"size\"];\n @Prop() showLabel: DBSwitchProps[\"showLabel\"];\n @Prop() variant: DBSwitchProps[\"variant\"];\n @Prop() showRequiredAsterisk: DBSwitchProps[\"showRequiredAsterisk\"];\n @Prop({attribute: \"classname\"}) className: DBSwitchProps[\"className\"];\n @Prop() value: DBSwitchProps[\"value\"];\n @Prop() disabled: DBSwitchProps[\"disabled\"];\n @Prop() name: DBSwitchProps[\"name\"];\n @Prop() iconLeading: DBSwitchProps[\"iconLeading\"];\n @Prop() icon: DBSwitchProps[\"icon\"];\n @Prop() iconTrailing: DBSwitchProps[\"iconTrailing\"];\n @Prop() label: DBSwitchProps[\"label\"];\n @Prop() messageIcon: DBSwitchProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _descByIds = undefined;\n @State() _voiceOverFallback = \"\";\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n if (!this._ref?.validity?.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId!;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback =\n this._invalidMessage || DEFAULT_INVALID_MESSAGE;\n delay(() => {\n this._voiceOverFallback = \"\";\n }, 1000);\n }\n return;\n }\n if (this.hasValidState() && this._ref?.validity?.valid && this.required) {\n this._descByIds = this._validMessageId!;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => {\n this._voiceOverFallback = \"\";\n }, 1000);\n }\n return;\n }\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId!;\n return;\n }\n this._descByIds = undefined;\n }\n handleChange(event: ChangeEvent<HTMLInputElement>) {\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLInputElement>) {\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLInputElement>) {\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLInputElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this.handleValidation();\n }\n\n @Watch(\"validation\")\n @Watch(\"required\")\n @Watch(\"message\")\n @Watch(\"showMessage\")\n @Watch(\"validMessage\")\n @Watch(\"invalidMessage\")\n @Watch(\"checked\")\n watch0() {\n this.watch0Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-switch\");\n this._id = this.id ?? `switch-${uuid()}`;\n this._messageId = `${this._id}${DEFAULT_MESSAGE_ID_SUFFIX}`;\n this._validMessageId = `${this._id}${DEFAULT_VALID_MESSAGE_ID_SUFFIX}`;\n this._invalidMessageId = `${this._id}${DEFAULT_INVALID_MESSAGE_ID_SUFFIX}`;\n this.handleValidation();\n this.watch0Fn();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-switch\", this.className)}\n data-visual-aid={getBooleanAsString(this.visualAid)}\n data-size={this.size}\n data-hide-label={getHideProp(this.showLabel)}\n data-variant={this.variant}\n data-hide-asterisk={getHideProp(this.showRequiredAsterisk)}\n data-custom-validity={this.validation}\n >\n <label htmlFor={this._id}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n id={this._id}\n ref={(el: any) => {\n this._ref = el;\n }}\n checked={getBoolean(this.checked, \"checked\")}\n value={this.value}\n disabled={getBoolean(this.disabled, \"disabled\")}\n aria-invalid={this.validation === \"invalid\" ? \"true\" : undefined}\n aria-describedby={this._descByIds}\n name={this.name}\n required={getBoolean(this.required, \"required\")}\n data-aid-icon={this.iconLeading ?? this.icon}\n data-aid-icon-trailing={this.iconTrailing}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n />\n {this.label ? this.label : <slot></slot>}\n </label>\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n semantic=\"adaptive\"\n id={this._messageId}\n icon={this.messageIcon}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage ?? DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage ??\n this.invalidMessage ??\n DEFAULT_INVALID_MESSAGE}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-switch.entry.js","sources":["src/components/switch/switch.tsx"],"sourcesContent":["import {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport { ChangeEvent, InteractionEvent } from \"../../shared/model\";\nimport {\n cls,\n delay,\n getBoolean,\n getBooleanAsString,\n getHideProp,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n addCheckedResetEventListener,\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport { DBSwitchProps, DBSwitchState } from \"./model\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-switch\",\n})\nexport class DBSwitch {\n private _ref!: HTMLInputElement | any;\n @Prop() id: DBSwitchProps[\"id\"];\n @Prop() validation: DBSwitchProps[\"validation\"];\n @Prop() required: DBSwitchProps[\"required\"];\n @Prop() message: DBSwitchProps[\"message\"];\n @Prop() showMessage: DBSwitchProps[\"showMessage\"];\n @Prop() validMessage: DBSwitchProps[\"validMessage\"];\n @Prop() invalidMessage: DBSwitchProps[\"invalidMessage\"];\n @Prop() checked: DBSwitchProps[\"checked\"];\n @Event() change: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onFocus\"]>[number]\n > | void;\n @Prop() visualAid: DBSwitchProps[\"visualAid\"];\n @Prop() size: DBSwitchProps[\"size\"];\n @Prop() showLabel: DBSwitchProps[\"showLabel\"];\n @Prop() variant: DBSwitchProps[\"variant\"];\n @Prop() showRequiredAsterisk: DBSwitchProps[\"showRequiredAsterisk\"];\n @Prop({attribute: \"classname\"}) className: DBSwitchProps[\"className\"];\n @Prop() value: DBSwitchProps[\"value\"];\n @Prop() disabled: DBSwitchProps[\"disabled\"];\n @Prop() name: DBSwitchProps[\"name\"];\n @Prop() iconLeading: DBSwitchProps[\"iconLeading\"];\n @Prop() icon: DBSwitchProps[\"icon\"];\n @Prop() iconTrailing: DBSwitchProps[\"iconTrailing\"];\n @Prop() label: DBSwitchProps[\"label\"];\n @Prop() messageIcon: DBSwitchProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _descByIds = undefined;\n @State() _voiceOverFallback = \"\";\n @State() abortController = undefined;\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n if (!this._ref?.validity?.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId!;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback =\n this._invalidMessage || DEFAULT_INVALID_MESSAGE;\n delay(() => {\n this._voiceOverFallback = \"\";\n }, 1000);\n }\n return;\n }\n if (this.hasValidState() && this._ref?.validity?.valid && this.required) {\n this._descByIds = this._validMessageId!;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => {\n this._voiceOverFallback = \"\";\n }, 1000);\n }\n return;\n }\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId!;\n return;\n }\n this._descByIds = undefined;\n }\n handleChange(event: ChangeEvent<HTMLInputElement>, reset?: boolean) {\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLInputElement>) {\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLInputElement>) {\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLInputElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this.handleValidation();\n }\n\n @Watch(\"validation\")\n @Watch(\"required\")\n @Watch(\"message\")\n @Watch(\"showMessage\")\n @Watch(\"validMessage\")\n @Watch(\"invalidMessage\")\n @Watch(\"checked\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._ref) {\n const defaultChecked = undefined;\n let controller = this.abortController;\n if (!controller) {\n controller = new AbortController();\n this.abortController = controller;\n }\n addCheckedResetEventListener(\n this._ref,\n {\n checked: this.checked,\n defaultChecked,\n },\n (event) => {\n this.handleChange(event, true);\n },\n controller.signal\n );\n }\n }\n\n @Watch(\"_ref\")\n watch1() {\n this.watch1Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-switch\");\n this._id = this.id ?? `switch-${uuid()}`;\n this._messageId = `${this._id}${DEFAULT_MESSAGE_ID_SUFFIX}`;\n this._validMessageId = `${this._id}${DEFAULT_VALID_MESSAGE_ID_SUFFIX}`;\n this._invalidMessageId = `${this._id}${DEFAULT_INVALID_MESSAGE_ID_SUFFIX}`;\n this.handleValidation();\n this.watch0Fn();\n this.watch1Fn();\n }\n disconnectedCallback() {\n this.abortController?.abort();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-switch\", this.className)}\n data-visual-aid={getBooleanAsString(this.visualAid)}\n data-size={this.size}\n data-hide-label={getHideProp(this.showLabel)}\n data-variant={this.variant}\n data-hide-asterisk={getHideProp(this.showRequiredAsterisk)}\n data-custom-validity={this.validation}\n >\n <label htmlFor={this._id}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n id={this._id}\n ref={(el: any) => {\n this._ref = el;\n }}\n checked={getBoolean(this.checked, \"checked\")}\n value={this.value}\n disabled={getBoolean(this.disabled, \"disabled\")}\n aria-invalid={this.validation === \"invalid\" ? \"true\" : undefined}\n aria-describedby={this._descByIds}\n name={this.name}\n required={getBoolean(this.required, \"required\")}\n data-aid-icon={this.iconLeading ?? this.icon}\n data-aid-icon-trailing={this.iconTrailing}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n />\n {this.label ? this.label : <slot></slot>}\n </label>\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n semantic=\"adaptive\"\n id={this._messageId}\n icon={this.messageIcon}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage ?? DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage ??\n this.invalidMessage ??\n DEFAULT_INVALID_MESSAGE}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-C6WmMqtR.js';
2
2
  import { l as DEFAULT_INVALID_MESSAGE, g as DEFAULT_VALID_MESSAGE_ID_SUFFIX, h as DEFAULT_INVALID_MESSAGE_ID_SUFFIX, f as DEFAULT_MESSAGE_ID_SUFFIX, k as DEFAULT_VALID_MESSAGE, b as DEFAULT_PLACEHOLDER, r as DEFAULT_ROWS, a as DEFAULT_LABEL } from './constants-DC9V_oNU.js';
3
3
  import { h as hasVoiceOver, d as delay, s as stringPropVisible, u as uuid, f as getNumber, e as getBoolean, k as getHideProp, c as cls } from './index-DhKljLRG.js';
4
+ import { c as addValueResetEventListener } from './form-components-DmI6JmyJ.js';
4
5
 
5
6
  const DBTextarea = class {
6
7
  constructor(hostRef) {
@@ -17,6 +18,7 @@ const DBTextarea = class {
17
18
  this._descByIds = undefined;
18
19
  this._value = "";
19
20
  this._voiceOverFallback = "";
21
+ this.abortController = undefined;
20
22
  }
21
23
  hasValidState() {
22
24
  var _a;
@@ -52,13 +54,13 @@ const DBTextarea = class {
52
54
  this._descByIds = undefined;
53
55
  }
54
56
  }
55
- handleInput(event) {
57
+ handleInput(event, reset) {
56
58
  if (this.input) {
57
59
  this.input.emit(event);
58
60
  }
59
61
  this.handleValidation();
60
62
  }
61
- handleChange(event) {
63
+ handleChange(event, reset) {
62
64
  if (this.change) {
63
65
  this.change.emit(event);
64
66
  }
@@ -137,6 +139,26 @@ const DBTextarea = class {
137
139
  watch2() {
138
140
  this.watch2Fn();
139
141
  }
142
+ watch3Fn() {
143
+ if (this._ref) {
144
+ const defaultValue = undefined;
145
+ let controller = this.abortController;
146
+ if (!controller) {
147
+ controller = new AbortController();
148
+ this.abortController = controller;
149
+ }
150
+ addValueResetEventListener(this._ref, {
151
+ value: this.value,
152
+ defaultValue,
153
+ }, (event) => {
154
+ this.handleChange(event, true);
155
+ this.handleInput(event, true);
156
+ }, controller.signal);
157
+ }
158
+ }
159
+ watch3() {
160
+ this.watch3Fn();
161
+ }
140
162
  componentDidLoad() {
141
163
  var _a;
142
164
  this.enableAttributePassing(this._ref, "db-textarea");
@@ -149,16 +171,21 @@ const DBTextarea = class {
149
171
  this.watch0Fn();
150
172
  this.watch1Fn();
151
173
  this.watch2Fn();
174
+ this.watch3Fn();
175
+ }
176
+ disconnectedCallback() {
177
+ var _a;
178
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
152
179
  }
153
180
  render() {
154
181
  var _a, _b, _c, _d, _e;
155
- return (h("div", { key: 'a649040d1fa37d907b3608a2c37beb7cbc740d4b', class: cls("db-textarea", this.className), "data-variant": this.variant, "data-hide-asterisk": getHideProp(this.showRequiredAsterisk), "data-hide-label": getHideProp(this.showLabel) }, h("label", { key: '784fdef1d47e8193c8b89a94047d1aaa581027ad', htmlFor: this._id }, (_a = this.label) !== null && _a !== void 0 ? _a : DEFAULT_LABEL), h("textarea", { key: 'a4f4eb71a5871c5a72b250c779b2c7c4988c51a3', "aria-invalid": this.validation === "invalid", "data-custom-validity": this.validation, "data-field-sizing": this.fieldSizing, ref: (el) => {
182
+ return (h("div", { key: '9255fc80e1688243e518a6e109e9114dc146423e', class: cls("db-textarea", this.className), "data-variant": this.variant, "data-hide-asterisk": getHideProp(this.showRequiredAsterisk), "data-hide-label": getHideProp(this.showLabel) }, h("label", { key: 'b6b329b9e0f27286df0d1bb905fb9b717ee9fe19', htmlFor: this._id }, (_a = this.label) !== null && _a !== void 0 ? _a : DEFAULT_LABEL), h("textarea", { key: '7a8a0f97d2348dd5b4d47a2dc8c7ff1530e094df', "aria-invalid": this.validation === "invalid", "data-custom-validity": this.validation, "data-field-sizing": this.fieldSizing, ref: (el) => {
156
183
  this._ref = el;
157
184
  }, id: this._id, "data-resize": this.resize, "data-hide-resizer": getHideProp((_b = this.showResizer) !== null && _b !== void 0 ? _b : true), disabled: getBoolean(this.disabled, "disabled"), required: getBoolean(this.required, "required"), readOnly: getBoolean(this.readOnly, "readOnly") ||
158
- getBoolean(this.readonly, "readonly"), form: this.form, maxLength: getNumber(this.maxLength, this.maxlength), minLength: getNumber(this.minLength, this.minlength), name: this.name, wrap: this.wrap, spellcheck: this.spellCheck, autocomplete: this.autocomplete, onInput: (event) => this.handleInput(event), onChange: (event) => this.handleChange(event), onBlur: (event) => this.handleBlur(event), onFocus: (event) => this.handleFocus(event), value: (_c = this.value) !== null && _c !== void 0 ? _c : this._value, "aria-describedby": (_d = this.ariaDescribedBy) !== null && _d !== void 0 ? _d : this._descByIds, placeholder: (_e = this.placeholder) !== null && _e !== void 0 ? _e : DEFAULT_PLACEHOLDER, rows: getNumber(this.rows, DEFAULT_ROWS), cols: getNumber(this.cols) }), stringPropVisible(this.message, this.showMessage) ? (h("db-infotext", { size: "small", icon: this.messageIcon, id: this._messageId }, this.message)) : null, this.hasValidState() ? (h("db-infotext", { size: "small", semantic: "successful", id: this._validMessageId }, this.validMessage || DEFAULT_VALID_MESSAGE)) : null, h("db-infotext", { key: '1c499fb00436791637cd7efaf908cf5cef66c19c', size: "small", semantic: "critical", id: this._invalidMessageId }, this._invalidMessage), h("span", { key: '6c4b23b49afa46786f3f3b088c1a8939e0a455db', "data-visually-hidden": "true", role: "status" }, this._voiceOverFallback)));
185
+ getBoolean(this.readonly, "readonly"), form: this.form, maxLength: getNumber(this.maxLength, this.maxlength), minLength: getNumber(this.minLength, this.minlength), name: this.name, wrap: this.wrap, spellcheck: this.spellCheck, autocomplete: this.autocomplete, onInput: (event) => this.handleInput(event), onChange: (event) => this.handleChange(event), onBlur: (event) => this.handleBlur(event), onFocus: (event) => this.handleFocus(event), value: (_c = this.value) !== null && _c !== void 0 ? _c : this._value, "aria-describedby": (_d = this.ariaDescribedBy) !== null && _d !== void 0 ? _d : this._descByIds, placeholder: (_e = this.placeholder) !== null && _e !== void 0 ? _e : DEFAULT_PLACEHOLDER, rows: getNumber(this.rows, DEFAULT_ROWS), cols: getNumber(this.cols) }), stringPropVisible(this.message, this.showMessage) ? (h("db-infotext", { size: "small", icon: this.messageIcon, id: this._messageId }, this.message)) : null, this.hasValidState() ? (h("db-infotext", { size: "small", semantic: "successful", id: this._validMessageId }, this.validMessage || DEFAULT_VALID_MESSAGE)) : null, h("db-infotext", { key: 'f291ebb55cc437ba56ed5fb01e4c261037ce453c', size: "small", semantic: "critical", id: this._invalidMessageId }, this._invalidMessage), h("span", { key: '2b2079f8e31da8800bd00e4e5b41d71bcde3ab95', "data-visually-hidden": "true", role: "status" }, this._voiceOverFallback)));
159
186
  }
160
187
  static get watchers() { return {
161
- "_ref": ["watch0"],
188
+ "_ref": ["watch0", "watch3"],
162
189
  "invalidMessage": ["watch0"],
163
190
  "_id": ["watch1"],
164
191
  "value": ["watch2"]
@@ -1 +1 @@
1
- {"version":3,"file":"db-textarea.entry.js","sources":["src/components/textarea/textarea.tsx"],"sourcesContent":["import {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_LABEL,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_PLACEHOLDER,\n DEFAULT_ROWS,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport { ChangeEvent, InputEvent, InteractionEvent } from \"../../shared/model\";\nimport {\n cls,\n delay,\n getBoolean,\n getHideProp,\n getNumber,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport { DBTextareaProps, DBTextareaState } from \"./model\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-textarea\",\n})\nexport class DBTextarea {\n private _ref!: HTMLTextAreaElement | any;\n @Prop() id: DBTextareaProps[\"id\"];\n @Prop() invalidMessage: DBTextareaProps[\"invalidMessage\"];\n @Prop() message: DBTextareaProps[\"message\"];\n @Prop() showMessage: DBTextareaProps[\"showMessage\"];\n @Prop() value: DBTextareaProps[\"value\"];\n @Prop() validMessage: DBTextareaProps[\"validMessage\"];\n @Prop() validation: DBTextareaProps[\"validation\"];\n @Prop() required: DBTextareaProps[\"required\"];\n @Prop() minLength: DBTextareaProps[\"minLength\"];\n @Prop() maxLength: DBTextareaProps[\"maxLength\"];\n @Event() input: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onInput\"]>[number]\n > | void;\n @Event() change: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onFocus\"]>[number]\n > | void;\n @Prop({attribute: \"classname\"}) className: DBTextareaProps[\"className\"];\n @Prop() variant: DBTextareaProps[\"variant\"];\n @Prop() showRequiredAsterisk: DBTextareaProps[\"showRequiredAsterisk\"];\n @Prop() showLabel: DBTextareaProps[\"showLabel\"];\n @Prop() label: DBTextareaProps[\"label\"];\n @Prop() fieldSizing: DBTextareaProps[\"fieldSizing\"];\n @Prop() resize: DBTextareaProps[\"resize\"];\n @Prop() showResizer: DBTextareaProps[\"showResizer\"];\n @Prop() disabled: DBTextareaProps[\"disabled\"];\n @Prop() readOnly: DBTextareaProps[\"readOnly\"];\n @Prop() readonly: DBTextareaProps[\"readonly\"];\n @Prop() form: DBTextareaProps[\"form\"];\n @Prop() maxlength: DBTextareaProps[\"maxlength\"];\n @Prop() minlength: DBTextareaProps[\"minlength\"];\n @Prop() name: DBTextareaProps[\"name\"];\n @Prop() wrap: DBTextareaProps[\"wrap\"];\n @Prop() spellCheck: DBTextareaProps[\"spellCheck\"];\n @Prop() autocomplete: DBTextareaProps[\"autocomplete\"];\n @Prop() ariaDescribedBy: DBTextareaProps[\"ariaDescribedBy\"];\n @Prop() placeholder: DBTextareaProps[\"placeholder\"];\n @Prop() rows: DBTextareaProps[\"rows\"];\n @Prop() cols: DBTextareaProps[\"cols\"];\n @Prop() messageIcon: DBTextareaProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _descByIds = undefined;\n @State() _value = \"\";\n @State() _voiceOverFallback = \"\";\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n /* For a11y reasons we need to map the correct message with the textarea */\n if (!this._ref?.validity.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this._invalidMessage;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (\n this.hasValidState() &&\n this._ref?.validity.valid &&\n (this.required || this.minLength || this.maxLength)\n ) {\n this._descByIds = this._validMessageId;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId;\n } else {\n this._descByIds = undefined;\n }\n }\n handleInput(event: InputEvent<HTMLTextAreaElement>) {\n if (this.input) {\n this.input.emit(event);\n }\n this.handleValidation();\n }\n handleChange(event: ChangeEvent<HTMLTextAreaElement>) {\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLTextAreaElement> | any) {\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLTextAreaElement> | any) {\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLTextAreaElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n }\n\n @Watch(\"_ref\")\n @Watch(\"invalidMessage\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._id) {\n const messageId = this._id + DEFAULT_MESSAGE_ID_SUFFIX;\n this._messageId = messageId;\n this._validMessageId = this._id + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = this._id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = messageId;\n }\n this.handleValidation();\n }\n }\n\n @Watch(\"_id\")\n watch1() {\n this.watch1Fn();\n }\n\n watch2Fn() {\n this._value = this.value;\n }\n\n @Watch(\"value\")\n watch2() {\n this.watch2Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-textarea\");\n const mId = this.id ?? `textarea-${uuid()}`;\n this._id = mId;\n this._messageId = mId + DEFAULT_MESSAGE_ID_SUFFIX;\n this._validMessageId = mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;\n this.watch0Fn();\n this.watch1Fn();\n this.watch2Fn();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-textarea\", this.className)}\n data-variant={this.variant}\n data-hide-asterisk={getHideProp(this.showRequiredAsterisk)}\n data-hide-label={getHideProp(this.showLabel)}\n >\n <label htmlFor={this._id}>{this.label ?? DEFAULT_LABEL}</label>\n <textarea\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n data-field-sizing={this.fieldSizing}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this._id}\n data-resize={this.resize}\n data-hide-resizer={getHideProp(this.showResizer ?? true)}\n disabled={getBoolean(this.disabled, \"disabled\")}\n required={getBoolean(this.required, \"required\")}\n readOnly={\n getBoolean(this.readOnly, \"readOnly\") ||\n getBoolean(this.readonly, \"readonly\")\n }\n form={this.form}\n maxLength={getNumber(this.maxLength, this.maxlength)}\n minLength={getNumber(this.minLength, this.minlength)}\n name={this.name}\n wrap={this.wrap}\n spellcheck={this.spellCheck}\n autocomplete={this.autocomplete}\n onInput={(event) => this.handleInput(event)}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n value={this.value ?? this._value}\n aria-describedby={this.ariaDescribedBy ?? this._descByIds}\n placeholder={this.placeholder ?? DEFAULT_PLACEHOLDER}\n rows={getNumber(this.rows, DEFAULT_ROWS)}\n cols={getNumber(this.cols)}\n ></textarea>\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n icon={this.messageIcon}\n id={this._messageId}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage || DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"names":[],"mappings":";;;;MA+Ca,UAAU,GAAA,MAAA;AAHtB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;AAkDU,QAAA,IAAG,CAAA,GAAA,GAAG,SAAS;AACf,QAAA,IAAU,CAAA,UAAA,GAAG,SAAS;AACtB,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS;AAC3B,QAAA,IAAiB,CAAA,iBAAA,GAAG,SAAS;AAC7B,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS;AAC3B,QAAA,IAAU,CAAA,UAAA,GAAG,SAAS;AACtB,QAAA,IAAM,CAAA,MAAA,GAAG,EAAE;AACX,QAAA,IAAkB,CAAA,kBAAA,GAAG,EAAE;AA8NjC;IA5NC,aAAa,GAAA;;AACX,QAAA,OAAO,CAAC,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC;;IAE7D,gBAAgB,GAAA;;;AAEd,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,KAAK,CAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB;AACxC,YAAA,IAAI,CAAC,eAAe;AAClB,gBAAA,IAAI,CAAC,cAAc;qBACnB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB,CAAA;AAC5B,oBAAA,uBAAuB;YACzB,IAAI,YAAY,EAAE,EAAE;AAClB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe;AAC9C,gBAAA,KAAK,CAAC,OAAO,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;;;aAE9C,IACL,IAAI,CAAC,aAAa,EAAE;aACpB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,KAAK,CAAA;AACzB,aAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,EACnD;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;YACtC,IAAI,YAAY,EAAE,EAAE;gBAClB,IAAI,CAAC,kBAAkB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,qBAAqB;AACpE,gBAAA,KAAK,CAAC,OAAO,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;;;aAE9C,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;;aAC5B;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;;AAG/B,IAAA,WAAW,CAAC,KAAsC,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;QAExB,IAAI,CAAC,gBAAgB,EAAE;;AAEzB,IAAA,YAAY,CAAC,KAAuC,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;QAEzB,IAAI,CAAC,gBAAgB,EAAE;;AAEzB,IAAA,UAAU,CAAC,KAAkD,EAAA;AAC3D,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAGzB,IAAA,WAAW,CAAC,KAAkD,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAI1B;;;;AAIG;IACK,sBAAsB,CAC5B,OAAmC,EACnC,qBAA6B,EAAA;QAE7B,MAAM,MAAM,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,OAAO,CAAC,qBAAqB,CAAC;AACtD,QAAA,IAAI,OAAO,IAAI,MAAM,EAAE;AACrB,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU;AACpC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,gBAAA,IACE,IAAI;AACJ,qBAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAChE;oBACA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;AAC3C,oBAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;gBAEnC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;oBACjC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;AACtD,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;oBACvD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;oBAClD,OAAO,CAAC,YAAY,CAClB,IAAI,CAAC,IAAI,EACT,CAAG,EAAA,YAAY,GAAG,CAAG,EAAA,YAAY,CAAG,CAAA,CAAA,GAAG,EAAE,CAAG,EAAA,KAAK,CAAE,CAAA,CACpD;oBACD,IAAI,cAAc,EAAE;;AAElB,wBAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;;yBACnC;AACL,wBAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;IAO3C,QAAQ,GAAA;;AACN,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,IAAI,CAAC,cAAc;iBACnB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB,CAAA;AAC5B,gBAAA,uBAAuB;;IAK3B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACZ,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,yBAAyB;AACtD,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,GAAG,+BAA+B;YACjE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,GAAG,iCAAiC;YACrE,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;YAE7B,IAAI,CAAC,gBAAgB,EAAE;;;IAK3B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;;IAI1B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,gBAAgB,GAAA;;QACd,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACrD,MAAM,GAAG,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAY,SAAA,EAAA,IAAI,EAAE,CAAA,CAAE;AAC3C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,yBAAyB;AACjD,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,+BAA+B;AAC5D,QAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,GAAG,iCAAiC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,IAAI,uBAAuB;QACrE,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;;IAGjB,MAAM,GAAA;;QACJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAC3B,cAAA,EAAA,IAAI,CAAC,OAAO,EACN,oBAAA,EAAA,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAA,iBAAA,EACzC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAA,EAE5C,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,OAAO,EAAE,IAAI,CAAC,GAAG,EAAA,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,aAAa,CAAS,EAC/D,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,cAAA,EACgB,IAAI,CAAC,UAAU,KAAK,SAAS,EAAA,sBAAA,EACrB,IAAI,CAAC,UAAU,uBAClB,IAAI,CAAC,WAAW,EACnC,GAAG,EAAE,CAAC,EAAO,KAAI;AACf,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AAChB,aAAC,EACD,EAAE,EAAE,IAAI,CAAC,GAAG,EACC,aAAA,EAAA,IAAI,CAAC,MAAM,EACL,mBAAA,EAAA,WAAW,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,CAAC,EACxD,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC/C,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC/C,QAAQ,EACN,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;AACrC,gBAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAEvC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EACpD,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EACpD,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAC3C,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAC7C,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EACzC,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAC3C,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI,CAAC,MAAM,EACd,kBAAA,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,CAAC,UAAU,EACzD,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,mBAAmB,EACpD,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EACxC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAChB,CAAA,EACX,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAChD,mBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,EAAE,EAAE,IAAI,CAAC,UAAU,EAElB,EAAA,IAAI,CAAC,OAAO,CACD,IACZ,IAAI,EACP,IAAI,CAAC,aAAa,EAAE,IACnB,CACE,CAAA,aAAA,EAAA,EAAA,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,YAAY,EACrB,EAAE,EAAE,IAAI,CAAC,eAAe,EAAA,EAEvB,IAAI,CAAC,YAAY,IAAI,qBAAqB,CAC/B,IACZ,IAAI,EACR,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,UAAU,EACnB,EAAE,EAAE,IAAI,CAAC,iBAAiB,IAEzB,IAAI,CAAC,eAAe,CACT,EACd,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,sBAAA,EAA2B,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC5C,IAAI,CAAC,kBAAkB,CACnB,CACH;;;;;;;;;;;;"}
1
+ {"version":3,"file":"db-textarea.entry.js","sources":["src/components/textarea/textarea.tsx"],"sourcesContent":["import {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_LABEL,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_PLACEHOLDER,\n DEFAULT_ROWS,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport { ChangeEvent, InputEvent, InteractionEvent } from \"../../shared/model\";\nimport {\n cls,\n delay,\n getBoolean,\n getHideProp,\n getNumber,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n addValueResetEventListener,\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport { DBTextareaProps, DBTextareaState } from \"./model\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-textarea\",\n})\nexport class DBTextarea {\n private _ref!: HTMLTextAreaElement | any;\n @Prop() id: DBTextareaProps[\"id\"];\n @Prop() invalidMessage: DBTextareaProps[\"invalidMessage\"];\n @Prop() message: DBTextareaProps[\"message\"];\n @Prop() showMessage: DBTextareaProps[\"showMessage\"];\n @Prop() value: DBTextareaProps[\"value\"];\n @Prop() validMessage: DBTextareaProps[\"validMessage\"];\n @Prop() validation: DBTextareaProps[\"validation\"];\n @Prop() required: DBTextareaProps[\"required\"];\n @Prop() minLength: DBTextareaProps[\"minLength\"];\n @Prop() maxLength: DBTextareaProps[\"maxLength\"];\n @Event() input: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onInput\"]>[number]\n > | void;\n @Event() change: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onFocus\"]>[number]\n > | void;\n @Prop({attribute: \"classname\"}) className: DBTextareaProps[\"className\"];\n @Prop() variant: DBTextareaProps[\"variant\"];\n @Prop() showRequiredAsterisk: DBTextareaProps[\"showRequiredAsterisk\"];\n @Prop() showLabel: DBTextareaProps[\"showLabel\"];\n @Prop() label: DBTextareaProps[\"label\"];\n @Prop() fieldSizing: DBTextareaProps[\"fieldSizing\"];\n @Prop() resize: DBTextareaProps[\"resize\"];\n @Prop() showResizer: DBTextareaProps[\"showResizer\"];\n @Prop() disabled: DBTextareaProps[\"disabled\"];\n @Prop() readOnly: DBTextareaProps[\"readOnly\"];\n @Prop() readonly: DBTextareaProps[\"readonly\"];\n @Prop() form: DBTextareaProps[\"form\"];\n @Prop() maxlength: DBTextareaProps[\"maxlength\"];\n @Prop() minlength: DBTextareaProps[\"minlength\"];\n @Prop() name: DBTextareaProps[\"name\"];\n @Prop() wrap: DBTextareaProps[\"wrap\"];\n @Prop() spellCheck: DBTextareaProps[\"spellCheck\"];\n @Prop() autocomplete: DBTextareaProps[\"autocomplete\"];\n @Prop() ariaDescribedBy: DBTextareaProps[\"ariaDescribedBy\"];\n @Prop() placeholder: DBTextareaProps[\"placeholder\"];\n @Prop() rows: DBTextareaProps[\"rows\"];\n @Prop() cols: DBTextareaProps[\"cols\"];\n @Prop() messageIcon: DBTextareaProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _descByIds = undefined;\n @State() _value = \"\";\n @State() _voiceOverFallback = \"\";\n @State() abortController = undefined;\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n /* For a11y reasons we need to map the correct message with the textarea */\n if (!this._ref?.validity.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this._invalidMessage;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (\n this.hasValidState() &&\n this._ref?.validity.valid &&\n (this.required || this.minLength || this.maxLength)\n ) {\n this._descByIds = this._validMessageId;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId;\n } else {\n this._descByIds = undefined;\n }\n }\n handleInput(event: InputEvent<HTMLTextAreaElement>, reset?: boolean) {\n if (this.input) {\n this.input.emit(event);\n }\n this.handleValidation();\n }\n handleChange(event: ChangeEvent<HTMLTextAreaElement>, reset?: boolean) {\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLTextAreaElement> | any) {\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLTextAreaElement> | any) {\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLTextAreaElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n }\n\n @Watch(\"_ref\")\n @Watch(\"invalidMessage\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._id) {\n const messageId = this._id + DEFAULT_MESSAGE_ID_SUFFIX;\n this._messageId = messageId;\n this._validMessageId = this._id + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = this._id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = messageId;\n }\n this.handleValidation();\n }\n }\n\n @Watch(\"_id\")\n watch1() {\n this.watch1Fn();\n }\n\n watch2Fn() {\n this._value = this.value;\n }\n\n @Watch(\"value\")\n watch2() {\n this.watch2Fn();\n }\n\n watch3Fn() {\n if (this._ref) {\n const defaultValue = undefined;\n let controller = this.abortController;\n if (!controller) {\n controller = new AbortController();\n this.abortController = controller;\n }\n addValueResetEventListener(\n this._ref,\n {\n value: this.value,\n defaultValue,\n },\n (event) => {\n this.handleChange(event, true);\n this.handleInput(event, true);\n },\n controller.signal\n );\n }\n }\n\n @Watch(\"_ref\")\n watch3() {\n this.watch3Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-textarea\");\n const mId = this.id ?? `textarea-${uuid()}`;\n this._id = mId;\n this._messageId = mId + DEFAULT_MESSAGE_ID_SUFFIX;\n this._validMessageId = mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;\n this.watch0Fn();\n this.watch1Fn();\n this.watch2Fn();\n this.watch3Fn();\n }\n disconnectedCallback() {\n this.abortController?.abort();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-textarea\", this.className)}\n data-variant={this.variant}\n data-hide-asterisk={getHideProp(this.showRequiredAsterisk)}\n data-hide-label={getHideProp(this.showLabel)}\n >\n <label htmlFor={this._id}>{this.label ?? DEFAULT_LABEL}</label>\n <textarea\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n data-field-sizing={this.fieldSizing}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this._id}\n data-resize={this.resize}\n data-hide-resizer={getHideProp(this.showResizer ?? true)}\n disabled={getBoolean(this.disabled, \"disabled\")}\n required={getBoolean(this.required, \"required\")}\n readOnly={\n getBoolean(this.readOnly, \"readOnly\") ||\n getBoolean(this.readonly, \"readonly\")\n }\n form={this.form}\n maxLength={getNumber(this.maxLength, this.maxlength)}\n minLength={getNumber(this.minLength, this.minlength)}\n name={this.name}\n wrap={this.wrap}\n spellcheck={this.spellCheck}\n autocomplete={this.autocomplete}\n onInput={(event) => this.handleInput(event)}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n value={this.value ?? this._value}\n aria-describedby={this.ariaDescribedBy ?? this._descByIds}\n placeholder={this.placeholder ?? DEFAULT_PLACEHOLDER}\n rows={getNumber(this.rows, DEFAULT_ROWS)}\n cols={getNumber(this.cols)}\n ></textarea>\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n icon={this.messageIcon}\n id={this._messageId}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage || DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"names":[],"mappings":";;;;;MAgDa,UAAU,GAAA,MAAA;AAHtB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;AAkDU,QAAA,IAAG,CAAA,GAAA,GAAG,SAAS;AACf,QAAA,IAAU,CAAA,UAAA,GAAG,SAAS;AACtB,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS;AAC3B,QAAA,IAAiB,CAAA,iBAAA,GAAG,SAAS;AAC7B,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS;AAC3B,QAAA,IAAU,CAAA,UAAA,GAAG,SAAS;AACtB,QAAA,IAAM,CAAA,MAAA,GAAG,EAAE;AACX,QAAA,IAAkB,CAAA,kBAAA,GAAG,EAAE;AACvB,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS;AA8PrC;IA5PC,aAAa,GAAA;;AACX,QAAA,OAAO,CAAC,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC;;IAE7D,gBAAgB,GAAA;;;AAEd,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,KAAK,CAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB;AACxC,YAAA,IAAI,CAAC,eAAe;AAClB,gBAAA,IAAI,CAAC,cAAc;qBACnB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB,CAAA;AAC5B,oBAAA,uBAAuB;YACzB,IAAI,YAAY,EAAE,EAAE;AAClB,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe;AAC9C,gBAAA,KAAK,CAAC,OAAO,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;;;aAE9C,IACL,IAAI,CAAC,aAAa,EAAE;aACpB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,KAAK,CAAA;AACzB,aAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,EACnD;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe;YACtC,IAAI,YAAY,EAAE,EAAE;gBAClB,IAAI,CAAC,kBAAkB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,qBAAqB;AACpE,gBAAA,KAAK,CAAC,OAAO,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;;;aAE9C,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;;aAC5B;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;;IAG/B,WAAW,CAAC,KAAsC,EAAE,KAAe,EAAA;AACjE,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;QAExB,IAAI,CAAC,gBAAgB,EAAE;;IAEzB,YAAY,CAAC,KAAuC,EAAE,KAAe,EAAA;AACnE,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;QAEzB,IAAI,CAAC,gBAAgB,EAAE;;AAEzB,IAAA,UAAU,CAAC,KAAkD,EAAA;AAC3D,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAGzB,IAAA,WAAW,CAAC,KAAkD,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAI1B;;;;AAIG;IACK,sBAAsB,CAC5B,OAAmC,EACnC,qBAA6B,EAAA;QAE7B,MAAM,MAAM,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,OAAO,CAAC,qBAAqB,CAAC;AACtD,QAAA,IAAI,OAAO,IAAI,MAAM,EAAE;AACrB,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU;AACpC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,gBAAA,IACE,IAAI;AACJ,qBAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAChE;oBACA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;AAC3C,oBAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;gBAEnC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;oBACjC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;AACtD,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;oBACvD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;oBAClD,OAAO,CAAC,YAAY,CAClB,IAAI,CAAC,IAAI,EACT,CAAG,EAAA,YAAY,GAAG,CAAG,EAAA,YAAY,CAAG,CAAA,CAAA,GAAG,EAAE,CAAG,EAAA,KAAK,CAAE,CAAA,CACpD;oBACD,IAAI,cAAc,EAAE;;AAElB,wBAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;;yBACnC;AACL,wBAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;IAO3C,QAAQ,GAAA;;AACN,QAAA,IAAI,CAAC,eAAe;AAClB,YAAA,IAAI,CAAC,cAAc;iBACnB,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB,CAAA;AAC5B,gBAAA,uBAAuB;;IAK3B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACZ,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,yBAAyB;AACtD,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,GAAG,+BAA+B;YACjE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,GAAG,iCAAiC;YACrE,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS;;YAE7B,IAAI,CAAC,gBAAgB,EAAE;;;IAK3B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;;IAI1B,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,YAAY,GAAG,SAAS;AAC9B,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe;YACrC,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,UAAU,GAAG,IAAI,eAAe,EAAE;AAClC,gBAAA,IAAI,CAAC,eAAe,GAAG,UAAU;;AAEnC,YAAA,0BAA0B,CACxB,IAAI,CAAC,IAAI,EACT;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY;aACb,EACD,CAAC,KAAK,KAAI;AACR,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9B,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/B,aAAC,EACD,UAAU,CAAC,MAAM,CAClB;;;IAKL,MAAM,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE;;IAGjB,gBAAgB,GAAA;;QACd,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACrD,MAAM,GAAG,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAY,SAAA,EAAA,IAAI,EAAE,CAAA,CAAE;AAC3C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,yBAAyB;AACjD,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,+BAA+B;AAC5D,QAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG,GAAG,iCAAiC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,IAAI,uBAAuB;QACrE,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,EAAE;;IAEjB,oBAAoB,GAAA;;QAClB,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;IAG/B,MAAM,GAAA;;QACJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAC3B,cAAA,EAAA,IAAI,CAAC,OAAO,EACN,oBAAA,EAAA,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAA,iBAAA,EACzC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAA,EAE5C,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,OAAO,EAAE,IAAI,CAAC,GAAG,EAAA,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,aAAa,CAAS,EAC/D,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,cAAA,EACgB,IAAI,CAAC,UAAU,KAAK,SAAS,EAAA,sBAAA,EACrB,IAAI,CAAC,UAAU,uBAClB,IAAI,CAAC,WAAW,EACnC,GAAG,EAAE,CAAC,EAAO,KAAI;AACf,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AAChB,aAAC,EACD,EAAE,EAAE,IAAI,CAAC,GAAG,EACC,aAAA,EAAA,IAAI,CAAC,MAAM,EACL,mBAAA,EAAA,WAAW,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,CAAC,EACxD,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC/C,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC/C,QAAQ,EACN,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;AACrC,gBAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAEvC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EACpD,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EACpD,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAC3C,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAC7C,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EACzC,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAC3C,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI,CAAC,MAAM,EACd,kBAAA,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,IAAI,CAAC,UAAU,EACzD,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,mBAAmB,EACpD,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EACxC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAChB,CAAA,EACX,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAChD,mBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,EAAE,EAAE,IAAI,CAAC,UAAU,EAElB,EAAA,IAAI,CAAC,OAAO,CACD,IACZ,IAAI,EACP,IAAI,CAAC,aAAa,EAAE,IACnB,CACE,CAAA,aAAA,EAAA,EAAA,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,YAAY,EACrB,EAAE,EAAE,IAAI,CAAC,eAAe,EAAA,EAEvB,IAAI,CAAC,YAAY,IAAI,qBAAqB,CAC/B,IACZ,IAAI,EACR,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAC,UAAU,EACnB,EAAE,EAAE,IAAI,CAAC,iBAAiB,IAEzB,IAAI,CAAC,eAAe,CACT,EACd,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,sBAAA,EAA2B,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC5C,IAAI,CAAC,kBAAkB,CACnB,CACH;;;;;;;;;;;;"}