@flatbiz/antd 5.0.25 → 5.0.27

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 (98) hide show
  1. package/dist/bootstrap/index.js +2 -2
  2. package/dist/{bootstrap-BPinDEWu.js → bootstrap-NbEW5Nn8.js} +2 -2
  3. package/dist/{bootstrap-BPinDEWu.js.map → bootstrap-NbEW5Nn8.js.map} +1 -1
  4. package/dist/button-operate/index.js +4 -4
  5. package/dist/{button-operate-hqQWIA-a.js → button-operate-C6dir05R.js} +2 -2
  6. package/dist/{button-operate-hqQWIA-a.js.map → button-operate-C6dir05R.js.map} +1 -1
  7. package/dist/cascader-wrapper/index.js +1 -1
  8. package/dist/{cascader-wrapper-CTJ9a9jH.js → cascader-wrapper-DVkMvgwP.js} +2 -1
  9. package/dist/cascader-wrapper-DVkMvgwP.js.map +1 -0
  10. package/dist/{cell-render-WngfXhmk.js → cell-render-BkfKyhww.js} +2 -2
  11. package/dist/{cell-render-WngfXhmk.js.map → cell-render-BkfKyhww.js.map} +1 -1
  12. package/dist/{color-picker-BKm2UF_1.js → color-picker-Cu2FbOtD.js} +2 -2
  13. package/dist/{color-picker-BKm2UF_1.js.map → color-picker-Cu2FbOtD.js.map} +1 -1
  14. package/dist/color-picker-wrapper/index.css +1 -1
  15. package/dist/color-picker-wrapper/index.js +2 -2
  16. package/dist/delete-node/index.css +1 -1
  17. package/dist/delete-node/index.js +2 -2
  18. package/dist/{delete-node-D46iKrXs.js → delete-node-BF-2Gsyu.js} +2 -2
  19. package/dist/{delete-node-D46iKrXs.js.map → delete-node-BF-2Gsyu.js.map} +1 -1
  20. package/dist/dialog-alert/index.js +3 -3
  21. package/dist/{dialog-alert-qO-Ea-MY.js → dialog-alert-Da0_jALv.js} +2 -2
  22. package/dist/{dialog-alert-qO-Ea-MY.js.map → dialog-alert-Da0_jALv.js.map} +1 -1
  23. package/dist/dialog-confirm/index.js +2 -2
  24. package/dist/{dialog-confirm-BqB8wyB6.js → dialog-confirm-GTxDQEV0.js} +2 -2
  25. package/dist/{dialog-confirm-BqB8wyB6.js.map → dialog-confirm-GTxDQEV0.js.map} +1 -1
  26. package/dist/dialog-modal/index.js +1 -1
  27. package/dist/{dialog-modal-xt2uoEa-.js → dialog-modal-BI0jI_5f.js} +6 -1
  28. package/dist/dialog-modal-BI0jI_5f.js.map +1 -0
  29. package/dist/{drag-CibNEm57.js → drag-ByReEN1c.js} +2 -2
  30. package/dist/{drag-CibNEm57.js.map → drag-ByReEN1c.js.map} +1 -1
  31. package/dist/{drag-CNdbBhEt.js → drag-Df_cXnAY.js} +3 -3
  32. package/dist/{drag-CNdbBhEt.js.map → drag-Df_cXnAY.js.map} +1 -1
  33. package/dist/drag-editable-card/index.css +1 -1
  34. package/dist/drag-editable-card/index.js +4 -4
  35. package/dist/drag-editable-table/index.css +1 -1
  36. package/dist/drag-editable-table/index.js +8 -8
  37. package/dist/drag-editable-table-pro/index.css +1 -1
  38. package/dist/drag-editable-table-pro/index.js +2 -2
  39. package/dist/drag-table/index.css +1 -1
  40. package/dist/drag-table/index.js +2 -2
  41. package/dist/{drag-table-By85hEGF.js → drag-table-vsEGr1yd.js} +2 -2
  42. package/dist/{drag-table-By85hEGF.js.map → drag-table-vsEGr1yd.js.map} +1 -1
  43. package/dist/dropdown-menu-wrapper/index.js +3 -3
  44. package/dist/{dropdown-menu-wrapper-CSzVvlcO.js → dropdown-menu-wrapper-ChbwSdIf.js} +2 -2
  45. package/dist/{dropdown-menu-wrapper-CSzVvlcO.js.map → dropdown-menu-wrapper-ChbwSdIf.js.map} +1 -1
  46. package/dist/easy-table/index.css +1 -1
  47. package/dist/easy-table/index.js +3 -3
  48. package/dist/easy-table/index.js.map +1 -1
  49. package/dist/editable-card/index.css +1 -1
  50. package/dist/editable-card/index.js +3 -3
  51. package/dist/{editable-card-DgDBWMu9.js → editable-card-BA4XmUCx.js} +2 -2
  52. package/dist/{editable-card-DgDBWMu9.js.map → editable-card-BA4XmUCx.js.map} +1 -1
  53. package/dist/{editable-card-DWsCTLQP.js → editable-card-tuEmj_mD.js} +4 -4
  54. package/dist/{editable-card-DWsCTLQP.js.map → editable-card-tuEmj_mD.js.map} +1 -1
  55. package/dist/editable-field/index.css +1 -1
  56. package/dist/editable-field/index.js +2 -2
  57. package/dist/{editable-field-XVZ1Rqdm.js → editable-field-DtbgD32w.js} +2 -2
  58. package/dist/{editable-field-XVZ1Rqdm.js.map → editable-field-DtbgD32w.js.map} +1 -1
  59. package/dist/editable-table/index.js +6 -6
  60. package/dist/{editable-table-Ez3tTYj8.js → editable-table-NP9LqFit.js} +2 -2
  61. package/dist/{editable-table-Ez3tTYj8.js.map → editable-table-NP9LqFit.js.map} +1 -1
  62. package/dist/fba-app/index.js +1 -1
  63. package/dist/{fba-app-Bys4HJRC.js → fba-app-DO_YME_j.js} +6 -1
  64. package/dist/{fba-app-Bys4HJRC.js.map → fba-app-DO_YME_j.js.map} +1 -1
  65. package/dist/icon-wrapper/index.css +1 -1
  66. package/dist/icon-wrapper/index.js +1 -1
  67. package/dist/{icon-wrapper-CR3akisG.js → icon-wrapper-HJ2r5GeZ.js} +24 -15
  68. package/dist/icon-wrapper-HJ2r5GeZ.js.map +1 -0
  69. package/dist/index.d.ts +28 -1
  70. package/dist/index.js +22 -22
  71. package/dist/{label-value-C7kXxKh2.js → label-value-CcmddXdr.js} +34 -13
  72. package/dist/label-value-CcmddXdr.js.map +1 -0
  73. package/dist/label-value-render/index.js +1 -1
  74. package/dist/rich-text-viewer/index.js +2 -2
  75. package/dist/{rich-text-viewer-B2z58ihN.js → rich-text-viewer-DzVbDTzM.js} +2 -2
  76. package/dist/{rich-text-viewer-B2z58ihN.js.map → rich-text-viewer-DzVbDTzM.js.map} +1 -1
  77. package/dist/{selector-C9RbRCKh.js → selector-DTu7bz-a.js} +8 -2
  78. package/dist/selector-DTu7bz-a.js.map +1 -0
  79. package/dist/table-cell-render/index.js +5 -5
  80. package/dist/tree-modal/index.d.ts +22 -0
  81. package/dist/tree-modal/index.js +6 -5
  82. package/dist/tree-modal/index.js.map +1 -1
  83. package/dist/tree-modal-selector/index.d.ts +22 -0
  84. package/dist/tree-modal-selector/index.js +6 -5
  85. package/dist/tree-modal-selector/index.js.map +1 -1
  86. package/dist/tree-selector-wrapper/index.d.ts +6 -1
  87. package/dist/tree-selector-wrapper/index.js +2 -1
  88. package/dist/tree-selector-wrapper/index.js.map +1 -1
  89. package/dist/tree-wrapper/index.css +1 -1
  90. package/dist/tree-wrapper/index.d.ts +22 -0
  91. package/dist/tree-wrapper/index.js +63 -14
  92. package/dist/tree-wrapper/index.js.map +1 -1
  93. package/package.json +1 -1
  94. package/dist/cascader-wrapper-CTJ9a9jH.js.map +0 -1
  95. package/dist/dialog-modal-xt2uoEa-.js.map +0 -1
  96. package/dist/icon-wrapper-CR3akisG.js.map +0 -1
  97. package/dist/label-value-C7kXxKh2.js.map +0 -1
  98. package/dist/selector-C9RbRCKh.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { type TreeProps } from 'antd';\nimport { isArray } from '@dimjs/lang';\nimport { type API, type ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport type { TAny } from '@flatbiz/utils';\nimport {\n arrayToMap,\n type TPlainObject,\n treeToArray,\n type TSetDefaultDefined,\n} from '@flatbiz/utils';\nimport type { TRequestStatus } from '../request-status/index.js';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n treeTiledArrayMap: TPlainObject;\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n requestErrorMessage?: string;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n valueName: string;\n };\n resetTreeList: void;\n changeRequestStatus: {\n status: TRequestStatus;\n errorMessage?: string;\n };\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n treeTiledArrayMap: {},\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.treeTiledArrayMap = arrayToMap(\n state.treeTiledArray,\n params.valueName\n );\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n state.treeTiledArray = [];\n state.treeTiledArrayMap = {};\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params.status;\n if (params.status === 'request-error') {\n state.treeList = [];\n state.treeTiledArray = [];\n state.treeTiledArrayMap = {};\n state.requestErrorMessage = params.errorMessage || '数据查询异常';\n } else {\n state.requestErrorMessage = undefined;\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const tiledArray = treeToArray(state.treeList, params.childrenName);\n const treeTiledArrayMap = arrayToMap(tiledArray, params.valueName);\n const target = treeTiledArrayMap[params.value];\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = tiledArray;\n state.treeTiledArrayMap = treeTiledArrayMap;\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<\n string,\n API<ModelType<ModelState, ModelActionParams, TAny>>\n> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { type TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model.js';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { type DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { walkThroughTree } from '@dimjs/utils';\nimport {\n isNotEmptyArray,\n isUndefinedOrNull,\n type LabelValueItem,\n type TAny,\n type TPlainObject,\n treeLeafParentsArray,\n treeToArray,\n treeToTiledArray,\n treeToTiledMap,\n} from '@flatbiz/utils';\n\nexport const getDefaultExpandAllKeys = (\n treeList: TPlainObject[],\n fieldNames: { label: string; value: string; children: string }\n) => {\n const allValues = treeToArray(treeList, fieldNames.children)\n .filter((item) => {\n const childrenValue = item[fieldNames.children] as TAny[] | undefined;\n return childrenValue && childrenValue.length > 0;\n })\n .map((item) => {\n return item[fieldNames.value];\n });\n return allValues as Array<string | number>;\n};\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames: { label: string; value: string; children: string }\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, {\n value: 'value',\n parentValue: 'parentValue',\n })\n .filter((item) => {\n const childrenValue = item[fieldNames.children] as TAny[] | undefined;\n return childrenValue && childrenValue.length > 0;\n })\n .map((item) => item.value);\n};\n\nexport const getVauleList = (\n data,\n labelInValueFieldNames: LabelValueItem<string | number>\n) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (\n data,\n labelInValueFieldNames: LabelValueItem<string | number>\n) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n return dequal(object1, object2);\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string }\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n\n/**\n * 由于树节点过滤后,选中了父节点不一定是全部子节点,此处进行筛查\n */\nexport const getActualSelectKeyList = (\n checkedValueList: Array<string | number>,\n treeTiledArrayMap: TPlainObject,\n chidlrenKey: string,\n valueKey: string\n) => {\n const leafValueDataMap: TPlainObject = {};\n const hasChildrenList: Array<string | number> = [];\n const retainHasChildrenValueList: Array<string | number> = [];\n checkedValueList.forEach((item) => {\n if (isNotEmptyArray(treeTiledArrayMap[item]?.[chidlrenKey])) {\n hasChildrenList.push(item);\n } else {\n leafValueDataMap[item] = item;\n }\n });\n if (hasChildrenList.length > 0) {\n hasChildrenList.forEach((item) => {\n const childrenTiledList = treeToArray(\n treeTiledArrayMap[item][chidlrenKey],\n chidlrenKey\n );\n if (Object.keys(leafValueDataMap).length > childrenTiledList.length) {\n const targetList = childrenTiledList.filter((item) => {\n return checkedValueList.find((temp) => temp === item[valueKey]);\n });\n if (targetList.length === childrenTiledList.length) {\n retainHasChildrenValueList.push(item);\n }\n }\n });\n }\n\n return checkedValueList.filter((item) => {\n return (\n retainHasChildrenValueList.find((temp) => temp == item) ||\n leafValueDataMap[item]\n );\n });\n};\n\n/** 移除指定节点以及所有子节点 */\nexport const removeTargetNodeAndAllChildrenNode = (\n checkedValueList: Array<string | number>,\n awitDeleteNode: TPlainObject,\n chidlrenKey: string,\n valueKey: string\n) => {\n const awitDeleteTieldDataMap: TPlainObject = treeToTiledMap(\n [awitDeleteNode],\n {\n value: valueKey,\n children: chidlrenKey,\n }\n );\n return checkedValueList.filter((item) => {\n return !awitDeleteTieldDataMap[item];\n });\n};\n\n/** 移除父节点全选下的叶子节点 */\nexport const removeAllSelectLeafNode = (\n checkedValueList: Array<string | number>,\n treeTiledArrayMap: TPlainObject,\n chidlrenKey: string,\n valueKey: string\n) => {\n let awitDeleteCheckedValueMap: TPlainObject = {};\n checkedValueList.forEach((item) => {\n const childrenList = treeTiledArrayMap[item]?.[chidlrenKey];\n if (isNotEmptyArray(childrenList)) {\n // hasChildrenList.push(item);\n const targetMap = treeToTiledMap(childrenList, {\n value: valueKey,\n children: chidlrenKey,\n });\n awitDeleteCheckedValueMap = {\n ...awitDeleteCheckedValueMap,\n ...targetMap,\n };\n }\n });\n return checkedValueList.filter((item) => !awitDeleteCheckedValueMap[item]);\n};\n\n/** 移除所有的父节点 */\nexport const removeAllParentNode = (\n checkedValueList: Array<string | number>,\n treeTiledArrayMap: TPlainObject,\n chidlrenKey: string\n) => {\n return checkedValueList.filter((item) => {\n return !isNotEmptyArray(treeTiledArrayMap[item][chidlrenKey]);\n });\n};\n\n/** values中的数据可能存在缺少父节点下的子节点情况,此处不起 */\nexport const completionParentChildrenNode = (\n values: Array<string | number>,\n treeTiledArrayMap: TPlainObject,\n chidlrenKey: string,\n valueKey: string\n) => {\n let allValues = [...values];\n values.forEach((item) => {\n const childrenList = treeTiledArrayMap[item]?.[chidlrenKey];\n if (isNotEmptyArray(childrenList)) {\n const targetList = treeToArray(childrenList, chidlrenKey);\n allValues = allValues.concat(targetList.map((temp) => temp[valueKey]));\n }\n });\n return Array.from(new Set(allValues));\n};\n","import {\n type CSSProperties,\n type DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n type ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Button, message, Spin, Tree, type TreeProps } from 'antd';\nimport { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray, isString } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n type TAny,\n toArray,\n type TPlainObject,\n treeFilter,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport {\n ButtonOperate,\n type ButtonOperateItem,\n type ButtonOperateProps,\n} from '../button-operate/index.js';\nimport type { DropdownMenuItem } from '../dropdown-menu-wrapper/index.js';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper/index.js';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { InputSearchWrapper } from '../input-search-wrapper/index.js';\nimport type { TRequestStatusProps } from '../request-status/index.js';\nimport { RequestStatus } from '../request-status/index.js';\nimport { treeWrapperModel } from './model.js';\nimport {\n completionParentChildrenNode,\n getActualSelectKeyList,\n getDefaultExpandAllKeys,\n getExpandedKeys,\n getVauleList,\n onTreeDrop,\n removeAllParentNode,\n removeAllSelectLeafNode,\n removeTargetNodeAndAllChildrenNode,\n} from './utils.js';\nimport './style.less';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\nexport type TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\nexport type TreeLoadDataServiceConfig = {\n getParams?: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n | 'defaultCheckedKeys'\n | 'defaultExpandParent'\n | 'defaultSelectedKeys'\n> & {\n /** 唯一值,用于缓存数据 */\n modelKey: string;\n /**\n * 字段映射\n * ```\n * 默认值:\n * label = 'label'\n * value = 'value'\n * children = 'children'\n *\n * 如果未设置list,则说明接口返回数据为数组\n * 如果返回数据存在多级,可通过设置 list='a.b.list'\n * ```\n */\n fieldNames?: {\n label?: string;\n value?: string;\n children?: string;\n list?: string;\n };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n /**\n * 是否开启异步加载\n */\n loadDataFlag?: boolean;\n /**\n * 异步加载数据配置\n * ```\n * 1. 会通过fieldNames配置label、value、children进行转义\n * 2. fieldNames.list 配置在此处无效\n * ```\n */\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n /** 接口响应数据变更 */\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n extraData?: TPlainObject\n ) => void;\n\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * @description 已过期,请使用 checkableType 配置\n * ```\n * 注意:checkStrictly = true,checkableResponseParentNode配置失效\n * ```\n */\n checkableResponseParentNode?: boolean;\n /**\n * 节点选择类型(默认值:'2'), 多选时有效\n * ```\n * '1' 表示返回所有选中的节点(包含父节点和叶子节点)\n * '2' 表示只返回叶子节点\n * '3' 表示当叶子节点全选时,返回父节点,不返回下面的叶子节点\n *\n * 注意:checkStrictly = true,checkableType配置失效\n * ```\n */\n checkableType?: '1' | '2' | '3';\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (\n dataItem: TPlainObject\n ) => DropdownMenuItem[] | ButtonOperateItem[];\n /**\n * 根据 menuLayoutType 类型赋值\n * @deprecated 已过期 4.3.0版本移除,请使用 menuOptions\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n menus?: (dataItem) => ButtonOperateProps;\n\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n searchStyle?: CSSProperties;\n icon?: (data: {\n isParent: boolean;\n isLeaf: boolean;\n [key: string]: TAny;\n }) => ReactElement;\n // /**\n // * 是否必选,最后一个不能取消\n // */\n // required?: boolean;\n /**\n * 状态文案配置\n */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n /**\n * 选择的节点数据,是否包含label信息\n * ```\n * 默认选择的节点只有value数据\n * ```\n */\n labelInValue?: boolean;\n /**\n * ```\n * @deprecated 废弃\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 拖拽结束位置父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 拖拽结束位置所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: {\n parentId?: string | number;\n id: string | number;\n index: number;\n }) => void;\n /**\n * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n /**\n * 自定义搜索规则\n */\n customSearchRule?: (nodeData: TPlainObject, searchValue?: string) => boolean;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n onChangeExpandedKeys: (expandedKeys: Array<string | number>) => void;\n /** 选择所有 */\n onSelectAll: () => void;\n /** 取消选择所有 */\n onCancelSelectAll: () => void;\n /** 展开所有 */\n onExpandedAll: () => void;\n /** 取消展开所有 */\n onCancelExpandedAll: () => void;\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>(\n (props, ref) => {\n const {\n style,\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n onDropNodeHandle,\n onDropPrev,\n labelRender,\n searchStyle,\n className,\n defaultExpandAll,\n menus,\n customSearchRule,\n checkableType,\n ...otherProps\n } = props;\n // eslint-disable-next-line no-prototype-builtins\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<\n Array<string | number>\n >([]);\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const searchTypeHighlight = searchResultType === 'highlight';\n const fieldNames = useMemo(() => {\n return {\n label: 'label',\n value: 'value',\n children: 'children',\n ...props.fieldNames,\n };\n }, [props.fieldNames]);\n const menuLayoutTypeNew =\n menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew =\n menuTriggerType === undefined ? 'click' : menuTriggerType;\n const responseFirstRef = useRef(true);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<\n string | undefined\n >();\n\n const valueList = useMemo(() => {\n return getVauleList(value, labelInValueFieldNamesMerge);\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeList.length > 0) {\n if (responseFirstRef.current && isUndefinedOrNull(value)) {\n responseFirstRef.current = false;\n if (defaultExpandAll) {\n setTreeExpandedKeys(\n getDefaultExpandAllKeys(state.treeList, fieldNames)\n );\n return;\n } else if (initRootExpand && state.treeList.length) {\n setTreeExpandedKeys([state.treeList[0][fieldNames.value]]);\n return;\n }\n }\n if (!isUndefinedOrNull(value)) {\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(\n Array.from(new Set(treeExpandedKeys?.concat(expandedKeys)))\n );\n }\n }\n }, [value, state.treeList, valueList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n let result: TPlainObject[] = respData;\n if (newServiceConfig.onRequestResultAdapter) {\n result = newServiceConfig.onRequestResultAdapter(\n respData as unknown as TPlainObject\n );\n } else if (fieldNames.list) {\n result = get(respData, fieldNames.list, []) || [];\n }\n if (!isArray(result)) {\n console.warn(\n '接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析'\n );\n return [];\n }\n return result;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n void actions.changeRequestStatus({\n status: 'no-dependencies-params',\n });\n console.warn(\n `TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`\n );\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus({\n status: 'request-progress',\n });\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respDataListNew = serviceResponseHandle(_respData);\n if (respDataListNew.length === 0) {\n responseFirstRef.current = false;\n }\n onChangeSelectorList(respDataListNew);\n setLoading(false);\n\n window[requestPreKey] = false;\n } catch (error: TAny) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus({\n status: 'request-error',\n errorMessage: error.message,\n });\n }\n } catch (error: TAny) {\n responseFirstRef.current = false;\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (newEffectDependencyList.length) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus({ status: 'request-success' });\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = (\n valueList: Array<string | number>,\n refresh?: boolean\n ) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetKeys = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetKeys);\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const targetList = state.treeTiledArray.filter((item) => {\n const labelValue = (item[fieldNames.label] || '') as string;\n if (customSearchRule) {\n return customSearchRule(item, treeSearchValue);\n }\n return String(labelValue)\n .toLowerCase()\n .includes(treeSearchValue.toLowerCase());\n });\n const treeExpandedKeysNew = getTreeExpandedKeys(\n targetList.map((item) => item[fieldNames.value]),\n true\n );\n setTreeExpandedKeys(Array.from(new Set(treeExpandedKeysNew)));\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n onChangeExpandedKeys: (dataList) => {\n setTreeExpandedKeys(dataList);\n },\n onSelectAll: () => {\n const targetList = state.treeTiledArray.map(\n (temp) => temp[fieldNames.value]\n );\n setTreeExpandedKeys(targetList);\n onChange?.(targetList, undefined, state.treeList, undefined);\n },\n onCancelSelectAll: () => {\n setTreeExpandedKeys([]);\n onChange?.(undefined);\n },\n onExpandedAll: () => {\n const targetList = state.treeTiledArray.map(\n (temp) => temp[fieldNames.value]\n );\n setTreeExpandedKeys(targetList);\n },\n onCancelExpandedAll: () => {\n setTreeExpandedKeys([]);\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onInnerChange = (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n operateInfo?: TPlainObject\n ) => {\n if (toArray(selectedKey).length === 0) {\n const nodeValue = operateInfo?.node[fieldNames.value];\n const target = state.treeTiledArrayMap[nodeValue];\n props.onChange?.(undefined, target, [target], operateInfo);\n } else {\n props.onChange?.(\n selectedKey,\n operateNodeData,\n operateAllNodeDataList,\n operateInfo\n );\n }\n };\n\n const onTreeChangeHandle = hooks.useCallbackRef(\n (checkedData, operateInfo) => {\n // 最终checkValueList\n let finalCheckedValueList: Array<number | string> = [];\n // 完整checkValueList\n let completeCheckedValueList: Array<number | string> = [];\n\n if (checkable) {\n finalCheckedValueList = props.checkStrictly\n ? checkedData.checked\n : checkedData;\n } else {\n finalCheckedValueList = checkedData;\n }\n finalCheckedValueList = toArray(finalCheckedValueList);\n\n if (checkable == false) {\n completeCheckedValueList = finalCheckedValueList;\n } else {\n if (showSearch && treeSearchValue && !searchTypeHighlight) {\n // 数据源被过滤情况\n const operateNode = operateInfo?.node;\n if (props.checkStrictly) {\n if (operateInfo.checked == false) {\n finalCheckedValueList = valueList.filter(\n (item) => item != operateNode[fieldNames.value]\n );\n } else {\n finalCheckedValueList = Array.from(\n new Set([...valueList, ...finalCheckedValueList])\n );\n }\n completeCheckedValueList = finalCheckedValueList;\n } else {\n // 非checkStrictly=true情况\n const propsCompleteValues =\n checkableType === '2' || checkableType === '3'\n ? completionParentChildrenNode(\n valueList,\n state.treeTiledArrayMap,\n fieldNames.children,\n fieldNames.value\n )\n : valueList;\n if (operateInfo.checked == false) {\n finalCheckedValueList = removeTargetNodeAndAllChildrenNode(\n [...propsCompleteValues],\n operateNode,\n fieldNames.children,\n fieldNames.value\n );\n } else {\n finalCheckedValueList = Array.from(\n new Set([...propsCompleteValues, ...finalCheckedValueList])\n );\n }\n completeCheckedValueList = getActualSelectKeyList(\n finalCheckedValueList,\n state.treeTiledArrayMap,\n fieldNames.children,\n fieldNames.value\n );\n }\n } else {\n // 无搜索情况\n completeCheckedValueList = finalCheckedValueList;\n }\n\n if (!props.checkStrictly) {\n if (checkableType === '2') {\n finalCheckedValueList = removeAllParentNode(\n completeCheckedValueList,\n state.treeTiledArrayMap,\n fieldNames.children\n );\n } else if (checkableType === '3') {\n finalCheckedValueList = removeAllSelectLeafNode(\n completeCheckedValueList,\n state.treeTiledArrayMap,\n fieldNames.children,\n fieldNames.value\n );\n } else if (checkableResponseParentNode == false) {\n finalCheckedValueList = removeAllParentNode(\n completeCheckedValueList,\n state.treeTiledArrayMap,\n fieldNames.children\n );\n } else {\n finalCheckedValueList = completeCheckedValueList;\n }\n }\n }\n\n const completeCheckedItemList = completeCheckedValueList.map((item) => {\n return state.treeTiledArrayMap[item];\n });\n if (labelInValue) {\n const lvValue = labelInValueFieldNamesMerge.value;\n const lvLabel = labelInValueFieldNamesMerge.label;\n const finalCheckedList = finalCheckedValueList.map((item) => {\n return {\n [lvLabel]: state.treeTiledArrayMap[item][fieldNames.label],\n [lvValue]: state.treeTiledArrayMap[item][fieldNames.value],\n };\n });\n if (checkable) {\n onInnerChange(\n finalCheckedList,\n finalCheckedValueList.map((item) => {\n return state.treeTiledArrayMap[item];\n }),\n completeCheckedItemList,\n operateInfo\n );\n } else {\n onInnerChange(\n finalCheckedList[0],\n state.treeTiledArrayMap[finalCheckedValueList[0]],\n completeCheckedItemList,\n operateInfo\n );\n }\n } else {\n if (checkable) {\n onInnerChange(\n finalCheckedValueList,\n finalCheckedValueList.map((item) => {\n return state.treeTiledArrayMap[item];\n }),\n completeCheckedItemList,\n operateInfo\n );\n } else {\n onInnerChange(\n finalCheckedValueList[0],\n state.treeTiledArrayMap[finalCheckedValueList[0]],\n completeCheckedItemList,\n operateInfo\n );\n }\n }\n }\n );\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const originalDataList = useMemo(() => {\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n const resultList = treeFilter(\n cloneState(state.treeList || []),\n (node) => {\n if (customSearchRule) {\n return customSearchRule(node, treeSearchValue);\n }\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n },\n { childrenName: fieldNames.children }\n );\n return resultList;\n }\n return list;\n }, [\n customSearchRule,\n fieldNames.children,\n fieldNames.label,\n searchResultType,\n state.treeList,\n treeSearchValue,\n ]);\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = (adapterItem[fieldNames.label] || '') as string;\n let titleDom;\n if (treeSearchValue && isString(strTitle)) {\n const strTitleNew = strTitle?.toLowerCase();\n const index = strTitleNew.indexOf(treeSearchValue.toLowerCase());\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n const centerStr = strTitle.slice(\n index,\n index + treeSearchValue.length\n );\n titleDom =\n index > -1 ? (\n <span\n className={classNames({\n 'v-tree-item-disabled': adapterItem.disabled,\n })}\n >\n {beforeStr}\n <span className=\"site-tree-search-value\">{centerStr}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom && adapterItem.disabled) {\n titleDom = (\n <span\n className={classNames({\n 'v-tree-item-disabled': adapterItem.disabled,\n })}\n >\n {strTitle}\n </span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom || strTitle,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]:\n isArray(children) && children.length > 0\n ? loop(children)\n : undefined,\n };\n });\n return loop(originalDataList);\n }, [\n originalDataList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem) || {}\n );\n const respDataList = (\n props.loadDataServiceConfig?.onRequestResultAdapter\n ? props.loadDataServiceConfig.onRequestResultAdapter(\n respData as unknown as TPlainObject\n )\n : respData\n ) as TPlainObject[];\n\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error: TAny) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n const buttonOperateConfig = menus?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n if (buttonOperateConfig?.operateList.length) {\n return (\n <Fragment>\n <span className=\"tree-item-title\">\n {labelRender?.(nodeData) || nodeData?.[fieldNames.label]}\n </span>\n <ButtonOperate\n gap={5}\n {...buttonOperateConfig}\n dropdownMenuProps={{\n placement: 'bottomRight',\n isFixed: true,\n ...buttonOperateConfig?.dropdownMenuProps,\n }}\n className={classNames(\n 'tree-item-title-operate',\n buttonOperateConfig.className\n )}\n />\n </Fragment>\n );\n }\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">\n {labelRender?.(nodeData) || nodeData?.[fieldNames.label]}\n </span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper\n menuList={menuOptions}\n placement=\"bottomRight\"\n >\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n\n return (\n <Fragment>\n <span className=\"tree-item-title\">\n {labelRender?.(nodeData) || nodeData?.[fieldNames.label]}\n </span>\n {menuOptions ? (\n <ButtonOperate\n gap={5}\n {...menuOptions}\n className={classNames(\n 'tree-item-title-operate',\n menuOptions.className\n )}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n }\n );\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return {\n title: fieldNames.label,\n key: fieldNames.value,\n children: fieldNames.children,\n };\n }, [fieldNames]);\n const showTree =\n treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n onDrop: (info) => {\n if (onDropPrev) {\n const boo = onDropPrev(info);\n if (!boo) return;\n }\n const { dataList, dragNodeData } = onTreeDrop(\n originalDataList,\n fieldNames,\n info\n );\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n expandedKeys: treeExpandedKeys,\n ...otherProps,\n fieldNames: treeFieldNames,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%' },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n checkedKeys: valueList,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n selectedKeys: valueList,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames(\n 'v-tree-wrapper',\n `v-tree-wrapper-menu-${menuTriggerTypeNew}`,\n className\n );\n const isSearchEmpty =\n state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName} style={style}>\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\" style={searchStyle}>\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={\n isUndefinedOrNull(searchPlaceholder)\n ? '搜索'\n : searchPlaceholder\n }\n onChange={onSearchChange}\n value={treeSearchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">\n {props.searchExtraElement}\n </span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree\n {...sceneProps}\n {...commonProps}\n className=\"v-tree-wrapper-tree\"\n ></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n 'request-error': state.requestErrorMessage,\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n }\n);\n","import type { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport type { TPlainObject } from '@flatbiz/utils';\nimport { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { getTreeDataList } from './hooks.js';\nimport type { TreeWrapperProps, TreeWrapperRefApi } from './tree-wrapper.jsx';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper.jsx';\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper: ForwardRefExoticComponent<\n TreeWrapperProps & RefAttributes<TreeWrapperRefApi>\n> & {\n getTreeDataList: (modelKey: string) => TPlainObject[];\n} = attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\n});\n\nexport type { TreeServiceConfig, TreeWrapperProps } from './tree-wrapper.jsx';\n"],"names":["defaultState","treeList","treeTiledArray","treeTiledArrayMap","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","arrayToMap","valueName","requestStatus","resetTreeList","changeRequestStatus","status","requestErrorMessage","errorMessage","undefined","treeListAppendChildren","tiledArray","target","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getTreeDataList","modelKey","getState","getDefaultExpandAllKeys","fieldNames","allValues","children","filter","item","childrenValue","map","getExpandedKeys","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","id","_walkThroughTree","_defineProperty","_parent","tileList","find","parentId","getActualSelectKeyList","checkedValueList","chidlrenKey","valueKey","leafValueDataMap","hasChildrenList","retainHasChildrenValueList","forEach","_treeTiledArrayMap$it","isNotEmptyArray","push","childrenTiledList","Object","keys","targetList","temp","removeTargetNodeAndAllChildrenNode","awitDeleteNode","awitDeleteTieldDataMap","treeToTiledMap","removeAllSelectLeafNode","awitDeleteCheckedValueMap","_treeTiledArrayMap$it2","childrenList","targetMap","_objectSpread","removeAllParentNode","completionParentChildrenNode","values","_toConsumableArray","_treeTiledArrayMap$it3","concat","Array","from","Set","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","customSearchRule","checkableType","otherProps","_objectWithoutProperties","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","_useState2","_slicedToArray","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_treeWrapperModel$use2","_fbaHooks$useSafeStat","fbaHooks","useSafeState","_fbaHooks$useSafeStat2","loading","setLoading","requestPreKey","searchTypeHighlight","useMemo","label","menuLayoutTypeNew","menuTriggerTypeNew","responseFirstRef","useRef","labelInValueFieldNamesMerge","_useState3","_useState4","treeSearchValue","setTreeSearchValue","valueList","useEffectCustom","current","expandedKeys","getTreeExpandedKeys","valueIsEmpty","serviceResponseHandle","respData","result","onRequestResultAdapter","list","_get","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","isEmpty","_newServiceConfig$onR","_respData","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","call","$await_5","onChangeSelectorList","allState","refresh","newTreeExpandedKeys","targetKeys","useUpdateEffect","labelValue","String","toLowerCase","includes","treeExpandedKeysNew","useImperativeHandle","onClearSelectorList","onChangeExpandedKeys","onSelectAll","onCancelSelectAll","onExpandedAll","onCancelExpandedAll","onExpand","onInnerChange","selectedKey","operateNodeData","operateAllNodeDataList","operateInfo","toArray","_props$onChange","nodeValue","_props$onChange2","onTreeChangeHandle","checkedData","finalCheckedValueList","completeCheckedValueList","checkStrictly","checked","operateNode","propsCompleteValues","completeCheckedItemList","lvValue","lvLabel","finalCheckedList","treeItemDataAdapterHandle","dataItem","originalDataList","resultList","treeFilter","_node$fieldNames$labe","indexOf","treeData","adapterItem","disabled","strTitle","titleDom","_isString","strTitleNew","beforeStr","substring","afterStr","slice","centerStr","_jsxs","_classNames","_jsx","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_props$loadDataServic3","_props$loadDataServic4","_props$loadDataServic5","respDataList","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_props$menuOptions3","_props$menuOptions3$t","stringLabel","_treeItemName","buttonOperateConfig","operateList","Fragment","ButtonOperate","gap","dropdownMenuProps","placement","isFixed","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_props$getMenuOptions","getMenuOptions","DropdownMenuWrapper","menuList","_MoreOutlined","tile","onChangeDebounce","useDebounceCallback","_props$onSearchValueC","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","checkedProps","onCheck","checkedKeys","selectedProps","onSelect","multiple","selectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","messageConfig","errorButton","Button","type","onClick","attachPropertiesToComponent","TreeWrapperInner"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { type TreeProps } from 'antd';\nimport { isArray } from '@dimjs/lang';\nimport { type API, type ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport type { TAny } from '@flatbiz/utils';\nimport {\n arrayToMap,\n type TPlainObject,\n treeToArray,\n type TSetDefaultDefined,\n} from '@flatbiz/utils';\nimport type { TRequestStatus } from '../request-status/index.js';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n treeTiledArrayMap: TPlainObject;\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n requestErrorMessage?: string;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n valueName: string;\n };\n resetTreeList: void;\n changeRequestStatus: {\n status: TRequestStatus;\n errorMessage?: string;\n };\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n treeTiledArrayMap: {},\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.treeTiledArrayMap = arrayToMap(\n state.treeTiledArray,\n params.valueName\n );\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n state.treeTiledArray = [];\n state.treeTiledArrayMap = {};\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params.status;\n if (params.status === 'request-error') {\n state.treeList = [];\n state.treeTiledArray = [];\n state.treeTiledArrayMap = {};\n state.requestErrorMessage = params.errorMessage || '数据查询异常';\n } else {\n state.requestErrorMessage = undefined;\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const tiledArray = treeToArray(state.treeList, params.childrenName);\n const treeTiledArrayMap = arrayToMap(tiledArray, params.valueName);\n const target = treeTiledArrayMap[params.value];\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = tiledArray;\n state.treeTiledArrayMap = treeTiledArrayMap;\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<\n string,\n API<ModelType<ModelState, ModelActionParams, TAny>>\n> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { type TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model.js';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { type DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { walkThroughTree } from '@dimjs/utils';\nimport {\n isNotEmptyArray,\n isUndefinedOrNull,\n type LabelValueItem,\n type TAny,\n type TPlainObject,\n treeLeafParentsArray,\n treeToArray,\n treeToTiledArray,\n treeToTiledMap,\n} from '@flatbiz/utils';\n\nexport const getDefaultExpandAllKeys = (\n treeList: TPlainObject[],\n fieldNames: { label: string; value: string; children: string }\n) => {\n const allValues = treeToArray(treeList, fieldNames.children)\n .filter((item) => {\n const childrenValue = item[fieldNames.children] as TAny[] | undefined;\n return childrenValue && childrenValue.length > 0;\n })\n .map((item) => {\n return item[fieldNames.value];\n });\n return allValues as Array<string | number>;\n};\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames: { label: string; value: string; children: string }\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, {\n value: 'value',\n parentValue: 'parentValue',\n })\n .filter((item) => {\n const childrenValue = item[fieldNames.children] as TAny[] | undefined;\n return childrenValue && childrenValue.length > 0;\n })\n .map((item) => item.value);\n};\n\nexport const getVauleList = (\n data,\n labelInValueFieldNames: LabelValueItem<string | number>\n) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (\n data,\n labelInValueFieldNames: LabelValueItem<string | number>\n) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n return dequal(object1, object2);\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string }\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n\n/**\n * 由于树节点过滤后,选中了父节点不一定是全部子节点,此处进行筛查\n */\nexport const getActualSelectKeyList = (\n checkedValueList: Array<string | number>,\n treeTiledArrayMap: TPlainObject,\n chidlrenKey: string,\n valueKey: string\n) => {\n const leafValueDataMap: TPlainObject = {};\n const hasChildrenList: Array<string | number> = [];\n const retainHasChildrenValueList: Array<string | number> = [];\n checkedValueList.forEach((item) => {\n if (isNotEmptyArray(treeTiledArrayMap[item]?.[chidlrenKey])) {\n hasChildrenList.push(item);\n } else {\n leafValueDataMap[item] = item;\n }\n });\n if (hasChildrenList.length > 0) {\n hasChildrenList.forEach((item) => {\n const childrenTiledList = treeToArray(\n treeTiledArrayMap[item][chidlrenKey],\n chidlrenKey\n );\n if (Object.keys(leafValueDataMap).length > childrenTiledList.length) {\n const targetList = childrenTiledList.filter((item) => {\n return checkedValueList.find((temp) => temp === item[valueKey]);\n });\n if (targetList.length === childrenTiledList.length) {\n retainHasChildrenValueList.push(item);\n }\n }\n });\n }\n\n return checkedValueList.filter((item) => {\n return (\n retainHasChildrenValueList.find((temp) => temp == item) ||\n leafValueDataMap[item]\n );\n });\n};\n\n/** 移除指定节点以及所有子节点 */\nexport const removeTargetNodeAndAllChildrenNode = (\n checkedValueList: Array<string | number>,\n awitDeleteNode: TPlainObject,\n chidlrenKey: string,\n valueKey: string\n) => {\n const awitDeleteTieldDataMap: TPlainObject = treeToTiledMap(\n [awitDeleteNode],\n {\n value: valueKey,\n children: chidlrenKey,\n }\n );\n return checkedValueList.filter((item) => {\n return !awitDeleteTieldDataMap[item];\n });\n};\n\n/** 移除父节点全选下的叶子节点 */\nexport const removeAllSelectLeafNode = (\n checkedValueList: Array<string | number>,\n treeTiledArrayMap: TPlainObject,\n chidlrenKey: string,\n valueKey: string\n) => {\n let awitDeleteCheckedValueMap: TPlainObject = {};\n checkedValueList.forEach((item) => {\n const childrenList = treeTiledArrayMap[item]?.[chidlrenKey];\n if (isNotEmptyArray(childrenList)) {\n // hasChildrenList.push(item);\n const targetMap = treeToTiledMap(childrenList, {\n value: valueKey,\n children: chidlrenKey,\n });\n awitDeleteCheckedValueMap = {\n ...awitDeleteCheckedValueMap,\n ...targetMap,\n };\n }\n });\n return checkedValueList.filter((item) => !awitDeleteCheckedValueMap[item]);\n};\n\n/** 移除所有的父节点 */\nexport const removeAllParentNode = (\n checkedValueList: Array<string | number>,\n treeTiledArrayMap: TPlainObject,\n chidlrenKey: string\n) => {\n return checkedValueList.filter((item) => {\n return !isNotEmptyArray(treeTiledArrayMap[item][chidlrenKey]);\n });\n};\n\n/** values中的数据可能存在缺少父节点下的子节点情况,此处补齐 */\nexport const completionParentChildrenNode = (\n values: Array<string | number>,\n treeTiledArrayMap: TPlainObject,\n chidlrenKey: string,\n valueKey: string\n) => {\n let allValues = [...values];\n values.forEach((item) => {\n const childrenList = treeTiledArrayMap[item]?.[chidlrenKey];\n if (isNotEmptyArray(childrenList)) {\n const targetList = treeToArray(childrenList, chidlrenKey);\n allValues = allValues.concat(targetList.map((temp) => temp[valueKey]));\n }\n });\n return Array.from(new Set(allValues));\n};\n","import {\n type CSSProperties,\n type DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n type ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Button, message, Spin, Tree, type TreeProps } from 'antd';\nimport { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray, isString } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { arrayRemove, classNames, extend, get } from '@dimjs/utils';\nimport {\n dom,\n isUndefinedOrNull,\n type TAny,\n toArray,\n type TPlainObject,\n treeFilter,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport {\n ButtonOperate,\n type ButtonOperateItem,\n type ButtonOperateProps,\n} from '../button-operate/index.js';\nimport type { DropdownMenuItem } from '../dropdown-menu-wrapper/index.js';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper/index.js';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { InputSearchWrapper } from '../input-search-wrapper/index.js';\nimport type { TRequestStatusProps } from '../request-status/index.js';\nimport { RequestStatus } from '../request-status/index.js';\nimport { treeWrapperModel } from './model.js';\nimport {\n completionParentChildrenNode,\n getActualSelectKeyList,\n getDefaultExpandAllKeys,\n getExpandedKeys,\n getVauleList,\n onTreeDrop,\n removeAllParentNode,\n removeAllSelectLeafNode,\n removeTargetNodeAndAllChildrenNode,\n} from './utils.js';\nimport './style.less';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\nexport type TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\nexport type TreeLoadDataServiceConfig = {\n getParams?: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n | 'defaultCheckedKeys'\n | 'defaultExpandParent'\n | 'defaultSelectedKeys'\n> & {\n /** 唯一值,用于缓存数据 */\n modelKey: string;\n /**\n * 字段映射\n * ```\n * 默认值:\n * label = 'label'\n * value = 'value'\n * children = 'children'\n *\n * 如果未设置list,则说明接口返回数据为数组\n * 如果返回数据存在多级,可通过设置 list='a.b.list'\n * ```\n */\n fieldNames?: {\n label?: string;\n value?: string;\n children?: string;\n list?: string;\n };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n /**\n * 是否开启异步加载\n */\n loadDataFlag?: boolean;\n /**\n * 异步加载数据配置\n * ```\n * 1. 会通过fieldNames配置label、value、children进行转义\n * 2. fieldNames.list 配置在此处无效\n * ```\n */\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n /** 接口响应数据变更 */\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n extraData?: TPlainObject\n ) => void;\n\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * @description 已过期,请使用 checkableType 配置\n * ```\n * 注意:checkStrictly = true,checkableResponseParentNode配置失效\n * ```\n */\n checkableResponseParentNode?: boolean;\n /**\n * 节点选择类型(默认值:'2'), 多选时有效\n * ```\n * '1' 表示返回所有选中的节点(包含父节点和叶子节点)\n * '2' 表示只返回叶子节点\n * '3' 表示当叶子节点全选时,返回父节点,不返回下面的叶子节点\n *\n * 注意:checkStrictly = true,checkableType配置失效\n * ```\n */\n checkableType?: '1' | '2' | '3';\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (\n dataItem: TPlainObject\n ) => DropdownMenuItem[] | ButtonOperateItem[];\n /**\n * 根据 menuLayoutType 类型赋值\n * @deprecated 已过期 4.3.0版本移除,请使用 menuOptions\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n menus?: (dataItem) => ButtonOperateProps;\n\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n searchStyle?: CSSProperties;\n icon?: (data: {\n isParent: boolean;\n isLeaf: boolean;\n [key: string]: TAny;\n }) => ReactElement;\n /**\n * 状态文案配置\n */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n /**\n * 选择的节点数据,是否包含label信息\n * ```\n * 默认选择的节点只有value数据\n * ```\n */\n labelInValue?: boolean;\n /**\n * ```\n * @deprecated 废弃\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 拖拽结束位置父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 拖拽结束位置所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: {\n parentId?: string | number;\n id: string | number;\n index: number;\n }) => void;\n /**\n * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n /**\n * 自定义搜索规则\n */\n customSearchRule?: (nodeData: TPlainObject, searchValue?: string) => boolean;\n\n /**\n * 点击父节点 是否切换折叠\n * ```\n * 1. 设置 titleRender 后,此配置失效\n * ```\n */\n clickParentNodeToggleExpand?: boolean;\n /**\n * 禁用节点选中\n * ```\n * 1. checkable = true,此配置失效\n * 2. 在未设置节点 disabled 属性情况下,满足此配置不会触发onChange事件\n * ```\n */\n disableNodeSelect?: (item: TPlainObject) => boolean;\n /**\n * 是否必选,最后一个不能取消\n * ```\n * 1. 设置 checkable = true 时无效\n * ```\n */\n required?: boolean;\n};\n\nconst compareArrays = (arr1, arr2) => {\n const sortedArr1 = arr1.slice().sort();\n const sortedArr2 = arr2.slice().sort();\n return JSON.stringify(sortedArr1) === JSON.stringify(sortedArr2);\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n onChangeExpandedKeys: (expandedKeys: Array<string | number>) => void;\n /** 选择所有 */\n onSelectAll: () => void;\n /** 取消选择所有 */\n onCancelSelectAll: () => void;\n /** 展开所有 */\n onExpandedAll: () => void;\n /** 取消展开所有 */\n onCancelExpandedAll: () => void;\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>(\n (props, ref) => {\n const {\n style,\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n onDropNodeHandle,\n onDropPrev,\n labelRender,\n searchStyle,\n className,\n defaultExpandAll,\n menus,\n customSearchRule,\n checkableType,\n clickParentNodeToggleExpand,\n disableNodeSelect,\n required,\n ...otherProps\n } = props;\n // eslint-disable-next-line no-prototype-builtins\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<\n Array<string | number>\n >([]);\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const searchTypeHighlight = searchResultType === 'highlight';\n const fieldNames = useMemo(() => {\n return {\n label: 'label',\n value: 'value',\n children: 'children',\n ...props.fieldNames,\n };\n }, [props.fieldNames]);\n const menuLayoutTypeNew =\n menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew =\n menuTriggerType === undefined ? 'click' : menuTriggerType;\n const responseFirstRef = useRef(true);\n const innerValueListRef = useRef<any[] | undefined>(undefined);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<\n string | undefined\n >();\n\n const valueList = useMemo(() => {\n return getVauleList(value, labelInValueFieldNamesMerge);\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeList.length > 0) {\n if (responseFirstRef.current && isUndefinedOrNull(value)) {\n responseFirstRef.current = false;\n if (defaultExpandAll) {\n setTreeExpandedKeys(\n getDefaultExpandAllKeys(state.treeList, fieldNames)\n );\n return;\n } else if (initRootExpand && state.treeList.length) {\n setTreeExpandedKeys([state.treeList[0][fieldNames.value]]);\n return;\n }\n }\n if (!isUndefinedOrNull(value)) {\n if (\n innerValueListRef.current &&\n !compareArrays(valueList, innerValueListRef.current)\n ) {\n const innerExpandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(\n Array.from(new Set(treeExpandedKeys?.concat(innerExpandedKeys)))\n );\n }\n }\n }\n }, [state.treeList, JSON.stringify(valueList)]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n let result: TPlainObject[] = respData;\n if (newServiceConfig.onRequestResultAdapter) {\n result = newServiceConfig.onRequestResultAdapter(\n respData as unknown as TPlainObject\n );\n } else if (fieldNames.list) {\n result = get(respData, fieldNames.list, []) || [];\n }\n if (!isArray(result)) {\n console.warn(\n '接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析'\n );\n return [];\n }\n return result;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n void actions.changeRequestStatus({\n status: 'no-dependencies-params',\n });\n console.warn(\n `TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`\n );\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus({\n status: 'request-progress',\n });\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respDataListNew = serviceResponseHandle(_respData);\n if (respDataListNew.length === 0) {\n responseFirstRef.current = false;\n }\n onChangeSelectorList(respDataListNew);\n setLoading(false);\n\n window[requestPreKey] = false;\n } catch (error: TAny) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus({\n status: 'request-error',\n errorMessage: error.message,\n });\n }\n } catch (error: TAny) {\n responseFirstRef.current = false;\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (newEffectDependencyList.length) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus({ status: 'request-success' });\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = (\n valueList: Array<string | number>,\n refresh?: boolean\n ) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetKeys = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetKeys);\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const targetList = state.treeTiledArray.filter((item) => {\n const labelValue = (item[fieldNames.label] || '') as string;\n if (customSearchRule) {\n return customSearchRule(item, treeSearchValue);\n }\n return String(labelValue)\n .toLowerCase()\n .includes(treeSearchValue.toLowerCase());\n });\n const treeExpandedKeysNew = getTreeExpandedKeys(\n targetList.map((item) => item[fieldNames.value]),\n true\n );\n setTreeExpandedKeys(Array.from(new Set(treeExpandedKeysNew)));\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n onChangeExpandedKeys: (dataList) => {\n setTreeExpandedKeys(dataList);\n },\n onSelectAll: () => {\n const targetList = state.treeTiledArray.map(\n (temp) => temp[fieldNames.value]\n );\n setTreeExpandedKeys(targetList);\n onChange?.(targetList, undefined, state.treeList, undefined);\n },\n onCancelSelectAll: () => {\n setTreeExpandedKeys([]);\n onChange?.(undefined);\n },\n onExpandedAll: () => {\n const targetList = state.treeTiledArray.map(\n (temp) => temp[fieldNames.value]\n );\n setTreeExpandedKeys(targetList);\n },\n onCancelExpandedAll: () => {\n setTreeExpandedKeys([]);\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onInnerChange = (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n operateInfo?: TPlainObject\n ) => {\n innerValueListRef.current = toArray(selectedKey);\n if (toArray(selectedKey).length === 0) {\n const nodeValue = operateInfo?.node[fieldNames.value];\n const target = state.treeTiledArrayMap[nodeValue];\n props.onChange?.(undefined, target, [target], operateInfo);\n } else {\n props.onChange?.(\n selectedKey,\n operateNodeData,\n operateAllNodeDataList,\n operateInfo\n );\n }\n };\n\n const onTreeChangeHandle = hooks.useCallbackRef(\n (checkedData, operateInfo) => {\n // 最终checkValueList\n let finalCheckedValueList: Array<number | string> = [];\n // 完整checkValueList\n let completeCheckedValueList: Array<number | string> = [];\n\n if (checkable) {\n finalCheckedValueList = props.checkStrictly\n ? checkedData.checked\n : checkedData;\n } else {\n finalCheckedValueList = checkedData;\n if (required && !toArray(checkedData).length) {\n return;\n }\n if (disableNodeSelect) {\n const target = state.treeTiledArrayMap[checkedData[0]];\n const x = target ? disableNodeSelect(target) : false;\n if (x) {\n return;\n }\n }\n }\n finalCheckedValueList = toArray(finalCheckedValueList);\n\n if (!checkable) {\n completeCheckedValueList = finalCheckedValueList;\n } else {\n if (showSearch && treeSearchValue && !searchTypeHighlight) {\n // 数据源被过滤情况\n const operateNode = operateInfo?.node;\n if (props.checkStrictly) {\n if (operateInfo.checked == false) {\n finalCheckedValueList = valueList.filter(\n (item) => item != operateNode[fieldNames.value]\n );\n } else {\n finalCheckedValueList = Array.from(\n new Set([...valueList, ...finalCheckedValueList])\n );\n }\n completeCheckedValueList = finalCheckedValueList;\n } else {\n // 非checkStrictly=true情况\n const propsCompleteValues =\n checkableType === '2' || checkableType === '3'\n ? completionParentChildrenNode(\n valueList,\n state.treeTiledArrayMap,\n fieldNames.children,\n fieldNames.value\n )\n : valueList;\n if (operateInfo.checked == false) {\n finalCheckedValueList = removeTargetNodeAndAllChildrenNode(\n [...propsCompleteValues],\n operateNode,\n fieldNames.children,\n fieldNames.value\n );\n } else {\n finalCheckedValueList = Array.from(\n new Set([...propsCompleteValues, ...finalCheckedValueList])\n );\n }\n completeCheckedValueList = getActualSelectKeyList(\n finalCheckedValueList,\n state.treeTiledArrayMap,\n fieldNames.children,\n fieldNames.value\n );\n }\n } else {\n // 无搜索情况\n completeCheckedValueList = finalCheckedValueList;\n }\n\n if (!props.checkStrictly) {\n if (checkableType === '2') {\n finalCheckedValueList = removeAllParentNode(\n completeCheckedValueList,\n state.treeTiledArrayMap,\n fieldNames.children\n );\n } else if (checkableType === '3') {\n finalCheckedValueList = removeAllSelectLeafNode(\n completeCheckedValueList,\n state.treeTiledArrayMap,\n fieldNames.children,\n fieldNames.value\n );\n } else if (checkableResponseParentNode == false) {\n finalCheckedValueList = removeAllParentNode(\n completeCheckedValueList,\n state.treeTiledArrayMap,\n fieldNames.children\n );\n } else {\n finalCheckedValueList = completeCheckedValueList;\n }\n }\n }\n\n const completeCheckedItemList = completeCheckedValueList.map((item) => {\n return state.treeTiledArrayMap[item];\n });\n if (labelInValue) {\n const lvValue = labelInValueFieldNamesMerge.value;\n const lvLabel = labelInValueFieldNamesMerge.label;\n const finalCheckedList = finalCheckedValueList.map((item) => {\n return {\n [lvLabel]: state.treeTiledArrayMap[item][fieldNames.label],\n [lvValue]: state.treeTiledArrayMap[item][fieldNames.value],\n };\n });\n if (checkable) {\n onInnerChange(\n finalCheckedList,\n finalCheckedValueList.map((item) => {\n return state.treeTiledArrayMap[item];\n }),\n completeCheckedItemList,\n operateInfo\n );\n } else {\n onInnerChange(\n finalCheckedList[0],\n state.treeTiledArrayMap[finalCheckedValueList[0]],\n completeCheckedItemList,\n operateInfo\n );\n }\n } else {\n if (checkable) {\n onInnerChange(\n finalCheckedValueList,\n finalCheckedValueList.map((item) => {\n return state.treeTiledArrayMap[item];\n }),\n completeCheckedItemList,\n operateInfo\n );\n } else {\n onInnerChange(\n finalCheckedValueList[0],\n state.treeTiledArrayMap[finalCheckedValueList[0]],\n completeCheckedItemList,\n operateInfo\n );\n }\n }\n }\n );\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const originalDataList = useMemo(() => {\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n const resultList = treeFilter(\n cloneState(state.treeList || []),\n (node) => {\n if (customSearchRule) {\n return customSearchRule(node, treeSearchValue);\n }\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n },\n { childrenName: fieldNames.children }\n );\n return resultList;\n }\n return list;\n }, [\n customSearchRule,\n fieldNames.children,\n fieldNames.label,\n searchResultType,\n state.treeList,\n treeSearchValue,\n ]);\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = (adapterItem[fieldNames.label] || '') as string;\n let titleDom;\n if (treeSearchValue && isString(strTitle)) {\n const strTitleNew = strTitle?.toLowerCase();\n const index = strTitleNew.indexOf(treeSearchValue.toLowerCase());\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n const centerStr = strTitle.slice(\n index,\n index + treeSearchValue.length\n );\n titleDom =\n index > -1 ? (\n <span\n className={classNames({\n 'v-tree-item-disabled': adapterItem.disabled,\n })}\n >\n {beforeStr}\n <span className=\"site-tree-search-value\">{centerStr}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom && adapterItem.disabled) {\n titleDom = (\n <span\n className={classNames({\n 'v-tree-item-disabled': adapterItem.disabled,\n })}\n >\n {strTitle}\n </span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom || strTitle,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]:\n isArray(children) && children.length > 0\n ? loop(children)\n : undefined,\n };\n });\n return loop(originalDataList);\n }, [\n originalDataList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem) || {}\n );\n const respDataList = (\n props.loadDataServiceConfig?.onRequestResultAdapter\n ? props.loadDataServiceConfig.onRequestResultAdapter(\n respData as unknown as TPlainObject\n )\n : respData\n ) as TPlainObject[];\n\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error: TAny) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n const buttonOperateConfig = menus?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n if (buttonOperateConfig?.operateList.length) {\n return (\n <Fragment>\n <span\n className=\"tree-item-title\"\n data-value={nodeData[fieldNames.value]}\n >\n {labelRender?.(nodeData) || nodeData?.[fieldNames.label]}\n </span>\n <ButtonOperate\n gap={5}\n {...buttonOperateConfig}\n dropdownMenuProps={{\n placement: 'bottomRight',\n isFixed: true,\n ...buttonOperateConfig?.dropdownMenuProps,\n }}\n className={classNames(\n 'tree-item-title-operate',\n buttonOperateConfig.className\n )}\n />\n </Fragment>\n );\n }\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span\n className=\"tree-item-title\"\n data-value={nodeData[fieldNames.value]}\n >\n {labelRender?.(nodeData) || nodeData?.[fieldNames.label]}\n </span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper\n menuList={menuOptions}\n placement=\"bottomRight\"\n >\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n\n return (\n <Fragment>\n <span\n className=\"tree-item-title\"\n data-value={nodeData[fieldNames.value]}\n >\n {labelRender?.(nodeData) || nodeData?.[fieldNames.label]}\n </span>\n {menuOptions ? (\n <ButtonOperate\n gap={5}\n {...menuOptions}\n className={classNames(\n 'tree-item-title-operate',\n menuOptions.className\n )}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n }\n );\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return {\n title: fieldNames.label,\n key: fieldNames.value,\n children: fieldNames.children,\n };\n }, [fieldNames]);\n const showTree =\n treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n onDrop: (info) => {\n if (onDropPrev) {\n const boo = onDropPrev(info);\n if (!boo) return;\n }\n const { dataList, dragNodeData } = onTreeDrop(\n originalDataList,\n fieldNames,\n info\n );\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n expandedKeys: treeExpandedKeys,\n ...otherProps,\n fieldNames: treeFieldNames,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%' },\n icon: iconHandle,\n onClick: (e) => {\n if (clickParentNodeToggleExpand) {\n let targetEle = e.target;\n let value = targetEle.dataset.value;\n if (isUndefinedOrNull(value)) {\n targetEle = dom.findParentsElement(e.target, (node: Element) => {\n return (\n node.classList?.contains('tree-item-title') ||\n node.classList?.contains('ant-tree-treenode')\n );\n });\n value = targetEle.dataset.value;\n }\n if (!isUndefinedOrNull(value)) {\n const target = state.treeTiledArrayMap[value];\n if (\n target?.[fieldNames.children] &&\n target[fieldNames.children].length > 0\n ) {\n const treeExpandedTarget = treeExpandedKeys.includes(value);\n if (treeExpandedTarget) {\n const newList = arrayRemove(treeExpandedKeys, value);\n setTreeExpandedKeys([...newList]);\n } else {\n setTreeExpandedKeys([...treeExpandedKeys, value]);\n }\n }\n }\n }\n },\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n checkedKeys: valueList,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n selectedKeys: valueList,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames(\n 'v-tree-wrapper',\n `v-tree-wrapper-menu-${menuTriggerTypeNew}`,\n className\n );\n const isSearchEmpty =\n state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName} style={style}>\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\" style={searchStyle}>\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={\n isUndefinedOrNull(searchPlaceholder)\n ? '搜索'\n : searchPlaceholder\n }\n onChange={onSearchChange}\n value={treeSearchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">\n {props.searchExtraElement}\n </span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree\n {...sceneProps}\n {...commonProps}\n className=\"v-tree-wrapper-tree\"\n ></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n 'request-error': state.requestErrorMessage,\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n }\n);\n","import type { ForwardRefExoticComponent, RefAttributes } from 'react';\nimport type { TPlainObject } from '@flatbiz/utils';\nimport { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { getTreeDataList } from './hooks.js';\nimport type { TreeWrapperProps, TreeWrapperRefApi } from './tree-wrapper.jsx';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper.jsx';\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper: ForwardRefExoticComponent<\n TreeWrapperProps & RefAttributes<TreeWrapperRefApi>\n> & {\n getTreeDataList: (modelKey: string) => TPlainObject[];\n} = attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\n});\n\nexport type { TreeServiceConfig, TreeWrapperProps } from './tree-wrapper.jsx';\n"],"names":["defaultState","treeList","treeTiledArray","treeTiledArrayMap","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","arrayToMap","valueName","requestStatus","resetTreeList","changeRequestStatus","status","requestErrorMessage","errorMessage","undefined","treeListAppendChildren","tiledArray","target","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getTreeDataList","modelKey","getState","getDefaultExpandAllKeys","fieldNames","allValues","children","filter","item","childrenValue","map","getExpandedKeys","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","id","_walkThroughTree","_defineProperty","_parent","tileList","find","parentId","getActualSelectKeyList","checkedValueList","chidlrenKey","valueKey","leafValueDataMap","hasChildrenList","retainHasChildrenValueList","forEach","_treeTiledArrayMap$it","isNotEmptyArray","push","childrenTiledList","Object","keys","targetList","temp","removeTargetNodeAndAllChildrenNode","awitDeleteNode","awitDeleteTieldDataMap","treeToTiledMap","removeAllSelectLeafNode","awitDeleteCheckedValueMap","_treeTiledArrayMap$it2","childrenList","targetMap","_objectSpread","removeAllParentNode","completionParentChildrenNode","values","_toConsumableArray","_treeTiledArrayMap$it3","concat","Array","from","Set","compareArrays","arr1","arr2","sortedArr1","slice","sort","sortedArr2","JSON","stringify","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","customSearchRule","checkableType","clickParentNodeToggleExpand","disableNodeSelect","required","otherProps","_objectWithoutProperties","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","_useState2","_slicedToArray","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_treeWrapperModel$use2","_fbaHooks$useSafeStat","fbaHooks","useSafeState","_fbaHooks$useSafeStat2","loading","setLoading","requestPreKey","searchTypeHighlight","useMemo","label","menuLayoutTypeNew","menuTriggerTypeNew","responseFirstRef","useRef","innerValueListRef","labelInValueFieldNamesMerge","_useState3","_useState4","treeSearchValue","setTreeSearchValue","valueList","useEffectCustom","current","innerExpandedKeys","getTreeExpandedKeys","valueIsEmpty","serviceResponseHandle","respData","result","onRequestResultAdapter","list","_get","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","isEmpty","_newServiceConfig$onR","_respData","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","call","$await_5","onChangeSelectorList","allState","refresh","newTreeExpandedKeys","targetKeys","useUpdateEffect","labelValue","String","toLowerCase","includes","treeExpandedKeysNew","useImperativeHandle","onClearSelectorList","onChangeExpandedKeys","onSelectAll","onCancelSelectAll","onExpandedAll","onCancelExpandedAll","onExpand","expandedKeys","onInnerChange","selectedKey","operateNodeData","operateAllNodeDataList","operateInfo","toArray","_props$onChange","nodeValue","_props$onChange2","onTreeChangeHandle","checkedData","finalCheckedValueList","completeCheckedValueList","checkStrictly","checked","x","operateNode","propsCompleteValues","completeCheckedItemList","lvValue","lvLabel","finalCheckedList","treeItemDataAdapterHandle","dataItem","originalDataList","resultList","treeFilter","_node$fieldNames$labe","indexOf","treeData","adapterItem","disabled","strTitle","titleDom","_isString","strTitleNew","beforeStr","substring","afterStr","centerStr","_jsxs","_classNames","_jsx","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_props$loadDataServic3","_props$loadDataServic4","_props$loadDataServic5","respDataList","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_props$menuOptions3","_props$menuOptions3$t","stringLabel","_treeItemName","buttonOperateConfig","operateList","Fragment","ButtonOperate","gap","dropdownMenuProps","placement","isFixed","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_props$getMenuOptions","getMenuOptions","DropdownMenuWrapper","menuList","_MoreOutlined","tile","onChangeDebounce","useDebounceCallback","_props$onSearchValueC","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","onClick","targetEle","dataset","dom","findParentsElement","_node$classList","_node$classList2","classList","contains","treeExpandedTarget","newList","_arrayRemove","checkedProps","onCheck","checkedKeys","selectedProps","onSelect","multiple","selectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","messageConfig","errorButton","Button","type","attachPropertiesToComponent","TreeWrapperInner"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "5.0.25",
3
+ "version": "5.0.27",
4
4
  "homepage": "https://gitlab.itcjf.com/flatjs-next/node-template-mono",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- {"version":3,"file":"cascader-wrapper-CTJ9a9jH.js","sources":["@flatbiz/antd/src/cascader-wrapper/utils.ts","@flatbiz/antd/src/cascader-wrapper/cascader-wrapper.tsx"],"sourcesContent":["import { isPlainObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\nexport const getValues = (value: any) => {\n const values = toArray(value);\n return values.map((item) => {\n return isPlainObject(item) ? item?.['value'] : item;\n });\n};\n","import type { ReactElement } from 'react';\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { CascaderProps } from 'antd';\nimport { Button, Cascader, Flex } from 'antd';\nimport { CloseCircleFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport type { LabelValueItem, TPlainObject } from '@flatbiz/utils';\nimport {\n isUndefinedOrNull,\n type TAny,\n treeNodeParentsList,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport type {\n TRequestStatus,\n TRequestStatusProps,\n} from '../request-status/request-status.jsx';\nimport { RequestStatus } from '../request-status/request-status.jsx';\nimport { getValues } from './utils.js';\nimport './style.less';\n\ntype CascaderWrapperServiceConfig = {\n params?: TPlainObject;\n onRequest?: (params?: TAny) => TAny;\n /** 响应数据适配器 */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n /** 必填字段设置 */\n requiredParamsKeys?: string[];\n};\n\nexport type CascaderWrapperProps = Omit<\n CascaderProps<TAny>,\n | 'loading'\n | 'notFoundContent'\n | 'options'\n | 'value'\n | 'multiple'\n | 'onChange'\n | 'fieldNames'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. 默认值:value=value、label=label、children=children\n * 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * 4. 如果没有配置list,可说明接口返回为数组\n * ```\n */\n fieldNames?: {\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n };\n /**\n * 请求服务需求的数据,当设置`selectorList`后无效果\n */\n serviceConfig?: CascaderWrapperServiceConfig;\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 是否动态加载选项\n */\n isDynamicLoad?: boolean;\n value?:\n | string\n | number\n | Array<string | number>\n | LabelValueItem\n | LabelValueItem[];\n onChange?: (\n value?: string | number | Array<string | number>,\n selectedList?: TPlainObject[]\n ) => void;\n /** 配置数据查询状态描述,比如有依赖字段描述 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * 选择数据响应类型(当用户选中后响应数据),默认值:last\n * ```\n * 1. last 响应选中的最后一级数据\n * 2. all 响应选中的多级数据\n * ```\n */\n responseType?: 'last' | 'all';\n /** 响应数据是否包含label、value */\n labelInValue?: boolean;\n};\n\nexport type CascaderWrapperRefApi = {\n getCascaderList: () => TPlainObject[];\n};\n/**\n * 级联选择器包装组件\n * ```\n * 1. 数据源中 value 不能重复\n * 2. 不支持多选\n * 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存\n * 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据\n * 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据\n * 6. @flatbiz/antd@5.0.25 删除 modelKey 字段\n * 7. serviceConfig.params 参数发生变化时,会重新请求数据\n * ```\n */\nexport const CascaderWrapper = forwardRef<\n CascaderWrapperRefApi,\n CascaderWrapperProps\n>((props, ref) => {\n const {\n serviceConfig,\n fieldNames,\n isDynamicLoad,\n requestMessageConfig,\n onSelectorListChange,\n responseType,\n labelInValue,\n ...otherProps\n } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n const [status, setStatus] = useState<TRequestStatus>('request-init');\n\n const requestMessageConfigRef = useRef(requestMessageConfig);\n\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const fieldNamesMerge = extend(\n true,\n { label: 'label', value: 'value', children: 'children' },\n fieldNames\n );\n const [valueList, setValueList] = useState<string[]>();\n\n const prevParams = fbaHooks.usePrevious(\n JSON.stringify(serviceConfig?.params || {})\n );\n\n const paramsStr = useMemo(() => {\n return JSON.stringify(serviceConfig?.params || {});\n }, [serviceConfig?.params]);\n\n useEffect(() => {\n requestMessageConfigRef.current = requestMessageConfig;\n }, [requestMessageConfig]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(\n respData as unknown as TPlainObject\n );\n }\n if (fieldNames?.list) {\n respData = get(respData, fieldNames?.list);\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据不是数组类型,已被忽略', respData);\n return [];\n }\n return respData;\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!serviceConfig?.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n try {\n const params = serviceConfig.params || {};\n // 判断必填参数是否完整\n if (serviceConfig?.requiredParamsKeys) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(params[item]);\n });\n if (target) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setDataList([]);\n setStatus('no-dependencies-params');\n if (props.value) {\n props.onChange?.(undefined);\n }\n return;\n }\n }\n setLoading(true);\n setStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(params);\n const respAdapterData = serviceRespDataAdapter(respData);\n if (isDynamicLoad) {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n }\n setLoading(false);\n setDataList(respAdapterData || []);\n onSelectorListChange?.(respAdapterData || []);\n } catch (error: TAny) {\n setLoading(false);\n requestMessageConfigRef.current = {\n ...requestMessageConfigRef.current,\n 'request-error': error.message || '获取数据异常',\n };\n setStatus('request-error');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const values = getValues(props.value) as Array<number | string>;\n if (values.length > 0) {\n if (responseType === 'all') {\n setValueList(values as string[]);\n } else {\n const filterList = treeNodeParentsList(\n values[0],\n dataList,\n true,\n fieldNamesMerge\n ).reverse();\n if (filterList.length === 0) {\n setValueList([props.value as string]);\n } else {\n setValueList(filterList as string[]);\n }\n }\n } else {\n setValueList(undefined);\n }\n }, [dataList, props.value]);\n\n useImperativeHandle(ref, () => {\n return {\n getCascaderList: () => {\n return dataList;\n },\n };\n });\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (paramsStr !== prevParams) {\n void startDataSourceRequest();\n }\n }\n }, [prevParams, paramsStr]);\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loadData = async (selectedOptions: TAny[]) => {\n const targetOption = selectedOptions[selectedOptions.length - 1];\n targetOption.loading = true;\n const respData = await serviceConfig?.onRequest?.({\n ...serviceConfig.params,\n [fieldNamesMerge.value]: targetOption[fieldNamesMerge.value],\n });\n const respAdapterData = serviceRespDataAdapter(respData);\n if (!respAdapterData || respAdapterData.length === 0) {\n targetOption.isLeaf = true;\n } else {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n targetOption.children = respAdapterData;\n }\n targetOption.loading = false;\n onSelectorListChange?.(dataList || []);\n setDataList([...dataList]);\n };\n\n const onChange = hooks.useCallbackRef(\n (values: Array<string | number>, selectList) => {\n if (labelInValue !== true) {\n if (responseType === 'all') {\n props.onChange?.(values, selectList);\n } else {\n props.onChange?.(values?.[values.length - 1], selectList);\n }\n } else {\n const labelInValueList = selectList?.map((item) => {\n return {\n label: item[fieldNamesMerge.label],\n value: item[fieldNamesMerge.value],\n };\n });\n if (responseType === 'all') {\n props.onChange?.(labelInValueList, selectList);\n } else {\n props.onChange?.(\n labelInValueList?.[labelInValueList.length - 1],\n selectList\n );\n }\n }\n }\n );\n\n const onClear = hooks.useCallbackRef(() => {\n void props.onChange?.(undefined);\n });\n\n return (\n <Cascader\n showSearch={true}\n allowClear={true}\n {...(otherProps as TAny)}\n popupClassName={classNames(\n 'cascader-wrapper-popup',\n otherProps.popupClassName\n )}\n notFoundContent={\n <RequestStatus\n status={status}\n loading={loading}\n messageConfig={requestMessageConfigRef.current}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest} ghost>\n 重新获取数据\n </Button>\n }\n />\n }\n loading={loading}\n loadData={isDynamicLoad ? loadData : undefined}\n fieldNames={fieldNamesMerge}\n suffixIcon={\n status === 'request-error' ? (\n <Flex style={{ display: 'inline-flex', gap: 10 }}>\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n <CloseCircleFilled style={{ color: '#ff4d4f' }} />\n </Flex>\n ) : undefined\n }\n options={dataList}\n value={valueList}\n multiple={false}\n onChange={onChange}\n onClear={onClear}\n />\n );\n});\n"],"names":["getValues","value","values","toArray","map","item","_isPlainObject","CascaderWrapper","forwardRef","props","ref","serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","dataList","setDataList","_useState3","_useState4","status","setStatus","requestMessageConfigRef","useRef","_fbaHooks$useSafeStat","fbaHooks","useSafeState","_fbaHooks$useSafeStat2","loading","setLoading","fieldNamesMerge","_extend","label","children","_useState5","_useState6","valueList","setValueList","prevParams","usePrevious","JSON","stringify","params","paramsStr","useMemo","useEffect","current","serviceRespDataAdapter","respData","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","_serviceConfig$onRequ","target","_props$onChange","respAdapterData","onRequest","Error","$Try_1_Post","$boundEx","$Try_1_Catch","error","_objectSpread","message","requiredParamsKeys","find","isUndefinedOrNull","onChange","call","undefined","resolve","then","$await_2","isLeaf","useEffectCustom","length","filterList","treeNodeParentsList","reverse","useImperativeHandle","getCascaderList","onAgainRequest","loadData","selectedOptions","_serviceConfig$onRequ2","targetOption","_defineProperty","$await_3","_toConsumableArray","selectList","_props$onChange2","_props$onChange3","labelInValueList","_props$onChange4","_props$onChange5","onClear","_props$onChange6","_jsx","Cascader","showSearch","allowClear","popupClassName","_classNames","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","onClick","ghost","suffixIcon","_jsxs","Flex","style","display","gap","_RedoOutlined","spin","_CloseCircleFilled","color","options","multiple"],"mappings":"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"}