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
@@ -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("aria-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