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
@@ -1,627 +1,159 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import WJElement from "./wje-element.js";
5
- import { event } from "./event.js";
6
- const styles = `/*
7
- [ WJ Dialog ]
8
- */
9
-
10
- :host {
11
- --wje-dialog-header-actions-gap: 0.5rem;
12
-
13
- .close {
14
- margin-left: auto;
15
- }
16
-
17
- .header-actions {
18
- margin-left: auto;
19
- display: flex;
20
- align-items: center;
21
- gap: var(--wje-dialog-header-actions-gap);
22
- }
23
-
24
- .modal-content {
25
- border-radius: 3px;
26
- box-shadow: none;
27
- }
28
-
29
- .dialog-header {
30
- position: relative;
31
- border-bottom: 0;
32
- padding-inline: var(--wje-dialog-header-padding-inline);
33
- padding-block: var(--wje-dialog-header-padding-block);
34
- display: grid;
35
- grid-template-columns: 1fr auto auto; /* headline vľavo, button vpravo */
36
- grid-template-rows: auto; /* horný riadok, potom header-actions */
37
- align-items: center;
38
- gap: 0.5rem;
39
- > span[part="headline"] {
40
- font-family: var(--wje-font-family-secondary);
41
- font-size: var(--wje-dialog-headline-font-size);
42
- text-transform: var(--wje-dialog-headline-text-transform);
43
- display: inline-block;
44
- letter-spacing: var(--wje-dialog-headline-letter-spacing);
45
- font-weight: var(--wje-dialog-headline-font-weight);
46
- margin: 0;
47
- padding: 0;
48
- line-height: normal;
49
- overflow: hidden;
50
- text-overflow: ellipsis;
51
- filter: alpha(opacity=40);
52
-
53
- grid-column: 1;
54
- }
55
-
56
- > wje-button[part="close"] {
57
- grid-column: 3;
58
- grid-row: 1;
59
- justify-self: end;
60
- }
61
-
62
- > .header-actions {
63
- grid-column: 2;
64
- grid-row: 1;
65
- }
66
- }
67
-
68
- .dialog-content {
69
- box-shadow: none;
70
- padding-inline: var(--wje-dialog-content-padding-inline);
71
- padding-block: var(--wje-dialog-content-padding-block);
72
- white-space: normal;
73
- z-index: 1;
74
- }
75
-
76
- .dialog-footer {
77
- display: flex;
78
- justify-content: end;
79
- border-top: none;
80
- box-shadow: none;
81
- margin-top: 0;
82
- padding-inline: var(--wje-dialog-footer-padding-inline);
83
- padding-block: var(--wje-dialog-footer-padding-block);
84
- }
85
-
86
- /* Footer should not take space when nothing is slotted */
87
- .dialog-footer[hidden] {
88
- display: none;
89
- padding-inline: 0;
90
- padding-block: 0;
91
- }
92
- }
93
-
94
- .blocking-element {
95
- position: absolute;
96
- top: 0;
97
- left: 0;
98
- right: 0;
99
- bottom: 0;
100
- background-color: var(--wje-color-contrast-0);
101
- opacity: 0.75;
102
- z-index: 1;
103
- display: flex;
104
- align-items: center;
105
- justify-content: center;
106
- height: 100%;
107
-
108
- wje-icon {
109
- animation: loader 1s linear infinite;
110
- }
111
- }
112
-
113
- @keyframes loader {
114
- 0% {
115
- transform: rotate(0deg);
116
- }
117
- 100% {
118
- transform: rotate(360deg);
119
- }
120
- }
121
-
122
- dialog::backdrop {
123
- opacity: var(--wje-backdrop-opacity);
124
- background-color: var(--wje-backdrop);
125
- }
126
-
127
- dialog:focus-visible {
128
- outline: none;
129
- }
130
-
131
- :host(.separator) .dialog-header:after {
132
- content: '';
133
- height: 1px;
134
- background: rgba(0, 0, 0, 0.08);
135
- left: var(--wje-dialog-padding);
136
- right: var(--wje-dialog-padding);
137
- position: absolute;
138
- bottom: 0;
139
- }
140
-
141
- :host {
142
- dialog {
143
- background: var(--wje-dialog-background);
144
- box-sizing: border-box;
145
- transition: all 0.2s !important;
146
- width: var(--wje-dialog-width);
147
- height: var(--wje-dialog-height);
148
- box-shadow: var(--wje-shadow-large);
149
-
150
- border-radius: var(--wje-dialog-border-radius);
151
- border-width: var(--wje-dialog-border-width);
152
- border-style: var(--wje-dialog-border-style);
153
- border-color: var(--wje-dialog-border-color);
154
-
155
- margin-top: var(--wje-dialog-margin-top);
156
-
157
- margin-bottom: var(--wje-dialog-margin-bottom);
158
- margin-inline: var(--wje-dialog-margin-start) var(--wje-dialog-margin-end);
159
-
160
- padding: 0;
161
- }
162
- }
163
-
164
-
165
- /*Top*/
166
- :host(.stick-up) {
167
- --wje-dialog-width: 300px;
168
- --wje-dialog-height: fit-content;
169
- --wje-dialog-border-radius: 0 0 var(--wje-border-radius-large) var(--wje-border-radius-large);
170
- --wje-dialog-border-width: 0 1px 1px 1px;
171
- --wje-dialog-margin-top: 0;
172
- --wje-dialog-translate-from: translateY(-110%);
173
- --wje-dialog-template-to: translateX(0);
174
- }
175
-
176
- /*Cenetered*/
177
- :host(.slide-up) {
178
- --wje-dialog-width: 300px;
179
- --wje-dialog-height: fit-content;
180
- --wje-dialog-border-radius: var(--wje-border-radius-large);
181
- --wje-dialog-border-width: 1px;
182
- --wje-dialog-opacity-from: 0;
183
- --wje-dialog-translate-from: scale(0.9);
184
- --wje-dialog-translate-to: scale(1);
185
- }
186
-
187
- /*Fullscreen*/
188
- :host(.fill-in) {
189
- --wje-dialog-width: 100%;
190
- --wje-dialog-height: 100%;
191
- --wje-dialog-border-radius: 0 0 0 0 !important;
192
- --wje-dialog-border-width: 0;
193
- --wje-dialog-margin-top: 0;
194
- --wje-dialog-margin-start: 0;
195
- --wje-dialog-margin-end: 0;
196
- --wje-dialog-margin-bottom: 0;
197
- --wje-dialog-translate-from: scale(0.95);
198
- --wje-dialog-translate-to: scale(1);
199
- dialog {
200
- min-width: var(--wje-dialog-width);
201
- min-height: var(--wje-dialog-height);
202
- }
203
- }
204
-
205
- /*Slide Left*/
206
- :host(.slide-left) {
207
- --wje-dialog-width: 300px;
208
- --wje-dialog-height: 100%;
209
- --wje-dialog-border-radius: 0;
210
- --wje-dialog-border-width: 0 1px 0 0;
211
- --wje-dialog-margin-top: 0;
212
- --wje-dialog-margin-start: 0;
213
- --wje-dialog-margin-end: auto;
214
- --wje-dialog-margin-bottom: 0;
215
- dialog {
216
- min-height: var(--wje-dialog-height);
217
- --wje-dialog-translate-from: translateX(-110%);
218
- --wje-dialog-template-to: translateX(0);
219
- }
220
- }
221
-
222
- /*Slide Right*/
223
- :host(.slide-right) {
224
- --wje-dialog-width: 300px !important;
225
- --wje-dialog-height: 100% !important;
226
- --wje-dialog-border-radius: 0;
227
- --wje-dialog-border-width: 0 0 0 1px;
228
- --wje-dialog-margin-top: 0;
229
- --wje-dialog-margin-start: auto;
230
- --wje-dialog-margin-end: 0;
231
- --wje-dialog-margin-bottom: 0;
232
- dialog {
233
- min-height: var(--wje-dialog-height);
234
- --wje-dialog-translate-from: translateX(110%);
235
- --wje-dialog-template-to: translateX(0);
236
- }
237
- }
238
-
239
- :host(.small) {
240
- --wje-dialog-width: 300px !important;
241
- }
242
-
243
- :host(.medium) {
244
- --wje-dialog-width: 500px !important;
245
- }
246
-
247
- :host(.large) {
248
- --wje-dialog-width: 600px !important;
249
- }
250
-
251
- :host(.ex-large) {
252
- --wje-dialog-width: 900px !important;
253
- }
254
-
255
- dialog[open] {
256
- animation: show 0.5s ease normal;
257
- }
258
-
259
- @keyframes show {
260
- from {
261
- opacity: var(--wje-dialog-opacity-from, 1);
262
- transform: var(--wje-dialog-translate-from);
263
- }
264
- to {
265
- opacity: 1;
266
- transform: var(--wje-dialog-translate-to);
267
- }
268
- }
269
-
270
- :host(.scroll-body) {
271
- dialog[open] {
272
- display: flex;
273
- flex-direction: column;
274
- overflow: hidden;
275
- }
276
- .dialog-content {
277
- overflow: auto;
278
- padding-block: 0;
279
- margin-block: var(--wje-dialog-content-padding-block);
280
- }
281
- }
282
- `;
283
- const _Dialog = class _Dialog extends WJElement {
284
- /**
285
- * @class
286
- */
4
+ import e from "./wje-element.js";
5
+ import { event as t } from "./event.js";
6
+ const _i = class _i extends e {
287
7
  constructor() {
288
8
  super();
289
- /**
290
- * Sets the headline of the dialog.
291
- * @type {string}
292
- */
293
9
  __publicField(this, "className", "Dialog");
294
- /**
295
- * Opens the dialog.
296
- * @param e
297
- */
298
- __publicField(this, "onOpen", (e) => {
299
- if (!this.dialog || this.dialog.open || this._opening) return;
300
- this._opening = true;
301
- setTimeout(() => {
302
- Promise.resolve().then(() => this.beforeOpen(this, e)).then(() => {
303
- if (!this.dialog || this.dialog.open) return;
304
- this.dialog.replaceChildren();
305
- this.htmlDialogBody(this.dialog);
306
- this.dialog.showModal();
307
- this.syncHostOpenState();
308
- this.dialog.setAttribute("aria-modal", "true");
309
- if (this.dialog.open) {
310
- Promise.resolve(this.afterOpen(this, e));
311
- }
312
- }).catch((err) => {
313
- console.error(err);
10
+ __publicField(this, "onOpen", (e2) => {
11
+ !this.dialog || this.dialog.open || this._opening || (this._opening = true, setTimeout(() => {
12
+ Promise.resolve().then(() => this.beforeOpen(this, e2)).then(() => {
13
+ this.dialog && !this.dialog.open && (this.dialog.replaceChildren(), this.htmlDialogBody(this.dialog), this.dialog.showModal(), this.syncHostOpenState(), this.dialog.setAttribute("aria-modal", "true"), this.dialog.open && Promise.resolve(this.afterOpen(this, e2)));
14
+ }).catch((e3) => {
15
+ console.error(e3);
314
16
  }).finally(() => {
315
17
  this._opening = false;
316
18
  });
317
- }, 0);
19
+ }, 0));
318
20
  });
319
- /**
320
- * Closes the dialog.
321
- * @param {object} e
322
- */
323
- __publicField(this, "onClose", (e) => {
324
- Promise.resolve(this.beforeClose(this, e)).then((res) => {
325
- if (!this.dialog || typeof this.dialog.close !== "function") return;
326
- if (this.dialog.open) {
327
- this.dialog.close();
328
- }
329
- this.dialog.removeAttribute("aria-modal");
330
- this.syncHostOpenState();
331
- if (!this.dialog.open) {
332
- Promise.resolve(this.afterClose(this, e));
333
- }
21
+ __publicField(this, "onClose", (e2) => {
22
+ Promise.resolve(this.beforeClose(this, e2)).then((t2) => {
23
+ this.dialog && "function" == typeof this.dialog.close && (this.dialog.open && this.dialog.close(), this.dialog.removeAttribute("aria-modal"), this.syncHostOpenState(), this.dialog.open || Promise.resolve(this.afterClose(this, e2)));
334
24
  });
335
25
  });
336
26
  __publicField(this, "onNativeDialogClose", () => {
337
27
  var _a;
338
- (_a = this.dialog) == null ? void 0 : _a.removeAttribute("aria-modal");
339
- this.removeAttribute("open");
28
+ (_a = this.dialog) == null ? void 0 : _a.removeAttribute("aria-modal"), this.removeAttribute("open");
340
29
  });
341
30
  __publicField(this, "syncHostOpenState", () => {
342
31
  var _a;
343
32
  this.toggleAttribute("open", !!((_a = this.dialog) == null ? void 0 : _a.open));
344
33
  });
345
- this._instanceId = ++_Dialog._instanceId;
346
- this._opening = false;
34
+ this._instanceId = ++_i._instanceId, this._opening = false;
347
35
  }
348
- /**
349
- * Sets the value of the 'headline' attribute.
350
- * @param {string} value The new value for the 'headline' attribute.
351
- */
352
- set headline(value) {
353
- this.setAttribute("headline", value);
36
+ set headline(e2) {
37
+ this.setAttribute("headline", e2);
354
38
  }
355
- /**
356
- * Retrieves the value of the "headline" attribute from the element.
357
- * If the "headline" attribute is not present, returns an empty string.
358
- * @returns {string} The headline attribute value or an empty string if not set.
359
- */
360
39
  get headline() {
361
40
  return this.getAttribute("headline") || "";
362
41
  }
363
- /**
364
- * Sets the headline of the dialog.
365
- * @param value
366
- */
367
- set placement(value) {
368
- this.setAttribute("placement", value);
42
+ set placement(e2) {
43
+ this.setAttribute("placement", e2);
369
44
  }
370
- /**
371
- * Gets the headline of the dialog.
372
- * @returns {string|string}
373
- */
374
45
  get placement() {
375
46
  return this.getAttribute("placement") || "slide-up";
376
47
  }
377
- /**
378
- * Sets the headline of the dialog.
379
- * @param value
380
- */
381
- set async(value) {
48
+ set async(e2) {
382
49
  this.setAttribute("async", "");
383
50
  }
384
- /**
385
- * Gets the headline of the dialog.
386
- * @returns {boolean}
387
- */
388
51
  get async() {
389
52
  return this.hasAttribute("async");
390
53
  }
391
- /**
392
- * Sets the headline of the dialog.
393
- * @param value
394
- */
395
- set closeHidden(value) {
396
- if (value) this.setAttribute("close-hidden", "");
54
+ set closeHidden(e2) {
55
+ e2 && this.setAttribute("close-hidden", "");
397
56
  }
398
- /**
399
- * Gets the headline of the dialog.
400
- * @returns {boolean}
401
- */
402
57
  get closeHidden() {
403
58
  return !!this.hasAttribute("close-hidden");
404
59
  }
405
- set hiddenHeader(value) {
406
- if (value) this.setAttribute("hidden-header", "");
60
+ set hiddenHeader(e2) {
61
+ e2 && this.setAttribute("hidden-header", "");
407
62
  }
408
63
  get hiddenHeader() {
409
64
  return !!this.hasAttribute("hidden-header");
410
65
  }
411
- set hiddenFooter(value) {
412
- if (value) this.setAttribute("hidden-footer", "");
66
+ set hiddenFooter(e2) {
67
+ e2 && this.setAttribute("hidden-footer", "");
413
68
  }
414
69
  get hiddenFooter() {
415
70
  return !!this.hasAttribute("hidden-footer");
416
71
  }
417
- /**
418
- * Returns the CSS styles for the component.
419
- * @returns {*}
420
- */
421
72
  static get cssStyleSheet() {
422
- return styles;
73
+ return ':host{--wje-dialog-header-actions-gap: .5rem}:host .close{margin-left:auto}:host .header-actions{margin-left:auto;display:flex;align-items:center;gap:var(--wje-dialog-header-actions-gap)}:host .modal-content{border-radius:3px;box-shadow:none}:host .dialog-header{position:relative;border-bottom:0;padding-inline:var(--wje-dialog-header-padding-inline);padding-block:var(--wje-dialog-header-padding-block);display:grid;grid-template-columns:1fr auto auto;grid-template-rows:auto;align-items:center;gap:.5rem}:host .dialog-header>span[part=headline]{font-family:var(--wje-font-family-secondary);font-size:var(--wje-dialog-headline-font-size);text-transform:var(--wje-dialog-headline-text-transform);display:inline-block;letter-spacing:var(--wje-dialog-headline-letter-spacing);font-weight:var(--wje-dialog-headline-font-weight);margin:0;padding:0;line-height:normal;overflow:hidden;text-overflow:ellipsis;filter:alpha(opacity=40);grid-column:1}:host .dialog-header>wje-button[part=close]{grid-column:3;grid-row:1;justify-self:end}:host .dialog-header>.header-actions{grid-column:2;grid-row:1}:host .dialog-content{box-shadow:none;padding-inline:var(--wje-dialog-content-padding-inline);padding-block:var(--wje-dialog-content-padding-block);white-space:normal;z-index:1}:host .dialog-footer{display:flex;justify-content:end;border-top:none;box-shadow:none;margin-top:0;padding-inline:var(--wje-dialog-footer-padding-inline);padding-block:var(--wje-dialog-footer-padding-block)}:host .dialog-footer[hidden]{display:none;padding-inline:0;padding-block:0}.blocking-element{position:absolute;top:0;left:0;right:0;bottom:0;background-color:var(--wje-color-contrast-0);opacity:.75;z-index:1;display:flex;align-items:center;justify-content:center;height:100%}.blocking-element wje-icon{animation:loader 1s linear infinite}@keyframes loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}dialog::backdrop{opacity:var(--wje-backdrop-opacity);background-color:var(--wje-backdrop)}dialog:focus-visible{outline:none}:host(.separator) .dialog-header:after{content:"";height:1px;background:#00000014;left:var(--wje-dialog-padding);right:var(--wje-dialog-padding);position:absolute;bottom:0}:host dialog{background:var(--wje-dialog-background);box-sizing:border-box;transition:all .2s!important;width:var(--wje-dialog-width);height:var(--wje-dialog-height);box-shadow:var(--wje-shadow-large);border-radius:var(--wje-dialog-border-radius);border-width:var(--wje-dialog-border-width);border-style:var(--wje-dialog-border-style);border-color:var(--wje-dialog-border-color);margin-top:var(--wje-dialog-margin-top);margin-bottom:var(--wje-dialog-margin-bottom);margin-inline:var(--wje-dialog-margin-start) var(--wje-dialog-margin-end);padding:0}:host(.stick-up){--wje-dialog-width: 300px;--wje-dialog-height: fit-content;--wje-dialog-border-radius: 0 0 var(--wje-border-radius-large) var(--wje-border-radius-large);--wje-dialog-border-width: 0 1px 1px 1px;--wje-dialog-margin-top: 0;--wje-dialog-translate-from: translateY(-110%);--wje-dialog-template-to: translateX(0)}:host(.slide-up){--wje-dialog-width: 300px;--wje-dialog-height: fit-content;--wje-dialog-border-radius: var(--wje-border-radius-large);--wje-dialog-border-width: 1px;--wje-dialog-opacity-from: 0;--wje-dialog-translate-from: scale(.9);--wje-dialog-translate-to: scale(1)}:host(.fill-in){--wje-dialog-width: 100%;--wje-dialog-height: 100%;--wje-dialog-border-radius: 0 0 0 0 !important;--wje-dialog-border-width: 0;--wje-dialog-margin-top: 0;--wje-dialog-margin-start: 0;--wje-dialog-margin-end: 0;--wje-dialog-margin-bottom: 0;--wje-dialog-translate-from: scale(.95);--wje-dialog-translate-to: scale(1)}:host(.fill-in) dialog{min-width:var(--wje-dialog-width);min-height:var(--wje-dialog-height)}:host(.slide-left){--wje-dialog-width: 300px;--wje-dialog-height: 100%;--wje-dialog-border-radius: 0;--wje-dialog-border-width: 0 1px 0 0;--wje-dialog-margin-top: 0;--wje-dialog-margin-start: 0;--wje-dialog-margin-end: auto;--wje-dialog-margin-bottom: 0}:host(.slide-left) dialog{min-height:var(--wje-dialog-height);--wje-dialog-translate-from: translateX(-110%);--wje-dialog-template-to: translateX(0)}:host(.slide-right){--wje-dialog-width: 300px !important;--wje-dialog-height: 100% !important;--wje-dialog-border-radius: 0;--wje-dialog-border-width: 0 0 0 1px;--wje-dialog-margin-top: 0;--wje-dialog-margin-start: auto;--wje-dialog-margin-end: 0;--wje-dialog-margin-bottom: 0}:host(.slide-right) dialog{min-height:var(--wje-dialog-height);--wje-dialog-translate-from: translateX(110%);--wje-dialog-template-to: translateX(0)}:host(.small){--wje-dialog-width: 300px !important}:host(.medium){--wje-dialog-width: 500px !important}:host(.large){--wje-dialog-width: 600px !important}:host(.ex-large){--wje-dialog-width: 900px !important}dialog[open]{animation:show .5s ease normal}@keyframes show{0%{opacity:var(--wje-dialog-opacity-from, 1);transform:var(--wje-dialog-translate-from)}to{opacity:1;transform:var(--wje-dialog-translate-to)}}:host(.scroll-body) dialog[open]{display:flex;flex-direction:column;overflow:hidden}:host(.scroll-body) .dialog-content{overflow:auto;padding-block:0;margin-block:var(--wje-dialog-content-padding-block)}';
423
74
  }
424
- /**
425
- * Returns the list of attributes to observe for changes.
426
- * @returns {*[]}
427
- */
428
75
  static get observedAttributes() {
429
76
  return [];
430
77
  }
431
- /**
432
- * Sets up the attributes for the component.
433
- */
434
78
  setupAttributes() {
435
79
  this.isShadowRoot = "open";
436
80
  }
437
- /**
438
- * Draws the component.
439
- * @param {object} context The context for drawing.
440
- * @param {object} store The store for drawing.
441
- * @param {object} params The parameters for drawing.
442
- * @returns {DocumentFragment}
443
- */
444
- draw(context, store, params) {
445
- let fragment = document.createDocumentFragment();
446
- this.classList.add("fade", this.placement, params.size);
447
- let dialog = document.createElement("dialog");
448
- dialog.setAttribute("part", "dialog");
449
- dialog.classList.add("modal-dialog");
450
- dialog.addEventListener("close", this.onNativeDialogClose);
451
- fragment.appendChild(dialog);
452
- this.dialog = dialog;
453
- this.syncHostOpenState();
454
- return fragment;
455
- }
456
- /**
457
- * Draws the component after it has been drawn.
458
- * @param {object} context The context for drawing.
459
- * @param {object} store The store for drawing.
460
- * @param {object} params The parameters for drawing.
461
- */
462
- afterDraw(context, store, params) {
463
- if (params.trigger) {
464
- event.addListener(document, params.trigger, null, this.onOpen);
465
- }
466
- }
467
- /**
468
- * Creates the dialog body.
469
- * @param dialog
470
- */
471
- htmlDialogBody(dialog) {
472
- const dialogId = this.id || `wje-dialog-${this._instanceId}`;
473
- dialog.replaceChildren();
474
- let icon = document.createElement("wje-icon");
475
- icon.setAttribute("name", "x");
476
- icon.setAttribute("slot", "icon-only");
477
- let close = document.createElement("wje-button");
478
- close.setAttribute("fill", "link");
479
- close.setAttribute("size", "small");
480
- close.setAttribute("part", "close");
481
- close.setAttribute("label", "Close dialog");
482
- close.addEventListener("click", (e) => {
483
- this.close(e);
81
+ draw(e2, t2, i2) {
82
+ let o = document.createDocumentFragment();
83
+ this.classList.add("fade", this.placement, i2.size);
84
+ let a = document.createElement("dialog");
85
+ return a.setAttribute("part", "dialog"), a.classList.add("modal-dialog"), a.addEventListener("close", this.onNativeDialogClose), o.appendChild(a), this.dialog = a, this.syncHostOpenState(), o;
86
+ }
87
+ afterDraw(e2, i2, o) {
88
+ o.trigger && t.addListener(document, o.trigger, null, this.onOpen);
89
+ }
90
+ htmlDialogBody(e2) {
91
+ const t2 = this.id || `wje-dialog-${this._instanceId}`;
92
+ e2.replaceChildren();
93
+ let i2 = document.createElement("wje-icon");
94
+ i2.setAttribute("name", "x"), i2.setAttribute("slot", "icon-only");
95
+ let o = document.createElement("wje-button");
96
+ o.setAttribute("fill", "link"), o.setAttribute("size", "small"), o.setAttribute("part", "close"), o.setAttribute("label", "Close dialog"), o.addEventListener("click", (e3) => {
97
+ this.close(e3);
484
98
  });
485
- let header = document.createElement("div");
486
- header.setAttribute("part", "header");
487
- header.classList.add("dialog-header");
488
- header.id = `${dialogId}-header`;
489
- if (this.hasAttribute("headline"))
490
- header.innerHTML = `<span part="headline">${this.headline}</span>`;
491
- let slotHeader = document.createElement("slot");
492
- slotHeader.setAttribute("name", "header");
493
- const headerActions = document.createElement("div");
494
- headerActions.classList.add("header-actions");
495
- headerActions.setAttribute("part", "header-actions");
496
- headerActions.appendChild(slotHeader);
497
- let contentSlot = document.createElement("slot");
498
- let body = document.createElement("div");
499
- body.setAttribute("part", "body");
500
- body.classList.add("dialog-content");
501
- body.id = `${dialogId}-body`;
502
- let footer = document.createElement("div");
503
- footer.setAttribute("part", "footer");
504
- footer.classList.add("dialog-footer");
505
- footer.innerHTML = "";
506
- let slotFooter = document.createElement("slot");
507
- slotFooter.setAttribute("name", "footer");
508
- slotFooter.id = "footerSlot";
509
- slotFooter.addEventListener("slotchange", () => this.updateHasFooter());
510
- close.appendChild(icon);
511
- if (!this.closeHidden) header.appendChild(close);
512
- header.appendChild(headerActions);
513
- body.appendChild(contentSlot);
514
- footer.appendChild(slotFooter);
515
- if (!this.hiddenHeader) dialog.appendChild(header);
516
- dialog.appendChild(body);
517
- if (!this.hiddenFooter) dialog.appendChild(footer);
518
- dialog.setAttribute("role", "dialog");
519
- dialog.setAttribute("aria-describedby", body.id);
520
- if (!this.hiddenHeader) {
521
- dialog.setAttribute("aria-labelledby", header.id);
522
- dialog.removeAttribute("aria-label");
523
- } else {
524
- dialog.removeAttribute("aria-labelledby");
525
- if (this.headline) {
526
- dialog.setAttribute("aria-label", this.headline);
527
- } else {
528
- dialog.removeAttribute("aria-label");
529
- }
530
- }
531
- Promise.resolve().then(() => this.updateHasFooter());
532
- }
533
- /**
534
- * Closes the dialog.
535
- * @param e
536
- */
537
- close(e) {
538
- this.onClose(e);
99
+ let a = document.createElement("div");
100
+ a.setAttribute("part", "header"), a.classList.add("dialog-header"), a.id = `${t2}-header`, this.hasAttribute("headline") && (a.innerHTML = `<span part="headline">${this.headline}</span>`);
101
+ let d = document.createElement("slot");
102
+ d.setAttribute("name", "header");
103
+ const r = document.createElement("div");
104
+ r.classList.add("header-actions"), r.setAttribute("part", "header-actions"), r.appendChild(d);
105
+ let l = document.createElement("slot"), n = document.createElement("div");
106
+ n.setAttribute("part", "body"), n.classList.add("dialog-content"), n.id = `${t2}-body`;
107
+ let s = document.createElement("div");
108
+ s.setAttribute("part", "footer"), s.classList.add("dialog-footer"), s.innerHTML = "";
109
+ let g = document.createElement("slot");
110
+ g.setAttribute("name", "footer"), g.id = "footerSlot", g.addEventListener("slotchange", () => this.updateHasFooter()), o.appendChild(i2), this.closeHidden || a.appendChild(o), a.appendChild(r), n.appendChild(l), s.appendChild(g), this.hiddenHeader || e2.appendChild(a), e2.appendChild(n), this.hiddenFooter || e2.appendChild(s), e2.setAttribute("role", "dialog"), e2.setAttribute("aria-describedby", n.id), this.hiddenHeader ? (e2.removeAttribute("aria-labelledby"), this.headline ? e2.setAttribute("aria-label", this.headline) : e2.removeAttribute("aria-label")) : (e2.setAttribute("aria-labelledby", a.id), e2.removeAttribute("aria-label")), Promise.resolve().then(() => this.updateHasFooter());
111
+ }
112
+ close(e2) {
113
+ this.onClose(e2);
539
114
  }
540
- /**
541
- * Before the component is disconnected.
542
- */
543
115
  beforeDisconnect() {
544
116
  var _a, _b, _c;
545
- if ((_a = this.params) == null ? void 0 : _a.trigger) {
546
- event.removeListener(document, (_b = this.params) == null ? void 0 : _b.trigger, null, this.onOpen);
547
- }
548
- (_c = this.dialog) == null ? void 0 : _c.removeEventListener("close", this.onNativeDialogClose);
117
+ ((_a = this.params) == null ? void 0 : _a.trigger) && t.removeListener(document, (_b = this.params) == null ? void 0 : _b.trigger, null, this.onOpen), (_c = this.dialog) == null ? void 0 : _c.removeEventListener("close", this.onNativeDialogClose);
549
118
  }
550
- /**
551
- * Before the dialog opens.
552
- */
553
- beforeOpen(dialog, trigger) {
119
+ beforeOpen(e2, t2) {
554
120
  }
555
- /**
556
- * After the dialog opens.
557
- */
558
- afterOpen(dialog, trigger) {
121
+ afterOpen(e2, t2) {
559
122
  }
560
- /**
561
- * Before the dialog closes.
562
- */
563
- beforeClose(dialog, trigger) {
123
+ beforeClose(e2, t2) {
564
124
  }
565
- /**
566
- * After the dialog closes.
567
- */
568
- afterClose(dialog, trigger) {
125
+ afterClose(e2, t2) {
569
126
  }
570
- /**
571
- * Registers an event listener on the provided button that triggers a blocking UI element
572
- * and executes a given promise when the button is clicked.
573
- * @param {HTMLElement} button The button element to attach the event listener to.
574
- * @param {Function} promise A function that returns a promise to be executed when the button is clicked.
575
- */
576
- registerBlockingEvent(button, promise) {
577
- button.addEventListener("wje-button:click", async (e) => {
578
- let blockingElement = document.createElement("div");
579
- blockingElement.classList.add("blocking-element");
580
- let icon = document.createElement("wje-icon");
581
- icon.setAttribute("name", "loader-2");
582
- icon.setAttribute("size", "2x-large");
583
- blockingElement.appendChild(icon);
584
- let scrollOffset = this.dialog.scrollTop;
585
- blockingElement.style.top = `${scrollOffset}px`;
586
- blockingElement.style.bottom = `-${scrollOffset}px`;
587
- this.dialog.appendChild(blockingElement);
588
- await promise().then((res) => {
589
- this.close();
590
- blockingElement.remove();
591
- }).catch((err) => {
592
- console.error(err);
593
- blockingElement.remove();
127
+ registerBlockingEvent(e2, t2) {
128
+ e2.addEventListener("wje-button:click", async (e3) => {
129
+ let i2 = document.createElement("div");
130
+ i2.classList.add("blocking-element");
131
+ let o = document.createElement("wje-icon");
132
+ o.setAttribute("name", "loader-2"), o.setAttribute("size", "2x-large"), i2.appendChild(o);
133
+ let a = this.dialog.scrollTop;
134
+ i2.style.top = `${a}px`, i2.style.bottom = `-${a}px`, this.dialog.appendChild(i2), await t2().then((e4) => {
135
+ this.close(), i2.remove();
136
+ }).catch((e4) => {
137
+ console.error(e4), i2.remove();
594
138
  });
595
139
  });
596
140
  }
597
141
  updateHasFooter() {
598
142
  var _a, _b, _c;
599
143
  if (this.hiddenFooter) {
600
- const footerEl2 = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(".dialog-footer");
601
- if (footerEl2) footerEl2.setAttribute("hidden", "");
602
- this.removeAttribute("has-footer");
603
- return;
604
- }
605
- const slot = (_b = this.shadowRoot) == null ? void 0 : _b.getElementById("footerSlot");
606
- if (!slot) {
607
- this.removeAttribute("has-footer");
608
- return;
144
+ const e3 = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(".dialog-footer");
145
+ return e3 && e3.setAttribute("hidden", ""), void this.removeAttribute("has-footer");
609
146
  }
610
- const assigned = slot.assignedNodes({ flatten: true });
611
- const hasContent = assigned.some((n) => {
612
- if (n.nodeType === Node.ELEMENT_NODE) return true;
613
- if (n.nodeType === Node.TEXT_NODE) return n.textContent.trim().length > 0;
614
- return false;
615
- });
616
- const footerEl = (_c = this.shadowRoot) == null ? void 0 : _c.querySelector(".dialog-footer");
617
- if (footerEl) footerEl.toggleAttribute("hidden", !hasContent);
618
- this.toggleAttribute("has-footer", hasContent);
147
+ const e2 = (_b = this.shadowRoot) == null ? void 0 : _b.getElementById("footerSlot");
148
+ if (!e2) return void this.removeAttribute("has-footer");
149
+ const t2 = e2.assignedNodes({ flatten: true }).some((e3) => e3.nodeType === Node.ELEMENT_NODE || e3.nodeType === Node.TEXT_NODE && e3.textContent.trim().length > 0), i2 = (_c = this.shadowRoot) == null ? void 0 : _c.querySelector(".dialog-footer");
150
+ i2 && i2.toggleAttribute("hidden", !t2), this.toggleAttribute("has-footer", t2);
619
151
  }
620
152
  };
621
- __publicField(_Dialog, "_instanceId", 0);
622
- let Dialog = _Dialog;
623
- Dialog.define("wje-dialog", Dialog);
153
+ __publicField(_i, "_instanceId", 0);
154
+ let i = _i;
155
+ i.define("wje-dialog", i);
624
156
  export {
625
- Dialog as default
157
+ i as default
626
158
  };
627
159
  //# sourceMappingURL=wje-dialog.js.map