From 20726d35e149faf3baac7880b6e66e30861a920d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tu=C4=9F=C3=A7e=20K=C3=BC=C3=A7=C3=BCko=C4=9Flu?= Date: Fri, 7 Apr 2023 09:49:49 +0300 Subject: [PATCH] Refactor #3832 Refactor #3833 - For Tree --- api-generator/components/tree.js | 22 +++++++++++++++++- components/lib/tree/Tree.d.ts | 38 ++++++++++++++++++++++++++++---- components/lib/tree/Tree.vue | 19 ++++++++++------ components/lib/tree/TreeNode.vue | 20 ++++++++++------- 4 files changed, 79 insertions(+), 20 deletions(-) diff --git a/api-generator/components/tree.js b/api-generator/components/tree.js index 0f0e2b1a9..433d4f39b 100644 --- a/api-generator/components/tree.js +++ b/api-generator/components/tree.js @@ -127,11 +127,31 @@ const TreeEvents = [ } ]; +const TreeSlots = [ + { + name: 'loadingicon', + description: 'Custom loading icon template.' + }, + { + name: 'searchicon', + description: 'Custom search icon template.' + }, + { + name: 'togglericon', + description: 'Custom toggler icon template.' + }, + { + name: 'checkboxicon', + description: 'Custom checkbox icon template.' + } +]; + module.exports = { tree: { name: 'Tree', description: 'Tree is used to display hierarchical data.', props: TreeProps, - events: TreeEvents + events: TreeEvents, + slots: TreeSlots } }; diff --git a/components/lib/tree/Tree.d.ts b/components/lib/tree/Tree.d.ts index ecbaefff8..5c0ae0f6b 100755 --- a/components/lib/tree/Tree.d.ts +++ b/components/lib/tree/Tree.d.ts @@ -168,15 +168,45 @@ export interface TreeProps { */ export interface TreeSlots { /** - * Optional slots. - * @todo + * Custom loading icon template. */ - [key: string]: (scope: { + loadingicon(): VNode[]; + /** + * Custom search icon template. + */ + searchicon(): VNode[]; + /** + * Custom toggler icon template. + */ + togglericon(scope: { /** * Tree node instance */ node: TreeNode; - }) => VNode[]; + /** + * Expanded state of the node + */ + expanded: boolean; + }): VNode[]; + /** + * Custom checkbox icon + */ + checkboxicon(scope: { + /** + * Check state of the node + */ + checked: boolean; + /** + * Partial check state of the node + */ + partialChecked: boolean; + }): VNode[]; + /** + * Optional slots. + * @todo + */ + + [key: string]: (node: any) => VNode[]; } /** diff --git a/components/lib/tree/Tree.vue b/components/lib/tree/Tree.vue index a8d12d6c2..74b74823a 100755 --- a/components/lib/tree/Tree.vue +++ b/components/lib/tree/Tree.vue @@ -2,12 +2,16 @@
- + + +
    @@ -31,6 +35,8 @@ diff --git a/components/lib/tree/TreeNode.vue b/components/lib/tree/TreeNode.vue index f97003db4..47ae64076 100755 --- a/components/lib/tree/TreeNode.vue +++ b/components/lib/tree/TreeNode.vue @@ -15,11 +15,11 @@ >
    @@ -47,6 +47,10 @@