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.
Files changed (233) hide show
  1. package/dist/animations.js +28 -51
  2. package/dist/animations.js.map +1 -1
  3. package/dist/base-path.js +19 -31
  4. package/dist/base-path.js.map +1 -1
  5. package/dist/custom-elements.json +11504 -11499
  6. package/dist/dark.css +1 -302
  7. package/dist/date.js +16 -36
  8. package/dist/date.js.map +1 -1
  9. package/dist/element-utils.js +20 -81
  10. package/dist/element-utils.js.map +1 -1
  11. package/dist/event.js +49 -165
  12. package/dist/event.js.map +1 -1
  13. package/dist/form-associated-element-BjeJn7j8.js +101 -0
  14. package/dist/{form-associated-element-DEQ4y-jn.js.map → form-associated-element-BjeJn7j8.js.map} +1 -1
  15. package/dist/icon-DmsqtDpL.js +102 -0
  16. package/dist/{icon-CReYMzAK.js.map → icon-DmsqtDpL.js.map} +1 -1
  17. package/dist/light.css +1 -731
  18. package/dist/localize.js +36 -111
  19. package/dist/localize.js.map +1 -1
  20. package/dist/packages/wje-accordion-item/accordion-item.element.d.ts +3 -2
  21. package/dist/permissions.js +14 -41
  22. package/dist/permissions.js.map +1 -1
  23. package/dist/popup.element-CbkhthPP.js +806 -0
  24. package/dist/{popup.element-CwXvVFK7.js.map → popup.element-CbkhthPP.js.map} +1 -1
  25. package/dist/router-links-CNsJ-elb.js +105 -0
  26. package/dist/{router-links-wjqCnncc.js.map → router-links-CNsJ-elb.js.map} +1 -1
  27. package/dist/skeleton.css +1 -197
  28. package/dist/styles.css +1 -866
  29. package/dist/universal-service.js +48 -109
  30. package/dist/universal-service.js.map +1 -1
  31. package/dist/utils.js +11 -18
  32. package/dist/utils.js.map +1 -1
  33. package/dist/web-types.json +760 -760
  34. package/dist/wje-accordion-item.js +33 -106
  35. package/dist/wje-accordion-item.js.map +1 -1
  36. package/dist/wje-accordion.js +19 -84
  37. package/dist/wje-accordion.js.map +1 -1
  38. package/dist/wje-animation.js +37 -4258
  39. package/dist/wje-animation.js.map +1 -1
  40. package/dist/wje-aside.js +9 -34
  41. package/dist/wje-aside.js.map +1 -1
  42. package/dist/wje-avatar.js +36 -126
  43. package/dist/wje-avatar.js.map +1 -1
  44. package/dist/wje-badge.js +10 -52
  45. package/dist/wje-badge.js.map +1 -1
  46. package/dist/wje-breadcrumb.js +205 -672
  47. package/dist/wje-breadcrumb.js.map +1 -1
  48. package/dist/wje-breadcrumbs.js +177 -633
  49. package/dist/wje-breadcrumbs.js.map +1 -1
  50. package/dist/wje-button-group.js +48 -153
  51. package/dist/wje-button-group.js.map +1 -1
  52. package/dist/wje-button.js +92 -413
  53. package/dist/wje-button.js.map +1 -1
  54. package/dist/wje-card-content.js +7 -30
  55. package/dist/wje-card-content.js.map +1 -1
  56. package/dist/wje-card-controls.js +7 -30
  57. package/dist/wje-card-controls.js.map +1 -1
  58. package/dist/wje-card-header.js +7 -30
  59. package/dist/wje-card-header.js.map +1 -1
  60. package/dist/wje-card-subtitle.js +7 -34
  61. package/dist/wje-card-subtitle.js.map +1 -1
  62. package/dist/wje-card-title.js +7 -34
  63. package/dist/wje-card-title.js.map +1 -1
  64. package/dist/wje-card.js +15 -71
  65. package/dist/wje-card.js.map +1 -1
  66. package/dist/wje-carousel-item.js +12 -56
  67. package/dist/wje-carousel-item.js.map +1 -1
  68. package/dist/wje-carousel.js +154 -509
  69. package/dist/wje-carousel.js.map +1 -1
  70. package/dist/wje-checkbox.js +50 -227
  71. package/dist/wje-checkbox.js.map +1 -1
  72. package/dist/wje-chip.js +43 -160
  73. package/dist/wje-chip.js.map +1 -1
  74. package/dist/wje-col.js +7 -20
  75. package/dist/wje-col.js.map +1 -1
  76. package/dist/wje-color-picker.js +445 -1464
  77. package/dist/wje-color-picker.js.map +1 -1
  78. package/dist/wje-container.js +9 -35
  79. package/dist/wje-container.js.map +1 -1
  80. package/dist/wje-copy-button.js +64 -204
  81. package/dist/wje-copy-button.js.map +1 -1
  82. package/dist/wje-dialog.js +85 -553
  83. package/dist/wje-dialog.js.map +1 -1
  84. package/dist/wje-divider.js +7 -34
  85. package/dist/wje-divider.js.map +1 -1
  86. package/dist/wje-dropdown.js +78 -305
  87. package/dist/wje-dropdown.js.map +1 -1
  88. package/dist/wje-element.js +191 -700
  89. package/dist/wje-element.js.map +1 -1
  90. package/dist/wje-file-upload-item.js +51 -156
  91. package/dist/wje-file-upload-item.js.map +1 -1
  92. package/dist/wje-file-upload.js +181 -619
  93. package/dist/wje-file-upload.js.map +1 -1
  94. package/dist/wje-footer.js +7 -31
  95. package/dist/wje-footer.js.map +1 -1
  96. package/dist/wje-form.js +7 -32
  97. package/dist/wje-form.js.map +1 -1
  98. package/dist/wje-format-digital.js +26 -118
  99. package/dist/wje-format-digital.js.map +1 -1
  100. package/dist/wje-grid.js +7 -33
  101. package/dist/wje-grid.js.map +1 -1
  102. package/dist/wje-header.js +9 -35
  103. package/dist/wje-header.js.map +1 -1
  104. package/dist/wje-icon-library.js +12 -18
  105. package/dist/wje-icon-library.js.map +1 -1
  106. package/dist/wje-icon-picker.js +65 -320
  107. package/dist/wje-icon-picker.js.map +1 -1
  108. package/dist/wje-icon.js +1 -1
  109. package/dist/wje-img-comparer.js +37 -114
  110. package/dist/wje-img-comparer.js.map +1 -1
  111. package/dist/wje-img.js +50 -198
  112. package/dist/wje-img.js.map +1 -1
  113. package/dist/wje-infinite-scroll.js +94 -346
  114. package/dist/wje-infinite-scroll.js.map +1 -1
  115. package/dist/wje-input-file.js +23 -84
  116. package/dist/wje-input-file.js.map +1 -1
  117. package/dist/wje-input.js +78 -392
  118. package/dist/wje-input.js.map +1 -1
  119. package/dist/wje-item.js +11 -64
  120. package/dist/wje-item.js.map +1 -1
  121. package/dist/wje-kanban.js +124 -401
  122. package/dist/wje-kanban.js.map +1 -1
  123. package/dist/wje-label.js +9 -32
  124. package/dist/wje-label.js.map +1 -1
  125. package/dist/wje-level-indicator.js +38 -157
  126. package/dist/wje-level-indicator.js.map +1 -1
  127. package/dist/wje-list.js +10 -40
  128. package/dist/wje-list.js.map +1 -1
  129. package/dist/wje-main.js +7 -31
  130. package/dist/wje-main.js.map +1 -1
  131. package/dist/wje-masonry.js +66 -211
  132. package/dist/wje-masonry.js.map +1 -1
  133. package/dist/wje-master.js +45 -161
  134. package/dist/wje-master.js.map +1 -1
  135. package/dist/wje-menu-button.js +10 -38
  136. package/dist/wje-menu-button.js.map +1 -1
  137. package/dist/wje-menu-item.js +127 -577
  138. package/dist/wje-menu-item.js.map +1 -1
  139. package/dist/wje-menu-label.js +9 -35
  140. package/dist/wje-menu-label.js.map +1 -1
  141. package/dist/wje-menu.js +14 -49
  142. package/dist/wje-menu.js.map +1 -1
  143. package/dist/wje-option.js +48 -279
  144. package/dist/wje-option.js.map +1 -1
  145. package/dist/wje-options.js +130 -384
  146. package/dist/wje-options.js.map +1 -1
  147. package/dist/wje-orgchart-group.js +16 -52
  148. package/dist/wje-orgchart-group.js.map +1 -1
  149. package/dist/wje-orgchart-item.js +24 -93
  150. package/dist/wje-orgchart-item.js.map +1 -1
  151. package/dist/wje-orgchart.js +18 -68
  152. package/dist/wje-orgchart.js.map +1 -1
  153. package/dist/wje-pagination.js +113 -397
  154. package/dist/wje-pagination.js.map +1 -1
  155. package/dist/wje-popup.js +3 -3
  156. package/dist/wje-popup.js.map +1 -1
  157. package/dist/wje-progress-bar.js +53 -205
  158. package/dist/wje-progress-bar.js.map +1 -1
  159. package/dist/wje-qr-code.js +398 -2980
  160. package/dist/wje-qr-code.js.map +1 -1
  161. package/dist/wje-radio-group.js +52 -190
  162. package/dist/wje-radio-group.js.map +1 -1
  163. package/dist/wje-radio.js +24 -118
  164. package/dist/wje-radio.js.map +1 -1
  165. package/dist/wje-rate.js +62 -266
  166. package/dist/wje-rate.js.map +1 -1
  167. package/dist/wje-relative-time.js +24 -99
  168. package/dist/wje-relative-time.js.map +1 -1
  169. package/dist/wje-reorder-dropzone.js +9 -31
  170. package/dist/wje-reorder-dropzone.js.map +1 -1
  171. package/dist/wje-reorder-handle.js +67 -204
  172. package/dist/wje-reorder-handle.js.map +1 -1
  173. package/dist/wje-reorder-item.js +14 -44
  174. package/dist/wje-reorder-item.js.map +1 -1
  175. package/dist/wje-reorder.js +61 -246
  176. package/dist/wje-reorder.js.map +1 -1
  177. package/dist/wje-route.js +6 -24
  178. package/dist/wje-route.js.map +1 -1
  179. package/dist/wje-router-link.js +11 -39
  180. package/dist/wje-router-link.js.map +1 -1
  181. package/dist/wje-router-outlet.js +76 -172
  182. package/dist/wje-router-outlet.js.map +1 -1
  183. package/dist/wje-routerx.js +537 -1331
  184. package/dist/wje-routerx.js.map +1 -1
  185. package/dist/wje-row.js +9 -31
  186. package/dist/wje-row.js.map +1 -1
  187. package/dist/wje-select.js +326 -1152
  188. package/dist/wje-select.js.map +1 -1
  189. package/dist/wje-slider.js +44 -225
  190. package/dist/wje-slider.js.map +1 -1
  191. package/dist/wje-sliding-container.js +295 -1319
  192. package/dist/wje-sliding-container.js.map +1 -1
  193. package/dist/wje-split-view.js +35 -121
  194. package/dist/wje-split-view.js.map +1 -1
  195. package/dist/wje-status.js +14 -45
  196. package/dist/wje-status.js.map +1 -1
  197. package/dist/wje-step.js +9 -32
  198. package/dist/wje-step.js.map +1 -1
  199. package/dist/wje-stepper.js +109 -357
  200. package/dist/wje-stepper.js.map +1 -1
  201. package/dist/wje-store.js +67 -360
  202. package/dist/wje-store.js.map +1 -1
  203. package/dist/wje-tab-group.js +85 -314
  204. package/dist/wje-tab-group.js.map +1 -1
  205. package/dist/wje-tab-panel.js +7 -28
  206. package/dist/wje-tab-panel.js.map +1 -1
  207. package/dist/wje-tab.js +21 -198
  208. package/dist/wje-tab.js.map +1 -1
  209. package/dist/wje-textarea.js +64 -264
  210. package/dist/wje-textarea.js.map +1 -1
  211. package/dist/wje-thumbnail.js +10 -51
  212. package/dist/wje-thumbnail.js.map +1 -1
  213. package/dist/wje-toast.js +127 -632
  214. package/dist/wje-toast.js.map +1 -1
  215. package/dist/wje-toggle.js +52 -177
  216. package/dist/wje-toggle.js.map +1 -1
  217. package/dist/wje-toolbar-action.js +128 -456
  218. package/dist/wje-toolbar-action.js.map +1 -1
  219. package/dist/wje-toolbar.js +75 -270
  220. package/dist/wje-toolbar.js.map +1 -1
  221. package/dist/wje-tooltip.js +50 -161
  222. package/dist/wje-tooltip.js.map +1 -1
  223. package/dist/wje-tree-item.js +70 -301
  224. package/dist/wje-tree-item.js.map +1 -1
  225. package/dist/wje-tree.js +145 -489
  226. package/dist/wje-tree.js.map +1 -1
  227. package/dist/wje-visually-hidden.js +7 -34
  228. package/dist/wje-visually-hidden.js.map +1 -1
  229. package/package.json +3 -2
  230. package/dist/form-associated-element-DEQ4y-jn.js +0 -245
  231. package/dist/icon-CReYMzAK.js +0 -245
  232. package/dist/popup.element-CwXvVFK7.js +0 -2133
  233. package/dist/router-links-wjqCnncc.js +0 -156
@@ -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 _Option_instances, isCheckbox_fn, setCheckbox_fn;
11
- import WJElement from "./wje-element.js";
12
- import { I as Icon } from "./icon-CReYMzAK.js";
13
- import Checkbox from "./wje-checkbox.js";
14
- import { event } from "./event.js";
15
- const styles = `/*
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, _Option_instances);
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
- * Sets the selected attribute of the option.
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(value) {
166
- this._ownerSelect = value;
39
+ set ownerSelect(e2) {
40
+ this._ownerSelect = e2;
167
41
  }
168
- /**
169
- * Sets the value attribute of the option.
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
- * Sets the text content of the option.
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 styles;
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
- * This method is called whenever an observed attribute is added, removed, or changed.
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 fragment = document.createDocumentFragment();
231
- let native = document.createElement("div");
232
- native.classList.add("native-option");
233
- native.setAttribute("part", "native");
234
- let icon = document.createElement("wje-icon");
235
- icon.setAttribute("name", "check");
236
- icon.setAttribute("slot", "check");
237
- let checkboxEl = document.createElement("wje-checkbox");
238
- checkboxEl.setAttribute("slot", "check");
239
- let check = document.createElement("slot");
240
- check.setAttribute("name", "check");
241
- check.setAttribute("part", "check");
242
- let start = document.createElement("slot");
243
- start.setAttribute("name", "start");
244
- let slot = document.createElement("slot");
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
- event.addListener(this, "click", null, this.optionClickCallback);
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
- event.removeListener(this, "click", null, this.optionClickCallback);
87
+ s.removeListener(this, "click", null, this.optionClickCallback);
295
88
  }
296
- /**
297
- * Handles the click event on an option element and dispatches a custom event when triggered.
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
- _Option_instances = new WeakSet();
314
- /**
315
- * Checks if the given DOM node represents a checkbox element.
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 assigned = ((_a = this.check) == null ? void 0 : _a.assignedElements({ flatten: true })) ?? [];
330
- const arr = assigned.filter((item) => __privateMethod(this, _Option_instances, isCheckbox_fn).call(this, item));
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
- Option.define("wje-option", Option);
102
+ n.define("wje-option", n);
334
103
  export {
335
- Option as default
104
+ n as default
336
105
  };
337
106
  //# sourceMappingURL=wje-option.js.map
@@ -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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"}