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
@@ -1,17 +1,19 @@
1
- var u = Object.defineProperty;
2
- var i = (n, t, e) => t in n ? u(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
- var o = (n, t, e) => (i(n, typeof t != "symbol" ? t + "" : t, e), e);
4
- import l, { event as c } 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 a = `:host{display:inline-flex}@media (min-width: 768px){:host{display:none}}
7
- `;
8
- class m extends l {
9
+ const styles = "/*\n[ WJ Menu Label ]\n*/\n:host {\n display: inline-flex;\n}\n\n@media (min-width: 768px) {\n :host {\n display: none;\n }\n}";
10
+ class MenuButton extends WJElement {
9
11
  constructor() {
10
12
  super();
11
- o(this, "className", "MenuButton");
13
+ __publicField(this, "className", "MenuButton");
12
14
  }
13
15
  static get cssStyleSheet() {
14
- return a;
16
+ return styles;
15
17
  }
16
18
  static get observedAttributes() {
17
19
  return [];
@@ -19,17 +21,19 @@ class m extends l {
19
21
  setupAttributes() {
20
22
  this.isShadowRoot = "open";
21
23
  }
22
- draw(e, d, p) {
23
- let s = document.createDocumentFragment(), r = document.createElement("slot");
24
- return s.appendChild(r), s;
24
+ draw(context, store, params) {
25
+ let fragment = document.createDocumentFragment();
26
+ let slot = document.createElement("slot");
27
+ fragment.appendChild(slot);
28
+ return fragment;
25
29
  }
26
30
  afterDraw() {
27
- c.addListener(this, "click", null, (e) => {
31
+ event.addListener(this, "click", null, (e) => {
28
32
  document.querySelector(`#${this.contentId}`).classList.toggle("open");
29
33
  });
30
34
  }
31
35
  }
32
- customElements.get("wj-menu-button") || window.customElements.define("wj-menu-button", m);
36
+ customElements.get("wj-menu-button") || window.customElements.define("wj-menu-button", MenuButton);
33
37
  export {
34
- m as MenuButton
38
+ MenuButton
35
39
  };
@@ -1,104 +1,190 @@
1
- var g = Object.defineProperty;
2
- var j = (o, n, e) => n in o ? g(o, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[n] = e;
3
- var m = (o, n, e) => (j(o, typeof n != "symbol" ? n + "" : n, e), e);
4
- import x, { WjElementUtils as y, event as l } from "./wj-element.js";
5
- import { b as k } from "./router-links-e0087f84.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";
8
+ import { b as bindRouterLinks } from "./router-links-26e4a166.js";
6
9
  import "./wj-store.js";
7
- const A = `:host{--wj-menu-item-color: var(--wj-color);--wj-menu-item-background: transparent;--wj-menu-item-color-hover: var(--wj-color-contrast-8);--wj-menu-item-background-hover: var(--wj-border-color);--wj-menu-item-color-focus: var(--wj-color-contrast-8);--wj-menu-item-background-focus: var(--wj-border-color);--wj-menu-item-color-active: var(--wj-color-contrast-8);--wj-menu-item-background-active: var(--wj-border-color);--wj-menu-item-padding-top: .5rem;--wj-menu-item-padding-bottom: .5rem;--wj-menu-item-line-height: 1.8rem;--wj-menu-item-safe-triangle-cursor-x: 0;--wj-menu-item-safe-triangle-cursor-y: 0;--wj-menu-item-safe-triangle-submenu-start-x: 0;--wj-menu-item-safe-triangle-submenu-start-y: 0;--wj-menu-item-safe-triangle-submenu-end-x: 0;--wj-menu-item-safe-triangle-submenu-end-y: 0;--wj-menu-submenu-offset: 0;--wj-menu-item-icon-visibility: hidden;display:block}:host .native-menu-item{background:var(--wj-menu-item-background);position:relative;display:flex;flex-wrap:nowrap;align-items:center;color:var(--wj-menu-item-color);padding-top:var(--wj-menu-item-padding-top);padding-bottom:var(--wj-menu-item-padding-bottom);transition:var(--wj-transition-fast) fill;-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer;width:100%;line-height:var(--wj-menu-item-line-height)}:host .native-menu-item:hover{color:var(--wj-menu-item-color-hover);background:var(--wj-menu-item-background-hover)}:host .native-menu-item:focus{color:var(--wj-menu-item-color-focus);background:var(--wj-menu-item-background-focus)}:host .native-menu-item:active{color:var(--wj-menu-item-color-active);background:var(--wj-menu-item-background-active)}:host .native-menu-item .label{flex:1 1 auto;display:inline-block;text-overflow:ellipsis;overflow:hidden}:host .native-menu-item .check-icon{flex:0 0 auto;display:var(--wj-menu-item-check-icon-display, flex);align-items:center;justify-content:center;width:1.5rem;visibility:hidden}:host .native-menu-item .check-icon.checked{visibility:visible}:host .native-menu-item.expanded-submenu{color:var(--wj-menu-item-color-active);background:var(--wj-menu-item-background-active)}:host .native-menu-item.expanded-submenu:hover{color:var(--wj-menu-item-color-hover);background:var(--wj-menu-item-background-hover)}:host .native-menu-item.expanded-submenu:after{content:"";position:fixed;z-index:1;top:0;right:0;bottom:0;left:0;clip-path:polygon(var(--wj-menu-item-safe-triangle-cursor-x) var(--wj-menu-item-safe-triangle-cursor-y),var(--wj-menu-item-safe-triangle-submenu-start-x) var(--wj-menu-item-safe-triangle-submenu-start-y),var(--wj-menu-item-safe-triangle-submenu-end-x) var(--wj-menu-item-safe-triangle-submenu-end-y))}.submenu-icon{--wj-icon-size: 14px !important;flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:1.5rem;visibility:var(--wj-menu-item-icon-visibility)}.has-submenu .submenu-icon{--wj-menu-item-icon-visibility: visible}.submenu-icon.collapse{flex:none;right:10px;position:relative}:host(:focus-visible){outline:none}::slotted([slot=start]){flex:0 0 auto;display:flex;align-items:center;margin-inline-end:.5rem}::slotted([slot=end]){flex:0 0 auto;display:flex;align-items:center;margin-inline-start:.5rem}:host(.wj-menu-variant-nav) ::slotted([slot=submenu]){--wj-menu-border-width: 0 !important;--wj-menu-margin-inline: 2rem 0 !important}:host ::slotted([slot=start]){width:1.5rem}:host(.wj-menu-variant-context){display:block}:host(.active){color:var(--wj-menu-item-color-active);background:var(--wj-menu-item-background-active)}:host(.open){color:var(--wj-menu-item-color-active);background:var(--wj-menu-item-background-active)}
8
- `;
9
- class L extends x {
10
+ const styles = '/*\n[ WJ Menu Item ]\n*/\n:host {\n --wj-menu-item-color: var(--wj-color);\n --wj-menu-item-background: transparent;\n --wj-menu-item-color-hover: var(--wj-color-contrast-8);\n --wj-menu-item-background-hover: var(--wj-border-color);\n --wj-menu-item-color-focus: var(--wj-color-contrast-8);\n --wj-menu-item-background-focus: var(--wj-border-color);\n --wj-menu-item-color-active: var(--wj-color-contrast-8);\n --wj-menu-item-background-active: var(--wj-border-color);\n --wj-menu-item-padding-top: .5rem;\n --wj-menu-item-padding-bottom: .5rem;\n --wj-menu-item-line-height: 1.8rem;\n --wj-menu-item-safe-triangle-cursor-x: 0;\n --wj-menu-item-safe-triangle-cursor-y: 0;\n --wj-menu-item-safe-triangle-submenu-start-x: 0;\n --wj-menu-item-safe-triangle-submenu-start-y: 0;\n --wj-menu-item-safe-triangle-submenu-end-x: 0;\n --wj-menu-item-safe-triangle-submenu-end-y: 0;\n --wj-menu-submenu-offset: 0;\n --wj-menu-item-icon-visibility: hidden;\n display: block;\n}\n:host .native-menu-item {\n background: var(--wj-menu-item-background);\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n color: var(--wj-menu-item-color);\n padding-top: var(--wj-menu-item-padding-top);\n padding-bottom: var(--wj-menu-item-padding-bottom);\n transition: var(--wj-transition-fast) fill;\n user-select: none;\n white-space: nowrap;\n cursor: pointer;\n width: 100%;\n line-height: var(--wj-menu-item-line-height);\n}\n:host .native-menu-item:hover {\n color: var(--wj-menu-item-color-hover);\n background: var(--wj-menu-item-background-hover);\n}\n:host .native-menu-item:focus {\n color: var(--wj-menu-item-color-focus);\n background: var(--wj-menu-item-background-focus);\n}\n:host .native-menu-item:active {\n color: var(--wj-menu-item-color-active);\n background: var(--wj-menu-item-background-active);\n}\n:host .native-menu-item .label {\n flex: 1 1 auto;\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n:host .native-menu-item .check-icon {\n flex: 0 0 auto;\n display: var(--wj-menu-item-check-icon-display, flex);\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n visibility: hidden;\n}\n:host .native-menu-item .check-icon.checked {\n visibility: visible;\n}\n:host .native-menu-item.expanded-submenu {\n color: var(--wj-menu-item-color-active);\n background: var(--wj-menu-item-background-active);\n}\n:host .native-menu-item.expanded-submenu:hover {\n color: var(--wj-menu-item-color-hover);\n background: var(--wj-menu-item-background-hover);\n}\n:host .native-menu-item.expanded-submenu::after {\n content: "";\n position: fixed;\n z-index: 1;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n clip-path: polygon(var(--wj-menu-item-safe-triangle-cursor-x) var(--wj-menu-item-safe-triangle-cursor-y), var(--wj-menu-item-safe-triangle-submenu-start-x) var(--wj-menu-item-safe-triangle-submenu-start-y), var(--wj-menu-item-safe-triangle-submenu-end-x) var(--wj-menu-item-safe-triangle-submenu-end-y));\n}\n\n.submenu-icon {\n --wj-icon-size: 14px !important;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n visibility: var(--wj-menu-item-icon-visibility);\n}\n\n.has-submenu .submenu-icon {\n --wj-menu-item-icon-visibility: visible;\n}\n\n.submenu-icon.collapse {\n flex: none;\n right: 10px;\n position: relative;\n}\n\n:host(:focus-visible) {\n outline: none;\n}\n\n::slotted([slot=start]) {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n margin-inline-end: 0.5rem;\n}\n\n::slotted([slot=end]) {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n margin-inline-start: 0.5rem;\n}\n\n:host(.wj-menu-variant-nav) ::slotted([slot=submenu]) {\n --wj-menu-border-width: 0 !important;\n --wj-menu-margin-inline: 2rem 0 !important;\n}\n\n:host ::slotted([slot=start]) {\n width: 1.5rem;\n}\n\n:host(.wj-menu-variant-context) {\n display: block;\n}\n\n:host(.active) {\n color: var(--wj-menu-item-color-active);\n background: var(--wj-menu-item-background-active);\n}\n\n:host(.open) {\n color: var(--wj-menu-item-color-active);\n background: var(--wj-menu-item-background-active);\n}';
11
+ class MenuItem extends WJElement {
10
12
  constructor() {
11
13
  super();
12
- m(this, "className", "MenuItem");
13
- m(this, "dispatchMove", (e) => {
14
- this.style.setProperty("--wj-menu-item-safe-triangle-cursor-x", `${e.clientX}px`), this.style.setProperty("--wj-menu-item-safe-triangle-cursor-y", `${e.clientY}px`);
14
+ __publicField(this, "className", "MenuItem");
15
+ __publicField(this, "dispatchMove", (e) => {
16
+ this.style.setProperty("--wj-menu-item-safe-triangle-cursor-x", `${e.clientX}px`);
17
+ this.style.setProperty("--wj-menu-item-safe-triangle-cursor-y", `${e.clientY}px`);
15
18
  });
16
- m(this, "dispatchReposition", (e) => {
19
+ __publicField(this, "dispatchReposition", (e) => {
17
20
  if (this.submenu.assignedNodes().length === 0)
18
21
  return;
19
- let i = this.submenu.assignedNodes()[0];
20
- const { left: c, top: s, width: t, height: a } = i.getBoundingClientRect();
21
- this.style.setProperty("--wj-menu-item-safe-triangle-submenu-start-x", `${c}px`), this.style.setProperty("--wj-menu-item-safe-triangle-submenu-start-y", `${s}px`), this.style.setProperty("--wj-menu-item-safe-triangle-submenu-end-x", `${c}px`), this.style.setProperty("--wj-menu-item-safe-triangle-submenu-end-y", `${s + a}px`);
22
+ let submenu = this.submenu.assignedNodes()[0];
23
+ const { left, top, width, height } = submenu.getBoundingClientRect();
24
+ this.style.setProperty("--wj-menu-item-safe-triangle-submenu-start-x", `${left}px`);
25
+ this.style.setProperty("--wj-menu-item-safe-triangle-submenu-start-y", `${top}px`);
26
+ this.style.setProperty("--wj-menu-item-safe-triangle-submenu-end-x", `${left}px`);
27
+ this.style.setProperty("--wj-menu-item-safe-triangle-submenu-end-y", `${top + height}px`);
22
28
  });
23
- k(this, { selector: !1 }), this.hasSubmenu = y.hasSlot(this, "submenu"), this._collapsible = !1;
29
+ bindRouterLinks(this, { selector: false });
30
+ this.hasSubmenu = WjElementUtils.hasSlot(this, "submenu");
31
+ this._collapsible = false;
24
32
  }
25
33
  get placement() {
26
- let e = this.querySelector("wj-menu");
27
- return e != null && e.hasAttribute("placement") ? e.getAttribute("placement") : "right-start";
34
+ let menu = this.querySelector("wj-menu");
35
+ if (menu == null ? void 0 : menu.hasAttribute("placement")) {
36
+ return menu.getAttribute("placement");
37
+ }
38
+ return "right-start";
28
39
  }
29
40
  get offset() {
30
- let e = this.querySelector("wj-menu");
31
- return e != null && e.hasAttribute("offset") ? e.getAttribute("offset") : "0";
41
+ let menu = this.querySelector("wj-menu");
42
+ if (menu == null ? void 0 : menu.hasAttribute("offset")) {
43
+ return menu.getAttribute("offset");
44
+ }
45
+ return "0";
32
46
  }
33
47
  get variant() {
34
- let e = this.querySelector("wj-menu");
35
- return e != null && e.hasAttribute("variant") && !this.collapse ? e.getAttribute("variant").toUpperCase() : "CONTEXT";
48
+ let menu = this.querySelector("wj-menu");
49
+ if ((menu == null ? void 0 : menu.hasAttribute("variant")) && !this.collapse) {
50
+ return menu.getAttribute("variant").toUpperCase();
51
+ }
52
+ return "CONTEXT";
36
53
  }
37
54
  get collapse() {
38
- var e;
39
- return (e = this.parentElement) == null ? void 0 : e.hasAttribute("collapse");
55
+ var _a;
56
+ return (_a = this.parentElement) == null ? void 0 : _a.hasAttribute("collapse");
40
57
  }
41
58
  static get cssStyleSheet() {
42
- return A;
59
+ return styles;
43
60
  }
44
61
  static get observedAttributes() {
45
62
  return [];
46
63
  }
47
64
  setupAttributes() {
48
- super.setupAttributes(), this.isShadowRoot = "open", this.setAttribute("active-class", "open");
65
+ super.setupAttributes();
66
+ this.isShadowRoot = "open";
67
+ this.setAttribute("active-class", "open");
49
68
  }
50
- draw(e, i, c) {
51
- var w;
52
- let s = document.createDocumentFragment();
53
- this.setAttribute("tabindex", "0"), this.classList.add("wj-menu-variant-" + this.variant.toLowerCase()), (w = this.querySelector("wj-menu")) == null || w.setAttribute("variant", this.variant.toLowerCase());
54
- let t = document.createElement("div");
55
- t.setAttribute("part", "native"), t.setAttribute("id", "anchor"), t.classList.add("native-menu-item");
56
- let a = document.createElement("span");
57
- a.classList.add("check-icon"), a.innerHTML = '<wj-icon name="check"></wj-icon>', this.hasAttribute("checked") ? a.classList.add("checked") : a.classList.remove("checked");
58
- let h = document.createElement("slot");
59
- h.name = "start";
60
- let p = document.createElement("slot");
61
- p.classList.add("label");
62
- let b = document.createElement("slot");
63
- b.name = "end";
64
- let u = document.createElement("slot");
65
- u.setAttribute("part", "submenu"), u.name = "submenu";
66
- let f = this.collapse ? "collapse" : "expand", d = document.createElement("span");
67
- d.classList.add("submenu-icon", f), d.innerHTML = this.collapse ? '<wj-icon name="chevron-down"></wj-icon>' : '<wj-icon name="chevron-right"></wj-icon>', this.hasSubmenu ? t.classList.add("has-submenu") : t.classList.remove("has-submenu"), t.appendChild(a), t.appendChild(h), t.appendChild(p), t.appendChild(b), t.appendChild(d);
68
- let v = !1;
69
+ draw(context, store, params) {
70
+ var _a;
71
+ let fragment = document.createDocumentFragment();
72
+ this.setAttribute("tabindex", "0");
73
+ this.classList.add("wj-menu-variant-" + this.variant.toLowerCase());
74
+ (_a = this.querySelector("wj-menu")) == null ? void 0 : _a.setAttribute("variant", this.variant.toLowerCase());
75
+ let native = document.createElement("div");
76
+ native.setAttribute("part", "native");
77
+ native.setAttribute("id", "anchor");
78
+ native.classList.add("native-menu-item");
79
+ let checkedIcon = document.createElement("span");
80
+ checkedIcon.classList.add("check-icon");
81
+ checkedIcon.innerHTML = `<wj-icon name="check"></wj-icon>`;
82
+ this.hasAttribute("checked") ? checkedIcon.classList.add("checked") : checkedIcon.classList.remove("checked");
83
+ let start = document.createElement("slot");
84
+ start.name = "start";
85
+ let slot = document.createElement("slot");
86
+ slot.classList.add("label");
87
+ let end = document.createElement("slot");
88
+ end.name = "end";
89
+ let submenu = document.createElement("slot");
90
+ submenu.setAttribute("part", "submenu");
91
+ submenu.name = "submenu";
92
+ let submenuIconClass = this.collapse ? "collapse" : "expand";
93
+ let submenuIcon = document.createElement("span");
94
+ submenuIcon.classList.add("submenu-icon", submenuIconClass);
95
+ submenuIcon.innerHTML = this.collapse ? `<wj-icon name="chevron-down"></wj-icon>` : `<wj-icon name="chevron-right"></wj-icon>`;
96
+ this.hasSubmenu ? native.classList.add("has-submenu") : native.classList.remove("has-submenu");
97
+ native.appendChild(checkedIcon);
98
+ native.appendChild(start);
99
+ native.appendChild(slot);
100
+ native.appendChild(end);
101
+ native.appendChild(submenuIcon);
102
+ let isAppend = false;
69
103
  if (
70
104
  /*(this.collapse && this.variant === "NAV" && this.hasSubmenu) || */
71
105
  this.variant === "CONTEXT" && this.hasSubmenu
72
106
  ) {
73
- t.setAttribute("slot", "anchor");
74
- let r = document.createElement("wj-popup");
75
- r.setAttribute("anchor", "anchor"), r.setAttribute("placement", this.placement), r.setAttribute("offset", this.offset), r.appendChild(t), r.appendChild(u), this.popup = r, s.appendChild(r), v = !0;
107
+ native.setAttribute("slot", "anchor");
108
+ let popup = document.createElement("wj-popup");
109
+ popup.setAttribute("anchor", "anchor");
110
+ popup.setAttribute("placement", this.placement);
111
+ popup.setAttribute("offset", this.offset);
112
+ popup.appendChild(native);
113
+ popup.appendChild(submenu);
114
+ this.popup = popup;
115
+ fragment.appendChild(popup);
116
+ isAppend = true;
117
+ }
118
+ if (this.collapse && !this.hasSubmenu) {
119
+ fragment.appendChild(this.collapseItem(native));
120
+ } else if (!isAppend) {
121
+ fragment.appendChild(native);
122
+ }
123
+ if (!this.collapse && this.variant === "NAV" || this.variant === "MEGAMENU" && this.hasSubmenu) {
124
+ fragment.appendChild(submenu);
76
125
  }
77
- return this.collapse && !this.hasSubmenu ? s.appendChild(this.collapseItem(t)) : v || s.appendChild(t), (!this.collapse && this.variant === "NAV" || this.variant === "MEGAMENU" && this.hasSubmenu) && s.appendChild(u), this.native = t, this.submenu = u, s;
126
+ this.native = native;
127
+ this.submenu = submenu;
128
+ return fragment;
78
129
  }
79
130
  afterDraw() {
80
- this.addEventListener("mousemove", this.dispatchMove), this.addEventListener("wj-popup:reposition", this.dispatchReposition), l.addListener(this, "mouseover", null, (e) => {
81
- this.hasAttribute("manual") || this.variant === "NAV" && !this.collapse || (e.stopPropagation(), this.showSubmenu(), this.focus());
82
- }), l.addListener(this, "focusout", null, (e) => {
83
- e.relatedTarget && this.contains(e.relatedTarget) || this.variant === "NAV" && !this.collapse || this.hideSubmenu();
84
- }), !this.collapse && this.variant === "NAV" && this.hasSubmenu ? l.addListener(this, "click", null, (e) => {
85
- let i = this.submenu.assignedElements({ flatten: !0 })[0];
86
- i.hasAttribute("active") ? this === e.target && i.removeAttribute("active") : i.setAttribute("active", ""), e.stopPropagation();
87
- }) : l.addListener(this, "click", null, (e) => {
131
+ this.addEventListener("mousemove", this.dispatchMove);
132
+ this.addEventListener("wj-popup:reposition", this.dispatchReposition);
133
+ event.addListener(this, "mouseover", null, (e) => {
134
+ if (this.hasAttribute("manual") || this.variant === "NAV" && !this.collapse)
135
+ return;
136
+ e.stopPropagation();
137
+ this.showSubmenu();
138
+ this.focus();
139
+ });
140
+ event.addListener(this, "focusout", null, (e) => {
141
+ if (e.relatedTarget && this.contains(e.relatedTarget) || this.variant === "NAV" && !this.collapse) {
142
+ return;
143
+ }
144
+ this.hideSubmenu();
88
145
  });
146
+ if (!this.collapse && this.variant === "NAV" && this.hasSubmenu) {
147
+ event.addListener(this, "click", null, (e) => {
148
+ let submenuElements = this.submenu.assignedElements({ flatten: true })[0];
149
+ if (!submenuElements.hasAttribute("active")) {
150
+ submenuElements.setAttribute("active", "");
151
+ } else {
152
+ if (this === e.target)
153
+ submenuElements.removeAttribute("active");
154
+ }
155
+ e.stopPropagation();
156
+ });
157
+ } else {
158
+ event.addListener(this, "click", null, (e) => {
159
+ });
160
+ }
89
161
  }
90
- collapseItem(e) {
91
- let i = document.createElement("wj-tooltip");
92
- return i.setAttribute("content", this.textContent), i.setAttribute("placement", "right"), i.setAttribute("offset", this.offset || "0"), i.appendChild(e), i;
162
+ collapseItem(native) {
163
+ let tooltip = document.createElement("wj-tooltip");
164
+ tooltip.setAttribute("content", this.textContent);
165
+ tooltip.setAttribute("placement", "right");
166
+ tooltip.setAttribute("offset", this.offset || "0");
167
+ tooltip.appendChild(native);
168
+ return tooltip;
93
169
  }
94
170
  showSubmenu() {
95
- this.tabIndex = -1, this.hasSubmenu && (this.popup.setAttribute("active", ""), this.classList.add("expanded-submenu"), this.native.classList.add("expanded-submenu"));
171
+ this.tabIndex = -1;
172
+ if (this.hasSubmenu) {
173
+ this.popup.setAttribute("active", "");
174
+ this.classList.add("expanded-submenu");
175
+ this.native.classList.add("expanded-submenu");
176
+ }
96
177
  }
97
178
  hideSubmenu() {
98
- this.tabIndex = 0, this.hasSubmenu && (this.popup.removeAttribute("active"), this.classList.remove("expanded-submenu"), this.native.classList.remove("expanded-submenu"));
179
+ this.tabIndex = 0;
180
+ if (this.hasSubmenu) {
181
+ this.popup.removeAttribute("active");
182
+ this.classList.remove("expanded-submenu");
183
+ this.native.classList.remove("expanded-submenu");
184
+ }
99
185
  }
100
186
  }
101
- customElements.get("wj-menu-item") || window.customElements.define("wj-menu-item", L);
187
+ customElements.get("wj-menu-item") || window.customElements.define("wj-menu-item", MenuItem);
102
188
  export {
103
- L as MenuItem
189
+ MenuItem
104
190
  };
@@ -1,20 +1,20 @@
1
- var r = Object.defineProperty;
2
- var o = (t, e, n) => e in t ? r(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
- var l = (t, e, n) => (o(t, typeof e != "symbol" ? e + "" : e, n), n);
4
- import i, { WjElementUtils as m } 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 } from "./wj-element.js";
5
8
  import "./wj-store.js";
6
- const d = `/*!
7
- * direction.scss
8
- */:host{--wj-menu-label-font-size: .75rem;--wj-menu-label-weight: 600;--wj-letter-spacing: .025rem;--wj-menu-label-color: var(--wj-color-contrast-6);--wj-padding-top: 0;--wj-padding-bottom: 0;--wj-padding-start: 1.5rem;--wj-padding-end: 1.5rem}:host .native-menu-label{font-size:var(--wj-menu-label-font-size);display:inline-block;font-weight:var(--wj-menu-label-weight);letter-spacing:var(--wj-letter-spacing);color:var(--wj-menu-label-color);padding:var(--wj-padding-top) var(--wj-padding-start) var(--wj-padding-bottom) var(--wj-padding-end)}
9
- `;
10
- class u extends i {
9
+ const styles = "/*!\n* direction.scss\n*/\n/* Skeleton Variables */\n/*\n[ Menu Label ]\n*/\n:host {\n --wj-menu-label-font-size: .75rem;\n --wj-menu-label-weight: 600;\n --wj-letter-spacing: .025rem;\n --wj-menu-label-color: var(--wj-color-contrast-6);\n --wj-padding-top: 0;\n --wj-padding-bottom: 0;\n --wj-padding-start: 1.5rem;\n --wj-padding-end: 1.5rem;\n}\n:host .native-menu-label {\n font-size: var(--wj-menu-label-font-size);\n display: inline-block;\n font-weight: var(--wj-menu-label-weight);\n letter-spacing: var(--wj-letter-spacing);\n color: var(--wj-menu-label-color);\n padding: var(--wj-padding-top) var(--wj-padding-start) var(--wj-padding-bottom) var(--wj-padding-end);\n}";
10
+ class MenuLabel extends WJElement {
11
11
  constructor() {
12
12
  super();
13
- l(this, "className", "MenuLabel");
14
- this.hasSubmenu = m.hasSlot(this, "submenu");
13
+ __publicField(this, "className", "MenuLabel");
14
+ this.hasSubmenu = WjElementUtils.hasSlot(this, "submenu");
15
15
  }
16
16
  static get cssStyleSheet() {
17
- return d;
17
+ return styles;
18
18
  }
19
19
  static get observedAttributes() {
20
20
  return [];
@@ -22,12 +22,16 @@ class u extends i {
22
22
  setupAttributes() {
23
23
  this.isShadowRoot = "open";
24
24
  }
25
- draw(n, c, w) {
26
- let s = document.createDocumentFragment(), a = document.createElement("slot");
27
- return a.setAttribute("part", "base"), a.classList.add("native-menu-label"), s.appendChild(a), s;
25
+ draw(context, store, params) {
26
+ let fragment = document.createDocumentFragment();
27
+ let slot = document.createElement("slot");
28
+ slot.setAttribute("part", "base");
29
+ slot.classList.add("native-menu-label");
30
+ fragment.appendChild(slot);
31
+ return fragment;
28
32
  }
29
33
  }
30
- customElements.get("wj-menu-label") || window.customElements.define("wj-menu-label", u);
34
+ customElements.get("wj-menu-label") || window.customElements.define("wj-menu-label", MenuLabel);
31
35
  export {
32
- u as MenuLabel
36
+ MenuLabel
33
37
  };
package/dist/wj-menu.js CHANGED
@@ -1,17 +1,19 @@
1
- var m = Object.defineProperty;
2
- var d = (n, e, t) => e in n ? m(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
- var a = (n, e, t) => (d(n, typeof e != "symbol" ? e + "" : e, t), t);
4
- import s 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 u = `:host{--wj-menu-background: var(--wj-background);--wj-menu-border-width: 1px;--wj-menu-border-style: solid;--wj-menu-border-color: var(--wj-border-color);--wj-menu-border-radius: 4px;--wj-menu-padding-top: .5rem;--wj-menu-padding-bottom: .5rem;--wj-menu-padding-inline: 0;--wj-menu-margin-top: ;--wj-menu-margin-bottom: 0;--wj-menu-margin-inline: 0;--wj-menu-z-index: 900;display:none;background:var(--wj-menu-background);position:relative;border-width:var(--wj-menu-border-width);border-style:var(--wj-menu-border-style);border-color:var(--wj-menu-border-color);z-index:var(--wj-menu-z-index);border-radius:var(--wj-border-radius-small);padding-top:var(--wj-menu-padding-top);padding-bottom:var(--wj-menu-padding-bottom);padding-inline:var(--wj-menu-padding-inline);margin-top:var(--wj-menu-margin-top);margin-bottom:var(--wj-menu-margin-bottom);margin-inline:var(--wj-menu-margin-inline);overflow:auto;overscroll-behavior:none}:host .native-menu{display:flex;flex-direction:column;width:100%}:host .native-menu ::slotted(wj-button){margin:0}:host(.wj-menu-collapse){max-width:70px!important}:host([variant=context]){display:block!important;margin-left:var(--wj-menu-submenu-offset)}:host([variant=megamenu]) .native-menu{flex-direction:row;align-items:end;flex-wrap:nowrap}:host([variant=megamenu]) .native-menu .check-icon{display:none}:host([active]){display:flex!important}
7
- `;
8
- class l extends s {
9
+ const styles = "/*\n[ Wj Menu ]\n*/\n:host {\n --wj-menu-background: var(--wj-background);\n --wj-menu-border-width: 1px;\n --wj-menu-border-style: solid;\n --wj-menu-border-color: var(--wj-border-color);\n --wj-menu-border-radius: 4px;\n --wj-menu-padding-top: .5rem;\n --wj-menu-padding-bottom: .5rem;\n --wj-menu-padding-inline: 0;\n --wj-menu-margin-top: ;\n --wj-menu-margin-bottom: 0;\n --wj-menu-margin-inline: 0;\n --wj-menu-z-index: 900;\n display: none;\n background: var(--wj-menu-background);\n position: relative;\n border-width: var(--wj-menu-border-width);\n border-style: var(--wj-menu-border-style);\n border-color: var(--wj-menu-border-color);\n z-index: var(--wj-menu-z-index);\n border-radius: var(--wj-border-radius-small);\n padding-top: var(--wj-menu-padding-top);\n padding-bottom: var(--wj-menu-padding-bottom);\n padding-inline: var(--wj-menu-padding-inline);\n margin-top: var(--wj-menu-margin-top);\n margin-bottom: var(--wj-menu-margin-bottom);\n margin-inline: var(--wj-menu-margin-inline);\n overflow: auto;\n overscroll-behavior: none;\n}\n:host .native-menu {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n:host .native-menu ::slotted(wj-button) {\n margin: 0;\n}\n\n:host(.wj-menu-collapse) {\n max-width: 70px !important;\n}\n\n:host([variant=context]) {\n display: block !important;\n margin-left: var(--wj-menu-submenu-offset);\n}\n\n:host([variant=megamenu]) .native-menu {\n flex-direction: row;\n align-items: end;\n flex-wrap: nowrap;\n}\n:host([variant=megamenu]) .native-menu .check-icon {\n display: none;\n}\n\n:host([active]) {\n display: flex !important;\n}";
10
+ class Menu extends WJElement {
9
11
  constructor() {
10
12
  super();
11
- a(this, "className", "Menu");
13
+ __publicField(this, "className", "Menu");
12
14
  }
13
15
  static get cssStyleSheet() {
14
- return u;
16
+ return styles;
15
17
  }
16
18
  static get observedAttributes() {
17
19
  return ["active", "collapse"];
@@ -19,16 +21,20 @@ class l extends s {
19
21
  setupAttributes() {
20
22
  this.isShadowRoot = "open";
21
23
  }
22
- draw(t, w, c) {
23
- let o = document.createDocumentFragment();
24
- this.classList.remove("wj-menu-collapse"), this.hasAttribute("collapse") && this.classList.add("wj-menu-collapse");
25
- let r = document.createElement("div");
26
- r.classList.add("native-menu");
27
- let i = document.createElement("slot");
28
- return r.appendChild(i), o.appendChild(r), o;
24
+ draw(context, store, params) {
25
+ let fragment = document.createDocumentFragment();
26
+ this.classList.remove("wj-menu-collapse");
27
+ if (this.hasAttribute("collapse"))
28
+ this.classList.add("wj-menu-collapse");
29
+ let native = document.createElement("div");
30
+ native.classList.add("native-menu");
31
+ let slot = document.createElement("slot");
32
+ native.appendChild(slot);
33
+ fragment.appendChild(native);
34
+ return fragment;
29
35
  }
30
36
  }
31
- customElements.get("wj-menu") || window.customElements.define("wj-menu", l);
37
+ customElements.get("wj-menu") || window.customElements.define("wj-menu", Menu);
32
38
  export {
33
- l as Menu
39
+ Menu
34
40
  };