@dubai-design-system/components-js 3.11.6 → 3.11.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dda-header-menu_3.cjs.entry.js +26 -8
- package/dist/cjs/dda-header-menu_3.cjs.entry.js.map +1 -1
- package/dist/cjs/dda-header.cjs.entry.js +5 -4
- package/dist/cjs/dda-header.cjs.entry.js.map +1 -1
- package/dist/cjs/dda-search-input.cjs.entry.js +27 -3
- package/dist/cjs/dda-search-input.cjs.entry.js.map +1 -1
- package/dist/cjs/dda-select.cjs.entry.js +36 -3
- package/dist/cjs/dda-select.cjs.entry.js.map +1 -1
- package/dist/cjs/dda-tabs.cjs.entry.js +18 -14
- package/dist/cjs/dda-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/dda.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/dda-header/dda-header.js +25 -4
- package/dist/collection/components/dda-header/dda-header.js.map +1 -1
- package/dist/collection/components/dda-header-menu/dda-header-menu.css +232 -188
- package/dist/collection/components/dda-header-menu/dda-header-menu.js +23 -4
- package/dist/collection/components/dda-header-menu/dda-header-menu.js.map +1 -1
- package/dist/collection/components/dda-input/dda-input.js +64 -5
- package/dist/collection/components/dda-input/dda-input.js.map +1 -1
- package/dist/collection/components/dda-search-input/dda-search-input.js +72 -3
- package/dist/collection/components/dda-search-input/dda-search-input.js.map +1 -1
- package/dist/collection/components/dda-select/dda-select.js +81 -3
- package/dist/collection/components/dda-select/dda-select.js.map +1 -1
- package/dist/collection/components/dda-tabs/dda-tabs.js +20 -16
- package/dist/collection/components/dda-tabs/dda-tabs.js.map +1 -1
- package/dist/components/dda-header-menu.js +1 -1
- package/dist/components/dda-header.js +8 -6
- package/dist/components/dda-header.js.map +1 -1
- package/dist/components/dda-input.js +1 -1
- package/dist/components/dda-search-input.js +32 -4
- package/dist/components/dda-search-input.js.map +1 -1
- package/dist/components/dda-select.js +41 -4
- package/dist/components/dda-select.js.map +1 -1
- package/dist/components/dda-tabs.js +18 -14
- package/dist/components/dda-tabs.js.map +1 -1
- package/dist/components/{p-93bcdccb.js → p-589645ea.js} +29 -7
- package/dist/components/p-589645ea.js.map +1 -0
- package/dist/components/{p-c30037a8.js → p-f0f752d2.js} +5 -4
- package/dist/components/p-f0f752d2.js.map +1 -0
- package/dist/dda/dda.esm.js +1 -1
- package/dist/dda/dda.esm.js.map +1 -1
- package/dist/dda/p-0e352b46.entry.js +2 -0
- package/dist/dda/p-0e352b46.entry.js.map +1 -0
- package/dist/dda/p-a4eeb3f8.entry.js +2 -0
- package/dist/dda/p-a4eeb3f8.entry.js.map +1 -0
- package/dist/dda/p-c034b0f0.entry.js +2 -0
- package/dist/dda/p-c034b0f0.entry.js.map +1 -0
- package/dist/dda/p-ce9b7aeb.entry.js +2 -0
- package/dist/dda/p-ce9b7aeb.entry.js.map +1 -0
- package/dist/dda/{p-1fad7e82.entry.js → p-e5783b18.entry.js} +2 -2
- package/dist/dda/p-e5783b18.entry.js.map +1 -0
- package/dist/esm/dda-header-menu_3.entry.js +26 -8
- package/dist/esm/dda-header-menu_3.entry.js.map +1 -1
- package/dist/esm/dda-header.entry.js +5 -4
- package/dist/esm/dda-header.entry.js.map +1 -1
- package/dist/esm/dda-search-input.entry.js +27 -3
- package/dist/esm/dda-search-input.entry.js.map +1 -1
- package/dist/esm/dda-select.entry.js +36 -3
- package/dist/esm/dda-select.entry.js.map +1 -1
- package/dist/esm/dda-tabs.entry.js +18 -14
- package/dist/esm/dda-tabs.entry.js.map +1 -1
- package/dist/esm/dda.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/dda-header/dda-header.d.ts +1 -0
- package/dist/types/components/dda-header-menu/dda-header-menu.d.ts +2 -0
- package/dist/types/components/dda-input/dda-input.d.ts +4 -0
- package/dist/types/components/dda-search-input/dda-search-input.d.ts +4 -0
- package/dist/types/components/dda-select/dda-select.d.ts +3 -0
- package/dist/types/components/dda-tabs/dda-tabs.d.ts +1 -2
- package/dist/types/components.d.ts +16 -4
- package/package.json +2 -2
- package/readme.md +9 -0
- package/www/build/dda.esm.js +1 -1
- package/www/build/dda.esm.js.map +1 -1
- package/www/build/p-0e352b46.entry.js +2 -0
- package/www/build/p-0e352b46.entry.js.map +1 -0
- package/www/build/p-a4eeb3f8.entry.js +2 -0
- package/www/build/p-a4eeb3f8.entry.js.map +1 -0
- package/www/build/p-c034b0f0.entry.js +2 -0
- package/www/build/p-c034b0f0.entry.js.map +1 -0
- package/www/build/p-ce9b7aeb.entry.js +2 -0
- package/www/build/p-ce9b7aeb.entry.js.map +1 -0
- package/www/build/{p-1fad7e82.entry.js → p-e5783b18.entry.js} +2 -2
- package/www/build/p-e5783b18.entry.js.map +1 -0
- package/dist/components/p-93bcdccb.js.map +0 -1
- package/dist/components/p-c30037a8.js.map +0 -1
- package/dist/dda/p-03e384da.entry.js +0 -2
- package/dist/dda/p-03e384da.entry.js.map +0 -1
- package/dist/dda/p-1fad7e82.entry.js.map +0 -1
- package/dist/dda/p-48f0e5e3.entry.js +0 -2
- package/dist/dda/p-48f0e5e3.entry.js.map +0 -1
- package/dist/dda/p-a5199deb.entry.js +0 -2
- package/dist/dda/p-a5199deb.entry.js.map +0 -1
- package/dist/dda/p-bb94fb97.entry.js +0 -2
- package/dist/dda/p-bb94fb97.entry.js.map +0 -1
- package/www/build/p-03e384da.entry.js +0 -2
- package/www/build/p-03e384da.entry.js.map +0 -1
- package/www/build/p-1fad7e82.entry.js.map +0 -1
- package/www/build/p-48f0e5e3.entry.js +0 -2
- package/www/build/p-48f0e5e3.entry.js.map +0 -1
- package/www/build/p-a5199deb.entry.js +0 -2
- package/www/build/p-a5199deb.entry.js.map +0 -1
- package/www/build/p-bb94fb97.entry.js +0 -2
- package/www/build/p-bb94fb97.entry.js.map +0 -1
|
@@ -10,6 +10,20 @@ export class DdaInput {
|
|
|
10
10
|
async getValue() {
|
|
11
11
|
return this.internalValue || this.value || '';
|
|
12
12
|
}
|
|
13
|
+
watchValue(newValue) {
|
|
14
|
+
this.internalValue = newValue || '';
|
|
15
|
+
}
|
|
16
|
+
async setValue(val) {
|
|
17
|
+
this.internalValue = val;
|
|
18
|
+
this.inputChanged.emit(val);
|
|
19
|
+
}
|
|
20
|
+
async reset() {
|
|
21
|
+
this.internalValue = '';
|
|
22
|
+
this.inputChanged.emit('');
|
|
23
|
+
}
|
|
24
|
+
componentWillLoad() {
|
|
25
|
+
this.internalValue = this.value || '';
|
|
26
|
+
}
|
|
13
27
|
componentDidLoad() {
|
|
14
28
|
// Hide date input placeholder
|
|
15
29
|
if (this.type === 'date') {
|
|
@@ -40,17 +54,18 @@ export class DdaInput {
|
|
|
40
54
|
this.type === 'disabled' ? 'dda-input-disabled' : '',
|
|
41
55
|
this.custom_class,
|
|
42
56
|
this.component_mode,
|
|
43
|
-
]
|
|
57
|
+
]
|
|
58
|
+
.filter(Boolean)
|
|
59
|
+
.join(' ');
|
|
44
60
|
const describedByIds = [];
|
|
45
61
|
if (this.helper_text)
|
|
46
62
|
describedByIds.push(`${this.validation_id}-helper`);
|
|
47
63
|
if (this.validation_type === 'error' && this.error_message)
|
|
48
64
|
describedByIds.push(`${this.validation_id}-error`);
|
|
49
|
-
return (h(Host, { key: '
|
|
50
|
-
h("label", { key: '1ea6a5732274284a5abedcbecc9ae6b1284b7cb4', htmlFor: this.input_id, class: "dda-input-label", id: `${this.input_id}-label` }, this.label), h("input", { key: 'a80e738b74bb6f5f65670ab40491a48028349176', 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 || this.value, "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) => {
|
|
65
|
+
return (h(Host, { key: '4e003cdf89adeda38b90792d6347e7eea6d66f38' }, h("div", { key: '592b69be98bbba7466d13eafe1a7d8f1aaa6dced', class: inputClass }, this.label && (h("label", { key: '2ade0edb9bf64d6afeb4c4fd108721f42cc88df8', htmlFor: this.input_id, class: "dda-input-label", id: `${this.input_id}-label` }, this.label)), h("input", { key: '03a91a4707af534a9fb20116e3af0f08e1ecfd27', 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 => {
|
|
51
66
|
this.internalValue = event.target.value;
|
|
52
|
-
this.inputChanged.emit(
|
|
53
|
-
}, onBlur:
|
|
67
|
+
this.inputChanged.emit(this.internalValue);
|
|
68
|
+
}, onBlur: event => {
|
|
54
69
|
const value = event.target.value.trim();
|
|
55
70
|
this.inputBlurred.emit({ name: this.input_name, value });
|
|
56
71
|
} }), 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))))));
|
|
@@ -443,9 +458,53 @@ export class DdaInput {
|
|
|
443
458
|
"text": "",
|
|
444
459
|
"tags": []
|
|
445
460
|
}
|
|
461
|
+
},
|
|
462
|
+
"setValue": {
|
|
463
|
+
"complexType": {
|
|
464
|
+
"signature": "(val: string) => Promise<void>",
|
|
465
|
+
"parameters": [{
|
|
466
|
+
"name": "val",
|
|
467
|
+
"type": "string",
|
|
468
|
+
"docs": ""
|
|
469
|
+
}],
|
|
470
|
+
"references": {
|
|
471
|
+
"Promise": {
|
|
472
|
+
"location": "global",
|
|
473
|
+
"id": "global::Promise"
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
"return": "Promise<void>"
|
|
477
|
+
},
|
|
478
|
+
"docs": {
|
|
479
|
+
"text": "",
|
|
480
|
+
"tags": []
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
"reset": {
|
|
484
|
+
"complexType": {
|
|
485
|
+
"signature": "() => Promise<void>",
|
|
486
|
+
"parameters": [],
|
|
487
|
+
"references": {
|
|
488
|
+
"Promise": {
|
|
489
|
+
"location": "global",
|
|
490
|
+
"id": "global::Promise"
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"return": "Promise<void>"
|
|
494
|
+
},
|
|
495
|
+
"docs": {
|
|
496
|
+
"text": "",
|
|
497
|
+
"tags": []
|
|
498
|
+
}
|
|
446
499
|
}
|
|
447
500
|
};
|
|
448
501
|
}
|
|
449
502
|
static get elementRef() { return "el"; }
|
|
503
|
+
static get watchers() {
|
|
504
|
+
return [{
|
|
505
|
+
"propName": "value",
|
|
506
|
+
"methodName": "watchValue"
|
|
507
|
+
}];
|
|
508
|
+
}
|
|
450
509
|
}
|
|
451
510
|
//# sourceMappingURL=dda-input.js.map
|
|
@@ -1 +1 @@
|
|
|
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,MAAM,eAAe,CAAC;
|
|
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() inputBlurred: EventEmitter<{ name: string; value: string }>;\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 }\r\n\r\n @Method()\r\n async reset() {\r\n this.internalValue = '';\r\n this.inputChanged.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(this.internalValue);\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 }}\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"]}
|
|
@@ -26,26 +26,47 @@ export class DdaSearchInput {
|
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
+
watchValue(newValue) {
|
|
30
|
+
this.internalValue = newValue || '';
|
|
31
|
+
this.hasInputValue = !!this.internalValue;
|
|
32
|
+
}
|
|
33
|
+
componentWillLoad() {
|
|
34
|
+
this.internalValue = this.value || '';
|
|
35
|
+
this.hasInputValue = !!this.internalValue;
|
|
36
|
+
}
|
|
29
37
|
clearInput() {
|
|
30
38
|
if (!this.input_id)
|
|
31
39
|
return;
|
|
32
40
|
const input = this.el.querySelector(`#${this.input_id}`);
|
|
33
41
|
if (input) {
|
|
34
42
|
input.value = '';
|
|
43
|
+
this.internalValue = '';
|
|
35
44
|
this.hasInputValue = false;
|
|
45
|
+
this.inputChanged.emit('');
|
|
36
46
|
input.focus();
|
|
37
47
|
}
|
|
38
48
|
}
|
|
49
|
+
async reset() {
|
|
50
|
+
this.internalValue = '';
|
|
51
|
+
this.hasInputValue = false;
|
|
52
|
+
this.inputChanged.emit('');
|
|
53
|
+
}
|
|
54
|
+
async setValue(val) {
|
|
55
|
+
this.internalValue = val;
|
|
56
|
+
this.hasInputValue = !!val;
|
|
57
|
+
this.inputChanged.emit(val);
|
|
58
|
+
}
|
|
39
59
|
render() {
|
|
40
|
-
return (h(Host, { key: '
|
|
60
|
+
return (h(Host, { key: '8e2933267f74785a68d453074f3d6045718cf044' }, h("div", { key: '7f859a72924bdac3b6f103f27e4ed9621890ab6e', 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: '1eb03f8bb8d73fd0d0e2d7e9408ee3d10aac1918', htmlFor: this.button_id, class: "dda-input-label" }, this.label)), h("div", { key: 'f976030698beb92a46ee0b6e08d01ab3685cae38', class: "dda-search-area dda-search-action" }, h("i", { key: '364af87bba19b438240386b426bed5df62b99043', class: "material-icons icon-left", "aria-hidden": "true" }, "search"), h("input", { key: '004b38c78f854b77c86444c9147bd97fa9b06a2c', 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,
|
|
41
61
|
// onInput={this.handleInput}
|
|
42
62
|
onKeyDown: this.handleKeyDown, onInput: event => {
|
|
43
63
|
this.internalValue = event.target.value;
|
|
44
|
-
this.
|
|
64
|
+
this.hasInputValue = !!this.internalValue;
|
|
65
|
+
this.inputChanged.emit(this.internalValue);
|
|
45
66
|
}, onBlur: event => {
|
|
46
67
|
const value = event.target.value.trim();
|
|
47
68
|
this.inputBlurred.emit({ name: this.search_input_name, value });
|
|
48
|
-
} }), h("div", { key: '
|
|
69
|
+
} }), h("div", { key: '27e50509e83c04e26711ed440ddb58c60d3e982f', class: "dda-search-btngroup" }, this.hasInputValue && (h("button", { key: '55c2c8d16f1b7e4fe498969585edb7cc5fadbc59', 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: '3adc8ec4ce88ad46ff82204f153aecd3ee88542d', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))), this.show_button && (h("button", { key: 'f9d2aaafebe32c7b7a680afb442bb2a9ad0801ca', 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: 'f380efa88b73bc5f57852141b1d37a726955480e', class: "dda-helper-text", id: this.validation_id }, this.helper_text)), this.error_message && (h("span", { key: 'dad05b7e291794f023ddd94e5352d2ce1a977c39', class: "dda-error-message", id: this.validation_id }, this.error_message)))));
|
|
49
70
|
}
|
|
50
71
|
static get is() { return "dda-search-input"; }
|
|
51
72
|
static get properties() {
|
|
@@ -491,6 +512,54 @@ export class DdaSearchInput {
|
|
|
491
512
|
}
|
|
492
513
|
}];
|
|
493
514
|
}
|
|
515
|
+
static get methods() {
|
|
516
|
+
return {
|
|
517
|
+
"reset": {
|
|
518
|
+
"complexType": {
|
|
519
|
+
"signature": "() => Promise<void>",
|
|
520
|
+
"parameters": [],
|
|
521
|
+
"references": {
|
|
522
|
+
"Promise": {
|
|
523
|
+
"location": "global",
|
|
524
|
+
"id": "global::Promise"
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
"return": "Promise<void>"
|
|
528
|
+
},
|
|
529
|
+
"docs": {
|
|
530
|
+
"text": "",
|
|
531
|
+
"tags": []
|
|
532
|
+
}
|
|
533
|
+
},
|
|
534
|
+
"setValue": {
|
|
535
|
+
"complexType": {
|
|
536
|
+
"signature": "(val: string) => Promise<void>",
|
|
537
|
+
"parameters": [{
|
|
538
|
+
"name": "val",
|
|
539
|
+
"type": "string",
|
|
540
|
+
"docs": ""
|
|
541
|
+
}],
|
|
542
|
+
"references": {
|
|
543
|
+
"Promise": {
|
|
544
|
+
"location": "global",
|
|
545
|
+
"id": "global::Promise"
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
"return": "Promise<void>"
|
|
549
|
+
},
|
|
550
|
+
"docs": {
|
|
551
|
+
"text": "",
|
|
552
|
+
"tags": []
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
};
|
|
556
|
+
}
|
|
494
557
|
static get elementRef() { return "el"; }
|
|
558
|
+
static get watchers() {
|
|
559
|
+
return [{
|
|
560
|
+
"propName": "value",
|
|
561
|
+
"methodName": "watchValue"
|
|
562
|
+
}];
|
|
563
|
+
}
|
|
495
564
|
}
|
|
496
565
|
//# sourceMappingURL=dda-search-input.js.map
|
|
@@ -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 } 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() buttonClicked: EventEmitter<any>;\r\n @Event() inputBlurred: EventEmitter<{ name: string; value: string }>;\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 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.hasInputValue = false;\r\n input.focus();\r\n }\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 || this.value}\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.inputChanged.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 }}\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() buttonClicked: EventEmitter<any>;\r\n @Event() inputBlurred: EventEmitter<{ name: string; value: string }>;\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 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 }\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 }\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(this.internalValue);\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 }}\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"]}
|
|
@@ -29,11 +29,14 @@ export class Ddaselect {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
componentWillLoad() {
|
|
32
|
-
const selectedOption = this.parsedOptions.find(
|
|
32
|
+
const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === this.selected || opt.text === this.selected);
|
|
33
33
|
if (selectedOption) {
|
|
34
34
|
this.selectedId = selectedOption.id;
|
|
35
35
|
this.selectedText = selectedOption.text;
|
|
36
36
|
}
|
|
37
|
+
if (this.selected) {
|
|
38
|
+
this.watchSelected(this.selected);
|
|
39
|
+
}
|
|
37
40
|
}
|
|
38
41
|
toggleSelect() {
|
|
39
42
|
if (!this.disabled) {
|
|
@@ -54,6 +57,33 @@ export class Ddaselect {
|
|
|
54
57
|
disconnectedCallback() {
|
|
55
58
|
document.removeEventListener('click', this.handleClickOutside);
|
|
56
59
|
}
|
|
60
|
+
async setSelected(value) {
|
|
61
|
+
const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === value.toString() || opt.text === value);
|
|
62
|
+
if (selectedOption) {
|
|
63
|
+
this.selectedId = selectedOption.id;
|
|
64
|
+
this.selectedText = selectedOption.text;
|
|
65
|
+
this.selected = selectedOption.id.toString();
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.selectedId = undefined;
|
|
69
|
+
this.selectedText = '';
|
|
70
|
+
this.selected = '';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async getSelectedText() {
|
|
74
|
+
return this.selectedText;
|
|
75
|
+
}
|
|
76
|
+
watchSelected(newVal) {
|
|
77
|
+
const selectedOption = this.parsedOptions.find(opt => opt.id.toString() === newVal || opt.text === newVal);
|
|
78
|
+
if (selectedOption) {
|
|
79
|
+
this.selectedId = selectedOption.id;
|
|
80
|
+
this.selectedText = selectedOption.text;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.selectedId = undefined;
|
|
84
|
+
this.selectedText = '';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
57
87
|
numberToWord(num) {
|
|
58
88
|
const words = ['One', 'Two', 'Three', 'Four', 'Five'];
|
|
59
89
|
return words[num - 1] || num.toString();
|
|
@@ -61,12 +91,12 @@ export class Ddaselect {
|
|
|
61
91
|
render() {
|
|
62
92
|
const labelId = `${this.button_id}-label`;
|
|
63
93
|
const valueId = `${this.button_id}-value`;
|
|
64
|
-
return (h(Host, { key: '
|
|
94
|
+
return (h(Host, { key: '1e9145a83c3ec0e092e6092cc378d785af8f30a2' }, h("div", { key: 'a659d4a87d4f1036406f23645ea64aab7ed80cf5', class: `
|
|
65
95
|
dda-input-container ${this.custom_class}
|
|
66
96
|
${this.component_mode}
|
|
67
97
|
${this.disabled ? 'dda-input-disabled' : ''}
|
|
68
98
|
dda-input-size-${this.size} dda-validation-${this.validation_type}
|
|
69
|
-
` }, this.label && (h("span", { key: '
|
|
99
|
+
` }, this.label && (h("span", { key: 'bcd9cfb16f9d04cdca2ee1a44ea66f895a537656', id: labelId, class: "dda-input-label" }, this.label)), h("div", { key: '829e7f6d1c45507a016b17b660ad4e6d5346d8f7', class: "dda-dropdown-container" }, h("button", { key: 'c5c0d1cbd79fdb8c311673277365553bbdc60362', 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: '69793468dac92b8cc3ac771cc69c75f8cd6ea49b', id: valueId, class: "dda-select-button-label" }, this.selectedText || this.placeholder), h("i", { key: '5e8e2a3ab27596547c0c04a73bcb4303108e5331', class: "material-icons", "aria-hidden": "true" }, this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down')), this.is_open && (h("div", { key: 'f2c17e59dabb323d80a44c29411518f0aeb8a231', 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))))));
|
|
70
100
|
}
|
|
71
101
|
static get is() { return "dda-select"; }
|
|
72
102
|
static get properties() {
|
|
@@ -461,6 +491,54 @@ export class Ddaselect {
|
|
|
461
491
|
}
|
|
462
492
|
}];
|
|
463
493
|
}
|
|
494
|
+
static get methods() {
|
|
495
|
+
return {
|
|
496
|
+
"setSelected": {
|
|
497
|
+
"complexType": {
|
|
498
|
+
"signature": "(value: string | number) => Promise<void>",
|
|
499
|
+
"parameters": [{
|
|
500
|
+
"name": "value",
|
|
501
|
+
"type": "string | number",
|
|
502
|
+
"docs": ""
|
|
503
|
+
}],
|
|
504
|
+
"references": {
|
|
505
|
+
"Promise": {
|
|
506
|
+
"location": "global",
|
|
507
|
+
"id": "global::Promise"
|
|
508
|
+
}
|
|
509
|
+
},
|
|
510
|
+
"return": "Promise<void>"
|
|
511
|
+
},
|
|
512
|
+
"docs": {
|
|
513
|
+
"text": "",
|
|
514
|
+
"tags": []
|
|
515
|
+
}
|
|
516
|
+
},
|
|
517
|
+
"getSelectedText": {
|
|
518
|
+
"complexType": {
|
|
519
|
+
"signature": "() => Promise<string>",
|
|
520
|
+
"parameters": [],
|
|
521
|
+
"references": {
|
|
522
|
+
"Promise": {
|
|
523
|
+
"location": "global",
|
|
524
|
+
"id": "global::Promise"
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
"return": "Promise<string>"
|
|
528
|
+
},
|
|
529
|
+
"docs": {
|
|
530
|
+
"text": "",
|
|
531
|
+
"tags": []
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
};
|
|
535
|
+
}
|
|
464
536
|
static get elementRef() { return "el"; }
|
|
537
|
+
static get watchers() {
|
|
538
|
+
return [{
|
|
539
|
+
"propName": "selected",
|
|
540
|
+
"methodName": "watchSelected"
|
|
541
|
+
}];
|
|
542
|
+
}
|
|
465
543
|
}
|
|
466
544
|
//# sourceMappingURL=dda-select.js.map
|
|
@@ -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 } 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() selectBlurred: EventEmitter<{ name: string; value: string }>;\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(\r\n (opt) => opt.id.toString() === this.selected || opt.text === this.selected\r\n );\r\n if (selectedOption) {\r\n this.selectedId = selectedOption.id;\r\n this.selectedText = selectedOption.text;\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 }\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 };\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 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\">{this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down'}</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 \r\n class=\"dda-error-message\" \r\n id={this.validation_id}\r\n role=\"alert\"\r\n >\r\n {this.error_message}\r\n </span>\r\n ) : (\r\n this.helper_text && (\r\n <span \r\n class=\"dda-helper-text\" \r\n id={this.validation_id}\r\n >\r\n {this.helper_text}\r\n </span>\r\n )\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() selectBlurred: EventEmitter<{ name: string; value: string }>;\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 }\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 };\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"]}
|
|
@@ -10,9 +10,9 @@ export class DdaTabs {
|
|
|
10
10
|
this.tab_icons = '["sentiment_satisfied", "sentiment_satisfied", "sentiment_satisfied"]';
|
|
11
11
|
this.tab_type = 'dda-horizontal-tab';
|
|
12
12
|
this.button_values = '["", "", ""]';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
13
|
+
// private tabhandler = (index) => {
|
|
14
|
+
// this.tabClick.emit(index);
|
|
15
|
+
// };
|
|
16
16
|
this.active_tab = 0;
|
|
17
17
|
}
|
|
18
18
|
get parsedButtonValues() {
|
|
@@ -20,8 +20,8 @@ export class DdaTabs {
|
|
|
20
20
|
return JSON.parse(this.button_values);
|
|
21
21
|
}
|
|
22
22
|
catch (error) {
|
|
23
|
-
console.error(
|
|
24
|
-
return [
|
|
23
|
+
console.error('Error parsing button_values:', error);
|
|
24
|
+
return ['', '', ''];
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
get parsedTabs() {
|
|
@@ -29,7 +29,7 @@ export class DdaTabs {
|
|
|
29
29
|
return JSON.parse(this.tab_texts); // Parse the string into an array
|
|
30
30
|
}
|
|
31
31
|
catch (error) {
|
|
32
|
-
console.error(
|
|
32
|
+
console.error('Error parsing tab_texts:', error);
|
|
33
33
|
return ['Tab 1', 'Tab 2', 'Tab 3']; // Fallback to default
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -38,8 +38,8 @@ export class DdaTabs {
|
|
|
38
38
|
return JSON.parse(this.tab_icons); // Parse the string into an array
|
|
39
39
|
}
|
|
40
40
|
catch (error) {
|
|
41
|
-
console.error(
|
|
42
|
-
return [
|
|
41
|
+
console.error('Error parsing tabicons:', error);
|
|
42
|
+
return ['sentiment_satisfied', 'sentiment_satisfied', 'sentiment_satisfied']; // Fallback to default
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
get parsedButtonIds() {
|
|
@@ -47,18 +47,22 @@ export class DdaTabs {
|
|
|
47
47
|
return JSON.parse(this.button_ids);
|
|
48
48
|
}
|
|
49
49
|
catch (error) {
|
|
50
|
-
console.error(
|
|
51
|
-
return [
|
|
50
|
+
console.error('Error parsing button_ids:', error);
|
|
51
|
+
return ['tab-btn-1', 'tab-btn-2', 'tab-btn-3'];
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
+
// setActiveTab(index: number) {
|
|
55
|
+
// this.active_tab = index;
|
|
56
|
+
// if (this.tabClick) {
|
|
57
|
+
// this.tabhandler(index);
|
|
58
|
+
// }
|
|
59
|
+
// }
|
|
54
60
|
setActiveTab(index) {
|
|
55
61
|
this.active_tab = index;
|
|
56
|
-
|
|
57
|
-
this.tabhandler(index);
|
|
58
|
-
}
|
|
62
|
+
this.tabClick.emit(index);
|
|
59
63
|
}
|
|
60
64
|
render() {
|
|
61
|
-
return (h(Host, { key: '
|
|
65
|
+
return (h(Host, { key: '9fba77b9c33c9077f5e8999a1ce8c46535df6302' }, h("div", { key: 'dc5d7ccde21eca695798d6e62c4bbcc117b19962', role: "tablist", "aria-label": "Tab Navigation", class: `dda-tabs-container ${this.hover_style} ${this.custom_class} ${this.component_mode} ${this.tab_type}` }, this.parsedTabs.map((title, index) => (h("button", { id: this.parsedButtonIds[index] || `tab-btn-${index + 1}`, name: this.button_name, "aria-label": title, type: "button", value: this.parsedButtonValues[index] || '', class: `dda-tab-item ${this.active_tab === index ? 'active' : ''}`, role: "tab", "aria-selected": this.active_tab === index ? 'true' : 'false', "aria-controls": `tab-btn-${index + 1}`, onClick: () => this.setActiveTab(index) }, this.type === 'text-icon' && (h("i", { class: `material-icons`, "aria-hidden": "true" }, this.parsedIcons[index] || '')), h("span", null, title)))))));
|
|
62
66
|
}
|
|
63
67
|
static get is() { return "dda-tabs"; }
|
|
64
68
|
static get originalStyleUrls() {
|
|
@@ -329,8 +333,8 @@ export class DdaTabs {
|
|
|
329
333
|
"text": ""
|
|
330
334
|
},
|
|
331
335
|
"complexType": {
|
|
332
|
-
"original": "
|
|
333
|
-
"resolved": "
|
|
336
|
+
"original": "number",
|
|
337
|
+
"resolved": "number",
|
|
334
338
|
"references": {}
|
|
335
339
|
}
|
|
336
340
|
}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dda-tabs.js","sourceRoot":"","sources":["../../../src/components/dda-tabs/dda-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAOrF,MAAM,OAAO,OAAO;IALpB;QAMU,SAAI,GAAyB,MAAM,CAAC;QACpC,gBAAW,GAA2F,iBAAiB,CAAC;QACxH,kBAAa,GAAY,KAAK,CAAC;QAC/B,iBAAY,GAAY,EAAE,CAAC;QAE3B,eAAU,GAAW,yCAAyC,CAAC,CAAC,kCAAkC;QAElG,cAAS,GAAW,6BAA6B,CAAC,CAAC,sBAAsB;QACzE,cAAS,GAAW,uEAAuE,CAAC;QAE5F,aAAQ,GAA8C,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"dda-tabs.js","sourceRoot":"","sources":["../../../src/components/dda-tabs/dda-tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, h, Host, Event, EventEmitter } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'dda-tabs',\r\n styleUrls: ['dda-tabs.css'],\r\n shadow: false,\r\n})\r\nexport class DdaTabs {\r\n @Prop() type: 'text' | 'text-icon' = 'text';\r\n @Prop() hover_style: 'dda-tab-default' | 'dda-tab-filed' | 'dda-tab-underline' | 'dda-tab-underline-filled' = 'dda-tab-default';\r\n @Prop() border_bottom: boolean = false;\r\n @Prop() custom_class?: string = '';\r\n @Prop() component_mode?: string;\r\n @Prop() button_ids: string = '[\"tab-btn-1\", \"tab-btn-2\", \"tab-btn-3\"]'; // New prop for dynamic button IDs\r\n @Prop() tab_value: string;\r\n @Prop() tab_texts: string = '[\"Tab 1\", \"Tab 2\", \"Tab 3\"]'; // Keep it as a string\r\n @Prop() tab_icons: string = '[\"sentiment_satisfied\", \"sentiment_satisfied\", \"sentiment_satisfied\"]';\r\n @Prop() button_name: string;\r\n @Prop() tab_type: 'dda-horizontal-tab' | 'dda-vertical-tab' = 'dda-horizontal-tab';\r\n @Event() tabClick: EventEmitter<number>;\r\n\r\n @Prop() button_values: string = '[\"\", \"\", \"\"]';\r\n\r\n // private tabhandler = (index) => {\r\n // this.tabClick.emit(index);\r\n // };\r\n\r\n @State() active_tab: number = 0;\r\n\r\n get parsedButtonValues() {\r\n try {\r\n return JSON.parse(this.button_values);\r\n } catch (error) {\r\n console.error('Error parsing button_values:', error);\r\n return ['', '', ''];\r\n }\r\n }\r\n\r\n get parsedTabs() {\r\n try {\r\n return JSON.parse(this.tab_texts); // Parse the string into an array\r\n } catch (error) {\r\n console.error('Error parsing tab_texts:', error);\r\n return ['Tab 1', 'Tab 2', 'Tab 3']; // Fallback to default\r\n }\r\n }\r\n\r\n get parsedIcons() {\r\n try {\r\n return JSON.parse(this.tab_icons); // Parse the string into an array\r\n } catch (error) {\r\n console.error('Error parsing tabicons:', error);\r\n return ['sentiment_satisfied', 'sentiment_satisfied', 'sentiment_satisfied']; // Fallback to default\r\n }\r\n }\r\n\r\n get parsedButtonIds() {\r\n try {\r\n return JSON.parse(this.button_ids);\r\n } catch (error) {\r\n console.error('Error parsing button_ids:', error);\r\n return ['tab-btn-1', 'tab-btn-2', 'tab-btn-3'];\r\n }\r\n }\r\n\r\n // setActiveTab(index: number) {\r\n // this.active_tab = index;\r\n // if (this.tabClick) {\r\n // this.tabhandler(index);\r\n // }\r\n // }\r\n setActiveTab(index: number) {\r\n this.active_tab = index;\r\n this.tabClick.emit(index);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div role=\"tablist\" aria-label=\"Tab Navigation\" class={`dda-tabs-container ${this.hover_style} ${this.custom_class} ${this.component_mode} ${this.tab_type}`}>\r\n {this.parsedTabs.map((title, index) => (\r\n <button\r\n id={this.parsedButtonIds[index] || `tab-btn-${index + 1}`}\r\n name={this.button_name}\r\n aria-label={title}\r\n type=\"button\"\r\n value={this.parsedButtonValues[index] || ''}\r\n class={`dda-tab-item ${this.active_tab === index ? 'active' : ''}`}\r\n role=\"tab\"\r\n aria-selected={this.active_tab === index ? 'true' : 'false'}\r\n aria-controls={`tab-btn-${index + 1}`}\r\n onClick={() => this.setActiveTab(index)}\r\n >\r\n {this.type === 'text-icon' && (\r\n <i class={`material-icons`} aria-hidden=\"true\">\r\n {this.parsedIcons[index] || ''}\r\n </i>\r\n )}\r\n <span>{title}</span>\r\n </button>\r\n ))}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|