q2-tecton-elements 1.26.0 → 1.27.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.
- package/dist/cjs/{index-d62f5a7e.js → index-ffd19146.js} +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_2.cjs.entry.js +4 -4
- package/dist/cjs/q2-btn_2.cjs.entry.js +7 -5
- package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +6 -5
- package/dist/cjs/q2-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +2 -2
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup_2.cjs.entry.js +2 -2
- package/dist/cjs/q2-option-list_2.cjs.entry.js +66 -25
- package/dist/cjs/q2-pagination.cjs.entry.js +18 -16
- package/dist/cjs/q2-pill.cjs.entry.js +82 -14
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +24 -19
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +11 -4
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/collection/components/q2-avatar/styles.css +22 -14
- package/dist/collection/components/q2-btn/index.js +22 -3
- package/dist/collection/components/q2-btn/styles.css +26 -11
- package/dist/collection/components/q2-calendar/index.js +1 -1
- package/dist/collection/components/q2-calendar/styles.css +7 -1
- package/dist/collection/components/q2-carousel-pane/index.js +15 -6
- package/dist/collection/components/q2-checkbox/index.js +6 -3
- package/dist/collection/components/q2-checkbox/styles.css +1 -0
- package/dist/collection/components/q2-checkbox-group/index.js +5 -4
- package/dist/collection/components/q2-dropdown/index.js +1 -1
- package/dist/collection/components/q2-input/index.js +6 -6
- package/dist/collection/components/q2-input/styles.css +4 -0
- package/dist/collection/components/q2-message/index.js +1 -1
- package/dist/collection/components/q2-option/index.js +21 -9
- package/dist/collection/components/q2-option-list/index.js +55 -14
- package/dist/collection/components/q2-pagination/index.js +16 -14
- package/dist/collection/components/q2-pagination/styles.css +5 -0
- package/dist/collection/components/q2-pill/index.js +84 -14
- package/dist/collection/components/q2-popover/index.js +10 -10
- package/dist/collection/components/q2-radio/index.js +20 -8
- package/dist/collection/components/q2-radio/styles.css +2 -0
- package/dist/collection/components/q2-select/index.js +40 -17
- package/dist/collection/components/q2-select/styles.css +41 -3
- package/dist/collection/components/q2-stepper/index.js +5 -2
- package/dist/collection/components/q2-stepper-pane/index.js +5 -2
- package/dist/collection/components/q2-tab-pane/index.js +20 -8
- package/dist/collection/components/q2-tag/index.js +10 -3
- package/dist/collection/utils/index.js +1 -1
- package/dist/components/index10.js +1 -1
- package/dist/components/index12.js +1 -1
- package/dist/components/index13.js +55 -14
- package/dist/components/index14.js +10 -10
- package/dist/components/index15.js +2 -2
- package/dist/components/index3.js +1 -1
- package/dist/components/index5.js +7 -4
- package/dist/components/index8.js +4 -4
- package/dist/components/q2-calendar.js +2 -2
- package/dist/components/q2-checkbox-group.js +5 -4
- package/dist/components/q2-checkbox.js +2 -2
- package/dist/components/q2-dropdown.js +1 -1
- package/dist/components/q2-pagination.js +18 -16
- package/dist/components/q2-pill.js +82 -14
- package/dist/components/q2-radio.js +1 -1
- package/dist/components/q2-select.js +25 -19
- package/dist/components/q2-tag.js +10 -3
- package/dist/docs.json +145 -46
- package/dist/esm/{index-5040cd84.js → index-a0cc60e3.js} +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-avatar.entry.js +1 -1
- package/dist/esm/q2-badge_2.entry.js +4 -4
- package/dist/esm/q2-btn_2.entry.js +7 -5
- package/dist/esm/q2-calendar.entry.js +3 -3
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +6 -5
- package/dist/esm/q2-checkbox.entry.js +3 -3
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +2 -2
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +2 -2
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup_2.entry.js +2 -2
- package/dist/esm/q2-option-list_2.entry.js +66 -25
- package/dist/esm/q2-pagination.entry.js +18 -16
- package/dist/esm/q2-pill.entry.js +82 -14
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +2 -2
- package/dist/esm/q2-section.entry.js +1 -1
- package/dist/esm/q2-select.entry.js +24 -19
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +11 -4
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/p-04b9a7ee.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-c506314d.entry.js → p-05bdc0aa.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-f5c9ef75.entry.js → p-0b8943da.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-ece7a1ca.entry.js → p-12e65423.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-f3096cce.entry.js → p-1d28c600.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-839ef27d.js → p-2453cd92.js} +1 -1
- package/dist/q2-tecton-elements/{p-a1f91d8c.entry.js → p-256e5161.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-5878b8bd.entry.js → p-25ea01d3.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-2b8a8981.entry.js +1 -0
- package/dist/q2-tecton-elements/p-396fd275.entry.js +1 -0
- package/dist/q2-tecton-elements/p-3dca7465.entry.js +1 -0
- package/dist/q2-tecton-elements/p-414ca427.entry.js +1 -0
- package/dist/q2-tecton-elements/p-521c9085.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-bfaff58b.entry.js → p-5a670d93.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-72374b8e.entry.js +1 -0
- package/dist/q2-tecton-elements/p-8545c3cb.entry.js +1 -0
- package/dist/q2-tecton-elements/p-85e780b2.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-18808c27.entry.js → p-869e899c.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-8e652d59.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-74ac19cd.entry.js → p-9292bd80.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-fbe8b4c0.entry.js → p-9367dc29.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-bc8a507b.entry.js → p-949fa312.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-a8258fb1.entry.js → p-a298cbfb.entry.js} +1 -1
- package/dist/q2-tecton-elements/p-aae8b9fc.entry.js +1 -0
- package/dist/q2-tecton-elements/{p-bea1fda1.entry.js → p-ac6dd5b1.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-8b5639a1.entry.js → p-bafb5e70.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-a411f2f3.entry.js → p-be0d3bfe.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-a7679912.entry.js → p-ce67d77a.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-1cc42a02.entry.js → p-d06d752f.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-7b124d8c.entry.js → p-d69cb7d1.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-bda877fe.entry.js → p-edcf49fd.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-8954cc63.entry.js → p-ef657f8f.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-0cbad3bc.entry.js → p-f3e4bb52.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-7d35c1a1.entry.js → p-fb768d19.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-87cecc80.entry.js → p-fcad1609.entry.js} +1 -1
- package/dist/q2-tecton-elements/{p-7eca74d4.entry.js → p-fe3625ad.entry.js} +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/test/helpers.js +1 -1
- package/dist/types/components/q2-btn/index.d.ts +2 -0
- package/dist/types/components/q2-carousel-pane/index.d.ts +12 -0
- package/dist/types/components/q2-checkbox/index.d.ts +4 -0
- package/dist/types/components/q2-checkbox-group/index.d.ts +1 -1
- package/dist/types/components/q2-input/index.d.ts +1 -1
- package/dist/types/components/q2-option/index.d.ts +16 -0
- package/dist/types/components/q2-option-list/index.d.ts +6 -0
- package/dist/types/components/q2-pagination/index.d.ts +1 -1
- package/dist/types/components/q2-pill/index.d.ts +6 -2
- package/dist/types/components/q2-radio/index.d.ts +16 -0
- package/dist/types/components/q2-select/index.d.ts +3 -2
- package/dist/types/components/q2-stepper/index.d.ts +4 -0
- package/dist/types/components/q2-stepper-pane/index.d.ts +4 -0
- package/dist/types/components/q2-tab-pane/index.d.ts +16 -0
- package/dist/types/components/q2-tag/index.d.ts +1 -1
- package/dist/types/components.d.ts +148 -0
- package/package.json +3 -3
- package/dist/q2-tecton-elements/p-09639e95.entry.js +0 -1
- package/dist/q2-tecton-elements/p-0b82891e.entry.js +0 -1
- package/dist/q2-tecton-elements/p-224d3c31.entry.js +0 -1
- package/dist/q2-tecton-elements/p-4734a577.entry.js +0 -1
- package/dist/q2-tecton-elements/p-55d192b3.entry.js +0 -1
- package/dist/q2-tecton-elements/p-721d0aee.entry.js +0 -1
- package/dist/q2-tecton-elements/p-73643653.entry.js +0 -1
- package/dist/q2-tecton-elements/p-8d703466.entry.js +0 -1
- package/dist/q2-tecton-elements/p-aafb9537.entry.js +0 -1
- package/dist/q2-tecton-elements/p-b8420bfe.entry.js +0 -1
- package/dist/q2-tecton-elements/p-e4aa271e.entry.js +0 -1
|
@@ -17,12 +17,30 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
17
17
|
var _a;
|
|
18
18
|
this.scheduledAfterRender = [];
|
|
19
19
|
/// Helpers ///
|
|
20
|
+
this.syncValueProperties = () => {
|
|
21
|
+
const { value, selectedOptions } = this;
|
|
22
|
+
if (!!(selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.length))
|
|
23
|
+
this.selectedOptionsChanged(selectedOptions);
|
|
24
|
+
else if (value)
|
|
25
|
+
this.valueChanged(value);
|
|
26
|
+
};
|
|
27
|
+
this.getOption = async (value) => {
|
|
28
|
+
if (this.optionList) {
|
|
29
|
+
const options = await this.optionList.getOptions();
|
|
30
|
+
return options.find(option => option.value === value);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return this.hostElement.querySelector(`q2-option[value="${value}"]`);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
20
36
|
this.updateSelectedOptionElements = async () => {
|
|
21
37
|
var _a;
|
|
22
38
|
const { selectedOptions } = this;
|
|
23
39
|
const selectedValues = selectedOptions.map(option => option.value);
|
|
24
40
|
const options = await ((_a = this.optionList) === null || _a === void 0 ? void 0 : _a.getOptions());
|
|
25
|
-
|
|
41
|
+
if (this.hasOptions)
|
|
42
|
+
this.active = !!selectedValues.length;
|
|
43
|
+
this.selectedOptionElements = (options === null || options === void 0 ? void 0 : options.filter(option => selectedValues.includes(option.value))) || [];
|
|
26
44
|
};
|
|
27
45
|
this.determineHasOptions = () => {
|
|
28
46
|
const hasOptions = !!this.hostElement.querySelectorAll('q2-option').length;
|
|
@@ -30,6 +48,7 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
30
48
|
};
|
|
31
49
|
this.clearSelectedOptions = () => {
|
|
32
50
|
this.selectedOptions = [];
|
|
51
|
+
this.value = null;
|
|
33
52
|
this.active = false;
|
|
34
53
|
this.open = false;
|
|
35
54
|
this.primaryBtn.focus();
|
|
@@ -62,9 +81,10 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
62
81
|
}
|
|
63
82
|
};
|
|
64
83
|
this.handleKeydown = async (event) => {
|
|
65
|
-
event.
|
|
66
|
-
if (!this.hasOptions || this.disabled)
|
|
84
|
+
const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';
|
|
85
|
+
if (!this.hasOptions || this.disabled || isTabMetaOrCtrl)
|
|
67
86
|
return;
|
|
87
|
+
event.preventDefault();
|
|
68
88
|
if (shouldShowActionSheet(this, event)) {
|
|
69
89
|
this.executeActionSheet(event);
|
|
70
90
|
}
|
|
@@ -72,6 +92,13 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
72
92
|
this.optionList.handleExternalKeydown(event);
|
|
73
93
|
}
|
|
74
94
|
};
|
|
95
|
+
this.handleButtonFocusout = async (event) => {
|
|
96
|
+
var _a;
|
|
97
|
+
const relatedTarget = event.relatedTarget;
|
|
98
|
+
if ((_a = (relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.tagName) === 'Q2-OPTION') !== null && _a !== void 0 ? _a : false)
|
|
99
|
+
return;
|
|
100
|
+
this.open = false;
|
|
101
|
+
};
|
|
75
102
|
this.handleChange = event => {
|
|
76
103
|
event.stopPropagation();
|
|
77
104
|
if (!this.hasOptions)
|
|
@@ -86,7 +113,10 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
86
113
|
const target = event.target;
|
|
87
114
|
if (target.localName === 'click-elsewhere') {
|
|
88
115
|
event.stopPropagation();
|
|
89
|
-
|
|
116
|
+
const { popoverElement } = this;
|
|
117
|
+
if (!popoverElement)
|
|
118
|
+
return;
|
|
119
|
+
popoverElement.open = false;
|
|
90
120
|
}
|
|
91
121
|
};
|
|
92
122
|
this.hoist = !!((_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.useActionSheets);
|
|
@@ -112,6 +142,7 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
112
142
|
}
|
|
113
143
|
componentDidLoad() {
|
|
114
144
|
overrideFocus(this.hostElement);
|
|
145
|
+
this.syncValueProperties();
|
|
115
146
|
}
|
|
116
147
|
componentDidRender() {
|
|
117
148
|
this.scheduledAfterRender.forEach(fn => fn());
|
|
@@ -141,12 +172,22 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
141
172
|
const result = await showActionSheetList(this, event);
|
|
142
173
|
this.handleSelectionChanges(result);
|
|
143
174
|
}
|
|
144
|
-
handleSelectionChanges(changeDetails) {
|
|
175
|
+
async handleSelectionChanges(changeDetails) {
|
|
176
|
+
const { multiple } = this;
|
|
145
177
|
const { value = '', values = [] } = changeDetails;
|
|
146
|
-
const isActive = !!values.length;
|
|
178
|
+
const isActive = multiple ? !!values.length : !!value;
|
|
147
179
|
if (!this.hostElement.onchange) {
|
|
148
|
-
|
|
149
|
-
|
|
180
|
+
if (multiple) {
|
|
181
|
+
this.selectedOptions = values;
|
|
182
|
+
this.value = undefined;
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
const selectedOption = await this.getOption(value);
|
|
186
|
+
this.selectedOptions = selectedOption
|
|
187
|
+
? [{ value: selectedOption.value, display: selectedOption.display }]
|
|
188
|
+
: undefined;
|
|
189
|
+
this.value = selectedOption.value || undefined;
|
|
190
|
+
}
|
|
150
191
|
}
|
|
151
192
|
this.change.emit({
|
|
152
193
|
value,
|
|
@@ -155,8 +196,35 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
155
196
|
});
|
|
156
197
|
}
|
|
157
198
|
/// Watchers ///
|
|
158
|
-
|
|
159
|
-
|
|
199
|
+
async valueChanged(newValue) {
|
|
200
|
+
var _a, _b;
|
|
201
|
+
const { multiple, selectedOptions } = this;
|
|
202
|
+
const firstValue = (_b = (_a = selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
203
|
+
if (multiple)
|
|
204
|
+
return;
|
|
205
|
+
if (newValue === firstValue)
|
|
206
|
+
this.updateSelectedOptionElements();
|
|
207
|
+
else {
|
|
208
|
+
const selectedOption = await this.getOption(newValue);
|
|
209
|
+
const { value, display } = selectedOption || { value: newValue, display: null };
|
|
210
|
+
this.selectedOptions = [{ value, display }];
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
selectedOptionsChanged(newValue) {
|
|
214
|
+
var _a, _b;
|
|
215
|
+
const { multiple } = this;
|
|
216
|
+
const firstValue = (_b = (_a = newValue === null || newValue === void 0 ? void 0 : newValue[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
|
|
217
|
+
if (multiple) {
|
|
218
|
+
if (this.value)
|
|
219
|
+
this.value = null;
|
|
220
|
+
this.updateSelectedOptionElements();
|
|
221
|
+
}
|
|
222
|
+
else if (this.value === firstValue) {
|
|
223
|
+
this.updateSelectedOptionElements();
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
this.value = firstValue;
|
|
227
|
+
}
|
|
160
228
|
}
|
|
161
229
|
/// Listeners ///
|
|
162
230
|
delegateFocus(event) {
|
|
@@ -170,7 +238,6 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
170
238
|
if (open)
|
|
171
239
|
return;
|
|
172
240
|
this.optionList.setActiveElement(null);
|
|
173
|
-
this.primaryBtn.focus();
|
|
174
241
|
}
|
|
175
242
|
/// DOM ///
|
|
176
243
|
generateIcon() {
|
|
@@ -187,11 +254,12 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
187
254
|
wrapperClassNames.push('has-icon');
|
|
188
255
|
if (hasOptions)
|
|
189
256
|
wrapperClassNames.push('has-options');
|
|
190
|
-
return (h("click-elsewhere", { onChange: this.onClickElsewhere }, h("div", { class: wrapperClassNames.join(' ') }, h("div", { class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { class: "btn-primary", "test-id": "btn-control", type: "button", ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, disabled: this.disabled, "aria-selected": !hasOptions && active ? 'true' : 'false', "aria-roledescription": !hasOptions && 'filter', "aria-controls": hasOptions && 'option-list', "aria-haspopup": hasOptions && 'true', "aria-expanded": (hasOptions && `${!!open}`) || undefined, "aria-label": this.maxLength && this.buttonContent }, this.truncatedButtonContent, !hasOptions && active && h("span", { class: "sr" }, "(", loc('tecton.element.pill.active'), ")"))), this.generateIcon()), this.hasOptions && (h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: "right" }, h("q2-option-list", { role: "menu", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements() }, h("slot", null))))));
|
|
257
|
+
return (h("click-elsewhere", { onChange: this.onClickElsewhere }, h("div", { class: wrapperClassNames.join(' ') }, h("div", { class: "btn-height-wrapper", ref: el => (this.primaryBtnWrapper = el), onClick: this.handleWrapperClick, tabIndex: -1 }, h("button", { class: "btn-primary", "test-id": "btn-control", type: "button", ref: el => (this.primaryBtn = el), onClick: this.handleClick, onKeyDown: this.handleKeydown, onFocusout: this.handleButtonFocusout, disabled: this.disabled, "aria-selected": !hasOptions && active ? 'true' : 'false', "aria-roledescription": !hasOptions && 'filter', "aria-controls": hasOptions && 'option-list', "aria-haspopup": hasOptions && 'true', "aria-expanded": (hasOptions && `${!!open}`) || undefined, "aria-label": this.maxLength && this.buttonContent }, this.truncatedButtonContent, !hasOptions && active && h("span", { class: "sr" }, "(", loc('tecton.element.pill.active'), ")"))), this.generateIcon()), this.hasOptions && (h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: this.primaryBtn, open: this.open, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: "right" }, h("q2-option-list", { role: "menu", ref: el => (this.optionList = el), id: "option-list", onChange: this.handleChange, multiple: this.multiple, selectedOptions: this.selectedOptions, onReady: () => this.updateSelectedOptionElements() }, h("slot", null))))));
|
|
191
258
|
}
|
|
192
259
|
get hostElement() { return this; }
|
|
193
260
|
static get watchers() { return {
|
|
194
|
-
"
|
|
261
|
+
"value": ["valueChanged"],
|
|
262
|
+
"selectedOptions": ["selectedOptionsChanged"]
|
|
195
263
|
}; }
|
|
196
264
|
static get style() { return stylesCss; }
|
|
197
265
|
}, [1, "q2-pill", {
|
|
@@ -202,7 +270,7 @@ const Q2Pill$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
202
270
|
"multiple": [516],
|
|
203
271
|
"maxLength": [514, "max-length"],
|
|
204
272
|
"label": [513],
|
|
205
|
-
"value": [
|
|
273
|
+
"value": [1537],
|
|
206
274
|
"theme": [513],
|
|
207
275
|
"selectedOptions": [1040],
|
|
208
276
|
"popoverMinHeight": [2, "popover-min-height"],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
2
|
import { c as createGuid, h as handleAriaLabel, o as overrideFocus, l as loc } from './index15.js';
|
|
3
3
|
|
|
4
|
-
const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.radio-container{margin-top:var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px));margin-right:var(--tct-radio-margin-horizontal, var(--tct-scale-3, 15px));margin-bottom:var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px))}.radio-container label[for]{font-weight:var(--tct-radio-font-weight, var(--tct-checkbox-font-weight, 400));align-items:center;cursor:pointer;margin-right:1rem;display:grid;grid-template-columns:18px 1fr;gap:var(--tct-scale-1, var(--app-scale-1x, 5px))}.radio-container svg{border-radius:50%;transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));outline:0;width:100%}.radio-container circle:nth-child(1){stroke-width:2;stroke:var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494))}.radio-container input:focus+label svg{box-shadow:var(--const-double-focus-ring)}.radio-container input:focus+label circle:nth-child(1){stroke:var(--tct-radio-focus-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))}.radio-container input:checked+label circle:nth-child(1){background-color:var(--tct-radio-checked-bg, transparent);stroke:var(--tct-radio-checked-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)))}.radio-container input:checked+label .label-content{font-weight:var(--tct-checkbox-selected-font-weight, 600);letter-spacing:var(--tct-checkbox-selected-letter-spacing, 0.25)}.radio-container input:checked+label circle:nth-child(2){fill:var(--tct-radio-checked-fill, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))}.radio-tile{flex-basis:100px;flex-grow:0;flex-wrap:wrap}.radio-tile label[for]{align-items:center;border-radius:3px;border:2px solid var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494));cursor:pointer;display:block;padding:10px;position:relative;text-align:center;transition:border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease));white-space:nowrap}.radio-tile input:focus+label,.radio-tile input:focus:checked+label{border-color:var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)));box-shadow:var(--const-double-focus-ring), var(--tct-global-focus, 0 0 0 2px #33b4ff)}.radio-tile input:checked+label{border-color:var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)));box-shadow:inset 0 0 0 2px #ffffff}.radio-tile input:checked+label:after{border-bottom-width:3px;border-bottom:5px solid var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)));border-left-width:5px;border-left:8px solid transparent;border-right-width:5px;border-right:8px solid transparent;bottom:0;content:\"\";height:0;left:50%;margin-left:-5px;position:absolute;width:0}input:disabled+label[for]{cursor:not-allowed;opacity:var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))}";
|
|
4
|
+
const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:block}.radio-container{margin-top:var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px));margin-right:var(--tct-radio-margin-horizontal, var(--tct-scale-3, 15px));margin-bottom:var(--tct-radio-margin-vertical, var(--tct-scale-2, 10px))}.radio-container label[for]{color:var(--tct-radio-label-color);font-weight:var(--tct-radio-font-weight, var(--tct-checkbox-font-weight, 400));align-items:center;cursor:pointer;margin-right:1rem;display:grid;grid-template-columns:18px 1fr;gap:var(--tct-scale-1, var(--app-scale-1x, 5px))}.radio-container svg{border-radius:50%;transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));outline:0;width:100%}.radio-container circle:nth-child(1){stroke-width:2;stroke:var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494))}.radio-container input:focus+label svg{box-shadow:var(--const-double-focus-ring)}.radio-container input:focus+label circle:nth-child(1){stroke:var(--tct-radio-focus-stroke-color, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))}.radio-container input:checked+label circle:nth-child(1){background-color:var(--tct-radio-checked-bg, transparent);stroke:var(--tct-radio-checked-stroke-color, var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494)))}.radio-container input:checked+label .label-content{font-weight:var(--tct-checkbox-selected-font-weight, 600);letter-spacing:var(--tct-checkbox-selected-letter-spacing, 0.25)}.radio-container input:checked+label circle:nth-child(2){fill:var(--tct-radio-checked-fill, var(--tct-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)))}.radio-tile{flex-basis:100px;flex-grow:0;flex-wrap:wrap}.radio-tile label[for]{color:var(--tct-radio-label-color);align-items:center;border-radius:3px;border:2px solid var(--tct-radio-stroke-color, var(--t-a11y-gray-color-AA, #949494));cursor:pointer;display:block;padding:10px;position:relative;text-align:center;transition:border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease));white-space:nowrap}.radio-tile input:focus+label,.radio-tile input:focus:checked+label{border-color:var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)));box-shadow:var(--const-double-focus-ring), var(--tct-global-focus, 0 0 0 2px #33b4ff)}.radio-tile input:checked+label{border-color:var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)));box-shadow:inset 0 0 0 2px #ffffff}.radio-tile input:checked+label:after{border-bottom-width:3px;border-bottom:5px solid var(--tct-checkbox-check-stroke-color, var(--t-checkbox-check-stroke-color, var(--t-checkbox-fill, #2e2e2e)));border-left-width:5px;border-left:8px solid transparent;border-right-width:5px;border-right:8px solid transparent;bottom:0;content:\"\";height:0;left:50%;margin-left:-5px;position:absolute;width:0}input:disabled+label[for]{cursor:not-allowed;opacity:var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))}";
|
|
5
5
|
|
|
6
6
|
const Q2Radio$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
7
|
constructor() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
|
-
import {
|
|
2
|
+
import { l as loc, h as handleAriaLabel, o as overrideFocus, d as isRelatedTargetWithinHost, a as isEventFromElement, e as isHostLosingFocus } from './index15.js';
|
|
3
3
|
import { s as shouldShowActionSheet, a as showActionSheetList } from './action-sheet.js';
|
|
4
4
|
import { d as defineCustomElement$9 } from './index2.js';
|
|
5
5
|
import { d as defineCustomElement$8 } from './index4.js';
|
|
@@ -10,7 +10,7 @@ import { d as defineCustomElement$4 } from './index9.js';
|
|
|
10
10
|
import { d as defineCustomElement$3 } from './index13.js';
|
|
11
11
|
import { d as defineCustomElement$2 } from './index14.js';
|
|
12
12
|
|
|
13
|
-
const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.q2-element-dropdown{display:none;position:absolute;background-color:var(--app-white, #ffffff);color:var(--t-text, #4d4d4d);left:0;width:100%;z-index:100;margin-top:1px;box-shadow:var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3));height:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity var(--app-tween-1, 0.2s ease);border-radius:var(--tct-dropdown-border-radius, --t-dropdown-border-radius, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.q2-element-dropdown::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.q2-element-dropdown::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown.sizable{display:block;height:auto}.dropdown-open .q2-element-dropdown{display:block;height:auto;overflow:auto;opacity:1;visibility:visible}:host([alignment=right]) .q2-element-dropdown{left:auto;right:0}:host([block]) q2-btn,:host([block]){display:block}:host{display:block;margin-top:var(--tct-select-margin-top, var(--app-scale-4, 30px));margin-bottom:var(--tct-select-margin-bottom, var(--app-scale-4, 30px))}.q2-select-container{position:relative;display:block}.q2-select-input{margin:0;--tct-input-min-height:var(--tct-select-input-min-height, var(--t-select-input-min-height));--tct-input-max-height:var(--tct-select-input-max-height, var(--t-select-input-max-height, none))}::slotted([slot=_selected-display]){width:100%;min-height:var(--comp-selected-display-height, 44px)}.custom-display-content{position:absolute;bottom:0;left:calc(var(--tct-scale-2, var(--app-scale-2x, 10px)) + 1px);height:44px;width:calc(100% - 34px - var(--tct-scale-3, var(--app-scale-3x, 15px)));overflow:hidden;cursor:pointer;transition:left var(--tct-tween-2, var(--app-tween-1, 0.2s ease))}.custom-display-content:not([hidden]){display:flex;align-items:center}.is-searchable.is-focused .custom-display-content,.is-searchable .custom-display-content:active{left:calc(var(--tct-scale-3, var(--app-scale-3x, 15px)) + 1px)}.has-error .custom-display-content{width:calc(100% - 68px - var(--tct-scale-3, var(--app-scale-3x, 15px)))}.multi-select-header{padding:var(--tct-scale-
|
|
13
|
+
const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.q2-element-dropdown{display:none;position:absolute;background-color:var(--app-white, #ffffff);color:var(--t-text, #4d4d4d);left:0;width:100%;z-index:100;margin-top:1px;box-shadow:var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3));height:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity var(--app-tween-1, 0.2s ease);border-radius:var(--tct-dropdown-border-radius, --t-dropdown-border-radius, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.q2-element-dropdown::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.q2-element-dropdown::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown.sizable{display:block;height:auto}.dropdown-open .q2-element-dropdown{display:block;height:auto;overflow:auto;opacity:1;visibility:visible}:host([alignment=right]) .q2-element-dropdown{left:auto;right:0}:host([block]) q2-btn,:host([block]){display:block}:host{display:block;margin-top:var(--tct-select-margin-top, var(--app-scale-4, 30px));margin-bottom:var(--tct-select-margin-bottom, var(--app-scale-4, 30px))}.q2-select-container{position:relative;display:block}.q2-select-input{margin:0;--tct-input-min-height:var(--tct-select-input-min-height, var(--t-select-input-min-height));--tct-input-max-height:var(--tct-select-input-max-height, var(--t-select-input-max-height, none))}::slotted([slot=_selected-display]){width:100%;min-height:var(--comp-selected-display-height, 44px)}.custom-display-content{position:absolute;bottom:0;left:calc(var(--tct-scale-2, var(--app-scale-2x, 10px)) + 1px);height:44px;width:calc(100% - 34px - var(--tct-scale-3, var(--app-scale-3x, 15px)));overflow:hidden;cursor:pointer;transition:left var(--tct-tween-2, var(--app-tween-1, 0.2s ease))}.custom-display-content:not([hidden]){display:flex;align-items:center}.is-searchable.is-focused .custom-display-content,.is-searchable .custom-display-content:active{left:calc(var(--tct-scale-3, var(--app-scale-3x, 15px)) + 1px)}.has-error .custom-display-content{width:calc(100% - 68px - var(--tct-scale-3, var(--app-scale-3x, 15px)))}.popover-content{display:flex;flex-direction:column-reverse}.multi-select-header{padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-2, var(--app-scale-2x, 10px));position:sticky;top:0;z-index:5;background:var(--app-white);display:flex;gap:var(--app-scale-2x, 10px);align-items:center}.multi-select-header fieldset{margin:0;padding:0;border:0;display:flex;gap:var(--app-scale-2x, 10px)}.multi-select-header legend{padding:0;float:left}.multi-select-header label{cursor:pointer;padding:var(--tct-select-multi-select-option-padding, var(--t-select-multi-select-option-padding, var(--tct-btn-badge-padding, var(--t-btn-badge-padding, 2px 5px))));font-size:var(--tct-select-multi-select-option-font-size, var(--t-select-multi-select-option-font-size, var(--tct-btn-badge-font-size, var(--t-btn-badge-font-size, inherit))));border-radius:var(--tct-select-multi-select-option-radius, var(--t-select-multi-select-option-radius, var(--tct-btn-badge-border-radius, var(--t-btn-badge-border-radius, var(--app-border-radius-1, 3px)))));background-color:var(--tct-select-multi-select-option-bg, var(--t-select-multi-select-option-bg, var(--tct-btn-badge-bg, var(--t-btn-badge-bg, transparent))));color:var(--tct-select-multi-select-option-color, var(--t-select-multi-select-option-color, var(--tct-btn-badge-font-color, var(--t-btn-badge-font-color, inherit))))}.multi-select-header label:hover{background-color:var(--tct-select-multi-select-option-hover-background-color, var(--t-select-multi-select-option-hover-background-color, var(--tct-btn-badge-hover-bg, var(--t-btn-badge-hover-bg, var(--tct-gray-14, var(--t-gray-14, var(--app-gray-l3, #f2f2f2)))))));color:var(--tct-select-multi-select-option-color, var(--t-select-multi-select-option-color, var(--tct-btn-badge-hover-font-color, var(--t-btn-badge-hover-font-color, var(--tct-gray-5, var(--t-gray-5, var(--app-gray-d2, #404040)))))))}.multi-select-header input:checked+label,.multi-select-header input:checked+label:enabled:hover{background-color:var(--tct-select-multi-select-option-active-background-color, var(--t-select-multi-select-option-active-background-color, var(--tct-btn-primary-bg, var(--t-btn-primary-bg, #2e2e2e))));color:var(--tct-select-multi-select-option-active-color, var(--t-select-multi-select-option-active-color, var(--tct-btn-primary-font-color, var(--t-btn-primary-font-color, var(--app-white, #ffffff)))))}.multi-select-header input:disabled+label{opacity:var(--tct-select-multi-select-option-active-color, var(--t-select-multi-select-option-active-color, var(--tct-btn-disabled-opacity, var(--t-btn-disabled-opacity, var(--app-disabled-opacity, 0.4)))));cursor:not-allowed}.multi-select-header input:focus+label{box-shadow:var(--const-double-focus-ring)}";
|
|
14
14
|
|
|
15
15
|
const Q2Select$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
16
16
|
constructor() {
|
|
@@ -21,12 +21,10 @@ const Q2Select$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
21
21
|
this.input = createEvent(this, "input", 7);
|
|
22
22
|
var _a;
|
|
23
23
|
this.scheduledAfterRender = [];
|
|
24
|
-
this.showSelectedOptions = (
|
|
25
|
-
event.stopPropagation();
|
|
24
|
+
this.showSelectedOptions = () => {
|
|
26
25
|
this.showSelected = true;
|
|
27
26
|
};
|
|
28
|
-
this.showAllOptions = (
|
|
29
|
-
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
|
27
|
+
this.showAllOptions = () => {
|
|
30
28
|
this.showSelected = false;
|
|
31
29
|
};
|
|
32
30
|
this.onMutationObserved = () => {
|
|
@@ -79,14 +77,14 @@ const Q2Select$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
79
77
|
this.optionList.handleExternalKeydown(event);
|
|
80
78
|
};
|
|
81
79
|
this.visibilityToggleKeyDown = (event) => {
|
|
82
|
-
const keysForOptionListToHandle = ['ArrowDown', 'ArrowUp'];
|
|
83
|
-
const keysThatTriggerClick = ['Enter', ' '];
|
|
84
80
|
const key = event.key;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
81
|
+
const isShiftTab = key === 'Tab' && event.shiftKey;
|
|
82
|
+
const isRadioControlKey = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(key);
|
|
83
|
+
if (isRadioControlKey)
|
|
84
|
+
event.stopPropagation();
|
|
85
|
+
if (isShiftTab) {
|
|
86
|
+
event.stopPropagation();
|
|
87
|
+
this.optionList.setDefaultActiveElement();
|
|
90
88
|
}
|
|
91
89
|
};
|
|
92
90
|
this.inputClickHandler = async (event) => {
|
|
@@ -141,6 +139,7 @@ const Q2Select$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
141
139
|
this.disabled = false;
|
|
142
140
|
this.readonly = false;
|
|
143
141
|
this.invalid = undefined;
|
|
142
|
+
this.listLabel = loc('tecton.element.select.listLabel');
|
|
144
143
|
this.errors = undefined;
|
|
145
144
|
this.multiple = false;
|
|
146
145
|
this.minRows = 3;
|
|
@@ -364,7 +363,7 @@ const Q2Select$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
364
363
|
this.change.emit({ value: multiple ? undefined : '', selectedOptions: multiple ? [] : undefined });
|
|
365
364
|
}
|
|
366
365
|
calculateMultiSelectSelectedDisplay() {
|
|
367
|
-
var _a;
|
|
366
|
+
var _a, _b, _c;
|
|
368
367
|
const { firstSelectedOptionElement, firstSelectedValue, multilineOptions } = this;
|
|
369
368
|
if (!firstSelectedValue)
|
|
370
369
|
return '';
|
|
@@ -374,11 +373,15 @@ const Q2Select$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
374
373
|
return this.searchText;
|
|
375
374
|
if (multilineOptions)
|
|
376
375
|
return '';
|
|
377
|
-
return (_a = firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.value) !== null &&
|
|
376
|
+
return ((_c = (_b = (_a = firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.value) !== null && _c !== void 0 ? _c : firstSelectedValue);
|
|
378
377
|
}
|
|
379
378
|
calculateSingleSelectSelectedDisplay() {
|
|
379
|
+
var _a;
|
|
380
380
|
const { firstSelectedOptionElement } = this;
|
|
381
|
-
return ((firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.display) && loc(firstSelectedOptionElement.display)) ||
|
|
381
|
+
return (((firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.display) && loc(firstSelectedOptionElement.display)) ||
|
|
382
|
+
((_a = firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
|
|
383
|
+
this.value ||
|
|
384
|
+
'');
|
|
382
385
|
}
|
|
383
386
|
openDropdownWithoutActiveElement() {
|
|
384
387
|
if (this.readonly || this.disabled)
|
|
@@ -470,16 +473,18 @@ const Q2Select$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
470
473
|
this.errors.length > 0 &&
|
|
471
474
|
this.errors.map(error => loc(error))) ||
|
|
472
475
|
(this.invalid && ['tecton.element.select.invalid']) ||
|
|
473
|
-
[], disabled: this.disabled, optional: this.optional, readonly: this.readonly, placeholder: this.placeholder || undefined, hideLabel: this.hideLabel, ariaExpanded: `${
|
|
476
|
+
[], disabled: this.disabled, optional: this.optional, readonly: this.readonly, placeholder: this.placeholder || undefined, hideLabel: this.hideLabel, ariaExpanded: `${this.open}`, ariaControls: "option-list", ariaHaspopup: "listbox", role: this.searchable ? 'combobox' : null, pseudo: showAsPseudo, "test-id": "toggleDropdown", "hide-messages": true, iconRight: "chevron-down", onClick: this.inputClickHandler, onInput: this.inputInputHandler, onKeyDown: this.inputKeydownHandler, onFocus: this.inputFocusHandler, onBlur: this.inputBlurHandler, onChange: this.inputChangeHandler, badgeValue: this.badgeValue, badgeTheme: this.inputFocused ? 'primary' : undefined }, this.renderCustomDisplay()), h("div", { class: "custom-display-content", hidden: !this.hasCustomDisplay || !!this.searchText, onClick: this.onCustomDisplayClick }, h("slot", { name: "q2-select-display" })), this.optionsDropdown()));
|
|
474
477
|
}
|
|
475
478
|
optionsDropdown() {
|
|
476
|
-
return (h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: this.innerInputField, open: this.open, minHeight: this.popoverMinHeight, direction: this.popDirection, onPopoverStateChanged: this.popoverStateChanged, block: true },
|
|
479
|
+
return (h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: this.innerInputField, open: this.open, minHeight: this.popoverMinHeight, direction: this.popDirection, onPopoverStateChanged: this.popoverStateChanged, block: true }, h("div", { class: "popover-content", tabindex: "-1" }, h("q2-option-list", { ref: el => (this.optionList = el), id: "option-list", "show-selected": this.showSelected, "aria-label": this.listLabel, multiple: this.multiple, selectedOptions: this.structuredSelectedOptions, onChange: this.onOptionListChange }, h("slot", null)), this.multiple && this.visibilityToggle())));
|
|
477
480
|
}
|
|
478
481
|
visibilityToggle() {
|
|
479
482
|
var _a, _b;
|
|
480
483
|
const selectedOptionsCount = (_b = (_a = this.selectedOptions) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
481
484
|
const { showSelected } = this;
|
|
482
|
-
return (h("div", { class: "multi-select-header", ref: el => (this.multiSelectHeader = el) }, h("
|
|
485
|
+
return (h("div", { class: "multi-select-header", ref: el => (this.multiSelectHeader = el) }, h("fieldset", null, h("legend", { "aria-label": loc('tecton.element.select.multiHeader.showing') }, loc('tecton.element.select.multiHeader.showing')), h("div", null, h("input", { class: "sr", type: "radio", id: "all", name: "viewDisplay", value: "all", checked: !showSelected, "aria-label": loc('tecton.element.select.multiHeader.allAriaLabel'), "test-id": "allOptionsButton", onClick: this.showAllOptions, onKeyDown: this.visibilityToggleKeyDown }), h("label", { htmlFor: "all" }, loc('tecton.element.select.multiHeader.all'))), h("div", null, h("input", { class: "sr", type: "radio", id: "selected", disabled: selectedOptionsCount === 0, name: "viewDisplay", value: "selected", "aria-label": loc('tecton.element.select.multiHeader.selectedAriaLabel', [
|
|
486
|
+
selectedOptionsCount,
|
|
487
|
+
]), checked: showSelected, "test-id": "selectedOptionsButton", onClick: this.showSelectedOptions, onKeyDown: this.visibilityToggleKeyDown }), h("label", { htmlFor: "selected" }, loc('tecton.element.select.multiHeader.selected', [selectedOptionsCount]))))));
|
|
483
488
|
}
|
|
484
489
|
get hostElement() { return this; }
|
|
485
490
|
static get watchers() { return {
|
|
@@ -498,6 +503,7 @@ const Q2Select$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
498
503
|
"disabled": [516],
|
|
499
504
|
"readonly": [516],
|
|
500
505
|
"invalid": [516],
|
|
506
|
+
"listLabel": [1, "list-label"],
|
|
501
507
|
"errors": [16],
|
|
502
508
|
"multiple": [516],
|
|
503
509
|
"minRows": [2, "min-rows"],
|
|
@@ -26,7 +26,10 @@ const Q2Tag$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
26
26
|
const target = event.target;
|
|
27
27
|
if (target.localName === 'click-elsewhere') {
|
|
28
28
|
event.stopPropagation();
|
|
29
|
-
|
|
29
|
+
const { popoverElement } = this;
|
|
30
|
+
if (!popoverElement)
|
|
31
|
+
return;
|
|
32
|
+
popoverElement.open = false;
|
|
30
33
|
}
|
|
31
34
|
};
|
|
32
35
|
this.handleChange = event => {
|
|
@@ -38,6 +41,7 @@ const Q2Tag$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
38
41
|
};
|
|
39
42
|
this.handleClick = async (event) => {
|
|
40
43
|
event.stopPropagation();
|
|
44
|
+
this.popoverElement.controlElement = this.dropdownBtn;
|
|
41
45
|
if (shouldShowActionSheet(this)) {
|
|
42
46
|
const { value } = await showActionSheetList(this, event);
|
|
43
47
|
this.click.emit({ value });
|
|
@@ -47,7 +51,11 @@ const Q2Tag$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
47
51
|
}
|
|
48
52
|
};
|
|
49
53
|
this.handleKeydown = async (event) => {
|
|
54
|
+
const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';
|
|
55
|
+
if (isTabMetaOrCtrl)
|
|
56
|
+
return;
|
|
50
57
|
event.preventDefault();
|
|
58
|
+
this.popoverElement.controlElement = this.dropdownBtn;
|
|
51
59
|
if (shouldShowActionSheet(this, event)) {
|
|
52
60
|
const { value } = await showActionSheetList(this, event);
|
|
53
61
|
this.click.emit({ value });
|
|
@@ -56,7 +64,7 @@ const Q2Tag$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
56
64
|
this.optionList.handleExternalKeydown(event);
|
|
57
65
|
}
|
|
58
66
|
};
|
|
59
|
-
this.handleButtonFocusout = (event) => {
|
|
67
|
+
this.handleButtonFocusout = async (event) => {
|
|
60
68
|
var _a;
|
|
61
69
|
const relatedTarget = event.relatedTarget;
|
|
62
70
|
if ((_a = (relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.tagName) === 'Q2-OPTION') !== null && _a !== void 0 ? _a : false)
|
|
@@ -102,7 +110,6 @@ const Q2Tag$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
102
110
|
if (open)
|
|
103
111
|
return;
|
|
104
112
|
this.optionList.setActiveElement(null);
|
|
105
|
-
this.dropdownBtn.focus();
|
|
106
113
|
}
|
|
107
114
|
/// DOM ///
|
|
108
115
|
render() {
|