@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
@@ -64,14 +64,44 @@ export class DdaInput {
64
64
  describedByIds.push(`${this.validation_id}-helper`);
65
65
  if (this.validation_type === 'error' && this.error_message)
66
66
  describedByIds.push(`${this.validation_id}-error`);
67
- return (h(Host, { key: '050ec4a94d4ddce7ea14fc7911cf5225f79e1376' }, h("div", { key: '698dd6f4d8a00790a8ddb65964497dee11e6bf18', class: inputClass }, this.label && (h("label", { key: 'e5a8fefae383e688aa5a8254409da83d7cd2f163', htmlFor: this.input_id, class: "dda-input-label", id: `${this.input_id}-label` }, this.label)), h("input", { key: '390569412bb0b904acb174e2caabdbb1473fd6d1', id: this.input_id, name: this.input_name, class: `dda-input-field dda-input-text ${this.type === 'date' && this.value ? 'has-value' : ''}`, type: this.type, role: this.input_role, placeholder: this.placeholder, value: this.internalValue, "aria-required": this.required ? 'true' : undefined, "aria-invalid": this.validation_type === 'error' ? 'true' : 'false', "aria-describedby": `${this.input_id}-label`, "aria-label": !this.label ? this.aria_label : undefined, onInput: event => {
67
+ return (h(Host, { key: '0c68617cd233d276c09d29d12e031b0a00d883fa' }, h("div", { key: '785a9429deb055030a3f4c8f0c11baa0d4356c0e', class: inputClass }, this.label && (h("label", { key: '45f247480cf1c84b5c574dbc9fd7984a2804a6f6', htmlFor: this.input_id, class: "dda-input-label", id: `${this.input_id}-label` }, this.label)), h("input", { key: '6ebafb81518fc518cd69b04e9062343d24af408d', id: this.input_id, name: this.input_name, class: `dda-input-field dda-input-text ${this.type === 'date' && this.value ? 'has-value' : ''}`, type: this.type, role: this.input_role, placeholder: this.placeholder, value: this.internalValue, "aria-required": this.required ? 'true' : undefined, "aria-invalid": this.validation_type === 'error' ? 'true' : 'false', "aria-describedby": `${this.input_id}-label`, "aria-label": !this.label ? this.aria_label : undefined, onInput: event => {
68
68
  this.internalValue = event.target.value;
69
69
  this.inputChanged.emit(event);
70
- this.onChanged.emit(event);
70
+ this.onChanged.emit(event.target.value);
71
+ this.el.dispatchEvent(new InputEvent('input', {
72
+ bubbles: true,
73
+ composed: true,
74
+ data: event.data,
75
+ inputType: event.inputType,
76
+ isComposing: event.isComposing,
77
+ }));
71
78
  }, onBlur: event => {
72
79
  const value = event.target.value.trim();
73
80
  this.inputBlurred.emit({ name: this.input_name, value });
74
- this.onBlurred.emit({ name: this.input_name, value });
81
+ this.onBlurred.emit(value);
82
+ this.el.dispatchEvent(new FocusEvent('blur', {
83
+ bubbles: true,
84
+ composed: true,
85
+ relatedTarget: event.relatedTarget,
86
+ }));
87
+ }, onFocus: (event) => {
88
+ this.el.dispatchEvent(new FocusEvent('focus', {
89
+ bubbles: true,
90
+ composed: true,
91
+ relatedTarget: event.relatedTarget,
92
+ }));
93
+ }, onKeyDown: (event) => {
94
+ this.el.dispatchEvent(new KeyboardEvent('keydown', {
95
+ bubbles: true,
96
+ composed: true,
97
+ key: event.key,
98
+ code: event.code,
99
+ ctrlKey: event.ctrlKey,
100
+ shiftKey: event.shiftKey,
101
+ altKey: event.altKey,
102
+ metaKey: event.metaKey,
103
+ repeat: event.repeat,
104
+ }));
75
105
  } }), 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))))));
76
106
  }
77
107
  static get is() { return "dda-input"; }
@@ -468,8 +498,8 @@ export class DdaInput {
468
498
  "text": ""
469
499
  },
470
500
  "complexType": {
471
- "original": "{ name: string; value: string }",
472
- "resolved": "{ name: string; value: string; }",
501
+ "original": "any",
502
+ "resolved": "any",
473
503
  "references": {}
474
504
  }
475
505
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"dda-input.js","sourceRoot":"","sources":["../../../src/components/dda-input/dda-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Host, Event, EventEmitter, Element, State, Method, Watch } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-input',\r\n styleUrls: [],\r\n shadow: false,\r\n})\r\nexport class DdaInput {\r\n @Element() el: HTMLElement;\r\n\r\n @Prop() label: string;\r\n @Prop() placeholder: string;\r\n @Prop() value: string;\r\n @Prop() type: string = 'text';\r\n @Prop() input_role: string = 'text';\r\n @Prop() helper_text: string;\r\n @Prop() error_message: string;\r\n @Prop() validation_type?: string;\r\n @Prop() validation_id: string = 'text';\r\n @Prop() size?: string;\r\n @Prop() input_status?: string;\r\n @Prop() custom_class?: string;\r\n @Prop() component_mode?: string;\r\n @Prop() input_id: string;\r\n @Prop() aria_label?: string;\r\n @Prop() input_name?: string;\r\n @Prop() required?: boolean = false;\r\n\r\n @State() internalValue: string = '';\r\n\r\n @Event() inputChanged: EventEmitter<any>;\r\n @Event() onChanged: EventEmitter<any>;\r\n\r\n @Event() inputBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<{ name: string; value: string }>;\r\n\r\n\r\n @Method()\r\n async getValue() {\r\n return this.internalValue || this.value || '';\r\n }\r\n\r\n @Watch('value')\r\n watchValue(newValue: string) {\r\n this.internalValue = newValue || '';\r\n }\r\n\r\n @Method()\r\n async setValue(val: string) {\r\n this.internalValue = val;\r\n // this.inputChanged.emit(val);\r\n this.onChanged.emit(val);\r\n }\r\n\r\n @Method()\r\n async reset() {\r\n this.internalValue = '';\r\n // this.inputChanged.emit('');\r\n this.onChanged.emit('')\r\n }\r\n componentWillLoad() {\r\n this.internalValue = this.value || '';\r\n }\r\n componentDidLoad() {\r\n // Hide date input placeholder\r\n if (this.type === 'date') {\r\n const dateInput = this.el.querySelector('input[type=\"date\"]') as HTMLInputElement;\r\n if (dateInput) {\r\n dateInput.style.color = 'transparent';\r\n dateInput.addEventListener('focus', () => {\r\n dateInput.style.color = '#000';\r\n });\r\n dateInput.addEventListener('blur', () => {\r\n if (!dateInput.value) {\r\n dateInput.style.color = 'transparent';\r\n }\r\n });\r\n dateInput.addEventListener('change', () => {\r\n dateInput.style.color = '#000';\r\n });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const inputClass = [\r\n 'dda-input-container',\r\n this.validation_type ? `dda-validation-${this.validation_type}` : '',\r\n this.size ? `dda-input-size-${this.size}` : '',\r\n this.input_status ? `dda-input-${this.input_status}` : '',\r\n this.type === 'Witherror' ? 'dda-validation-error' : '',\r\n this.type === 'disabled' ? 'dda-input-disabled' : '',\r\n this.custom_class,\r\n this.component_mode,\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n const describedByIds: string[] = [];\r\n if (this.helper_text) describedByIds.push(`${this.validation_id}-helper`);\r\n if (this.validation_type === 'error' && this.error_message) describedByIds.push(`${this.validation_id}-error`);\r\n\r\n return (\r\n <Host>\r\n <div class={inputClass}>\r\n {this.label && (\r\n <label htmlFor={this.input_id} class=\"dda-input-label\" id={`${this.input_id}-label`}>\r\n {this.label}\r\n </label>\r\n )}\r\n <input\r\n id={this.input_id}\r\n name={this.input_name}\r\n class={`dda-input-field dda-input-text ${this.type === 'date' && this.value ? 'has-value' : ''}`}\r\n type={this.type}\r\n role={this.input_role}\r\n placeholder={this.placeholder}\r\n value={this.internalValue}\r\n aria-required={this.required ? 'true' : undefined}\r\n aria-invalid={this.validation_type === 'error' ? 'true' : 'false'}\r\n aria-describedby={`${this.input_id}-label`}\r\n aria-label={!this.label ? this.aria_label : undefined}\r\n onInput={event => {\r\n this.internalValue = (event.target as HTMLInputElement).value;\r\n this.inputChanged.emit(event);\r\n this.onChanged.emit(event)\r\n }}\r\n onBlur={event => {\r\n const value = (event.target as HTMLInputElement).value.trim();\r\n this.inputBlurred.emit({ name: this.input_name, value });\r\n this.onBlurred.emit({ name: this.input_name, value })\r\n }}\r\n />\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"]}
1
+ {"version":3,"file":"dda-input.js","sourceRoot":"","sources":["../../../src/components/dda-input/dda-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAO7G,MAAM,OAAO,QAAQ;IALrB;QAWU,SAAI,GAAW,MAAM,CAAC;QACtB,eAAU,GAAW,MAAM,CAAC;QAI5B,kBAAa,GAAW,MAAM,CAAC;QAQ/B,aAAQ,GAAa,KAAK,CAAC;QAE1B,kBAAa,GAAW,EAAE,CAAC;KAiKrC;IAxJC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAChD,CAAC;IAGD,UAAU,CAAC,QAAgB;QACzB,IAAI,CAAC,aAAa,GAAG,QAAQ,IAAI,EAAE,CAAC;IACtC,CAAC;IAGD,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,+BAA+B;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAGD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,8BAA8B;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,gBAAgB;QACd,8BAA8B;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAqB,CAAC;YAClF,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;gBACtC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBACvC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;oBACtC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;wBACrB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;oBACxC,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACxC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;gBACjC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,UAAU,GAAG;YACjB,qBAAqB;YACrB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE;YACpE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YAC9C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;YACzD,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;YACvD,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;YACpD,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,cAAc;SACpB;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,WAAW;YAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,SAAS,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa;YAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,QAAQ,CAAC,CAAC;QAE/G,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,UAAU;gBACnB,IAAI,CAAC,KAAK,IAAI,CACb,8DAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAC,iBAAiB,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,QAAQ,IAChF,IAAI,CAAC,KAAK,CACL,CACT;gBACD,8DACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,UAAU,EACrB,KAAK,EAAE,kCAAkC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAChG,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,UAAU,EACrB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,aAAa,mBACV,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,kBACnC,IAAI,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,sBAC/C,GAAG,IAAI,CAAC,QAAQ,QAAQ,gBAC9B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACrD,OAAO,EAAE,KAAK,CAAC,EAAE;wBACf,IAAI,CAAC,aAAa,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;wBAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC;wBAC9D,IAAI,CAAC,EAAE,CAAC,aAAa,CACnB,IAAI,UAAU,CAAC,OAAO,EAAE;4BACtB,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,SAAS,EAAE,KAAK,CAAC,SAAS;4BAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;yBAC/B,CAAC,CACH,CAAC;oBACJ,CAAC,EACD,MAAM,EAAE,KAAK,CAAC,EAAE;wBACd,MAAM,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC3B,IAAI,CAAC,EAAE,CAAC,aAAa,CACnB,IAAI,UAAU,CAAC,MAAM,EAAE;4BACrB,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,aAAa,EAAE,KAAK,CAAC,aAAa;yBACnC,CAAC,CACH,CAAC;oBACJ,CAAC,EACD,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;wBAC7B,IAAI,CAAC,EAAE,CAAC,aAAa,CACnB,IAAI,UAAU,CAAC,OAAO,EAAE;4BACtB,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,aAAa,EAAE,KAAK,CAAC,aAAa;yBACnC,CAAC,CACH,CAAC;oBACJ,CAAC,EACD,SAAS,EAAE,CAAC,KAAoB,EAAE,EAAE;wBAClC,IAAI,CAAC,EAAE,CAAC,aAAa,CACnB,IAAI,aAAa,CAAC,SAAS,EAAE;4BAC3B,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,GAAG,EAAE,KAAK,CAAC,GAAG;4BACd,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,MAAM,EAAE,KAAK,CAAC,MAAM;yBACrB,CAAC,CACH,CAAC;oBACJ,CAAC,GACD;gBAED,IAAI,CAAC,eAAe,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CACxD,YAAM,KAAK,EAAC,mBAAmB,EAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAC,OAAO,IACjE,IAAI,CAAC,aAAa,CACd,CACR,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,WAAW,IAAI,CAClB,YAAM,KAAK,EAAC,iBAAiB,EAAC,EAAE,EAAE,IAAI,CAAC,aAAa,IACjD,IAAI,CAAC,WAAW,CACZ,CACR,CACF,CACG,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host, Event, EventEmitter, Element, State, Method, Watch } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-input',\r\n styleUrls: [],\r\n shadow: false,\r\n})\r\nexport class DdaInput {\r\n @Element() el: HTMLElement;\r\n\r\n @Prop() label: string;\r\n @Prop() placeholder: string;\r\n @Prop() value: string;\r\n @Prop() type: string = 'text';\r\n @Prop() input_role: string = 'text';\r\n @Prop() helper_text: string;\r\n @Prop() error_message: string;\r\n @Prop() validation_type?: string;\r\n @Prop() validation_id: string = 'text';\r\n @Prop() size?: string;\r\n @Prop() input_status?: string;\r\n @Prop() custom_class?: string;\r\n @Prop() component_mode?: string;\r\n @Prop() input_id: string;\r\n @Prop() aria_label?: string;\r\n @Prop() input_name?: string;\r\n @Prop() required?: boolean = false;\r\n\r\n @State() internalValue: string = '';\r\n\r\n @Event() inputChanged: EventEmitter<any>;\r\n @Event() onChanged: EventEmitter<any>;\r\n\r\n @Event() inputBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<any>;\r\n\r\n @Method()\r\n async getValue() {\r\n return this.internalValue || this.value || '';\r\n }\r\n\r\n @Watch('value')\r\n watchValue(newValue: string) {\r\n this.internalValue = newValue || '';\r\n }\r\n\r\n @Method()\r\n async setValue(val: string) {\r\n this.internalValue = val;\r\n // this.inputChanged.emit(val);\r\n this.onChanged.emit(val);\r\n }\r\n\r\n @Method()\r\n async reset() {\r\n this.internalValue = '';\r\n // this.inputChanged.emit('');\r\n this.onChanged.emit('');\r\n }\r\n \r\n componentWillLoad() {\r\n this.internalValue = this.value || '';\r\n }\r\n componentDidLoad() {\r\n // Hide date input placeholder\r\n if (this.type === 'date') {\r\n const dateInput = this.el.querySelector('input[type=\"date\"]') as HTMLInputElement;\r\n if (dateInput) {\r\n dateInput.style.color = 'transparent';\r\n dateInput.addEventListener('focus', () => {\r\n dateInput.style.color = '#000';\r\n });\r\n dateInput.addEventListener('blur', () => {\r\n if (!dateInput.value) {\r\n dateInput.style.color = 'transparent';\r\n }\r\n });\r\n dateInput.addEventListener('change', () => {\r\n dateInput.style.color = '#000';\r\n });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const inputClass = [\r\n 'dda-input-container',\r\n this.validation_type ? `dda-validation-${this.validation_type}` : '',\r\n this.size ? `dda-input-size-${this.size}` : '',\r\n this.input_status ? `dda-input-${this.input_status}` : '',\r\n this.type === 'Witherror' ? 'dda-validation-error' : '',\r\n this.type === 'disabled' ? 'dda-input-disabled' : '',\r\n this.custom_class,\r\n this.component_mode,\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n const describedByIds: string[] = [];\r\n if (this.helper_text) describedByIds.push(`${this.validation_id}-helper`);\r\n if (this.validation_type === 'error' && this.error_message) describedByIds.push(`${this.validation_id}-error`);\r\n\r\n return (\r\n <Host>\r\n <div class={inputClass}>\r\n {this.label && (\r\n <label htmlFor={this.input_id} class=\"dda-input-label\" id={`${this.input_id}-label`}>\r\n {this.label}\r\n </label>\r\n )}\r\n <input\r\n id={this.input_id}\r\n name={this.input_name}\r\n class={`dda-input-field dda-input-text ${this.type === 'date' && this.value ? 'has-value' : ''}`}\r\n type={this.type}\r\n role={this.input_role}\r\n placeholder={this.placeholder}\r\n value={this.internalValue}\r\n aria-required={this.required ? 'true' : undefined}\r\n aria-invalid={this.validation_type === 'error' ? 'true' : 'false'}\r\n aria-describedby={`${this.input_id}-label`}\r\n aria-label={!this.label ? this.aria_label : undefined}\r\n onInput={event => {\r\n this.internalValue = (event.target as HTMLInputElement).value;\r\n this.inputChanged.emit(event);\r\n this.onChanged.emit((event.target as HTMLInputElement).value);\r\n this.el.dispatchEvent(\r\n new InputEvent('input', {\r\n bubbles: true,\r\n composed: true,\r\n data: event.data,\r\n inputType: event.inputType,\r\n isComposing: event.isComposing,\r\n }),\r\n );\r\n }}\r\n onBlur={event => {\r\n const value = (event.target as HTMLInputElement).value.trim();\r\n this.inputBlurred.emit({ name: this.input_name, value });\r\n this.onBlurred.emit(value);\r\n this.el.dispatchEvent(\r\n new FocusEvent('blur', {\r\n bubbles: true,\r\n composed: true,\r\n relatedTarget: event.relatedTarget,\r\n }),\r\n );\r\n }}\r\n onFocus={(event: FocusEvent) => {\r\n this.el.dispatchEvent(\r\n new FocusEvent('focus', {\r\n bubbles: true,\r\n composed: true,\r\n relatedTarget: event.relatedTarget,\r\n }),\r\n );\r\n }}\r\n onKeyDown={(event: KeyboardEvent) => {\r\n this.el.dispatchEvent(\r\n new KeyboardEvent('keydown', {\r\n bubbles: true,\r\n composed: true,\r\n key: event.key,\r\n code: event.code,\r\n ctrlKey: event.ctrlKey,\r\n shiftKey: event.shiftKey,\r\n altKey: event.altKey,\r\n metaKey: event.metaKey,\r\n repeat: event.repeat,\r\n }),\r\n );\r\n }}\r\n />\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"]}
@@ -23,11 +23,11 @@ export class DdaPhoneField {
23
23
  async validatePhoneField() {
24
24
  this.phoneBlurred.emit({
25
25
  name: this.phone_input_name,
26
- value: this.internalValue.trim()
26
+ value: this.internalValue.trim(),
27
27
  });
28
28
  this.onBlurred.emit({
29
29
  name: this.phone_input_name,
30
- value: this.internalValue.trim()
30
+ value: this.internalValue.trim(),
31
31
  });
32
32
  }
33
33
  watchHandler(newValue) {
@@ -58,12 +58,9 @@ export class DdaPhoneField {
58
58
  this.is_focused = false;
59
59
  this.phoneBlurred.emit({
60
60
  name: this.phone_input_name,
61
- value: this.internalValue.trim()
62
- });
63
- this.onBlurred.emit({
64
- name: this.phone_input_name,
65
- value: this.internalValue.trim()
61
+ value: this.internalValue.trim(),
66
62
  });
63
+ this.onBlurred.emit(this.internalValue.trim());
67
64
  }
68
65
  handlephonenumberChange(event) {
69
66
  const target = event.target;
@@ -71,11 +68,10 @@ export class DdaPhoneField {
71
68
  this.internalValue = targetvalue;
72
69
  }
73
70
  handleKeyDown(event) {
74
- const allowedKeys = [
75
- 'Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'
76
- ];
71
+ const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];
77
72
  if (allowedKeys.includes(event.key) ||
78
- (event.ctrlKey || event.metaKey) // Allow copy/paste shortcuts
73
+ event.ctrlKey ||
74
+ event.metaKey // Allow copy/paste shortcuts
79
75
  ) {
80
76
  return;
81
77
  }
@@ -85,7 +81,7 @@ export class DdaPhoneField {
85
81
  }
86
82
  render() {
87
83
  const inputClass = `${this.component_mode} ${this.size ? `dda-input-size-${this.size}` : ''} ${this.error_message ? `dda-error-message` : ''} ${this.validation_type ? `dda-validation-${this.validation_type}` : ''} ${this.is_focused ? 'dda-input-focus' : ''} ${this.internalValue ? 'dda-input-focus-filled' : ''}`;
88
- return (h(Host, { key: '536b5776354d2baa1accb5614e28f18f4e16cc41', ref: (el) => this.hostElement = el }, h("div", { key: '70e1c8297d1c04f8bba3702bad9ce201a1e33309', class: `dda-input-container ${inputClass} ${this.custom_class} ${this.disabled ? 'dda-input-disabled' : ''}` }, this.label && h("label", { key: '9527d8fc868abf4b1ddca345d87a71df9aeeeea1', htmlFor: this.input_id, class: "dda-input-label" }, this.label), h("div", { key: 'df78a8dfa93281c3de6206db05b0498c6aa03c9a', class: `dda-input-field-group dda-phone-field` }, h("div", { key: 'feba11b8c237aae12bd36fcf2172bbe75a871295', class: "dda-input-dropdown-btn" }, h("button", { key: '00b4ce8c1e82b23a738f32fe8879291703f0303d', type: "button", name: this.toggle_button_name, class: "dda-dropdown-select", onClick: () => this.toggleDropdown() }, h("img", { key: 'b226050ee9bf0580ca9a39d3a7dd8300bd421fcc', src: this.country_flag, alt: "", width: "20" }), " ", this.country_code, h("i", { key: '4457ef48f82ee65976486a2866c5d1ffc4528ac1', class: "material-icons", "aria-hidden": "true" }, "keyboard_arrow_down")), this.dropdown_open && (h("div", { key: 'd595b834384499e1ea7b3f14916239ca8c03ad85', class: "dda-input-dropdown-list" }, this.countries.map(country => (h("button", { id: `countryCode${country.code}`, name: this.country_select_button_name, "aria-label": this.button_aria_label, type: "button", class: "country-select dda-input-dropdown-item", onClick: () => this.selectCountry(country) }, h("img", { src: country.flag, alt: "", width: "20" }), " ", country.code)))))), h("input", { key: '8b1273e7cdeea5e307ca770f48de3d6f3510d8b4', id: this.input_id, name: this.phone_input_name, "aria-label": this.aria_label, type: "text", inputmode: "numeric", maxlength: this.max_length, pattern: "[0-9]*", class: "dda-field-group-input", placeholder: this.placeholder, value: this.internalValue, disabled: this.disabled, onFocus: this.handleFocus.bind(this), onInput: (e) => this.handlephonenumberChange(e), onKeyDown: (e) => this.handleKeyDown(e), onBlur: () => this.handleBlur() })), 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))))));
84
+ return (h(Host, { key: 'd97be882c394ba7cc2a1f489d7222ab2fed0fe54', ref: el => (this.hostElement = el) }, h("div", { key: '8d811d7dc857a05ff09e1679af984714ec320d96', class: `dda-input-container ${inputClass} ${this.custom_class} ${this.disabled ? 'dda-input-disabled' : ''}` }, this.label && (h("label", { key: '715f3cbce511a077295ebaaf88c9c0affe58b782', htmlFor: this.input_id, class: "dda-input-label" }, this.label)), h("div", { key: 'cec492e63da2a10f200dc23ee480559597ac6670', class: `dda-input-field-group dda-phone-field` }, h("div", { key: 'c8fdd1e13ba790b6b3b3ed0037182bac05343608', class: "dda-input-dropdown-btn" }, h("button", { key: '1362edbfa546588f16d8c6d8b1793e08b9749945', type: "button", name: this.toggle_button_name, class: "dda-dropdown-select", onClick: () => this.toggleDropdown() }, h("img", { key: '0a0e0d32f797c2ab1044a0ba7bf3814bb8862331', src: this.country_flag, alt: "", width: "20" }), " ", this.country_code, h("i", { key: '8709a1598a6e57a816126d14c8466f41d56ce2b1', class: "material-icons", "aria-hidden": "true" }, "keyboard_arrow_down")), this.dropdown_open && (h("div", { key: 'a47b6c2d06486ae76ff2a98e7160b297b249c202', class: "dda-input-dropdown-list" }, this.countries.map(country => (h("button", { id: `countryCode${country.code}`, name: this.country_select_button_name, "aria-label": this.button_aria_label, type: "button", class: "country-select dda-input-dropdown-item", onClick: () => this.selectCountry(country) }, h("img", { src: country.flag, alt: "", width: "20" }), " ", country.code)))))), h("input", { key: 'ecc0b8bdde9294c0c1cefaed0fe797fe955bb599', id: this.input_id, name: this.phone_input_name, "aria-label": this.aria_label, type: "text", inputmode: "numeric", maxlength: this.max_length, pattern: "[0-9]*", class: "dda-field-group-input", placeholder: this.placeholder, value: this.internalValue, disabled: this.disabled, onFocus: this.handleFocus.bind(this), onInput: e => this.handlephonenumberChange(e), onKeyDown: e => this.handleKeyDown(e), onBlur: () => this.handleBlur() })), 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))))));
89
85
  }
90
86
  static get is() { return "dda-phonefield"; }
91
87
  static get properties() {
@@ -494,8 +490,8 @@ export class DdaPhoneField {
494
490
  "text": ""
495
491
  },
496
492
  "complexType": {
497
- "original": "{ name: string; value: string }",
498
- "resolved": "{ name: string; value: string; }",
493
+ "original": "any",
494
+ "resolved": "any",
499
495
  "references": {}
500
496
  }
501
497
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"dda-phonefield.js","sourceRoot":"","sources":["../../../src/components/dda-phonefield/dda-phonefield.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, Event, EventEmitter, h, Host, Method, Watch } from '@stencil/core';\r\nimport { CountriesList } from '../../assets/countries';\r\n\r\n@Component({\r\n tag: 'dda-phonefield',\r\n styleUrls: [],\r\n shadow: false,\r\n})\r\nexport class DdaPhoneField {\r\n @Prop() label: string;\r\n @Prop() placeholder: string = 'Enter phone number';\r\n @Prop() helper_text: string;\r\n @Prop() max_length: string;\r\n @Prop() validation_type?: string;\r\n @Prop() error_message: string;\r\n @Prop() validation_id: string = 'text';\r\n @Prop() disabled: boolean = false;\r\n @Prop() size?: string;\r\n @Prop() custom_class: string;\r\n @Prop() component_mode?: string;\r\n @Prop() input_id?: string;\r\n @Prop() aria_label: string;\r\n @Prop() button_id?: string;\r\n @Prop() button_aria_label: string;\r\n @Prop() toggle_button_name: string;\r\n @Prop() country_select_button_name: string;\r\n @Prop() phone_input_name: string;\r\n @Prop() value: string;\r\n\r\n @State() country_code: string = '+971';\r\n @State() country_flag: string = 'https://flagcdn.com/w320/ae.png';\r\n @State() internalValue: string = '';\r\n @State() is_focused: boolean = false;\r\n @State() dropdown_open: boolean = false;\r\n @State() countries: { code: string; flag: string }[] = [];\r\n @State() hostElement: HTMLElement;\r\n\r\n @Event() phoneBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<{ name: string; value: string }>;\r\n\r\n\r\n @Method()\r\n async getValue() {\r\n return this.internalValue || this.value || '';\r\n }\r\n\r\n @Method()\r\n async validatePhoneField() {\r\n this.phoneBlurred.emit({\r\n name: this.phone_input_name,\r\n value: this.internalValue.trim()\r\n });\r\n this.onBlurred.emit({\r\n name: this.phone_input_name,\r\n value: this.internalValue.trim()\r\n });\r\n }\r\n\r\n @Watch('value')\r\n watchHandler(newValue: string) {\r\n this.internalValue = newValue;\r\n }\r\n\r\n componentWillLoad() {\r\n this.countries = CountriesList;\r\n this.internalValue = this.value || '';\r\n }\r\n\r\n componentDidLoad() {\r\n document.addEventListener('click', this.handleDocumentClick);\r\n }\r\n\r\n disconnectedCallback() {\r\n document.removeEventListener('click', this.handleDocumentClick);\r\n }\r\n\r\n handleDocumentClick = (event: MouseEvent) => {\r\n if (this.dropdown_open && this.hostElement && !this.hostElement.contains(event.target as Node)) {\r\n this.dropdown_open = false;\r\n }\r\n }\r\n\r\n toggleDropdown() {\r\n this.dropdown_open = !this.dropdown_open;\r\n }\r\n\r\n selectCountry(country: { code: string; flag: string }) {\r\n this.country_code = country.code;\r\n this.country_flag = country.flag;\r\n this.dropdown_open = false;\r\n }\r\n\r\n handleFocus() {\r\n this.is_focused = true;\r\n }\r\n\r\n handleBlur() {\r\n this.is_focused = false;\r\n this.phoneBlurred.emit({\r\n name: this.phone_input_name,\r\n value: this.internalValue.trim()\r\n });\r\n this.onBlurred.emit({\r\n name: this.phone_input_name,\r\n value: this.internalValue.trim()\r\n });\r\n }\r\n\r\n handlephonenumberChange(event: Event) {\r\n const target = event.target as HTMLInputElement;\r\n const targetvalue = target.value.replace(/\\D/g, '');\r\n this.internalValue = targetvalue;\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent) {\r\n const allowedKeys = [\r\n 'Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'\r\n ];\r\n\r\n if (\r\n allowedKeys.includes(event.key) ||\r\n (event.ctrlKey || event.metaKey) // Allow copy/paste shortcuts\r\n ) {\r\n return;\r\n }\r\n\r\n if (!/^\\d$/.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n}\r\n\r\n render() {\r\n const inputClass = `${this.component_mode} ${this.size ? `dda-input-size-${this.size}` : ''} ${this.error_message ? `dda-error-message` : ''} ${this.validation_type ? `dda-validation-${this.validation_type}` : ''} ${this.is_focused ? 'dda-input-focus' : ''} ${this.internalValue ? 'dda-input-focus-filled' : ''}`;\r\n\r\n return (\r\n <Host ref={(el) => this.hostElement = el as HTMLElement}>\r\n <div class={`dda-input-container ${inputClass} ${this.custom_class} ${this.disabled ? 'dda-input-disabled' : ''}`}>\r\n {this.label && <label htmlFor={this.input_id} class=\"dda-input-label\">{this.label}</label>}\r\n <div class={`dda-input-field-group dda-phone-field`}>\r\n <div class=\"dda-input-dropdown-btn\">\r\n <button type=\"button\" name={this.toggle_button_name} class=\"dda-dropdown-select\" onClick={() => this.toggleDropdown()}>\r\n <img src={this.country_flag} alt=\"\" width=\"20\" /> {this.country_code}\r\n <i class=\"material-icons\" aria-hidden=\"true\">keyboard_arrow_down</i>\r\n </button>\r\n {this.dropdown_open && (\r\n <div class=\"dda-input-dropdown-list\">\r\n {this.countries.map(country => (\r\n <button\r\n id={`countryCode${country.code}`}\r\n name={this.country_select_button_name}\r\n aria-label={this.button_aria_label}\r\n type=\"button\"\r\n class=\"country-select dda-input-dropdown-item\"\r\n onClick={() => this.selectCountry(country)}\r\n >\r\n <img src={country.flag} alt=\"\" width=\"20\" /> {country.code}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n <input\r\n id={this.input_id}\r\n name={this.phone_input_name}\r\n aria-label={this.aria_label}\r\n type=\"text\"\r\n inputmode=\"numeric\"\r\n maxlength={this.max_length}\r\n pattern=\"[0-9]*\"\r\n class=\"dda-field-group-input\"\r\n placeholder={this.placeholder}\r\n value={this.internalValue}\r\n disabled={this.disabled}\r\n onFocus={this.handleFocus.bind(this)}\r\n onInput={(e) => this.handlephonenumberChange(e)}\r\n onKeyDown={(e) => this.handleKeyDown(e)}\r\n onBlur={() => this.handleBlur()}\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"]}
1
+ {"version":3,"file":"dda-phonefield.js","sourceRoot":"","sources":["../../../src/components/dda-phonefield/dda-phonefield.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, Event, EventEmitter, h, Host, Method, Watch } from '@stencil/core';\r\nimport { CountriesList } from '../../assets/countries';\r\n\r\n@Component({\r\n tag: 'dda-phonefield',\r\n styleUrls: [],\r\n shadow: false,\r\n})\r\nexport class DdaPhoneField {\r\n @Prop() label: string;\r\n @Prop() placeholder: string = 'Enter phone number';\r\n @Prop() helper_text: string;\r\n @Prop() max_length: string;\r\n @Prop() validation_type?: string;\r\n @Prop() error_message: string;\r\n @Prop() validation_id: string = 'text';\r\n @Prop() disabled: boolean = false;\r\n @Prop() size?: string;\r\n @Prop() custom_class: string;\r\n @Prop() component_mode?: string;\r\n @Prop() input_id?: string;\r\n @Prop() aria_label: string;\r\n @Prop() button_id?: string;\r\n @Prop() button_aria_label: string;\r\n @Prop() toggle_button_name: string;\r\n @Prop() country_select_button_name: string;\r\n @Prop() phone_input_name: string;\r\n @Prop() value: string;\r\n\r\n @State() country_code: string = '+971';\r\n @State() country_flag: string = 'https://flagcdn.com/w320/ae.png';\r\n @State() internalValue: string = '';\r\n @State() is_focused: boolean = false;\r\n @State() dropdown_open: boolean = false;\r\n @State() countries: { code: string; flag: string }[] = [];\r\n @State() hostElement: HTMLElement;\r\n\r\n @Event() phoneBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<any>;\r\n\r\n @Method()\r\n async getValue() {\r\n return this.internalValue || this.value || '';\r\n }\r\n\r\n @Method()\r\n async validatePhoneField() {\r\n this.phoneBlurred.emit({\r\n name: this.phone_input_name,\r\n value: this.internalValue.trim(),\r\n });\r\n this.onBlurred.emit({\r\n name: this.phone_input_name,\r\n value: this.internalValue.trim(),\r\n });\r\n }\r\n\r\n @Watch('value')\r\n watchHandler(newValue: string) {\r\n this.internalValue = newValue;\r\n }\r\n\r\n componentWillLoad() {\r\n this.countries = CountriesList;\r\n this.internalValue = this.value || '';\r\n }\r\n\r\n componentDidLoad() {\r\n document.addEventListener('click', this.handleDocumentClick);\r\n }\r\n\r\n disconnectedCallback() {\r\n document.removeEventListener('click', this.handleDocumentClick);\r\n }\r\n\r\n handleDocumentClick = (event: MouseEvent) => {\r\n if (this.dropdown_open && this.hostElement && !this.hostElement.contains(event.target as Node)) {\r\n this.dropdown_open = false;\r\n }\r\n };\r\n\r\n toggleDropdown() {\r\n this.dropdown_open = !this.dropdown_open;\r\n }\r\n\r\n selectCountry(country: { code: string; flag: string }) {\r\n this.country_code = country.code;\r\n this.country_flag = country.flag;\r\n this.dropdown_open = false;\r\n }\r\n\r\n handleFocus() {\r\n this.is_focused = true;\r\n }\r\n\r\n handleBlur() {\r\n this.is_focused = false;\r\n this.phoneBlurred.emit({\r\n name: this.phone_input_name,\r\n value: this.internalValue.trim(),\r\n });\r\n this.onBlurred.emit(this.internalValue.trim());\r\n }\r\n\r\n handlephonenumberChange(event: Event) {\r\n const target = event.target as HTMLInputElement;\r\n const targetvalue = target.value.replace(/\\D/g, '');\r\n this.internalValue = targetvalue;\r\n }\r\n\r\n handleKeyDown(event: KeyboardEvent) {\r\n const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];\r\n\r\n if (\r\n allowedKeys.includes(event.key) ||\r\n event.ctrlKey ||\r\n event.metaKey // Allow copy/paste shortcuts\r\n ) {\r\n return;\r\n }\r\n\r\n if (!/^\\d$/.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n render() {\r\n const inputClass = `${this.component_mode} ${this.size ? `dda-input-size-${this.size}` : ''} ${this.error_message ? `dda-error-message` : ''} ${this.validation_type ? `dda-validation-${this.validation_type}` : ''} ${this.is_focused ? 'dda-input-focus' : ''} ${this.internalValue ? 'dda-input-focus-filled' : ''}`;\r\n\r\n return (\r\n <Host ref={el => (this.hostElement = el as HTMLElement)}>\r\n <div class={`dda-input-container ${inputClass} ${this.custom_class} ${this.disabled ? 'dda-input-disabled' : ''}`}>\r\n {this.label && (\r\n <label htmlFor={this.input_id} class=\"dda-input-label\">\r\n {this.label}\r\n </label>\r\n )}\r\n <div class={`dda-input-field-group dda-phone-field`}>\r\n <div class=\"dda-input-dropdown-btn\">\r\n <button type=\"button\" name={this.toggle_button_name} class=\"dda-dropdown-select\" onClick={() => this.toggleDropdown()}>\r\n <img src={this.country_flag} alt=\"\" width=\"20\" /> {this.country_code}\r\n <i class=\"material-icons\" aria-hidden=\"true\">\r\n keyboard_arrow_down\r\n </i>\r\n </button>\r\n {this.dropdown_open && (\r\n <div class=\"dda-input-dropdown-list\">\r\n {this.countries.map(country => (\r\n <button\r\n id={`countryCode${country.code}`}\r\n name={this.country_select_button_name}\r\n aria-label={this.button_aria_label}\r\n type=\"button\"\r\n class=\"country-select dda-input-dropdown-item\"\r\n onClick={() => this.selectCountry(country)}\r\n >\r\n <img src={country.flag} alt=\"\" width=\"20\" /> {country.code}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n <input\r\n id={this.input_id}\r\n name={this.phone_input_name}\r\n aria-label={this.aria_label}\r\n type=\"text\"\r\n inputmode=\"numeric\"\r\n maxlength={this.max_length}\r\n pattern=\"[0-9]*\"\r\n class=\"dda-field-group-input\"\r\n placeholder={this.placeholder}\r\n value={this.internalValue}\r\n disabled={this.disabled}\r\n onFocus={this.handleFocus.bind(this)}\r\n onInput={e => this.handlephonenumberChange(e)}\r\n onKeyDown={e => this.handleKeyDown(e)}\r\n onBlur={() => this.handleBlur()}\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"]}
@@ -60,7 +60,7 @@ export class DdaSearchInput {
60
60
  this.onChanged.emit(val);
61
61
  }
62
62
  render() {
63
- return (h(Host, { key: '788e32324959a661a2e455b68ad5182596fd5425' }, h("div", { key: '14bf0a178e9c6ad063f099e50670469a848b7088', class: `dda-input-container dda-input-size-${this.size} ${this.component_mode} ${this.custom_class} ${this.input_status ? `dda-input-${this.input_status}` : ''} ${this.has_error ? 'dda-validation-error' : ''}` }, this.label && (h("label", { key: '98f58b4a01e5f3b2ffefda00588586115852f507', htmlFor: this.button_id, class: "dda-input-label" }, this.label)), h("div", { key: '43393cf11cd9b1fe151190a92bdb1963a657873f', class: "dda-search-area dda-search-action" }, h("i", { key: 'e83ea59abe03acb5d871ad6d001b8d1a753dd593', class: "material-icons icon-left", "aria-hidden": "true" }, "search"), h("input", { key: 'a38947bc2567d5fb162705b4b8227d3f508a51a7', name: this.search_input_name, "aria-label": this.aria_label, id: this.input_id, value: this.internalValue, type: "text", class: `dda-input-field dda-search-field ${this.show_button ? 'has-search-button' : ''}`, placeholder: this.placeholder,
63
+ return (h(Host, { key: '63cc7ca7960af3191ef0f2555f46d9e124698f8b' }, h("div", { key: '580758f178fc17fd14a8f55f60c00f2a2e2df8fa', class: `dda-input-container dda-input-size-${this.size} ${this.component_mode} ${this.custom_class} ${this.input_status ? `dda-input-${this.input_status}` : ''} ${this.has_error ? 'dda-validation-error' : ''}` }, this.label && (h("label", { key: '65ed51e543cd333b99ecfbdb4f5bbb4f329b53e6', htmlFor: this.button_id, class: "dda-input-label" }, this.label)), h("div", { key: '6aa00d11a082ca868dfe4da8586937f6d4479876', class: "dda-search-area dda-search-action" }, h("i", { key: '9cb8039c3e30f1637f250c8c80b3ae8287eb043a', class: "material-icons icon-left", "aria-hidden": "true" }, "search"), h("input", { key: '72c2c96353d9431e0cf6f3251edb426e1401510d', name: this.search_input_name, "aria-label": this.aria_label, id: this.input_id, value: this.internalValue, type: "text", class: `dda-input-field dda-search-field ${this.show_button ? 'has-search-button' : ''}`, placeholder: this.placeholder,
64
64
  // onInput={this.handleInput}
65
65
  onKeyDown: this.handleKeyDown, onInput: event => {
66
66
  this.internalValue = event.target.value;
@@ -70,8 +70,8 @@ export class DdaSearchInput {
70
70
  }, onBlur: event => {
71
71
  const value = event.target.value.trim();
72
72
  this.inputBlurred.emit({ name: this.search_input_name, value });
73
- this.onBlurred.emit({ name: this.search_input_name, value });
74
- } }), h("div", { key: 'a7b692b4c6ed2b8859ff0eef0069dea881363448', class: "dda-search-btngroup" }, this.hasInputValue && (h("button", { key: 'd8fb9737df78af6c4196e4dbd05ca9d74107e1d5', name: this.close_button_name, "aria-label": this.button_aria_label, id: this.button_id, type: "button", class: "dda-search-close-icon", onClick: () => this.clearInput() }, h("i", { key: '7c2f8c45df0060c2fa6d6f55bfab9d2dfa5bab28', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))), this.show_button && (h("button", { key: '10828f37a7569715fccd9ee69f245841423b0fd5', name: this.search_button_name, type: "button", class: "dda-btn btn-color-default-primary dda-btn-sm", onClick: this.handleSearchClick }, this.button_text)))), this.helper_text && (h("span", { key: '6c94b4c951409ad20a4e84b339ab81516855ef16', class: "dda-helper-text", id: this.validation_id }, this.helper_text)), this.error_message && (h("span", { key: 'ade9a6a691b2c013b23a8c9186b9d2822b6dd74c', class: "dda-error-message", id: this.validation_id }, this.error_message)))));
73
+ this.onBlurred.emit(value);
74
+ } }), h("div", { key: '80747d9137284f1b05cb0d25a7a8ad6c8a7b1048', class: "dda-search-btngroup" }, this.hasInputValue && (h("button", { key: '25e82c8100f168b6855426d2a2a75c1bf734409c', name: this.close_button_name, "aria-label": this.button_aria_label, id: this.button_id, type: "button", class: "dda-search-close-icon", onClick: () => this.clearInput() }, h("i", { key: 'f7612c86c0bd7e9ccd7c4e9666bca0e6da89c29b', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))), this.show_button && (h("button", { key: '6b763a5850c1d48e0a7375a361f8dfaf67e8fd06', name: this.search_button_name, type: "button", class: "dda-btn btn-color-default-primary dda-btn-sm", onClick: this.handleSearchClick }, this.button_text)))), this.helper_text && (h("span", { key: 'e6f8b2cd39ad001b30a3c749d08326d344ad6430', class: "dda-helper-text", id: this.validation_id }, this.helper_text)), this.error_message && (h("span", { key: '417fe2bdb508400276bf19144b18c62a7b448220', class: "dda-error-message", id: this.validation_id }, this.error_message)))));
75
75
  }
76
76
  static get is() { return "dda-search-input"; }
77
77
  static get properties() {
@@ -541,8 +541,8 @@ export class DdaSearchInput {
541
541
  "text": ""
542
542
  },
543
543
  "complexType": {
544
- "original": "{ name: string; value: string }",
545
- "resolved": "{ name: string; value: string; }",
544
+ "original": "any",
545
+ "resolved": "any",
546
546
  "references": {}
547
547
  }
548
548
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"dda-search-input.js","sourceRoot":"","sources":["../../../src/components/dda-search-input/dda-search-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Host, Element, State, Event, EventEmitter, Watch, Method } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-search-input',\r\n styleUrls: [],\r\n shadow: false,\r\n})\r\nexport class DdaSearchInput {\r\n @Prop() placeholder: string = 'Search';\r\n @Prop() label: string;\r\n @Prop() size: string = 'sm';\r\n @Prop() error_message: string;\r\n @Prop() show_button: boolean = false;\r\n @Prop() helper_text: string;\r\n @Prop() validation_id: string;\r\n @Prop() input_status?: string;\r\n @Prop() has_error: boolean = false;\r\n @Prop() custom_class?: string = '';\r\n @Prop() component_mode?: string;\r\n @Prop() button_id?: string;\r\n @Prop() input_id?: string;\r\n @Prop() aria_label?: string;\r\n @Prop() button_aria_label?: string;\r\n @Prop() search_input_name: string;\r\n @Prop() close_button_name: string;\r\n @Prop() search_button_name: string;\r\n @Prop() button_text: string;\r\n @Prop() value: string;\r\n\r\n @Event() inputChanged: EventEmitter<any>;\r\n @Event() onChanged: EventEmitter<any>;\r\n\r\n @Event() buttonClicked: EventEmitter<any>;\r\n @Event() inputBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<{ name: string; value: string }>;\r\n\r\n\r\n @Element() el: HTMLElement;\r\n\r\n @State() hasInputValue: boolean = false;\r\n @State() internalValue: string = '';\r\n\r\n handleInput = (event: Event) => {\r\n const target = event.target as HTMLInputElement;\r\n this.hasInputValue = target.value.length > 0;\r\n };\r\n\r\n handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Enter') {\r\n const target = event.target as HTMLInputElement;\r\n console.log('Search input value (Enter):', target.value);\r\n }\r\n };\r\n\r\n @Watch('value')\r\n watchValue(newValue: string) {\r\n this.internalValue = newValue || '';\r\n this.hasInputValue = !!this.internalValue;\r\n }\r\n\r\n componentWillLoad() {\r\n this.internalValue = this.value || '';\r\n this.hasInputValue = !!this.internalValue;\r\n }\r\n\r\n handleSearchClick = () => {\r\n const input = this.el.querySelector(`#${this.input_id}`) as HTMLInputElement;\r\n if (input) {\r\n // console.log('Search input value (Button):', input.value);\r\n this.buttonClicked.emit(this.internalValue || this.value);\r\n }\r\n };\r\n\r\n clearInput() {\r\n if (!this.input_id) return;\r\n const input = this.el.querySelector(`#${this.input_id}`) as HTMLInputElement;\r\n if (input) {\r\n input.value = '';\r\n this.internalValue = '';\r\n this.hasInputValue = false;\r\n // this.inputChanged.emit('');\r\n this.onChanged.emit('');\r\n input.focus();\r\n }\r\n }\r\n\r\n @Method()\r\n async reset() {\r\n this.internalValue = '';\r\n this.hasInputValue = false;\r\n // this.inputChanged.emit('');\r\n this.onChanged.emit('');\r\n }\r\n\r\n @Method()\r\n async setValue(val: string) {\r\n this.internalValue = val;\r\n this.hasInputValue = !!val;\r\n // this.inputChanged.emit(val);\r\n this.onChanged.emit(val);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div\r\n class={`dda-input-container dda-input-size-${this.size} ${this.component_mode} ${this.custom_class} ${this.input_status ? `dda-input-${this.input_status}` : ''} ${this.has_error ? 'dda-validation-error' : ''}`}\r\n >\r\n {this.label && (\r\n <label htmlFor={this.button_id} class=\"dda-input-label\">\r\n {this.label}\r\n </label>\r\n )}\r\n <div class=\"dda-search-area dda-search-action\">\r\n <i class=\"material-icons icon-left\" aria-hidden=\"true\">\r\n search\r\n </i>\r\n <input\r\n name={this.search_input_name}\r\n aria-label={this.aria_label}\r\n id={this.input_id}\r\n value={this.internalValue}\r\n type=\"text\"\r\n class={`dda-input-field dda-search-field ${this.show_button ? 'has-search-button' : ''}`}\r\n placeholder={this.placeholder}\r\n // onInput={this.handleInput}\r\n onKeyDown={this.handleKeyDown}\r\n onInput={event => {\r\n this.internalValue = (event.target as HTMLInputElement).value;\r\n this.hasInputValue = !!this.internalValue;\r\n this.inputChanged.emit(event);\r\n this.onChanged.emit(event);\r\n }}\r\n onBlur={event => {\r\n const value = (event.target as HTMLInputElement).value.trim();\r\n this.inputBlurred.emit({ name: this.search_input_name, value });\r\n this.onBlurred.emit({ name: this.search_input_name, value });\r\n }}\r\n />\r\n <div class=\"dda-search-btngroup\">\r\n {this.hasInputValue && (\r\n <button\r\n name={this.close_button_name}\r\n aria-label={this.button_aria_label}\r\n id={this.button_id}\r\n type=\"button\"\r\n class=\"dda-search-close-icon\"\r\n onClick={() => this.clearInput()}\r\n >\r\n <i class=\"material-icons material-symbols-outlined\" aria-hidden=\"true\">\r\n close\r\n </i>\r\n </button>\r\n )}\r\n {this.show_button && (\r\n <button name={this.search_button_name} type=\"button\" class=\"dda-btn btn-color-default-primary dda-btn-sm\" onClick={this.handleSearchClick}>\r\n {this.button_text}\r\n </button>\r\n )}\r\n </div>\r\n </div>\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 {this.error_message && (\r\n <span class=\"dda-error-message\" id={this.validation_id}>\r\n {this.error_message}\r\n </span>\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"dda-search-input.js","sourceRoot":"","sources":["../../../src/components/dda-search-input/dda-search-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Host, Element, State, Event, EventEmitter, Watch, Method } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-search-input',\r\n styleUrls: [],\r\n shadow: false,\r\n})\r\nexport class DdaSearchInput {\r\n @Prop() placeholder: string = 'Search';\r\n @Prop() label: string;\r\n @Prop() size: string = 'sm';\r\n @Prop() error_message: string;\r\n @Prop() show_button: boolean = false;\r\n @Prop() helper_text: string;\r\n @Prop() validation_id: string;\r\n @Prop() input_status?: string;\r\n @Prop() has_error: boolean = false;\r\n @Prop() custom_class?: string = '';\r\n @Prop() component_mode?: string;\r\n @Prop() button_id?: string;\r\n @Prop() input_id?: string;\r\n @Prop() aria_label?: string;\r\n @Prop() button_aria_label?: string;\r\n @Prop() search_input_name: string;\r\n @Prop() close_button_name: string;\r\n @Prop() search_button_name: string;\r\n @Prop() button_text: string;\r\n @Prop() value: string;\r\n\r\n @Event() inputChanged: EventEmitter<any>;\r\n @Event() onChanged: EventEmitter<any>;\r\n\r\n @Event() buttonClicked: EventEmitter<any>;\r\n @Event() inputBlurred: EventEmitter<{ name: string; value: string }>;\r\n @Event() onBlurred: EventEmitter<any>;\r\n\r\n\r\n @Element() el: HTMLElement;\r\n\r\n @State() hasInputValue: boolean = false;\r\n @State() internalValue: string = '';\r\n\r\n handleInput = (event: Event) => {\r\n const target = event.target as HTMLInputElement;\r\n this.hasInputValue = target.value.length > 0;\r\n };\r\n\r\n handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Enter') {\r\n const target = event.target as HTMLInputElement;\r\n console.log('Search input value (Enter):', target.value);\r\n }\r\n };\r\n\r\n @Watch('value')\r\n watchValue(newValue: string) {\r\n this.internalValue = newValue || '';\r\n this.hasInputValue = !!this.internalValue;\r\n }\r\n\r\n componentWillLoad() {\r\n this.internalValue = this.value || '';\r\n this.hasInputValue = !!this.internalValue;\r\n }\r\n\r\n handleSearchClick = () => {\r\n const input = this.el.querySelector(`#${this.input_id}`) as HTMLInputElement;\r\n if (input) {\r\n // console.log('Search input value (Button):', input.value);\r\n this.buttonClicked.emit(this.internalValue || this.value);\r\n }\r\n };\r\n\r\n clearInput() {\r\n if (!this.input_id) return;\r\n const input = this.el.querySelector(`#${this.input_id}`) as HTMLInputElement;\r\n if (input) {\r\n input.value = '';\r\n this.internalValue = '';\r\n this.hasInputValue = false;\r\n // this.inputChanged.emit('');\r\n this.onChanged.emit('');\r\n input.focus();\r\n }\r\n }\r\n\r\n @Method()\r\n async reset() {\r\n this.internalValue = '';\r\n this.hasInputValue = false;\r\n // this.inputChanged.emit('');\r\n this.onChanged.emit('');\r\n }\r\n\r\n @Method()\r\n async setValue(val: string) {\r\n this.internalValue = val;\r\n this.hasInputValue = !!val;\r\n // this.inputChanged.emit(val);\r\n this.onChanged.emit(val);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div\r\n class={`dda-input-container dda-input-size-${this.size} ${this.component_mode} ${this.custom_class} ${this.input_status ? `dda-input-${this.input_status}` : ''} ${this.has_error ? 'dda-validation-error' : ''}`}\r\n >\r\n {this.label && (\r\n <label htmlFor={this.button_id} class=\"dda-input-label\">\r\n {this.label}\r\n </label>\r\n )}\r\n <div class=\"dda-search-area dda-search-action\">\r\n <i class=\"material-icons icon-left\" aria-hidden=\"true\">\r\n search\r\n </i>\r\n <input\r\n name={this.search_input_name}\r\n aria-label={this.aria_label}\r\n id={this.input_id}\r\n value={this.internalValue}\r\n type=\"text\"\r\n class={`dda-input-field dda-search-field ${this.show_button ? 'has-search-button' : ''}`}\r\n placeholder={this.placeholder}\r\n // onInput={this.handleInput}\r\n onKeyDown={this.handleKeyDown}\r\n onInput={event => {\r\n this.internalValue = (event.target as HTMLInputElement).value;\r\n this.hasInputValue = !!this.internalValue;\r\n this.inputChanged.emit(event);\r\n this.onChanged.emit(event);\r\n }}\r\n onBlur={event => {\r\n const value = (event.target as HTMLInputElement).value.trim();\r\n this.inputBlurred.emit({ name: this.search_input_name, value });\r\n this.onBlurred.emit(value);\r\n }}\r\n />\r\n <div class=\"dda-search-btngroup\">\r\n {this.hasInputValue && (\r\n <button\r\n name={this.close_button_name}\r\n aria-label={this.button_aria_label}\r\n id={this.button_id}\r\n type=\"button\"\r\n class=\"dda-search-close-icon\"\r\n onClick={() => this.clearInput()}\r\n >\r\n <i class=\"material-icons material-symbols-outlined\" aria-hidden=\"true\">\r\n close\r\n </i>\r\n </button>\r\n )}\r\n {this.show_button && (\r\n <button name={this.search_button_name} type=\"button\" class=\"dda-btn btn-color-default-primary dda-btn-sm\" onClick={this.handleSearchClick}>\r\n {this.button_text}\r\n </button>\r\n )}\r\n </div>\r\n </div>\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 {this.error_message && (\r\n <span class=\"dda-error-message\" id={this.validation_id}>\r\n {this.error_message}\r\n </span>\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -18,10 +18,11 @@ export class Ddaselect {
18
18
  name: this.input_name || this.button_id,
19
19
  value: this.selectedText || '',
20
20
  });
21
- this.onBlurred.emit({
22
- name: this.input_name || this.button_id,
23
- value: this.selectedText || '',
24
- });
21
+ this.onBlurred.emit(this.selectedId);
22
+ this.el.dispatchEvent(new FocusEvent('blur', {
23
+ bubbles: true,
24
+ composed: true,
25
+ }));
25
26
  };
26
27
  }
27
28
  get parsedOptions() {
@@ -53,7 +54,13 @@ export class Ddaselect {
53
54
  this.selectedText = option.text;
54
55
  this.is_open = false;
55
56
  this.selectChanged.emit(option);
56
- this.onChanged.emit(option);
57
+ this.onChanged.emit(option.id);
58
+ this.el.dispatchEvent(new InputEvent('input', {
59
+ bubbles: true,
60
+ composed: true,
61
+ data: option.id,
62
+ inputType: 'select',
63
+ }));
57
64
  }
58
65
  }
59
66
  connectedCallback() {
@@ -78,6 +85,9 @@ export class Ddaselect {
78
85
  async getSelectedText() {
79
86
  return this.selectedText;
80
87
  }
88
+ async getValue() {
89
+ return this.selectedText || '';
90
+ }
81
91
  watchSelected(newVal) {
82
92
  const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === newVal || opt.text === newVal);
83
93
  if (selectedOption) {
@@ -96,12 +106,12 @@ export class Ddaselect {
96
106
  render() {
97
107
  const labelId = `${this.button_id}-label`;
98
108
  const valueId = `${this.button_id}-value`;
99
- return (h(Host, { key: 'b2ea43f3cc071d70ea0c61d143824d49c7aff023' }, h("div", { key: '950000c97017a28e0188deb01243fd13b0963c1b', class: `
109
+ return (h(Host, { key: 'ced7dbfc2a4f358c971a706761472784bb3e6628' }, h("div", { key: '8956ae24671d419e61eb32c6956358e2b51ec945', class: `
100
110
  dda-input-container ${this.custom_class}
101
111
  ${this.component_mode}
102
112
  ${this.disabled ? 'dda-input-disabled' : ''}
103
113
  dda-input-size-${this.size} dda-validation-${this.validation_type}
104
- ` }, 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))))));
114
+ ` }, 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))))));
105
115
  }
106
116
  static get is() { return "dda-select"; }
107
117
  static get properties() {
@@ -490,8 +500,8 @@ export class Ddaselect {
490
500
  "text": ""
491
501
  },
492
502
  "complexType": {
493
- "original": "{ id: number; text: string }",
494
- "resolved": "{ id: number; text: string; }",
503
+ "original": "any",
504
+ "resolved": "any",
495
505
  "references": {}
496
506
  }
497
507
  }, {
@@ -520,8 +530,8 @@ export class Ddaselect {
520
530
  "text": ""
521
531
  },
522
532
  "complexType": {
523
- "original": "{ name: string; value: string }",
524
- "resolved": "{ name: string; value: string; }",
533
+ "original": "any",
534
+ "resolved": "any",
525
535
  "references": {}
526
536
  }
527
537
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"dda-select.js","sourceRoot":"","sources":["../../../src/components/dda-select/dda-select.tsx"],"names":[],"mappings":"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","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"]}
1
+ {"version":3,"file":"dda-select.js","sourceRoot":"","sources":["../../../src/components/dda-select/dda-select.tsx"],"names":[],"mappings":"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","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"]}
@@ -59,12 +59,18 @@ export class DdaTextarea {
59
59
  this.internalValue = val;
60
60
  this.characterCount = val.length;
61
61
  this.textareaChanged.emit(event);
62
- this.onChanged.emit(event);
62
+ this.onChanged.emit(val);
63
+ this.el.dispatchEvent(new InputEvent('input', event));
63
64
  }
64
65
  handleBlur(event) {
65
66
  const val = event.target.value.trim();
66
67
  this.textareaBlurred.emit({ name: this.textarea_name, value: val });
67
- this.onBlurred.emit({ name: this.textarea_name, value: val });
68
+ this.onBlurred.emit(val);
69
+ this.el.dispatchEvent(new FocusEvent('blur', {
70
+ bubbles: true,
71
+ composed: true,
72
+ relatedTarget: event.target,
73
+ }));
68
74
  }
69
75
  render() {
70
76
  const textareaClass = [
@@ -74,8 +80,28 @@ export class DdaTextarea {
74
80
  this.custom_class,
75
81
  this.component_mode,
76
82
  this.textarea_name,
77
- ].filter(Boolean).join(' ');
78
- 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))))));
83
+ ]
84
+ .filter(Boolean)
85
+ .join(' ');
86
+ 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) => {
87
+ this.el.dispatchEvent(new FocusEvent('focus', {
88
+ bubbles: true,
89
+ composed: true,
90
+ relatedTarget: event.relatedTarget,
91
+ }));
92
+ }, onKeyDown: (event) => {
93
+ this.el.dispatchEvent(new KeyboardEvent('keydown', {
94
+ bubbles: true,
95
+ composed: true,
96
+ key: event.key,
97
+ code: event.code,
98
+ ctrlKey: event.ctrlKey,
99
+ shiftKey: event.shiftKey,
100
+ altKey: event.altKey,
101
+ metaKey: event.metaKey,
102
+ repeat: event.repeat,
103
+ }));
104
+ } })), 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))))));
79
105
  }
80
106
  static get is() { return "dda-textarea"; }
81
107
  static get properties() {
@@ -451,8 +477,8 @@ export class DdaTextarea {
451
477
  "text": ""
452
478
  },
453
479
  "complexType": {
454
- "original": "{ name: string; value: string }",
455
- "resolved": "{ name: string; value: string; }",
480
+ "original": "any",
481
+ "resolved": "any",
456
482
  "references": {}
457
483
  }
458
484
  }];