@vuetkit/components 0.0.22 → 0.0.23

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/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { RequestService } from "@vuetkit/core";
2
- import { CollapseItemProps, CollapseModelValue, CollapseProps, ComponentSize, DescriptionItemProps, DescriptionProps, DialogProps, ElBreadcrumb, ElDropdown, ElMenu, FormRules, MessageProps, MessageType, NotificationOptions, PaginationProps, SegmentedProps, StepProps, StepsProps, TabPaneName, TableProps, TabsPaneContext, TabsProps, TreeV2Instance } from "element-plus";
2
+ import { CollapseItemProps, CollapseModelValue, CollapseProps, ComponentSize, DescriptionItemProps, DescriptionProps, DialogProps, ElBreadcrumb, ElDropdown, ElMenu, FormRules, MessageProps, MessageType, NotificationOptions, PaginationProps, RenderContentContext, SegmentedProps, StepProps, StepsProps, TabPaneName, TableProps, TabsPaneContext, TabsProps, TreeComponentProps, TreeInstance, TreeNodeData, TreeV2Instance } from "element-plus";
3
3
  import { CSSProperties, Component, MaybeRef, Ref, VNode } from "vue";
4
- import { TreeNode, TreeNodeData, TreeProps } from "element-plus/es/components/tree-v2/src/types";
4
+ import { TreeNode, TreeNodeData as TreeNodeData$1, TreeProps } from "element-plus/es/components/tree-v2/src/types";
5
5
  import { TableColumnProps } from "element-plus/es/components/table/src/table-column/defaults.mjs";
6
6
 
7
7
  //#region src/data/useCollapse/index.d.ts
@@ -57,17 +57,33 @@ interface SegmentedOptions<T> extends Partial<SegmentedProps> {
57
57
  type SegmentedReturnType = [Component, Ref<SegmentedOptionValue | undefined>];
58
58
  declare function useSegmented<T>(options: SegmentedOptions<T>): SegmentedReturnType;
59
59
  //#endregion
60
+ //#region src/data/useTree/index.d.ts
61
+ type TreeNode$1 = RenderContentContext['node'];
62
+ interface TreeColumn extends TreeNodeData {
63
+ children?: TreeColumn[];
64
+ render?: (node: TreeNode$1, data: TreeNodeData) => VNode;
65
+ }
66
+ interface TreeOptions<T> extends Partial<Omit<TreeComponentProps, 'data'>> {
67
+ data?: TreeColumn[];
68
+ service?: RequestService<T>;
69
+ params?: unknown;
70
+ formatData?: (data: T) => TreeColumn[];
71
+ render?: (node: TreeNode$1, data: TreeNodeData) => VNode;
72
+ }
73
+ type TreeReturnType = [Component, Ref<TreeInstance | undefined>];
74
+ declare function useTree<T>(options: TreeOptions<T>): TreeReturnType;
75
+ //#endregion
60
76
  //#region src/data/useTreeV2/index.d.ts
61
- interface TreeV2Column extends TreeNodeData {
77
+ interface TreeV2Column extends TreeNodeData$1 {
62
78
  children?: TreeV2Column[];
63
- render?: (node: TreeNode, data: TreeNodeData) => VNode;
79
+ render?: (node: TreeNode, data: TreeNodeData$1) => VNode;
64
80
  }
65
81
  interface TreeV2Options<T> extends Omit<TreeProps, 'data'> {
66
82
  data?: TreeV2Column[];
67
83
  service?: RequestService<T>;
68
84
  params?: unknown;
69
85
  formatData?: (data: T) => TreeV2Column[];
70
- render?: (node: TreeNode, data: TreeNodeData) => VNode;
86
+ render?: (node: TreeNode, data: TreeNodeData$1) => VNode;
71
87
  }
72
88
  type TreeV2ReturnType = [Component, Ref<TreeV2Instance | undefined>];
73
89
  declare function useTreeV2<T>(options: TreeV2Options<T>): TreeV2ReturnType;
@@ -301,14 +317,14 @@ interface TabsOptions<T> extends Partial<TabsProps> {
301
317
  type TabsReturnType = [Component, Ref<string | number>];
302
318
  declare function useTabs<T>(options: TabsOptions<T>): (Ref<string | number, string | number> | import("vue").DefineComponent<import("vue").ExtractPropTypes<{
303
319
  modelValue: {
304
- type: (NumberConstructor | StringConstructor)[];
320
+ type: (StringConstructor | NumberConstructor)[];
305
321
  default: undefined;
306
322
  };
307
323
  }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
308
324
  [key: string]: any;
309
325
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
310
326
  modelValue: {
311
- type: (NumberConstructor | StringConstructor)[];
327
+ type: (StringConstructor | NumberConstructor)[];
312
328
  default: undefined;
313
329
  };
314
330
  }>> & Readonly<{}>, {
@@ -343,4 +359,4 @@ interface TableOptions<T extends DefaultRow> extends TableProps<T> {
343
359
  type TableReturn = [Component];
344
360
  declare function useTable<T extends DefaultRow>(options: TableOptions<T>): TableReturn;
345
361
  //#endregion
346
- export { AsyncConfirmOptions, BreadcrumbColumn, BreadcrumbOptions, BreadcrumbReturnType, CollapseColumn, CollapseOptions, CollapseReturnType, CustomRender, DefaultComponentKey, DescriptionsColumn, DescriptionsOptions, DescriptionsReturnType, DropdownItem, DropdownOptions, DropdownReturnType, FormItemType, FormOptions, FormReturnType, FormRuleFn, FormSchema, MenuColumn, MenuOptions, MenuReturnType, PaginationOptions, Recordable, SegmentedColumn, SegmentedOptionValue, SegmentedOptions, SegmentedReturnType, StepsColumn, StepsOptions, StepsReturnType, TableColumnOptions, TableOptions, TableReturn, TabsColumn, TabsOptions, TabsReturnType, TreeV2Column, TreeV2Options, TreeV2ReturnType, setDeepProperty, useAsyncConfirm, useBreadcrumb, useCollapse, useDescriptions, useDialog, useDropdown, useForm, useMenu, useMessage, useNotification, useSegmented, useSteps, useTable, useTabs, useTreeV2 };
362
+ export { AsyncConfirmOptions, BreadcrumbColumn, BreadcrumbOptions, BreadcrumbReturnType, CollapseColumn, CollapseOptions, CollapseReturnType, CustomRender, DefaultComponentKey, DescriptionsColumn, DescriptionsOptions, DescriptionsReturnType, DropdownItem, DropdownOptions, DropdownReturnType, FormItemType, FormOptions, FormReturnType, FormRuleFn, FormSchema, MenuColumn, MenuOptions, MenuReturnType, PaginationOptions, Recordable, SegmentedColumn, SegmentedOptionValue, SegmentedOptions, SegmentedReturnType, StepsColumn, StepsOptions, StepsReturnType, TableColumnOptions, TableOptions, TableReturn, TabsColumn, TabsOptions, TabsReturnType, TreeColumn, TreeOptions, TreeReturnType, TreeV2Column, TreeV2Options, TreeV2ReturnType, setDeepProperty, useAsyncConfirm, useBreadcrumb, useCollapse, useDescriptions, useDialog, useDropdown, useForm, useMenu, useMessage, useNotification, useSegmented, useSteps, useTable, useTabs, useTree, useTreeV2 };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useRequest } from "@vuetkit/core";
2
- import { ElBreadcrumb, ElBreadcrumbItem, ElButton, ElCascader, ElCheckbox, ElCol, ElCollapse, ElCollapseItem, ElColorPicker, ElDatePicker, ElDescriptions, ElDescriptionsItem, ElDialog, ElDropdown, ElDropdownItem, ElDropdownMenu, ElForm, ElFormItem, ElInput, ElInputNumber, ElInputOtp, ElMention, ElMenu, ElMenuItem, ElMenuItemGroup, ElMessage, ElMessageBox, ElNotification, ElPagination, ElRadio, ElRate, ElRow, ElScrollbar, ElSegmented, ElSelect, ElSelectV2, ElSlider, ElStep, ElSteps, ElSubMenu, ElSwitch, ElTabPane, ElTable, ElTableColumn, ElTabs, ElTimePicker, ElTimeSelect, ElTransfer, ElTreeSelect, ElTreeV2, ElUpload, vLoading } from "element-plus";
2
+ import { ElBreadcrumb, ElBreadcrumbItem, ElButton, ElCascader, ElCheckbox, ElCol, ElCollapse, ElCollapseItem, ElColorPicker, ElDatePicker, ElDescriptions, ElDescriptionsItem, ElDialog, ElDropdown, ElDropdownItem, ElDropdownMenu, ElForm, ElFormItem, ElInput, ElInputNumber, ElInputOtp, ElMention, ElMenu, ElMenuItem, ElMenuItemGroup, ElMessage, ElMessageBox, ElNotification, ElPagination, ElRadio, ElRate, ElRow, ElScrollbar, ElSegmented, ElSelect, ElSelectV2, ElSlider, ElStep, ElSteps, ElSubMenu, ElSwitch, ElTabPane, ElTable, ElTableColumn, ElTabs, ElTimePicker, ElTimeSelect, ElTransfer, ElTree, ElTreeSelect, ElTreeV2, 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/useCollapse/index.ts
@@ -161,6 +161,47 @@ function useSegmented(options) {
161
161
  }), modelValue];
162
162
  }
163
163
  //#endregion
164
+ //#region src/data/useTree/index.ts
165
+ function useTree(options) {
166
+ const { data = [], service, params, formatData, render, ...rest } = options;
167
+ const { data: resData, loading } = service ? useRequest(service, {
168
+ defaultParams: params,
169
+ formatData: formatData || void 0
170
+ }) : {};
171
+ const treeData = computed(() => (resData === null || resData === void 0 ? void 0 : resData.value) || data);
172
+ const treeRef = ref();
173
+ return [defineComponent((props, { slots }) => {
174
+ const renderNodeContent = (node, nodeData) => {
175
+ const columnRender = nodeData.render;
176
+ if (typeof columnRender === "function") return columnRender(node, nodeData);
177
+ if (typeof render === "function") return render(node, nodeData);
178
+ };
179
+ return () => {
180
+ var _loading$value;
181
+ return withDirectives(h(ElTree, {
182
+ ...rest,
183
+ ...props,
184
+ ref: treeRef,
185
+ data: treeData.value
186
+ }, {
187
+ default: ({ node, data: nodeData }) => {
188
+ if (slots.default) return slots.default({
189
+ node,
190
+ data: nodeData
191
+ });
192
+ const content = renderNodeContent(node, nodeData);
193
+ if (content) return content;
194
+ return h("span", {}, node.label);
195
+ },
196
+ empty: () => {
197
+ var _slots$empty;
198
+ return (_slots$empty = slots.empty) === null || _slots$empty === void 0 ? void 0 : _slots$empty.call(slots);
199
+ }
200
+ }), [[vLoading, (_loading$value = loading === null || loading === void 0 ? void 0 : loading.value) !== null && _loading$value !== void 0 ? _loading$value : false]]);
201
+ };
202
+ }), treeRef];
203
+ }
204
+ //#endregion
164
205
  //#region src/data/useTreeV2/index.ts
165
206
  function useTreeV2(options) {
166
207
  const { data = [], service, params, formatData, render, ...rest } = options;
@@ -999,4 +1040,4 @@ function useTable(options) {
999
1040
  })];
1000
1041
  }
1001
1042
  //#endregion
1002
- export { setDeepProperty, useAsyncConfirm, useBreadcrumb, useCollapse, useDescriptions, useDialog, useDropdown, useForm, useMenu, useMessage, useNotification, useSegmented, useSteps, useTable, useTabs, useTreeV2 };
1043
+ export { setDeepProperty, useAsyncConfirm, useBreadcrumb, useCollapse, useDescriptions, useDialog, useDropdown, useForm, useMenu, useMessage, useNotification, useSegmented, useSteps, useTable, useTabs, useTree, useTreeV2 };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetkit/components",
3
3
  "type": "module",
4
- "version": "0.0.22",
4
+ "version": "0.0.23",
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/shared": "0.0.22",
25
- "@vuetkit/core": "0.0.22"
24
+ "@vuetkit/core": "0.0.23",
25
+ "@vuetkit/shared": "0.0.23"
26
26
  },
27
27
  "scripts": {
28
28
  "build": "tsdown --config-loader tsx"