wj-elements 0.0.11 → 0.0.12

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 +1121 -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
@@ -1,24 +1,27 @@
1
- var m = Object.defineProperty;
2
- var l = (n, i, t) => i in n ? m(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t;
3
- var r = (n, i, t) => (l(n, typeof i != "symbol" ? i + "" : i, t), t);
4
- import c from "./wj-element.js";
5
- import { fetchAndParseCSS as h } from "./wj-fetchAndParseCSS.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";
8
+ import { fetchAndParseCSS } from "./wj-fetchAndParseCSS.js";
6
9
  import "./wj-store.js";
7
- const d = "";
8
- class u extends c {
10
+ const styles = "/*\n[ WJ Animation ]\n*/";
11
+ class Animation extends WJElement {
9
12
  constructor() {
10
13
  super();
11
- r(this, "className", "Animation");
14
+ __publicField(this, "className", "Animation");
12
15
  this._animations = [];
13
16
  }
14
- set animations(t) {
15
- this._animations = t;
17
+ set animations(value) {
18
+ this._animations = value;
16
19
  }
17
20
  get animations() {
18
21
  return this._animations;
19
22
  }
20
23
  static get cssStyleSheet() {
21
- return d;
24
+ return styles;
22
25
  }
23
26
  static get observedAttributes() {
24
27
  return ["name"];
@@ -26,14 +29,19 @@ class u extends c {
26
29
  setupAttributes() {
27
30
  this.isShadowRoot = "open";
28
31
  }
29
- draw(t, a, e) {
30
- let s = document.createDocumentFragment(), o = document.createElement("slot");
31
- return s.appendChild(o), this.slotEl = o, s;
32
+ draw(context, store, params) {
33
+ let fragment = document.createDocumentFragment();
34
+ let slot = document.createElement("slot");
35
+ fragment.appendChild(slot);
36
+ this.slotEl = slot;
37
+ return fragment;
32
38
  }
33
39
  async afterDraw() {
34
- this.destroyAnimation(), this.animations = await this.getAnimationsArray();
35
- const t = this.animations.find((e) => e.name === this.name), a = this.slotEl.assignedElements()[0];
36
- this.animation = a.animate(t.keyframes, {
40
+ this.destroyAnimation();
41
+ this.animations = await this.getAnimationsArray();
42
+ const selected = this.animations.find((k) => k.name === this.name);
43
+ const element = this.slotEl.assignedElements()[0];
44
+ this.animation = element.animate(selected.keyframes, {
37
45
  delay: +this.delay || 0,
38
46
  // zdrzanie pred zacatim animacie
39
47
  endDelay: +this.endDelay || 0,
@@ -44,22 +52,26 @@ class u extends c {
44
52
  // doba trvania animacie v milisekundách
45
53
  iterationStart: +this.iterationStart || 0,
46
54
  // počet opakování animacie
47
- iterations: this.iterations || 1 / 0,
55
+ iterations: this.iterations || Infinity,
48
56
  // počet opakování animacie
49
57
  direction: this.direction || "normal",
50
58
  // smer animaciee (zpat a dopredu)
51
59
  easing: this.easing || "linear"
52
60
  // typ spomalenia (rychlost zmen v čase)
53
- }), this.animation.play();
61
+ });
62
+ this.animation.play();
54
63
  }
55
64
  destroyAnimation() {
56
- this.animation && this.animation.cancel();
65
+ if (this.animation) {
66
+ this.animation.cancel();
67
+ }
57
68
  }
58
69
  async getAnimationsArray() {
59
- return await h("https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css");
70
+ const cssUrl = "https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css";
71
+ return await fetchAndParseCSS(cssUrl);
60
72
  }
61
73
  }
62
- customElements.get("wj-animation") || window.customElements.define("wj-animation", u);
74
+ customElements.get("wj-animation") || window.customElements.define("wj-animation", Animation);
63
75
  export {
64
- u as Animation
76
+ Animation
65
77
  };
package/dist/wj-aside.js CHANGED
@@ -1,17 +1,19 @@
1
- var d = Object.defineProperty;
2
- var a = (e, t, o) => t in e ? d(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o;
3
- var s = (e, t, o) => (a(e, typeof t != "symbol" ? t + "" : t, o), o);
4
- import 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 from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const n = `:host{--wj-aside-width: "100px";--wj-aside-top: 0;--wj-aside-border-color: var(--wj-border-color);--wj-aside-border-width: 0 1px 0 0;--wj-aside-border-style: solid;box-sizing:border-box;flex-shrink:0;overflow:auto;border-color:var(--wj-aside-border-color);border-width:var(--wj-aside-border-width);border-style:var(--wj-aside-border-style)}:host(.open){display:block!important}@media (min-width: 768px){:host([fixed]){position:fixed;width:var(--wj-aside-width);top:var(--wj-aside-top);height:calc(100% - var(--wj-aside-top))}}@media (max-width: 768px){:host{display:none}:host([variant=top-start]){position:fixed;top:0;left:0;width:80%;height:100%;z-index:9999;background-color:#fff}}
7
- `;
8
- class w extends h {
9
+ const styles = '/*\n[ WJ Aside ]\n*/\n:host {\n --wj-aside-width: "100px";\n --wj-aside-top: 0;\n --wj-aside-border-color: var(--wj-border-color);\n --wj-aside-border-width: 0 1px 0 0;\n --wj-aside-border-style: solid;\n box-sizing: border-box;\n flex-shrink: 0;\n overflow: auto;\n border-color: var(--wj-aside-border-color);\n border-width: var(--wj-aside-border-width);\n border-style: var(--wj-aside-border-style);\n}\n\n:host(.open) {\n display: block !important;\n}\n\n@media (min-width: 768px) {\n :host([fixed]) {\n position: fixed;\n width: var(--wj-aside-width);\n top: var(--wj-aside-top);\n height: calc(100% - var(--wj-aside-top));\n }\n}\n@media (max-width: 768px) {\n :host {\n display: none;\n }\n :host([variant=top-start]) {\n position: fixed;\n top: 0;\n left: 0;\n width: 80%;\n height: 100%;\n z-index: 9999;\n background-color: #fff;\n }\n}';
10
+ class Aside extends WJElement {
9
11
  constructor() {
10
12
  super();
11
- s(this, "className", "Aside");
13
+ __publicField(this, "className", "Aside");
12
14
  }
13
15
  static get cssStyleSheet() {
14
- return n;
16
+ return styles;
15
17
  }
16
18
  static get observedAttributes() {
17
19
  return [];
@@ -19,14 +21,18 @@ class w extends h {
19
21
  setupAttributes() {
20
22
  this.isShadowRoot = "open";
21
23
  }
22
- draw(o, l, p) {
23
- let i = document.createDocumentFragment();
24
- this.width && this.style.setProperty("--wj-aside-width", this.width), this.top && this.hasAttribute("fixed") && this.style.setProperty("--wj-aside-top", this.top);
25
- let r = document.createElement("slot");
26
- return i.appendChild(r), i;
24
+ draw(context, store, params) {
25
+ let fragment = document.createDocumentFragment();
26
+ if (this.width)
27
+ this.style.setProperty("--wj-aside-width", this.width);
28
+ if (this.top && this.hasAttribute("fixed"))
29
+ this.style.setProperty("--wj-aside-top", this.top);
30
+ let element = document.createElement("slot");
31
+ fragment.appendChild(element);
32
+ return fragment;
27
33
  }
28
34
  }
29
- customElements.get("wj-aside") || window.customElements.define("wj-aside", w);
35
+ customElements.get("wj-aside") || window.customElements.define("wj-aside", Aside);
30
36
  export {
31
- w as Aside
37
+ Aside
32
38
  };
package/dist/wj-avatar.js CHANGED
@@ -1,50 +1,69 @@
1
- var d = Object.defineProperty;
2
- var h = (r, a, t) => a in r ? d(r, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[a] = t;
3
- var n = (r, a, t) => (h(r, typeof a != "symbol" ? a + "" : a, t), t);
4
- import v 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
- function w(r, a = 30, t = 80) {
7
- let o = r, s = 0;
8
- for (let e = 0; e < (o == null ? void 0 : o.length); e++)
9
- s = o.charCodeAt(e) + ((s << 5) - s);
10
- return "hsl(" + s % 360 + ", " + a + "%, " + t + "%)";
9
+ function getHsl(text, s = 30, l = 80) {
10
+ let str = text, hash = 0;
11
+ for (let i = 0; i < (str == null ? void 0 : str.length); i++) {
12
+ hash = str.charCodeAt(i) + ((hash << 5) - hash);
13
+ }
14
+ let h = hash % 360;
15
+ let hexColor = "hsl(" + h + ", " + s + "%, " + l + "%)";
16
+ return hexColor;
11
17
  }
12
- function c(r, a = 2) {
13
- let t = r.split(" "), o = t[0].substring(0, 1).toUpperCase();
14
- return t.length > 1 && a > 1 && (o += t[t.length - 1].substring(0, 1).toUpperCase()), o;
18
+ function getInitials(string, length = 2) {
19
+ let names = string.split(" ");
20
+ let initials = names[0].substring(0, 1).toUpperCase();
21
+ if (names.length > 1 && length > 1) {
22
+ initials += names[names.length - 1].substring(0, 1).toUpperCase();
23
+ }
24
+ return initials;
15
25
  }
16
- const j = `:host{--wj-avatar-width: 32px;--wj-avatar-height: 32px;--wj-avatar-font-size: .75rem;--wj-avatar-font-weight: 400;--wj-avatar-color: inherit;--wj-avatar-background-color: var(--wj-color-contrast-low);--wj-avatar-border-radius: 50%;--wj-avatar-border-color: transparent;--wj-avatar-border-width: 1px;--wj-avatar-border-style: solid;display:inline-block;width:var(--wj-avatar-width);height:var(--wj-avatar-height);font-size:var(--wj-avatar-font-size);font-weight:var(--wj-avatar-font-weight);color:var(--wj-avatar-color)}:host .native-avatar{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:var(--wj-avatar-border-radius);background-color:var(--wj-avatar-background-color)}::slotted(wj-img),::slotted(img){border-radius:var(--wj-avatar-border-radius);width:100%;height:100%;object-fit:cover;overflow:hidden}:host(.wj-avatar-border){border-color:var(--wj-avatar-border-color);border-width:var(--wj-avatar-border-width);border-style:var(--wj-avatar-border-style)}:host(.wj-avatar-small){--wj-avatar-width: 24px;--wj-avatar-height: 24px}:host(.wj-avatar-large){--wj-avatar-width: 48px;--wj-avatar-height: 48px}
17
- `;
18
- class g extends v {
26
+ const styles = "/*\n[ WJ Avatar ]\n*/\n:host {\n --wj-avatar-width: 32px;\n --wj-avatar-height: 32px;\n --wj-avatar-font-size: .75rem;\n --wj-avatar-font-weight: 400;\n --wj-avatar-color: inherit;\n --wj-avatar-background-color: var(--wj-color-contrast-low);\n --wj-avatar-border-radius: 50%;\n --wj-avatar-border-color: transparent;\n --wj-avatar-border-width: 1px;\n --wj-avatar-border-style: solid;\n display: inline-block;\n width: var(--wj-avatar-width);\n height: var(--wj-avatar-height);\n font-size: var(--wj-avatar-font-size);\n font-weight: var(--wj-avatar-font-weight);\n color: var(--wj-avatar-color);\n}\n:host .native-avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n border-radius: var(--wj-avatar-border-radius);\n background-color: var(--wj-avatar-background-color);\n}\n\n::slotted(wj-img),\n::slotted(img) {\n border-radius: var(--wj-avatar-border-radius);\n width: 100%;\n height: 100%;\n object-fit: cover;\n overflow: hidden;\n}\n\n:host(.wj-avatar-border) {\n border-color: var(--wj-avatar-border-color);\n border-width: var(--wj-avatar-border-width);\n border-style: var(--wj-avatar-border-style);\n}\n\n:host(.wj-avatar-small) {\n --wj-avatar-width: 24px;\n --wj-avatar-height: 24px;\n}\n\n:host(.wj-avatar-large) {\n --wj-avatar-width: 48px;\n --wj-avatar-height: 48px;\n}";
27
+ class Avatar extends WJElement {
19
28
  constructor() {
20
29
  super();
21
- n(this, "className", "Avatar");
30
+ __publicField(this, "className", "Avatar");
22
31
  }
23
32
  static get cssStyleSheet() {
24
- return j;
33
+ return styles;
25
34
  }
26
35
  setupAttributes() {
27
36
  this.isShadowRoot = "open";
28
37
  }
29
- draw(t, o, s) {
30
- let l = document.createDocumentFragment(), i = document.createElement("div");
31
- if (i.setAttribute("part", "native"), i.classList.add("native-avatar"), this.size && this.classList.add("wj-avatar-" + this.size), this.isImage()) {
32
- let e = document.createElement("slot");
33
- i.appendChild(e);
34
- } else if (this.hasAttribute("initials")) {
35
- let e = c(this.label);
36
- this.setAttribute("style", `--wj-avatar-background-color: ${w(e)}`), i.innerText = e;
38
+ draw(context, store, params) {
39
+ let fragment = document.createDocumentFragment();
40
+ let element = document.createElement("div");
41
+ element.setAttribute("part", "native");
42
+ element.classList.add("native-avatar");
43
+ if (this.size)
44
+ this.classList.add("wj-avatar-" + this.size);
45
+ if (this.isImage()) {
46
+ let slot = document.createElement("slot");
47
+ element.appendChild(slot);
37
48
  } else {
38
- let e = document.createElement("slot");
39
- e.setAttribute("name", "icon"), i.appendChild(e);
49
+ if (this.hasAttribute("initials")) {
50
+ let initials = getInitials(this.label);
51
+ this.setAttribute("style", `--wj-avatar-background-color: ${getHsl(initials)}`);
52
+ element.innerText = initials;
53
+ } else {
54
+ let slotIcon = document.createElement("slot");
55
+ slotIcon.setAttribute("name", "icon");
56
+ element.appendChild(slotIcon);
57
+ }
40
58
  }
41
- return l.appendChild(i), l;
59
+ fragment.appendChild(element);
60
+ return fragment;
42
61
  }
43
62
  isImage() {
44
63
  return this.getElementsByTagName("wj-img").length > 0;
45
64
  }
46
65
  }
47
- customElements.get("wj-avatar") || window.customElements.define("wj-avatar", g);
66
+ customElements.get("wj-avatar") || window.customElements.define("wj-avatar", Avatar);
48
67
  export {
49
- g as Avatar
68
+ Avatar
50
69
  };
package/dist/wj-badge.js CHANGED
@@ -1,31 +1,35 @@
1
- var e = Object.defineProperty;
2
- var l = (r, o, t) => o in r ? e(r, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[o] = t;
3
- var c = (r, o, t) => (l(r, typeof o != "symbol" ? o + "" : o, t), t);
4
- import n 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 w = `/*!
7
- * direction.scss
8
- */:host(.wj-color-primary){--wj-color-base: var(--wj-color-primary) !important;--wj-color-contrast: var(--wj-color-contrast-lowest) !important}:host(.wj-color-complete){--wj-color-base: var(--wj-color-complete) !important;--wj-color-contrast: var(--wj-color-contrast-lowest) !important}:host(.wj-color-success){--wj-color-base: var(--wj-color-success) !important;--wj-color-contrast: var(--wj-color-contrast-lowest) !important}:host(.wj-color-warning){--wj-color-base: var(--wj-color-warning) !important;--wj-color-contrast: var(--wj-color-contrast-high) !important}:host(.wj-color-danger){--wj-color-base: var(--wj-color-danger) !important;--wj-color-contrast: var(--wj-color-contrast-lowest) !important}:host(.wj-color-info){--wj-color-base: var(--wj-color-info) !important;--wj-color-contrast: var(--wj-color-contrast-lowest) !important}:host(.wj-color-menu){--wj-color-base: var(--wj-color-contrast-lower) !important;--wj-color-contrast: var(--wj-color-contrast-high) !important}:host{--wj-chip-border-radius: 100px;text-shadow:none;font-family:var(--wj-font-family);font-weight:600;background-color:var(--wj-color-contrast-low);font-size:11px;padding-left:6px;padding-right:6px;color:var(--wj-color-contrast-high);border-radius:10px}:host(.wj-color){background-color:var(--wj-color-base, red);color:var(--wj-color-contrast)}
9
- `;
10
- class i extends n {
9
+ const styles = "/*!\n* direction.scss\n*/\n/* Skeleton Variables */\n/*\n[ WJ Badge ]\n*/\n:host(.wj-color-primary) {\n --wj-color-base: var(--wj-color-primary) !important;\n --wj-color-contrast: var(--wj-color-contrast-lowest) !important;\n}\n:host(.wj-color-complete) {\n --wj-color-base: var(--wj-color-complete) !important;\n --wj-color-contrast: var(--wj-color-contrast-lowest) !important;\n}\n:host(.wj-color-success) {\n --wj-color-base: var(--wj-color-success) !important;\n --wj-color-contrast: var(--wj-color-contrast-lowest) !important;\n}\n:host(.wj-color-warning) {\n --wj-color-base: var(--wj-color-warning) !important;\n --wj-color-contrast: var(--wj-color-contrast-high) !important;\n}\n:host(.wj-color-danger) {\n --wj-color-base: var(--wj-color-danger) !important;\n --wj-color-contrast: var(--wj-color-contrast-lowest) !important;\n}\n:host(.wj-color-info) {\n --wj-color-base: var(--wj-color-info) !important;\n --wj-color-contrast: var(--wj-color-contrast-lowest) !important;\n}\n:host(.wj-color-menu) {\n --wj-color-base: var(--wj-color-contrast-lower) !important;\n --wj-color-contrast: var(--wj-color-contrast-high) !important;\n}\n:host {\n --wj-chip-border-radius: 100px;\n text-shadow: none;\n font-family: var(--wj-font-family);\n font-weight: 600;\n background-color: var(--wj-color-contrast-low);\n font-size: 11px;\n padding-left: 6px;\n padding-right: 6px;\n color: var(--wj-color-contrast-high);\n border-radius: 10px;\n}\n:host(.wj-color) {\n background-color: var(--wj-color-base, red);\n color: var(--wj-color-contrast);\n}";
10
+ class Badge extends WJElement {
11
11
  constructor() {
12
12
  super();
13
- c(this, "className", "Badge");
13
+ __publicField(this, "className", "Badge");
14
14
  }
15
15
  static get cssStyleSheet() {
16
- return w;
16
+ return styles;
17
17
  }
18
18
  setupAttributes() {
19
19
  this.isShadowRoot = "open";
20
20
  }
21
- draw(t, j, m) {
22
- let a = document.createDocumentFragment(), s = document.createElement("slot");
23
- return this.color && this.classList.add("wj-color-" + this.color, "wj-color"), a.appendChild(s), a;
21
+ draw(context, store, params) {
22
+ let fragment = document.createDocumentFragment();
23
+ let element = document.createElement("slot");
24
+ if (this.color)
25
+ this.classList.add("wj-color-" + this.color, "wj-color");
26
+ fragment.appendChild(element);
27
+ return fragment;
24
28
  }
25
29
  }
26
- let g = "true";
27
- customElements.get("wj-badge") || window.customElements.define("wj-badge", i);
30
+ let __esModule = "true";
31
+ customElements.get("wj-badge") || window.customElements.define("wj-badge", Badge);
28
32
  export {
29
- i as Badge,
30
- g as __esModule
33
+ Badge,
34
+ __esModule
31
35
  };
@@ -1,88 +1,140 @@
1
- var h = Object.defineProperty;
2
- var b = (o, a, e) => a in o ? h(o, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[a] = e;
3
- var p = (o, a, e) => (b(o, typeof a != "symbol" ? a + "" : a, e), e);
4
- import w, { WjElementUtils as l, event as j } 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, { WjElementUtils, event } from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const g = `:host{--wj-breadcrumb-a: var(--wj-color-contrast-high);--wj-breadcrumb-a-hover: var(--wj-color-contrast-medium);display:flex;flex:0 0 auto;align-items:center;line-height:1.5}:host(.collapsed){display:none}.native-breadcrumb{display:flex;align-items:center;width:100%;outline:none;background:inherit;padding:.25rem .75rem;color:var(--wj-breadcrumb-a);text-decoration:none}.native-breadcrumb.hidden{display:none}.native-breadcrumb.active{font-weight:700}.native-breadcrumb:hover{color:var(--wj-breadcrumb-a-hover)}button{margin-inline:.75rem;border:0 solid transparent;border-radius:3px;background-color:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}.separator{display:inline-flex;align-items:center}::slotted([slot=start]){margin-inline:0 .5rem}::slotted([slot=end]){margin-inline:.5rem 0}
7
- `;
8
- class v extends w {
9
+ const styles = "/*\n[ WJ Breadcrumbs ]\n*/\n:host {\n --wj-breadcrumb-a: var(--wj-color-contrast-high);\n --wj-breadcrumb-a-hover: var(--wj-color-contrast-medium);\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n line-height: 1.5;\n}\n\n:host(.collapsed) {\n display: none;\n}\n\n.native-breadcrumb {\n display: flex;\n align-items: center;\n width: 100%;\n outline: none;\n background: inherit;\n padding: 0.25rem 0.75rem;\n color: var(--wj-breadcrumb-a);\n text-decoration: none;\n}\n.native-breadcrumb.hidden {\n display: none;\n}\n.native-breadcrumb.active {\n font-weight: bold;\n}\n.native-breadcrumb:hover {\n color: var(--wj-breadcrumb-a-hover);\n}\n\nbutton {\n margin-inline: 0.75rem;\n border: 0 solid transparent;\n border-radius: 3px;\n background-color: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.separator {\n display: inline-flex;\n align-items: center;\n}\n\n::slotted([slot=start]) {\n margin-inline: 0 0.5rem;\n}\n\n::slotted([slot=end]) {\n margin-inline: 0.5rem 0;\n}";
10
+ class Breadcrumb extends WJElement {
9
11
  constructor() {
10
- var e;
12
+ var _a;
11
13
  super();
12
- p(this, "className", "Breadcrumb");
13
- this._showSeparator = !0, this._collapsedVariant = ((e = this.parentElement) == null ? void 0 : e.collapsedVariant) || "BUTTON";
14
+ __publicField(this, "className", "Breadcrumb");
15
+ this._showSeparator = true;
16
+ this._collapsedVariant = ((_a = this.parentElement) == null ? void 0 : _a.collapsedVariant) || "BUTTON";
14
17
  }
15
18
  get showSeparator() {
16
19
  return this._showSeparator;
17
20
  }
18
- set showSeparator(e) {
19
- this._showSeparator = e;
21
+ set showSeparator(value) {
22
+ this._showSeparator = value;
20
23
  }
21
24
  get collapsedVariant() {
22
25
  return this._collapsedVariant.toUpperCase();
23
26
  }
24
- set collapsedVariant(e) {
25
- this._collapsedVariant = e || this.parentElement.collapsedVariant;
27
+ set collapsedVariant(value) {
28
+ this._collapsedVariant = value || this.parentElement.collapsedVariant;
26
29
  }
27
30
  static get cssStyleSheet() {
28
- return g;
31
+ return styles;
29
32
  }
30
33
  static get observedAttributes() {
31
34
  return ["show-collapsed-indicator", "collapsed", "last"];
32
35
  }
33
- attributeChangedCallback(e, r, t) {
34
- return e === "collapsed" ? l.stringToBoolean(t) && this.classList.add("collapsed") : e === "show-collapsed-indicator" ? l.stringToBoolean(t) && (this.showCollapsedIndicator = !0) : e === "last" && (this.active = l.stringToBoolean(t), this.showSeparator = !l.stringToBoolean(t)), !1;
36
+ attributeChangedCallback(name, oldValue, newValue) {
37
+ if (name === "collapsed") {
38
+ if (WjElementUtils.stringToBoolean(newValue))
39
+ this.classList.add("collapsed");
40
+ } else if (name === "show-collapsed-indicator") {
41
+ if (WjElementUtils.stringToBoolean(newValue))
42
+ this.showCollapsedIndicator = true;
43
+ } else if (name === "last") {
44
+ this.active = WjElementUtils.stringToBoolean(newValue);
45
+ this.showSeparator = !WjElementUtils.stringToBoolean(newValue);
46
+ }
47
+ return false;
35
48
  }
36
49
  setupAttributes() {
37
50
  this.isShadowRoot = "open";
38
51
  }
39
- draw(e, r, t) {
40
- let s = document.createDocumentFragment(), n = document.createElement("a");
41
- n.classList.add("native-breadcrumb"), this.active && n.classList.add("active");
42
- let u = document.createElement("slot"), d = document.createElement("slot");
43
- d.setAttribute("name", "start");
44
- let c = document.createElement("slot");
45
- if (c.setAttribute("name", "end"), n.appendChild(d), n.appendChild(u), n.appendChild(c), s.appendChild(n), this.showCollapsedIndicator && (s.appendChild(this.drawCollapsedIndicator()), this.classList.remove("collapsed"), n.classList.add("hidden")), this.showSeparator) {
46
- let i = document.createElement("span");
47
- if (i.classList.add("separator"), i.setAttribute("part", "separator"), l.hasSlot(this, "separator")) {
48
- let m = document.createElement("slot");
49
- m.setAttribute("name", "separator"), i.appendChild(m);
50
- } else
51
- i.innerHTML = `<wj-icon name=${this.separator || "chevron-right"}></wj-icon>`;
52
- s.appendChild(i);
52
+ draw(context, store, params) {
53
+ let fragment = document.createDocumentFragment();
54
+ let native = document.createElement("a");
55
+ native.classList.add("native-breadcrumb");
56
+ if (this.active)
57
+ native.classList.add("active");
58
+ let slot = document.createElement("slot");
59
+ let start = document.createElement("slot");
60
+ start.setAttribute("name", "start");
61
+ let end = document.createElement("slot");
62
+ end.setAttribute("name", "end");
63
+ native.appendChild(start);
64
+ native.appendChild(slot);
65
+ native.appendChild(end);
66
+ fragment.appendChild(native);
67
+ if (this.showCollapsedIndicator) {
68
+ fragment.appendChild(this.drawCollapsedIndicator());
69
+ this.classList.remove("collapsed");
70
+ native.classList.add("hidden");
53
71
  }
54
- return this.native = n, s;
72
+ if (this.showSeparator) {
73
+ let separator = document.createElement("span");
74
+ separator.classList.add("separator");
75
+ separator.setAttribute("part", "separator");
76
+ if (WjElementUtils.hasSlot(this, "separator")) {
77
+ let slotSeparator = document.createElement("slot");
78
+ slotSeparator.setAttribute("name", "separator");
79
+ separator.appendChild(slotSeparator);
80
+ } else {
81
+ separator.innerHTML = `<wj-icon name=${this.separator || "chevron-right"}></wj-icon>`;
82
+ }
83
+ fragment.appendChild(separator);
84
+ }
85
+ this.native = native;
86
+ return fragment;
55
87
  }
56
88
  drawCollapsedIndicator() {
57
- let e = null;
58
- return this.collapsedVariant === "DROPDOWN" ? e = this.collapseDropdown() : e = this.collapseButton(), e;
89
+ let collapsedIndicator = null;
90
+ if (this.collapsedVariant === "DROPDOWN") {
91
+ collapsedIndicator = this.collapseDropdown();
92
+ } else {
93
+ collapsedIndicator = this.collapseButton();
94
+ }
95
+ return collapsedIndicator;
59
96
  }
60
97
  collapseDropdown() {
61
- let e = document.createElement("wj-dropdown");
62
- e.setAttribute("placement", "bottom"), e.setAttribute("offset", "10");
63
- let r = document.createElement("wj-button");
64
- r.setAttribute("slot", "trigger"), r.setAttribute("fill", "link"), r.innerHTML = '<wj-icon name="dots"></wj-icon>';
65
- let t = document.createElement("wj-menu");
66
- return t.setAttribute("variant", "context"), e.appendChild(r), e.appendChild(t), e.innerHTML = `<wj-button slot="trigger" fill="link">
98
+ let dropdown = document.createElement("wj-dropdown");
99
+ dropdown.setAttribute("placement", "bottom");
100
+ dropdown.setAttribute("offset", "10");
101
+ let button = document.createElement("wj-button");
102
+ button.setAttribute("slot", "trigger");
103
+ button.setAttribute("fill", "link");
104
+ button.innerHTML = `<wj-icon name="dots"></wj-icon>`;
105
+ let menu = document.createElement("wj-menu");
106
+ menu.setAttribute("variant", "context");
107
+ dropdown.appendChild(button);
108
+ dropdown.appendChild(menu);
109
+ dropdown.innerHTML = `<wj-button slot="trigger" fill="link">
67
110
  <wj-icon name="dots"></wj-icon>
68
111
  </wj-button>
69
112
  <wj-menu variant="context">
70
113
  <wj-menu-item>Test 0</wj-menu-item>
71
114
  <wj-menu-item>Test 1</wj-menu-item>
72
115
  <wj-menu-item>Test 2</wj-menu-item>
73
- </wj-menu>`, this.parentElement.querySelectorAll("wj-breadcrumb").forEach((s) => {
74
- }), e;
116
+ </wj-menu>`;
117
+ this.parentElement.querySelectorAll("wj-breadcrumb").forEach((el) => {
118
+ });
119
+ return dropdown;
75
120
  }
76
121
  collapseButton() {
77
- let e = document.createElement("button");
78
- return e.setAttribute("aria-label", "Show more breadcrumbs"), e.setAttribute("part", "collapsed-indicator"), e.innerHTML = '<wj-icon name="dots"></wj-icon>', j.addListener(e, "click", null, (r) => {
79
- this.native.classList.remove("hidden"), e.remove(), this.parentElement.querySelectorAll("wj-breadcrumb").forEach((t) => {
80
- t.classList.remove("collapsed");
81
- }), r.stopPropagation();
82
- }), e;
122
+ let button = document.createElement("button");
123
+ button.setAttribute("aria-label", "Show more breadcrumbs");
124
+ button.setAttribute("part", "collapsed-indicator");
125
+ button.innerHTML = `<wj-icon name="dots"></wj-icon>`;
126
+ event.addListener(button, "click", null, (e) => {
127
+ this.native.classList.remove("hidden");
128
+ button.remove();
129
+ this.parentElement.querySelectorAll("wj-breadcrumb").forEach((e2) => {
130
+ e2.classList.remove("collapsed");
131
+ });
132
+ e.stopPropagation();
133
+ });
134
+ return button;
83
135
  }
84
136
  }
85
- customElements.get("wj-breadcrumb") || window.customElements.define("wj-breadcrumb", v);
137
+ customElements.get("wj-breadcrumb") || window.customElements.define("wj-breadcrumb", Breadcrumb);
86
138
  export {
87
- v as Breadcrumb
139
+ Breadcrumb
88
140
  };
@@ -1,37 +1,54 @@
1
- var i = Object.defineProperty;
2
- var n = (r, t, e) => t in r ? i(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
- var u = (r, t, e) => (n(r, typeof t != "symbol" ? t + "" : t, e), e);
4
- import d 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 p = `:host{display:flex;flex-wrap:wrap;align-items:center}
7
- `;
8
- class b extends d {
9
+ const styles = "/*\n[ WJ Breadcrumbs ]\n*/\n:host {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}";
10
+ class Breadcrumbs extends WJElement {
9
11
  constructor() {
10
12
  super();
11
- u(this, "className", "Breadcrumbs");
12
- this.last = !1;
13
+ __publicField(this, "className", "Breadcrumbs");
14
+ this.last = false;
13
15
  }
14
16
  static get cssStyleSheet() {
15
- return p;
17
+ return styles;
16
18
  }
17
19
  setupAttributes() {
18
20
  this.isShadowRoot = "open";
19
21
  }
20
- draw(e, l, o) {
21
- let s = document.createDocumentFragment(), c = document.createElement("slot");
22
- return s.appendChild(c), s;
22
+ draw(context, store, params) {
23
+ let fragment = document.createDocumentFragment();
24
+ let element = document.createElement("slot");
25
+ fragment.appendChild(element);
26
+ return fragment;
23
27
  }
24
28
  afterDraw() {
25
- let e = +this.maxItems || 0, l = +this.itemsBeforeCollapse || 1, o = +this.itemsAfterCollapse || 1, s = this.getBreadcrumbs();
26
- s.findLast((a) => a).setAttribute("last", !0), e !== void 0 && s.length > e && l + o <= e && s.forEach((a, m) => {
27
- m === l && a.setAttribute("show-collapsed-indicator", !0), m >= l && m < s.length - o && a.setAttribute("collapsed", !0);
28
- });
29
+ let maxItems = +this.maxItems || 0;
30
+ let itemsBeforeCollapse = +this.itemsBeforeCollapse || 1;
31
+ let itemsAfterCollapse = +this.itemsAfterCollapse || 1;
32
+ let breadcrumbs = this.getBreadcrumbs();
33
+ let breadcrumb = breadcrumbs.findLast((e) => e);
34
+ breadcrumb.setAttribute("last", true);
35
+ const shouldCollapse = maxItems !== void 0 && breadcrumbs.length > maxItems && itemsBeforeCollapse + itemsAfterCollapse <= maxItems;
36
+ if (shouldCollapse) {
37
+ breadcrumbs.forEach((breadcrumb2, index) => {
38
+ if (index === itemsBeforeCollapse) {
39
+ breadcrumb2.setAttribute("show-collapsed-indicator", true);
40
+ }
41
+ if (index >= itemsBeforeCollapse && index < breadcrumbs.length - itemsAfterCollapse) {
42
+ breadcrumb2.setAttribute("collapsed", true);
43
+ }
44
+ });
45
+ }
29
46
  }
30
47
  getBreadcrumbs() {
31
48
  return Array.from(this.querySelectorAll("wj-breadcrumb"));
32
49
  }
33
50
  }
34
- customElements.get("wj-breadcrumbs") || window.customElements.define("wj-breadcrumbs", b);
51
+ customElements.get("wj-breadcrumbs") || window.customElements.define("wj-breadcrumbs", Breadcrumbs);
35
52
  export {
36
- b as Breadcrumbs
53
+ Breadcrumbs
37
54
  };