lkt-menu 1.0.8 → 1.0.9

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.
package/dist/build.d.ts CHANGED
@@ -17,7 +17,7 @@ declare class x {
17
17
  setIcon(t: any): this;
18
18
  doClose(): void;
19
19
  }
20
- declare function pe(n: any, t: any, s: any): {
20
+ declare function he(n: any, t: any, s: any): {
21
21
  key: any;
22
22
  href: any;
23
23
  label: any;
@@ -35,8 +35,8 @@ declare function pe(n: any, t: any, s: any): {
35
35
  setIcon: (t: any) => x;
36
36
  doClose: () => void;
37
37
  };
38
- declare namespace ke {
38
+ declare namespace ve {
39
39
  function install(n: any): void;
40
40
  }
41
- declare function fe(n: any): boolean;
42
- export { x as MenuEntry, pe as createMenuEntry, ke as default, fe as setMenuToggleSlot };
41
+ declare function me(n: any): boolean;
42
+ export { x as MenuEntry, he as createMenuEntry, ve as default, me as setMenuToggleSlot };
package/dist/build.js CHANGED
@@ -1,6 +1,6 @@
1
- import { defineComponent as K, ref as w, useSlots as N, computed as o, watch as V, onMounted as H, resolveComponent as D, openBlock as u, createElementBlock as c, normalizeClass as _, createElementVNode as m, createVNode as J, withCtx as $, unref as P, renderSlot as L, createCommentVNode as C, toDisplayString as Q, createBlock as R, resolveDynamicComponent as X, withDirectives as Y, Fragment as T, renderList as b, createSlots as W, vShow as Z, reactive as ee } from "vue";
2
- import { __ as te } from "lkt-i18n";
3
- import { useRouter as le } from "vue-router";
1
+ import { defineComponent as K, ref as M, useSlots as N, computed as r, watch as C, onMounted as G, resolveComponent as B, openBlock as u, createElementBlock as a, normalizeClass as g, createElementVNode as V, createVNode as H, withCtx as $, unref as J, renderSlot as L, createCommentVNode as m, toDisplayString as P, createBlock as w, resolveDynamicComponent as Q, Fragment as T, renderList as b, createSlots as W, reactive as X } from "vue";
2
+ import { __ as Y } from "lkt-i18n";
3
+ import { useRouter as Z } from "vue-router";
4
4
  class x {
5
5
  constructor(t, s, d) {
6
6
  this.key = "", this.href = "", this.label = "", this.icon = "", this.onClick = void 0, this.isActiveChecker = void 0, this.isOpened = !1, this.isActive = !1, this.parent = void 0, this.children = [], this.key = t, this.href = s, this.label = d;
@@ -27,142 +27,141 @@ class x {
27
27
  this.isOpened = !1;
28
28
  }
29
29
  }
30
- const U = (n, t) => (t.forEach((s) => {
31
- n.includes(s.key) || n.push(s.key), s.children.length > 0 && U(n, s.children);
30
+ const R = (n, t) => (t.forEach((s) => {
31
+ n.includes(s.key) || n.push(s.key), s.children.length > 0 && R(n, s.children);
32
32
  }), n), A = class A {
33
33
  };
34
34
  A.toggleSlot = "", A.debugEnabled = !1;
35
35
  let k = A;
36
- const ne = { class: "lkt-menu-entry-main" }, se = { class: "lkt-entry-content" }, ue = {
36
+ const ee = { class: "lkt-menu-entry-main" }, te = { class: "lkt-entry-content" }, le = {
37
37
  key: 0,
38
38
  class: "lkt-menu-entry-icon"
39
- }, ie = {
39
+ }, ne = {
40
40
  key: 1,
41
41
  class: "lkt-menu-entry-text"
42
- }, oe = { class: "lkt-menu-entry-children" }, re = /* @__PURE__ */ K({
42
+ }, se = {
43
+ key: 0,
44
+ class: "lkt-menu-entry-children"
45
+ }, ue = /* @__PURE__ */ K({
43
46
  __name: "MenuItem",
44
47
  props: {
45
48
  modelValue: { default: () => new x("", "", "") }
46
49
  },
47
50
  emits: ["update:modelValue"],
48
51
  setup(n, { emit: t }) {
49
- const s = t, d = n, e = w(d.modelValue), r = N(), S = le(), p = w(!1), f = () => {
52
+ const s = t, d = n, e = M(d.modelValue), o = N(), O = Z(), p = M(!1), f = () => {
50
53
  e.value.isOpened = !e.value.isOpened;
51
54
  }, i = () => (e.value.children.length > 0 && f(), typeof e.value.onClick == "function" && e.value.onClick({
52
55
  entry: e.value
53
- }), 1), v = o(() => r["icon-" + e.value.key] || e.value.icon !== ""), O = o(() => {
56
+ }), 1), v = r(() => o["icon-" + e.value.key] || e.value.icon !== ""), S = r(() => {
54
57
  let l = [];
55
58
  return v.value && l.push("has-icon"), p.value && l.push("is-active"), l.join(" ");
56
- }), y = o(() => U([], e.value.children)), h = o(() => {
59
+ }), y = r(() => R([], e.value.children)), h = r(() => {
57
60
  let l = [];
58
- for (let a in r)
59
- a.startsWith("icon-") && y.value.includes(a.substring(5)) && l.push(a);
61
+ for (let c in o)
62
+ c.startsWith("icon-") && y.value.includes(c.substring(5)) && l.push(c);
60
63
  return l;
61
- }), j = o(() => e.value.label.startsWith("__:") ? te(e.value.label.substring(3)) : e.value.label), z = o(() => e.value.isActive ? !0 : typeof e.value.isActiveChecker == "function" ? !!e.value.isActiveChecker({
64
+ }), D = r(() => e.value.label.startsWith("__:") ? Y(e.value.label.substring(3)) : e.value.label), j = r(() => e.value.isActive ? !0 : typeof e.value.isActiveChecker == "function" ? !!e.value.isActiveChecker({
62
65
  entry: e.value
63
- }) : !1), F = o(() => !!k.toggleSlot), q = o(() => k.toggleSlot);
64
- V(() => d.modelValue, (l) => {
66
+ }) : !1), z = r(() => !!k.toggleSlot), F = r(() => k.toggleSlot);
67
+ return C(() => d.modelValue, (l) => {
65
68
  e.value = l;
66
- }, { deep: !0 }), V(e, (l) => {
69
+ }, { deep: !0 }), C(e, (l) => {
67
70
  s("update:modelValue", l);
68
- }, { deep: !0 }), H(() => {
69
- let l = S.currentRoute;
71
+ }, { deep: !0 }), G(() => {
72
+ let l = O.currentRoute;
70
73
  if (l.value.path === e.value.href)
71
74
  e.value.isOpened = !0;
72
75
  else if (e.value.children.length > 0) {
73
- let a = !1;
74
- e.value.children.forEach((I) => {
75
- l.value.path === I.href && (a = !0);
76
- }), a && (e.value.isOpened = !0);
76
+ let c = !1;
77
+ e.value.children.forEach((E) => {
78
+ l.value.path === E.href && (c = !0);
79
+ }), c && (e.value.isOpened = !0);
77
80
  }
78
- });
79
- const E = o(() => e.value.isOpened);
80
- return (l, a) => {
81
- const I = D("lkt-anchor"), G = D("menu-item", !0);
82
- return u(), c("div", {
83
- class: _(["lkt-menu-entry", O.value])
81
+ }), (l, c) => {
82
+ const E = B("lkt-anchor"), q = B("menu-item", !0);
83
+ return u(), a("div", {
84
+ class: g(["lkt-menu-entry", S.value])
84
85
  }, [
85
- m("div", ne, [
86
- J(I, {
86
+ V("div", ee, [
87
+ H(E, {
87
88
  to: e.value.href,
88
89
  "on-click": i,
89
- "is-active": z.value,
90
- onActive: a[0] || (a[0] = (B) => p.value = B)
90
+ "is-active": j.value,
91
+ onActive: c[0] || (c[0] = (U) => p.value = U)
91
92
  }, {
92
93
  default: $(() => [
93
- m("div", se, [
94
- v.value ? (u(), c("div", ue, [
95
- P(r)["icon-" + e.value.key] ? L(l.$slots, "icon-" + e.value.key, {
94
+ V("div", te, [
95
+ v.value ? (u(), a("div", le, [
96
+ J(o)["icon-" + e.value.key] ? L(l.$slots, "icon-" + e.value.key, {
96
97
  key: e.value.key,
97
98
  entry: e.value
98
- }) : e.value.icon !== "" ? (u(), c("i", {
99
+ }) : e.value.icon !== "" ? (u(), a("i", {
99
100
  key: 1,
100
- class: _(e.value.icon)
101
- }, null, 2)) : C("", !0)
102
- ])) : C("", !0),
103
- e.value.label !== "" ? (u(), c("div", ie, Q(j.value), 1)) : C("", !0)
101
+ class: g(e.value.icon)
102
+ }, null, 2)) : m("", !0)
103
+ ])) : m("", !0),
104
+ e.value.label !== "" ? (u(), a("div", ne, P(D.value), 1)) : m("", !0)
104
105
  ])
105
106
  ]),
106
107
  _: 3
107
108
  }, 8, ["to", "is-active"]),
108
- e.value.children.length > 0 ? (u(), c("div", {
109
+ e.value.children.length > 0 ? (u(), a("div", {
109
110
  key: 0,
110
111
  class: "lkt-menu-entry-toggle",
111
112
  onClick: f
112
113
  }, [
113
- F.value ? (u(), R(X(q.value), {
114
+ z.value ? (u(), w(Q(F.value), {
114
115
  key: 0,
115
- class: _(["lkt-menu-entry-toggle-inner", E.value ? "is-opened" : ""])
116
- }, null, 8, ["class"])) : (u(), c("div", {
116
+ class: g(["lkt-menu-entry-toggle-inner", e.value.isOpened ? "is-opened" : ""])
117
+ }, null, 8, ["class"])) : (u(), a("div", {
117
118
  key: 1,
118
- class: _(["lkt-menu-entry-toggle-inner lkt-menu-entry-toggle-triangle", E.value ? "is-opened" : ""])
119
+ class: g(["lkt-menu-entry-toggle-inner lkt-menu-entry-toggle-triangle", e.value.isOpened ? "is-opened" : ""])
119
120
  }, null, 2))
120
- ])) : C("", !0)
121
+ ])) : m("", !0)
121
122
  ]),
122
- Y(m("div", oe, [
123
- (u(!0), c(T, null, b(e.value.children, (B, M) => (u(), R(G, {
124
- modelValue: e.value.children[M],
125
- "onUpdate:modelValue": (g) => e.value.children[M] = g,
126
- key: e.value.children[M].key
123
+ e.value.isOpened ? (u(), a("div", se, [
124
+ (u(!0), a(T, null, b(e.value.children, (U, I) => (u(), w(q, {
125
+ modelValue: e.value.children[I],
126
+ "onUpdate:modelValue": (_) => e.value.children[I] = _,
127
+ key: e.value.children[I].key
127
128
  }, W({ _: 2 }, [
128
- b(h.value, (g) => ({
129
- name: g,
129
+ b(h.value, (_) => ({
130
+ name: _,
130
131
  fn: $(() => [
131
- L(l.$slots, g)
132
+ L(l.$slots, _)
132
133
  ])
133
134
  }))
134
135
  ]), 1032, ["modelValue", "onUpdate:modelValue"]))), 128))
135
- ], 512), [
136
- [Z, E.value]
137
- ])
136
+ ])) : m("", !0)
138
137
  ], 2);
139
138
  };
140
139
  }
141
- }), ae = { class: "lkt-menu-container" }, ce = { class: "lkt-menu" }, de = /* @__PURE__ */ K({
140
+ }), ie = { class: "lkt-menu-container" }, oe = { class: "lkt-menu" }, re = /* @__PURE__ */ K({
142
141
  __name: "LktMenu",
143
142
  props: {
144
143
  modelValue: { default: () => [] }
145
144
  },
146
145
  emits: ["update:modelValue", "click-outside"],
147
146
  setup(n, { emit: t }) {
148
- const s = n, d = t, e = N(), r = w(s.modelValue), S = o(() => U([], r.value)), p = o(() => {
147
+ const s = n, d = t, e = N(), o = M(s.modelValue), O = r(() => R([], o.value)), p = r(() => {
149
148
  let i = [];
150
149
  for (let v in e)
151
- v.startsWith("icon-") && S.value.includes(v.substring(5)) && i.push(v);
150
+ v.startsWith("icon-") && O.value.includes(v.substring(5)) && i.push(v);
152
151
  return i;
153
152
  }), f = () => {
154
153
  d("click-outside");
155
154
  };
156
- return V(() => s.modelValue, (i) => {
157
- r.value = i;
158
- }, { deep: !0 }), V(r, (i) => {
155
+ return C(() => s.modelValue, (i) => {
156
+ o.value = i;
157
+ }, { deep: !0 }), C(o, (i) => {
159
158
  d("update:modelValue", i);
160
- }, { deep: !0 }), (i, v) => (u(), c("div", ae, [
161
- m("div", ce, [
162
- (u(!0), c(T, null, b(r.value, (O, y) => (u(), R(re, {
163
- modelValue: r.value[y],
164
- "onUpdate:modelValue": (h) => r.value[y] = h,
165
- key: O.key
159
+ }, { deep: !0 }), (i, v) => (u(), a("div", ie, [
160
+ V("div", oe, [
161
+ (u(!0), a(T, null, b(o.value, (S, y) => (u(), w(ue, {
162
+ modelValue: o.value[y],
163
+ "onUpdate:modelValue": (h) => o.value[y] = h,
164
+ key: S.key
166
165
  }, W({ _: 2 }, [
167
166
  b(p.value, (h) => ({
168
167
  name: h,
@@ -172,20 +171,20 @@ const ne = { class: "lkt-menu-entry-main" }, se = { class: "lkt-entry-content" }
172
171
  }))
173
172
  ]), 1032, ["modelValue", "onUpdate:modelValue"]))), 128))
174
173
  ]),
175
- m("div", {
174
+ V("div", {
176
175
  class: "lkt-menu-outside",
177
176
  onClick: f
178
177
  })
179
178
  ]));
180
179
  }
181
- }), ke = {
180
+ }), ve = {
182
181
  install: (n) => {
183
- n.component("lkt-menu") === void 0 && n.component("lkt-menu", de);
182
+ n.component("lkt-menu") === void 0 && n.component("lkt-menu", re);
184
183
  }
185
- }, pe = (n, t, s) => ee(new x(n, t, s)), fe = (n) => (k.toggleSlot = n, !0);
184
+ }, he = (n, t, s) => X(new x(n, t, s)), me = (n) => (k.toggleSlot = n, !0);
186
185
  export {
187
186
  x as MenuEntry,
188
- pe as createMenuEntry,
189
- ke as default,
190
- fe as setMenuToggleSlot
187
+ he as createMenuEntry,
188
+ ve as default,
189
+ me as setMenuToggleSlot
191
190
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lkt-menu",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "lkt",
@@ -90,6 +90,7 @@ const availableKeys = computed(() => {
90
90
  watch(() => props.modelValue, (v) => {
91
91
  entry.value = v
92
92
  }, {deep: true});
93
+
93
94
  watch(entry, (v) => {
94
95
  emit('update:modelValue', v)
95
96
  }, {deep: true});
@@ -108,10 +109,6 @@ onMounted(() => {
108
109
  if (opened) entry.value.isOpened = true;
109
110
  }
110
111
  });
111
-
112
- const isOpened = computed(() => {
113
- return entry.value.isOpened;
114
- })
115
112
  </script>
116
113
 
117
114
  <template>
@@ -142,13 +139,13 @@ const isOpened = computed(() => {
142
139
 
143
140
  <div class="lkt-menu-entry-toggle" v-if="entry.children.length > 0" @click="onClickToggle">
144
141
  <template v-if="hasToggleSlot">
145
- <component :is="toggleSlot" class="lkt-menu-entry-toggle-inner" :class="isOpened ? 'is-opened' : '' "/>
142
+ <component :is="toggleSlot" class="lkt-menu-entry-toggle-inner" :class="entry.isOpened ? 'is-opened' : '' "/>
146
143
  </template>
147
- <div v-else class="lkt-menu-entry-toggle-inner lkt-menu-entry-toggle-triangle" :class="isOpened ? 'is-opened' : '' "/>
144
+ <div v-else class="lkt-menu-entry-toggle-inner lkt-menu-entry-toggle-triangle" :class="entry.isOpened ? 'is-opened' : '' "/>
148
145
  </div>
149
146
  </div>
150
- <div class="lkt-menu-entry-children" v-show="isOpened">
151
- <menu-item v-for="(child, i) in entry.children" v-model="entry.children[i]" :key="entry.children[i].key">
147
+ <div class="lkt-menu-entry-children" v-if="entry.isOpened">
148
+ <menu-item v-for="(_, i) in entry.children" v-model="entry.children[i]" :key="entry.children[i].key">
152
149
  <template v-for="slot in entryIconSlots" v-slot:[slot]>
153
150
  <slot :name="slot"/>
154
151
  </template>