lkt-menu 1.0.7 → 1.0.8

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