nuxt-hs-ui 2.11.1 → 2.11.3

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/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": ">=3.15.0"
6
6
  },
7
- "version": "2.11.1",
7
+ "version": "2.11.3",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "0.8.4",
10
10
  "unbuild": "2.0.0"
package/dist/module.mjs CHANGED
@@ -121,7 +121,7 @@ const module = defineNuxtModule({
121
121
  exposeConfig: true,
122
122
  config: twConfig
123
123
  });
124
- await installModule("@pinia/nuxt", { disableVuex: true });
124
+ await installModule("@pinia/nuxt");
125
125
  await installModule("@vueuse/nuxt");
126
126
  addPlugin(resolve("runtime/plugin/v-select"));
127
127
  }
@@ -15,6 +15,7 @@ import { type ClassType, ClassTypeToString } from "../../utils/class-style";
15
15
  import type { SelectItem } from "../../utils/select-item";
16
16
  import { useDisplayList, type DisplaySelectItem } from "../../utils/select";
17
17
  import type { MultiLang } from "../../utils/multi-lang";
18
+ import { ObjectCopy } from "../../utils/object";
18
19
 
19
20
  // [ composables ]
20
21
  import { useHsFocus } from "../../composables/use-hs-focus";
@@ -28,6 +29,7 @@ import Btn from "../form/btn.vue";
28
29
  const hsFocus = useHsFocus();
29
30
  const multiLang = useHsMultiLang();
30
31
  const tx = multiLang.tx;
32
+ const gt = multiLang.gt;
31
33
  // ----------------------------------------------------------------------------
32
34
  // [ Props ]
33
35
  type Props = {
@@ -208,26 +210,61 @@ interface SelectItemShow extends DisplaySelectItem<IdType> {
208
210
  activate: boolean;
209
211
  i: number;
210
212
  }
213
+ const displayList = ref<SelectItemShow[]>([]);
211
214
 
212
- const displayList = computed<SelectItemShow[]>(() => {
213
- return useDisplayList<IdType>({
214
- list: props.list,
215
- id: props.data,
216
- order: props.order,
217
- unKnownData: unKnownData.value,
218
- unKnownSelected: unKnownSelected.value,
219
- isShowHidden: isShowHidden.value,
220
- require: props.require || !props.nullable,
221
- nullText: tx(props.nullText).value,
222
- }).map((row, index) => {
223
- return {
224
- ...row,
225
- elm: null,
226
- activate: false,
227
- i: index,
228
- };
229
- });
230
- });
215
+ watch(
216
+ () => [
217
+ props.list,
218
+ props.list.length,
219
+ props.data,
220
+ isShowHidden.value,
221
+ props.require,
222
+ props.nullable,
223
+ props.nullText,
224
+ ],
225
+ () => {
226
+ displayList.value = useDisplayList<IdType>({
227
+ list: ObjectCopy(props.list).map((row) => {
228
+ return { ...row, text: gt(row.text) };
229
+ }),
230
+ id: props.data,
231
+ order: props.order,
232
+ unKnownData: unKnownData.value,
233
+ unKnownSelected: unKnownSelected.value,
234
+ isShowHidden: isShowHidden.value,
235
+ require: props.require || !props.nullable,
236
+ nullText: tx(props.nullText).value,
237
+ }).map((row, index) => {
238
+ return {
239
+ ...row,
240
+ elm: null,
241
+ activate: false,
242
+ i: index,
243
+ };
244
+ }) as SelectItemShow[];
245
+ },
246
+ { immediate: true }
247
+ );
248
+
249
+ // const displayList = computed<SelectItemShow[]>(() => {
250
+ // return useDisplayList<IdType>({
251
+ // list: props.list,
252
+ // id: props.data,
253
+ // order: props.order,
254
+ // unKnownData: unKnownData.value,
255
+ // unKnownSelected: unKnownSelected.value,
256
+ // isShowHidden: isShowHidden.value,
257
+ // require: props.require || !props.nullable,
258
+ // nullText: tx(props.nullText).value,
259
+ // }).map((row, index) => {
260
+ // return {
261
+ // ...row,
262
+ // elm: null,
263
+ // activate: false,
264
+ // i: index,
265
+ // };
266
+ // });
267
+ // });
231
268
  // ----------------------------------------------------------------------------
232
269
 
233
270
  const checkData = (id: IdType | null) => {
@@ -306,7 +343,7 @@ const onBlur = (index: null | number) => {
306
343
  if (props.readonly) return;
307
344
  if (index === null) {
308
345
  focusState.isNullActivate = false;
309
- } else {
346
+ } else if (index in displayList.value) {
310
347
  displayList.value[index].activate = false;
311
348
  }
312
349
  setTimeout(() => {
@@ -481,7 +518,7 @@ const inputClass = computed(() => {
481
518
  :class="colClass"
482
519
  @mousedown="onMousedownItem"
483
520
  @mouseup="onMouseupItem(row.elm)"
484
- @click="setValue(row)"
521
+ @click="setValue(row as SelectItemShow)"
485
522
  >
486
523
  <div
487
524
  class="nac-radio"
@@ -9,10 +9,15 @@
9
9
  // [ tailwind ]
10
10
  // [ NUXT ]
11
11
  import { reactive, ref, watch, computed, useId, nextTick } from "#imports";
12
+
13
+ // import { createPopper } from "@popperjs/core";
14
+
12
15
  // [ utils ]
13
16
  import type { ClassType } from "../../utils/class-style";
14
17
  import type { SelectItem } from "../../utils/select-item";
15
18
  import { useDisplayList, type DisplaySelectItem } from "../../utils/select";
19
+ import { ObjectCopy } from "../../utils/object";
20
+
16
21
  import type { MultiLang } from "../../utils/multi-lang";
17
22
  // [ composables ]
18
23
  import { useHsFocus } from "../../composables/use-hs-focus";
@@ -193,25 +198,58 @@ const unKnownData = computed(() => {
193
198
  // ----------------------------------------------------------------------------
194
199
  const isShowHidden = ref(false);
195
200
  /** 選択肢に非表示アイテムが含まれているかどうか */
201
+
202
+ const pList = computed(() => {
203
+ return ObjectCopy(props.list);
204
+ });
196
205
  const includeHidden = computed(() => {
197
- return props.list.filter((row) => row.hidden).length > 0;
206
+ return pList.value.filter((row) => row.hidden).length > 0;
198
207
  });
199
208
  // ----------------------------------------------------------------------------
200
209
  /** 選択肢 */
201
- const displayList = computed(() => {
202
- return useDisplayList<IdType>({
203
- list: props.list.map((row) => {
204
- return { ...row, text: gt(row.text) };
205
- }),
206
- id: props.data,
207
- order: props.order,
208
- unKnownData: unKnownData.value,
209
- unKnownSelected: unKnownSelected.value,
210
- isShowHidden: isShowHidden.value,
211
- require: props.require || !props.nullable,
212
- nullText: tx(props.nullText).value,
213
- });
214
- });
210
+ const displayList = ref<DisplaySelectItem<IdType>[]>([]);
211
+
212
+ watch(
213
+ () => [
214
+ props.list,
215
+ props.list.length,
216
+ props.data,
217
+ isShowHidden.value,
218
+ props.require,
219
+ props.nullable,
220
+ props.nullText,
221
+ ],
222
+ () => {
223
+ displayList.value = useDisplayList<IdType>({
224
+ list: ObjectCopy(props.list).map((row) => {
225
+ return { ...row, text: gt(row.text) };
226
+ }),
227
+ id: props.data,
228
+ order: props.order,
229
+ unKnownData: unKnownData.value,
230
+ unKnownSelected: unKnownSelected.value,
231
+ isShowHidden: isShowHidden.value,
232
+ require: props.require || !props.nullable,
233
+ nullText: tx(props.nullText).value,
234
+ });
235
+ },
236
+ { immediate: true }
237
+ );
238
+ // const displayList = computed(() => {
239
+ // console.log("displayList");
240
+ // return useDisplayList<IdType>({
241
+ // list: ObjectCopy(props.list).map((row) => {
242
+ // return { ...row, text: gt(row.text) };
243
+ // }),
244
+ // id: props.data,
245
+ // order: props.order,
246
+ // unKnownData: unKnownData.value,
247
+ // unKnownSelected: unKnownSelected.value,
248
+ // isShowHidden: isShowHidden.value,
249
+ // require: props.require || !props.nullable,
250
+ // nullText: tx(props.nullText).value,
251
+ // });
252
+ // });
215
253
  // ----------------------------------------------------------------------------
216
254
 
217
255
  const checkData = (id: IdType | null) => {
@@ -286,6 +324,33 @@ const selectClose = () => {
286
324
  focusState.isOpen = false;
287
325
  emit("selectClose", uid);
288
326
  };
327
+ // const placement = ref("top");
328
+ const inputElement = ref<HTMLElement | null>(null);
329
+ // const withPopper = (dropdownList: any, component: any, { width }: any) => {
330
+ // dropdownList.style.width = width;
331
+ // const popper = createPopper(component.$refs.toggle, dropdownList, {
332
+ // placement: placement.value as any,
333
+ // modifiers: [
334
+ // {
335
+ // name: "offset",
336
+ // options: {
337
+ // offset: [0, -1],
338
+ // },
339
+ // },
340
+ // {
341
+ // name: "toggleClass",
342
+ // enabled: true,
343
+ // phase: "write",
344
+ // fn({ state }) {
345
+ // component.$el.classList.toggle("drop-up", state.placement === "top");
346
+ // },
347
+ // },
348
+ // ],
349
+ // });
350
+ // return () => popper.destroy();
351
+ // };
352
+ // :calculate-position="withPopper"
353
+
289
354
  // ----------------------------------------------------------------------------
290
355
  // ----------------------------------------------------------------------------
291
356
  </script>
@@ -500,6 +565,10 @@ const selectClose = () => {
500
565
  display: none;
501
566
  }
502
567
 
568
+ .vs__dropdown-menu {
569
+ max-height: 250px;
570
+ }
571
+
503
572
  .v-select-hidden-toggle-switch {
504
573
  pointer-events: all !important;
505
574
  }
@@ -9,7 +9,7 @@
9
9
  // [ tailwind ]
10
10
  import { twMerge } from "tailwind-merge";
11
11
  // [ NUXT ]
12
- import { useId, computed, watch, onUnmounted, ref } from "#imports";
12
+ import { useId, computed, watch, onUnmounted, ref, useHead } from "#imports";
13
13
  // [ utils ]
14
14
  import { type ClassType, ClassTypeToString } from "../../utils/class-style";
15
15
  // [ composables ]
@@ -59,6 +59,14 @@ if (props.show) {
59
59
  hsModal.add(id, props.closeable);
60
60
  }
61
61
  }
62
+ useHead({
63
+ style: [
64
+ {
65
+ // flatpickr が毎回勝てるよう、都度上書き
66
+ children: `.flatpickr-calendar{z-index:${zOrder.value + 1} !important;}`,
67
+ },
68
+ ],
69
+ });
62
70
  watch(
63
71
  () => props.show,
64
72
  (show) => {
@@ -123,7 +131,7 @@ const closeOnBackEvent = () => {
123
131
  };
124
132
  const down = ref(false);
125
133
  const downStop = () => {
126
- console.log("downStop", down.value);
134
+ // console.log("downStop", down.value);
127
135
  if (down.value) {
128
136
  down.value = false;
129
137
  closeOnBackEvent();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxt-hs-ui",
3
- "version": "2.11.1",
3
+ "version": "2.11.3",
4
4
  "description": "My new Nuxt module",
5
5
  "repository": "https://github.com/hare-systems-ryo/nuxt-hs-ui",
6
6
  "license": "MIT",
@@ -117,6 +117,7 @@
117
117
  "@nuxt/ui": "^2.21.0",
118
118
  "@nuxtjs/tailwindcss": "^6.13.1",
119
119
  "@pinia/nuxt": "0.11.0",
120
+ "@popperjs/core": "^2.11.8",
120
121
  "@vueuse/core": "^12.3.0",
121
122
  "@vueuse/integrations": "^12.3.0",
122
123
  "@vueuse/nuxt": "^12.3.0",
@@ -146,8 +147,8 @@
146
147
  "eslint": "^9.18.0",
147
148
  "nuxt": "^3.15.1",
148
149
  "sass": "^1.83.4",
149
- "tailwindcss": "^3.4.17",
150
150
  "sass-embedded": "^1.83.4",
151
+ "tailwindcss": "^3.4.17",
151
152
  "typescript": "~5.7.3",
152
153
  "vitest": "^2.1.8",
153
154
  "vue-tsc": "^2.2.0"