eco-vue-js 0.8.19 → 0.8.20

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,24 @@
1
+ import { openBlock, createElementBlock, createElementVNode } from 'vue';
2
+
3
+ const _hoisted_1 = {
4
+ xmlns: "http://www.w3.org/2000/svg",
5
+ width: "20",
6
+ height: "20",
7
+ fill: "none",
8
+ viewBox: "0 0 24 24"
9
+ };
10
+
11
+ function render(_ctx, _cache) {
12
+ return (openBlock(), createElementBlock("svg", _hoisted_1, _cache[0] || (_cache[0] = [
13
+ createElementVNode("path", {
14
+ stroke: "currentColor",
15
+ "stroke-linecap": "round",
16
+ "stroke-linejoin": "round",
17
+ "stroke-width": "1.5",
18
+ d: "M9.5 21V3M14.5 21V3"
19
+ }, null, -1)
20
+ ])))
21
+ }
22
+ const IconDrag = { render: render };
23
+
24
+ export { IconDrag as default, render };
@@ -1 +1 @@
1
- {"version":3,"file":"WList.vue.d.ts","sourceRoot":"","sources":["../../../src/components/List/WList.vue"],"names":[],"mappings":"AAmQA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,SAAS,CAAA;yBAOnE,IAAI,SAAS,WAAW,EAAE,WAAW,eACxC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA2hBxD,mBAAmB,CAAC;;;gBAnhBpB,MAAM;gBACN,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;oBAC1B,cAAc,CAAC,IAAI,CAAC;oBACpB,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC;qBACnC,WAAW;6BACH,MAAM;wBACX,MAAM;eACf,aAAa,CAAC,WAAW,CAAC,EAAE;mBACxB,aAAa,CAAC,WAAW,CAAC,EAAE;cACjC,aAAa,CAAC,IAAI,CAAC,EAAE;yBACV,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO;oBAC5B,MAAM;6BACG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM;oBACvD,OAAO;qBACN,OAAO;KAqgBiE,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;cAlgBP,uBAAuB,SAAS,MAAM,KAAG,IAAI;;;;YAugBP,OAAO,CAAC,OAAO,WAAW,CAAC;;AAriBvE,wBAqiB4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"WList.vue.d.ts","sourceRoot":"","sources":["../../../src/components/List/WList.vue"],"names":[],"mappings":"AAiRA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,SAAS,CAAA;yBAOnE,IAAI,SAAS,WAAW,EAAE,WAAW,eACxC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WA6jBxD,mBAAmB,CAAC;;;gBAjjBpB,MAAM;gBACN,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;oBAC1B,cAAc,CAAC,IAAI,CAAC;oBACpB,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC;qBACnC,WAAW;6BACH,MAAM;wBACX,MAAM;eACf,aAAa,CAAC,WAAW,CAAC,EAAE;mBACxB,aAAa,CAAC,WAAW,CAAC,EAAE;cACjC,aAAa,CAAC,IAAI,CAAC,EAAE;yBACV,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO;oBAC5B,MAAM;6BACG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM;oBACvD,OAAO;qBACN,OAAO;KAmiBiE,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;cAhiBP,uBAAuB,SAAS,MAAM,KAAG,IAAI;;;;YAqiBP,OAAO,CAAC,OAAO,WAAW,CAAC;;AAvkBvE,wBAukB4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, computed, openBlock, createBlock, unref, withCtx, createSlots, createElementBlock, Fragment, renderList, resolveDynamicComponent, normalizeClass, createCommentVNode, createVNode } from 'vue';
1
+ import { defineComponent, ref, computed, openBlock, createBlock, unref, withCtx, createSlots, createElementBlock, Fragment, renderList, resolveDynamicComponent, normalizeClass, createCommentVNode, normalizeStyle, createVNode } from 'vue';
2
2
  import _sfc_main$1 from '../InfiniteList/WInfiniteList.vue.js';
3
3
  import { getIsMobile } from '../../utils/mobile.js';
4
4
  import { useSelected, getPosition } from '../../utils/useSelected.js';
@@ -34,6 +34,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
34
34
  const props = __props;
35
35
  const listCount = ref(0);
36
36
  const selectionCount = ref(0);
37
+ const fieldConfig = ref(props.fields.map(() => ({ width: 0 })));
37
38
  const allowSelect = computed(() => props.bulk !== void 0);
38
39
  const {
39
40
  selected,
@@ -152,8 +153,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
152
153
  field: typeof field.field === "string" ? field.field : field.field?.(_ctx.queryParams),
153
154
  class: normalizeClass([field.cssClass, index === _ctx.fields.length - 1 ? "z-[1]" : void 0]),
154
155
  ordering: ordering.value,
155
- disabled: !field.field
156
- }, null, 8, ["title", "field", "class", "ordering", "disabled"])) : createCommentVNode("", true)
156
+ disabled: !field.field,
157
+ "allow-resize": field.allowResize,
158
+ style: normalizeStyle({
159
+ minWidth: !unref(isMobile) && fieldConfig.value[index]?.width ? fieldConfig.value[index].width + "px" : void 0
160
+ }),
161
+ "onUpdate:width": ($event) => fieldConfig.value[index].width = $event
162
+ }, null, 8, ["title", "field", "class", "ordering", "disabled", "allow-resize", "style", "onUpdate:width"])) : createCommentVNode("", true)
157
163
  ], 64);
158
164
  }), 128))
159
165
  ]),
@@ -184,13 +190,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
184
190
  "sm:border-y border-gray-300 dark:border-gray-700": _ctx.hasBorder,
185
191
  "sm:border-b-[transparent] sm:dark:border-b-[transparent]": _ctx.hasBorder && isOpen
186
192
  }),
193
+ style: normalizeStyle({
194
+ minWidth: !unref(isMobile) && fieldConfig.value[index]?.width ? fieldConfig.value[index].width + "px" : void 0
195
+ }),
187
196
  "onUpdate:item": setter,
188
197
  "onDelete:item": ($event) => {
189
198
  setter();
190
199
  refetch();
191
200
  },
192
201
  onClick: ($event) => field.allowOpen && !skeleton && toggle()
193
- }, null, 40, ["item", "readonly", "skeleton", "mobile", "class", "onUpdate:item", "onDelete:item", "onClick"])) : createCommentVNode("", true)
202
+ }, null, 40, ["item", "readonly", "skeleton", "mobile", "class", "style", "onUpdate:item", "onDelete:item", "onClick"])) : createCommentVNode("", true)
194
203
  ], 64);
195
204
  }), 128))
196
205
  ]),
@@ -1,17 +1,20 @@
1
1
  import { OrderItem } from '../../utils/order';
2
2
  declare const _default: <Field>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, never> & {
3
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
4
+ readonly "onUpdate:width"?: ((value: number) => any) | undefined;
5
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:width"> & {
4
6
  title?: string;
5
7
  field: Field;
6
8
  ordering: OrderItem<Field>[];
7
9
  disabled?: boolean;
10
+ allowResize?: boolean;
8
11
  }> & import('vue').PublicProps;
9
12
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
10
13
  attrs: any;
11
14
  slots: {
12
15
  default?(_: {}): any;
13
16
  };
14
- emit: {};
17
+ emit: (e: "update:width", value: number) => void;
15
18
  }>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
16
19
  [key: string]: any;
17
20
  }> & {
@@ -1 +1 @@
1
- {"version":3,"file":"WListHeaderItem.vue.d.ts","sourceRoot":"","sources":["../../../src/components/List/WListHeaderItem.vue"],"names":[],"mappings":"AAkGA,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,eAAe,CAAA;yBAGlD,KAAK,eACR,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAwJxD,mBAAmB,CAAC;gBApJpB,MAAM;eACP,KAAK;kBACF,SAAS,CAAC,KAAK,CAAC,EAAE;mBACjB,OAAO;KAiJmE,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;yBA1BgB,GAAG;;UA4BvB,EAAE;;;;YAGiC,OAAO,CAAC,OAAO,WAAW,CAAC;;AAlKvE,wBAkK4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"WListHeaderItem.vue.d.ts","sourceRoot":"","sources":["../../../src/components/List/WListHeaderItem.vue"],"names":[],"mappings":"AAgHA,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,eAAe,CAAA;yBAIlD,KAAK,eACR,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAmNxD,mBAAmB,CAAC;;;gBA/MpB,MAAM;eACP,KAAK;kBACF,SAAS,CAAC,KAAK,CAAC,EAAE;mBACjB,OAAO;sBACJ,OAAO;KA2MgE,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;yBA9BiB,GAAG;;cA1K3B,cAAc,SAAS,MAAM,KAAG,IAAI;;;;YA6ME,OAAO,CAAC,OAAO,WAAW,CAAC;;AA7NvE,wBA6N4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1,11 +1,12 @@
1
- import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createTextVNode, toDisplayString, createVNode, Transition, withCtx, unref, createCommentVNode } from 'vue';
1
+ import { defineComponent, computed, openBlock, createBlock, resolveDynamicComponent, withCtx, normalizeClass, createElementVNode, renderSlot, createTextVNode, toDisplayString, Transition, createElementBlock, createVNode, unref, createCommentVNode } from 'vue';
2
2
  import { useRoute, useRouter } from 'vue-router';
3
3
  import IconBack from '../../assets/icons/default/IconBack.svg.js';
4
4
  import { Order, encodeOrdering } from '../../utils/order.js';
5
+ import _sfc_main$1 from './components/HeaderItemResizer.vue.js';
5
6
 
6
7
  const _hoisted_1 = {
7
8
  key: 0,
8
- class: "flex gap-1 w-7 items-center"
9
+ class: "flex gap-1 items-center"
9
10
  };
10
11
  const _hoisted_2 = { key: 0 };
11
12
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -14,8 +15,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14
15
  title: {},
15
16
  field: {},
16
17
  ordering: {},
17
- disabled: { type: Boolean }
18
+ disabled: { type: Boolean },
19
+ allowResize: { type: Boolean }
18
20
  },
21
+ emits: ["update:width"],
19
22
  setup(__props) {
20
23
  const props = __props;
21
24
  const route = useRoute();
@@ -44,41 +47,53 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
44
47
  updateQuery(newOrdering);
45
48
  };
46
49
  return (_ctx, _cache) => {
47
- return openBlock(), createElementBlock("div", {
48
- class: normalizeClass(["pr-6 flex gap-2 select-none items-center text-description font-semibold", {
49
- "cursor-pointer": !_ctx.disabled
50
- }]),
51
- onClick: setOrdering
52
- }, [
53
- createElementVNode("div", {
54
- class: normalizeClass(["whitespace-nowrap", {
55
- "hover:underline": !_ctx.disabled
56
- }])
57
- }, [
58
- renderSlot(_ctx.$slots, "default", {}, () => [
59
- createTextVNode(toDisplayString(_ctx.title), 1)
60
- ])
61
- ], 2),
62
- createVNode(Transition, {
63
- "enter-active-class": "transition-opacity",
64
- "leave-active-class": "transition-opacity",
65
- "enter-from-class": "opacity-0",
66
- "leave-to-class": "opacity-0"
67
- }, {
68
- default: withCtx(() => [
69
- index.value !== -1 ? (openBlock(), createElementBlock("div", _hoisted_1, [
70
- createVNode(unref(IconBack), {
71
- class: normalizeClass(["w-4 h-4 transition-transform", {
72
- "rotate-90": _ctx.ordering[index.value]?.order === "ASC",
73
- "-rotate-90": _ctx.ordering[index.value]?.order === "DESC"
50
+ return openBlock(), createBlock(resolveDynamicComponent(_ctx.allowResize ? _sfc_main$1 : "div"), {
51
+ class: "select-none text-description pr-6",
52
+ "onUpdate:width": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("update:width", $event))
53
+ }, {
54
+ default: withCtx(() => [
55
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.disabled ? "div" : "button"), {
56
+ class: normalizeClass(["h-full w-full flex gap-2 group font-semibold items-center", {
57
+ "cursor-pointer": !_ctx.disabled
58
+ }]),
59
+ onClick: setOrdering
60
+ }, {
61
+ default: withCtx(() => [
62
+ createElementVNode("div", {
63
+ class: normalizeClass(["whitespace-nowrap", {
64
+ "group-hover:underline": !_ctx.disabled
74
65
  }])
75
- }, null, 8, ["class"]),
76
- _ctx.ordering.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(index.value + 1), 1)) : createCommentVNode("", true)
77
- ])) : createCommentVNode("", true)
78
- ]),
79
- _: 1
80
- })
81
- ], 2);
66
+ }, [
67
+ renderSlot(_ctx.$slots, "default", {}, () => [
68
+ createTextVNode(toDisplayString(_ctx.title), 1)
69
+ ])
70
+ ], 2),
71
+ !_ctx.disabled ? (openBlock(), createBlock(Transition, {
72
+ key: 0,
73
+ "enter-active-class": "transition-opacity",
74
+ "leave-active-class": "transition-opacity",
75
+ "enter-from-class": "opacity-0",
76
+ "leave-to-class": "opacity-0"
77
+ }, {
78
+ default: withCtx(() => [
79
+ index.value !== -1 ? (openBlock(), createElementBlock("div", _hoisted_1, [
80
+ createVNode(unref(IconBack), {
81
+ class: normalizeClass(["square-3 transition-transform", {
82
+ "rotate-90": _ctx.ordering[index.value]?.order === "ASC",
83
+ "-rotate-90": _ctx.ordering[index.value]?.order === "DESC"
84
+ }])
85
+ }, null, 8, ["class"]),
86
+ _ctx.ordering.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(index.value + 1), 1)) : createCommentVNode("", true)
87
+ ])) : createCommentVNode("", true)
88
+ ]),
89
+ _: 1
90
+ })) : createCommentVNode("", true)
91
+ ]),
92
+ _: 3
93
+ }, 8, ["class"]))
94
+ ]),
95
+ _: 3
96
+ }, 32);
82
97
  };
83
98
  }
84
99
  });
@@ -0,0 +1,20 @@
1
+ declare const _default: <Field>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
2
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
3
+ readonly "onUpdate:width"?: ((value: number) => any) | undefined;
4
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:width"> & {}> & import('vue').PublicProps;
5
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
6
+ attrs: any;
7
+ slots: {
8
+ default?(_: {}): any;
9
+ };
10
+ emit: (e: "update:width", value: number) => void;
11
+ }>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
12
+ [key: string]: any;
13
+ }> & {
14
+ __ctx?: Awaited<typeof __VLS_setup>;
15
+ };
16
+ export default _default;
17
+ type __VLS_PrettifyLocal<T> = {
18
+ [K in keyof T]: T[K];
19
+ } & {};
20
+ //# sourceMappingURL=HeaderItemResizer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderItemResizer.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/List/components/HeaderItemResizer.vue"],"names":[],"mappings":"yBAmFiB,KAAK,eACR,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAwIxD,mBAAmB,CAAC;;2IAAyD,CAAC,4BAA2B;oBAChG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;yBA7BgB,GAAG;;cAzG1B,cAAc,SAAS,MAAM,KAAG,IAAI;;;;YA2IE,OAAO,CAAC,OAAO,WAAW,CAAC;;AAlJvE,wBAkJ4E;AAC5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { defineComponent, useTemplateRef, onMounted, onBeforeUnmount, openBlock, createElementBlock, renderSlot, createElementVNode, withModifiers, createVNode, unref } from 'vue';
2
+ import IconDrag from '../../../assets/icons/sax/IconDrag.svg.js';
3
+ import DOMListenerContainer from '../../../utils/DOMListenerContainer.js';
4
+
5
+ const _hoisted_1 = {
6
+ ref: "element",
7
+ class: "relative"
8
+ };
9
+ const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ __name: "HeaderItemResizer",
11
+ emits: ["update:width"],
12
+ setup(__props, { emit: __emit }) {
13
+ const emit = __emit;
14
+ const listenerContainer = new DOMListenerContainer();
15
+ const elementRef = useTemplateRef("element");
16
+ let started = null;
17
+ let widthSaved = null;
18
+ const startDrag = (clickEvent) => {
19
+ if (!elementRef.value) return;
20
+ started = clickEvent.clientX;
21
+ widthSaved = elementRef.value.offsetWidth;
22
+ listenerContainer.addEventListener(document, "mousemove", (event) => {
23
+ if (started === null || widthSaved === null || !(event instanceof MouseEvent)) {
24
+ endDrag();
25
+ return;
26
+ }
27
+ emit("update:width", widthSaved + event.clientX - started);
28
+ });
29
+ listenerContainer.addEventListener(document, "mouseup", (event) => {
30
+ event.stopPropagation();
31
+ event.preventDefault();
32
+ endDrag();
33
+ });
34
+ };
35
+ const endDrag = () => {
36
+ listenerContainer.destroy();
37
+ started = null;
38
+ widthSaved = null;
39
+ };
40
+ onMounted(() => {
41
+ setTimeout(() => {
42
+ if (!elementRef.value) return;
43
+ emit("update:width", elementRef.value.offsetWidth);
44
+ }, 1e3);
45
+ });
46
+ onBeforeUnmount(() => {
47
+ listenerContainer.destroy();
48
+ });
49
+ return (_ctx, _cache) => {
50
+ return openBlock(), createElementBlock("div", _hoisted_1, [
51
+ renderSlot(_ctx.$slots, "default"),
52
+ createElementVNode("button", {
53
+ class: "absolute top-0 right-1 h-full w-6 flex items-center opacity-50 hover:opacity-100 cursor-col-resize",
54
+ onMousedown: withModifiers(startDrag, ["stop", "prevent"]),
55
+ onMouseup: withModifiers(endDrag, ["stop", "prevent"]),
56
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
57
+ }, ["stop", "prevent"]))
58
+ }, [
59
+ createVNode(unref(IconDrag))
60
+ ], 32)
61
+ ], 512);
62
+ };
63
+ }
64
+ });
65
+
66
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './HeaderItemResizer.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -12,6 +12,7 @@ export type ListField<Data, QueryParams = unknown> = {
12
12
  field?: Extract<keyof Data, string> | ((params: QueryParams) => Extract<keyof Data, string>);
13
13
  visibleGetter?: (params: QueryParams) => boolean;
14
14
  allowOpen?: boolean;
15
+ allowResize?: boolean;
15
16
  };
16
17
  export type MenuComponent<Data> = Component<{
17
18
  item: Data;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/List/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,KAAK,CAAA;AAEvC,MAAM,MAAM,cAAc,CAAC,IAAI,IAAI,SAAS,CAAC;IAC3C,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC,CAAA;AAEF,MAAM,MAAM,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,IAAI;IACnD,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IACpC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,CAAA;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5F,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAA;IAChD,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC;IAC1C,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC,CAAA;AAEF,MAAM,MAAM,aAAa,CAAC,WAAW,IAAI,SAAS,CAAC;IACjD,iBAAiB,EAAE,MAAM,WAAW,CAAA;IACpC,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/List/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,GAAG,EAAC,MAAM,KAAK,CAAA;AAEvC,MAAM,MAAM,cAAc,CAAC,IAAI,IAAI,SAAS,CAAC;IAC3C,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC,CAAA;AAEF,MAAM,MAAM,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,IAAI;IACnD,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IACpC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,CAAA;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5F,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAA;IAChD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC;IAC1C,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC,CAAA;AAEF,MAAM,MAAM,aAAa,CAAC,WAAW,IAAI,SAAS,CAAC;IACjD,iBAAiB,EAAE,MAAM,WAAW,CAAA;IACpC,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "type": "git",
5
5
  "url": "https://github.com/rsmple/eco-vue-js.git"
6
6
  },
7
- "version": "0.8.19",
7
+ "version": "0.8.20",
8
8
  "scripts": {
9
9
  "dev": "vite",
10
10
  "build": "run-p type-check build-only",
@@ -118,6 +118,7 @@ module.exports = plugin(function ({matchUtilities, addVariant, addUtilities, add
118
118
  addVariant('touch', '.touch &')
119
119
  addVariant('touch-not', '.touch-not &')
120
120
  addVariant('focus-within-not', '&:not(:focus-within)')
121
+ addVariant('resizer', '&::-webkit-resizer')
121
122
 
122
123
  addBase({
123
124
  '.w-input': {