wj-elements 0.0.11 → 0.0.13

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 (79) hide show
  1. package/dist/localize-20081fd1.js +55 -0
  2. package/dist/router-links-26e4a166.js +204 -0
  3. package/dist/style.css +2243 -2
  4. package/dist/wj-animation.js +35 -23
  5. package/dist/wj-aside.js +22 -16
  6. package/dist/wj-avatar.js +49 -30
  7. package/dist/wj-badge.js +22 -18
  8. package/dist/wj-breadcrumb.js +102 -50
  9. package/dist/wj-breadcrumbs.js +36 -19
  10. package/dist/wj-button-group.js +36 -22
  11. package/dist/wj-button.js +104 -39
  12. package/dist/wj-card-content.js +18 -14
  13. package/dist/wj-card-controls.js +18 -14
  14. package/dist/wj-card-header.js +20 -14
  15. package/dist/wj-card-subtitle.js +19 -15
  16. package/dist/wj-card-title.js +18 -14
  17. package/dist/wj-card.js +20 -14
  18. package/dist/wj-carousel-item.js +22 -16
  19. package/dist/wj-carousel.js +169 -92
  20. package/dist/wj-checkbox.js +46 -24
  21. package/dist/wj-chip.js +39 -21
  22. package/dist/wj-col.js +31 -17
  23. package/dist/wj-color-picker.js +877 -509
  24. package/dist/wj-container.js +20 -16
  25. package/dist/wj-copy-button.js +112 -64
  26. package/dist/wj-dialog.js +68 -42
  27. package/dist/wj-divider.js +20 -14
  28. package/dist/wj-dropdown.js +29 -17
  29. package/dist/wj-element.js +415 -241
  30. package/dist/wj-fetchAndParseCSS.js +49 -32
  31. package/dist/wj-file-upload-item.js +64 -38
  32. package/dist/wj-file-upload.js +237 -137
  33. package/dist/wj-footer.js +18 -14
  34. package/dist/wj-form.js +18 -14
  35. package/dist/wj-format-digital.js +40 -25
  36. package/dist/wj-grid.js +20 -16
  37. package/dist/wj-header.js +22 -16
  38. package/dist/wj-icon-picker.js +122 -68
  39. package/dist/wj-icon.js +144 -64
  40. package/dist/wj-img-comparer.js +72 -41
  41. package/dist/wj-img.js +31 -19
  42. package/dist/wj-infinite-scroll.js +90 -52
  43. package/dist/wj-input-file.js +50 -27
  44. package/dist/wj-input.js +169 -70
  45. package/dist/wj-item.js +34 -17
  46. package/dist/wj-label.js +21 -19
  47. package/dist/wj-list.js +20 -15
  48. package/dist/wj-main.js +18 -14
  49. package/dist/wj-masonry.js +140 -83
  50. package/dist/wj-master.js +492 -350
  51. package/dist/wj-menu-button.js +19 -15
  52. package/dist/wj-menu-item.js +150 -64
  53. package/dist/wj-menu-label.js +21 -17
  54. package/dist/wj-menu.js +24 -18
  55. package/dist/wj-popup.js +1140 -712
  56. package/dist/wj-progress-bar.js +100 -40
  57. package/dist/wj-radio-group.js +38 -25
  58. package/dist/wj-radio.js +46 -22
  59. package/dist/wj-rate.js +121 -71
  60. package/dist/wj-relative-time.js +48 -24
  61. package/dist/wj-route.js +11 -8
  62. package/dist/wj-router-link.js +22 -17
  63. package/dist/wj-router-outlet.js +135 -71
  64. package/dist/wj-routerx.js +1124 -641
  65. package/dist/wj-row.js +21 -19
  66. package/dist/wj-slider.js +97 -55
  67. package/dist/wj-split-view.js +81 -43
  68. package/dist/wj-store.js +195 -110
  69. package/dist/wj-textarea.js +86 -37
  70. package/dist/wj-thumbnail.js +19 -15
  71. package/dist/wj-toast.js +87 -34
  72. package/dist/wj-toggle.js +42 -24
  73. package/dist/wj-toolbar-action.js +27 -16
  74. package/dist/wj-toolbar.js +26 -19
  75. package/dist/wj-tooltip.js +40 -24
  76. package/dist/wj-visually-hidden.js +18 -14
  77. package/package.json +1 -1
  78. package/dist/localize-762a9f0f.js +0 -43
  79. package/dist/router-links-e0087f84.js +0 -146
package/dist/wj-store.js CHANGED
@@ -1,7 +1,10 @@
1
- var h = Object.defineProperty;
2
- var o = (u, r, e) => r in u ? h(u, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : u[r] = e;
3
- var n = (u, r, e) => (o(u, typeof r != "symbol" ? r + "" : r, e), e);
4
- class d {
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ class PubSub {
5
8
  constructor() {
6
9
  this.events = {};
7
10
  }
@@ -14,11 +17,15 @@ class d {
14
17
  * @returns {number} A count of callbacks for this event
15
18
  * @memberof PubSub
16
19
  */
17
- subscribe(r, e) {
18
- let t = this;
19
- return t.events.hasOwnProperty(r) || (t.events[r] = []), t.events[r].push(e) - 1, {
20
+ subscribe(event, callback) {
21
+ let self = this;
22
+ if (!self.events.hasOwnProperty(event)) {
23
+ self.events[event] = [];
24
+ }
25
+ self.events[event].push(callback) - 1;
26
+ return {
20
27
  unsubscribe() {
21
- t.events[r].splice(t.events[r].indexOf(e), 1);
28
+ self.events[event].splice(self.events[event].indexOf(callback), 1);
22
29
  }
23
30
  };
24
31
  }
@@ -31,42 +38,78 @@ class d {
31
38
  * @returns {array} The callbacks for this event, or an empty array if no event exits
32
39
  * @memberof PubSub
33
40
  */
34
- publish(r, e = {}, t) {
35
- let s = this;
36
- return s.events.hasOwnProperty(r) ? s.events[r].map((i) => i(e, t)) : [];
41
+ publish(event, newData = {}, oldData) {
42
+ let self = this;
43
+ if (!self.events.hasOwnProperty(event)) {
44
+ return [];
45
+ }
46
+ return self.events[event].map((callback) => callback(newData, oldData));
37
47
  }
38
48
  }
39
- const c = (u) => (r) => ({
40
- type: `${u}/ADD`,
41
- payload: r
42
- }), p = (u) => (r) => ({
43
- type: `${u}/ADD_MANY`,
44
- payload: r
45
- }), l = (u) => (r) => ({
46
- type: `${u}/UPDATE`,
47
- payload: r
48
- }), a = (u) => (r) => ({
49
- type: `${u}/DELETE`,
50
- payload: r
51
- }), f = (u) => (r) => ({
52
- type: `${u}/LOAD`,
53
- payload: r
54
- }), y = {
55
- addAction: c,
56
- deleteAction: a,
57
- loadAction: f,
58
- updateAction: l,
59
- addManyAction: p
49
+ const addAction = (stateValueName) => {
50
+ return (payload2) => {
51
+ return {
52
+ type: `${stateValueName}/ADD`,
53
+ payload: payload2
54
+ };
55
+ };
56
+ };
57
+ const addManyAction = (stateValueName) => {
58
+ return (payload2) => {
59
+ return {
60
+ type: `${stateValueName}/ADD_MANY`,
61
+ payload: payload2
62
+ };
63
+ };
64
+ };
65
+ const updateAction = (stateValueName) => {
66
+ return (payload2) => {
67
+ return {
68
+ type: `${stateValueName}/UPDATE`,
69
+ payload: payload2
70
+ };
71
+ };
72
+ };
73
+ const deleteAction = (stateValueName) => {
74
+ return (payload2) => {
75
+ return {
76
+ type: `${stateValueName}/DELETE`,
77
+ payload: payload2
78
+ };
79
+ };
80
+ };
81
+ const loadAction = (stateValueName) => {
82
+ return (payload2) => {
83
+ return {
84
+ type: `${stateValueName}/LOAD`,
85
+ payload: payload2
86
+ };
87
+ };
88
+ };
89
+ const defaultStoreActions = {
90
+ addAction,
91
+ deleteAction,
92
+ loadAction,
93
+ updateAction,
94
+ addManyAction
60
95
  };
61
- class A {
62
- constructor(r = {}) {
63
- n(this, "_state");
64
- n(this, "_reducer");
65
- n(this, "events");
66
- n(this, "status");
67
- this._isPause = !1, this._state = {}, this._reducer = function(t = {}, s) {
96
+ class Store {
97
+ constructor(params = {}) {
98
+ __publicField(this, "_state");
99
+ __publicField(this, "_reducer");
100
+ __publicField(this, "events");
101
+ __publicField(this, "status");
102
+ this._isPause = false;
103
+ this._state = {};
104
+ this._reducer = function rootReducer(state = {}, action) {
68
105
  return {};
69
- }, this.status = "resting", this.events = new d(), r != null && r.hasOwnProperty("reducer") && (this._reducer = r.reducer), this.refreshProxy(r == null ? void 0 : r.state);
106
+ };
107
+ this.status = "resting";
108
+ this.events = new PubSub();
109
+ if (params == null ? void 0 : params.hasOwnProperty("reducer")) {
110
+ this._reducer = params.reducer;
111
+ }
112
+ this.refreshProxy(params == null ? void 0 : params.state);
70
113
  }
71
114
  /**
72
115
  * A dispatcher for actions that looks in the actions
@@ -77,116 +120,158 @@ class A {
77
120
  * @returns {boolean}
78
121
  * @memberof Store
79
122
  */
80
- dispatch(r) {
123
+ dispatch(action) {
81
124
  this.status = "action";
82
- let e = this._reducer(this._state, r);
83
- return this.status = "mutation", this._state = Object.assign(this._state, e), !0;
125
+ let newState = this._reducer(this._state, action);
126
+ this.status = "mutation";
127
+ this._state = Object.assign(this._state, newState);
128
+ return true;
84
129
  }
85
130
  getState() {
86
131
  return JSON.parse(JSON.stringify(this._state));
87
132
  }
88
- subscribe(r, e) {
89
- return this.events.subscribe(r, e);
133
+ subscribe(eventName, callbackFn) {
134
+ return this.events.subscribe(eventName, callbackFn);
90
135
  }
91
- unsubscribe(r) {
92
- delete this.events[r];
136
+ unsubscribe(eventName) {
137
+ delete this.events[eventName];
93
138
  }
94
139
  pause() {
95
- return this._isPause = !0, this;
140
+ this._isPause = true;
141
+ return this;
96
142
  }
97
- play(r) {
98
- return this._isPause = !1, this;
143
+ play(val) {
144
+ this._isPause = false;
145
+ return this;
99
146
  }
100
- mergeReducers(r, e) {
101
- let t = this._reducer;
102
- this._reducer = (s, i) => ({
103
- ...t(s, i),
104
- [r]: e(s[r], i)
105
- });
147
+ mergeReducers(stateValueName, newReducer) {
148
+ let reducerCopy = this._reducer;
149
+ this._reducer = (state, newState) => {
150
+ let preState = reducerCopy(state, newState);
151
+ let result = {
152
+ ...preState,
153
+ [stateValueName]: newReducer(state[stateValueName], newState)
154
+ };
155
+ return result;
156
+ };
106
157
  }
107
- makeEveryArrayEntryAsStoreState(r, e = [], t = "id") {
108
- e.forEach((s) => {
109
- this.getState().hasOwnProperty(`${r}-${s[t]}`) ? this.dispatch(y.updateAction(`${r}-${s[t]}`)(s)) : this.define(`${r}-${s.id || s.source || s[t]}`, s, null, t);
158
+ makeEveryArrayEntryAsStoreState(storeKey, array = [], identificator = "id") {
159
+ array.forEach((entry) => {
160
+ if (this.getState().hasOwnProperty(`${storeKey}-${entry[identificator]}`)) {
161
+ this.dispatch(defaultStoreActions.updateAction(`${storeKey}-${entry[identificator]}`)(entry));
162
+ } else {
163
+ this.define(`${storeKey}-${entry.id || entry.source || entry[identificator]}`, entry, null, identificator);
164
+ }
110
165
  });
111
166
  }
112
- define(r, e, t, s = "id") {
113
- if (this._state.hasOwnProperty(r)) {
114
- console.warn(`STATE už obsahuje premennú ${r},ktorú sa pokúšate pridať`);
167
+ define(stateValueName, defaultValue, reducer, key = "id") {
168
+ if (this._state.hasOwnProperty(stateValueName)) {
169
+ console.warn(`STATE už obsahuje premennú ${stateValueName},ktorú sa pokúšate pridať`);
115
170
  return;
116
171
  }
117
- t instanceof Function ? this.mergeReducers(r, t) : e instanceof Array ? this.mergeReducers(r, this.createArrayReducer(r, s)) : this.mergeReducers(r, this.createObjectReducer(r, s)), this.refreshProxy({
172
+ if (reducer instanceof Function) {
173
+ this.mergeReducers(stateValueName, reducer);
174
+ } else {
175
+ if (defaultValue instanceof Array) {
176
+ this.mergeReducers(stateValueName, this.createArrayReducer(stateValueName, key));
177
+ } else {
178
+ this.mergeReducers(stateValueName, this.createObjectReducer(stateValueName, key));
179
+ }
180
+ }
181
+ this.refreshProxy({
118
182
  ...this._state,
119
- [r]: e
183
+ [stateValueName]: defaultValue
120
184
  });
121
185
  }
122
- refreshProxy(r) {
123
- this._state = new Proxy(r || {}, {
124
- set: (e, t, s) => {
125
- if (JSON.stringify(e[t]) === JSON.stringify(s))
126
- return !0;
127
- let i = e[t];
128
- return e[t] = s, this._isPause || this.events.publish(t, this._state, i), this.status !== "mutation" && console.warn(`You should use a mutation to set ${t}`), this.status = "resting", !0;
186
+ refreshProxy(state) {
187
+ this._state = new Proxy(state || {}, {
188
+ set: (state2, key, value) => {
189
+ if (JSON.stringify(state2[key]) === JSON.stringify(value)) {
190
+ return true;
191
+ }
192
+ let oldState = state2[key];
193
+ state2[key] = value;
194
+ if (!this._isPause)
195
+ this.events.publish(key, this._state, oldState);
196
+ if (this.status !== "mutation") {
197
+ console.warn(`You should use a mutation to set ${key}`);
198
+ }
199
+ this.status = "resting";
200
+ return true;
129
201
  }
130
202
  });
131
203
  }
132
- createObjectReducer(r) {
133
- return (e = {}, t) => {
134
- switch (t.type) {
135
- case `${r}/ADD`:
204
+ createObjectReducer(stateValueName) {
205
+ return (state = {}, action) => {
206
+ switch (action.type) {
207
+ case `${stateValueName}/ADD`:
136
208
  return {
137
- ...t.payload
209
+ ...action.payload
138
210
  };
139
- case `${r}/UPDATE`:
211
+ case `${stateValueName}/UPDATE`:
140
212
  return {
141
- ...e,
142
- ...t.payload
213
+ ...state,
214
+ ...action.payload
143
215
  };
144
- case `${r}/DELETE`:
216
+ case `${stateValueName}/DELETE`:
145
217
  return {};
146
218
  default:
147
- return e;
219
+ return state;
148
220
  }
149
221
  };
150
222
  }
151
- createArrayReducer(r, e) {
152
- return (t = [], s) => {
153
- switch (s.type) {
154
- case `${r}/ADD`:
155
- return Array.isArray(s.payload) ? [
156
- ...t,
157
- ...s.payload
158
- ] : [
159
- ...t,
160
- s.payload
161
- ];
162
- case `${r}/ADD_MANY`:
223
+ createArrayReducer(stateValueName, key) {
224
+ return (state = [], action) => {
225
+ switch (action.type) {
226
+ case `${stateValueName}/ADD`:
227
+ if (Array.isArray(action.payload)) {
228
+ return [
229
+ ...state,
230
+ ...action.payload
231
+ ];
232
+ } else {
233
+ return [
234
+ ...state,
235
+ action.payload
236
+ ];
237
+ }
238
+ case `${stateValueName}/ADD_MANY`:
163
239
  return [
164
- ...t,
165
- ...s.payload
166
- ];
167
- case `${r}/UPDATE`:
168
- return t.some((i) => i[e] == s.payload[e]) ? [
169
- ...t.map((i) => i[e] == s.payload[e] ? s.payload : i)
170
- ] : [
171
- ...t,
172
- s.payload
240
+ ...state,
241
+ ...action.payload
173
242
  ];
174
- case `${r}/DELETE`:
243
+ case `${stateValueName}/UPDATE`:
244
+ if (state.some((obj) => obj[key] == action.payload[key])) {
245
+ return [
246
+ ...state.map((obj) => {
247
+ if (obj[key] == action.payload[key]) {
248
+ return action.payload;
249
+ }
250
+ return obj;
251
+ })
252
+ ];
253
+ } else {
254
+ return [
255
+ ...state,
256
+ action.payload
257
+ ];
258
+ }
259
+ case `${stateValueName}/DELETE`:
175
260
  return [
176
- ...t.filter((i) => i.hasOwnProperty(e) && i[e] != s.payload[e] || !i.hasOwnProperty(e) && i != s.payload)
261
+ ...state.filter((obj) => obj.hasOwnProperty(key) && obj[key] != action.payload[key] || !obj.hasOwnProperty(key) && obj != action.payload)
177
262
  ];
178
- case `${r}/LOAD`:
263
+ case `${stateValueName}/LOAD`:
179
264
  return [
180
- ...s.payload
265
+ ...action.payload
181
266
  ];
182
267
  default:
183
- return t;
268
+ return state;
184
269
  }
185
270
  };
186
271
  }
187
272
  }
188
- let D = new A();
273
+ let store = new Store();
189
274
  export {
190
- y as defaultStoreActions,
191
- D as store
275
+ defaultStoreActions,
276
+ store
192
277
  };
@@ -1,30 +1,39 @@
1
- var u = Object.defineProperty;
2
- var x = (r, a, t) => a in r ? u(r, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[a] = t;
3
- var s = (r, a, t) => (x(r, typeof a != "symbol" ? a + "" : a, t), t);
4
- import p, { event as h } from "./wj-element.js";
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import WJElement, { event } from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const b = `:host{--wj-textarea-font-family: var(--wj-font-family);--wj-textarea-background-color: var(--wj-background);--wj-textarea-color: var(--wj-color);--wj-textarea-color-invalid: var(--wj-color-danger);--wj-textarea-border-width: 1px;--wj-textarea-border-style: solid;--wj-textarea-border-color: var(--wj-border-color);--wj-textarea-border-color-focus: var(--wj-color-primary);--wj-textarea-border-radius: 4px;--wj-textarea-margin-bottom: .5rem;--wj-textarea-line-height: 20px;--wj-textarea-padding: .5rem;width:100%;margin-bottom:var(--wj-textarea-margin-bottom);display:block}:host .wrapper{display:flex;width:100%;border-width:var(--wj-textarea-border-width);border-style:var(--wj-textarea-border-style);border-color:var(--wj-textarea-border-color);border-radius:var(--wj-textarea-border-radius)}:host textarea{font-family:var(--wj-textarea-font-family);color:var(--wj-textarea-color);font-size:14px;border:0 none;padding:0 var(--wj-textarea-padding)}:host textarea:focus{outline:none}:host([resize=auto]) textarea,:host([resize=none]) textarea{resize:none}.native-textarea .input-wrapper{width:100%;line-height:normal}.native-textarea.default{background-color:var(--wj-textarea-background-color);font-family:var(--wj-textarea-font-family);position:relative;padding-inline:0;padding-top:0;transition:background-color .2s ease;cursor:text}.native-textarea.default.focused .wrapper{border-color:var(--wj-textarea-border-color-focus)!important}.native-textarea.default.focused label{opacity:.67;font-size:12px;letter-spacing:normal}.native-textarea.default textarea{border:none;padding-top:0;background:none;box-shadow:none;width:calc(100% - var(--wj-textarea-padding) * 2);max-width:calc(100% - var(--wj-textarea-padding) * 2);min-width:calc(100% - var(--wj-textarea-padding) * 2)}.native-textarea.default label{padding:0 var(--wj-textarea-padding);display:block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-textarea-line-height);padding-top:.25rem}.native-textarea.default label.fade{opacity:.5;font-size:12px;letter-spacing:normal}.native-textarea.default ::slotted([slot=start]){border-left:none;border-top:none;border-bottom:none}.native-textarea.default ::slotted([slot=end]){border-right:none;border-top:none;border-bottom:none}.native-textarea.standard{background-color:var(--wj-textarea-background-color);font-family:var(--wj-textarea-font-family);position:relative;border-radius:var(--wj-textarea-border-radius);padding:0;transition:background-color .2s ease;cursor:text}.native-textarea.standard.focused .wrapper{border-color:var(--wj-textarea-border-color-focus)!important}.native-textarea.standard textarea{display:block;min-height:32px;background:none;box-shadow:none;width:100%;box-sizing:border-box;border-radius:var(--wj-textarea-border-radius)}.native-textarea.standard label{margin:0;display:inline-block;opacity:1;cursor:text;transition:opacity .2s ease;line-height:var(--wj-textarea-line-height)}.native-textarea.standard ::slotted([slot=start]){border-right:none;border-radius:var(--wj-textarea-border-radius) 0 0 var(--wj-textarea-border-radius)}.native-textarea.standard ::slotted([slot=end]){border-left:none;border-radius:0 var(--wj-textarea-border-radius) var(--wj-textarea-border-radius) 0}.native-textarea.standard.has-start textarea{border-top-left-radius:0;border-bottom-left-radius:0}.native-textarea.standard.has-end textarea{border-top-right-radius:0;border-bottom-right-radius:0}.native-textarea.standard .error-message{position:static;background:transparent;padding:.25rem 0;left:auto;transform:none;color:var(--wj-textarea-color-invalid);font-size:12px;line-height:normal}.counter{float:right}
7
- `;
8
- class v extends p {
9
+ const styles = "/*\n[ WJ Textarea ]\n*/\n:host {\n --wj-textarea-font-family: var(--wj-font-family);\n --wj-textarea-background-color: var(--wj-background);\n --wj-textarea-color: var(--wj-color);\n --wj-textarea-color-invalid: var(--wj-color-danger);\n --wj-textarea-border-width: 1px;\n --wj-textarea-border-style: solid;\n --wj-textarea-border-color: var(--wj-border-color);\n --wj-textarea-border-color-focus: var(--wj-color-primary);\n --wj-textarea-border-radius: 4px;\n --wj-textarea-margin-bottom: .5rem;\n --wj-textarea-line-height: 20px;\n --wj-textarea-padding: 0.5rem;\n width: 100%;\n margin-bottom: var(--wj-textarea-margin-bottom);\n display: block;\n}\n:host .wrapper {\n display: flex;\n width: 100%;\n border-width: var(--wj-textarea-border-width);\n border-style: var(--wj-textarea-border-style);\n border-color: var(--wj-textarea-border-color);\n border-radius: var(--wj-textarea-border-radius);\n}\n:host textarea {\n font-family: var(--wj-textarea-font-family);\n color: var(--wj-textarea-color);\n font-size: 14px;\n border: 0 none;\n padding: 0 var(--wj-textarea-padding);\n}\n:host textarea:focus {\n outline: none;\n}\n\n:host([resize=auto]) textarea,\n:host([resize=none]) textarea {\n resize: none;\n}\n\n.native-textarea .input-wrapper {\n width: 100%;\n line-height: normal;\n}\n.native-textarea.default {\n background-color: var(--wj-textarea-background-color);\n font-family: var(--wj-textarea-font-family);\n position: relative;\n padding-inline: 0;\n padding-top: 0;\n transition: background-color 0.2s ease;\n cursor: text;\n}\n.native-textarea.default.focused .wrapper {\n border-color: var(--wj-textarea-border-color-focus) !important;\n}\n.native-textarea.default.focused label {\n opacity: 0.67;\n font-size: 12px;\n letter-spacing: normal;\n}\n.native-textarea.default textarea {\n border: none;\n padding-top: 0;\n background: none;\n box-shadow: none;\n width: calc(100% - var(--wj-textarea-padding) * 2);\n max-width: calc(100% - var(--wj-textarea-padding) * 2);\n min-width: calc(100% - var(--wj-textarea-padding) * 2);\n}\n.native-textarea.default label {\n padding: 0 var(--wj-textarea-padding);\n display: block;\n opacity: 1;\n cursor: text;\n transition: opacity 0.2s ease;\n line-height: var(--wj-textarea-line-height);\n padding-top: 0.25rem;\n}\n.native-textarea.default label.fade {\n opacity: 0.5;\n font-size: 12px;\n letter-spacing: normal;\n}\n.native-textarea.default ::slotted([slot=start]) {\n border-left: none;\n border-top: none;\n border-bottom: none;\n}\n.native-textarea.default ::slotted([slot=end]) {\n border-right: none;\n border-top: none;\n border-bottom: none;\n}\n.native-textarea.standard {\n background-color: var(--wj-textarea-background-color);\n font-family: var(--wj-textarea-font-family);\n position: relative;\n border-radius: var(--wj-textarea-border-radius);\n padding: 0;\n transition: background-color 0.2s ease;\n cursor: text;\n}\n.native-textarea.standard.focused .wrapper {\n border-color: var(--wj-textarea-border-color-focus) !important;\n}\n.native-textarea.standard textarea {\n display: block;\n min-height: 32px;\n background: none;\n box-shadow: none;\n width: 100%;\n box-sizing: border-box;\n border-radius: var(--wj-textarea-border-radius);\n}\n.native-textarea.standard label {\n margin: 0;\n display: inline-block;\n opacity: 1;\n cursor: text;\n transition: opacity 0.2s ease;\n line-height: var(--wj-textarea-line-height);\n}\n.native-textarea.standard ::slotted([slot=start]) {\n border-right: none;\n border-radius: var(--wj-textarea-border-radius) 0 0 var(--wj-textarea-border-radius);\n}\n.native-textarea.standard ::slotted([slot=end]) {\n border-left: none;\n border-radius: 0 var(--wj-textarea-border-radius) var(--wj-textarea-border-radius) 0;\n}\n.native-textarea.standard.has-start textarea {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.native-textarea.standard.has-end textarea {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.native-textarea.standard .error-message {\n position: static;\n background: transparent;\n padding: 0.25rem 0;\n left: auto;\n transform: none;\n color: var(--wj-textarea-color-invalid);\n font-size: 12px;\n line-height: normal;\n}\n\n.counter {\n float: right;\n}";
10
+ class Textarea extends WJElement {
9
11
  constructor() {
10
12
  super();
11
- s(this, "className", "Textarea");
12
- s(this, "setTextareaHeight", () => {
13
- this.getAttribute("resize") === "auto" && (this.input.style.height = "auto", this.input.style.height = this.input.scrollHeight + "px");
13
+ __publicField(this, "className", "Textarea");
14
+ __publicField(this, "setTextareaHeight", () => {
15
+ if (this.getAttribute("resize") === "auto") {
16
+ this.input.style.height = "auto";
17
+ this.input.style.height = this.input.scrollHeight + "px";
18
+ }
14
19
  });
15
- s(this, "counter", (t) => {
16
- this.counterElement.innerText = t.target.value.length + "/" + this.input.maxLength;
20
+ __publicField(this, "counter", (e) => {
21
+ this.counterElement.innerText = e.target.value.length + "/" + this.input.maxLength;
17
22
  });
18
- this._checked = !1;
23
+ this._checked = false;
19
24
  }
20
- set checked(t) {
21
- this._checked = t, t ? this.setAttribute("checked", "") : this.removeAttribute("checked");
25
+ set checked(value) {
26
+ this._checked = value;
27
+ if (value)
28
+ this.setAttribute("checked", "");
29
+ else
30
+ this.removeAttribute("checked");
22
31
  }
23
32
  get checked() {
24
33
  return this._checked;
25
34
  }
26
35
  static get cssStyleSheet() {
27
- return b;
36
+ return styles;
28
37
  }
29
38
  static get observedAttributes() {
30
39
  return ["checked"];
@@ -32,35 +41,75 @@ class v extends p {
32
41
  setupAttributes() {
33
42
  this.isShadowRoot = "open";
34
43
  }
35
- draw(t, m, w) {
36
- let l = document.createDocumentFragment(), i = document.createElement("div");
37
- i.classList.add("native-textarea", this.variant || "default"), this.hasAttribute("invalid") && i.classList.add("has-error");
38
- let c = document.createElement("div");
39
- c.classList.add("wrapper");
40
- let n = document.createElement("div");
41
- n.classList.add("input-wrapper");
42
- let o = document.createElement("label");
43
- o.htmlFor = "textarea", o.innerHTML = this.label || "";
44
- let e = document.createElement("textarea");
45
- if (e.id = "textarea", e.name = this.name, e.disabled = this.hasAttribute("disabled"), e.innerText = this.innerText, e.classList.add("form-control"), e.setAttribute("part", "input"), e.setAttribute("rows", this.rows || 3), e.setAttribute("spellcheck", !1), this.resize === "auto" && e.addEventListener("input", this.setTextareaHeight), this.variant === "standard" ? this.label && i.appendChild(o) : n.appendChild(o), n.appendChild(e), c.appendChild(n), i.appendChild(c), l.appendChild(i), this.hasAttribute("counter")) {
46
- e.maxLength = this.maxLength || 1e3, e.addEventListener("input", this.counter);
47
- let d = document.createElement("div");
48
- d.classList.add("counter"), d.innerText = `${e.value.length}/${e.maxLength}`, this.counterElement = d, l.appendChild(d);
44
+ draw(context, store, params) {
45
+ let fragment = document.createDocumentFragment();
46
+ let native = document.createElement("div");
47
+ native.classList.add("native-textarea", this.variant || "default");
48
+ if (this.hasAttribute("invalid"))
49
+ native.classList.add("has-error");
50
+ let wrapper = document.createElement("div");
51
+ wrapper.classList.add("wrapper");
52
+ let inputWrapper = document.createElement("div");
53
+ inputWrapper.classList.add("input-wrapper");
54
+ let label = document.createElement("label");
55
+ label.htmlFor = "textarea";
56
+ label.innerHTML = this.label || "";
57
+ let input = document.createElement("textarea");
58
+ input.id = "textarea";
59
+ input.name = this.name;
60
+ input.disabled = this.hasAttribute("disabled");
61
+ input.innerText = this.innerText;
62
+ input.classList.add("form-control");
63
+ input.setAttribute("part", "input");
64
+ input.setAttribute("rows", this.rows || 3);
65
+ input.setAttribute("spellcheck", false);
66
+ if (this.resize === "auto")
67
+ input.addEventListener("input", this.setTextareaHeight);
68
+ if (this.variant === "standard") {
69
+ if (this.label)
70
+ native.appendChild(label);
71
+ } else {
72
+ inputWrapper.appendChild(label);
73
+ }
74
+ inputWrapper.appendChild(input);
75
+ wrapper.appendChild(inputWrapper);
76
+ native.appendChild(wrapper);
77
+ fragment.appendChild(native);
78
+ if (this.hasAttribute("counter")) {
79
+ input.maxLength = this.maxLength || 1e3;
80
+ input.addEventListener("input", this.counter);
81
+ let counter = document.createElement("div");
82
+ counter.classList.add("counter");
83
+ counter.innerText = `${input.value.length}/${input.maxLength}`;
84
+ this.counterElement = counter;
85
+ fragment.appendChild(counter);
49
86
  }
50
- return this.native = i, this.labelElement = o, this.input = e, l;
87
+ this.native = native;
88
+ this.labelElement = label;
89
+ this.input = input;
90
+ return fragment;
51
91
  }
52
92
  afterDraw() {
53
- this.resizeObserver = new ResizeObserver(() => this.setTextareaHeight), this.hasAttribute("disabled") || (h.addListener(this, "click", "wj:textarea:change"), h.addListener(this, "click", "wj:textarea:input")), this.input.addEventListener("focus", (t) => {
54
- this.labelElement.classList.add("fade"), this.native.classList.add("focused");
55
- }), this.input.addEventListener("blur", (t) => {
56
- this.native.classList.remove("focused"), t.target.value || this.labelElement.classList.remove("fade");
93
+ this.resizeObserver = new ResizeObserver(() => this.setTextareaHeight);
94
+ if (!this.hasAttribute("disabled")) {
95
+ event.addListener(this, "click", "wj:textarea:change");
96
+ event.addListener(this, "click", "wj:textarea:input");
97
+ }
98
+ this.input.addEventListener("focus", (e) => {
99
+ this.labelElement.classList.add("fade");
100
+ this.native.classList.add("focused");
101
+ });
102
+ this.input.addEventListener("blur", (e) => {
103
+ this.native.classList.remove("focused");
104
+ if (!e.target.value)
105
+ this.labelElement.classList.remove("fade");
57
106
  });
58
107
  }
59
108
  disconnectedCallback() {
60
109
  this.resizeObserver.unobserve(this.input);
61
110
  }
62
111
  }
63
- customElements.get("wj-textarea") || window.customElements.define("wj-textarea", v);
112
+ customElements.get("wj-textarea") || window.customElements.define("wj-textarea", Textarea);
64
113
  export {
65
- v as Textarea
114
+ Textarea
66
115
  };
@@ -1,17 +1,19 @@
1
- var d = Object.defineProperty;
2
- var m = (r, t, e) => t in r ? d(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
- var s = (r, t, e) => (m(r, typeof t != "symbol" ? t + "" : t, e), e);
4
- import u from "./wj-element.js";
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import WJElement from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const h = `:host{--wj-thumbnail-width: 48px;--wj-thumbnail-height: 48px;--wj-thumbnail-border-radius: var(--wj-border-radius-medium)}:host{width:var(--wj-thumbnail-width);height:var(--wj-thumbnail-height);display:block;border-radius:var(--wj-border-radius)}::slotted(wj-img),::slotted(img){border-radius:var(--wj-thumbnail-border-radius);width:100%;height:100%;object-fit:cover;overflow:hidden}
7
- `;
8
- class l extends u {
9
+ const styles = "/*\n[ WJ Thumbnail ]\n*/\n:host {\n --wj-thumbnail-width: 48px;\n --wj-thumbnail-height: 48px;\n --wj-thumbnail-border-radius: var(--wj-border-radius-medium);\n}\n\n:host {\n width: var(--wj-thumbnail-width);\n height: var(--wj-thumbnail-height);\n display: block;\n border-radius: var(--wj-border-radius);\n}\n\n::slotted(wj-img),\n::slotted(img) {\n border-radius: var(--wj-thumbnail-border-radius);\n width: 100%;\n height: 100%;\n object-fit: cover;\n overflow: hidden;\n}";
10
+ class Thumbnail extends WJElement {
9
11
  constructor() {
10
12
  super();
11
- s(this, "className", "Thumbnail");
13
+ __publicField(this, "className", "Thumbnail");
12
14
  }
13
15
  static get cssStyleSheet() {
14
- return h;
16
+ return styles;
15
17
  }
16
18
  static get observedAttributes() {
17
19
  return [];
@@ -19,14 +21,16 @@ class l extends u {
19
21
  setupAttributes() {
20
22
  this.isShadowRoot = "open";
21
23
  }
22
- beforeDraw(e, a, o) {
24
+ beforeDraw(context, store, params) {
23
25
  }
24
- draw(e, a, o) {
25
- let i = document.createDocumentFragment(), n = document.createElement("slot");
26
- return i.appendChild(n), i;
26
+ draw(context, store, params) {
27
+ let fragment = document.createDocumentFragment();
28
+ let element = document.createElement("slot");
29
+ fragment.appendChild(element);
30
+ return fragment;
27
31
  }
28
32
  }
29
- customElements.get("wj-thumbnail") || window.customElements.define("wj-thumbnail", l);
33
+ customElements.get("wj-thumbnail") || window.customElements.define("wj-thumbnail", Thumbnail);
30
34
  export {
31
- l as Thumbnail
35
+ Thumbnail
32
36
  };