wj-elements 0.7.7 → 0.8.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/animations.js +28 -51
- package/dist/animations.js.map +1 -1
- package/dist/base-path.js +19 -31
- package/dist/base-path.js.map +1 -1
- package/dist/custom-elements.json +11504 -11499
- package/dist/dark.css +1 -302
- package/dist/date.js +16 -36
- package/dist/date.js.map +1 -1
- package/dist/element-utils.js +20 -81
- package/dist/element-utils.js.map +1 -1
- package/dist/event.js +49 -165
- package/dist/event.js.map +1 -1
- package/dist/form-associated-element-BjeJn7j8.js +101 -0
- package/dist/{form-associated-element-DEQ4y-jn.js.map → form-associated-element-BjeJn7j8.js.map} +1 -1
- package/dist/icon-DmsqtDpL.js +102 -0
- package/dist/{icon-CReYMzAK.js.map → icon-DmsqtDpL.js.map} +1 -1
- package/dist/light.css +1 -731
- package/dist/localize.js +36 -111
- package/dist/localize.js.map +1 -1
- package/dist/packages/wje-accordion-item/accordion-item.element.d.ts +3 -2
- package/dist/permissions.js +14 -41
- package/dist/permissions.js.map +1 -1
- package/dist/popup.element-CbkhthPP.js +806 -0
- package/dist/{popup.element-CwXvVFK7.js.map → popup.element-CbkhthPP.js.map} +1 -1
- package/dist/router-links-CNsJ-elb.js +105 -0
- package/dist/{router-links-wjqCnncc.js.map → router-links-CNsJ-elb.js.map} +1 -1
- package/dist/skeleton.css +1 -197
- package/dist/styles.css +1 -866
- package/dist/universal-service.js +48 -109
- package/dist/universal-service.js.map +1 -1
- package/dist/utils.js +11 -18
- package/dist/utils.js.map +1 -1
- package/dist/web-types.json +760 -760
- package/dist/wje-accordion-item.js +33 -106
- package/dist/wje-accordion-item.js.map +1 -1
- package/dist/wje-accordion.js +19 -84
- package/dist/wje-accordion.js.map +1 -1
- package/dist/wje-animation.js +37 -4258
- package/dist/wje-animation.js.map +1 -1
- package/dist/wje-aside.js +9 -34
- package/dist/wje-aside.js.map +1 -1
- package/dist/wje-avatar.js +36 -126
- package/dist/wje-avatar.js.map +1 -1
- package/dist/wje-badge.js +10 -52
- package/dist/wje-badge.js.map +1 -1
- package/dist/wje-breadcrumb.js +205 -672
- package/dist/wje-breadcrumb.js.map +1 -1
- package/dist/wje-breadcrumbs.js +177 -633
- package/dist/wje-breadcrumbs.js.map +1 -1
- package/dist/wje-button-group.js +48 -153
- package/dist/wje-button-group.js.map +1 -1
- package/dist/wje-button.js +92 -413
- package/dist/wje-button.js.map +1 -1
- package/dist/wje-card-content.js +7 -30
- package/dist/wje-card-content.js.map +1 -1
- package/dist/wje-card-controls.js +7 -30
- package/dist/wje-card-controls.js.map +1 -1
- package/dist/wje-card-header.js +7 -30
- package/dist/wje-card-header.js.map +1 -1
- package/dist/wje-card-subtitle.js +7 -34
- package/dist/wje-card-subtitle.js.map +1 -1
- package/dist/wje-card-title.js +7 -34
- package/dist/wje-card-title.js.map +1 -1
- package/dist/wje-card.js +15 -71
- package/dist/wje-card.js.map +1 -1
- package/dist/wje-carousel-item.js +12 -56
- package/dist/wje-carousel-item.js.map +1 -1
- package/dist/wje-carousel.js +154 -509
- package/dist/wje-carousel.js.map +1 -1
- package/dist/wje-checkbox.js +50 -227
- package/dist/wje-checkbox.js.map +1 -1
- package/dist/wje-chip.js +43 -160
- package/dist/wje-chip.js.map +1 -1
- package/dist/wje-col.js +7 -20
- package/dist/wje-col.js.map +1 -1
- package/dist/wje-color-picker.js +445 -1464
- package/dist/wje-color-picker.js.map +1 -1
- package/dist/wje-container.js +9 -35
- package/dist/wje-container.js.map +1 -1
- package/dist/wje-copy-button.js +64 -204
- package/dist/wje-copy-button.js.map +1 -1
- package/dist/wje-dialog.js +85 -553
- package/dist/wje-dialog.js.map +1 -1
- package/dist/wje-divider.js +7 -34
- package/dist/wje-divider.js.map +1 -1
- package/dist/wje-dropdown.js +78 -305
- package/dist/wje-dropdown.js.map +1 -1
- package/dist/wje-element.js +191 -700
- package/dist/wje-element.js.map +1 -1
- package/dist/wje-file-upload-item.js +51 -156
- package/dist/wje-file-upload-item.js.map +1 -1
- package/dist/wje-file-upload.js +181 -619
- package/dist/wje-file-upload.js.map +1 -1
- package/dist/wje-footer.js +7 -31
- package/dist/wje-footer.js.map +1 -1
- package/dist/wje-form.js +7 -32
- package/dist/wje-form.js.map +1 -1
- package/dist/wje-format-digital.js +26 -118
- package/dist/wje-format-digital.js.map +1 -1
- package/dist/wje-grid.js +7 -33
- package/dist/wje-grid.js.map +1 -1
- package/dist/wje-header.js +9 -35
- package/dist/wje-header.js.map +1 -1
- package/dist/wje-icon-library.js +12 -18
- package/dist/wje-icon-library.js.map +1 -1
- package/dist/wje-icon-picker.js +65 -320
- package/dist/wje-icon-picker.js.map +1 -1
- package/dist/wje-icon.js +1 -1
- package/dist/wje-img-comparer.js +37 -114
- package/dist/wje-img-comparer.js.map +1 -1
- package/dist/wje-img.js +50 -198
- package/dist/wje-img.js.map +1 -1
- package/dist/wje-infinite-scroll.js +94 -346
- package/dist/wje-infinite-scroll.js.map +1 -1
- package/dist/wje-input-file.js +23 -84
- package/dist/wje-input-file.js.map +1 -1
- package/dist/wje-input.js +78 -392
- package/dist/wje-input.js.map +1 -1
- package/dist/wje-item.js +11 -64
- package/dist/wje-item.js.map +1 -1
- package/dist/wje-kanban.js +124 -401
- package/dist/wje-kanban.js.map +1 -1
- package/dist/wje-label.js +9 -32
- package/dist/wje-label.js.map +1 -1
- package/dist/wje-level-indicator.js +38 -157
- package/dist/wje-level-indicator.js.map +1 -1
- package/dist/wje-list.js +10 -40
- package/dist/wje-list.js.map +1 -1
- package/dist/wje-main.js +7 -31
- package/dist/wje-main.js.map +1 -1
- package/dist/wje-masonry.js +66 -211
- package/dist/wje-masonry.js.map +1 -1
- package/dist/wje-master.js +45 -161
- package/dist/wje-master.js.map +1 -1
- package/dist/wje-menu-button.js +10 -38
- package/dist/wje-menu-button.js.map +1 -1
- package/dist/wje-menu-item.js +127 -577
- package/dist/wje-menu-item.js.map +1 -1
- package/dist/wje-menu-label.js +9 -35
- package/dist/wje-menu-label.js.map +1 -1
- package/dist/wje-menu.js +14 -49
- package/dist/wje-menu.js.map +1 -1
- package/dist/wje-option.js +48 -279
- package/dist/wje-option.js.map +1 -1
- package/dist/wje-options.js +130 -384
- package/dist/wje-options.js.map +1 -1
- package/dist/wje-orgchart-group.js +16 -52
- package/dist/wje-orgchart-group.js.map +1 -1
- package/dist/wje-orgchart-item.js +24 -93
- package/dist/wje-orgchart-item.js.map +1 -1
- package/dist/wje-orgchart.js +18 -68
- package/dist/wje-orgchart.js.map +1 -1
- package/dist/wje-pagination.js +113 -397
- package/dist/wje-pagination.js.map +1 -1
- package/dist/wje-popup.js +3 -3
- package/dist/wje-popup.js.map +1 -1
- package/dist/wje-progress-bar.js +53 -205
- package/dist/wje-progress-bar.js.map +1 -1
- package/dist/wje-qr-code.js +398 -2980
- package/dist/wje-qr-code.js.map +1 -1
- package/dist/wje-radio-group.js +52 -190
- package/dist/wje-radio-group.js.map +1 -1
- package/dist/wje-radio.js +24 -118
- package/dist/wje-radio.js.map +1 -1
- package/dist/wje-rate.js +62 -266
- package/dist/wje-rate.js.map +1 -1
- package/dist/wje-relative-time.js +24 -99
- package/dist/wje-relative-time.js.map +1 -1
- package/dist/wje-reorder-dropzone.js +9 -31
- package/dist/wje-reorder-dropzone.js.map +1 -1
- package/dist/wje-reorder-handle.js +67 -204
- package/dist/wje-reorder-handle.js.map +1 -1
- package/dist/wje-reorder-item.js +14 -44
- package/dist/wje-reorder-item.js.map +1 -1
- package/dist/wje-reorder.js +61 -246
- package/dist/wje-reorder.js.map +1 -1
- package/dist/wje-route.js +6 -24
- package/dist/wje-route.js.map +1 -1
- package/dist/wje-router-link.js +11 -39
- package/dist/wje-router-link.js.map +1 -1
- package/dist/wje-router-outlet.js +76 -172
- package/dist/wje-router-outlet.js.map +1 -1
- package/dist/wje-routerx.js +537 -1331
- package/dist/wje-routerx.js.map +1 -1
- package/dist/wje-row.js +9 -31
- package/dist/wje-row.js.map +1 -1
- package/dist/wje-select.js +326 -1152
- package/dist/wje-select.js.map +1 -1
- package/dist/wje-slider.js +44 -225
- package/dist/wje-slider.js.map +1 -1
- package/dist/wje-sliding-container.js +295 -1319
- package/dist/wje-sliding-container.js.map +1 -1
- package/dist/wje-split-view.js +35 -121
- package/dist/wje-split-view.js.map +1 -1
- package/dist/wje-status.js +14 -45
- package/dist/wje-status.js.map +1 -1
- package/dist/wje-step.js +9 -32
- package/dist/wje-step.js.map +1 -1
- package/dist/wje-stepper.js +109 -357
- package/dist/wje-stepper.js.map +1 -1
- package/dist/wje-store.js +67 -360
- package/dist/wje-store.js.map +1 -1
- package/dist/wje-tab-group.js +85 -314
- package/dist/wje-tab-group.js.map +1 -1
- package/dist/wje-tab-panel.js +7 -28
- package/dist/wje-tab-panel.js.map +1 -1
- package/dist/wje-tab.js +21 -198
- package/dist/wje-tab.js.map +1 -1
- package/dist/wje-textarea.js +64 -264
- package/dist/wje-textarea.js.map +1 -1
- package/dist/wje-thumbnail.js +10 -51
- package/dist/wje-thumbnail.js.map +1 -1
- package/dist/wje-toast.js +127 -632
- package/dist/wje-toast.js.map +1 -1
- package/dist/wje-toggle.js +52 -177
- package/dist/wje-toggle.js.map +1 -1
- package/dist/wje-toolbar-action.js +128 -456
- package/dist/wje-toolbar-action.js.map +1 -1
- package/dist/wje-toolbar.js +75 -270
- package/dist/wje-toolbar.js.map +1 -1
- package/dist/wje-tooltip.js +50 -161
- package/dist/wje-tooltip.js.map +1 -1
- package/dist/wje-tree-item.js +70 -301
- package/dist/wje-tree-item.js.map +1 -1
- package/dist/wje-tree.js +145 -489
- package/dist/wje-tree.js.map +1 -1
- package/dist/wje-visually-hidden.js +7 -34
- package/dist/wje-visually-hidden.js.map +1 -1
- package/package.json +3 -2
- package/dist/form-associated-element-DEQ4y-jn.js +0 -245
- package/dist/icon-CReYMzAK.js +0 -245
- package/dist/popup.element-CwXvVFK7.js +0 -2133
- package/dist/router-links-wjqCnncc.js +0 -156
package/dist/wje-option.js
CHANGED
|
@@ -7,154 +7,28 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
7
7
|
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
8
8
|
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
9
9
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
10
|
-
var
|
|
11
|
-
import
|
|
12
|
-
import { I as
|
|
13
|
-
import
|
|
14
|
-
import { event } from "./event.js";
|
|
15
|
-
|
|
16
|
-
[ WJ Option ]
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
:host {
|
|
20
|
-
display: block;
|
|
21
|
-
|
|
22
|
-
.end-slot {
|
|
23
|
-
display: inline-flex;
|
|
24
|
-
align-items: center;
|
|
25
|
-
justify-content: center;
|
|
26
|
-
justify-self: end;
|
|
27
|
-
align-self: center;
|
|
28
|
-
min-width: var(--wje-option-end-slot-min-width, 2rem);
|
|
29
|
-
margin-inline-start: 0.5rem;
|
|
30
|
-
pointer-events: auto;
|
|
31
|
-
z-index: 1;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
::slotted(wje-icon[slot="check"]) {
|
|
36
|
-
visibility: hidden;
|
|
37
|
-
margin-inline: 0.5rem;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
::slotted(wje-checkbox[slot="check"]) {
|
|
41
|
-
margin-inline: 0.5rem 0;
|
|
42
|
-
margin-block: 0;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
slot[name='check'] {
|
|
46
|
-
flex: 0 0 auto;
|
|
47
|
-
display: inline-flex;
|
|
48
|
-
align-items: center;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
slot[name='start'] {
|
|
52
|
-
display: inline-flex;
|
|
53
|
-
align-items: center;
|
|
54
|
-
min-width: 0;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
slot:not([name]) {
|
|
58
|
-
display: block;
|
|
59
|
-
min-width: 0;
|
|
60
|
-
overflow-wrap: break-word;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
::slotted([slot='check']) {
|
|
64
|
-
flex: 0 0 auto;
|
|
65
|
-
flex-shrink: 0;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
:host([selected]) {
|
|
69
|
-
::slotted([slot='check']) {
|
|
70
|
-
visibility: visible;
|
|
71
|
-
}
|
|
72
|
-
wje-checkbox {
|
|
73
|
-
visibility: visible;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
:host([disabled]) {
|
|
78
|
-
background-color: lightgray;
|
|
79
|
-
opacity: 0.3;
|
|
80
|
-
pointer-events: none;
|
|
81
|
-
cursor: not-allowed;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.native-option {
|
|
85
|
-
display: grid;
|
|
86
|
-
grid-template-columns: auto auto minmax(0, 1fr) auto;
|
|
87
|
-
align-items: center;
|
|
88
|
-
padding-top: var(--wje-option-padding-top);
|
|
89
|
-
padding-bottom: var(--wje-option-padding-bottom);
|
|
90
|
-
position: relative;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.native-option:hover {
|
|
94
|
-
background-color: var(--wje-option-highlighted);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
::slotted([slot='start']) {
|
|
98
|
-
flex: 0 0 auto;
|
|
99
|
-
display: flex;
|
|
100
|
-
align-items: center;
|
|
101
|
-
margin-inline-end: 0.5rem;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
::slotted([slot='end']) {
|
|
105
|
-
flex: 0 0 auto;
|
|
106
|
-
display: flex;
|
|
107
|
-
align-items: center;
|
|
108
|
-
margin-inline: 0.5rem;
|
|
109
|
-
}
|
|
110
|
-
`;
|
|
111
|
-
class Option extends WJElement {
|
|
112
|
-
/**
|
|
113
|
-
* Creates an instance of Option.
|
|
114
|
-
* @class
|
|
115
|
-
*/
|
|
10
|
+
var _n_instances, t_fn, e_fn;
|
|
11
|
+
import e from "./wje-element.js";
|
|
12
|
+
import { I as t } from "./icon-DmsqtDpL.js";
|
|
13
|
+
import i from "./wje-checkbox.js";
|
|
14
|
+
import { event as s } from "./event.js";
|
|
15
|
+
class n extends e {
|
|
116
16
|
constructor() {
|
|
117
17
|
super();
|
|
118
|
-
__privateAdd(this,
|
|
119
|
-
|
|
120
|
-
* Dependencies of the Option component.
|
|
121
|
-
*/
|
|
122
|
-
__publicField(this, "dependencies", {
|
|
123
|
-
"wje-icon": Icon,
|
|
124
|
-
"wje-checkbox": Checkbox
|
|
125
|
-
});
|
|
18
|
+
__privateAdd(this, _n_instances);
|
|
19
|
+
__publicField(this, "dependencies", { "wje-icon": t, "wje-checkbox": i });
|
|
126
20
|
__publicField(this, "className", "Option");
|
|
127
21
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
* @param {boolean} value The value to set.
|
|
131
|
-
*/
|
|
132
|
-
set selected(value) {
|
|
133
|
-
if (value) {
|
|
134
|
-
this.setAttribute("selected", "");
|
|
135
|
-
} else {
|
|
136
|
-
this.removeAttribute("selected");
|
|
137
|
-
}
|
|
22
|
+
set selected(e2) {
|
|
23
|
+
e2 ? this.setAttribute("selected", "") : this.removeAttribute("selected");
|
|
138
24
|
}
|
|
139
|
-
/**
|
|
140
|
-
* Retrieves the 'selected' attribute status of the element.
|
|
141
|
-
* @returns {boolean} Returns true if the 'selected' attribute is set on the element; otherwise, false.
|
|
142
|
-
*/
|
|
143
25
|
get selected() {
|
|
144
26
|
return this.hasAttribute("selected");
|
|
145
27
|
}
|
|
146
|
-
/**
|
|
147
|
-
* Retrieves the value indicating whether the closest 'wje-select' element has a 'checkbox' attribute.
|
|
148
|
-
* @returns {boolean} True if the closest 'wje-select' element has a 'checkbox' attribute; otherwise, false.
|
|
149
|
-
*/
|
|
150
28
|
get checkbox() {
|
|
151
29
|
var _a;
|
|
152
30
|
return (_a = this.ownerSelect) == null ? void 0 : _a.hasAttribute("checkbox");
|
|
153
31
|
}
|
|
154
|
-
/**
|
|
155
|
-
* Determines whether the closest 'wje-select' element has the 'multiple' attribute.
|
|
156
|
-
* @returns {boolean} Returns true if the 'wje-select' element has the 'multiple' attribute, otherwise false.
|
|
157
|
-
*/
|
|
158
32
|
get multiple() {
|
|
159
33
|
var _a;
|
|
160
34
|
return ((_a = this.ownerSelect) == null ? void 0 : _a.hasAttribute("multiple")) || false;
|
|
@@ -162,176 +36,71 @@ class Option extends WJElement {
|
|
|
162
36
|
get ownerSelect() {
|
|
163
37
|
return this._ownerSelect || this.closest("wje-select");
|
|
164
38
|
}
|
|
165
|
-
set ownerSelect(
|
|
166
|
-
this._ownerSelect =
|
|
39
|
+
set ownerSelect(e2) {
|
|
40
|
+
this._ownerSelect = e2;
|
|
167
41
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
* @param {string} value The value to set.
|
|
171
|
-
*/
|
|
172
|
-
set value(value) {
|
|
173
|
-
this.setAttribute("value", value);
|
|
42
|
+
set value(e2) {
|
|
43
|
+
this.setAttribute("value", e2);
|
|
174
44
|
}
|
|
175
45
|
get value() {
|
|
176
46
|
return this.getAttribute("value");
|
|
177
47
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
* @param {string} value The text to set.
|
|
181
|
-
*/
|
|
182
|
-
set text(value) {
|
|
183
|
-
this.innerText = value;
|
|
48
|
+
set text(e2) {
|
|
49
|
+
this.innerText = e2;
|
|
184
50
|
}
|
|
185
|
-
/**
|
|
186
|
-
* Returns the CSS styles for the component.
|
|
187
|
-
* @static
|
|
188
|
-
* @returns {CSSStyleSheet}
|
|
189
|
-
*/
|
|
190
51
|
static get cssStyleSheet() {
|
|
191
|
-
return
|
|
52
|
+
return ':host{display:block}:host .end-slot{display:inline-flex;align-items:center;justify-content:center;justify-self:end;align-self:center;min-width:var(--wje-option-end-slot-min-width, 2rem);margin-inline-start:.5rem;pointer-events:auto;z-index:1}::slotted(wje-icon[slot="check"]){visibility:hidden;margin-inline:.5rem}::slotted(wje-checkbox[slot="check"]){margin-inline:.5rem 0;margin-block:0}slot[name=check]{flex:0 0 auto;display:inline-flex;align-items:center}slot[name=start]{display:inline-flex;align-items:center;min-width:0}slot:not([name]){display:block;min-width:0;overflow-wrap:break-word}::slotted([slot="check"]){flex:0 0 auto;flex-shrink:0}:host([selected]) ::slotted([slot="check"]){visibility:visible}:host([selected]) wje-checkbox{visibility:visible}:host([disabled]){background-color:#d3d3d3;opacity:.3;pointer-events:none;cursor:not-allowed}.native-option{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;padding-top:var(--wje-option-padding-top);padding-bottom:var(--wje-option-padding-bottom);position:relative}.native-option:hover{background-color:var(--wje-option-highlighted)}::slotted([slot="start"]){flex:0 0 auto;display:flex;align-items:center;margin-inline-end:.5rem}::slotted([slot="end"]){flex:0 0 auto;display:flex;align-items:center;margin-inline:.5rem}';
|
|
192
53
|
}
|
|
193
|
-
/**
|
|
194
|
-
* Returns the list of attributes to observe for changes.
|
|
195
|
-
* @static
|
|
196
|
-
* @returns {Array<string>}
|
|
197
|
-
*/
|
|
198
54
|
static get observedAttributes() {
|
|
199
55
|
return ["selected"];
|
|
200
56
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
* @param {string} name The name of the attribute that was changed.
|
|
204
|
-
* @param {*} old The previous value of the attribute before the change.
|
|
205
|
-
* @param {*} newName The new value of the attribute after the change.
|
|
206
|
-
* @returns {void} This method does not return a value.
|
|
207
|
-
*/
|
|
208
|
-
attributeChangedCallback(name, old, newName) {
|
|
209
|
-
if (this.checkbox) {
|
|
210
|
-
if (name === "selected" && newName !== null) {
|
|
211
|
-
__privateMethod(this, _Option_instances, setCheckbox_fn).call(this, true);
|
|
212
|
-
} else {
|
|
213
|
-
__privateMethod(this, _Option_instances, setCheckbox_fn).call(this, false);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
this.syncAria();
|
|
57
|
+
attributeChangedCallback(e2, t2, i2) {
|
|
58
|
+
this.checkbox && ("selected" === e2 && null !== i2 ? __privateMethod(this, _n_instances, e_fn).call(this, true) : __privateMethod(this, _n_instances, e_fn).call(this, false)), this.syncAria();
|
|
217
59
|
}
|
|
218
|
-
/**
|
|
219
|
-
* Sets up the attributes for the component.
|
|
220
|
-
*/
|
|
221
60
|
setupAttributes() {
|
|
222
|
-
this.isShadowRoot = "open";
|
|
223
|
-
this.syncAria();
|
|
61
|
+
this.isShadowRoot = "open", this.syncAria();
|
|
224
62
|
}
|
|
225
|
-
/**
|
|
226
|
-
* Draws the component for the option.
|
|
227
|
-
* @returns {DocumentFragment}
|
|
228
|
-
*/
|
|
229
63
|
draw() {
|
|
230
|
-
let
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
let
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
let
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
let endWrapper = document.createElement("span");
|
|
246
|
-
endWrapper.classList.add("end-slot");
|
|
247
|
-
let end = document.createElement("slot");
|
|
248
|
-
end.setAttribute("name", "end");
|
|
249
|
-
endWrapper.append(end);
|
|
250
|
-
const hasCheckSlot = this.querySelector('[slot="check"]') !== null;
|
|
251
|
-
if (!hasCheckSlot) {
|
|
252
|
-
if (this.checkbox && this.multiple) {
|
|
253
|
-
this.append(checkboxEl);
|
|
254
|
-
} else {
|
|
255
|
-
this.append(icon);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
native.append(check);
|
|
259
|
-
native.append(start);
|
|
260
|
-
native.append(slot);
|
|
261
|
-
native.append(endWrapper);
|
|
262
|
-
fragment.append(native);
|
|
263
|
-
this.check = check;
|
|
264
|
-
return fragment;
|
|
64
|
+
let e2 = document.createDocumentFragment(), t2 = document.createElement("div");
|
|
65
|
+
t2.classList.add("native-option"), t2.setAttribute("part", "native");
|
|
66
|
+
let i2 = document.createElement("wje-icon");
|
|
67
|
+
i2.setAttribute("name", "check"), i2.setAttribute("slot", "check");
|
|
68
|
+
let s2 = document.createElement("wje-checkbox");
|
|
69
|
+
s2.setAttribute("slot", "check");
|
|
70
|
+
let n2 = document.createElement("slot");
|
|
71
|
+
n2.setAttribute("name", "check"), n2.setAttribute("part", "check");
|
|
72
|
+
let o = document.createElement("slot");
|
|
73
|
+
o.setAttribute("name", "start");
|
|
74
|
+
let l = document.createElement("slot"), c = document.createElement("span");
|
|
75
|
+
c.classList.add("end-slot");
|
|
76
|
+
let a = document.createElement("slot");
|
|
77
|
+
a.setAttribute("name", "end"), c.append(a);
|
|
78
|
+
return null !== this.querySelector('[slot="check"]') || (this.checkbox && this.multiple ? this.append(s2) : this.append(i2)), t2.append(n2), t2.append(o), t2.append(l), t2.append(c), e2.append(t2), this.check = n2, e2;
|
|
265
79
|
}
|
|
266
|
-
/**
|
|
267
|
-
* Method executed after the drawing process is completed.
|
|
268
|
-
* Sets up an event listener for 'click' events, linking them to the specified callback function.
|
|
269
|
-
* @returns {void} Does not return a value.
|
|
270
|
-
*/
|
|
271
80
|
afterDraw() {
|
|
272
|
-
|
|
273
|
-
if (this.checkbox && this.multiple) {
|
|
274
|
-
__privateMethod(this, _Option_instances, setCheckbox_fn).call(this, this.selected);
|
|
275
|
-
}
|
|
276
|
-
this.syncAria();
|
|
81
|
+
s.addListener(this, "click", null, this.optionClickCallback), this.checkbox && this.multiple && __privateMethod(this, _n_instances, e_fn).call(this, this.selected), this.syncAria();
|
|
277
82
|
}
|
|
278
|
-
/**
|
|
279
|
-
* Syncs ARIA attributes on the host element.
|
|
280
|
-
*/
|
|
281
83
|
syncAria() {
|
|
282
|
-
this.setAriaState({
|
|
283
|
-
role: "option",
|
|
284
|
-
selected: this.selected,
|
|
285
|
-
disabled: this.hasAttribute("disabled")
|
|
286
|
-
});
|
|
84
|
+
this.setAriaState({ role: "option", selected: this.selected, disabled: this.hasAttribute("disabled") });
|
|
287
85
|
}
|
|
288
|
-
/**
|
|
289
|
-
* Handles operations or cleanup tasks that need to occur before disconnecting.
|
|
290
|
-
* Removes an event listener associated with the 'click' event and a specified callback function.
|
|
291
|
-
* @returns {void} This method does not return a value.
|
|
292
|
-
*/
|
|
293
86
|
beforeDisconnect() {
|
|
294
|
-
|
|
87
|
+
s.removeListener(this, "click", null, this.optionClickCallback);
|
|
295
88
|
}
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
* @param {Event} e The click event object that triggered the callback.
|
|
299
|
-
* @returns {void} No return value.
|
|
300
|
-
*/
|
|
301
|
-
optionClickCallback(e) {
|
|
302
|
-
e.preventDefault();
|
|
303
|
-
e.stopPropagation();
|
|
304
|
-
e.stopImmediatePropagation();
|
|
305
|
-
if (this.hasAttribute("disabled")) return;
|
|
306
|
-
event.dispatchCustomEvent(this, "wje-option:change", {
|
|
307
|
-
value: this.value,
|
|
308
|
-
text: this.textContent,
|
|
309
|
-
option: this
|
|
310
|
-
});
|
|
89
|
+
optionClickCallback(e2) {
|
|
90
|
+
e2.preventDefault(), e2.stopPropagation(), e2.stopImmediatePropagation(), this.hasAttribute("disabled") || s.dispatchCustomEvent(this, "wje-option:change", { value: this.value, text: this.textContent, option: this });
|
|
311
91
|
}
|
|
312
92
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
* @param {Node} node The DOM node to be checked.
|
|
317
|
-
* @returns {boolean} Returns true if the node is an element with a class name of 'Checkbox', otherwise false.
|
|
318
|
-
*/
|
|
319
|
-
isCheckbox_fn = function(node) {
|
|
320
|
-
return node instanceof Element && node.className === "Checkbox";
|
|
93
|
+
_n_instances = new WeakSet();
|
|
94
|
+
t_fn = function(e2) {
|
|
95
|
+
return e2 instanceof Element && "Checkbox" === e2.className;
|
|
321
96
|
};
|
|
322
|
-
|
|
323
|
-
* Updates the checked status of the first checkbox element found within the assigned elements of the specified container.
|
|
324
|
-
* @param {boolean} checked The desired checked state to be applied to the checkbox.
|
|
325
|
-
* @returns {void}
|
|
326
|
-
*/
|
|
327
|
-
setCheckbox_fn = function(checked) {
|
|
97
|
+
e_fn = function(e2) {
|
|
328
98
|
var _a;
|
|
329
|
-
const
|
|
330
|
-
|
|
331
|
-
if (arr.length > 0) arr[0].checked = checked;
|
|
99
|
+
const t2 = (((_a = this.check) == null ? void 0 : _a.assignedElements({ flatten: true })) ?? []).filter((e3) => __privateMethod(this, _n_instances, t_fn).call(this, e3));
|
|
100
|
+
t2.length > 0 && (t2[0].checked = e2);
|
|
332
101
|
};
|
|
333
|
-
|
|
102
|
+
n.define("wje-option", n);
|
|
334
103
|
export {
|
|
335
|
-
|
|
104
|
+
n as default
|
|
336
105
|
};
|
|
337
106
|
//# sourceMappingURL=wje-option.js.map
|
package/dist/wje-option.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wje-option.js","sources":["../packages/wje-option/option.element.js","../packages/wje-option/option.js"],"sourcesContent":["import { default as WJElement, event } from '../wje-element/element.js';\nimport Icon from '../wje-icon/icon.js';\nimport Checkbox from '../wje-checkbox/checkbox.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `Option` is a custom web component that represents an option.\n * @summary This element represents an option.\n * @documentation https://elements.webjet.sk/components/option\n * @status stable\n * @augments {WJElement}\n * @csspart native - The native part of the option.\n * @slot start - The slot for the start of the option.\n * @slot - The default slot for the option.\n * @slot end - The slot for the end of the option.\n * // @fires wje-option:change - Event fired when the option is clicked.\n * @tag wje-option\n */\nexport default class Option extends WJElement {\n\t/**\n\t * Creates an instance of Option.\n\t * @class\n\t */\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * Dependencies of the Option component.\n\t */\n\tdependencies = {\n\t\t'wje-icon': Icon,\n\t\t'wje-checkbox': Checkbox,\n\t};\n\n\t/**\n\t * Sets the selected attribute of the option.\n\t * @param {boolean} value The value to set.\n\t */\n\tset selected(value) {\n\t\tif (value) {\n\t\t\tthis.setAttribute('selected', '');\n\t\t} else {\n\t\t\tthis.removeAttribute('selected');\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the 'selected' attribute status of the element.\n\t * @returns {boolean} Returns true if the 'selected' attribute is set on the element; otherwise, false.\n\t */\n\tget selected() {\n\t\treturn this.hasAttribute('selected');\n\t}\n\n\t/**\n\t * Retrieves the value indicating whether the closest 'wje-select' element has a 'checkbox' attribute.\n\t * @returns {boolean} True if the closest 'wje-select' element has a 'checkbox' attribute; otherwise, false.\n\t */\n\tget checkbox() {\n\t\treturn this.ownerSelect?.hasAttribute('checkbox');\n\t}\n\n\t/**\n\t * Determines whether the closest 'wje-select' element has the 'multiple' attribute.\n\t * @returns {boolean} Returns true if the 'wje-select' element has the 'multiple' attribute, otherwise false.\n\t */\n\tget multiple() {\n\t\treturn this.ownerSelect?.hasAttribute('multiple') || false;\n\t}\n\n\tget ownerSelect() {\n\t\treturn this._ownerSelect || this.closest('wje-select');\n\t}\n\n\tset ownerSelect(value) {\n\t\tthis._ownerSelect = value;\n\t}\n\n\t/**\n\t * Sets the value attribute of the option.\n\t * @param {string} value The value to set.\n\t */\n\tset value(value) {\n\t\tthis.setAttribute('value', value);\n\t}\n\n\tget value() {\n\t\treturn this.getAttribute('value');\n\t}\n\n\t/**\n\t * Sets the text content of the option.\n\t * @param {string} value The text to set.\n\t */\n\tset text(value) {\n\t\tthis.innerText = value;\n\t}\n\n\tclassName = 'Option';\n\n\t/**\n\t * Returns the CSS styles for the component.\n\t * @static\n\t * @returns {CSSStyleSheet}\n\t */\n\tstatic get cssStyleSheet() {\n\t\treturn styles;\n\t}\n\n\t/**\n\t * Returns the list of attributes to observe for changes.\n\t * @static\n\t * @returns {Array<string>}\n\t */\n\tstatic get observedAttributes() {\n\t\treturn ['selected'];\n\t}\n\n\t/**\n\t * This method is called whenever an observed attribute is added, removed, or changed.\n\t * @param {string} name The name of the attribute that was changed.\n\t * @param {*} old The previous value of the attribute before the change.\n\t * @param {*} newName The new value of the attribute after the change.\n\t * @returns {void} This method does not return a value.\n\t */\n\tattributeChangedCallback(name, old, newName) {\n\t\tif (this.checkbox) {\n\t\t\tif (name === 'selected' && newName !== null) {\n\t\t\t\tthis.#setCheckbox(true);\n\t\t\t} else {\n\t\t\t\tthis.#setCheckbox(false);\n\t\t\t}\n\t\t}\n\t\tthis.syncAria();\n\t}\n\n\t/**\n\t * Sets up the attributes for the component.\n\t */\n\tsetupAttributes() {\n\t\tthis.isShadowRoot = 'open';\n\t\tthis.syncAria();\n\t}\n\n\t/**\n\t * Draws the component for the option.\n\t * @returns {DocumentFragment}\n\t */\n\tdraw() {\n\t\tlet fragment = document.createDocumentFragment();\n\n\t\tlet native = document.createElement('div');\n\t\tnative.classList.add('native-option');\n\t\tnative.setAttribute('part', 'native');\n\n\t\tlet icon = document.createElement('wje-icon');\n\t\ticon.setAttribute('name', 'check');\n\t\ticon.setAttribute('slot', 'check');\n\n\t\tlet checkboxEl = document.createElement('wje-checkbox');\n\t\tcheckboxEl.setAttribute('slot', 'check');\n\n\t\tlet check = document.createElement('slot');\n\t\tcheck.setAttribute('name', 'check');\n\t\tcheck.setAttribute('part', 'check');\n\n\t\tlet start = document.createElement('slot');\n\t\tstart.setAttribute('name', 'start');\n\n\t\tlet slot = document.createElement('slot');\n\n\t\tlet endWrapper = document.createElement('span');\n\t\tendWrapper.classList.add('end-slot');\n\n\t\tlet end = document.createElement('slot');\n\t\tend.setAttribute('name', 'end');\n\n\t\tendWrapper.append(end);\n\n\t\tconst hasCheckSlot = this.querySelector('[slot=\"check\"]') !== null;\n\n\t\tif (!hasCheckSlot) {\n\t\t\tif (this.checkbox && this.multiple) {\n\t\t\t\tthis.append(checkboxEl);\n\t\t\t} else {\n\t\t\t\tthis.append(icon);\n\t\t\t}\n\t\t}\n\n\t\tnative.append(check);\n\t\tnative.append(start);\n\t\tnative.append(slot);\n\t\tnative.append(endWrapper);\n\n\t\tfragment.append(native);\n\n\t\tthis.check = check;\n\n\t\treturn fragment;\n\t}\n\n\t/**\n\t * Method executed after the drawing process is completed.\n\t * Sets up an event listener for 'click' events, linking them to the specified callback function.\n\t * @returns {void} Does not return a value.\n\t */\n\tafterDraw() {\n\t\tevent.addListener(this, 'click', null, this.optionClickCallback);\n\n\t\t// If `selected` was set before render, attributeChangedCallback may have run\n\t\t// before `this.check` existed. Sync the checkbox state once slots exist.\n\t\tif (this.checkbox && this.multiple) {\n\t\t\tthis.#setCheckbox(this.selected);\n\t\t}\n\t\tthis.syncAria();\n\t}\n\n\t/**\n\t * Syncs ARIA attributes on the host element.\n\t */\n\tsyncAria() {\n\t\tthis.setAriaState({\n\t\t\trole: 'option',\n\t\t\tselected: this.selected,\n\t\t\tdisabled: this.hasAttribute('disabled'),\n\t\t});\n\t}\n\n\t/**\n\t * Handles operations or cleanup tasks that need to occur before disconnecting.\n\t * Removes an event listener associated with the 'click' event and a specified callback function.\n\t * @returns {void} This method does not return a value.\n\t */\n\tbeforeDisconnect() {\n\t\tevent.removeListener(this, 'click', null, this.optionClickCallback);\n\t}\n\n\t/**\n\t * Handles the click event on an option element and dispatches a custom event when triggered.\n\t * @param {Event} e The click event object that triggered the callback.\n\t * @returns {void} No return value.\n\t */\n\toptionClickCallback(e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\te.stopImmediatePropagation();\n\n\t\tif (this.hasAttribute('disabled')) return;\n\n\t\tevent.dispatchCustomEvent(this, 'wje-option:change', {\n\t\t\tvalue: this.value,\n\t\t\ttext: this.textContent,\n\t\t\toption: this,\n\t\t});\n\t}\n\n\t/**\n\t * Checks if the given DOM node represents a checkbox element.\n\t * @param {Node} node The DOM node to be checked.\n\t * @returns {boolean} Returns true if the node is an element with a class name of 'Checkbox', otherwise false.\n\t */\n\t#isCheckbox(node) {\n\t\treturn node instanceof Element && node.className === 'Checkbox';\n\t}\n\n\t/**\n\t * Updates the checked status of the first checkbox element found within the assigned elements of the specified container.\n\t * @param {boolean} checked The desired checked state to be applied to the checkbox.\n\t * @returns {void}\n\t */\n\t#setCheckbox(checked) {\n\t\tconst assigned = this.check?.assignedElements({ flatten: true }) ?? [];\n\t\tconst arr = assigned.filter((item) => this.#isCheckbox(item));\n\t\tif (arr.length > 0) arr[0].checked = checked;\n\t}\n}\n","import Option from './option.element.js';\n\nexport default Option;\n\nOption.define('wje-option', Option);\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wje-option.js","sources":["../packages/wje-option/option.element.js","../packages/wje-option/option.js"],"sourcesContent":["import { default as WJElement, event } from '../wje-element/element.js';\nimport Icon from '../wje-icon/icon.js';\nimport Checkbox from '../wje-checkbox/checkbox.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `Option` is a custom web component that represents an option.\n * @summary This element represents an option.\n * @documentation https://elements.webjet.sk/components/option\n * @status stable\n * @augments {WJElement}\n * @csspart native - The native part of the option.\n * @slot start - The slot for the start of the option.\n * @slot - The default slot for the option.\n * @slot end - The slot for the end of the option.\n * // @fires wje-option:change - Event fired when the option is clicked.\n * @tag wje-option\n */\nexport default class Option extends WJElement {\n\t/**\n\t * Creates an instance of Option.\n\t * @class\n\t */\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * Dependencies of the Option component.\n\t */\n\tdependencies = {\n\t\t'wje-icon': Icon,\n\t\t'wje-checkbox': Checkbox,\n\t};\n\n\t/**\n\t * Sets the selected attribute of the option.\n\t * @param {boolean} value The value to set.\n\t */\n\tset selected(value) {\n\t\tif (value) {\n\t\t\tthis.setAttribute('selected', '');\n\t\t} else {\n\t\t\tthis.removeAttribute('selected');\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the 'selected' attribute status of the element.\n\t * @returns {boolean} Returns true if the 'selected' attribute is set on the element; otherwise, false.\n\t */\n\tget selected() {\n\t\treturn this.hasAttribute('selected');\n\t}\n\n\t/**\n\t * Retrieves the value indicating whether the closest 'wje-select' element has a 'checkbox' attribute.\n\t * @returns {boolean} True if the closest 'wje-select' element has a 'checkbox' attribute; otherwise, false.\n\t */\n\tget checkbox() {\n\t\treturn this.ownerSelect?.hasAttribute('checkbox');\n\t}\n\n\t/**\n\t * Determines whether the closest 'wje-select' element has the 'multiple' attribute.\n\t * @returns {boolean} Returns true if the 'wje-select' element has the 'multiple' attribute, otherwise false.\n\t */\n\tget multiple() {\n\t\treturn this.ownerSelect?.hasAttribute('multiple') || false;\n\t}\n\n\tget ownerSelect() {\n\t\treturn this._ownerSelect || this.closest('wje-select');\n\t}\n\n\tset ownerSelect(value) {\n\t\tthis._ownerSelect = value;\n\t}\n\n\t/**\n\t * Sets the value attribute of the option.\n\t * @param {string} value The value to set.\n\t */\n\tset value(value) {\n\t\tthis.setAttribute('value', value);\n\t}\n\n\tget value() {\n\t\treturn this.getAttribute('value');\n\t}\n\n\t/**\n\t * Sets the text content of the option.\n\t * @param {string} value The text to set.\n\t */\n\tset text(value) {\n\t\tthis.innerText = value;\n\t}\n\n\tclassName = 'Option';\n\n\t/**\n\t * Returns the CSS styles for the component.\n\t * @static\n\t * @returns {CSSStyleSheet}\n\t */\n\tstatic get cssStyleSheet() {\n\t\treturn styles;\n\t}\n\n\t/**\n\t * Returns the list of attributes to observe for changes.\n\t * @static\n\t * @returns {Array<string>}\n\t */\n\tstatic get observedAttributes() {\n\t\treturn ['selected'];\n\t}\n\n\t/**\n\t * This method is called whenever an observed attribute is added, removed, or changed.\n\t * @param {string} name The name of the attribute that was changed.\n\t * @param {*} old The previous value of the attribute before the change.\n\t * @param {*} newName The new value of the attribute after the change.\n\t * @returns {void} This method does not return a value.\n\t */\n\tattributeChangedCallback(name, old, newName) {\n\t\tif (this.checkbox) {\n\t\t\tif (name === 'selected' && newName !== null) {\n\t\t\t\tthis.#setCheckbox(true);\n\t\t\t} else {\n\t\t\t\tthis.#setCheckbox(false);\n\t\t\t}\n\t\t}\n\t\tthis.syncAria();\n\t}\n\n\t/**\n\t * Sets up the attributes for the component.\n\t */\n\tsetupAttributes() {\n\t\tthis.isShadowRoot = 'open';\n\t\tthis.syncAria();\n\t}\n\n\t/**\n\t * Draws the component for the option.\n\t * @returns {DocumentFragment}\n\t */\n\tdraw() {\n\t\tlet fragment = document.createDocumentFragment();\n\n\t\tlet native = document.createElement('div');\n\t\tnative.classList.add('native-option');\n\t\tnative.setAttribute('part', 'native');\n\n\t\tlet icon = document.createElement('wje-icon');\n\t\ticon.setAttribute('name', 'check');\n\t\ticon.setAttribute('slot', 'check');\n\n\t\tlet checkboxEl = document.createElement('wje-checkbox');\n\t\tcheckboxEl.setAttribute('slot', 'check');\n\n\t\tlet check = document.createElement('slot');\n\t\tcheck.setAttribute('name', 'check');\n\t\tcheck.setAttribute('part', 'check');\n\n\t\tlet start = document.createElement('slot');\n\t\tstart.setAttribute('name', 'start');\n\n\t\tlet slot = document.createElement('slot');\n\n\t\tlet endWrapper = document.createElement('span');\n\t\tendWrapper.classList.add('end-slot');\n\n\t\tlet end = document.createElement('slot');\n\t\tend.setAttribute('name', 'end');\n\n\t\tendWrapper.append(end);\n\n\t\tconst hasCheckSlot = this.querySelector('[slot=\"check\"]') !== null;\n\n\t\tif (!hasCheckSlot) {\n\t\t\tif (this.checkbox && this.multiple) {\n\t\t\t\tthis.append(checkboxEl);\n\t\t\t} else {\n\t\t\t\tthis.append(icon);\n\t\t\t}\n\t\t}\n\n\t\tnative.append(check);\n\t\tnative.append(start);\n\t\tnative.append(slot);\n\t\tnative.append(endWrapper);\n\n\t\tfragment.append(native);\n\n\t\tthis.check = check;\n\n\t\treturn fragment;\n\t}\n\n\t/**\n\t * Method executed after the drawing process is completed.\n\t * Sets up an event listener for 'click' events, linking them to the specified callback function.\n\t * @returns {void} Does not return a value.\n\t */\n\tafterDraw() {\n\t\tevent.addListener(this, 'click', null, this.optionClickCallback);\n\n\t\t// If `selected` was set before render, attributeChangedCallback may have run\n\t\t// before `this.check` existed. Sync the checkbox state once slots exist.\n\t\tif (this.checkbox && this.multiple) {\n\t\t\tthis.#setCheckbox(this.selected);\n\t\t}\n\t\tthis.syncAria();\n\t}\n\n\t/**\n\t * Syncs ARIA attributes on the host element.\n\t */\n\tsyncAria() {\n\t\tthis.setAriaState({\n\t\t\trole: 'option',\n\t\t\tselected: this.selected,\n\t\t\tdisabled: this.hasAttribute('disabled'),\n\t\t});\n\t}\n\n\t/**\n\t * Handles operations or cleanup tasks that need to occur before disconnecting.\n\t * Removes an event listener associated with the 'click' event and a specified callback function.\n\t * @returns {void} This method does not return a value.\n\t */\n\tbeforeDisconnect() {\n\t\tevent.removeListener(this, 'click', null, this.optionClickCallback);\n\t}\n\n\t/**\n\t * Handles the click event on an option element and dispatches a custom event when triggered.\n\t * @param {Event} e The click event object that triggered the callback.\n\t * @returns {void} No return value.\n\t */\n\toptionClickCallback(e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\te.stopImmediatePropagation();\n\n\t\tif (this.hasAttribute('disabled')) return;\n\n\t\tevent.dispatchCustomEvent(this, 'wje-option:change', {\n\t\t\tvalue: this.value,\n\t\t\ttext: this.textContent,\n\t\t\toption: this,\n\t\t});\n\t}\n\n\t/**\n\t * Checks if the given DOM node represents a checkbox element.\n\t * @param {Node} node The DOM node to be checked.\n\t * @returns {boolean} Returns true if the node is an element with a class name of 'Checkbox', otherwise false.\n\t */\n\t#isCheckbox(node) {\n\t\treturn node instanceof Element && node.className === 'Checkbox';\n\t}\n\n\t/**\n\t * Updates the checked status of the first checkbox element found within the assigned elements of the specified container.\n\t * @param {boolean} checked The desired checked state to be applied to the checkbox.\n\t * @returns {void}\n\t */\n\t#setCheckbox(checked) {\n\t\tconst assigned = this.check?.assignedElements({ flatten: true }) ?? [];\n\t\tconst arr = assigned.filter((item) => this.#isCheckbox(item));\n\t\tif (arr.length > 0) arr[0].checked = checked;\n\t}\n}\n","import Option from './option.element.js';\n\nexport default Option;\n\nOption.define('wje-option', Option);\n"],"names":["Option","WJElement","constructor","super","dependencies","Icon","Checkbox","className","value","this","setAttribute","removeAttribute","selected","hasAttribute","checkbox","ownerSelect","multiple","_ownerSelect","closest","getAttribute","innerText","cssStyleSheet","observedAttributes","name","old","newName","setCheckbox","syncAria","setupAttributes","isShadowRoot","draw","fragment","document","createDocumentFragment","native","createElement","classList","add","icon","checkboxEl","check","start","slot","endWrapper","end","append","querySelector","afterDraw","event","addListener","optionClickCallback","setAriaState","role","disabled","beforeDisconnect","removeListener","e","preventDefault","stopPropagation","stopImmediatePropagation","dispatchCustomEvent","text","textContent","option","isCheckbox","node","Element","checked","arr","assignedElements","flatten","filter","item","length","define"],"mappings":"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"}
|