@dubai-design-system/components-js 3.11.9 → 3.12.2-alpha.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 (85) hide show
  1. package/dist/cjs/dda-header-menu_3.cjs.entry.js +33 -3
  2. package/dist/cjs/dda-header-menu_3.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dda-phonefield.cjs.entry.js +8 -12
  4. package/dist/cjs/dda-phonefield.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dda-search-input.cjs.entry.js +3 -3
  6. package/dist/cjs/dda-search-input.cjs.entry.js.map +1 -1
  7. package/dist/cjs/dda-select.cjs.entry.js +17 -7
  8. package/dist/cjs/dda-select.cjs.entry.js.map +1 -1
  9. package/dist/cjs/dda-textarea.cjs.entry.js +30 -4
  10. package/dist/cjs/dda-textarea.cjs.entry.js.map +1 -1
  11. package/dist/collection/components/dda-input/dda-input.js +35 -5
  12. package/dist/collection/components/dda-input/dda-input.js.map +1 -1
  13. package/dist/collection/components/dda-phonefield/dda-phonefield.js +10 -14
  14. package/dist/collection/components/dda-phonefield/dda-phonefield.js.map +1 -1
  15. package/dist/collection/components/dda-search-input/dda-search-input.js +5 -5
  16. package/dist/collection/components/dda-search-input/dda-search-input.js.map +1 -1
  17. package/dist/collection/components/dda-select/dda-select.js +21 -11
  18. package/dist/collection/components/dda-select/dda-select.js.map +1 -1
  19. package/dist/collection/components/dda-textarea/dda-textarea.js +32 -6
  20. package/dist/collection/components/dda-textarea/dda-textarea.js.map +1 -1
  21. package/dist/components/dda-header.js +1 -1
  22. package/dist/components/dda-input.js +1 -1
  23. package/dist/components/dda-phonefield.js +8 -12
  24. package/dist/components/dda-phonefield.js.map +1 -1
  25. package/dist/components/dda-search-input.js +3 -3
  26. package/dist/components/dda-search-input.js.map +1 -1
  27. package/dist/components/dda-select.js +17 -7
  28. package/dist/components/dda-select.js.map +1 -1
  29. package/dist/components/dda-textarea.js +30 -4
  30. package/dist/components/dda-textarea.js.map +1 -1
  31. package/dist/components/{p-5b2ec1a3.js → p-0bbf1225.js} +34 -4
  32. package/dist/components/p-0bbf1225.js.map +1 -0
  33. package/dist/dda/dda.esm.js +1 -1
  34. package/dist/dda/p-24c14c34.entry.js +2 -0
  35. package/dist/dda/p-24c14c34.entry.js.map +1 -0
  36. package/dist/dda/{p-90e88405.entry.js → p-631f86fd.entry.js} +2 -2
  37. package/dist/dda/p-631f86fd.entry.js.map +1 -0
  38. package/dist/dda/{p-6938a156.entry.js → p-6d955874.entry.js} +2 -2
  39. package/dist/dda/{p-6938a156.entry.js.map → p-6d955874.entry.js.map} +1 -1
  40. package/dist/dda/p-95f9ac9c.entry.js +2 -0
  41. package/dist/dda/p-95f9ac9c.entry.js.map +1 -0
  42. package/{www/build/p-440094b1.entry.js → dist/dda/p-a9da1c36.entry.js} +2 -2
  43. package/dist/dda/p-a9da1c36.entry.js.map +1 -0
  44. package/dist/esm/dda-header-menu_3.entry.js +33 -3
  45. package/dist/esm/dda-header-menu_3.entry.js.map +1 -1
  46. package/dist/esm/dda-phonefield.entry.js +8 -12
  47. package/dist/esm/dda-phonefield.entry.js.map +1 -1
  48. package/dist/esm/dda-search-input.entry.js +3 -3
  49. package/dist/esm/dda-search-input.entry.js.map +1 -1
  50. package/dist/esm/dda-select.entry.js +17 -7
  51. package/dist/esm/dda-select.entry.js.map +1 -1
  52. package/dist/esm/dda-textarea.entry.js +30 -4
  53. package/dist/esm/dda-textarea.entry.js.map +1 -1
  54. package/dist/types/components/dda-input/dda-input.d.ts +1 -4
  55. package/dist/types/components/dda-phonefield/dda-phonefield.d.ts +1 -4
  56. package/dist/types/components/dda-search-input/dda-search-input.d.ts +1 -4
  57. package/dist/types/components/dda-select/dda-select.d.ts +4 -9
  58. package/dist/types/components/dda-textarea/dda-textarea.d.ts +1 -4
  59. package/dist/types/components.d.ts +12 -12
  60. package/package.json +2 -2
  61. package/readme.md +5 -0
  62. package/www/build/dda.esm.js +1 -1
  63. package/www/build/p-24c14c34.entry.js +2 -0
  64. package/www/build/p-24c14c34.entry.js.map +1 -0
  65. package/www/build/{p-90e88405.entry.js → p-631f86fd.entry.js} +2 -2
  66. package/www/build/p-631f86fd.entry.js.map +1 -0
  67. package/www/build/{p-6938a156.entry.js → p-6d955874.entry.js} +2 -2
  68. package/www/build/{p-6938a156.entry.js.map → p-6d955874.entry.js.map} +1 -1
  69. package/www/build/p-95f9ac9c.entry.js +2 -0
  70. package/www/build/p-95f9ac9c.entry.js.map +1 -0
  71. package/{dist/dda/p-440094b1.entry.js → www/build/p-a9da1c36.entry.js} +2 -2
  72. package/www/build/p-a9da1c36.entry.js.map +1 -0
  73. package/dist/components/p-5b2ec1a3.js.map +0 -1
  74. package/dist/dda/p-440094b1.entry.js.map +0 -1
  75. package/dist/dda/p-72e59001.entry.js +0 -2
  76. package/dist/dda/p-72e59001.entry.js.map +0 -1
  77. package/dist/dda/p-90e88405.entry.js.map +0 -1
  78. package/dist/dda/p-e9733963.entry.js +0 -2
  79. package/dist/dda/p-e9733963.entry.js.map +0 -1
  80. package/www/build/p-440094b1.entry.js.map +0 -1
  81. package/www/build/p-72e59001.entry.js +0 -2
  82. package/www/build/p-72e59001.entry.js.map +0 -1
  83. package/www/build/p-90e88405.entry.js.map +0 -1
  84. package/www/build/p-e9733963.entry.js +0 -2
  85. package/www/build/p-e9733963.entry.js.map +0 -1
@@ -24,10 +24,11 @@ const Ddaselect = class {
24
24
  name: this.input_name || this.button_id,
25
25
  value: this.selectedText || '',
26
26
  });
27
- this.onBlurred.emit({
28
- name: this.input_name || this.button_id,
29
- value: this.selectedText || '',
30
- });
27
+ this.onBlurred.emit(this.selectedId);
28
+ this.el.dispatchEvent(new FocusEvent('blur', {
29
+ bubbles: true,
30
+ composed: true,
31
+ }));
31
32
  };
32
33
  }
33
34
  get parsedOptions() {
@@ -59,7 +60,13 @@ const Ddaselect = class {
59
60
  this.selectedText = option.text;
60
61
  this.is_open = false;
61
62
  this.selectChanged.emit(option);
62
- this.onChanged.emit(option);
63
+ this.onChanged.emit(option.id);
64
+ this.el.dispatchEvent(new InputEvent('input', {
65
+ bubbles: true,
66
+ composed: true,
67
+ data: option.id,
68
+ inputType: 'select',
69
+ }));
63
70
  }
64
71
  }
65
72
  connectedCallback() {
@@ -84,6 +91,9 @@ const Ddaselect = class {
84
91
  async getSelectedText() {
85
92
  return this.selectedText;
86
93
  }
94
+ async getValue() {
95
+ return this.selectedText || '';
96
+ }
87
97
  watchSelected(newVal) {
88
98
  const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === newVal || opt.text === newVal);
89
99
  if (selectedOption) {
@@ -102,12 +112,12 @@ const Ddaselect = class {
102
112
  render() {
103
113
  const labelId = `${this.button_id}-label`;
104
114
  const valueId = `${this.button_id}-value`;
105
- return (h(Host, { key: 'b2ea43f3cc071d70ea0c61d143824d49c7aff023' }, h("div", { key: '950000c97017a28e0188deb01243fd13b0963c1b', class: `
115
+ return (h(Host, { key: 'ced7dbfc2a4f358c971a706761472784bb3e6628' }, h("div", { key: '8956ae24671d419e61eb32c6956358e2b51ec945', class: `
106
116
  dda-input-container ${this.custom_class}
107
117
  ${this.component_mode}
108
118
  ${this.disabled ? 'dda-input-disabled' : ''}
109
119
  dda-input-size-${this.size} dda-validation-${this.validation_type}
110
- ` }, this.label && (h("span", { key: '5e6272c8b235646208167480e6149024687d2341', id: labelId, class: "dda-input-label" }, this.label)), h("div", { key: '0caa270da5785caec0c2e47769de205f2b085745', class: "dda-dropdown-container" }, h("button", { key: 'dc0e6b6f5d2d704e0d50c9472a3c82e20f6fbd6b', name: this.toggle_button_name, id: this.button_id, type: "button", class: "dda-input-field dda-select-header", "aria-labelledby": `${labelId} ${this.button_id}`, disabled: this.disabled, onClick: () => this.toggleSelect(), onBlur: this.handleBlur }, h("span", { key: '2f4839cad9b6aa1113054c81416798a8cc30d1bb', id: valueId, class: "dda-select-button-label" }, this.selectedText || this.placeholder), h("i", { key: '50c1eafec7ab95152088b07889dde1ba29aef178', class: "material-icons", "aria-hidden": "true" }, this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down')), this.is_open && (h("div", { key: 'aca0e036afea36b25ab22e1e4440d25cebd2c41a', class: "dda-input-dropdown-list dda-select-list" }, this.parsedOptions.length > 0 ? (this.parsedOptions.map((option, index) => (h("button", { name: `option${this.numberToWord(index + 1)}`, type: "button", class: `dda-input-dropdown-item ${this.selectedId === option.id ? 'selected' : ''}`, role: "option", "aria-selected": this.selectedId === option.id ? 'true' : 'false', onClick: () => this.selectOption(option) }, option.text)))) : (h("div", { class: "dda-input-dropdown-item" }, "No options available"))))), this.validation_type === 'error' && this.error_message ? (h("span", { class: "dda-error-message", id: this.validation_id, role: "alert" }, this.error_message)) : (this.helper_text && (h("span", { class: "dda-helper-text", id: this.validation_id }, this.helper_text))))));
120
+ ` }, this.label && (h("span", { key: 'c3a1db279d1f8a136972f3c70b4d506e7e0c34b1', id: labelId, class: "dda-input-label" }, this.label)), h("div", { key: '3bac51fcde9784786b6a7937a1342aa7f32cdafa', class: "dda-dropdown-container" }, h("button", { key: '5aa2a7d4a9f7ae8336da1a5a7bb3f09a43e51e07', name: this.toggle_button_name, id: this.button_id, type: "button", class: "dda-input-field dda-select-header", "aria-labelledby": `${labelId} ${this.button_id}`, disabled: this.disabled, onClick: () => this.toggleSelect(), onBlur: this.handleBlur }, h("span", { key: 'ec74a3c2c026e3d9cda8ad78ede8082bd19e3b57', id: valueId, class: "dda-select-button-label" }, this.selectedText || this.placeholder), h("i", { key: 'aff9db53adce2ab32a3b27d4a34680c68357ca2e', class: "material-icons", "aria-hidden": "true" }, this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down')), this.is_open && (h("div", { key: '41849c086b485acb4087e935464a759cfc3488be', class: "dda-input-dropdown-list dda-select-list" }, this.parsedOptions.length > 0 ? (this.parsedOptions.map((option, index) => (h("button", { name: `option${this.numberToWord(index + 1)}`, type: "button", class: `dda-input-dropdown-item ${this.selectedId === option.id ? 'selected' : ''}`, role: "option", "aria-selected": this.selectedId === option.id ? 'true' : 'false', onClick: () => this.selectOption(option) }, option.text)))) : (h("div", { class: "dda-input-dropdown-item" }, "No options available"))))), this.validation_type === 'error' && this.error_message ? (h("span", { class: "dda-error-message", id: this.validation_id, role: "alert" }, this.error_message)) : (this.helper_text && (h("span", { class: "dda-helper-text", id: this.validation_id }, this.helper_text))))));
111
121
  }
112
122
  get el() { return getElement(this); }
113
123
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"dda-select.entry.js","mappings":";;MAOa,SAAS;IALtB;;;;;;QAWU,aAAQ,GAAY,KAAK,CAAC;QAK1B,kBAAa,GAAW,MAAM,CAAC;QAE/B,iBAAY,GAAY,EAAE,CAAC;QAK3B,gBAAW,GAAW,EAAE,CAAC;QACzB,oBAAe,GAAW,EAAE,CAAC;QAC7B,eAAU,GAAW,EAAE,CAAC;QAEvB,YAAO,GAAY,KAAK,CAAC;QA8ClC,uBAAkB,GAAG,CAAC,KAAiB;YACrC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC3D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;SACF,CAAC;QAEF,eAAU,GAAG;YACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS;gBACvC,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS;gBACvC,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;aAC/B,CAAC,CAAC;SACJ,CAAC;KA2HH;IA7KC,IAAY,aAAa;QACvB,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACjC;QAAC,WAAM;YACN,OAAO,EAAE,CAAC;SACX;KACF;IAED,iBAAiB;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzH,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACnC;KACF;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9B;KACF;IAED,YAAY,CAAC,MAAoC;QAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7B;KACF;IAmBD,iBAAiB;QACf,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC7D;IAED,oBAAoB;QAClB,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAChE;IAGD,MAAM,WAAW,CAAC,KAAsB;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAEpH,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC9C;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;KACF;IAGD,MAAM,eAAe;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAGD,aAAa,CAAC,MAAc;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAE3G,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SACxB;KACF;IAEO,YAAY,CAAC,GAAW;QAC9B,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;KACzC;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAC;QAC1C,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAC;QAE1C,QACE,EAAC,IAAI,uDACH,4DACE,KAAK,EAAE;kCACiB,IAAI,CAAC,YAAY;cACrC,IAAI,CAAC,cAAc;cACnB,IAAI,CAAC,QAAQ,GAAG,oBAAoB,GAAG,EAAE;6BAC1B,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,eAAe;WAClE,IAEA,IAAI,CAAC,KAAK,KACT,6DAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAC,iBAAiB,IACvC,IAAI,CAAC,KAAK,CACN,CACR,EACD,4DAAK,KAAK,EAAC,wBAAwB,IACjC,+DACE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAC7B,EAAE,EAAE,IAAI,CAAC,SAAS,EAClB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,mCAAmC,qBACxB,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,EAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,EAClC,MAAM,EAAE,IAAI,CAAC,UAAU,IAEvB,6DAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAC,yBAAyB,IAC/C,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CACjC,EACP,0DAAG,KAAK,EAAC,gBAAgB,iBAAa,MAAM,IACzC,IAAI,CAAC,OAAO,GAAG,mBAAmB,GAAG,qBAAqB,CACzD,CACG,EAER,IAAI,CAAC,OAAO,KACX,4DAAK,KAAK,EAAC,yCAAyC,IACjD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MACnC,cACE,IAAI,EAAE,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAC7C,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,2BAA2B,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE,GAAG,UAAU,GAAG,EAAE,EAAE,EACnF,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,OAAO,EAC/D,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAEvC,MAAM,CAAC,IAAI,CACL,CACV,CAAC,KAEF,WAAK,KAAK,EAAC,yBAAyB,2BAA2B,CAChE,CACG,CACP,CACG,EAEL,IAAI,CAAC,eAAe,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,IACrD,YAAM,KAAK,EAAC,mBAAmB,EAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAC,OAAO,IACjE,IAAI,CAAC,aAAa,CACd,KAEP,IAAI,CAAC,WAAW,KACd,YAAM,KAAK,EAAC,iBAAiB,EAAC,EAAE,EAAE,IAAI,CAAC,aAAa,IACjD,IAAI,CAAC,WAAW,CACZ,CACR,CACF,CACG,CACD,EACP;KACH;;;;;;;;;","names":[],"sources":["src/components/dda-select/dda-select.tsx"],"sourcesContent":["import { Component, Prop, State, h, Host, Element, Event, EventEmitter, Watch, Method } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-select',\r\n styleUrls: [],\r\n shadow: false,\r\n})\r\nexport class Ddaselect {\r\n @Element() el: HTMLElement;\r\n\r\n @Prop() label: string;\r\n @Prop() options: string;\r\n @Prop() selected: string; // can be id or text\r\n @Prop() disabled: boolean = false;\r\n @Prop() error?: string;\r\n @Prop() error_message: string;\r\n @Prop() helper_text: string;\r\n @Prop() validation_type?: string;\r\n @Prop() validation_id: string = 'text';\r\n @Prop() size?: string;\r\n @Prop() custom_class?: string = '';\r\n @Prop() component_mode?: string;\r\n @Prop() button_id: string;\r\n @Prop() toggle_button_name: string;\r\n @Prop() option_select_button_name: string;\r\n @Prop() placeholder: string = '';\r\n @Prop() main_aria_label: string = '';\r\n @Prop() input_name: string = '';\r\n\r\n @State() is_open: boolean = false;\r\n @State() selectedId: number;\r\n @State() selectedText: string;\r\n\r\n @Event() selectChanged: EventEmitter<{ id: number; text: string }>;\r\n @Event() onChanged: EventEmitter<{ id: number; text: string }>;\r\n\r\n @Event() selectBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<{ name: string; value: string }>;\r\n\r\n\r\n private get parsedOptions(): { id: number; text: string }[] {\r\n try {\r\n return JSON.parse(this.options);\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n componentWillLoad() {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === this.selected || opt.text === this.selected);\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n }\r\n if (this.selected) {\r\n this.watchSelected(this.selected);\r\n }\r\n }\r\n\r\n toggleSelect() {\r\n if (!this.disabled) {\r\n this.is_open = !this.is_open;\r\n }\r\n }\r\n\r\n selectOption(option: { id: number; text: string }) {\r\n if (!this.disabled) {\r\n this.selectedId = option.id;\r\n this.selectedText = option.text;\r\n this.is_open = false;\r\n this.selectChanged.emit(option);\r\n this.onChanged.emit(option);\r\n }\r\n }\r\n\r\n handleClickOutside = (event: MouseEvent) => {\r\n if (this.is_open && !this.el.contains(event.target as Node)) {\r\n this.is_open = false;\r\n }\r\n };\r\n\r\n handleBlur = () => {\r\n this.selectBlurred.emit({\r\n name: this.input_name || this.button_id,\r\n value: this.selectedText || '',\r\n });\r\n this.onBlurred.emit({\r\n name: this.input_name || this.button_id,\r\n value: this.selectedText || '',\r\n });\r\n };\r\n\r\n connectedCallback() {\r\n document.addEventListener('click', this.handleClickOutside);\r\n }\r\n\r\n disconnectedCallback() {\r\n document.removeEventListener('click', this.handleClickOutside);\r\n }\r\n\r\n @Method()\r\n async setSelected(value: string | number) {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === value.toString() || opt.text === value);\r\n\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n this.selected = selectedOption.id.toString();\r\n } else {\r\n this.selectedId = undefined;\r\n this.selectedText = '';\r\n this.selected = '';\r\n }\r\n }\r\n\r\n @Method()\r\n async getSelectedText() {\r\n return this.selectedText;\r\n }\r\n\r\n @Watch('selected')\r\n watchSelected(newVal: string) {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === newVal || opt.text === newVal);\r\n\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n } else {\r\n this.selectedId = undefined;\r\n this.selectedText = '';\r\n }\r\n }\r\n\r\n private numberToWord(num: number): string {\r\n const words = ['One', 'Two', 'Three', 'Four', 'Five'];\r\n return words[num - 1] || num.toString();\r\n }\r\n\r\n render() {\r\n const labelId = `${this.button_id}-label`;\r\n const valueId = `${this.button_id}-value`;\r\n\r\n return (\r\n <Host>\r\n <div\r\n class={`\r\n dda-input-container ${this.custom_class} \r\n ${this.component_mode} \r\n ${this.disabled ? 'dda-input-disabled' : ''} \r\n dda-input-size-${this.size} dda-validation-${this.validation_type}\r\n `}\r\n >\r\n {this.label && (\r\n <span id={labelId} class=\"dda-input-label\">\r\n {this.label}\r\n </span>\r\n )}\r\n <div class=\"dda-dropdown-container\">\r\n <button\r\n name={this.toggle_button_name}\r\n id={this.button_id}\r\n type=\"button\"\r\n class=\"dda-input-field dda-select-header\"\r\n aria-labelledby={`${labelId} ${this.button_id}`}\r\n disabled={this.disabled}\r\n onClick={() => this.toggleSelect()}\r\n onBlur={this.handleBlur}\r\n >\r\n <span id={valueId} class=\"dda-select-button-label\">\r\n {this.selectedText || this.placeholder}\r\n </span>\r\n <i class=\"material-icons\" aria-hidden=\"true\">\r\n {this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}\r\n </i>\r\n </button>\r\n\r\n {this.is_open && (\r\n <div class=\"dda-input-dropdown-list dda-select-list\">\r\n {this.parsedOptions.length > 0 ? (\r\n this.parsedOptions.map((option, index) => (\r\n <button\r\n name={`option${this.numberToWord(index + 1)}`}\r\n type=\"button\"\r\n class={`dda-input-dropdown-item ${this.selectedId === option.id ? 'selected' : ''}`}\r\n role=\"option\"\r\n aria-selected={this.selectedId === option.id ? 'true' : 'false'}\r\n onClick={() => this.selectOption(option)}\r\n >\r\n {option.text}\r\n </button>\r\n ))\r\n ) : (\r\n <div class=\"dda-input-dropdown-item\">No options available</div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {this.validation_type === 'error' && this.error_message ? (\r\n <span class=\"dda-error-message\" id={this.validation_id} role=\"alert\">\r\n {this.error_message}\r\n </span>\r\n ) : (\r\n this.helper_text && (\r\n <span class=\"dda-helper-text\" id={this.validation_id}>\r\n {this.helper_text}\r\n </span>\r\n )\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dda-select.entry.js","mappings":"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","names":[],"sources":["src/components/dda-select/dda-select.tsx"],"sourcesContent":["import { Component, Prop, State, h, Host, Element, Event, EventEmitter, Watch, Method } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-select',\r\n styleUrls: [],\r\n shadow: false,\r\n})\r\nexport class Ddaselect {\r\n @Element() el: HTMLElement;\r\n\r\n @Prop() label: string;\r\n @Prop() options: string;\r\n @Prop() selected: string; // can be id or text\r\n @Prop() disabled: boolean = false;\r\n @Prop() error?: string;\r\n @Prop() error_message: string;\r\n @Prop() helper_text: string;\r\n @Prop() validation_type?: string;\r\n @Prop() validation_id: string = 'text';\r\n @Prop() size?: string;\r\n @Prop() custom_class?: string = '';\r\n @Prop() component_mode?: string;\r\n @Prop() button_id: string;\r\n @Prop() toggle_button_name: string;\r\n @Prop() option_select_button_name: string;\r\n @Prop() placeholder: string = '';\r\n @Prop() main_aria_label: string = '';\r\n @Prop() input_name: string = '';\r\n\r\n @State() is_open: boolean = false;\r\n @State() selectedId: number;\r\n @State() selectedText: string;\r\n\r\n @Event() selectChanged: EventEmitter<{ id: number; text: string }>;\r\n @Event() onChanged: EventEmitter<any>;\r\n\r\n @Event() selectBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<any>;\r\n\r\n private get parsedOptions(): { id: number; text: string }[] {\r\n try {\r\n return JSON.parse(this.options);\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n componentWillLoad() {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === this.selected || opt.text === this.selected);\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n }\r\n if (this.selected) {\r\n this.watchSelected(this.selected);\r\n }\r\n }\r\n\r\n toggleSelect() {\r\n if (!this.disabled) {\r\n this.is_open = !this.is_open;\r\n }\r\n }\r\n\r\n selectOption(option: { id: any; text: string }) {\r\n if (!this.disabled) {\r\n this.selectedId = option.id;\r\n this.selectedText = option.text;\r\n this.is_open = false;\r\n this.selectChanged.emit(option);\r\n this.onChanged.emit(option.id);\r\n\r\n this.el.dispatchEvent(\r\n new InputEvent('input', {\r\n bubbles: true,\r\n composed: true,\r\n data: option.id,\r\n inputType: 'select',\r\n }),\r\n );\r\n }\r\n }\r\n\r\n handleClickOutside = (event: MouseEvent) => {\r\n if (this.is_open && !this.el.contains(event.target as Node)) {\r\n this.is_open = false;\r\n }\r\n };\r\n\r\n handleBlur = () => {\r\n this.selectBlurred.emit({\r\n name: this.input_name || this.button_id,\r\n value: this.selectedText || '',\r\n });\r\n this.onBlurred.emit(this.selectedId);\r\n\r\n this.el.dispatchEvent(\r\n new FocusEvent('blur', {\r\n bubbles: true,\r\n composed: true,\r\n }),\r\n );\r\n };\r\n\r\n connectedCallback() {\r\n document.addEventListener('click', this.handleClickOutside);\r\n }\r\n\r\n disconnectedCallback() {\r\n document.removeEventListener('click', this.handleClickOutside);\r\n }\r\n\r\n @Method()\r\n async setSelected(value: string | number) {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === value.toString() || opt.text === value);\r\n\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n this.selected = selectedOption.id.toString();\r\n } else {\r\n this.selectedId = undefined;\r\n this.selectedText = '';\r\n this.selected = '';\r\n }\r\n }\r\n\r\n @Method()\r\n async getSelectedText() {\r\n return this.selectedText;\r\n }\r\n\r\n async getValue() {\r\n return this.selectedText || '';\r\n }\r\n\r\n @Watch('selected')\r\n watchSelected(newVal: string) {\r\n const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === newVal || opt.text === newVal);\r\n\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\r\n } else {\r\n this.selectedId = undefined;\r\n this.selectedText = '';\r\n }\r\n }\r\n\r\n private numberToWord(num: number): string {\r\n const words = ['One', 'Two', 'Three', 'Four', 'Five'];\r\n return words[num - 1] || num.toString();\r\n }\r\n\r\n render() {\r\n const labelId = `${this.button_id}-label`;\r\n const valueId = `${this.button_id}-value`;\r\n\r\n return (\r\n <Host>\r\n <div\r\n class={`\r\n dda-input-container ${this.custom_class} \r\n ${this.component_mode} \r\n ${this.disabled ? 'dda-input-disabled' : ''} \r\n dda-input-size-${this.size} dda-validation-${this.validation_type}\r\n `}\r\n >\r\n {this.label && (\r\n <span id={labelId} class=\"dda-input-label\">\r\n {this.label}\r\n </span>\r\n )}\r\n <div class=\"dda-dropdown-container\">\r\n <button\r\n name={this.toggle_button_name}\r\n id={this.button_id}\r\n type=\"button\"\r\n class=\"dda-input-field dda-select-header\"\r\n aria-labelledby={`${labelId} ${this.button_id}`}\r\n disabled={this.disabled}\r\n onClick={() => this.toggleSelect()}\r\n onBlur={this.handleBlur}\r\n >\r\n <span id={valueId} class=\"dda-select-button-label\">\r\n {this.selectedText || this.placeholder}\r\n </span>\r\n <i class=\"material-icons\" aria-hidden=\"true\">\r\n {this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}\r\n </i>\r\n </button>\r\n\r\n {this.is_open && (\r\n <div class=\"dda-input-dropdown-list dda-select-list\">\r\n {this.parsedOptions.length > 0 ? (\r\n this.parsedOptions.map((option, index) => (\r\n <button\r\n name={`option${this.numberToWord(index + 1)}`}\r\n type=\"button\"\r\n class={`dda-input-dropdown-item ${this.selectedId === option.id ? 'selected' : ''}`}\r\n role=\"option\"\r\n aria-selected={this.selectedId === option.id ? 'true' : 'false'}\r\n onClick={() => this.selectOption(option)}\r\n >\r\n {option.text}\r\n </button>\r\n ))\r\n ) : (\r\n <div class=\"dda-input-dropdown-item\">No options available</div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {this.validation_type === 'error' && this.error_message ? (\r\n <span class=\"dda-error-message\" id={this.validation_id} role=\"alert\">\r\n {this.error_message}\r\n </span>\r\n ) : (\r\n this.helper_text && (\r\n <span class=\"dda-helper-text\" id={this.validation_id}>\r\n {this.helper_text}\r\n </span>\r\n )\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -16426,12 +16426,18 @@ const DdaTextarea = class {
16426
16426
  this.internalValue = val;
16427
16427
  this.characterCount = val.length;
16428
16428
  this.textareaChanged.emit(event);
16429
- this.onChanged.emit(event);
16429
+ this.onChanged.emit(val);
16430
+ this.el.dispatchEvent(new InputEvent('input', event));
16430
16431
  }
16431
16432
  handleBlur(event) {
16432
16433
  const val = event.target.value.trim();
16433
16434
  this.textareaBlurred.emit({ name: this.textarea_name, value: val });
16434
- this.onBlurred.emit({ name: this.textarea_name, value: val });
16435
+ this.onBlurred.emit(val);
16436
+ this.el.dispatchEvent(new FocusEvent('blur', {
16437
+ bubbles: true,
16438
+ composed: true,
16439
+ relatedTarget: event.target,
16440
+ }));
16435
16441
  }
16436
16442
  render() {
16437
16443
  const textareaClass = [
@@ -16441,8 +16447,28 @@ const DdaTextarea = class {
16441
16447
  this.custom_class,
16442
16448
  this.component_mode,
16443
16449
  this.textarea_name,
16444
- ].filter(Boolean).join(' ');
16445
- return (h(Host, { key: 'b115804206b2c236ea220444e422d6f923244219' }, h("div", { key: '302195d1acdb1c3705bda71e0f925dd363095693', class: textareaClass }, this.label && (h("label", { key: 'e7e7ae567e899b07aa4a8127e7ce8dfd566a48ca', htmlFor: this.input_id, class: "dda-input-label" }, this.label)), this.enable_rich_editor ? (h("div", { id: "editor", class: "dda-richeditor-field" })) : (h("textarea", { id: this.input_id, name: this.textarea_name, "aria-label": this.aria_label, placeholder: this.placeholder, value: this.internalValue || this.value, "aria-invalid": this.validation_type === 'error' ? 'true' : 'false', class: "dda-input-field dda-input-textarea", maxLength: this.max_characters, onInput: (event) => this.handleInput(event), onBlur: (event) => this.handleBlur(event) })), this.validation_type === 'error' && this.error_message ? (h("div", { class: "dda-error-message", id: this.validation_id }, h("span", { class: "dda-d-flex dda-items-center dda-gap-2" }, this.show_info_icon && (h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info")), this.error_message), h("span", { class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))) : (h("div", { class: "dda-helper-text", id: this.validation_id }, h("span", { class: "dda-d-flex dda-items-center dda-gap-2" }, this.show_info_icon && (h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info")), this.helper_text), h("span", { class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))))));
16450
+ ]
16451
+ .filter(Boolean)
16452
+ .join(' ');
16453
+ return (h(Host, { key: '39c499ca78c5d8806686c669c951ed7f1149a105' }, h("div", { key: 'bcd4bb0b68e66257c233c0f2582a0f3b1ce4ac39', class: textareaClass }, this.label && (h("label", { key: 'cb6c14ad6279f936adeee3daf0b8c0939479a932', htmlFor: this.input_id, class: "dda-input-label" }, this.label)), this.enable_rich_editor ? (h("div", { id: "editor", class: "dda-richeditor-field" })) : (h("textarea", { id: this.input_id, name: this.textarea_name, "aria-label": this.aria_label, placeholder: this.placeholder, value: this.internalValue || this.value, "aria-invalid": this.validation_type === 'error' ? 'true' : 'false', class: "dda-input-field dda-input-textarea", maxLength: this.max_characters, onInput: event => this.handleInput(event), onBlur: event => this.handleBlur(event), onFocus: (event) => {
16454
+ this.el.dispatchEvent(new FocusEvent('focus', {
16455
+ bubbles: true,
16456
+ composed: true,
16457
+ relatedTarget: event.relatedTarget,
16458
+ }));
16459
+ }, onKeyDown: (event) => {
16460
+ this.el.dispatchEvent(new KeyboardEvent('keydown', {
16461
+ bubbles: true,
16462
+ composed: true,
16463
+ key: event.key,
16464
+ code: event.code,
16465
+ ctrlKey: event.ctrlKey,
16466
+ shiftKey: event.shiftKey,
16467
+ altKey: event.altKey,
16468
+ metaKey: event.metaKey,
16469
+ repeat: event.repeat,
16470
+ }));
16471
+ } })), this.validation_type === 'error' && this.error_message ? (h("div", { class: "dda-error-message", id: this.validation_id }, h("span", { class: "dda-d-flex dda-items-center dda-gap-2" }, this.show_info_icon && (h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info")), this.error_message), h("span", { class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))) : (h("div", { class: "dda-helper-text", id: this.validation_id }, h("span", { class: "dda-d-flex dda-items-center dda-gap-2" }, this.show_info_icon && (h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info")), this.helper_text), h("span", { class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))))));
16446
16472
  }
16447
16473
  get el() { return getElement(this); }
16448
16474
  };