wj-elements 0.7.6 → 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 (234) 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 +9053 -9048
  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/packages/wje-img/img.element.d.ts +4 -4
  22. package/dist/permissions.js +14 -41
  23. package/dist/permissions.js.map +1 -1
  24. package/dist/popup.element-CbkhthPP.js +806 -0
  25. package/dist/{popup.element-CwXvVFK7.js.map → popup.element-CbkhthPP.js.map} +1 -1
  26. package/dist/router-links-CNsJ-elb.js +105 -0
  27. package/dist/{router-links-wjqCnncc.js.map → router-links-CNsJ-elb.js.map} +1 -1
  28. package/dist/skeleton.css +1 -197
  29. package/dist/styles.css +1 -866
  30. package/dist/universal-service.js +48 -109
  31. package/dist/universal-service.js.map +1 -1
  32. package/dist/utils.js +11 -18
  33. package/dist/utils.js.map +1 -1
  34. package/dist/web-types.json +698 -698
  35. package/dist/wje-accordion-item.js +33 -106
  36. package/dist/wje-accordion-item.js.map +1 -1
  37. package/dist/wje-accordion.js +19 -84
  38. package/dist/wje-accordion.js.map +1 -1
  39. package/dist/wje-animation.js +37 -4258
  40. package/dist/wje-animation.js.map +1 -1
  41. package/dist/wje-aside.js +9 -34
  42. package/dist/wje-aside.js.map +1 -1
  43. package/dist/wje-avatar.js +36 -126
  44. package/dist/wje-avatar.js.map +1 -1
  45. package/dist/wje-badge.js +10 -52
  46. package/dist/wje-badge.js.map +1 -1
  47. package/dist/wje-breadcrumb.js +205 -668
  48. package/dist/wje-breadcrumb.js.map +1 -1
  49. package/dist/wje-breadcrumbs.js +177 -633
  50. package/dist/wje-breadcrumbs.js.map +1 -1
  51. package/dist/wje-button-group.js +48 -153
  52. package/dist/wje-button-group.js.map +1 -1
  53. package/dist/wje-button.js +92 -413
  54. package/dist/wje-button.js.map +1 -1
  55. package/dist/wje-card-content.js +7 -30
  56. package/dist/wje-card-content.js.map +1 -1
  57. package/dist/wje-card-controls.js +7 -30
  58. package/dist/wje-card-controls.js.map +1 -1
  59. package/dist/wje-card-header.js +7 -30
  60. package/dist/wje-card-header.js.map +1 -1
  61. package/dist/wje-card-subtitle.js +7 -34
  62. package/dist/wje-card-subtitle.js.map +1 -1
  63. package/dist/wje-card-title.js +7 -34
  64. package/dist/wje-card-title.js.map +1 -1
  65. package/dist/wje-card.js +15 -71
  66. package/dist/wje-card.js.map +1 -1
  67. package/dist/wje-carousel-item.js +12 -56
  68. package/dist/wje-carousel-item.js.map +1 -1
  69. package/dist/wje-carousel.js +154 -509
  70. package/dist/wje-carousel.js.map +1 -1
  71. package/dist/wje-checkbox.js +50 -227
  72. package/dist/wje-checkbox.js.map +1 -1
  73. package/dist/wje-chip.js +43 -160
  74. package/dist/wje-chip.js.map +1 -1
  75. package/dist/wje-col.js +7 -20
  76. package/dist/wje-col.js.map +1 -1
  77. package/dist/wje-color-picker.js +445 -1464
  78. package/dist/wje-color-picker.js.map +1 -1
  79. package/dist/wje-container.js +9 -35
  80. package/dist/wje-container.js.map +1 -1
  81. package/dist/wje-copy-button.js +64 -204
  82. package/dist/wje-copy-button.js.map +1 -1
  83. package/dist/wje-dialog.js +85 -553
  84. package/dist/wje-dialog.js.map +1 -1
  85. package/dist/wje-divider.js +7 -34
  86. package/dist/wje-divider.js.map +1 -1
  87. package/dist/wje-dropdown.js +78 -305
  88. package/dist/wje-dropdown.js.map +1 -1
  89. package/dist/wje-element.js +191 -700
  90. package/dist/wje-element.js.map +1 -1
  91. package/dist/wje-file-upload-item.js +51 -156
  92. package/dist/wje-file-upload-item.js.map +1 -1
  93. package/dist/wje-file-upload.js +181 -619
  94. package/dist/wje-file-upload.js.map +1 -1
  95. package/dist/wje-footer.js +7 -31
  96. package/dist/wje-footer.js.map +1 -1
  97. package/dist/wje-form.js +7 -32
  98. package/dist/wje-form.js.map +1 -1
  99. package/dist/wje-format-digital.js +26 -118
  100. package/dist/wje-format-digital.js.map +1 -1
  101. package/dist/wje-grid.js +7 -33
  102. package/dist/wje-grid.js.map +1 -1
  103. package/dist/wje-header.js +9 -35
  104. package/dist/wje-header.js.map +1 -1
  105. package/dist/wje-icon-library.js +12 -18
  106. package/dist/wje-icon-library.js.map +1 -1
  107. package/dist/wje-icon-picker.js +65 -320
  108. package/dist/wje-icon-picker.js.map +1 -1
  109. package/dist/wje-icon.js +1 -1
  110. package/dist/wje-img-comparer.js +37 -114
  111. package/dist/wje-img-comparer.js.map +1 -1
  112. package/dist/wje-img.js +50 -197
  113. package/dist/wje-img.js.map +1 -1
  114. package/dist/wje-infinite-scroll.js +94 -346
  115. package/dist/wje-infinite-scroll.js.map +1 -1
  116. package/dist/wje-input-file.js +23 -84
  117. package/dist/wje-input-file.js.map +1 -1
  118. package/dist/wje-input.js +78 -392
  119. package/dist/wje-input.js.map +1 -1
  120. package/dist/wje-item.js +11 -64
  121. package/dist/wje-item.js.map +1 -1
  122. package/dist/wje-kanban.js +124 -401
  123. package/dist/wje-kanban.js.map +1 -1
  124. package/dist/wje-label.js +9 -32
  125. package/dist/wje-label.js.map +1 -1
  126. package/dist/wje-level-indicator.js +38 -157
  127. package/dist/wje-level-indicator.js.map +1 -1
  128. package/dist/wje-list.js +10 -40
  129. package/dist/wje-list.js.map +1 -1
  130. package/dist/wje-main.js +7 -31
  131. package/dist/wje-main.js.map +1 -1
  132. package/dist/wje-masonry.js +66 -211
  133. package/dist/wje-masonry.js.map +1 -1
  134. package/dist/wje-master.js +45 -161
  135. package/dist/wje-master.js.map +1 -1
  136. package/dist/wje-menu-button.js +10 -38
  137. package/dist/wje-menu-button.js.map +1 -1
  138. package/dist/wje-menu-item.js +127 -577
  139. package/dist/wje-menu-item.js.map +1 -1
  140. package/dist/wje-menu-label.js +9 -35
  141. package/dist/wje-menu-label.js.map +1 -1
  142. package/dist/wje-menu.js +14 -49
  143. package/dist/wje-menu.js.map +1 -1
  144. package/dist/wje-option.js +48 -279
  145. package/dist/wje-option.js.map +1 -1
  146. package/dist/wje-options.js +130 -384
  147. package/dist/wje-options.js.map +1 -1
  148. package/dist/wje-orgchart-group.js +16 -52
  149. package/dist/wje-orgchart-group.js.map +1 -1
  150. package/dist/wje-orgchart-item.js +24 -93
  151. package/dist/wje-orgchart-item.js.map +1 -1
  152. package/dist/wje-orgchart.js +18 -68
  153. package/dist/wje-orgchart.js.map +1 -1
  154. package/dist/wje-pagination.js +113 -397
  155. package/dist/wje-pagination.js.map +1 -1
  156. package/dist/wje-popup.js +3 -3
  157. package/dist/wje-popup.js.map +1 -1
  158. package/dist/wje-progress-bar.js +53 -205
  159. package/dist/wje-progress-bar.js.map +1 -1
  160. package/dist/wje-qr-code.js +398 -2980
  161. package/dist/wje-qr-code.js.map +1 -1
  162. package/dist/wje-radio-group.js +52 -190
  163. package/dist/wje-radio-group.js.map +1 -1
  164. package/dist/wje-radio.js +24 -118
  165. package/dist/wje-radio.js.map +1 -1
  166. package/dist/wje-rate.js +62 -266
  167. package/dist/wje-rate.js.map +1 -1
  168. package/dist/wje-relative-time.js +24 -99
  169. package/dist/wje-relative-time.js.map +1 -1
  170. package/dist/wje-reorder-dropzone.js +9 -31
  171. package/dist/wje-reorder-dropzone.js.map +1 -1
  172. package/dist/wje-reorder-handle.js +67 -204
  173. package/dist/wje-reorder-handle.js.map +1 -1
  174. package/dist/wje-reorder-item.js +14 -44
  175. package/dist/wje-reorder-item.js.map +1 -1
  176. package/dist/wje-reorder.js +61 -246
  177. package/dist/wje-reorder.js.map +1 -1
  178. package/dist/wje-route.js +6 -24
  179. package/dist/wje-route.js.map +1 -1
  180. package/dist/wje-router-link.js +11 -39
  181. package/dist/wje-router-link.js.map +1 -1
  182. package/dist/wje-router-outlet.js +76 -172
  183. package/dist/wje-router-outlet.js.map +1 -1
  184. package/dist/wje-routerx.js +537 -1331
  185. package/dist/wje-routerx.js.map +1 -1
  186. package/dist/wje-row.js +9 -31
  187. package/dist/wje-row.js.map +1 -1
  188. package/dist/wje-select.js +326 -1152
  189. package/dist/wje-select.js.map +1 -1
  190. package/dist/wje-slider.js +44 -225
  191. package/dist/wje-slider.js.map +1 -1
  192. package/dist/wje-sliding-container.js +295 -1319
  193. package/dist/wje-sliding-container.js.map +1 -1
  194. package/dist/wje-split-view.js +35 -121
  195. package/dist/wje-split-view.js.map +1 -1
  196. package/dist/wje-status.js +14 -45
  197. package/dist/wje-status.js.map +1 -1
  198. package/dist/wje-step.js +9 -32
  199. package/dist/wje-step.js.map +1 -1
  200. package/dist/wje-stepper.js +109 -357
  201. package/dist/wje-stepper.js.map +1 -1
  202. package/dist/wje-store.js +67 -360
  203. package/dist/wje-store.js.map +1 -1
  204. package/dist/wje-tab-group.js +85 -314
  205. package/dist/wje-tab-group.js.map +1 -1
  206. package/dist/wje-tab-panel.js +7 -28
  207. package/dist/wje-tab-panel.js.map +1 -1
  208. package/dist/wje-tab.js +21 -198
  209. package/dist/wje-tab.js.map +1 -1
  210. package/dist/wje-textarea.js +64 -264
  211. package/dist/wje-textarea.js.map +1 -1
  212. package/dist/wje-thumbnail.js +10 -51
  213. package/dist/wje-thumbnail.js.map +1 -1
  214. package/dist/wje-toast.js +127 -632
  215. package/dist/wje-toast.js.map +1 -1
  216. package/dist/wje-toggle.js +52 -177
  217. package/dist/wje-toggle.js.map +1 -1
  218. package/dist/wje-toolbar-action.js +128 -456
  219. package/dist/wje-toolbar-action.js.map +1 -1
  220. package/dist/wje-toolbar.js +75 -270
  221. package/dist/wje-toolbar.js.map +1 -1
  222. package/dist/wje-tooltip.js +50 -161
  223. package/dist/wje-tooltip.js.map +1 -1
  224. package/dist/wje-tree-item.js +70 -301
  225. package/dist/wje-tree-item.js.map +1 -1
  226. package/dist/wje-tree.js +145 -489
  227. package/dist/wje-tree.js.map +1 -1
  228. package/dist/wje-visually-hidden.js +7 -34
  229. package/dist/wje-visually-hidden.js.map +1 -1
  230. package/package.json +4 -2
  231. package/dist/form-associated-element-DEQ4y-jn.js +0 -245
  232. package/dist/icon-CReYMzAK.js +0 -245
  233. package/dist/popup.element-CwXvVFK7.js +0 -2133
  234. 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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"}