@vuetkit/components 0.0.13 → 0.0.15
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/README.md +4 -0
- package/dist/index.d.ts +74 -3
- package/dist/index.js +127 -2
- package/package.json +3 -3
package/README.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RequestService } from "@vuetkit/core";
|
|
2
|
-
import { ComponentSize, DescriptionItemProps, DescriptionProps, DialogProps, FormRules, MessageProps, MessageType, PaginationProps, TableProps } from "element-plus";
|
|
3
|
-
import { CSSProperties, Component, MaybeRef, VNode } from "vue";
|
|
2
|
+
import { ComponentSize, DescriptionItemProps, DescriptionProps, DialogProps, FormRules, MessageProps, MessageType, PaginationProps, StepProps, StepsProps, TabPaneName, TableProps, TabsPaneContext, TabsProps } from "element-plus";
|
|
3
|
+
import { CSSProperties, Component, MaybeRef, Ref, VNode } from "vue";
|
|
4
4
|
import { TableColumnProps } from "element-plus/es/components/table/src/table-column/defaults.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/data/useDescriptions/index.d.ts
|
|
@@ -105,6 +105,77 @@ declare function setDeepProperty(data: Recordable, propArr: string[], value: unk
|
|
|
105
105
|
declare function useForm(options: undefined): [null, Recordable];
|
|
106
106
|
declare function useForm<T extends object>(options: FormOptions<T>): FormReturnType<T>;
|
|
107
107
|
//#endregion
|
|
108
|
+
//#region src/navigation/useSteps/index.d.ts
|
|
109
|
+
interface StepsColumn extends Partial<StepProps> {
|
|
110
|
+
title?: string;
|
|
111
|
+
description?: string;
|
|
112
|
+
render?: (val: unknown) => VNode;
|
|
113
|
+
renderTitle?: (val: unknown) => VNode;
|
|
114
|
+
renderIcon?: (val: unknown) => VNode;
|
|
115
|
+
}
|
|
116
|
+
interface StepsOptions<T> extends StepsProps {
|
|
117
|
+
steps: StepsColumn[];
|
|
118
|
+
service?: RequestService<T>;
|
|
119
|
+
params?: unknown;
|
|
120
|
+
formatData?: (data: T) => StepsColumn[];
|
|
121
|
+
defaultActive?: number;
|
|
122
|
+
}
|
|
123
|
+
type StepsReturnType = [Component, Ref<number>];
|
|
124
|
+
declare function useSteps<T>(options: StepsOptions<T>): (Ref<number, number> | import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
125
|
+
modelValue: {
|
|
126
|
+
type: NumberConstructor;
|
|
127
|
+
default: undefined;
|
|
128
|
+
};
|
|
129
|
+
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
130
|
+
[key: string]: any;
|
|
131
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
132
|
+
modelValue: {
|
|
133
|
+
type: NumberConstructor;
|
|
134
|
+
default: undefined;
|
|
135
|
+
};
|
|
136
|
+
}>> & Readonly<{}>, {
|
|
137
|
+
modelValue: number;
|
|
138
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>)[];
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/navigation/useTabs/index.d.ts
|
|
141
|
+
interface TabsColumn {
|
|
142
|
+
label?: string;
|
|
143
|
+
name?: string | number;
|
|
144
|
+
disabled?: boolean;
|
|
145
|
+
closable?: boolean;
|
|
146
|
+
lazy?: boolean;
|
|
147
|
+
render?: (val: unknown) => VNode;
|
|
148
|
+
renderLabel?: (val: unknown) => VNode;
|
|
149
|
+
}
|
|
150
|
+
interface TabsOptions<T> extends Partial<TabsProps> {
|
|
151
|
+
tabs: TabsColumn[];
|
|
152
|
+
service?: RequestService<T>;
|
|
153
|
+
params?: unknown;
|
|
154
|
+
formatData?: (data: T) => TabsColumn[];
|
|
155
|
+
defaultActive?: string | number;
|
|
156
|
+
onTabClick?: (tab: TabsPaneContext, event: Event) => void;
|
|
157
|
+
onTabChange?: (name: TabPaneName) => void;
|
|
158
|
+
onTabRemove?: (name: TabPaneName) => void;
|
|
159
|
+
onTabAdd?: () => void;
|
|
160
|
+
onEdit?: (targetName: TabPaneName | undefined, action: 'remove' | 'add') => void;
|
|
161
|
+
}
|
|
162
|
+
type TabsReturnType = [Component, Ref<string | number>];
|
|
163
|
+
declare function useTabs<T>(options: TabsOptions<T>): (Ref<string | number, string | number> | import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
164
|
+
modelValue: {
|
|
165
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
166
|
+
default: undefined;
|
|
167
|
+
};
|
|
168
|
+
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
169
|
+
[key: string]: any;
|
|
170
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
171
|
+
modelValue: {
|
|
172
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
173
|
+
default: undefined;
|
|
174
|
+
};
|
|
175
|
+
}>> & Readonly<{}>, {
|
|
176
|
+
modelValue: string | number;
|
|
177
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>)[];
|
|
178
|
+
//#endregion
|
|
108
179
|
//#region src/table/useTable/index.d.ts
|
|
109
180
|
type DefaultRow = Record<PropertyKey, any>;
|
|
110
181
|
interface PaginationData<T> {
|
|
@@ -133,4 +204,4 @@ interface TableOptions<T extends DefaultRow> extends TableProps<T> {
|
|
|
133
204
|
type TableReturn = [Component];
|
|
134
205
|
declare function useTable<T extends DefaultRow>(options: TableOptions<T>): TableReturn;
|
|
135
206
|
//#endregion
|
|
136
|
-
export { AsyncConfirmOptions, CustomRender, DefaultComponentKey, DescriptionsColumn, DescriptionsOptions, DescriptionsReturnType, FormItemType, FormOptions, FormReturnType, FormRuleFn, FormSchema, PaginationOptions, Recordable, TableColumnOptions, TableOptions, TableReturn, setDeepProperty, useAsyncConfirm, useDescriptions, useDialog, useForm, useMessage, useTable };
|
|
207
|
+
export { AsyncConfirmOptions, CustomRender, DefaultComponentKey, DescriptionsColumn, DescriptionsOptions, DescriptionsReturnType, FormItemType, FormOptions, FormReturnType, FormRuleFn, FormSchema, PaginationOptions, Recordable, StepsColumn, StepsOptions, StepsReturnType, TableColumnOptions, TableOptions, TableReturn, TabsColumn, TabsOptions, TabsReturnType, setDeepProperty, useAsyncConfirm, useDescriptions, useDialog, useForm, useMessage, useSteps, useTable, useTabs };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useRequest } from "@vuetkit/core";
|
|
2
|
-
import { ElButton, ElCascader, ElCheckbox, ElCol, ElColorPicker, ElDatePicker, ElDescriptions, ElDescriptionsItem, ElDialog, ElForm, ElFormItem, ElInput, ElInputNumber, ElInputOtp, ElMention, ElMessage, ElMessageBox, ElPagination, ElRadio, ElRate, ElRow, ElScrollbar, ElSelect, ElSelectV2, ElSlider, ElSwitch, ElTable, ElTableColumn, ElTimePicker, ElTimeSelect, ElTransfer, ElTreeSelect, ElUpload, vLoading } from "element-plus";
|
|
2
|
+
import { ElButton, ElCascader, ElCheckbox, ElCol, ElColorPicker, ElDatePicker, ElDescriptions, ElDescriptionsItem, ElDialog, ElForm, ElFormItem, ElInput, ElInputNumber, ElInputOtp, ElMention, ElMessage, ElMessageBox, ElPagination, ElRadio, ElRate, ElRow, ElScrollbar, ElSelect, ElSelectV2, ElSlider, ElStep, ElSteps, ElSwitch, ElTabPane, ElTable, ElTableColumn, ElTabs, ElTimePicker, ElTimeSelect, ElTransfer, ElTreeSelect, ElUpload, vLoading } from "element-plus";
|
|
3
3
|
import { computed, defineComponent, h, nextTick, onMounted, reactive, ref, toValue, useTemplateRef, watch, withDirectives } from "vue";
|
|
4
4
|
import { isFunc, realObj } from "@vuetkit/shared";
|
|
5
5
|
//#region src/data/useDescriptions/index.ts
|
|
@@ -364,6 +364,131 @@ function useForm(options) {
|
|
|
364
364
|
}];
|
|
365
365
|
}
|
|
366
366
|
//#endregion
|
|
367
|
+
//#region src/navigation/useSteps/index.ts
|
|
368
|
+
function useSteps(options) {
|
|
369
|
+
const { steps = [], service, params, formatData, defaultActive = 0, ...rest } = options;
|
|
370
|
+
const { data, loading } = service ? useRequest(service, {
|
|
371
|
+
defaultParams: params,
|
|
372
|
+
formatData: formatData || void 0
|
|
373
|
+
}) : {};
|
|
374
|
+
const active = ref(defaultActive);
|
|
375
|
+
const stepsColumns = computed(() => (data === null || data === void 0 ? void 0 : data.value) || steps);
|
|
376
|
+
return [defineComponent({
|
|
377
|
+
props: { modelValue: {
|
|
378
|
+
type: Number,
|
|
379
|
+
default: void 0
|
|
380
|
+
} },
|
|
381
|
+
setup(props, { slots }) {
|
|
382
|
+
const renderSteps = () => {
|
|
383
|
+
var _stepsColumns$value;
|
|
384
|
+
return (_stepsColumns$value = stepsColumns.value) === null || _stepsColumns$value === void 0 ? void 0 : _stepsColumns$value.map((item) => {
|
|
385
|
+
return h(ElStep, { ...item }, {
|
|
386
|
+
description: () => {
|
|
387
|
+
if (item === null || item === void 0 ? void 0 : item.render) return item.render(item === null || item === void 0 ? void 0 : item.description);
|
|
388
|
+
return (item === null || item === void 0 ? void 0 : item.description) || "";
|
|
389
|
+
},
|
|
390
|
+
title: (item === null || item === void 0 ? void 0 : item.renderTitle) ? () => item.renderTitle(item.title) : void 0,
|
|
391
|
+
icon: (item === null || item === void 0 ? void 0 : item.renderIcon) ? () => item.renderIcon(item.icon) : void 0
|
|
392
|
+
});
|
|
393
|
+
});
|
|
394
|
+
};
|
|
395
|
+
return () => {
|
|
396
|
+
var _ref, _props$modelValue, _loading$value;
|
|
397
|
+
const finalActive = (_ref = (_props$modelValue = props.modelValue) !== null && _props$modelValue !== void 0 ? _props$modelValue : rest.active) !== null && _ref !== void 0 ? _ref : active.value;
|
|
398
|
+
return withDirectives(h(ElSteps, {
|
|
399
|
+
...rest,
|
|
400
|
+
...props,
|
|
401
|
+
"active": finalActive,
|
|
402
|
+
"onUpdate:active": (val) => {
|
|
403
|
+
active.value = val;
|
|
404
|
+
}
|
|
405
|
+
}, { default: () => {
|
|
406
|
+
if (slots.default) return slots.default();
|
|
407
|
+
if (!stepsColumns.value.length) return "";
|
|
408
|
+
return renderSteps();
|
|
409
|
+
} }), [[vLoading, (_loading$value = loading === null || loading === void 0 ? void 0 : loading.value) !== null && _loading$value !== void 0 ? _loading$value : false]]);
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
}), active];
|
|
413
|
+
}
|
|
414
|
+
//#endregion
|
|
415
|
+
//#region src/navigation/useTabs/index.ts
|
|
416
|
+
function useTabs(options) {
|
|
417
|
+
const { tabs = [], service, params, formatData, defaultActive = 0, onTabClick, onTabChange, onTabRemove, onTabAdd, onEdit, ...rest } = options;
|
|
418
|
+
const { data, loading } = service ? useRequest(service, {
|
|
419
|
+
defaultParams: params,
|
|
420
|
+
formatData: formatData || void 0
|
|
421
|
+
}) : {};
|
|
422
|
+
const activeName = ref(defaultActive);
|
|
423
|
+
const tabsColumns = computed(() => (data === null || data === void 0 ? void 0 : data.value) || tabs);
|
|
424
|
+
return [defineComponent({
|
|
425
|
+
props: { modelValue: {
|
|
426
|
+
type: [String, Number],
|
|
427
|
+
default: void 0
|
|
428
|
+
} },
|
|
429
|
+
setup(props, { slots, emit }) {
|
|
430
|
+
const renderTabs = () => {
|
|
431
|
+
var _tabsColumns$value;
|
|
432
|
+
return (_tabsColumns$value = tabsColumns.value) === null || _tabsColumns$value === void 0 ? void 0 : _tabsColumns$value.map((item, index) => {
|
|
433
|
+
var _item$name;
|
|
434
|
+
const tabName = (_item$name = item.name) !== null && _item$name !== void 0 ? _item$name : index;
|
|
435
|
+
return h(ElTabPane, {
|
|
436
|
+
...item,
|
|
437
|
+
name: tabName
|
|
438
|
+
}, {
|
|
439
|
+
label: (item === null || item === void 0 ? void 0 : item.renderLabel) ? () => item.renderLabel(item.label) : void 0,
|
|
440
|
+
default: () => {
|
|
441
|
+
if (item === null || item === void 0 ? void 0 : item.render) return item.render(item);
|
|
442
|
+
return "";
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
});
|
|
446
|
+
};
|
|
447
|
+
const handleTabClick = (tab, event) => {
|
|
448
|
+
onTabClick === null || onTabClick === void 0 || onTabClick(tab, event);
|
|
449
|
+
emit("tab-click", tab, event);
|
|
450
|
+
};
|
|
451
|
+
const handleTabChange = (name) => {
|
|
452
|
+
onTabChange === null || onTabChange === void 0 || onTabChange(name);
|
|
453
|
+
emit("tab-change", name);
|
|
454
|
+
};
|
|
455
|
+
const handleTabRemove = (name) => {
|
|
456
|
+
onTabRemove === null || onTabRemove === void 0 || onTabRemove(name);
|
|
457
|
+
emit("tab-remove", name);
|
|
458
|
+
};
|
|
459
|
+
const handleTabAdd = () => {
|
|
460
|
+
onTabAdd === null || onTabAdd === void 0 || onTabAdd();
|
|
461
|
+
emit("tab-add");
|
|
462
|
+
};
|
|
463
|
+
const handleEdit = (targetName, action) => {
|
|
464
|
+
onEdit === null || onEdit === void 0 || onEdit(targetName, action);
|
|
465
|
+
emit("edit", targetName, action);
|
|
466
|
+
};
|
|
467
|
+
return () => {
|
|
468
|
+
var _ref, _props$modelValue, _loading$value;
|
|
469
|
+
const finalActiveName = (_ref = (_props$modelValue = props.modelValue) !== null && _props$modelValue !== void 0 ? _props$modelValue : rest.modelValue) !== null && _ref !== void 0 ? _ref : activeName.value;
|
|
470
|
+
return withDirectives(h(ElTabs, {
|
|
471
|
+
...rest,
|
|
472
|
+
...props,
|
|
473
|
+
"modelValue": finalActiveName,
|
|
474
|
+
"onUpdate:modelValue": (val) => {
|
|
475
|
+
activeName.value = val;
|
|
476
|
+
},
|
|
477
|
+
"onTabClick": handleTabClick,
|
|
478
|
+
"onTabChange": handleTabChange,
|
|
479
|
+
"onTabRemove": handleTabRemove,
|
|
480
|
+
"onTabAdd": handleTabAdd,
|
|
481
|
+
"onEdit": handleEdit
|
|
482
|
+
}, { default: () => {
|
|
483
|
+
if (slots.default) return slots.default();
|
|
484
|
+
if (!tabsColumns.value.length) return "";
|
|
485
|
+
return renderTabs();
|
|
486
|
+
} }), [[vLoading, (_loading$value = loading === null || loading === void 0 ? void 0 : loading.value) !== null && _loading$value !== void 0 ? _loading$value : false]]);
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
}), activeName];
|
|
490
|
+
}
|
|
491
|
+
//#endregion
|
|
367
492
|
//#region src/table/useTable/index.ts
|
|
368
493
|
function useTable(options) {
|
|
369
494
|
const { columns = [], service, params, formatData, align, headerAlign, paginationConfig, searchFormConfig, tableWrapStyle = {}, data = [], ...rest } = options;
|
|
@@ -512,4 +637,4 @@ function useTable(options) {
|
|
|
512
637
|
})];
|
|
513
638
|
}
|
|
514
639
|
//#endregion
|
|
515
|
-
export { setDeepProperty, useAsyncConfirm, useDescriptions, useDialog, useForm, useMessage, useTable };
|
|
640
|
+
export { setDeepProperty, useAsyncConfirm, useDescriptions, useDialog, useForm, useMessage, useSteps, useTable, useTabs };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vuetkit/components",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.15",
|
|
5
5
|
"description": "Collection of business development components for Vue3 projects",
|
|
6
6
|
"author": "Kalu5",
|
|
7
7
|
"license": "MIT",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"vue": "^3.5.35"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@vuetkit/core": "0.0.
|
|
25
|
-
"@vuetkit/shared": "0.0.
|
|
24
|
+
"@vuetkit/core": "0.0.15",
|
|
25
|
+
"@vuetkit/shared": "0.0.15"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsdown --config-loader tsx"
|