@vuetkit/components 0.0.13 → 0.0.14

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 CHANGED
@@ -23,3 +23,7 @@ Collection of business development Composable Components for Vue3 + ElementPlus
23
23
  ### Data
24
24
 
25
25
  - [useDescriptions](/components/src/data/useDescriptions/)
26
+
27
+ ### Navigation
28
+
29
+ - [useSteps](/components/src/navigation/useSteps/)
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, TableProps } 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,38 @@ 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
108
140
  //#region src/table/useTable/index.d.ts
109
141
  type DefaultRow = Record<PropertyKey, any>;
110
142
  interface PaginationData<T> {
@@ -133,4 +165,4 @@ interface TableOptions<T extends DefaultRow> extends TableProps<T> {
133
165
  type TableReturn = [Component];
134
166
  declare function useTable<T extends DefaultRow>(options: TableOptions<T>): TableReturn;
135
167
  //#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 };
168
+ export { AsyncConfirmOptions, CustomRender, DefaultComponentKey, DescriptionsColumn, DescriptionsOptions, DescriptionsReturnType, FormItemType, FormOptions, FormReturnType, FormRuleFn, FormSchema, PaginationOptions, Recordable, StepsColumn, StepsOptions, StepsReturnType, TableColumnOptions, TableOptions, TableReturn, setDeepProperty, useAsyncConfirm, useDescriptions, useDialog, useForm, useMessage, useSteps, useTable };
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, ElTable, ElTableColumn, 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,54 @@ 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
367
415
  //#region src/table/useTable/index.ts
368
416
  function useTable(options) {
369
417
  const { columns = [], service, params, formatData, align, headerAlign, paginationConfig, searchFormConfig, tableWrapStyle = {}, data = [], ...rest } = options;
@@ -512,4 +560,4 @@ function useTable(options) {
512
560
  })];
513
561
  }
514
562
  //#endregion
515
- export { setDeepProperty, useAsyncConfirm, useDescriptions, useDialog, useForm, useMessage, useTable };
563
+ export { setDeepProperty, useAsyncConfirm, useDescriptions, useDialog, useForm, useMessage, useSteps, useTable };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetkit/components",
3
3
  "type": "module",
4
- "version": "0.0.13",
4
+ "version": "0.0.14",
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.13",
25
- "@vuetkit/shared": "0.0.13"
24
+ "@vuetkit/core": "0.0.14",
25
+ "@vuetkit/shared": "0.0.14"
26
26
  },
27
27
  "scripts": {
28
28
  "build": "tsdown --config-loader tsx"