@flatbiz/antd 5.0.11 → 5.0.12

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.
Files changed (36) hide show
  1. package/dist/button-operate/index.js +1 -1
  2. package/dist/{button-operate-BRkW26Up.js → button-operate-C7NGikli.js} +13 -9
  3. package/dist/button-operate-C7NGikli.js.map +1 -0
  4. package/dist/{cell-render-iOsnjpak.js → cell-render-D4e6I9eI.js} +2 -2
  5. package/dist/{cell-render-iOsnjpak.js.map → cell-render-D4e6I9eI.js.map} +1 -1
  6. package/dist/{drag-COCvgEoI.js → drag-CYnGqWKf.js} +2 -2
  7. package/dist/{drag-COCvgEoI.js.map → drag-CYnGqWKf.js.map} +1 -1
  8. package/dist/drag-editable-table/index.js +4 -4
  9. package/dist/easy-table/index.d.ts +1 -1
  10. package/dist/easy-table/index.js +2 -2
  11. package/dist/easy-table/index.js.map +1 -1
  12. package/dist/editable-table/index.js +3 -3
  13. package/dist/{editable-table-DEpIgXwl.js → editable-table-Ccuxddfl.js} +2 -2
  14. package/dist/{editable-table-DEpIgXwl.js.map → editable-table-Ccuxddfl.js.map} +1 -1
  15. package/dist/index.d.ts +14 -17
  16. package/dist/index.js +7 -7
  17. package/dist/radio-group-wrapper/index.d.ts +2 -0
  18. package/dist/radio-group-wrapper/index.js +1 -1
  19. package/dist/{radio-group-wrapper-DkbBQw9P.js → radio-group-wrapper-Dip9OsdR.js} +2 -1
  20. package/dist/radio-group-wrapper-Dip9OsdR.js.map +1 -0
  21. package/dist/{selector-HbymPXNd.js → selector-CxZacuxg.js} +26 -9
  22. package/dist/selector-CxZacuxg.js.map +1 -0
  23. package/dist/table-cell-render/index.js +2 -2
  24. package/dist/tree-modal/index.d.ts +11 -16
  25. package/dist/tree-modal/index.js +403 -17
  26. package/dist/tree-modal/index.js.map +1 -1
  27. package/dist/tree-modal-selector/index.d.ts +8 -8
  28. package/dist/tree-modal-selector/index.js +4 -4
  29. package/dist/tree-wrapper/index.js +2 -2
  30. package/dist/tree-wrapper/index.js.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/button-operate-BRkW26Up.js.map +0 -1
  33. package/dist/radio-group-wrapper-DkbBQw9P.js.map +0 -1
  34. package/dist/select-modal-Dt4YHH8a.js +0 -370
  35. package/dist/select-modal-Dt4YHH8a.js.map +0 -1
  36. package/dist/selector-HbymPXNd.js.map +0 -1
@@ -1,11 +1,12 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
2
 
3
3
  import { _ as _objectWithoutProperties, a as _slicedToArray, b as _objectSpread2 } from './_rollupPluginBabelHelpers-BYm17lo8.js';
4
+ import { hooks } from '@wove/react/hooks';
4
5
  import { isObject } from '@dimjs/lang/is-object';
5
- import { useState } from 'react';
6
+ import { useRef, useState } from 'react';
6
7
  import { Select } from 'antd';
7
8
  import { isUndefinedOrNull, toArray } from '@flatbiz/utils';
8
- import { T as TreeModal } from './select-modal-Dt4YHH8a.js';
9
+ import { TreeModal } from './tree-modal/index.js';
9
10
  import { jsx } from 'react/jsx-runtime';
10
11
 
11
12
  var _excluded = ["placeholder", "maxTagCount", "labelInValue"];
@@ -17,18 +18,27 @@ var _excluded = ["placeholder", "maxTagCount", "labelInValue"];
17
18
  * ```
18
19
  */
19
20
  var TreeModalSelector = function TreeModalSelector(props) {
21
+ var _otherProps$fieldName, _otherProps$fieldName2;
20
22
  var placeholder = props.placeholder,
21
23
  maxTagCount = props.maxTagCount,
22
24
  labelInValue = props.labelInValue,
23
25
  otherProps = _objectWithoutProperties(props, _excluded);
24
26
  var placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;
27
+ var dataSourceMapRef = useRef({});
28
+ var labelKey = ((_otherProps$fieldName = otherProps.fieldNames) === null || _otherProps$fieldName === void 0 ? void 0 : _otherProps$fieldName.label) || 'label';
29
+ var valueKey = ((_otherProps$fieldName2 = otherProps.fieldNames) === null || _otherProps$fieldName2 === void 0 ? void 0 : _otherProps$fieldName2.value) || 'value';
25
30
  var _useState = useState(function () {
26
31
  var _toArray;
27
32
  return ((_toArray = toArray(props.value)) === null || _toArray === void 0 ? void 0 : _toArray.map(function (item) {
28
- return isObject(item) ? item : {
33
+ var _dataSourceMapRef$cur;
34
+ var objItems = isObject(item) ? item : {
29
35
  label: item,
30
36
  value: item
31
37
  };
38
+ return {
39
+ value: objItems.value,
40
+ label: ((_dataSourceMapRef$cur = dataSourceMapRef.current[objItems.value]) === null || _dataSourceMapRef$cur === void 0 ? void 0 : _dataSourceMapRef$cur[labelKey]) || objItems.value
41
+ };
32
42
  })) || [];
33
43
  }),
34
44
  _useState2 = _slicedToArray(_useState, 2),
@@ -62,14 +72,21 @@ var TreeModalSelector = function TreeModalSelector(props) {
62
72
  return item.value;
63
73
  }));
64
74
  };
75
+ var onDataSourceChange = hooks.useCallbackRef(function (_treeDataList, mapData) {
76
+ dataSourceMapRef.current = mapData;
77
+ var result = showValues === null || showValues === void 0 ? void 0 : showValues.map(function (item) {
78
+ var target = mapData[item.value];
79
+ return target ? {
80
+ label: target[labelKey],
81
+ value: target[valueKey]
82
+ } : undefined;
83
+ }).filter(Boolean);
84
+ setShowValues(result);
85
+ });
65
86
  return /*#__PURE__*/jsx(TreeModal, _objectSpread2(_objectSpread2({}, otherProps), {}, {
66
87
  forceRender: true,
67
88
  onChange: treeModalChange,
68
- onSelectChange: function onSelectChange(values) {
69
- var _props$onSelectChange;
70
- setShowValues(values || []);
71
- (_props$onSelectChange = props.onSelectChange) === null || _props$onSelectChange === void 0 || _props$onSelectChange.call(props, values || []);
72
- },
89
+ onDataSourceChange: onDataSourceChange,
73
90
  children: /*#__PURE__*/jsx(Select, {
74
91
  labelInValue: true,
75
92
  style: {
@@ -86,4 +103,4 @@ var TreeModalSelector = function TreeModalSelector(props) {
86
103
  };
87
104
 
88
105
  export { TreeModalSelector as T };
89
- //# sourceMappingURL=selector-HbymPXNd.js.map
106
+ //# sourceMappingURL=selector-CxZacuxg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-CxZacuxg.js","sources":["@flatbiz/antd/src/tree-modal-selector/selector.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { Select } from 'antd';\nimport { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { TreeModal } from '../tree-modal/index.js';\nimport type {\n TreeModalProps,\n TreeModelSelectItem,\n} from '../tree-modal/types.js';\nexport type TreeModalSelectorProps = Omit<\n TreeModalProps,\n 'children' | 'forceRender' | 'onChange'\n> & {\n placeholder?: string;\n /**\n * 1. 可指定数量\n * 2. 可设置 responsive,一行自适应显示\n */\n maxTagCount?: number | 'responsive';\n /** 是否返回label+value模式 */\n labelInValue?: boolean;\n onChange?: (values?: TreeModelSelectItem[] | TreeModelSelectItem) => void;\n};\n\n/**\n * 树弹框选择器\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalSelector = (props: TreeModalSelectorProps) => {\n const { placeholder, maxTagCount, labelInValue, ...otherProps } = props;\n const placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;\n\n const dataSourceMapRef = useRef<TPlainObject>({});\n\n const labelKey = otherProps.fieldNames?.label || 'label';\n const valueKey = otherProps.fieldNames?.value || 'value';\n\n const [showValues, setShowValues] = useState<TreeModelSelectItem[]>(() => {\n return (\n toArray(props.value)?.map((item) => {\n const objItems = (\n isObject(item) ? item : { label: item, value: item }\n ) as TreeModelSelectItem;\n return {\n value: objItems.value,\n label:\n dataSourceMapRef.current[objItems.value]?.[labelKey] ||\n objItems.value,\n } as TreeModelSelectItem;\n }) || []\n );\n });\n\n const onInnerChange = (value: TreeModelSelectItem[]) => {\n const valueFt = toArray(value).length ? value : undefined;\n if (otherProps.isMultiple == false) {\n props.onChange?.(valueFt?.[0]);\n } else {\n props.onChange?.(valueFt);\n }\n };\n\n const onSelectChange = (value) => {\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n\n onInnerChange(value?.map((item) => item.value));\n };\n const treeModalChange = (value) => {\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n\n onInnerChange(value?.map((item) => item.value));\n };\n\n const onDataSourceChange = hooks.useCallbackRef(\n (_treeDataList: TPlainObject[], mapData: TPlainObject) => {\n dataSourceMapRef.current = mapData;\n const result = showValues\n ?.map((item) => {\n const target = mapData[item.value];\n return target\n ? { label: target[labelKey], value: target[valueKey] }\n : undefined;\n })\n .filter(Boolean) as TreeModelSelectItem[];\n setShowValues(result);\n }\n );\n\n return (\n <TreeModal\n {...otherProps}\n forceRender={true}\n onChange={treeModalChange}\n onDataSourceChange={onDataSourceChange}\n >\n <Select\n labelInValue\n style={{ width: '100%' }}\n placeholder={placeholderFt}\n maxTagCount={maxTagCount}\n mode=\"multiple\"\n open={false}\n value={showValues}\n onChange={onSelectChange}\n />\n </TreeModal>\n );\n};\n"],"names":["TreeModalSelector","props","_otherProps$fieldName","_otherProps$fieldName2","placeholder","maxTagCount","labelInValue","otherProps","_objectWithoutProperties","_excluded","placeholderFt","isUndefinedOrNull","dataSourceMapRef","useRef","labelKey","fieldNames","label","valueKey","value","_useState","useState","_toArray","toArray","map","item","_dataSourceMapRef$cur","objItems","_isObject","current","_useState2","_slicedToArray","showValues","setShowValues","onInnerChange","valueFt","length","undefined","isMultiple","_props$onChange","onChange","call","_props$onChange2","onSelectChange","treeModalChange","onDataSourceChange","_hooks","useCallbackRef","_treeDataList","mapData","result","target","filter","Boolean","_jsx","TreeModal","_objectSpread","forceRender","children","Select","style","width","mode","open"],"mappings":"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"}
@@ -7,7 +7,7 @@ import './../tag-list-render/index.css';
7
7
  import './index.css';
8
8
  /*! @flatjs/forge MIT @flatbiz/antd */
9
9
 
10
- export { t as tableCellRender } from '../cell-render-iOsnjpak.js';
10
+ export { t as tableCellRender } from '../cell-render-D4e6I9eI.js';
11
11
  import '@dimjs/lang/is-string';
12
12
  import '@dimjs/lang/is-object';
13
13
  import '@dimjs/utils/get/get';
@@ -17,7 +17,7 @@ import '@dimjs/lang/is-empty';
17
17
  import 'react';
18
18
  import 'antd';
19
19
  import '@flatbiz/utils';
20
- import '../button-operate-BRkW26Up.js';
20
+ import '../button-operate-C7NGikli.js';
21
21
  import '@ant-design/icons/es/icons/MoreOutlined.js';
22
22
  import '@dimjs/lang/is-undefined';
23
23
  import '@dimjs/utils/class-names/class-names';
@@ -367,13 +367,10 @@ export type TreeModelSelectItem = {
367
367
  value: string | number;
368
368
  };
369
369
  export type TreeModelSelectValue = TreeModelSelectItem[] | Array<TreeModelSelectItem["value"]> | TreeModelSelectItem["value"];
370
- export type TreeModalProps = {
370
+ export type TreeModalContentProps = {
371
371
  /** 是否多选,默认值:true */
372
372
  isMultiple?: boolean;
373
373
  forceRender?: boolean;
374
- children: ReactElement & {
375
- onClick?: (e: any) => void | Promise<void>;
376
- };
377
374
  /**
378
375
  * 内置尺寸,根据比例固定高度、宽度,默认:large
379
376
  */
@@ -395,21 +392,19 @@ export type TreeModalProps = {
395
392
  /** 选择数量提示,例如:已选择{total}位用户 */
396
393
  selectQuantityPrompt?: string;
397
394
  };
398
- /** 选中值变更change,包括入参value、操作选中等 */
399
- onSelectChange?: (values?: TreeModelSelectItem[]) => void;
400
- onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;
395
+ onDataSourceChange?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;
396
+ treeProps?: Pick<TreeWrapperProps, "showSearch" | "searchResultType" | "searchPlaceholder" | "searchValue" | "loadDataFlag" | "loadDataServiceConfig" | "icon" | "disabledCanUse" | "treeItemDataAdapter" | "searchExtraElement" | "initRootExpand" | "searchResultType" | "labelRender" | "customSearchRule" | "checkableType" | "checkStrictly" | "defaultExpandAll">;
397
+ };
398
+ export type TreeModalProps = TreeModalContentProps & {
399
+ children: ReactElement & {
400
+ onClick?: (e: any) => void | Promise<void>;
401
+ };
401
402
  modalClassName?: string;
402
403
  modalWidth?: number;
403
404
  modalBodyHeight?: number;
404
- treeProps?: Pick<TreeWrapperProps, "showSearch" | "searchResultType" | "searchPlaceholder" | "searchValue" | "loadDataFlag" | "loadDataServiceConfig" | "icon" | "disabledCanUse" | "treeItemDataAdapter" | "searchExtraElement" | "initRootExpand" | "searchResultType" | "labelRender" | "customSearchRule" | "checkableType">;
405
405
  };
406
- /**
407
- * 树节点数据选择,一般用于选择员工等
408
- * ```
409
- * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点
410
- * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree
411
- * ```
412
- */
413
- export declare const TreeModal: (props: TreeModalProps) => import("react").JSX.Element;
406
+ export declare const TreeModal: ((props: TreeModalProps) => import("react").JSX.Element) & {
407
+ Content: (props: TreeModalContentProps) => import("react").JSX.Element;
408
+ };
414
409
 
415
410
  export {};
@@ -14,26 +14,25 @@ import './../tree-wrapper/index.css';
14
14
  import './index.css';
15
15
  /*! @flatjs/forge MIT @flatbiz/antd */
16
16
 
17
- export { T as TreeModal } from '../select-modal-Dt4YHH8a.js';
18
- import '../_rollupPluginBabelHelpers-BYm17lo8.js';
19
- import '@dimjs/lang/is-object';
20
- import '@wove/react/hooks';
21
- import 'react';
22
- import 'ahooks';
23
- import 'antd';
24
- import '@flatbiz/utils';
25
- import '../fba-hooks/index.js';
17
+ import { toArray, treeToTiledMap, isUndefinedOrNull, attachPropertiesToComponent } from '@flatbiz/utils';
18
+ import { b as _objectSpread2, a as _slicedToArray } from '../_rollupPluginBabelHelpers-BYm17lo8.js';
19
+ import { hooks } from '@wove/react/hooks';
20
+ import { Fragment, useRef, useState, useMemo } from 'react';
21
+ import { useSize } from 'ahooks';
22
+ import { Modal } from 'antd';
23
+ import { fbaHooks } from '../fba-hooks/index.js';
24
+ import { isObject } from '@dimjs/lang/is-object';
25
+ import { F as FlexLayout } from '../flex-layout-BaDncU_Z.js';
26
+ import _CloseOutlined from '@ant-design/icons/es/icons/CloseOutlined.js';
27
+ import { C as CssNodeHover } from '../css-node-hover-CsHQgf77.js';
28
+ import { I as IconWrapper } from '../icon-wrapper-CR3akisG.js';
29
+ import { T as TextOverflow } from '../text-overflow-Bk9MC6Cg.js';
30
+ import { jsx, jsxs } from 'react/jsx-runtime';
31
+ import { TreeWrapper } from '../tree-wrapper/index.js';
26
32
  import '../use-responsive-point-Bp3D3lZT.js';
27
- import '../flex-layout-BaDncU_Z.js';
28
33
  import '@dimjs/utils/class-names/class-names';
29
- import 'react/jsx-runtime';
30
- import '@ant-design/icons/es/icons/CloseOutlined.js';
31
- import '../css-node-hover-CsHQgf77.js';
32
- import '../icon-wrapper-CR3akisG.js';
33
34
  import '@dimjs/lang/is-undefined';
34
- import '../text-overflow-Bk9MC6Cg.js';
35
35
  import '@dimjs/lang/is-string';
36
- import '../tree-wrapper/index.js';
37
36
  import '@dimjs/lang/is-array';
38
37
  import '@dimjs/model-react';
39
38
  import '@ant-design/icons/es/icons/CaretDownFilled.js';
@@ -41,7 +40,7 @@ import '@ant-design/icons/es/icons/MoreOutlined.js';
41
40
  import '@dimjs/utils/extend/extend';
42
41
  import '@dimjs/utils/get/get';
43
42
  import '@dimjs/model';
44
- import '../button-operate-BRkW26Up.js';
43
+ import '../button-operate-C7NGikli.js';
45
44
  import '@dimjs/lang/is-plain-object';
46
45
  import '@dimjs/lang/is-promise';
47
46
  import '../button-wrapper-l9FUsrWl.js';
@@ -70,4 +69,391 @@ import '../input-search-wrapper-wVYGWi2O.js';
70
69
  import '../request-status-DQsSHUSx.js';
71
70
  import '@dimjs/utils/tree/walk-through-tree';
72
71
  import 'dequal';
72
+
73
+ var SelectItemList = function SelectItemList(props) {
74
+ var chenkedIdList = props.chenkedIdList;
75
+ return /*#__PURE__*/jsx(Fragment, {
76
+ children: chenkedIdList === null || chenkedIdList === void 0 ? void 0 : chenkedIdList.map(function (item) {
77
+ var value = item.value;
78
+ var label = item.label || value;
79
+ return /*#__PURE__*/jsx(CssNodeHover, {
80
+ style: {
81
+ paddingLeft: 5,
82
+ paddingRight: 0
83
+ },
84
+ children: /*#__PURE__*/jsxs(FlexLayout, {
85
+ fullIndex: 1,
86
+ direction: "horizontal",
87
+ style: {
88
+ alignItems: 'center',
89
+ fontSize: 14,
90
+ marginBottom: 0,
91
+ color: '#505050'
92
+ },
93
+ children: [/*#__PURE__*/jsx(TextOverflow, {
94
+ text: label
95
+ }), /*#__PURE__*/jsx("div", {
96
+ style: {
97
+ position: 'relative',
98
+ zIndex: 9,
99
+ color: '#a1a1a1'
100
+ },
101
+ children: /*#__PURE__*/jsx(IconWrapper, {
102
+ text: /*#__PURE__*/jsx(_CloseOutlined, {}),
103
+ onClick: props.onDeleteItem.bind(null, value),
104
+ size: "small",
105
+ style: {
106
+ paddingRight: 5,
107
+ margin: '2px'
108
+ }
109
+ })
110
+ })]
111
+ })
112
+ }, value);
113
+ })
114
+ });
115
+ };
116
+
117
+ var SelectContent = function SelectContent(props) {
118
+ var _props$treeProps, _props$value;
119
+ var modelKey = hooks.useId(undefined, 'tree-select-modal');
120
+ return /*#__PURE__*/jsx(TreeWrapper, _objectSpread2(_objectSpread2({
121
+ initRootExpand: true,
122
+ showSearch: true,
123
+ searchPlaceholder: "\u641C\u7D22",
124
+ checkable: true,
125
+ checkableType: "2"
126
+ }, props.treeProps), {}, {
127
+ showIcon: (_props$treeProps = props.treeProps) !== null && _props$treeProps !== void 0 && _props$treeProps.icon ? true : false,
128
+ value: (_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.map(function (item) {
129
+ return item.value;
130
+ }),
131
+ modelKey: modelKey,
132
+ fieldNames: props.fieldNames,
133
+ labelInValue: true,
134
+ serviceConfig: props.serviceConfig,
135
+ onChange: function onChange(values) {
136
+ var _props$onChange;
137
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, toArray(values));
138
+ }
139
+ }));
140
+ };
141
+
142
+ var HorizontalLayout = function HorizontalLayout(props) {
143
+ var _props$fieldNames, _props$fieldNames2;
144
+ var chenkedIdList = props.value || [];
145
+ var valueKey = ((_props$fieldNames = props.fieldNames) === null || _props$fieldNames === void 0 ? void 0 : _props$fieldNames.value) || 'value';
146
+ var childrenKey = ((_props$fieldNames2 = props.fieldNames) === null || _props$fieldNames2 === void 0 ? void 0 : _props$fieldNames2.children) || 'children';
147
+ var _props$textConfig = props.textConfig,
148
+ selectQuantityPrompt = _props$textConfig.selectQuantityPrompt,
149
+ placeholder = _props$textConfig.placeholder;
150
+ return /*#__PURE__*/jsxs(FlexLayout, {
151
+ fullIndex: 0,
152
+ direction: "horizontal",
153
+ gap: 10,
154
+ style: {
155
+ height: '100%',
156
+ overflow: 'hidden'
157
+ },
158
+ children: [/*#__PURE__*/jsx("div", {
159
+ style: {
160
+ backgroundColor: '#f4f4f4',
161
+ padding: 10,
162
+ borderRadius: 5
163
+ },
164
+ children: /*#__PURE__*/jsx(SelectContent, {
165
+ treeProps: props.treeProps,
166
+ value: chenkedIdList,
167
+ onChange: props.onChange,
168
+ fieldNames: props.fieldNames,
169
+ serviceConfig: {
170
+ onRequest: props.onRequest,
171
+ onRequestResultAdapter: function onRequestResultAdapter(respData) {
172
+ var _props$onChangeDataSo;
173
+ var listMap = treeToTiledMap(respData, {
174
+ value: valueKey,
175
+ children: childrenKey
176
+ });
177
+ (_props$onChangeDataSo = props.onChangeDataSource) === null || _props$onChangeDataSo === void 0 || _props$onChangeDataSo.call(props, respData, listMap);
178
+ return respData;
179
+ }
180
+ }
181
+ })
182
+ }), /*#__PURE__*/jsxs("div", {
183
+ style: {
184
+ width: '40%',
185
+ overflow: 'hidden',
186
+ height: '100%',
187
+ display: 'flex',
188
+ flexDirection: 'column',
189
+ flexShrink: 0
190
+ },
191
+ children: [/*#__PURE__*/jsx("div", {
192
+ style: {
193
+ fontSize: 15,
194
+ fontWeight: '500',
195
+ marginBottom: 10
196
+ },
197
+ children: chenkedIdList.length > 0 ? /*#__PURE__*/jsx(Fragment, {
198
+ children: selectQuantityPrompt ? selectQuantityPrompt.replace('{total}', "".concat((chenkedIdList === null || chenkedIdList === void 0 ? void 0 : chenkedIdList.length) || '')) : "\u5DF2\u9009\u62E9".concat(chenkedIdList === null || chenkedIdList === void 0 ? void 0 : chenkedIdList.length)
199
+ }) : placeholder || '请选择'
200
+ }), /*#__PURE__*/jsx("div", {
201
+ style: {
202
+ overflow: 'auto',
203
+ flex: 1,
204
+ paddingRight: 15
205
+ },
206
+ children: /*#__PURE__*/jsx(SelectItemList, {
207
+ chenkedIdList: chenkedIdList,
208
+ fieldNames: props.fieldNames,
209
+ onDeleteItem: props.onDeleteItem
210
+ })
211
+ })]
212
+ })]
213
+ });
214
+ };
215
+
216
+ var VerticalLayout = function VerticalLayout(props) {
217
+ var _props$fieldNames, _props$fieldNames2;
218
+ var _props$textConfig = props.textConfig,
219
+ selectQuantityPrompt = _props$textConfig.selectQuantityPrompt,
220
+ placeholder = _props$textConfig.placeholder;
221
+ var valueKey = ((_props$fieldNames = props.fieldNames) === null || _props$fieldNames === void 0 ? void 0 : _props$fieldNames.value) || 'value';
222
+ var childrenKey = ((_props$fieldNames2 = props.fieldNames) === null || _props$fieldNames2 === void 0 ? void 0 : _props$fieldNames2.children) || 'children';
223
+ var chenkedIdList = props.value || [];
224
+ return /*#__PURE__*/jsxs("div", {
225
+ style: {
226
+ height: '100%',
227
+ overflow: 'auto'
228
+ },
229
+ children: [/*#__PURE__*/jsx("div", {
230
+ style: {
231
+ backgroundColor: '#f4f4f4',
232
+ padding: 10,
233
+ borderRadius: 5
234
+ },
235
+ children: /*#__PURE__*/jsx(SelectContent, {
236
+ treeProps: props.treeProps,
237
+ value: chenkedIdList,
238
+ onChange: props.onChange,
239
+ fieldNames: props.fieldNames,
240
+ serviceConfig: {
241
+ onRequest: props.onRequest,
242
+ onRequestResultAdapter: function onRequestResultAdapter(respData) {
243
+ var _props$onChangeDataSo;
244
+ var listMap = treeToTiledMap(respData, {
245
+ value: valueKey,
246
+ children: childrenKey
247
+ });
248
+ (_props$onChangeDataSo = props.onChangeDataSource) === null || _props$onChangeDataSo === void 0 || _props$onChangeDataSo.call(props, respData, listMap);
249
+ return respData;
250
+ }
251
+ }
252
+ })
253
+ }), /*#__PURE__*/jsxs("div", {
254
+ style: {
255
+ marginTop: 20
256
+ },
257
+ children: [/*#__PURE__*/jsx("div", {
258
+ style: {
259
+ fontSize: 15,
260
+ fontWeight: '500',
261
+ marginBottom: 10
262
+ },
263
+ children: chenkedIdList.length > 0 ? /*#__PURE__*/jsx(Fragment, {
264
+ children: selectQuantityPrompt ? selectQuantityPrompt.replace('{total}', "".concat((chenkedIdList === null || chenkedIdList === void 0 ? void 0 : chenkedIdList.length) || '')) : "\u5DF2\u9009\u62E9".concat(chenkedIdList === null || chenkedIdList === void 0 ? void 0 : chenkedIdList.length)
265
+ }) : placeholder
266
+ }), /*#__PURE__*/jsx(SelectItemList, {
267
+ chenkedIdList: chenkedIdList,
268
+ fieldNames: props.fieldNames,
269
+ onDeleteItem: props.onDeleteItem
270
+ })]
271
+ })]
272
+ });
273
+ };
274
+
275
+ var TreeModalContent = function TreeModalContent(props) {
276
+ var _props$fieldNames, _props$fieldNames2;
277
+ var isMultiple = props.isMultiple;
278
+ var labelKey = ((_props$fieldNames = props.fieldNames) === null || _props$fieldNames === void 0 ? void 0 : _props$fieldNames.label) || 'label';
279
+ var valueKey = ((_props$fieldNames2 = props.fieldNames) === null || _props$fieldNames2 === void 0 ? void 0 : _props$fieldNames2.value) || 'value';
280
+ var dataSourceMapRef = useRef({});
281
+ var screenType = fbaHooks.useResponsivePoint() || '';
282
+ var direction = screenType === 'xs' ? 'vertical' : 'horizontal';
283
+ var isMultipleFt = isUndefinedOrNull(isMultiple) ? true : isMultiple;
284
+ var _useState = useState(),
285
+ _useState2 = _slicedToArray(_useState, 2),
286
+ values = _useState2[0],
287
+ setValues = _useState2[1];
288
+ var onDeleteItem = function onDeleteItem(value) {
289
+ var targetList = values === null || values === void 0 ? void 0 : values.filter(function (item) {
290
+ return item.value !== value;
291
+ });
292
+ setValues(targetList);
293
+ };
294
+ fbaHooks.useEffectCustom(function () {
295
+ var values = toArray(props.value).map(function (item) {
296
+ var _dataSourceMapRef$cur;
297
+ var target = isObject(item) ? item : {
298
+ label: item,
299
+ value: item
300
+ };
301
+ var value = target.value;
302
+ return {
303
+ value: value,
304
+ label: ((_dataSourceMapRef$cur = dataSourceMapRef.current[value]) === null || _dataSourceMapRef$cur === void 0 ? void 0 : _dataSourceMapRef$cur[labelKey]) || ''
305
+ };
306
+ });
307
+ setValues(values);
308
+ }, [props.value]);
309
+ var treePropsFt = _objectSpread2(_objectSpread2({}, props.treeProps), {}, {
310
+ checkable: isMultipleFt ? true : false
311
+ });
312
+ var onChange = function onChange(values) {
313
+ var _props$onChange;
314
+ setValues(values);
315
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, values);
316
+ };
317
+ var onChangeDataSource = hooks.useCallbackRef(function (treeDataList, mapData) {
318
+ var _props$onDataSourceCh;
319
+ dataSourceMapRef.current = mapData;
320
+ var result = values === null || values === void 0 ? void 0 : values.map(function (item) {
321
+ var target = mapData[item.value];
322
+ return target ? {
323
+ label: target[labelKey],
324
+ value: target[valueKey]
325
+ } : undefined;
326
+ }).filter(Boolean);
327
+ setValues(result);
328
+ (_props$onDataSourceCh = props.onDataSourceChange) === null || _props$onDataSourceCh === void 0 || _props$onDataSourceCh.call(props, treeDataList, mapData);
329
+ });
330
+ return /*#__PURE__*/jsx(Fragment, {
331
+ children: direction === 'vertical' ? /*#__PURE__*/jsx(VerticalLayout, {
332
+ value: values,
333
+ onDeleteItem: onDeleteItem,
334
+ fieldNames: props.fieldNames,
335
+ onRequest: props.onRequest,
336
+ textConfig: props.textConfig,
337
+ onChange: onChange,
338
+ onChangeDataSource: onChangeDataSource,
339
+ treeProps: treePropsFt
340
+ }) : /*#__PURE__*/jsx(HorizontalLayout, {
341
+ value: values,
342
+ onDeleteItem: onDeleteItem,
343
+ fieldNames: props.fieldNames,
344
+ onRequest: props.onRequest,
345
+ textConfig: props.textConfig,
346
+ onChange: onChange,
347
+ onChangeDataSource: onChangeDataSource,
348
+ treeProps: treePropsFt
349
+ })
350
+ });
351
+ };
352
+
353
+ /**
354
+ * 树节点数据选择,一般用于选择员工等
355
+ * ```
356
+ * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点
357
+ * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree
358
+ * ```
359
+ */
360
+ var TreeModal$1 = function TreeModal(props) {
361
+ var _props$size = props.size,
362
+ size = _props$size === void 0 ? 'large' : _props$size;
363
+ var _useState = useState(false),
364
+ _useState2 = _slicedToArray(_useState, 2),
365
+ isOpen = _useState2[0],
366
+ setIsOpen = _useState2[1];
367
+ var htmlSize = useSize(document.querySelector('html'));
368
+ var screenType = fbaHooks.useResponsivePoint() || '';
369
+ var direction = screenType === 'xs' ? 'vertical' : 'horizontal';
370
+ var handleOnClick = hooks.useCallbackRef(function () {
371
+ setIsOpen(true);
372
+ });
373
+ var Action = props.children.type;
374
+ var _useState3 = useState(),
375
+ _useState4 = _slicedToArray(_useState3, 2),
376
+ values = _useState4[0],
377
+ setValues = _useState4[1];
378
+ var originalValuesRef = useRef([]);
379
+ var customSize = useMemo(function () {
380
+ if (!(htmlSize !== null && htmlSize !== void 0 && htmlSize.height) || !screenType) return undefined;
381
+ var isXsSm = ['xs', 'sm'].includes(screenType);
382
+ var sizeCalculate = {};
383
+ if (size == 'large') {
384
+ sizeCalculate = {
385
+ height: (htmlSize === null || htmlSize === void 0 ? void 0 : htmlSize.height) * 0.65,
386
+ width: 800
387
+ };
388
+ } else if (size == 'small') {
389
+ sizeCalculate = {
390
+ height: (htmlSize === null || htmlSize === void 0 ? void 0 : htmlSize.height) * 0.45,
391
+ width: 450
392
+ };
393
+ } else if (size == 'middle') {
394
+ sizeCalculate = {
395
+ height: (htmlSize === null || htmlSize === void 0 ? void 0 : htmlSize.height) * 0.55,
396
+ width: 600
397
+ };
398
+ }
399
+ return {
400
+ height: props.modalBodyHeight || sizeCalculate.height,
401
+ width: isXsSm ? '90%' : props.modalWidth || sizeCalculate.width
402
+ };
403
+ }, [htmlSize === null || htmlSize === void 0 ? void 0 : htmlSize.height, screenType, size, props.modalBodyHeight, props.modalWidth]);
404
+ var onSubmit = function onSubmit() {
405
+ var _props$onChange;
406
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, values);
407
+ setIsOpen(false);
408
+ };
409
+ var onCancel = function onCancel() {
410
+ setIsOpen(false);
411
+ setValues(originalValuesRef.current);
412
+ };
413
+ return /*#__PURE__*/jsxs(Fragment, {
414
+ children: [/*#__PURE__*/jsx(Action, _objectSpread2(_objectSpread2({}, props.children.props), {}, {
415
+ onClick: handleOnClick
416
+ })), /*#__PURE__*/jsx(Modal, {
417
+ className: props.modalClassName,
418
+ title: props.textConfig.title || '选择',
419
+ open: isOpen,
420
+ onCancel: onCancel,
421
+ forceRender: props.forceRender,
422
+ centered: true,
423
+ width: customSize === null || customSize === void 0 ? void 0 : customSize.width,
424
+ onOk: onSubmit,
425
+ styles: direction === 'horizontal' ? {
426
+ body: {
427
+ height: customSize === null || customSize === void 0 ? void 0 : customSize.height,
428
+ maxHeight: 'calc(100vh - 200px)',
429
+ padding: '0px 0 0 20px'
430
+ },
431
+ content: {
432
+ padding: 0
433
+ },
434
+ header: {
435
+ padding: '20px 24px 0 20px'
436
+ },
437
+ footer: {
438
+ padding: '0 24px 20px 24px'
439
+ }
440
+ } : {
441
+ body: {
442
+ height: customSize === null || customSize === void 0 ? void 0 : customSize.height
443
+ }
444
+ },
445
+ children: /*#__PURE__*/jsx(TreeModalContent, _objectSpread2(_objectSpread2({}, props), {}, {
446
+ onChange: function onChange(values) {
447
+ setValues(values);
448
+ }
449
+ }))
450
+ })]
451
+ });
452
+ };
453
+
454
+ var TreeModal = attachPropertiesToComponent(TreeModal$1, {
455
+ Content: TreeModalContent
456
+ });
457
+
458
+ export { TreeModal };
73
459
  //# sourceMappingURL=index.js.map