yootd 0.0.44 → 0.0.45

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.
@@ -1,40 +1,40 @@
1
- export interface PageData<T> {
2
- content: T[];
3
- page: {
4
- number: number;
5
- size: number;
6
- totalElements: number;
7
- totalPages: number;
8
- };
9
- }
10
- type SchoolProps = {
11
- level1?: boolean;
12
- areaType?: number;
13
- areaSubType?: number;
14
- style?: React.CSSProperties;
15
- showSearch?: boolean;
16
- disabled?: boolean;
17
- value?: {
18
- level1?: number;
19
- level2?: number;
20
- level3?: number;
21
- level4?: number;
22
- level5?: number;
23
- };
24
- onChange?: (record: {
25
- level1?: number;
26
- level2?: number;
27
- level3?: number;
28
- level4?: number;
29
- level5?: number;
30
- }) => void;
31
- allowClear?: boolean;
32
- placeholder?: string[];
33
- };
34
- // 查询位置接口返回的数据类型
35
- export interface IareaItem {
36
- areaId: number;
37
- areaLevel: number;
38
- areaName: string;
39
- areaType: number;
40
- }
1
+ export interface PageData<T> {
2
+ content: T[];
3
+ page: {
4
+ number: number;
5
+ size: number;
6
+ totalElements: number;
7
+ totalPages: number;
8
+ };
9
+ }
10
+ type SchoolProps = {
11
+ level1?: boolean;
12
+ areaType?: number;
13
+ areaSubType?: number;
14
+ style?: React.CSSProperties;
15
+ showSearch?: boolean;
16
+ disabled?: boolean;
17
+ value?: {
18
+ level1?: number;
19
+ level2?: number;
20
+ level3?: number;
21
+ level4?: number;
22
+ level5?: number;
23
+ };
24
+ onChange?: (record: {
25
+ level1?: number;
26
+ level2?: number;
27
+ level3?: number;
28
+ level4?: number;
29
+ level5?: number;
30
+ }) => void;
31
+ allowClear?: boolean;
32
+ placeholder?: string[];
33
+ };
34
+ // 查询位置接口返回的数据类型
35
+ export interface IareaItem {
36
+ areaId: number;
37
+ areaLevel: number;
38
+ areaName: string;
39
+ areaType: number;
40
+ }
@@ -1,6 +1,6 @@
1
- .yot-areastreeselect {
2
- .ant-select-tree-treenode {
3
- margin-bottom: 0 !important;
4
- padding-bottom: calc(var(--ant-padding-xs) / 2) !important;
5
- }
6
- }
1
+ .yot-areastreeselect {
2
+ .ant-select-tree-treenode {
3
+ margin-bottom: 0 !important;
4
+ padding-bottom: calc(var(--ant-padding-xs) / 2) !important;
5
+ }
6
+ }
@@ -1,39 +1,39 @@
1
- import { TreeSelectProps } from 'antd';
2
-
3
- export interface PageData<T> {
4
- content: T[];
5
- page: {
6
- number: number;
7
- size: number;
8
- totalElements: number;
9
- totalPages: number;
10
- };
11
- }
12
-
13
- // 查询位置树接口返回的数据类型
14
- export interface AreasTreeData {
15
- areaId: number;
16
- areaLevel: number;
17
- areaLevel1Id: number;
18
- areaName: string;
19
- areaSubType: number;
20
- areaType: number;
21
- children?: AreasTreeData[];
22
- }
23
- // 空间树所需数据类型
24
- export interface AreasTreeOptions {
25
- title: string;
26
- value: number;
27
- key: number;
28
- children?: AreasTreeOptions[];
29
- }
30
- // 空间树选择器props
31
- export interface AreasTreeSelectProps extends TreeSelectProps {
32
- depth?: number; // 树节点深度,不传表示到第五级
33
- areaType?: number; // 筛选楼类型
34
- areaSubType?: number; // 筛选楼类型
35
- showSearch?: boolean; // 是否开启搜索
36
- treeCheckable?: boolean; // 是否开启多选
37
- selectable?: boolean; // 是否强制要求选到最底层
38
- treeDefaultExpandedLevel?: number; // 默认展开的层级
39
- }
1
+ import { TreeSelectProps } from 'antd';
2
+
3
+ export interface PageData<T> {
4
+ content: T[];
5
+ page: {
6
+ number: number;
7
+ size: number;
8
+ totalElements: number;
9
+ totalPages: number;
10
+ };
11
+ }
12
+
13
+ // 查询位置树接口返回的数据类型
14
+ export interface AreasTreeData {
15
+ areaId: number;
16
+ areaLevel: number;
17
+ areaLevel1Id: number;
18
+ areaName: string;
19
+ areaSubType: number;
20
+ areaType: number;
21
+ children?: AreasTreeData[];
22
+ }
23
+ // 空间树所需数据类型
24
+ export interface AreasTreeOptions {
25
+ title: string;
26
+ value: number;
27
+ key: number;
28
+ children?: AreasTreeOptions[];
29
+ }
30
+ // 空间树选择器props
31
+ export interface AreasTreeSelectProps extends TreeSelectProps {
32
+ depth?: number; // 树节点深度,不传表示到第五级
33
+ areaType?: number; // 筛选楼类型
34
+ areaSubType?: number; // 筛选楼类型
35
+ showSearch?: boolean; // 是否开启搜索
36
+ treeCheckable?: boolean; // 是否开启多选
37
+ selectable?: boolean; // 是否强制要求选到最底层
38
+ treeDefaultExpandedLevel?: number; // 默认展开的层级
39
+ }
@@ -1,23 +1,23 @@
1
- export interface PageData<T> {
2
- content: T[];
3
- page: {
4
- number: number;
5
- size: number;
6
- totalElements: number;
7
- totalPages: number;
8
- };
9
- }
10
- // 查询部门返回的数据类型
11
- export interface IDepartmentItem {
12
- deptId: number; // 部门ID
13
- deptName: string; // 部门名称
14
- deptLevel: number; // 部门级别(1,2,3,4...)
15
- children?: DeptListResponse[]; // 子部门
16
- }
17
- // 树组件填充的数据接口
18
- export interface ITreeData {
19
- title: string;
20
- value: number;
21
- children?: ITreeData[];
22
- }
23
- export type DepartmentProps = TreeSelectProps;
1
+ export interface PageData<T> {
2
+ content: T[];
3
+ page: {
4
+ number: number;
5
+ size: number;
6
+ totalElements: number;
7
+ totalPages: number;
8
+ };
9
+ }
10
+ // 查询部门返回的数据类型
11
+ export interface IDepartmentItem {
12
+ deptId: number; // 部门ID
13
+ deptName: string; // 部门名称
14
+ deptLevel: number; // 部门级别(1,2,3,4...)
15
+ children?: DeptListResponse[]; // 子部门
16
+ }
17
+ // 树组件填充的数据接口
18
+ export interface ITreeData {
19
+ title: string;
20
+ value: number;
21
+ children?: ITreeData[];
22
+ }
23
+ export type DepartmentProps = TreeSelectProps;
@@ -1,17 +1,17 @@
1
- import { SelectProps } from 'yootd';
2
-
3
- export interface PageData<T> {
4
- content: T[];
5
- page: {
6
- number: number;
7
- size: number;
8
- totalElements: number;
9
- totalPages: number;
10
- };
11
- }
12
- // 查询职务返回的数据类型
13
- export interface IjobTitleItem {
14
- titleId: number;
15
- titleName: string;
16
- }
17
- export type JobTitleProps = SelectProps;
1
+ import { SelectProps } from 'yootd';
2
+
3
+ export interface PageData<T> {
4
+ content: T[];
5
+ page: {
6
+ number: number;
7
+ size: number;
8
+ totalElements: number;
9
+ totalPages: number;
10
+ };
11
+ }
12
+ // 查询职务返回的数据类型
13
+ export interface IjobTitleItem {
14
+ titleId: number;
15
+ titleName: string;
16
+ }
17
+ export type JobTitleProps = SelectProps;
@@ -1,22 +1,22 @@
1
- import { SelectProps } from 'yootd';
2
-
3
- export interface PageData<T> {
4
- content: T[];
5
- page: {
6
- number: number;
7
- size: number;
8
- totalElements: number;
9
- totalPages: number;
10
- };
11
- }
12
- // 查询职务返回的数据类型
13
- export interface IjobTitleItem {
14
- titleId: number;
15
- titleName: string;
16
- }
17
- // 查询角色返回的数据类型
18
- export interface IRoleItem {
19
- roleId: number;
20
- roleName: string;
21
- }
22
- export type RoleProps = SelectProps;
1
+ import { SelectProps } from 'yootd';
2
+
3
+ export interface PageData<T> {
4
+ content: T[];
5
+ page: {
6
+ number: number;
7
+ size: number;
8
+ totalElements: number;
9
+ totalPages: number;
10
+ };
11
+ }
12
+ // 查询职务返回的数据类型
13
+ export interface IjobTitleItem {
14
+ titleId: number;
15
+ titleName: string;
16
+ }
17
+ // 查询角色返回的数据类型
18
+ export interface IRoleItem {
19
+ roleId: number;
20
+ roleName: string;
21
+ }
22
+ export type RoleProps = SelectProps;
@@ -1,33 +1,33 @@
1
- import { SelectProps } from 'yootd';
2
-
3
- export interface PageData<T> {
4
- content: T[];
5
- page: {
6
- number: number;
7
- size: number;
8
- totalElements: number;
9
- totalPages: number;
10
- };
11
- }
12
- // 查询老师返回的数据类型
13
- export interface IteacherItem {
14
- [key: string]: string | number;
15
- userId: number; // 老师ID
16
- personalName: string; // 老师姓名
17
- personalMobile?: string; // 手机号
18
- uniqueNumber?: string; // 工号
19
- nationName?: string; // 民族
20
- gender?: number; // 性别
21
- personalEmail?: string; // 邮箱
22
- }
23
- type LabelOptions =
24
- | 'personalName'
25
- | 'uniqueNumber'
26
- | 'personalMobile'
27
- | 'nationName'
28
- | 'genderName'
29
- | 'personalEmail';
30
- export type TeacherProps = SelectProps & {
31
- label?: LabelOptions[];
32
- connectors?: string;
33
- };
1
+ import { SelectProps } from 'yootd';
2
+
3
+ export interface PageData<T> {
4
+ content: T[];
5
+ page: {
6
+ number: number;
7
+ size: number;
8
+ totalElements: number;
9
+ totalPages: number;
10
+ };
11
+ }
12
+ // 查询老师返回的数据类型
13
+ export interface IteacherItem {
14
+ [key: string]: string | number;
15
+ userId: number; // 老师ID
16
+ personalName: string; // 老师姓名
17
+ personalMobile?: string; // 手机号
18
+ uniqueNumber?: string; // 工号
19
+ nationName?: string; // 民族
20
+ gender?: number; // 性别
21
+ personalEmail?: string; // 邮箱
22
+ }
23
+ type LabelOptions =
24
+ | 'personalName'
25
+ | 'uniqueNumber'
26
+ | 'personalMobile'
27
+ | 'nationName'
28
+ | 'genderName'
29
+ | 'personalEmail';
30
+ export type TeacherProps = SelectProps & {
31
+ label?: LabelOptions[];
32
+ connectors?: string;
33
+ };
@@ -0,0 +1,27 @@
1
+ import type { TreeDataNode as AntTreeDataNode, TreeProps as AntTreeProps } from 'antd';
2
+ import React from 'react';
3
+ import './index.scss';
4
+ export type { AntTreeNode, AntTreeNodeCheckedEvent, AntTreeNodeExpandedEvent, AntTreeNodeMouseEvent, AntTreeNodeProps, AntTreeNodeSelectedEvent, AntdTreeNodeAttribute, DirectoryTreeExpandAction, DirectoryTreeProps, EventDataNode, } from 'antd/es/tree';
5
+ export type TreeProps = AntTreeProps & {
6
+ showChildNumbers?: boolean;
7
+ placeholder?: string;
8
+ showSearch?: boolean;
9
+ type?: string;
10
+ depth?: number;
11
+ notRequireSchool?: boolean;
12
+ areaType?: number;
13
+ areaSubType?: number;
14
+ requireLastLevel?: boolean;
15
+ };
16
+ export type TreeDataNode = AntTreeDataNode;
17
+ export declare const Tree: React.ForwardRefExoticComponent<AntTreeProps<AntTreeDataNode> & {
18
+ showChildNumbers?: boolean | undefined;
19
+ placeholder?: string | undefined;
20
+ showSearch?: boolean | undefined;
21
+ type?: string | undefined;
22
+ depth?: number | undefined;
23
+ notRequireSchool?: boolean | undefined;
24
+ areaType?: number | undefined;
25
+ areaSubType?: number | undefined;
26
+ requireLastLevel?: boolean | undefined;
27
+ } & React.RefAttributes<any>>;
@@ -0,0 +1,231 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _excluded = ["className", "treeData", "placeholder", "showChildNumbers", "showIcon", "showSearch", "type", "titleRender"];
3
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
5
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
19
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
20
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
+ import { Tree as AntTree } from 'antd';
22
+ import React, { forwardRef, useCallback, useEffect, useMemo, useState } from 'react';
23
+ import { Input } from "./..";
24
+ import "./index.scss";
25
+ import { useBem } from "../hooks/useBem";
26
+ import { BedIcon } from "./components/BedIcon";
27
+ import { CampusIcon } from "./components/CampusIcon";
28
+ import { DeptIcon } from "./components/DeptIcon";
29
+ import { FloorIcon } from "./components/FloorIcon";
30
+ import { RoomIcon } from "./components/RoomIcon";
31
+ import { SchoolIcon } from "./components/SchoolIcon";
32
+ import { TierlIcon } from "./components/TierlIcon";
33
+ var Search = Input.Search;
34
+ var dataList = [];
35
+ var generateList = function generateList(data) {
36
+ for (var i = 0; i < data.length; i++) {
37
+ var node = data[i];
38
+ var key = node.key,
39
+ title = node.title;
40
+ dataList.push({
41
+ key: key,
42
+ title: title
43
+ });
44
+ if (node.children) {
45
+ generateList(node.children);
46
+ }
47
+ }
48
+ };
49
+ var getParentKey = function getParentKey(key, tree) {
50
+ var parentKey;
51
+ for (var i = 0; i < tree.length; i++) {
52
+ var node = tree[i];
53
+ if (node.children) {
54
+ if (node.children.some(function (item) {
55
+ return item.key === key;
56
+ })) {
57
+ parentKey = node.key;
58
+ } else if (getParentKey(key, node.children)) {
59
+ parentKey = getParentKey(key, node.children);
60
+ }
61
+ }
62
+ }
63
+ return parentKey;
64
+ };
65
+ export var Tree = /*#__PURE__*/forwardRef(function (_ref, ref) {
66
+ var className = _ref.className,
67
+ treeData = _ref.treeData,
68
+ _ref$placeholder = _ref.placeholder,
69
+ placeholder = _ref$placeholder === void 0 ? '请输入...' : _ref$placeholder,
70
+ _ref$showChildNumbers = _ref.showChildNumbers,
71
+ showChildNumbers = _ref$showChildNumbers === void 0 ? false : _ref$showChildNumbers,
72
+ _ref$showIcon = _ref.showIcon,
73
+ showIcon = _ref$showIcon === void 0 ? false : _ref$showIcon,
74
+ _ref$showSearch = _ref.showSearch,
75
+ showSearch = _ref$showSearch === void 0 ? false : _ref$showSearch,
76
+ type = _ref.type,
77
+ titleRender = _ref.titleRender,
78
+ props = _objectWithoutProperties(_ref, _excluded);
79
+ var mb = useBem('tree');
80
+ var _useState = useState([]),
81
+ _useState2 = _slicedToArray(_useState, 2),
82
+ expandedKeys = _useState2[0],
83
+ setExpandedKeys = _useState2[1];
84
+ var _useState3 = useState(''),
85
+ _useState4 = _slicedToArray(_useState3, 2),
86
+ searchValue = _useState4[0],
87
+ setSearchValue = _useState4[1];
88
+ var _useState5 = useState(true),
89
+ _useState6 = _slicedToArray(_useState5, 2),
90
+ autoExpandParent = _useState6[0],
91
+ setAutoExpandParent = _useState6[1];
92
+ var _useState7 = useState([]),
93
+ _useState8 = _slicedToArray(_useState7, 2),
94
+ defaultData = _useState8[0],
95
+ setDefaultData = _useState8[1];
96
+ var getSpaceIcon = useCallback(function (currentLevel, selected) {
97
+ var icons = [SchoolIcon, CampusIcon, FloorIcon, TierlIcon, RoomIcon, BedIcon];
98
+ var IconComponent = icons[currentLevel];
99
+ return IconComponent ? /*#__PURE__*/React.createElement(IconComponent, {
100
+ className: "".concat(mb.e('icon'), " ").concat(selected ? mb.is('selected') : '')
101
+ }) : null;
102
+ }, []);
103
+ var getDeptIcon = useCallback(function (selected) {
104
+ return /*#__PURE__*/React.createElement(DeptIcon, {
105
+ className: "".concat(mb.e('icon'), " ").concat(selected ? mb.is('selected') : '')
106
+ });
107
+ }, []);
108
+ var formatTreeData = function formatTreeData(treeData) {
109
+ var currentLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
110
+ return treeData === null || treeData === void 0 ? void 0 : treeData.map(function (t) {
111
+ if (t.children == null) {
112
+ return _objectSpread(_objectSpread({}, t), {}, {
113
+ icon: t.icon != null ? t.icon : function (_ref2) {
114
+ var selected = _ref2.selected;
115
+ return type === 'dept' ? getDeptIcon(selected) : type === 'area' ? getSpaceIcon(currentLevel, selected) : null;
116
+ }
117
+ });
118
+ } else {
119
+ var _t$children;
120
+ var _title;
121
+ if (typeof t.title === 'function') {
122
+ _title = t.title(t);
123
+ } else {
124
+ _title = t.title;
125
+ }
126
+ return _objectSpread(_objectSpread({}, t), {}, {
127
+ title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, _title), showChildNumbers ? /*#__PURE__*/React.createElement("span", {
128
+ style: {
129
+ marginLeft: 10
130
+ }
131
+ }, "(", (_t$children = t.children) === null || _t$children === void 0 ? void 0 : _t$children.length, ")") : null),
132
+ icon: t.icon != null ? t.icon : function (_ref3) {
133
+ var selected = _ref3.selected;
134
+ return type === 'dept' ? getDeptIcon(selected) : type === 'area' ? getSpaceIcon(currentLevel, selected) : null;
135
+ },
136
+ children: t.children != null ? formatTreeData(t.children, currentLevel + 1) : []
137
+ });
138
+ }
139
+ });
140
+ };
141
+ var onExpand = function onExpand(newExpandedKeys) {
142
+ setExpandedKeys(newExpandedKeys);
143
+ setAutoExpandParent(false);
144
+ };
145
+ var onChange = function onChange(e) {
146
+ var value = e.target.value;
147
+ var newExpandedKeys = dataList.map(function (item) {
148
+ if (item.title.indexOf(value) > -1) {
149
+ return getParentKey(item.key, defaultData);
150
+ }
151
+ return null;
152
+ }).filter(function (item, i, self) {
153
+ return !!(item && self.indexOf(item) === i);
154
+ });
155
+ setExpandedKeys(newExpandedKeys);
156
+ setSearchValue(value);
157
+ setAutoExpandParent(true);
158
+ };
159
+ var _treeData = useMemo(function () {
160
+ if (showSearch !== true) {
161
+ return defaultData;
162
+ }
163
+ var loop = function loop(data) {
164
+ return data.map(function (item) {
165
+ var strTitle = item.title;
166
+ var index = strTitle.indexOf(searchValue);
167
+ var beforeStr = strTitle.substring(0, index);
168
+ var afterStr = strTitle.slice(index + searchValue.length);
169
+ var title = index > -1 ? /*#__PURE__*/React.createElement("span", {
170
+ key: item.key
171
+ }, beforeStr, /*#__PURE__*/React.createElement("span", {
172
+ style: {
173
+ color: 'var(--ant-color-primary)'
174
+ }
175
+ }, searchValue), afterStr) : /*#__PURE__*/React.createElement("span", {
176
+ key: item.key
177
+ }, strTitle);
178
+ if (item.children) {
179
+ return {
180
+ title: title,
181
+ key: item.key,
182
+ children: loop(item.children)
183
+ };
184
+ }
185
+ return {
186
+ title: title,
187
+ key: item.key
188
+ };
189
+ });
190
+ };
191
+ return loop(defaultData);
192
+ }, [searchValue, defaultData]);
193
+ useEffect(function () {
194
+ if (treeData != null) {
195
+ setDefaultData(treeData);
196
+ generateList(treeData);
197
+ }
198
+ }, [treeData]);
199
+ useEffect(function () {
200
+ // 递归展开所有节点
201
+ var expandAllNodes = function expandAllNodes(nodes) {
202
+ nodes.forEach(function (node) {
203
+ setExpandedKeys(function (prevKeys) {
204
+ return [].concat(_toConsumableArray(prevKeys), [node.key]);
205
+ });
206
+ //@ts-ignore
207
+ if (node.children && (node.areaLevel <= 1 || node.deptLevel <= 1)) {
208
+ expandAllNodes(node.children);
209
+ }
210
+ });
211
+ };
212
+ if (treeData != null && treeData.length > 0) {
213
+ expandAllNodes(treeData);
214
+ }
215
+ }, [treeData]);
216
+ return /*#__PURE__*/React.createElement("div", null, showSearch ? /*#__PURE__*/React.createElement(Search, {
217
+ style: {
218
+ marginBottom: 8
219
+ },
220
+ placeholder: placeholder,
221
+ onChange: onChange
222
+ }) : null, /*#__PURE__*/React.createElement(AntTree, _extends({
223
+ ref: ref,
224
+ onExpand: onExpand,
225
+ expandedKeys: expandedKeys,
226
+ autoExpandParent: autoExpandParent,
227
+ className: "".concat(mb, " ").concat(className),
228
+ treeData: titleRender ? _treeData : formatTreeData(_treeData),
229
+ showIcon: showIcon
230
+ }, props)));
231
+ });
@@ -1,4 +1,5 @@
1
1
  import type { TreeDataNode as AntTreeDataNode, TreeProps as AntTreeProps } from 'antd';
2
+ import { Tree as AntTree } from 'antd';
2
3
  import React from 'react';
3
4
  import './index.scss';
4
5
  export type { AntTreeNode, AntTreeNodeCheckedEvent, AntTreeNodeExpandedEvent, AntTreeNodeMouseEvent, AntTreeNodeProps, AntTreeNodeSelectedEvent, AntdTreeNodeAttribute, DirectoryTreeExpandAction, DirectoryTreeProps, EventDataNode, } from 'antd/es/tree';
@@ -14,7 +15,7 @@ export type TreeProps = AntTreeProps & {
14
15
  requireLastLevel?: boolean;
15
16
  };
16
17
  export type TreeDataNode = AntTreeDataNode;
17
- export declare const Tree: React.ForwardRefExoticComponent<AntTreeProps<AntTreeDataNode> & {
18
+ export declare const TreeInternal: React.ForwardRefExoticComponent<AntTreeProps<AntTreeDataNode> & {
18
19
  showChildNumbers?: boolean | undefined;
19
20
  placeholder?: string | undefined;
20
21
  showSearch?: boolean | undefined;
@@ -25,3 +26,7 @@ export declare const Tree: React.ForwardRefExoticComponent<AntTreeProps<AntTreeD
25
26
  areaSubType?: number | undefined;
26
27
  requireLastLevel?: boolean | undefined;
27
28
  } & React.RefAttributes<any>>;
29
+ type CompoundedComponent = typeof TreeInternal & {
30
+ AntdTree: typeof AntTree;
31
+ };
32
+ export declare const Tree: CompoundedComponent;
@@ -62,7 +62,7 @@ var getParentKey = function getParentKey(key, tree) {
62
62
  }
63
63
  return parentKey;
64
64
  };
65
- export var Tree = /*#__PURE__*/forwardRef(function (_ref, ref) {
65
+ export var TreeInternal = /*#__PURE__*/forwardRef(function (_ref, ref) {
66
66
  var className = _ref.className,
67
67
  treeData = _ref.treeData,
68
68
  _ref$placeholder = _ref.placeholder,
@@ -110,9 +110,9 @@ export var Tree = /*#__PURE__*/forwardRef(function (_ref, ref) {
110
110
  return treeData === null || treeData === void 0 ? void 0 : treeData.map(function (t) {
111
111
  if (t.children == null) {
112
112
  return _objectSpread(_objectSpread({}, t), {}, {
113
- icon: function icon(_ref2) {
113
+ icon: t.icon != null ? t.icon : function (_ref2) {
114
114
  var selected = _ref2.selected;
115
- return type === 'dept' ? getDeptIcon(selected) : getSpaceIcon(currentLevel, selected);
115
+ return type === 'dept' ? getDeptIcon(selected) : type === 'area' ? getSpaceIcon(currentLevel, selected) : null;
116
116
  }
117
117
  });
118
118
  } else {
@@ -129,9 +129,9 @@ export var Tree = /*#__PURE__*/forwardRef(function (_ref, ref) {
129
129
  marginLeft: 10
130
130
  }
131
131
  }, "(", (_t$children = t.children) === null || _t$children === void 0 ? void 0 : _t$children.length, ")") : null),
132
- icon: function icon(_ref3) {
132
+ icon: t.icon != null ? t.icon : function (_ref3) {
133
133
  var selected = _ref3.selected;
134
- return type === 'dept' ? getDeptIcon(selected) : getSpaceIcon(currentLevel, selected);
134
+ return type === 'dept' ? getDeptIcon(selected) : type === 'area' ? getSpaceIcon(currentLevel, selected) : null;
135
135
  },
136
136
  children: t.children != null ? formatTreeData(t.children, currentLevel + 1) : []
137
137
  });
@@ -157,6 +157,9 @@ export var Tree = /*#__PURE__*/forwardRef(function (_ref, ref) {
157
157
  setAutoExpandParent(true);
158
158
  };
159
159
  var _treeData = useMemo(function () {
160
+ if (showSearch !== true) {
161
+ return defaultData;
162
+ }
160
163
  var loop = function loop(data) {
161
164
  return data.map(function (item) {
162
165
  var strTitle = item.title;
@@ -225,4 +228,5 @@ export var Tree = /*#__PURE__*/forwardRef(function (_ref, ref) {
225
228
  treeData: titleRender ? _treeData : formatTreeData(_treeData),
226
229
  showIcon: showIcon
227
230
  }, props)));
228
- });
231
+ });
232
+ export var Tree = TreeInternal;
package/package.json CHANGED
@@ -1,101 +1,101 @@
1
- {
2
- "name": "yootd",
3
- "version": "0.0.44",
4
- "description": "A react library developed with dumi",
5
- "license": "MIT",
6
- "module": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "files": [
9
- "dist"
10
- ],
11
- "scripts": {
12
- "build": "father build",
13
- "build:watch": "father dev",
14
- "dev": "dumi dev",
15
- "docs:build": "dumi build",
16
- "docs:preview": "dumi preview",
17
- "doctor": "father doctor",
18
- "lint": "npm run lint:es && npm run lint:css",
19
- "lint:css": "stylelint \"{src,test}/**/*.{css,less}\"",
20
- "lint:es": "eslint \"{src,test}/**/*.{js,jsx,ts,tsx}\"",
21
- "prepare": "husky install && dumi setup",
22
- "prepublishOnly": "father doctor && npm run build",
23
- "start": "npm run dev"
24
- },
25
- "commitlint": {
26
- "extends": [
27
- "@commitlint/config-conventional"
28
- ]
29
- },
30
- "lint-staged": {
31
- "*.{md,json}": [
32
- "prettier --write --no-error-on-unmatched-pattern"
33
- ],
34
- "*.{css,less}": [
35
- "stylelint --fix",
36
- "prettier --write"
37
- ],
38
- "*.{js,jsx}": [
39
- "eslint --fix",
40
- "prettier --write"
41
- ],
42
- "*.{ts,tsx}": [
43
- "eslint --fix",
44
- "prettier --parser=typescript --write"
45
- ]
46
- },
47
- "devDependencies": {
48
- "@commitlint/cli": "^17.1.2",
49
- "@commitlint/config-conventional": "^17.1.0",
50
- "@dnd-kit/core": "^6.1.0",
51
- "@dnd-kit/modifiers": "^7.0.0",
52
- "@dnd-kit/sortable": "^8.0.0",
53
- "@dnd-kit/utilities": "^3.2.2",
54
- "@tanstack/react-query": "^5.59.15",
55
- "@types/lodash": "^4.17.12",
56
- "@types/react": "^18.0.0",
57
- "@types/react-dom": "^18.0.0",
58
- "@umijs/lint": "^4.0.0",
59
- "@vladmandic/face-api": "^1.7.14",
60
- "antd": "^5.21.4",
61
- "axios": "^1.7.7",
62
- "dayjs": "^1.11.13",
63
- "dumi": "^2.3.0",
64
- "dumi-theme-antd": "^0.4.2",
65
- "eslint": "^8.23.0",
66
- "father": "^4.1.0",
67
- "husky": "^8.0.1",
68
- "lint-staged": "^13.0.3",
69
- "lodash": "^4.17.21",
70
- "nanoid": "^5.0.8",
71
- "prettier": "^2.7.1",
72
- "prettier-plugin-organize-imports": "^3.0.0",
73
- "prettier-plugin-packagejson": "^2.2.18",
74
- "react": "^18.0.0",
75
- "react-dom": "^18.0.0",
76
- "sass": "^1.80.0",
77
- "stylelint": "^14.9.1",
78
- "yootd-webrtc-sdk": "^1.0.1"
79
- },
80
- "peerDependencies": {
81
- "@dnd-kit/core": ">=6.1.0",
82
- "@dnd-kit/modifiers": ">=7.0.0",
83
- "@dnd-kit/sortable": ">=8.0.0",
84
- "@dnd-kit/utilities": ">=3.2.2",
85
- "@tanstack/react-query": ">=5.59.15",
86
- "@vladmandic/face-api": "^1.7.14",
87
- "@xyflow/react": ">=12.3.3",
88
- "antd": ">=5.21.4",
89
- "axios": ">=1.7.7",
90
- "dayjs": ">=1.11.13",
91
- "lodash": ">=4.17.21",
92
- "nanoid": ">=5.0.8",
93
- "react": ">=16.9.0",
94
- "react-dom": ">=16.9.0",
95
- "yootd-webrtc-sdk": "^1.0.1"
96
- },
97
- "publishConfig": {
98
- "access": "public"
99
- },
100
- "authors": []
101
- }
1
+ {
2
+ "name": "yootd",
3
+ "version": "0.0.45",
4
+ "description": "A react library developed with dumi",
5
+ "license": "MIT",
6
+ "module": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "scripts": {
12
+ "build": "father build",
13
+ "build:watch": "father dev",
14
+ "dev": "dumi dev",
15
+ "docs:build": "dumi build",
16
+ "docs:preview": "dumi preview",
17
+ "doctor": "father doctor",
18
+ "lint": "npm run lint:es && npm run lint:css",
19
+ "lint:css": "stylelint \"{src,test}/**/*.{css,less}\"",
20
+ "lint:es": "eslint \"{src,test}/**/*.{js,jsx,ts,tsx}\"",
21
+ "prepare": "husky install && dumi setup",
22
+ "prepublishOnly": "father doctor && npm run build",
23
+ "start": "npm run dev"
24
+ },
25
+ "commitlint": {
26
+ "extends": [
27
+ "@commitlint/config-conventional"
28
+ ]
29
+ },
30
+ "lint-staged": {
31
+ "*.{md,json}": [
32
+ "prettier --write --no-error-on-unmatched-pattern"
33
+ ],
34
+ "*.{css,less}": [
35
+ "stylelint --fix",
36
+ "prettier --write"
37
+ ],
38
+ "*.{js,jsx}": [
39
+ "eslint --fix",
40
+ "prettier --write"
41
+ ],
42
+ "*.{ts,tsx}": [
43
+ "eslint --fix",
44
+ "prettier --parser=typescript --write"
45
+ ]
46
+ },
47
+ "devDependencies": {
48
+ "@commitlint/cli": "^17.1.2",
49
+ "@commitlint/config-conventional": "^17.1.0",
50
+ "@dnd-kit/core": "^6.1.0",
51
+ "@dnd-kit/modifiers": "^7.0.0",
52
+ "@dnd-kit/sortable": "^8.0.0",
53
+ "@dnd-kit/utilities": "^3.2.2",
54
+ "@tanstack/react-query": "^5.59.15",
55
+ "@types/lodash": "^4.17.12",
56
+ "@types/react": "^18.0.0",
57
+ "@types/react-dom": "^18.0.0",
58
+ "@umijs/lint": "^4.0.0",
59
+ "@vladmandic/face-api": "^1.7.14",
60
+ "antd": "^5.21.4",
61
+ "axios": "^1.7.7",
62
+ "dayjs": "^1.11.13",
63
+ "dumi": "^2.3.0",
64
+ "dumi-theme-antd": "^0.4.2",
65
+ "eslint": "^8.23.0",
66
+ "father": "^4.1.0",
67
+ "husky": "^8.0.1",
68
+ "lint-staged": "^13.0.3",
69
+ "lodash": "^4.17.21",
70
+ "nanoid": "^5.0.8",
71
+ "prettier": "^2.7.1",
72
+ "prettier-plugin-organize-imports": "^3.0.0",
73
+ "prettier-plugin-packagejson": "^2.2.18",
74
+ "react": "^18.0.0",
75
+ "react-dom": "^18.0.0",
76
+ "sass": "^1.80.0",
77
+ "stylelint": "^14.9.1",
78
+ "yootd-webrtc-sdk": "^1.0.1"
79
+ },
80
+ "peerDependencies": {
81
+ "@dnd-kit/core": ">=6.1.0",
82
+ "@dnd-kit/modifiers": ">=7.0.0",
83
+ "@dnd-kit/sortable": ">=8.0.0",
84
+ "@dnd-kit/utilities": ">=3.2.2",
85
+ "@tanstack/react-query": ">=5.59.15",
86
+ "@vladmandic/face-api": "^1.7.14",
87
+ "@xyflow/react": ">=12.3.3",
88
+ "antd": ">=5.21.4",
89
+ "axios": ">=1.7.7",
90
+ "dayjs": ">=1.11.13",
91
+ "lodash": ">=4.17.21",
92
+ "nanoid": ">=5.0.8",
93
+ "react": ">=16.9.0",
94
+ "react-dom": ">=16.9.0",
95
+ "yootd-webrtc-sdk": "^1.0.1"
96
+ },
97
+ "publishConfig": {
98
+ "access": "public"
99
+ },
100
+ "authors": []
101
+ }