@flatbiz/antd 4.5.40 → 4.5.42

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 (218) hide show
  1. package/esm/_rollupPluginBabelHelpers-c0dbec57.js +3 -0
  2. package/esm/_rollupPluginBabelHelpers-c0dbec57.js.map +1 -0
  3. package/esm/ace-editor-groovy/index.js +1 -1
  4. package/esm/ace-editor-groovy/index.js.map +1 -1
  5. package/esm/ace-editor-java/index.js +1 -1
  6. package/esm/ace-editor-java/index.js.map +1 -1
  7. package/esm/ace-editor-json/index.js +1 -1
  8. package/esm/ace-editor-json/index.js.map +1 -1
  9. package/esm/ace-editor-mysql/index.js +1 -1
  10. package/esm/ace-editor-mysql/index.js.map +1 -1
  11. package/esm/ace-editor-xml/index.js +1 -1
  12. package/esm/ace-editor-xml/index.js.map +1 -1
  13. package/esm/alert-wrapper/index.js +1 -1
  14. package/esm/amount-fen-input/index.js +1 -1
  15. package/esm/amount-fen-input/index.js.map +1 -1
  16. package/esm/amount-fen-input-form-item/index.js +1 -1
  17. package/esm/anchor-steps/index.js +1 -1
  18. package/esm/anchor-steps/index.js.map +1 -1
  19. package/esm/block-layout/index.js +1 -1
  20. package/esm/bootstrap/index.js +1 -1
  21. package/esm/box-grid/index.js +1 -1
  22. package/esm/box-grid/index.js.map +1 -1
  23. package/esm/button-operate/index.js +1 -1
  24. package/esm/button-operate/index.js.map +1 -1
  25. package/esm/button-wrapper/index.js +1 -1
  26. package/esm/card-layout/index.js +1 -1
  27. package/esm/card-wrapper/index.js +1 -1
  28. package/esm/cascader-wrapper/index.js +1 -2
  29. package/esm/cascader-wrapper/index.js.map +1 -1
  30. package/esm/check-list/index.js +1 -1
  31. package/esm/check-list/index.js.map +1 -1
  32. package/esm/checkbox-wrapper/index.js +1 -1
  33. package/esm/checkbox-wrapper/index.js.map +1 -1
  34. package/esm/color-picker-wrapper/index.js +1 -1
  35. package/esm/color-picker-wrapper/index.js.map +1 -1
  36. package/esm/config-provider-wrapper/index.js +1 -1
  37. package/esm/create-drawer-wrapper-model/index.js.map +1 -1
  38. package/esm/create-modal-wrapper-model/index.js.map +1 -1
  39. package/esm/css-node-hover/index.js +1 -1
  40. package/esm/date-picker-wrapper/index.js +1 -1
  41. package/esm/date-picker-wrapper/index.js.map +1 -1
  42. package/esm/date-range-picker-wrapper/index.js +1 -1
  43. package/esm/date-range-picker-wrapper/index.js.map +1 -1
  44. package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
  45. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  46. package/esm/delete-node/index.js +1 -1
  47. package/esm/dialog-alert/index.js +1 -1
  48. package/esm/dialog-alert/index.js.map +1 -1
  49. package/esm/dialog-confirm/index.js +1 -1
  50. package/esm/dialog-confirm/index.js.map +1 -1
  51. package/esm/dialog-drawer/index.js +1 -1
  52. package/esm/dialog-drawer/index.js.map +1 -1
  53. package/esm/dialog-drawer-content/index.js +1 -1
  54. package/esm/dialog-loading/index.js +1 -1
  55. package/esm/dialog-loading/index.js.map +1 -1
  56. package/esm/dialog-modal/index.js +1 -1
  57. package/esm/dialog-modal/index.js.map +1 -1
  58. package/esm/dialog-preview-image/index.js +1 -1
  59. package/esm/dialog-preview-image/index.js.map +1 -1
  60. package/esm/drag-collapse/index.js +1 -1
  61. package/esm/drag-collapse/index.js.map +1 -1
  62. package/esm/drag-collapse-form-list/index.js +1 -1
  63. package/esm/drag-collapse-form-list/index.js.map +1 -1
  64. package/esm/drag-editable-card/index.js +1 -1
  65. package/esm/drag-editable-card/index.js.map +1 -1
  66. package/esm/drag-editable-table/index.js +1 -1
  67. package/esm/drag-editable-table/index.js.map +1 -1
  68. package/esm/drag-editable-table-pro/index.js +1 -1
  69. package/esm/drag-editable-table-pro/index.js.map +1 -1
  70. package/esm/drag-form-list/index.js +1 -1
  71. package/esm/drag-form-list/index.js.map +1 -1
  72. package/esm/drag-table/index.js +1 -1
  73. package/esm/drag-table/index.js.map +1 -1
  74. package/esm/drawer-wrapper/index.js +1 -1
  75. package/esm/dropdown-menu-wrapper/index.js +1 -1
  76. package/esm/dynamic-node/index.js +1 -1
  77. package/esm/dynamic-node/index.js.map +1 -1
  78. package/esm/easy-form/index.js +1 -1
  79. package/esm/easy-form/index.js.map +1 -1
  80. package/esm/easy-table/index.css +1 -1
  81. package/esm/easy-table/index.js +1 -1
  82. package/esm/easy-table/index.js.map +1 -1
  83. package/esm/editable-card/index.js +1 -1
  84. package/esm/editable-card/index.js.map +1 -1
  85. package/esm/editable-field/index.js +1 -1
  86. package/esm/editable-field/index.js.map +1 -1
  87. package/esm/editable-table/index.js +1 -1
  88. package/esm/editable-table/index.js.map +1 -1
  89. package/esm/editable-table-pro/index.js +1 -1
  90. package/esm/editable-table-pro/index.js.map +1 -1
  91. package/esm/editor-wrapper/index.js +1 -1
  92. package/esm/editor-wrapper/index.js.map +1 -1
  93. package/esm/error-boundary-wrapper/index.js +1 -1
  94. package/esm/error-boundary-wrapper/index.js.map +1 -1
  95. package/esm/fba-app/index.js +1 -1
  96. package/esm/fba-app/index.js.map +1 -1
  97. package/esm/fba-hooks/index.js +1 -1
  98. package/esm/file-export/index.js +1 -1
  99. package/esm/file-export/index.js.map +1 -1
  100. package/esm/file-import/index.js +1 -1
  101. package/esm/file-select/index.js +1 -1
  102. package/esm/file-select/index.js.map +1 -1
  103. package/esm/flex-layout/index.js +1 -1
  104. package/esm/form-grid/index.js +1 -1
  105. package/esm/form-item-group/index.js +1 -1
  106. package/esm/form-item-span/index.js +1 -1
  107. package/esm/form-item-text/index.js +1 -1
  108. package/esm/form-item-text/index.js.map +1 -1
  109. package/esm/form-item-wrapper/index.js +1 -1
  110. package/esm/form-item-wrapper/index.js.map +1 -1
  111. package/esm/form-item-wrapper-dependencies/index.js +1 -1
  112. package/esm/form-list-wrapper/index.js +1 -1
  113. package/esm/form-list-wrapper/index.js.map +1 -1
  114. package/esm/form-wrapper/index.js +1 -1
  115. package/esm/gap/index.js +1 -1
  116. package/esm/icon-wrapper/index.css +1 -1
  117. package/esm/icon-wrapper/index.js +1 -1
  118. package/esm/icon-wrapper/index.js.map +1 -1
  119. package/esm/{index-7f4ad045.js → index-83bede1b.js} +2 -2
  120. package/esm/{index-7f4ad045.js.map → index-83bede1b.js.map} +1 -1
  121. package/esm/index.js +2 -2
  122. package/esm/input-search-wrapper/index.js +1 -1
  123. package/esm/input-search-wrapper/index.js.map +1 -1
  124. package/esm/input-text-area-wrapper/index.js +1 -1
  125. package/esm/input-text-area-wrapper/index.js.map +1 -1
  126. package/esm/input-wrapper/index.js +1 -1
  127. package/esm/input-wrapper/index.js.map +1 -1
  128. package/esm/json-editor/index.js +1 -1
  129. package/esm/json-editor/index.js.map +1 -1
  130. package/esm/label-value-layout/index.js +1 -1
  131. package/esm/label-value-render/index.js +1 -1
  132. package/esm/local-loading/index.js +1 -1
  133. package/esm/local-loading/index.js.map +1 -1
  134. package/esm/mention-editor/index.js +1 -1
  135. package/esm/mention-editor/index.js.map +1 -1
  136. package/esm/mentions-wrapper/index.js +1 -1
  137. package/esm/mentions-wrapper/index.js.map +1 -1
  138. package/esm/modal-action/index.js +1 -1
  139. package/esm/modal-wrapper/index.js +1 -1
  140. package/esm/number-range-form-item/index.js +1 -1
  141. package/esm/number-range-form-item/index.js.map +1 -1
  142. package/esm/pagination-wrapper/index.js +1 -1
  143. package/esm/pdf/index.js +1 -1
  144. package/esm/pdf/index.js.map +1 -1
  145. package/esm/pdf-preview/index.js +1 -1
  146. package/esm/pdf-preview/index.js.map +1 -1
  147. package/esm/radio-group-wrapper/index.js +1 -1
  148. package/esm/radio-group-wrapper/index.js.map +1 -1
  149. package/esm/relation-tree/index.js +1 -1
  150. package/esm/relation-tree/index.js.map +1 -1
  151. package/esm/rich-text-editor/index.js +1 -1
  152. package/esm/rich-text-editor/index.js.map +1 -1
  153. package/esm/rich-text-viewer/index.js +1 -1
  154. package/esm/rich-text-viewer/index.js.map +1 -1
  155. package/esm/roll-location-center/index.js +1 -1
  156. package/esm/roll-location-center/index.js.map +1 -1
  157. package/esm/roll-location-in-view/index.js +1 -1
  158. package/esm/roll-location-in-view/index.js.map +1 -1
  159. package/esm/rule-describe/index.js +1 -1
  160. package/esm/search-form/index.js +1 -1
  161. package/esm/search-form/index.js.map +1 -1
  162. package/esm/search-menu/index.js +1 -1
  163. package/esm/search-menu/index.js.map +1 -1
  164. package/esm/selector-wrapper/index.js +1 -1
  165. package/esm/selector-wrapper/index.js.map +1 -1
  166. package/esm/selector-wrapper-search/index.js +1 -1
  167. package/esm/selector-wrapper-search/index.js.map +1 -1
  168. package/esm/selector-wrapper-simple/index.js +1 -1
  169. package/esm/selector-wrapper-simple/index.js.map +1 -1
  170. package/esm/simple-layout/index.js +1 -1
  171. package/esm/sms-count-down/index.js +1 -1
  172. package/esm/sms-count-down/index.js.map +1 -1
  173. package/esm/split-wrapper/index.js +1 -1
  174. package/esm/svg-http-view/index.js +1 -1
  175. package/esm/switch-confirm-wrapper/index.js +1 -1
  176. package/esm/switch-confirm-wrapper/index.js.map +1 -1
  177. package/esm/switch-wrapper/index.js +1 -1
  178. package/esm/switch-wrapper/index.js.map +1 -1
  179. package/esm/table-cell-render/index.js +1 -1
  180. package/esm/table-scrollbar/index.js +1 -1
  181. package/esm/table-scrollbar/index.js.map +1 -1
  182. package/esm/tabs-sticky/index.js +1 -1
  183. package/esm/tabs-sticky/index.js.map +1 -1
  184. package/esm/tabs-wrapper/index.js +1 -1
  185. package/esm/tabs-wrapper/index.js.map +1 -1
  186. package/esm/tag-group/index.js +1 -1
  187. package/esm/tag-list-render/index.js +1 -1
  188. package/esm/tag-list-render/index.js.map +1 -1
  189. package/esm/tag-wrapper/index.js +1 -1
  190. package/esm/text-css-ellipsis/index.js +1 -1
  191. package/esm/text-css-ellipsis/index.js.map +1 -1
  192. package/esm/text-overflow/index.js +1 -1
  193. package/esm/text-overflow-render/index.js +1 -1
  194. package/esm/text-symbol-wrapper/index.js +1 -1
  195. package/esm/time-picker-wrapper/index.js +1 -1
  196. package/esm/time-picker-wrapper/index.js.map +1 -1
  197. package/esm/time-range-picker-wrapper/index.js +1 -1
  198. package/esm/time-range-picker-wrapper/index.js.map +1 -1
  199. package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
  200. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  201. package/esm/tips-title/index.js +1 -1
  202. package/esm/tips-wrapper/index.js +1 -1
  203. package/esm/tree-modal/index.js +1 -1
  204. package/esm/tree-modal/index.js.map +1 -1
  205. package/esm/tree-modal-selector/index.js +1 -1
  206. package/esm/tree-modal-selector/index.js.map +1 -1
  207. package/esm/tree-selector-wrapper/index.js +1 -1
  208. package/esm/tree-selector-wrapper/index.js.map +1 -1
  209. package/esm/tree-wrapper/index.js +1 -1
  210. package/esm/tree-wrapper/index.js.map +1 -1
  211. package/esm/upload-wrapper/index.js +1 -1
  212. package/esm/upload-wrapper/index.js.map +1 -1
  213. package/esm/x-mind-preview/index.js +1 -1
  214. package/esm/x-mind-preview/index.js.map +1 -1
  215. package/index.d.ts +61 -68
  216. package/package.json +1 -1
  217. package/esm/_rollupPluginBabelHelpers-a0769acd.js +0 -3
  218. package/esm/_rollupPluginBabelHelpers-a0769acd.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-modal/select-item.tsx","@flatbiz/antd/src/tree-modal/tree.tsx","@flatbiz/antd/src/tree-modal/horizontal.tsx","@flatbiz/antd/src/tree-modal/vertical.tsx","@flatbiz/antd/src/tree-modal/select-modal-content.tsx","@flatbiz/antd/src/tree-modal/select-modal.tsx","@flatbiz/antd/src/tree-modal/index.ts"],"sourcesContent":["import { CloseOutlined } from '@ant-design/icons';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { CssNodeHover } from '../css-node-hover';\nimport { FlexLayout } from '../flex-layout';\nimport { IconWrapper } from '../icon-wrapper';\nimport { TextOverflow } from '../text-overflow';\nimport type { TreeModalProps } from './types';\n\nexport const SelectItemList = (props: {\n chenkedIdList: TPlainObject[];\n fieldNames: TreeModalProps['fieldNames'];\n onDeleteItem: (value: TAny) => void;\n}) => {\n const chenkedIdList = props.chenkedIdList;\n return (\n <Fragment>\n {chenkedIdList?.map((item) => {\n const value = item.value;\n const label = item.label || value;\n\n return (\n <CssNodeHover style={{ paddingLeft: 5, paddingRight: 0 }} key={value}>\n <FlexLayout\n fullIndex={1}\n direction=\"horizontal\"\n style={{\n alignItems: 'center',\n fontSize: 14,\n marginBottom: 0,\n color: '#505050',\n }}\n >\n <TextOverflow text={label} />\n <div\n style={{\n position: 'relative',\n zIndex: 9,\n color: '#a1a1a1',\n }}\n >\n <IconWrapper\n text={<CloseOutlined />}\n onClick={props.onDeleteItem.bind(null, value)}\n size=\"small\"\n style={{ paddingRight: 5, margin: '2px' }}\n />\n </div>\n </FlexLayout>\n </CssNodeHover>\n );\n })}\n </Fragment>\n );\n};\n","import type { TAny } from '@flatbiz/utils';\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport type { TreeServiceConfig, TreeWrapperProps } from '../tree-wrapper';\nimport { TreeWrapper } from '../tree-wrapper';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const SelectContent = (props: {\n value?: TAny;\n onChange?: (value?: TreeModelSelectItem[]) => void;\n fieldNames?: TreeWrapperProps['fieldNames'];\n serviceConfig?: TreeServiceConfig;\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const modelKey = hooks.useId(undefined, 'tree-select-modal');\n return (\n <TreeWrapper\n initRootExpand\n showSearch\n searchPlaceholder=\"搜索\"\n checkable={true}\n checkableType=\"2\"\n {...props.treeProps}\n showIcon={props.treeProps?.icon ? true : false}\n value={props.value?.map((item) => item.value)}\n modelKey={modelKey}\n fieldNames={props.fieldNames}\n labelInValue={true}\n serviceConfig={props.serviceConfig}\n onChange={(values) => {\n props.onChange?.(toArray(values));\n }}\n />\n );\n};\n","import type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { treeToTiledMap } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { FlexLayout } from '../flex-layout';\nimport { SelectItemList } from './select-item';\nimport { SelectContent } from './tree';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const HorizontalLayout = (props: {\n onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;\n onDeleteItem: (value: TAny) => void;\n fieldNames?: TreeModalProps['fieldNames'];\n onRequest?: TreeModalProps['onRequest'];\n textConfig: TreeModalProps['textConfig'];\n onChange?: (value?: TreeModelSelectItem[]) => void;\n value?: TreeModelSelectItem[];\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const chenkedIdList = props.value || [];\n\n const valueKey = props.fieldNames?.value || 'value';\n const childrenKey = props.fieldNames?.children || 'children';\n\n const { selectQuantityPrompt, placeholder } = props.textConfig;\n\n return (\n <FlexLayout fullIndex={0} direction=\"horizontal\" gap={10} style={{ height: '100%', overflow: 'hidden' }}>\n <div style={{ backgroundColor: '#f4f4f4', padding: 10, borderRadius: 5 }}>\n <SelectContent\n treeProps={props.treeProps}\n value={chenkedIdList}\n onChange={props.onChange}\n fieldNames={props.fieldNames}\n serviceConfig={{\n onRequest: props.onRequest,\n onRequestResultAdapter: (respData) => {\n const listMap: TPlainObject = treeToTiledMap(respData, {\n value: valueKey,\n children: childrenKey,\n });\n props.onChangeDataSource?.(respData, listMap);\n return respData;\n },\n }}\n />\n </div>\n\n <div\n style={{\n width: '40%',\n overflow: 'hidden',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n }}\n >\n <div style={{ fontSize: 15, fontWeight: '500', marginBottom: 10 }}>\n {chenkedIdList.length > 0 ? (\n <Fragment>\n {selectQuantityPrompt\n ? selectQuantityPrompt.replace('{total}', `${chenkedIdList?.length || ''}`)\n : `已选择${chenkedIdList?.length}`}\n </Fragment>\n ) : (\n placeholder || '请选择'\n )}\n </div>\n <div style={{ overflow: 'auto', flex: 1 }}>\n <SelectItemList\n chenkedIdList={chenkedIdList}\n fieldNames={props.fieldNames}\n onDeleteItem={props.onDeleteItem}\n />\n </div>\n </div>\n </FlexLayout>\n );\n};\n","import type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { treeToTiledMap } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { SelectItemList } from './select-item';\nimport { SelectContent } from './tree';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const VerticalLayout = (props: {\n onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;\n onDeleteItem: (value: TAny) => void;\n fieldNames?: TreeModalProps['fieldNames'];\n onRequest?: TreeModalProps['onRequest'];\n textConfig: TreeModalProps['textConfig'];\n onChange?: (value?: TreeModelSelectItem[]) => void;\n value?: TreeModelSelectItem[];\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const { selectQuantityPrompt, placeholder } = props.textConfig;\n const valueKey = props.fieldNames?.value || 'value';\n const childrenKey = props.fieldNames?.children || 'children';\n\n const chenkedIdList = props.value || [];\n\n return (\n <div style={{ height: '100%', overflow: 'auto' }}>\n <div style={{ backgroundColor: '#f4f4f4', padding: 10, borderRadius: 5 }}>\n <SelectContent\n treeProps={props.treeProps}\n value={chenkedIdList}\n onChange={props.onChange}\n fieldNames={props.fieldNames}\n serviceConfig={{\n onRequest: props.onRequest,\n onRequestResultAdapter: (respData) => {\n const listMap: TPlainObject = treeToTiledMap(respData, {\n value: valueKey,\n children: childrenKey,\n });\n props.onChangeDataSource?.(respData, listMap);\n return respData;\n },\n }}\n />\n </div>\n\n <div style={{ marginTop: 20 }}>\n <div style={{ fontSize: 15, fontWeight: '500', marginBottom: 10 }}>\n {chenkedIdList.length > 0 ? (\n <Fragment>\n {selectQuantityPrompt\n ? selectQuantityPrompt.replace('{total}', `${chenkedIdList?.length || ''}`)\n : `已选择${chenkedIdList?.length}`}\n </Fragment>\n ) : (\n placeholder\n )}\n </div>\n <SelectItemList\n chenkedIdList={chenkedIdList}\n fieldNames={props.fieldNames}\n onDeleteItem={props.onDeleteItem}\n />\n </div>\n </div>\n );\n};\n","import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Fragment, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { HorizontalLayout } from './horizontal';\nimport type { TreeModalContentProps, TreeModelSelectItem } from './types';\nimport { VerticalLayout } from './vertical';\n\n/**\n * 树节点数据选择,一般用于选择员工等\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalContent = (props: TreeModalContentProps) => {\n const { isMultiple } = props;\n const labelKey = props.fieldNames?.label || 'label';\n const valueKey = props.fieldNames?.value || 'value';\n const dataSourceMapRef = useRef<TPlainObject>({});\n\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const direction = screenType === 'xs' ? 'vertical' : 'horizontal';\n const isMultipleFt = isUndefinedOrNull(isMultiple) ? true : isMultiple;\n\n const [values, setValues] = useState<TreeModelSelectItem[]>();\n\n const onDeleteItem = (value) => {\n const targetList = values?.filter((item) => item.value !== value);\n setValues(targetList);\n props.onChange?.(targetList);\n };\n\n fbaHooks.useEffectCustom(() => {\n const values = toArray<TAny>(props.value).map((item) => {\n const target = isObject(item) ? item : { label: item, value: item };\n const value = target.value;\n return {\n value: value,\n label: dataSourceMapRef.current[value]?.[labelKey] || '',\n };\n });\n setValues(values);\n }, [props.value]);\n\n const treePropsFt = {\n ...props.treeProps,\n checkable: isMultipleFt ? true : false,\n };\n\n const onChange = (values?: TreeModelSelectItem[]) => {\n setValues(values);\n props.onChange?.(values);\n };\n\n const onChangeDataSource = hooks.useCallbackRef((treeDataList: TPlainObject[], mapData: TPlainObject) => {\n dataSourceMapRef.current = mapData;\n const result = values\n ?.map((item) => {\n const target = mapData[item.value];\n return target ? { label: target[labelKey], value: target[valueKey] } : undefined;\n })\n .filter(Boolean) as TreeModelSelectItem[];\n setValues(result);\n props.onDataSourceChange?.(treeDataList, mapData);\n });\n\n return (\n <Fragment>\n {direction === 'vertical' ? (\n <VerticalLayout\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n onRequest={props.onRequest}\n textConfig={props.textConfig}\n onChange={onChange}\n onChangeDataSource={onChangeDataSource}\n treeProps={treePropsFt}\n ></VerticalLayout>\n ) : (\n <HorizontalLayout\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n onRequest={props.onRequest}\n textConfig={props.textConfig}\n onChange={onChange}\n onChangeDataSource={onChangeDataSource}\n treeProps={treePropsFt}\n />\n )}\n </Fragment>\n );\n};\n","import type { TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Modal } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TreeModalContent } from './select-modal-content';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\n/**\n * 树节点数据选择,一般用于选择员工等\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModal = (props: TreeModalProps) => {\n const { size = 'large' } = props;\n const [isOpen, setIsOpen] = useState(false);\n\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const direction = screenType === 'xs' ? 'vertical' : 'horizontal';\n\n const handleOnClick = hooks.useCallbackRef(() => {\n setIsOpen(true);\n });\n\n const Action = props.children.type;\n\n const [values, setValues] = useState<TreeModelSelectItem[]>();\n const originalValuesRef = useRef<TreeModelSelectItem[]>([]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n let sizeCalculate: TPlainObject = {};\n if (size == 'large') {\n sizeCalculate = {\n height: htmlSize?.height * 0.65,\n width: 800,\n };\n } else if (size == 'small') {\n sizeCalculate = {\n height: htmlSize?.height * 0.45,\n width: 450,\n };\n } else if (size == 'middle') {\n sizeCalculate = {\n height: htmlSize?.height * 0.55,\n width: 600,\n };\n }\n\n return {\n height: props.modalBodyHeight || sizeCalculate.height,\n width: isXsSm ? '90%' : props.modalWidth || sizeCalculate.width,\n };\n }, [htmlSize?.height, screenType, size, props.modalBodyHeight, props.modalWidth]);\n\n const onSubmit = () => {\n props.onChange?.(values);\n setIsOpen(false);\n };\n\n const onCancel = () => {\n setIsOpen(false);\n setValues(originalValuesRef.current);\n };\n\n return (\n <Fragment>\n <Action {...props.children.props} onClick={handleOnClick} />\n <Modal\n className={props.modalClassName}\n title={props.textConfig.title || '选择'}\n open={isOpen}\n onCancel={onCancel}\n forceRender={props.forceRender}\n centered\n width={customSize?.width}\n onOk={onSubmit}\n styles={\n direction === 'horizontal'\n ? {\n body: {\n height: customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n padding: '0px 20px 0 20px',\n },\n content: {\n padding: 0,\n },\n header: {\n padding: '20px 24px 0 20px',\n },\n footer: {\n padding: '0 24px 20px 24px',\n },\n }\n : {\n body: {\n height: customSize?.height,\n },\n }\n }\n >\n <TreeModalContent\n {...props}\n onChange={(values) => {\n setValues(values);\n }}\n />\n </Modal>\n </Fragment>\n );\n};\n","import { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { TreeModal as TreeModalInner } from './select-modal';\nimport { TreeModalContent } from './select-modal-content';\n\nexport const TreeModal = attachPropertiesToComponent(TreeModalInner, {\n Content: TreeModalContent,\n});\n"],"names":["SelectItemList","props","chenkedIdList","_jsx","Fragment","children","map","item","value","label","CssNodeHover","style","paddingLeft","paddingRight","_jsxs","FlexLayout","fullIndex","direction","alignItems","fontSize","marginBottom","color","TextOverflow","text","position","zIndex","IconWrapper","_CloseOutlined","onClick","onDeleteItem","bind","size","margin","SelectContent","_props$treeProps","_props$value","modelKey","_hooks","useId","undefined","TreeWrapper","_extends","initRootExpand","showSearch","searchPlaceholder","checkable","checkableType","treeProps","showIcon","icon","fieldNames","labelInValue","serviceConfig","onChange","values","toArray","HorizontalLayout","_props$fieldNames","_props$fieldNames2","valueKey","childrenKey","_props$textConfig","textConfig","selectQuantityPrompt","placeholder","gap","height","overflow","backgroundColor","padding","borderRadius","onRequest","onRequestResultAdapter","respData","listMap","treeToTiledMap","onChangeDataSource","width","display","flexDirection","flexShrink","fontWeight","length","replace","flex","VerticalLayout","marginTop","TreeModalContent","isMultiple","labelKey","dataSourceMapRef","useRef","screenType","fbaHooks","useResponsivePoint","isMultipleFt","isUndefinedOrNull","_useState","useState","setValues","targetList","filter","useEffectCustom","_dataSourceMapRef$cur","target","_isObject","current","treePropsFt","useCallbackRef","treeDataList","mapData","result","Boolean","onDataSourceChange","TreeModal","_props$size","isOpen","setIsOpen","htmlSize","useSize","document","querySelector","handleOnClick","Action","type","_useState2","originalValuesRef","customSize","useMemo","isXsSm","includes","sizeCalculate","modalBodyHeight","modalWidth","onSubmit","onCancel","Modal","className","modalClassName","title","open","forceRender","centered","onOk","styles","body","maxHeight","content","header","footer","attachPropertiesToComponent","TreeModalInner","Content"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-modal/select-item.tsx","@flatbiz/antd/src/tree-modal/tree.tsx","@flatbiz/antd/src/tree-modal/horizontal.tsx","@flatbiz/antd/src/tree-modal/vertical.tsx","@flatbiz/antd/src/tree-modal/select-modal-content.tsx","@flatbiz/antd/src/tree-modal/select-modal.tsx","@flatbiz/antd/src/tree-modal/index.ts"],"sourcesContent":["import { CloseOutlined } from '@ant-design/icons';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { CssNodeHover } from '../css-node-hover';\nimport { FlexLayout } from '../flex-layout';\nimport { IconWrapper } from '../icon-wrapper';\nimport { TextOverflow } from '../text-overflow';\nimport type { TreeModalProps } from './types';\n\nexport const SelectItemList = (props: {\n chenkedIdList: TPlainObject[];\n fieldNames: TreeModalProps['fieldNames'];\n onDeleteItem: (value: TAny) => void;\n}) => {\n const chenkedIdList = props.chenkedIdList;\n return (\n <Fragment>\n {chenkedIdList?.map((item) => {\n const value = item.value;\n const label = item.label || value;\n\n return (\n <CssNodeHover style={{ paddingLeft: 5, paddingRight: 0 }} key={value}>\n <FlexLayout\n fullIndex={1}\n direction=\"horizontal\"\n style={{\n alignItems: 'center',\n fontSize: 14,\n marginBottom: 0,\n color: '#505050',\n }}\n >\n <TextOverflow text={label} />\n <div\n style={{\n position: 'relative',\n zIndex: 9,\n color: '#a1a1a1',\n }}\n >\n <IconWrapper\n text={<CloseOutlined />}\n onClick={props.onDeleteItem.bind(null, value)}\n size=\"small\"\n style={{ paddingRight: 5, margin: '2px' }}\n />\n </div>\n </FlexLayout>\n </CssNodeHover>\n );\n })}\n </Fragment>\n );\n};\n","import type { TAny } from '@flatbiz/utils';\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport type { TreeServiceConfig, TreeWrapperProps } from '../tree-wrapper';\nimport { TreeWrapper } from '../tree-wrapper';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const SelectContent = (props: {\n value?: TAny;\n onChange?: (value?: TreeModelSelectItem[]) => void;\n fieldNames?: TreeWrapperProps['fieldNames'];\n serviceConfig?: TreeServiceConfig;\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const modelKey = hooks.useId(undefined, 'tree-select-modal');\n return (\n <TreeWrapper\n initRootExpand\n showSearch\n searchPlaceholder=\"搜索\"\n checkable={true}\n checkableType=\"2\"\n {...props.treeProps}\n showIcon={props.treeProps?.icon ? true : false}\n value={props.value?.map((item) => item.value)}\n modelKey={modelKey}\n fieldNames={props.fieldNames}\n labelInValue={true}\n serviceConfig={props.serviceConfig}\n onChange={(values) => {\n props.onChange?.(toArray(values));\n }}\n />\n );\n};\n","import type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { treeToTiledMap } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { FlexLayout } from '../flex-layout';\nimport { SelectItemList } from './select-item';\nimport { SelectContent } from './tree';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const HorizontalLayout = (props: {\n onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;\n onDeleteItem: (value: TAny) => void;\n fieldNames?: TreeModalProps['fieldNames'];\n onRequest?: TreeModalProps['onRequest'];\n textConfig: TreeModalProps['textConfig'];\n onChange?: (value?: TreeModelSelectItem[]) => void;\n value?: TreeModelSelectItem[];\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const chenkedIdList = props.value || [];\n\n const valueKey = props.fieldNames?.value || 'value';\n const childrenKey = props.fieldNames?.children || 'children';\n\n const { selectQuantityPrompt, placeholder } = props.textConfig;\n\n return (\n <FlexLayout fullIndex={0} direction=\"horizontal\" gap={10} style={{ height: '100%', overflow: 'hidden' }}>\n <div style={{ backgroundColor: '#f4f4f4', padding: 10, borderRadius: 5 }}>\n <SelectContent\n treeProps={props.treeProps}\n value={chenkedIdList}\n onChange={props.onChange}\n fieldNames={props.fieldNames}\n serviceConfig={{\n onRequest: props.onRequest,\n onRequestResultAdapter: (respData) => {\n const listMap: TPlainObject = treeToTiledMap(respData, {\n value: valueKey,\n children: childrenKey,\n });\n props.onChangeDataSource?.(respData, listMap);\n return respData;\n },\n }}\n />\n </div>\n\n <div\n style={{\n width: '40%',\n overflow: 'hidden',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n }}\n >\n <div style={{ fontSize: 15, fontWeight: '500', marginBottom: 10 }}>\n {chenkedIdList.length > 0 ? (\n <Fragment>\n {selectQuantityPrompt\n ? selectQuantityPrompt.replace('{total}', `${chenkedIdList?.length || ''}`)\n : `已选择${chenkedIdList?.length}`}\n </Fragment>\n ) : (\n placeholder || '请选择'\n )}\n </div>\n <div style={{ overflow: 'auto', flex: 1 }}>\n <SelectItemList\n chenkedIdList={chenkedIdList}\n fieldNames={props.fieldNames}\n onDeleteItem={props.onDeleteItem}\n />\n </div>\n </div>\n </FlexLayout>\n );\n};\n","import type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { treeToTiledMap } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { SelectItemList } from './select-item';\nimport { SelectContent } from './tree';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const VerticalLayout = (props: {\n onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;\n onDeleteItem: (value: TAny) => void;\n fieldNames?: TreeModalProps['fieldNames'];\n onRequest?: TreeModalProps['onRequest'];\n textConfig: TreeModalProps['textConfig'];\n onChange?: (value?: TreeModelSelectItem[]) => void;\n value?: TreeModelSelectItem[];\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const { selectQuantityPrompt, placeholder } = props.textConfig;\n const valueKey = props.fieldNames?.value || 'value';\n const childrenKey = props.fieldNames?.children || 'children';\n\n const chenkedIdList = props.value || [];\n\n return (\n <div style={{ height: '100%', overflow: 'auto' }}>\n <div style={{ backgroundColor: '#f4f4f4', padding: 10, borderRadius: 5 }}>\n <SelectContent\n treeProps={props.treeProps}\n value={chenkedIdList}\n onChange={props.onChange}\n fieldNames={props.fieldNames}\n serviceConfig={{\n onRequest: props.onRequest,\n onRequestResultAdapter: (respData) => {\n const listMap: TPlainObject = treeToTiledMap(respData, {\n value: valueKey,\n children: childrenKey,\n });\n props.onChangeDataSource?.(respData, listMap);\n return respData;\n },\n }}\n />\n </div>\n\n <div style={{ marginTop: 20 }}>\n <div style={{ fontSize: 15, fontWeight: '500', marginBottom: 10 }}>\n {chenkedIdList.length > 0 ? (\n <Fragment>\n {selectQuantityPrompt\n ? selectQuantityPrompt.replace('{total}', `${chenkedIdList?.length || ''}`)\n : `已选择${chenkedIdList?.length}`}\n </Fragment>\n ) : (\n placeholder\n )}\n </div>\n <SelectItemList\n chenkedIdList={chenkedIdList}\n fieldNames={props.fieldNames}\n onDeleteItem={props.onDeleteItem}\n />\n </div>\n </div>\n );\n};\n","import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Fragment, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { HorizontalLayout } from './horizontal';\nimport type { TreeModalContentProps, TreeModelSelectItem } from './types';\nimport { VerticalLayout } from './vertical';\n\n/**\n * 树节点数据选择,一般用于选择员工等\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalContent = (props: TreeModalContentProps) => {\n const { isMultiple } = props;\n const labelKey = props.fieldNames?.label || 'label';\n const valueKey = props.fieldNames?.value || 'value';\n const dataSourceMapRef = useRef<TPlainObject>({});\n\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const direction = screenType === 'xs' ? 'vertical' : 'horizontal';\n const isMultipleFt = isUndefinedOrNull(isMultiple) ? true : isMultiple;\n\n const [values, setValues] = useState<TreeModelSelectItem[]>();\n\n const onDeleteItem = (value) => {\n const targetList = values?.filter((item) => item.value !== value);\n setValues(targetList);\n props.onChange?.(targetList);\n };\n\n fbaHooks.useEffectCustom(() => {\n const values = toArray<TAny>(props.value).map((item) => {\n const target = isObject(item) ? item : { label: item, value: item };\n const value = target.value;\n return {\n value: value,\n label: dataSourceMapRef.current[value]?.[labelKey] || '',\n };\n });\n setValues(values);\n }, [props.value]);\n\n const treePropsFt = {\n ...props.treeProps,\n checkable: isMultipleFt ? true : false,\n };\n\n const onChange = (values?: TreeModelSelectItem[]) => {\n setValues(values);\n props.onChange?.(values);\n };\n\n const onChangeDataSource = hooks.useCallbackRef((treeDataList: TPlainObject[], mapData: TPlainObject) => {\n dataSourceMapRef.current = mapData;\n const result = values\n ?.map((item) => {\n const target = mapData[item.value];\n return target ? { label: target[labelKey], value: target[valueKey] } : undefined;\n })\n .filter(Boolean) as TreeModelSelectItem[];\n setValues(result);\n props.onDataSourceChange?.(treeDataList, mapData);\n });\n\n return (\n <Fragment>\n {direction === 'vertical' ? (\n <VerticalLayout\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n onRequest={props.onRequest}\n textConfig={props.textConfig}\n onChange={onChange}\n onChangeDataSource={onChangeDataSource}\n treeProps={treePropsFt}\n ></VerticalLayout>\n ) : (\n <HorizontalLayout\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n onRequest={props.onRequest}\n textConfig={props.textConfig}\n onChange={onChange}\n onChangeDataSource={onChangeDataSource}\n treeProps={treePropsFt}\n />\n )}\n </Fragment>\n );\n};\n","import type { TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Modal } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TreeModalContent } from './select-modal-content';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\n/**\n * 树节点数据选择,一般用于选择员工等\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModal = (props: TreeModalProps) => {\n const { size = 'large' } = props;\n const [isOpen, setIsOpen] = useState(false);\n\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const direction = screenType === 'xs' ? 'vertical' : 'horizontal';\n\n const handleOnClick = hooks.useCallbackRef(() => {\n setIsOpen(true);\n });\n\n const Action = props.children.type;\n\n const [values, setValues] = useState<TreeModelSelectItem[]>();\n const originalValuesRef = useRef<TreeModelSelectItem[]>([]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n let sizeCalculate: TPlainObject = {};\n if (size == 'large') {\n sizeCalculate = {\n height: htmlSize?.height * 0.65,\n width: 800,\n };\n } else if (size == 'small') {\n sizeCalculate = {\n height: htmlSize?.height * 0.45,\n width: 450,\n };\n } else if (size == 'middle') {\n sizeCalculate = {\n height: htmlSize?.height * 0.55,\n width: 600,\n };\n }\n\n return {\n height: props.modalBodyHeight || sizeCalculate.height,\n width: isXsSm ? '90%' : props.modalWidth || sizeCalculate.width,\n };\n }, [htmlSize?.height, screenType, size, props.modalBodyHeight, props.modalWidth]);\n\n const onSubmit = () => {\n props.onChange?.(values);\n setIsOpen(false);\n };\n\n const onCancel = () => {\n setIsOpen(false);\n setValues(originalValuesRef.current);\n };\n\n return (\n <Fragment>\n <Action {...props.children.props} onClick={handleOnClick} />\n <Modal\n className={props.modalClassName}\n title={props.textConfig.title || '选择'}\n open={isOpen}\n onCancel={onCancel}\n forceRender={props.forceRender}\n centered\n width={customSize?.width}\n onOk={onSubmit}\n styles={\n direction === 'horizontal'\n ? {\n body: {\n height: customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n padding: '0px 20px 0 20px',\n },\n content: {\n padding: 0,\n },\n header: {\n padding: '20px 24px 0 20px',\n },\n footer: {\n padding: '0 24px 20px 24px',\n },\n }\n : {\n body: {\n height: customSize?.height,\n },\n }\n }\n >\n <TreeModalContent\n {...props}\n onChange={(values) => {\n setValues(values);\n }}\n />\n </Modal>\n </Fragment>\n );\n};\n","import { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { TreeModal as TreeModalInner } from './select-modal';\nimport { TreeModalContent } from './select-modal-content';\n\nexport const TreeModal = attachPropertiesToComponent(TreeModalInner, {\n Content: TreeModalContent,\n});\n"],"names":["SelectItemList","props","chenkedIdList","_jsx","Fragment","children","map","item","value","label","CssNodeHover","style","paddingLeft","paddingRight","_jsxs","FlexLayout","fullIndex","direction","alignItems","fontSize","marginBottom","color","TextOverflow","text","position","zIndex","IconWrapper","_CloseOutlined","onClick","onDeleteItem","bind","size","margin","SelectContent","_props$treeProps","_props$value","modelKey","_hooks","useId","undefined","TreeWrapper","_extends","initRootExpand","showSearch","searchPlaceholder","checkable","checkableType","treeProps","showIcon","icon","fieldNames","labelInValue","serviceConfig","onChange","values","toArray","HorizontalLayout","_props$fieldNames","_props$fieldNames2","valueKey","childrenKey","_props$textConfig","textConfig","selectQuantityPrompt","placeholder","gap","height","overflow","backgroundColor","padding","borderRadius","onRequest","onRequestResultAdapter","respData","listMap","treeToTiledMap","onChangeDataSource","width","display","flexDirection","flexShrink","fontWeight","length","replace","flex","VerticalLayout","marginTop","TreeModalContent","isMultiple","labelKey","dataSourceMapRef","useRef","screenType","fbaHooks","useResponsivePoint","isMultipleFt","isUndefinedOrNull","_useState","useState","setValues","targetList","filter","useEffectCustom","_dataSourceMapRef$cur","target","_isObject","current","treePropsFt","useCallbackRef","treeDataList","mapData","result","Boolean","onDataSourceChange","TreeModal","_props$size","isOpen","setIsOpen","htmlSize","useSize","document","querySelector","handleOnClick","Action","type","_useState2","originalValuesRef","customSize","useMemo","isXsSm","includes","sizeCalculate","modalBodyHeight","modalWidth","onSubmit","onCancel","Modal","className","modalClassName","title","open","forceRender","centered","onOk","styles","body","maxHeight","content","header","footer","attachPropertiesToComponent","TreeModalInner","Content"],"mappings":"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"}
@@ -18,5 +18,5 @@ import './../dropdown-menu-wrapper/index.css';
18
18
  import './../input-search-wrapper/index.css';
19
19
  import './index.css';
20
20
  /*! @flatjs/forge MIT @flatbiz/antd */
21
- import{a as e,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as o}from"@wove/react/cjs/hooks";import{isObject as r}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as a,toArray as n}from"@flatbiz/utils";import{Select as t}from"antd";import{useRef as l,useState as s,useEffect as m}from"react";import{TreeModal as p}from"../tree-modal/index.js";import{jsx as d}from"react/jsx-runtime";import"ahooks";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"../flex-layout/index.js";import"@dimjs/utils/cjs/class-names";import"@ant-design/icons/es/icons/CloseOutlined";import"../css-node-hover/index.js";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-undefined";import"../text-overflow/index.js";import"@dimjs/lang/cjs/is-string";import"../tree-wrapper/index.js";import"@dimjs/model-react";import"@ant-design/icons/es/icons/CaretDownFilled";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"@dimjs/model";import"../button-operate/index.js";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"react-dom/client";import"@wove/react/cjs/create-ctx";import"../input-search-wrapper/index.js";import"../request-status/index.js";import"@dimjs/utils/cjs/tree";import"dequal";var u=["placeholder","maxTagCount","labelInValue"];var c=function c(j){var v,f;var g=j.placeholder,x=j.maxTagCount,h=j.labelInValue,b=e(j,u);var C=a(g)?"请选择":g;var w=l({});var y=((v=b.fieldNames)==null?void 0:v.label)||"label";var k=((f=b.fieldNames)==null?void 0:f.value)||"value";var F=s(),O=F[0],_=F[1];m((function(){var e;var i=((e=n(j.value))==null?void 0:e.map((function(e){var i;var o=r(e)?e:{label:e,value:e};return{value:o.value,label:((i=w.current[o.value])==null?void 0:i[y])||o.value}})))||[];_(i)}),[y,j.value]);var z=function e(i){var o=n(i).length?i:undefined;if(b.isMultiple==false){j.onChange==null?void 0:j.onChange(o==null?void 0:o[0])}else{j.onChange==null?void 0:j.onChange(o)}};var D=function e(i){_(i);if(h){z(i);return}z(i==null?void 0:i.map((function(e){return e.value})))};var I=function e(i){_(i);if(h){z(i);return}z(i==null?void 0:i.map((function(e){return e.value})))};var N=o.useCallbackRef((function(e,i){w.current=i;var o=O==null?void 0:O.map((function(e){var o=i[e.value];return o?{label:o[y],value:o[k]}:undefined})).filter(Boolean);_(o)}));return d(p,i({},b,{forceRender:true,onChange:I,onDataSourceChange:N,children:d(t,{labelInValue:true,style:{width:"100%"},placeholder:C,maxTagCount:x,mode:"multiple",open:false,value:O,onChange:D})}))};export{c as TreeModalSelector};
21
+ import{a as e,_ as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as o}from"@wove/react/cjs/hooks";import{isObject as r}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as a,toArray as n}from"@flatbiz/utils";import{Select as t}from"antd";import{useRef as l,useState as s,useEffect as m}from"react";import{TreeModal as p}from"../tree-modal/index.js";import{jsx as d}from"react/jsx-runtime";import"ahooks";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"../flex-layout/index.js";import"@dimjs/utils/cjs/class-names";import"@ant-design/icons/es/icons/CloseOutlined";import"../css-node-hover/index.js";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-undefined";import"../text-overflow/index.js";import"@dimjs/lang/cjs/is-string";import"../tree-wrapper/index.js";import"@dimjs/model-react";import"@ant-design/icons/es/icons/CaretDownFilled";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"@dimjs/model";import"../button-operate/index.js";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-83bede1b.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"react-dom/client";import"@wove/react/cjs/create-ctx";import"../input-search-wrapper/index.js";import"../request-status/index.js";import"@dimjs/utils/cjs/tree";import"dequal";var u=["placeholder","maxTagCount","labelInValue"];var c=function c(j){var v,f;var g=j.placeholder,x=j.maxTagCount,h=j.labelInValue,b=e(j,u);var C=a(g)?"请选择":g;var w=l({});var y=((v=b.fieldNames)==null?void 0:v.label)||"label";var k=((f=b.fieldNames)==null?void 0:f.value)||"value";var F=s(),O=F[0],_=F[1];m((function(){var e;var i=((e=n(j.value))==null?void 0:e.map((function(e){var i;var o=r(e)?e:{label:e,value:e};return{value:o.value,label:((i=w.current[o.value])==null?void 0:i[y])||o.value}})))||[];_(i)}),[y,j.value]);var z=function e(i){var o=n(i).length?i:undefined;if(b.isMultiple==false){j.onChange==null||j.onChange(o==null?void 0:o[0])}else{j.onChange==null||j.onChange(o)}};var D=function e(i){_(i);if(h){z(i);return}z(i==null?void 0:i.map((function(e){return e.value})))};var I=function e(i){_(i);if(h){z(i);return}z(i==null?void 0:i.map((function(e){return e.value})))};var N=o.useCallbackRef((function(e,i){w.current=i;var o=O==null?void 0:O.map((function(e){var o=i[e.value];return o?{label:o[y],value:o[k]}:undefined})).filter(Boolean);_(o)}));return d(p,i({},b,{forceRender:true,onChange:I,onDataSourceChange:N,children:d(t,{labelInValue:true,style:{width:"100%"},placeholder:C,maxTagCount:x,mode:"multiple",open:false,value:O,onChange:D})}))};export{c as TreeModalSelector};
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-modal-selector/selector.tsx"],"sourcesContent":["import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Select } from 'antd';\nimport { useEffect, useRef, useState } from 'react';\nimport { TreeModal } from '../tree-modal';\nimport type { TreeModalProps, TreeModelSelectItem } from '../tree-modal/types';\nexport type TreeModalSelectorProps = Omit<TreeModalProps, 'children' | 'forceRender' | 'onChange'> & {\n placeholder?: string;\n /**\n * 1. 可指定数量\n * 2. 可设置 responsive,一行自适应显示\n */\n maxTagCount?: number | 'responsive';\n /** 是否返回label+value模式 */\n labelInValue?: boolean;\n onChange?: (values?: TreeModelSelectItem[] | TreeModelSelectItem) => void;\n};\n\n/**\n * 树弹框选择器\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalSelector = (props: TreeModalSelectorProps) => {\n const { placeholder, maxTagCount, labelInValue, ...otherProps } = props;\n const placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;\n\n const dataSourceMapRef = useRef<TPlainObject>({});\n\n const labelKey = otherProps.fieldNames?.label || 'label';\n const valueKey = otherProps.fieldNames?.value || 'value';\n\n const [showValues, setShowValues] = useState<TreeModelSelectItem[]>();\n\n useEffect(() => {\n const dataList =\n toArray(props.value)?.map((item) => {\n const objItems = (isObject(item) ? item : { label: item, value: item }) as TreeModelSelectItem;\n return {\n value: objItems.value,\n label: dataSourceMapRef.current[objItems.value]?.[labelKey] || objItems.value,\n } as TreeModelSelectItem;\n }) || [];\n setShowValues(dataList);\n }, [labelKey, props.value]);\n\n const onInnerChange = (value: TreeModelSelectItem[]) => {\n const valueFt = toArray(value).length ? value : undefined;\n if (otherProps.isMultiple == false) {\n props.onChange?.(valueFt?.[0]);\n } else {\n props.onChange?.(valueFt);\n }\n };\n\n const onSelectChange = (value) => {\n setShowValues(value);\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n\n onInnerChange(value?.map((item) => item.value));\n };\n const treeModalChange = (value) => {\n setShowValues(value);\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n onInnerChange(value?.map((item) => item.value));\n };\n\n const onDataSourceChange = hooks.useCallbackRef((_treeDataList: TPlainObject[], mapData: TPlainObject) => {\n dataSourceMapRef.current = mapData;\n const result = showValues\n ?.map((item) => {\n const target = mapData[item.value];\n return target ? { label: target[labelKey], value: target[valueKey] } : undefined;\n })\n .filter(Boolean) as TreeModelSelectItem[];\n setShowValues(result);\n });\n\n return (\n <TreeModal\n {...otherProps}\n forceRender={true}\n onChange={treeModalChange}\n onDataSourceChange={onDataSourceChange}\n >\n <Select\n labelInValue\n style={{ width: '100%' }}\n placeholder={placeholderFt}\n maxTagCount={maxTagCount}\n mode=\"multiple\"\n open={false}\n value={showValues}\n onChange={onSelectChange}\n />\n </TreeModal>\n );\n};\n"],"names":["TreeModalSelector","props","_otherProps$fieldName","_otherProps$fieldName2","placeholder","maxTagCount","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","placeholderFt","isUndefinedOrNull","dataSourceMapRef","useRef","labelKey","fieldNames","label","valueKey","value","_useState","useState","showValues","setShowValues","useEffect","_toArray","dataList","toArray","map","item","_dataSourceMapRef$cur","objItems","_isObject","current","onInnerChange","valueFt","length","undefined","isMultiple","onChange","onSelectChange","treeModalChange","onDataSourceChange","_hooks","useCallbackRef","_treeDataList","mapData","result","target","filter","Boolean","_jsx","TreeModal","_extends","forceRender","children","Select","style","width","mode","open"],"mappings":";whEA0BaA,EAAoB,SAApBA,EAAqBC,GAAkC,IAAAC,EAAAC,EAClE,IAAQC,EAA0DH,EAA1DG,YAAaC,EAA6CJ,EAA7CI,YAAaC,EAAgCL,EAAhCK,aAAiBC,EAAUC,EAAKP,EAAKQ,GACvE,IAAMC,EAAgBC,EAAkBP,GAAe,MAAQA,EAE/D,IAAMQ,EAAmBC,EAAqB,CAAA,GAE9C,IAAMC,IAAWZ,EAAAK,EAAWQ,aAAXb,UAAAA,EAAAA,EAAuBc,QAAS,QACjD,IAAMC,IAAWd,EAAAI,EAAWQ,aAAXZ,UAAAA,EAAAA,EAAuBe,QAAS,QAEjD,IAAAC,EAAoCC,IAA7BC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAEhCI,GAAU,WAAM,IAAAC,EACd,IAAMC,IACJD,EAAAE,EAAQzB,EAAMiB,qBAAdM,EAAsBG,KAAI,SAACC,GAAS,IAAAC,EAClC,IAAMC,EAAYC,EAASH,GAAQA,EAAO,CAAEZ,MAAOY,EAAMV,MAAOU,GAChE,MAAO,CACLV,MAAOY,EAASZ,MAChBF,QAAOa,EAAAjB,EAAiBoB,QAAQF,EAASZ,qBAAlCW,EAA2Cf,KAAagB,EAASZ,MAE3E,MAAK,GACRI,EAAcG,EACf,GAAE,CAACX,EAAUb,EAAMiB,QAEpB,IAAMe,EAAgB,SAAhBA,EAAiBf,GACrB,IAAMgB,EAAUR,EAAQR,GAAOiB,OAASjB,EAAQkB,UAChD,GAAI7B,EAAW8B,YAAc,MAAO,CAClCpC,EAAMqC,UAANrC,UAAAA,EAAAA,EAAMqC,SAAWJ,GAAAA,UAAAA,EAAAA,EAAU,GAC7B,KAAO,CACLjC,EAAMqC,UAANrC,UAAAA,EAAAA,EAAMqC,SAAWJ,EACnB,GAGF,IAAMK,EAAiB,SAAjBA,EAAkBrB,GACtBI,EAAcJ,GACd,GAAIZ,EAAc,CAChB2B,EAAcf,GACd,MACF,CAEAe,EAAcf,GAAAA,UAAAA,EAAAA,EAAOS,KAAI,SAACC,GAAI,OAAKA,EAAKV,KAAK,MAE/C,IAAMsB,EAAkB,SAAlBA,EAAmBtB,GACvBI,EAAcJ,GACd,GAAIZ,EAAc,CAChB2B,EAAcf,GACd,MACF,CACAe,EAAcf,GAAAA,UAAAA,EAAAA,EAAOS,KAAI,SAACC,GAAI,OAAKA,EAAKV,KAAK,MAG/C,IAAMuB,EAAqBC,EAAMC,gBAAe,SAACC,EAA+BC,GAC9EjC,EAAiBoB,QAAUa,EAC3B,IAAMC,EAASzB,GAAAA,UAAAA,EAAAA,EACXM,KAAI,SAACC,GACL,IAAMmB,EAASF,EAAQjB,EAAKV,OAC5B,OAAO6B,EAAS,CAAE/B,MAAO+B,EAAOjC,GAAWI,MAAO6B,EAAO9B,IAAcmB,SACzE,IACCY,OAAOC,SACV3B,EAAcwB,EAChB,IAEA,OACEI,EAACC,EAASC,KACJ7C,EAAU,CACd8C,YAAa,KACbf,SAAUE,EACVC,mBAAoBA,EAAmBa,SAEvCJ,EAACK,EAAM,CACLjD,aAAY,KACZkD,MAAO,CAAEC,MAAO,QAChBrD,YAAaM,EACbL,YAAaA,EACbqD,KAAK,WACLC,KAAM,MACNzC,MAAOG,EACPiB,SAAUC,MAIlB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-modal-selector/selector.tsx"],"sourcesContent":["import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Select } from 'antd';\nimport { useEffect, useRef, useState } from 'react';\nimport { TreeModal } from '../tree-modal';\nimport type { TreeModalProps, TreeModelSelectItem } from '../tree-modal/types';\nexport type TreeModalSelectorProps = Omit<TreeModalProps, 'children' | 'forceRender' | 'onChange'> & {\n placeholder?: string;\n /**\n * 1. 可指定数量\n * 2. 可设置 responsive,一行自适应显示\n */\n maxTagCount?: number | 'responsive';\n /** 是否返回label+value模式 */\n labelInValue?: boolean;\n onChange?: (values?: TreeModelSelectItem[] | TreeModelSelectItem) => void;\n};\n\n/**\n * 树弹框选择器\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalSelector = (props: TreeModalSelectorProps) => {\n const { placeholder, maxTagCount, labelInValue, ...otherProps } = props;\n const placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;\n\n const dataSourceMapRef = useRef<TPlainObject>({});\n\n const labelKey = otherProps.fieldNames?.label || 'label';\n const valueKey = otherProps.fieldNames?.value || 'value';\n\n const [showValues, setShowValues] = useState<TreeModelSelectItem[]>();\n\n useEffect(() => {\n const dataList =\n toArray(props.value)?.map((item) => {\n const objItems = (isObject(item) ? item : { label: item, value: item }) as TreeModelSelectItem;\n return {\n value: objItems.value,\n label: dataSourceMapRef.current[objItems.value]?.[labelKey] || objItems.value,\n } as TreeModelSelectItem;\n }) || [];\n setShowValues(dataList);\n }, [labelKey, props.value]);\n\n const onInnerChange = (value: TreeModelSelectItem[]) => {\n const valueFt = toArray(value).length ? value : undefined;\n if (otherProps.isMultiple == false) {\n props.onChange?.(valueFt?.[0]);\n } else {\n props.onChange?.(valueFt);\n }\n };\n\n const onSelectChange = (value) => {\n setShowValues(value);\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n\n onInnerChange(value?.map((item) => item.value));\n };\n const treeModalChange = (value) => {\n setShowValues(value);\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n onInnerChange(value?.map((item) => item.value));\n };\n\n const onDataSourceChange = hooks.useCallbackRef((_treeDataList: TPlainObject[], mapData: TPlainObject) => {\n dataSourceMapRef.current = mapData;\n const result = showValues\n ?.map((item) => {\n const target = mapData[item.value];\n return target ? { label: target[labelKey], value: target[valueKey] } : undefined;\n })\n .filter(Boolean) as TreeModelSelectItem[];\n setShowValues(result);\n });\n\n return (\n <TreeModal\n {...otherProps}\n forceRender={true}\n onChange={treeModalChange}\n onDataSourceChange={onDataSourceChange}\n >\n <Select\n labelInValue\n style={{ width: '100%' }}\n placeholder={placeholderFt}\n maxTagCount={maxTagCount}\n mode=\"multiple\"\n open={false}\n value={showValues}\n onChange={onSelectChange}\n />\n </TreeModal>\n );\n};\n"],"names":["TreeModalSelector","props","_otherProps$fieldName","_otherProps$fieldName2","placeholder","maxTagCount","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","placeholderFt","isUndefinedOrNull","dataSourceMapRef","useRef","labelKey","fieldNames","label","valueKey","value","_useState","useState","showValues","setShowValues","useEffect","_toArray","dataList","toArray","map","item","_dataSourceMapRef$cur","objItems","_isObject","current","onInnerChange","valueFt","length","undefined","isMultiple","onChange","onSelectChange","treeModalChange","onDataSourceChange","_hooks","useCallbackRef","_treeDataList","mapData","result","target","filter","Boolean","_jsx","TreeModal","_extends","forceRender","children","Select","style","width","mode","open"],"mappings":";whEA0BaA,EAAoB,SAApBA,EAAqBC,GAAkC,IAAAC,EAAAC,EAClE,IAAQC,EAA0DH,EAA1DG,YAAaC,EAA6CJ,EAA7CI,YAAaC,EAAgCL,EAAhCK,aAAiBC,EAAUC,EAAKP,EAAKQ,GACvE,IAAMC,EAAgBC,EAAkBP,GAAe,MAAQA,EAE/D,IAAMQ,EAAmBC,EAAqB,CAAA,GAE9C,IAAMC,IAAWZ,EAAAK,EAAWQ,aAAXb,UAAAA,EAAAA,EAAuBc,QAAS,QACjD,IAAMC,IAAWd,EAAAI,EAAWQ,aAAXZ,UAAAA,EAAAA,EAAuBe,QAAS,QAEjD,IAAAC,EAAoCC,IAA7BC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAEhCI,GAAU,WAAM,IAAAC,EACd,IAAMC,IACJD,EAAAE,EAAQzB,EAAMiB,qBAAdM,EAAsBG,KAAI,SAACC,GAAS,IAAAC,EAClC,IAAMC,EAAYC,EAASH,GAAQA,EAAO,CAAEZ,MAAOY,EAAMV,MAAOU,GAChE,MAAO,CACLV,MAAOY,EAASZ,MAChBF,QAAOa,EAAAjB,EAAiBoB,QAAQF,EAASZ,qBAAlCW,EAA2Cf,KAAagB,EAASZ,MAE3E,MAAK,GACRI,EAAcG,EACf,GAAE,CAACX,EAAUb,EAAMiB,QAEpB,IAAMe,EAAgB,SAAhBA,EAAiBf,GACrB,IAAMgB,EAAUR,EAAQR,GAAOiB,OAASjB,EAAQkB,UAChD,GAAI7B,EAAW8B,YAAc,MAAO,CAClCpC,EAAMqC,UAANrC,MAAAA,EAAMqC,SAAWJ,GAAAA,UAAAA,EAAAA,EAAU,GAC7B,KAAO,CACLjC,EAAMqC,UAANrC,MAAAA,EAAMqC,SAAWJ,EACnB,GAGF,IAAMK,EAAiB,SAAjBA,EAAkBrB,GACtBI,EAAcJ,GACd,GAAIZ,EAAc,CAChB2B,EAAcf,GACd,MACF,CAEAe,EAAcf,GAAAA,UAAAA,EAAAA,EAAOS,KAAI,SAACC,GAAI,OAAKA,EAAKV,KAAK,MAE/C,IAAMsB,EAAkB,SAAlBA,EAAmBtB,GACvBI,EAAcJ,GACd,GAAIZ,EAAc,CAChB2B,EAAcf,GACd,MACF,CACAe,EAAcf,GAAAA,UAAAA,EAAAA,EAAOS,KAAI,SAACC,GAAI,OAAKA,EAAKV,KAAK,MAG/C,IAAMuB,EAAqBC,EAAMC,gBAAe,SAACC,EAA+BC,GAC9EjC,EAAiBoB,QAAUa,EAC3B,IAAMC,EAASzB,GAAAA,UAAAA,EAAAA,EACXM,KAAI,SAACC,GACL,IAAMmB,EAASF,EAAQjB,EAAKV,OAC5B,OAAO6B,EAAS,CAAE/B,MAAO+B,EAAOjC,GAAWI,MAAO6B,EAAO9B,IAAcmB,SACzE,IACCY,OAAOC,SACV3B,EAAcwB,EAChB,IAEA,OACEI,EAACC,EAASC,KACJ7C,EAAU,CACd8C,YAAa,KACbf,SAAUE,EACVC,mBAAoBA,EAAmBa,SAEvCJ,EAACK,EAAM,CACLjD,aAAY,KACZkD,MAAO,CAAEC,MAAO,QAChBrD,YAAaM,EACbL,YAAaA,EACbqD,KAAK,WACLC,KAAM,MACNzC,MAAOG,EACPiB,SAAUC,MAIlB"}
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
3
3
  import './../request-status/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- import e from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import t from"@ant-design/icons/es/icons/CaretDownFilled";import{extend as l}from"@dimjs/utils/cjs/extend";import{hooks as a}from"@wove/react/cjs/hooks";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{isObject as i}from"@dimjs/lang/cjs/is-object";import{a as o,_ as u}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as s,treeToTiledMap as c,isNotEmptyArray as f,treeToArray as d,isUndefinedOrNull as v}from"@flatbiz/utils";import{TreeSelect as p,Button as m}from"antd";import{dequal as h}from"dequal";import{useState as S,useRef as g,useMemo as b,createElement as C}from"react";import{fbaHooks as y}from"../fba-hooks/index.js";import{RequestStatus as q}from"../request-status/index.js";import{Model as w}from"@dimjs/model-react";import{jsx as L}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var T={treeSelectorList:[],treeSelectorTiledMap:{},queryIsEmpty:false};var R={actions:{setSelectBoxList:function e(r){return function(e){e.treeSelectorList=r.treeSelectorList||[];e.treeSelectorTiledMap=r.treeSelectorTiledMap||{};e.requestStatus="request-success"}},resetSelectBoxList:function e(){return function(e){e.treeSelectorList=[];e.treeSelectorTiledMap={}}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r}}},state:T};var j={};var k=function e(r){if(!j[r]){j[r]=w(R)}return j[r]};var x=function e(r,t){var l=[];var a=t[r];while(a){var n=a.pId;a=t[n];if(a){l.push(n)}}return l};var M=function e(r,t){if(r.length===0)return[];var l=[];r.forEach((function(e){var r=x(e,t);l.push.apply(l,r)}));return Array.from(new Set(l))};var E=["serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","treeSelectorList","requestMessageConfig","modelKey","value","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","selectedParentCheckedAllChildrenList","fieldNames","onChange","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys"];var I=function w(T){var R=T.serviceConfig,j=T.effectDependencyList,x=T.onTreeSelectorListChange,I=T.onTreeSelectorRequestError,A=T.treeSelectorList,N=T.requestMessageConfig,D=T.modelKey,P=T.value,O=T.labelInValue,B=T.labelInValueFieldNames,K=T.onTreeItemDataAdapter,V=T.selectedParentCheckedAllChildrenList,F=V===void 0?true:V,H=T.fieldNames,W=T.onChange,_=T.treeDefaultExpandAll,z=T.showAllOption,G=T.initRootExpand,J=T.treeDefaultExpandedKeys,Q=o(T,E);var U=Object.prototype.hasOwnProperty.call(T,"treeSelectorList");var X=R||{};var Y=j||[];var Z=y.useSafeState(false),$=Z[0],ee=Z[1];var re=S(),te=re[0],le=re[1];var ae=k(D).useStore(),ne=ae[0],ie=ae[1];var oe="request-progress-"+D;var ue=Q.treeCheckable||Q.multiple;var se=g(true);var ce=b((function(){if(Q.treeCheckStrictly)return true;return O}),[O,Q.treeCheckStrictly]);var fe=b((function(){return u({label:"label",value:"value",children:"children",disabled:"disabled"},H)}),[H]);var de=b((function(){return u({label:"label",value:"value"},B)}),[B]);var ve=b((function(){if(z){var e=z===true;return{label:e?"全部":z.label,value:e?"":z.value}}return null}),[z]);var pe=S(),me=pe[0],he=pe[1];var Se=b((function(){return s(T.value).map((function(e){if(i(e)){return ce?e[de.value]:e[fe.value]}return e}))}),[fe.value,ce,de.value,T.value]);y.useEffectCustom((function(){if(ne.treeSelectorList.length>0){var e=[];if(se.current){se.current=false;if(J){e=J}else if(_){var r=Object.keys(ne.treeSelectorTiledMap).map((function(e){var r;return(r=ne.treeSelectorTiledMap[e])==null?void 0:r[fe.value]}));e=r}else if(G&&ne.treeSelectorList.length===1){e=[ne.treeSelectorList[0][fe.value]]}le(e)}else{if(!me){var t=M(Se,ne.treeSelectorTiledMap);le(t)}}}}),[P,ne.treeSelectorList]);var ge=function e(r){return r===""||v(r)};var be=function e(r){var t=X.onRequestResultAdapter?X.onRequestResultAdapter(r):r;if(t&&!n(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var Ce=a.useCallbackRef((function(){return new Promise((function(e,r){var t,a,n,i,o;if(!X.onRequest){return r(new Error("onRequest 调用接口服务不能为空"))}t=X.requiredParamsKeys||[];a=l({},X.params);n=t.find((function(e){return ge(a[e])}));if(n){void ie.changeRequestStatus("no-dependencies-params");console.warn("TreeSelectorWrapper组件:参数:"+t.join("、")+"不能为空");return e()}var u=function(){try{return e()}catch(e){return r(e)}};var s=function(e){try{ee(false);window[oe]=false;void ie.changeRequestStatus("request-error");I==null?void 0:I(e);return u()}catch(e){return r(e)}};try{ee(true);window[oe]=true;void ie.changeRequestStatus("request-progress");return Promise.resolve(X.onRequest==null?void 0:X.onRequest(a)).then((function(e){try{i=e;o=be(i);ee(false);window[oe]=false;ye(o||[]);return u()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));a.useCustomCompareEffect((function(){if(U)return;if(Y.length){ye([]);void Ce();return}var e=k(D).getState();if(e.requestStatus==="request-success"){return}if(!window[oe]){void Ce();return}}),Y,h);var ye=a.useCallbackRef((function(e){var r;if((e==null?void 0:e.length)===0&&ne.treeSelectorList.length===0){void ie.setSelectBoxList({treeSelectorList:[],treeSelectorTiledMap:{}});x==null?void 0:x([]);return}var t=ve?(r={},r[fe.label]=ve.label,r[fe.value]=ve.value,r):undefined;var l=z?[t].concat(e):e;void ie.setSelectBoxList({treeSelectorList:l,treeSelectorTiledMap:c(l,{value:fe.value,children:fe.children},"pId")});x==null?void 0:x(e)}));y.useEffectCustom((function(){if(U){ye(A||[])}}),[A]);var qe=a.useCallbackRef((function(e){le(e)}));var we=a.useCallbackRef((function(){void Ce()}));var Le=a.useCallbackRef((function(e,r,t){var l=s(e);if(Q.treeCheckStrictly){if(F&&t.checked){var a=ne.treeSelectorTiledMap[t==null?void 0:t.triggerValue];if(f(a[fe.children])){l=d([a],fe.children).map((function(e){return e[fe.value]}))}else{l=e==null?void 0:e.map((function(e){return e.value}))}}else{l=e==null?void 0:e.map((function(e){return e.value}))}}if(ce){var n=l.map((function(e){var r;var t=ne.treeSelectorTiledMap[e];return r={},r[de.label]=t[fe.label],r[de.value]=t[fe.value],r}));if(ue){W==null?void 0:W(n,n,t)}else{W==null?void 0:W(n[0],n[0],t)}}else{var i=l.map((function(e){return ne.treeSelectorTiledMap[e]}));if(ue){W==null?void 0:W(l,i,t)}else{W==null?void 0:W(l[0],i[0],t)}}}));var Te=a.useCallbackRef((function(e){if(!e)return null;return e.map((function(e){var r=(K==null?void 0:K(u({},e)))||e;var t=r[fe.children];var l=r[fe.value];var a=r[fe.label];var n=r[fe.disabled]?r[fe.disabled]:r.disabled;return C(p.TreeNode,u({},r,{disabled:n,value:l,title:a,key:""+l}),t&&t.length>0&&Te(t))}))}));var Re=function e(r){he(r);var t=[];if(!r){he(undefined);t=Se}else{Object.keys(ne.treeSelectorTiledMap).forEach((function(e){var l=ne.treeSelectorTiledMap[e];var a=l==null?void 0:l[fe.label];if(a!=null&&a.includes(r)){t.push(l[fe.value])}}))}var l=M(t,ne.treeSelectorTiledMap);le(l)};var je=ue?Se:Se[0];return L(p,u({searchValue:me,dropdownStyle:{maxHeight:400,overflow:"auto"},showSearch:true,treeLine:{showLeafIcon:false},treeNodeFilterProp:"title",switcherIcon:L(t,{}),popupMatchSelectWidth:false},Q,{className:r("v-tree-select-wrapper",Q.className),popupClassName:r("v-tree-select-wrapper-dropdown",Q.popupClassName),onChange:Le,treeExpandedKeys:te,value:je,onSearch:Re,loading:$,onTreeExpand:qe,style:u({width:"100%"},Q.style),suffixIcon:ne.requestStatus==="request-error"?L(e,{spin:$,onClick:we}):undefined,notFoundContent:L(q,{status:ne.requestStatus,messageConfig:N,loading:$,errorButton:L(m,{type:"primary",onClick:we,children:"重新获取数据"})}),children:Te(ne.treeSelectorList)}))};export{I as TreeSelectorWrapper};
6
+ import e from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import t from"@ant-design/icons/es/icons/CaretDownFilled";import{extend as l}from"@dimjs/utils/cjs/extend";import{hooks as a}from"@wove/react/cjs/hooks";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as i}from"@dimjs/utils/cjs/get";import{isObject as o}from"@dimjs/lang/cjs/is-object";import{a as u,_ as s}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{toArray as c,treeToTiledMap as f,isNotEmptyArray as d,treeToArray as v,isUndefinedOrNull as p}from"@flatbiz/utils";import{TreeSelect as m,Button as h}from"antd";import{dequal as S}from"dequal";import{useState as g,useRef as b,useMemo as C,createElement as y}from"react";import{fbaHooks as q}from"../fba-hooks/index.js";import{RequestStatus as w}from"../request-status/index.js";import{Model as L}from"@dimjs/model-react";import{jsx as T}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var R={treeSelectorList:[],treeSelectorTiledMap:{},queryIsEmpty:false};var j={actions:{setSelectBoxList:function e(r){return function(e){e.treeSelectorList=r.treeSelectorList||[];e.treeSelectorTiledMap=r.treeSelectorTiledMap||{};e.requestStatus="request-success"}},resetSelectBoxList:function e(){return function(e){e.treeSelectorList=[];e.treeSelectorTiledMap={}}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r}}},state:R};var k={};var x=function e(r){if(!k[r]){k[r]=L(j)}return k[r]};var M=function e(r,t){var l=[];var a=t[r];while(a){var n=a.pId;a=t[n];if(a){l.push(n)}}return l};var E=function e(r,t){if(r.length===0)return[];var l=[];r.forEach((function(e){var r=M(e,t);l.push.apply(l,r)}));return Array.from(new Set(l))};var I=["serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","treeSelectorList","requestMessageConfig","modelKey","value","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","selectedParentCheckedAllChildrenList","fieldNames","onChange","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys"];var A=function L(R){var j=R.serviceConfig,k=R.effectDependencyList,M=R.onTreeSelectorListChange,A=R.onTreeSelectorRequestError,N=R.treeSelectorList,D=R.requestMessageConfig,P=R.modelKey,O=R.value,B=R.labelInValue,K=R.labelInValueFieldNames,V=R.onTreeItemDataAdapter,F=R.selectedParentCheckedAllChildrenList,H=F===void 0?true:F,W=R.fieldNames,_=R.onChange,z=R.treeDefaultExpandAll,G=R.showAllOption,J=R.initRootExpand,Q=R.treeDefaultExpandedKeys,U=u(R,I);var X=Object.prototype.hasOwnProperty.call(R,"treeSelectorList");var Y=j||{};var Z=k||[];var $=q.useSafeState(false),ee=$[0],re=$[1];var te=g(),le=te[0],ae=te[1];var ne=x(P).useStore(),ie=ne[0],oe=ne[1];var ue="request-progress-"+P;var se=U.treeCheckable||U.multiple;var ce=b(true);var fe=C((function(){if(U.treeCheckStrictly)return true;return B}),[B,U.treeCheckStrictly]);var de=C((function(){return s({label:"label",value:"value",children:"children",disabled:"disabled"},W)}),[W]);var ve=C((function(){return s({label:"label",value:"value"},K)}),[K]);var pe=C((function(){if(G){var e=G===true;return{label:e?"全部":G.label,value:e?"":G.value}}return null}),[G]);var me=g(),he=me[0],Se=me[1];var ge=C((function(){return c(R.value).map((function(e){if(o(e)){return fe?e[ve.value]:e[de.value]}return e}))}),[de.value,fe,ve.value,R.value]);q.useEffectCustom((function(){if(ie.treeSelectorList.length>0){var e=[];if(ce.current){ce.current=false;if(Q){e=Q}else if(z){var r=Object.keys(ie.treeSelectorTiledMap).map((function(e){var r;return(r=ie.treeSelectorTiledMap[e])==null?void 0:r[de.value]}));e=r}else if(J&&ie.treeSelectorList.length===1){e=[ie.treeSelectorList[0][de.value]]}ae(e)}else{if(!he){var t=E(ge,ie.treeSelectorTiledMap);ae(t)}}}}),[O,ie.treeSelectorList]);var be=function e(r){return r===""||p(r)};var Ce=function e(r){var t=r;if(Y.onRequestResultAdapter){t=Y.onRequestResultAdapter(r)}else if(de.list){t=i(r,de.list)}if(t&&!n(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var ye=a.useCallbackRef((function(){return new Promise((function(e,r){var t,a,n,i,o;if(!Y.onRequest){return r(new Error("onRequest 调用接口服务不能为空"))}t=Y.requiredParamsKeys||[];a=l({},Y.params);n=t.find((function(e){return be(a[e])}));if(n){void oe.changeRequestStatus("no-dependencies-params");console.warn("TreeSelectorWrapper组件:参数:"+t.join("、")+"不能为空");return e()}var u=function(){try{return e()}catch(e){return r(e)}};var s=function(e){try{re(false);window[ue]=false;void oe.changeRequestStatus("request-error");A==null||A(e);return u()}catch(e){return r(e)}};try{re(true);window[ue]=true;void oe.changeRequestStatus("request-progress");return Promise.resolve(Y.onRequest==null?void 0:Y.onRequest(a)).then((function(e){try{i=e;o=Ce(i);re(false);window[ue]=false;qe(o||[]);return u()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));a.useCustomCompareEffect((function(){if(X)return;if(Z.length){qe([]);void ye();return}var e=x(P).getState();if(e.requestStatus==="request-success"){return}if(!window[ue]){void ye();return}}),Z,S);var qe=a.useCallbackRef((function(e){var r;if((e==null?void 0:e.length)===0&&ie.treeSelectorList.length===0){void oe.setSelectBoxList({treeSelectorList:[],treeSelectorTiledMap:{}});M==null||M([]);return}var t=pe?(r={},r[de.label]=pe.label,r[de.value]=pe.value,r):undefined;var l=G?[t].concat(e):e;void oe.setSelectBoxList({treeSelectorList:l,treeSelectorTiledMap:f(l,{value:de.value,children:de.children},"pId")});M==null||M(e)}));q.useEffectCustom((function(){if(X){qe(N||[])}}),[N]);var we=a.useCallbackRef((function(e){ae(e)}));var Le=a.useCallbackRef((function(){void ye()}));var Te=a.useCallbackRef((function(e,r,t){var l=c(e);if(U.treeCheckStrictly){if(H&&t.checked){var a=ie.treeSelectorTiledMap[t==null?void 0:t.triggerValue];if(d(a[de.children])){l=v([a],de.children).map((function(e){return e[de.value]}))}else{l=e==null?void 0:e.map((function(e){return e.value}))}}else{l=e==null?void 0:e.map((function(e){return e.value}))}}if(fe){var n=l.map((function(e){var r;var t=ie.treeSelectorTiledMap[e];return r={},r[ve.label]=t[de.label],r[ve.value]=t[de.value],r}));if(se){_==null||_(n,n,t)}else{_==null||_(n[0],n[0],t)}}else{var i=l.map((function(e){return ie.treeSelectorTiledMap[e]}));if(se){_==null||_(l,i,t)}else{_==null||_(l[0],i[0],t)}}}));var Re=a.useCallbackRef((function(e){if(!e)return null;return e.map((function(e){var r=(V==null?void 0:V(s({},e)))||e;var t=r[de.children];var l=r[de.value];var a=r[de.label];var n=r[de.disabled]?r[de.disabled]:r.disabled;return y(m.TreeNode,s({},r,{disabled:n,value:l,title:a,key:""+l}),t&&t.length>0&&Re(t))}))}));var je=function e(r){Se(r);var t=[];if(!r){Se(undefined);t=ge}else{Object.keys(ie.treeSelectorTiledMap).forEach((function(e){var l=ie.treeSelectorTiledMap[e];var a=l==null?void 0:l[de.label];if(a!=null&&a.includes(r)){t.push(l[de.value])}}))}var l=E(t,ie.treeSelectorTiledMap);ae(l)};var ke=se?ge:ge[0];return T(m,s({searchValue:he,dropdownStyle:{maxHeight:400,overflow:"auto"},showSearch:true,treeLine:{showLeafIcon:false},treeNodeFilterProp:"title",switcherIcon:T(t,{}),popupMatchSelectWidth:false},U,{className:r("v-tree-select-wrapper",U.className),popupClassName:r("v-tree-select-wrapper-dropdown",U.popupClassName),onChange:Te,treeExpandedKeys:le,value:ke,onSearch:je,loading:ee,onTreeExpand:we,style:s({width:"100%"},U.style),suffixIcon:ie.requestStatus==="request-error"?T(e,{spin:ee,onClick:Le}):undefined,notFoundContent:T(w,{status:ie.requestStatus,messageConfig:D,loading:ee,errorButton:T(h,{type:"primary",onClick:Le,children:"重新获取数据"})}),children:Re(ie.treeSelectorList)}))};export{A as TreeSelectorWrapper};
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-selector-wrapper/model.ts","@flatbiz/antd/src/tree-selector-wrapper/utils.ts","@flatbiz/antd/src/tree-selector-wrapper/selector.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeSelectProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeSelectorList: TSetDefaultDefined<TreeSelectProps['treeData'], []>;\n treeSelectorTiledMap: TPlainObject;\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setSelectBoxList: {\n treeSelectorList: ModelState['treeSelectorList'];\n treeSelectorTiledMap: TPlainObject;\n };\n resetSelectBoxList: void;\n changeRequestStatus: TRequestStatus;\n};\n\nconst defaultState: ModelState = {\n treeSelectorList: [],\n treeSelectorTiledMap: {},\n queryIsEmpty: false,\n};\n\nconst TreeSelectorWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setSelectBoxList: (params) => {\n return (state) => {\n state.treeSelectorList = params.treeSelectorList || [];\n state.treeSelectorTiledMap = params.treeSelectorTiledMap || {};\n state.requestStatus = 'request-success';\n };\n },\n resetSelectBoxList: () => {\n return (state) => {\n state.treeSelectorList = [];\n state.treeSelectorTiledMap = {};\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n };\n },\n },\n state: defaultState,\n};\n\nconst treeSelectorWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeSelectorWrapperModel('key值').useStore();\n * ```\n */\nexport const treeSelectorWrapperModel = (key: string) => {\n if (!treeSelectorWrapperModels[key]) {\n treeSelectorWrapperModels[key] = Model(TreeSelectorWrapperModel);\n }\n return treeSelectorWrapperModels[key];\n};\n","export const getExpandedKeysByValue = (value: string | number, treeSelectorTiledMap) => {\n const tempList: Array<string | number> = [];\n let parentNode = treeSelectorTiledMap[value];\n while (parentNode) {\n const pId = parentNode.pId;\n parentNode = treeSelectorTiledMap[pId];\n if (parentNode) {\n tempList.push(pId);\n }\n }\n return tempList;\n};\n\nexport const getExpandedKeysByValues = (values: Array<string | number>, treeSelectorTiledMap) => {\n if (values.length === 0) return [];\n const expandedKeys: Array<string | number> = [];\n values.forEach((value) => {\n const targetList = getExpandedKeysByValue(value, treeSelectorTiledMap);\n expandedKeys.push(...targetList);\n });\n return Array.from(new Set(expandedKeys));\n};\n","import { CaretDownFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray, isObject } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport {\n isNotEmptyArray,\n isUndefinedOrNull,\n toArray,\n treeToArray,\n treeToTiledMap,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, TreeSelect, type TreeSelectProps } from 'antd';\nimport { dequal } from 'dequal';\nimport { useMemo, useRef, useState, type DependencyList } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, type TRequestStatusProps } from '../request-status';\nimport { treeSelectorWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeysByValues } from './utils';\n\ntype TreeSelectorWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeSelectorServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeSelectorWrapperProps = Omit<\n TreeSelectProps,\n | 'treeExpandedKeys'\n | 'treeData'\n | 'loading'\n | 'onTreeExpand'\n | 'onChange'\n | 'value'\n | 'fieldNames'\n | 'defaultValue'\n | 'treeDataSimpleMode'\n | 'onSearch'\n> & {\n modelKey: string;\n fieldNames?: {\n label?: string;\n value?: string;\n children?: string;\n disabled?: string;\n };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`treeSelectorList`后无效果\n */\n serviceConfig?: TreeSelectorServiceConfig;\n /**\n * 当设置treeSelectorList后,serviceConfig 将失效\n */\n treeSelectorList?: TreeSelectProps['treeData'];\n /**\n * treeSelectorList发生变更时触发\n */\n onTreeSelectorListChange?: (treeSelectorList?: TreeSelectProps['treeData']) => void;\n /**\n * 通过服务获取数据异常回调,当设置`treeSelectorList`后无效果\n */\n onTreeSelectorRequestError?: (error: Error) => void;\n /**\n * 添加全部选项\n * ```\n * 1. showAllOption = true,添加默认全部选项(value值为空字符串)\n * 2. 可自定义全部选项,例如:{ label: '全部', value: 'all' }\n * 3. 自定义字段会通过fieldNames转换后使用\n * 4. 多选操作时,最好不要设置全部选项\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /**\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChange?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject,\n ) => void;\n /**\n * tree item 数据适配器,返回的数据会通过fieldNames配置取数据\n * ```\n * 1. 可用于设置disabled状态\n * onTreeItemDataAdapter: (dataItem) => {\n * if(dataItem.xx === xx){\n * dataItem['disabled] = true;\n * }\n * return dataItem;\n * }\n * 2. 可设置label数据显示\n * ```\n */\n onTreeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n // icon 无法实现、treeIcon不起作用4.20.0\n // showIcon?: boolean;\n // icon?: (data: TPlainObject) => ReactElement;\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?: TreeSelectorWrapperValue;\n\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n labelInValue?: boolean;\n /**\n * @deprecated 已弃用\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * treeCheckStrictly = true模式下有效,点击父节点是否选中所有子节点,默认值:true\n */\n selectedParentCheckedAllChildrenList?: boolean;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n};\n\n// type TreeSelectorWrapperPropsInner = TreeSelectorWrapperProps & {\n// onChange?: (selectedValue?: TreeSelectorWrapperValue) => void;\n// };\n\n/**\n * 树选择器包装组件,由于过度封装,部分antd TreeSelect原始功能不支持,不满足情况的请使用antd TreeSelect实现\n * ```\n * 1. 当设置treeSelectorList属性后,serviceConfig、onTreeSelectorListChange将失效\n * 2. 父节点默认不返回,需要返回请设置showCheckedStrategy\n * ```\n */\nexport const TreeSelectorWrapper = (props: TreeSelectorWrapperProps) => {\n const {\n serviceConfig,\n effectDependencyList,\n onTreeSelectorListChange,\n onTreeSelectorRequestError,\n treeSelectorList,\n requestMessageConfig,\n modelKey,\n value,\n labelInValue: _labelInValue,\n labelInValueFieldNames,\n onTreeItemDataAdapter,\n selectedParentCheckedAllChildrenList = true,\n fieldNames,\n onChange,\n treeDefaultExpandAll,\n showAllOption,\n initRootExpand,\n treeDefaultExpandedKeys,\n ...otherProps\n } = props;\n /**\n * 不能使用key、defaultValue模式\n * 1. 勾选的和回填选中不相同情况,勾选后会渲染defaultValue模式后,弹框被关闭,操作体验存在问题\n */\n const hasTreeSelectorList = Object.prototype.hasOwnProperty.call(props, 'treeSelectorList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeSelectorWrapperModel(modelKey).useStore();\n const requestPreKey = `request-progress-${modelKey}`;\n const isMultiple = otherProps.treeCheckable || otherProps.multiple;\n const responseFirstRef = useRef(true);\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n const labelInValue = useMemo(() => {\n if (otherProps.treeCheckStrictly) return true;\n return _labelInValue;\n }, [_labelInValue, otherProps.treeCheckStrictly]);\n\n const fieldNamesMerge = useMemo(() => {\n return {\n label: 'label',\n value: 'value',\n children: 'children',\n disabled: 'disabled',\n ...fieldNames,\n };\n }, [fieldNames]);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n\n const allOptionConfig = useMemo(() => {\n if (showAllOption) {\n const isTrue = showAllOption === true;\n return {\n label: isTrue ? '全部' : showAllOption.label,\n value: isTrue ? '' : showAllOption.value,\n };\n }\n return null;\n }, [showAllOption]);\n\n const [searchValue, setSearchValue] = useState<string>();\n\n const propsPureValue = useMemo(() => {\n return toArray<TAny>(props.value).map((item) => {\n if (isObject(item)) {\n return (labelInValue ? item[labelInValueFieldNamesMerge.value] : item[fieldNamesMerge.value]) as\n | string\n | number;\n }\n return item as string | number;\n });\n }, [fieldNamesMerge.value, labelInValue, labelInValueFieldNamesMerge.value, props.value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeSelectorList.length > 0) {\n let treeExpandedKeys: Array<string | number> = [];\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (treeDefaultExpandedKeys) {\n treeExpandedKeys = treeDefaultExpandedKeys as Array<string | number>;\n } else if (treeDefaultExpandAll) {\n const allValues = Object.keys(state.treeSelectorTiledMap).map(\n (item) => state.treeSelectorTiledMap[item]?.[fieldNamesMerge.value] as string | number,\n );\n treeExpandedKeys = allValues;\n } else if (initRootExpand && state.treeSelectorList.length === 1) {\n treeExpandedKeys = [state.treeSelectorList[0][fieldNamesMerge.value]];\n }\n setTreeExpandedKeys(treeExpandedKeys);\n } else {\n if (!searchValue) {\n const expandedKeys = getExpandedKeysByValues(propsPureValue, state.treeSelectorTiledMap);\n setTreeExpandedKeys(expandedKeys);\n }\n }\n }\n }, [value, state.treeSelectorList]);\n\n const valueIsEmpty = (value: string | number) => {\n return value === '' || isUndefinedOrNull(value);\n };\n\n const serviceResponseHandle = (respData) => {\n const result = newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData;\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys || [];\n const params = extend({}, newServiceConfig.params);\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n void actions.changeRequestStatus('no-dependencies-params');\n console.warn(`TreeSelectorWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n try {\n setLoading(true);\n window[requestPreKey] = true;\n void actions.changeRequestStatus('request-progress');\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeSelectProps['treeData'];\n setLoading(false);\n window[requestPreKey] = false;\n onChangeSelectorList(respData || []);\n } catch (error: TAny) {\n setLoading(false);\n window[requestPreKey] = false;\n void actions.changeRequestStatus('request-error');\n onTreeSelectorRequestError?.(error);\n }\n });\n\n hooks.useCustomCompareEffect(\n () => {\n if (hasTreeSelectorList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (newEffectDependencyList.length) {\n // 内部主动清楚数据,被依赖的数据发生变更时,依赖组件数据清空\n onChangeSelectorList([]);\n void startDataSourceRequest();\n return;\n }\n const allState = treeSelectorWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n },\n newEffectDependencyList,\n dequal,\n );\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeSelectorList.length === 0) {\n void actions.setSelectBoxList({\n treeSelectorList: [],\n treeSelectorTiledMap: {},\n });\n onTreeSelectorListChange?.([]);\n return;\n }\n // 全部选项\n const tempItem = allOptionConfig\n ? {\n [fieldNamesMerge.label]: allOptionConfig.label,\n [fieldNamesMerge.value]: allOptionConfig.value,\n }\n : undefined;\n const newdataList = showAllOption ? [tempItem, ...dataList] : dataList;\n void actions.setSelectBoxList({\n treeSelectorList: newdataList,\n treeSelectorTiledMap: treeToTiledMap(\n newdataList,\n {\n value: fieldNamesMerge.value,\n children: fieldNamesMerge.children,\n },\n 'pId',\n ),\n });\n onTreeSelectorListChange?.(dataList);\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasTreeSelectorList) {\n onChangeSelectorList(treeSelectorList || []);\n }\n }, [treeSelectorList]);\n\n const onTreeExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n /**\n * 根据treeCheckable、treeCheckStrictly、showCheckedStrategy等设置情况,判断返回数据是否包含父节点\n * 1. 当 treeCheckable = true,changeValue 数据格式为 { label,value }[]\n */\n const onInnerChange = hooks.useCallbackRef((changeValue: TAny, _data, triggerInfo: TPlainObject) => {\n let resultValueList = toArray<TAny>(changeValue);\n if (otherProps.treeCheckStrictly) {\n if (selectedParentCheckedAllChildrenList && triggerInfo.checked) {\n const target = state.treeSelectorTiledMap[triggerInfo?.triggerValue];\n if (isNotEmptyArray(target[fieldNamesMerge.children])) {\n resultValueList = treeToArray([target], fieldNamesMerge.children).map((item) => {\n return item[fieldNamesMerge.value];\n });\n } else {\n resultValueList = changeValue?.map((item) => item.value);\n }\n } else {\n resultValueList = changeValue?.map((item) => item.value);\n }\n }\n if (labelInValue) {\n const resultItemList = resultValueList.map((item) => {\n const target = state.treeSelectorTiledMap[item];\n return {\n [labelInValueFieldNamesMerge.label]: target[fieldNamesMerge.label],\n [labelInValueFieldNamesMerge.value]: target[fieldNamesMerge.value],\n };\n });\n if (isMultiple) {\n onChange?.(resultItemList, resultItemList, triggerInfo);\n } else {\n onChange?.(resultItemList[0], resultItemList[0], triggerInfo);\n }\n } else {\n const resultItemList = resultValueList.map((item) => {\n return state.treeSelectorTiledMap[item];\n });\n if (isMultiple) {\n onChange?.(resultValueList, resultItemList, triggerInfo);\n } else {\n onChange?.(resultValueList[0], resultItemList[0], triggerInfo);\n }\n }\n });\n\n const mapTree = hooks.useCallbackRef((data) => {\n if (!data) return null;\n return data.map((item) => {\n const itemAdapterData = onTreeItemDataAdapter?.({ ...item }) || item;\n const children = itemAdapterData[fieldNamesMerge.children];\n const value = itemAdapterData[fieldNamesMerge.value];\n const label = itemAdapterData[fieldNamesMerge.label];\n const disabled = itemAdapterData[fieldNamesMerge.disabled]\n ? itemAdapterData[fieldNamesMerge.disabled]\n : itemAdapterData.disabled;\n return (\n <TreeSelect.TreeNode\n {...itemAdapterData}\n disabled={disabled}\n value={value}\n title={label}\n key={`${value}`}\n >\n {children && children.length > 0 && mapTree(children)}\n </TreeSelect.TreeNode>\n );\n });\n });\n\n const onSearch = (searchValue?: string) => {\n setSearchValue(searchValue);\n let targetKeyList: Array<string | number> = [];\n if (!searchValue) {\n setSearchValue(undefined);\n targetKeyList = propsPureValue;\n } else {\n Object.keys(state.treeSelectorTiledMap).forEach((item) => {\n const target = state.treeSelectorTiledMap[item];\n const label = target?.[fieldNamesMerge.label] as string;\n if (label?.includes(searchValue)) {\n targetKeyList.push(target[fieldNamesMerge.value]);\n }\n });\n }\n\n const expandedKeysMerge = getExpandedKeysByValues(targetKeyList, state.treeSelectorTiledMap);\n setTreeExpandedKeys(expandedKeysMerge);\n };\n\n const treeValue = isMultiple ? propsPureValue : propsPureValue[0];\n\n /**\n * 1. 使用 TreeNode 渲染节点,不能重写 fieldNames 配置\n * 2. 使用 TreeNode 是为了实现 TreeNode ICON\n */\n return (\n <TreeSelect\n searchValue={searchValue}\n dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}\n showSearch={true}\n treeLine={{ showLeafIcon: false }}\n treeNodeFilterProp=\"title\"\n switcherIcon={<CaretDownFilled />}\n popupMatchSelectWidth={false}\n {...otherProps}\n className={classNames('v-tree-select-wrapper', otherProps.className)}\n popupClassName={classNames('v-tree-select-wrapper-dropdown', otherProps.popupClassName)}\n onChange={onInnerChange}\n treeExpandedKeys={treeExpandedKeys}\n value={treeValue}\n onSearch={onSearch}\n loading={loading}\n onTreeExpand={onTreeExpand}\n style={{ width: '100%', ...otherProps.style }}\n suffixIcon={\n state.requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n ) : undefined\n }\n notFoundContent={\n <RequestStatus\n status={state.requestStatus}\n messageConfig={requestMessageConfig}\n loading={loading}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {mapTree(state.treeSelectorList)}\n </TreeSelect>\n );\n};\n"],"names":["defaultState","treeSelectorList","treeSelectorTiledMap","queryIsEmpty","TreeSelectorWrapperModel","actions","setSelectBoxList","params","state","requestStatus","resetSelectBoxList","changeRequestStatus","treeSelectorWrapperModels","treeSelectorWrapperModel","key","Model","getExpandedKeysByValue","value","tempList","parentNode","pId","push","getExpandedKeysByValues","values","length","expandedKeys","forEach","targetList","apply","Array","from","Set","TreeSelectorWrapper","props","serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","requestMessageConfig","modelKey","_labelInValue","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","_props$selectedParent","selectedParentCheckedAllChildrenList","fieldNames","onChange","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys","otherProps","_objectWithoutPropertiesLoose","_excluded","hasTreeSelectorList","Object","prototype","hasOwnProperty","call","newServiceConfig","newEffectDependencyList","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeSelectorWrapperM","useStore","requestPreKey","isMultiple","treeCheckable","multiple","responseFirstRef","useRef","useMemo","treeCheckStrictly","fieldNamesMerge","_extends","label","children","disabled","labelInValueFieldNamesMerge","allOptionConfig","isTrue","_useState2","searchValue","setSearchValue","propsPureValue","toArray","map","item","_isObject","useEffectCustom","current","allValues","keys","_state$treeSelectorTi","valueIsEmpty","isUndefinedOrNull","serviceResponseHandle","respData","result","onRequestResultAdapter","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","isEmpty","_respData","_respData2","onRequest","Error","_extend","find","join","$Try_1_Post","$boundEx","$Try_1_Catch","error","window","resolve","then","$await_2","onChangeSelectorList","useCustomCompareEffect","allState","getState","dequal","dataList","_ref","tempItem","undefined","newdataList","concat","treeToTiledMap","onTreeExpand","onAgainRequest","onInnerChange","changeValue","_data","triggerInfo","resultValueList","checked","target","triggerValue","isNotEmptyArray","treeToArray","resultItemList","_ref2","mapTree","data","itemAdapterData","_createElement","TreeSelect","TreeNode","title","onSearch","targetKeyList","includes","expandedKeysMerge","treeValue","_jsx","dropdownStyle","maxHeight","overflow","showSearch","treeLine","showLeafIcon","treeNodeFilterProp","switcherIcon","_CaretDownFilled","popupMatchSelectWidth","className","_classNames","popupClassName","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-selector-wrapper/model.ts","@flatbiz/antd/src/tree-selector-wrapper/utils.ts","@flatbiz/antd/src/tree-selector-wrapper/selector.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeSelectProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeSelectorList: TSetDefaultDefined<TreeSelectProps['treeData'], []>;\n treeSelectorTiledMap: TPlainObject;\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setSelectBoxList: {\n treeSelectorList: ModelState['treeSelectorList'];\n treeSelectorTiledMap: TPlainObject;\n };\n resetSelectBoxList: void;\n changeRequestStatus: TRequestStatus;\n};\n\nconst defaultState: ModelState = {\n treeSelectorList: [],\n treeSelectorTiledMap: {},\n queryIsEmpty: false,\n};\n\nconst TreeSelectorWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setSelectBoxList: (params) => {\n return (state) => {\n state.treeSelectorList = params.treeSelectorList || [];\n state.treeSelectorTiledMap = params.treeSelectorTiledMap || {};\n state.requestStatus = 'request-success';\n };\n },\n resetSelectBoxList: () => {\n return (state) => {\n state.treeSelectorList = [];\n state.treeSelectorTiledMap = {};\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n };\n },\n },\n state: defaultState,\n};\n\nconst treeSelectorWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeSelectorWrapperModel('key值').useStore();\n * ```\n */\nexport const treeSelectorWrapperModel = (key: string) => {\n if (!treeSelectorWrapperModels[key]) {\n treeSelectorWrapperModels[key] = Model(TreeSelectorWrapperModel);\n }\n return treeSelectorWrapperModels[key];\n};\n","export const getExpandedKeysByValue = (value: string | number, treeSelectorTiledMap) => {\n const tempList: Array<string | number> = [];\n let parentNode = treeSelectorTiledMap[value];\n while (parentNode) {\n const pId = parentNode.pId;\n parentNode = treeSelectorTiledMap[pId];\n if (parentNode) {\n tempList.push(pId);\n }\n }\n return tempList;\n};\n\nexport const getExpandedKeysByValues = (values: Array<string | number>, treeSelectorTiledMap) => {\n if (values.length === 0) return [];\n const expandedKeys: Array<string | number> = [];\n values.forEach((value) => {\n const targetList = getExpandedKeysByValue(value, treeSelectorTiledMap);\n expandedKeys.push(...targetList);\n });\n return Array.from(new Set(expandedKeys));\n};\n","import { CaretDownFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray, isObject } from '@dimjs/lang';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport {\n isNotEmptyArray,\n isUndefinedOrNull,\n toArray,\n treeToArray,\n treeToTiledMap,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, TreeSelect, type TreeSelectProps } from 'antd';\nimport { dequal } from 'dequal';\nimport { useMemo, useRef, useState, type DependencyList } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, type TRequestStatusProps } from '../request-status';\nimport { treeSelectorWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeysByValues } from './utils';\n\ntype TreeSelectorWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeSelectorServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeSelectorWrapperProps = Omit<\n TreeSelectProps,\n | 'treeExpandedKeys'\n | 'treeData'\n | 'loading'\n | 'onTreeExpand'\n | 'onChange'\n | 'value'\n | 'fieldNames'\n | 'defaultValue'\n | 'treeDataSimpleMode'\n | 'onSearch'\n> & {\n modelKey: string;\n fieldNames?: {\n /**\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter 后此配置失效\n */\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n disabled?: string;\n };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`treeSelectorList`后无效果\n */\n serviceConfig?: TreeSelectorServiceConfig;\n /**\n * 当设置treeSelectorList后,serviceConfig 将失效\n */\n treeSelectorList?: TreeSelectProps['treeData'];\n /**\n * treeSelectorList发生变更时触发\n */\n onTreeSelectorListChange?: (treeSelectorList?: TreeSelectProps['treeData']) => void;\n /**\n * 通过服务获取数据异常回调,当设置`treeSelectorList`后无效果\n */\n onTreeSelectorRequestError?: (error: Error) => void;\n /**\n * 添加全部选项\n * ```\n * 1. showAllOption = true,添加默认全部选项(value值为空字符串)\n * 2. 可自定义全部选项,例如:{ label: '全部', value: 'all' }\n * 3. 自定义字段会通过fieldNames转换后使用\n * 4. 多选操作时,最好不要设置全部选项\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /**\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChange?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject,\n ) => void;\n /**\n * tree item 数据适配器,返回的数据会通过fieldNames配置取数据\n * ```\n * 1. 可用于设置disabled状态\n * onTreeItemDataAdapter: (dataItem) => {\n * if(dataItem.xx === xx){\n * dataItem['disabled] = true;\n * }\n * return dataItem;\n * }\n * 2. 可设置label数据显示\n * ```\n */\n onTreeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n // icon 无法实现、treeIcon不起作用4.20.0\n // showIcon?: boolean;\n // icon?: (data: TPlainObject) => ReactElement;\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?: TreeSelectorWrapperValue;\n\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n labelInValue?: boolean;\n /**\n * @deprecated 已弃用\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * treeCheckStrictly = true模式下有效,点击父节点是否选中所有子节点,默认值:true\n */\n selectedParentCheckedAllChildrenList?: boolean;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n};\n\n// type TreeSelectorWrapperPropsInner = TreeSelectorWrapperProps & {\n// onChange?: (selectedValue?: TreeSelectorWrapperValue) => void;\n// };\n\n/**\n * 树选择器包装组件,由于过度封装,部分antd TreeSelect原始功能不支持,不满足情况的请使用antd TreeSelect实现\n * ```\n * 1. 当设置treeSelectorList属性后,serviceConfig、onTreeSelectorListChange将失效\n * 2. 父节点默认不返回,需要返回请设置showCheckedStrategy\n * ```\n */\nexport const TreeSelectorWrapper = (props: TreeSelectorWrapperProps) => {\n const {\n serviceConfig,\n effectDependencyList,\n onTreeSelectorListChange,\n onTreeSelectorRequestError,\n treeSelectorList,\n requestMessageConfig,\n modelKey,\n value,\n labelInValue: _labelInValue,\n labelInValueFieldNames,\n onTreeItemDataAdapter,\n selectedParentCheckedAllChildrenList = true,\n fieldNames,\n onChange,\n treeDefaultExpandAll,\n showAllOption,\n initRootExpand,\n treeDefaultExpandedKeys,\n ...otherProps\n } = props;\n /**\n * 不能使用key、defaultValue模式\n * 1. 勾选的和回填选中不相同情况,勾选后会渲染defaultValue模式后,弹框被关闭,操作体验存在问题\n */\n const hasTreeSelectorList = Object.prototype.hasOwnProperty.call(props, 'treeSelectorList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeSelectorWrapperModel(modelKey).useStore();\n const requestPreKey = `request-progress-${modelKey}`;\n const isMultiple = otherProps.treeCheckable || otherProps.multiple;\n const responseFirstRef = useRef(true);\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n const labelInValue = useMemo(() => {\n if (otherProps.treeCheckStrictly) return true;\n return _labelInValue;\n }, [_labelInValue, otherProps.treeCheckStrictly]);\n\n const fieldNamesMerge = useMemo(() => {\n return {\n label: 'label',\n value: 'value',\n children: 'children',\n disabled: 'disabled',\n ...fieldNames,\n };\n }, [fieldNames]);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n\n const allOptionConfig = useMemo(() => {\n if (showAllOption) {\n const isTrue = showAllOption === true;\n return {\n label: isTrue ? '全部' : showAllOption.label,\n value: isTrue ? '' : showAllOption.value,\n };\n }\n return null;\n }, [showAllOption]);\n\n const [searchValue, setSearchValue] = useState<string>();\n\n const propsPureValue = useMemo(() => {\n return toArray<TAny>(props.value).map((item) => {\n if (isObject(item)) {\n return (labelInValue ? item[labelInValueFieldNamesMerge.value] : item[fieldNamesMerge.value]) as\n | string\n | number;\n }\n return item as string | number;\n });\n }, [fieldNamesMerge.value, labelInValue, labelInValueFieldNamesMerge.value, props.value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeSelectorList.length > 0) {\n let treeExpandedKeys: Array<string | number> = [];\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (treeDefaultExpandedKeys) {\n treeExpandedKeys = treeDefaultExpandedKeys as Array<string | number>;\n } else if (treeDefaultExpandAll) {\n const allValues = Object.keys(state.treeSelectorTiledMap).map(\n (item) => state.treeSelectorTiledMap[item]?.[fieldNamesMerge.value] as string | number,\n );\n treeExpandedKeys = allValues;\n } else if (initRootExpand && state.treeSelectorList.length === 1) {\n treeExpandedKeys = [state.treeSelectorList[0][fieldNamesMerge.value]];\n }\n setTreeExpandedKeys(treeExpandedKeys);\n } else {\n if (!searchValue) {\n const expandedKeys = getExpandedKeysByValues(propsPureValue, state.treeSelectorTiledMap);\n setTreeExpandedKeys(expandedKeys);\n }\n }\n }\n }, [value, state.treeSelectorList]);\n\n const valueIsEmpty = (value: string | number) => {\n return value === '' || isUndefinedOrNull(value);\n };\n\n const serviceResponseHandle = (respData) => {\n let result = respData;\n if (newServiceConfig.onRequestResultAdapter) {\n result = newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNamesMerge.list) {\n result = get(respData, fieldNamesMerge.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys || [];\n const params = extend({}, newServiceConfig.params);\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n void actions.changeRequestStatus('no-dependencies-params');\n console.warn(`TreeSelectorWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n try {\n setLoading(true);\n window[requestPreKey] = true;\n void actions.changeRequestStatus('request-progress');\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeSelectProps['treeData'];\n setLoading(false);\n window[requestPreKey] = false;\n onChangeSelectorList(respData || []);\n } catch (error: TAny) {\n setLoading(false);\n window[requestPreKey] = false;\n void actions.changeRequestStatus('request-error');\n onTreeSelectorRequestError?.(error);\n }\n });\n\n hooks.useCustomCompareEffect(\n () => {\n if (hasTreeSelectorList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (newEffectDependencyList.length) {\n // 内部主动清楚数据,被依赖的数据发生变更时,依赖组件数据清空\n onChangeSelectorList([]);\n void startDataSourceRequest();\n return;\n }\n const allState = treeSelectorWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n },\n newEffectDependencyList,\n dequal,\n );\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeSelectorList.length === 0) {\n void actions.setSelectBoxList({\n treeSelectorList: [],\n treeSelectorTiledMap: {},\n });\n onTreeSelectorListChange?.([]);\n return;\n }\n // 全部选项\n const tempItem = allOptionConfig\n ? {\n [fieldNamesMerge.label]: allOptionConfig.label,\n [fieldNamesMerge.value]: allOptionConfig.value,\n }\n : undefined;\n const newdataList = showAllOption ? [tempItem, ...dataList] : dataList;\n void actions.setSelectBoxList({\n treeSelectorList: newdataList,\n treeSelectorTiledMap: treeToTiledMap(\n newdataList,\n {\n value: fieldNamesMerge.value,\n children: fieldNamesMerge.children,\n },\n 'pId',\n ),\n });\n onTreeSelectorListChange?.(dataList);\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasTreeSelectorList) {\n onChangeSelectorList(treeSelectorList || []);\n }\n }, [treeSelectorList]);\n\n const onTreeExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n /**\n * 根据treeCheckable、treeCheckStrictly、showCheckedStrategy等设置情况,判断返回数据是否包含父节点\n * 1. 当 treeCheckable = true,changeValue 数据格式为 { label,value }[]\n */\n const onInnerChange = hooks.useCallbackRef((changeValue: TAny, _data, triggerInfo: TPlainObject) => {\n let resultValueList = toArray<TAny>(changeValue);\n if (otherProps.treeCheckStrictly) {\n if (selectedParentCheckedAllChildrenList && triggerInfo.checked) {\n const target = state.treeSelectorTiledMap[triggerInfo?.triggerValue];\n if (isNotEmptyArray(target[fieldNamesMerge.children])) {\n resultValueList = treeToArray([target], fieldNamesMerge.children).map((item) => {\n return item[fieldNamesMerge.value];\n });\n } else {\n resultValueList = changeValue?.map((item) => item.value);\n }\n } else {\n resultValueList = changeValue?.map((item) => item.value);\n }\n }\n if (labelInValue) {\n const resultItemList = resultValueList.map((item) => {\n const target = state.treeSelectorTiledMap[item];\n return {\n [labelInValueFieldNamesMerge.label]: target[fieldNamesMerge.label],\n [labelInValueFieldNamesMerge.value]: target[fieldNamesMerge.value],\n };\n });\n if (isMultiple) {\n onChange?.(resultItemList, resultItemList, triggerInfo);\n } else {\n onChange?.(resultItemList[0], resultItemList[0], triggerInfo);\n }\n } else {\n const resultItemList = resultValueList.map((item) => {\n return state.treeSelectorTiledMap[item];\n });\n if (isMultiple) {\n onChange?.(resultValueList, resultItemList, triggerInfo);\n } else {\n onChange?.(resultValueList[0], resultItemList[0], triggerInfo);\n }\n }\n });\n\n const mapTree = hooks.useCallbackRef((data) => {\n if (!data) return null;\n return data.map((item) => {\n const itemAdapterData = onTreeItemDataAdapter?.({ ...item }) || item;\n const children = itemAdapterData[fieldNamesMerge.children];\n const value = itemAdapterData[fieldNamesMerge.value];\n const label = itemAdapterData[fieldNamesMerge.label];\n const disabled = itemAdapterData[fieldNamesMerge.disabled]\n ? itemAdapterData[fieldNamesMerge.disabled]\n : itemAdapterData.disabled;\n return (\n <TreeSelect.TreeNode\n {...itemAdapterData}\n disabled={disabled}\n value={value}\n title={label}\n key={`${value}`}\n >\n {children && children.length > 0 && mapTree(children)}\n </TreeSelect.TreeNode>\n );\n });\n });\n\n const onSearch = (searchValue?: string) => {\n setSearchValue(searchValue);\n let targetKeyList: Array<string | number> = [];\n if (!searchValue) {\n setSearchValue(undefined);\n targetKeyList = propsPureValue;\n } else {\n Object.keys(state.treeSelectorTiledMap).forEach((item) => {\n const target = state.treeSelectorTiledMap[item];\n const label = target?.[fieldNamesMerge.label] as string;\n if (label?.includes(searchValue)) {\n targetKeyList.push(target[fieldNamesMerge.value]);\n }\n });\n }\n\n const expandedKeysMerge = getExpandedKeysByValues(targetKeyList, state.treeSelectorTiledMap);\n setTreeExpandedKeys(expandedKeysMerge);\n };\n\n const treeValue = isMultiple ? propsPureValue : propsPureValue[0];\n\n /**\n * 1. 使用 TreeNode 渲染节点,不能重写 fieldNames 配置\n * 2. 使用 TreeNode 是为了实现 TreeNode ICON\n */\n return (\n <TreeSelect\n searchValue={searchValue}\n dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}\n showSearch={true}\n treeLine={{ showLeafIcon: false }}\n treeNodeFilterProp=\"title\"\n switcherIcon={<CaretDownFilled />}\n popupMatchSelectWidth={false}\n {...otherProps}\n className={classNames('v-tree-select-wrapper', otherProps.className)}\n popupClassName={classNames('v-tree-select-wrapper-dropdown', otherProps.popupClassName)}\n onChange={onInnerChange}\n treeExpandedKeys={treeExpandedKeys}\n value={treeValue}\n onSearch={onSearch}\n loading={loading}\n onTreeExpand={onTreeExpand}\n style={{ width: '100%', ...otherProps.style }}\n suffixIcon={\n state.requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n ) : undefined\n }\n notFoundContent={\n <RequestStatus\n status={state.requestStatus}\n messageConfig={requestMessageConfig}\n loading={loading}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {mapTree(state.treeSelectorList)}\n </TreeSelect>\n );\n};\n"],"names":["defaultState","treeSelectorList","treeSelectorTiledMap","queryIsEmpty","TreeSelectorWrapperModel","actions","setSelectBoxList","params","state","requestStatus","resetSelectBoxList","changeRequestStatus","treeSelectorWrapperModels","treeSelectorWrapperModel","key","Model","getExpandedKeysByValue","value","tempList","parentNode","pId","push","getExpandedKeysByValues","values","length","expandedKeys","forEach","targetList","apply","Array","from","Set","TreeSelectorWrapper","props","serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","requestMessageConfig","modelKey","_labelInValue","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","_props$selectedParent","selectedParentCheckedAllChildrenList","fieldNames","onChange","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys","otherProps","_objectWithoutPropertiesLoose","_excluded","hasTreeSelectorList","Object","prototype","hasOwnProperty","call","newServiceConfig","newEffectDependencyList","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeSelectorWrapperM","useStore","requestPreKey","isMultiple","treeCheckable","multiple","responseFirstRef","useRef","useMemo","treeCheckStrictly","fieldNamesMerge","_extends","label","children","disabled","labelInValueFieldNamesMerge","allOptionConfig","isTrue","_useState2","searchValue","setSearchValue","propsPureValue","toArray","map","item","_isObject","useEffectCustom","current","allValues","keys","_state$treeSelectorTi","valueIsEmpty","isUndefinedOrNull","serviceResponseHandle","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","isEmpty","_respData","onRequest","Error","_extend","find","join","$Try_1_Post","$boundEx","$Try_1_Catch","error","window","resolve","then","$await_2","onChangeSelectorList","useCustomCompareEffect","allState","getState","dequal","dataList","_ref","tempItem","undefined","newdataList","concat","treeToTiledMap","onTreeExpand","onAgainRequest","onInnerChange","changeValue","_data","triggerInfo","resultValueList","checked","target","triggerValue","isNotEmptyArray","treeToArray","resultItemList","_ref2","mapTree","data","itemAdapterData","_createElement","TreeSelect","TreeNode","title","onSearch","targetKeyList","includes","expandedKeysMerge","treeValue","_jsx","dropdownStyle","maxHeight","overflow","showSearch","treeLine","showLeafIcon","treeNodeFilterProp","switcherIcon","_CaretDownFilled","popupMatchSelectWidth","className","_classNames","popupClassName","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type"],"mappings":"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"}
@@ -13,5 +13,5 @@ import './../dropdown-menu-wrapper/index.css';
13
13
  import './../input-search-wrapper/index.css';
14
14
  import './index.css';
15
15
  /*! @flatjs/forge MIT @flatbiz/antd */
16
- import{treeToArray as e,arrayToMap as r,treeToTiledArray as t,treeLeafParentsArray as n,isUndefinedOrNull as a,isNotEmptyArray as i,treeToTiledMap as l,toArray as s,treeFilter as o,attachPropertiesToComponent as u}from"@flatbiz/utils";import{isArray as c}from"@dimjs/lang/cjs/is-array";import{Model as d}from"@dimjs/model-react";import f from"@ant-design/icons/es/icons/CaretDownFilled";import v from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as p}from"@dimjs/utils/cjs/class-names";import{isString as m}from"@dimjs/lang/cjs/is-string";import{extend as h}from"@dimjs/utils/cjs/extend";import{hooks as g}from"@wove/react/cjs/hooks";import{get as y}from"@dimjs/utils/cjs/get";import{_ as b,a as L}from"../_rollupPluginBabelHelpers-a0769acd.js";import{cloneState as C}from"@dimjs/model";import{Spin as w,Tree as j,Button as T,message as A}from"antd";import{forwardRef as N,useState as R,useMemo as S,useRef as q,useImperativeHandle as k,Fragment as x,isValidElement as M}from"react";import{ButtonOperate as E}from"../button-operate/index.js";import{DropdownMenuWrapper as D}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as P}from"../fba-hooks/index.js";import{InputSearchWrapper as _}from"../input-search-wrapper/index.js";import{RequestStatus as I}from"../request-status/index.js";import{tree as O}from"@dimjs/utils/cjs/tree";import{isObject as V}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as F,jsx as K}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../use-responsive-point-21b8c601.js";var U={treeList:[],treeTiledArray:[],treeTiledArrayMap:{},queryIsEmpty:false};var z={actions:{setTreeList:function t(n){return function(t){t.treeList=n.treeList||[];t.treeTiledArray=e(t.treeList,n.childrenName);t.treeTiledArrayMap=r(t.treeTiledArray,n.valueName);t.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[];e.treeTiledArray=[];e.treeTiledArrayMap={}}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r.status;if(r.status==="request-error"){e.treeList=[];e.treeTiledArray=[];e.treeTiledArrayMap={};e.requestErrorMessage=r.errorMessage||"数据查询异常"}else{e.requestErrorMessage=undefined}}},treeListAppendChildren:function t(n){return function(t){var a=e(t.treeList,n.childrenName);var i=r(a,n.valueName);var l=i[n.value];if(l){if(c(n.appendList)&&n.appendList.length>0){l[n.childrenName]=n.appendList}else{l.isLeaf=true}}t.treeTiledArray=a;t.treeTiledArrayMap=i}}},state:U};var H={};var B=function e(r){if(!H[r]){H[r]=d(z)}return H[r]};var Y=function e(r){var t=B(r).getState();return t.treeList};var G=function r(t,n){var a=e(t,n.children).filter((function(e){var r=e[n.children];return r&&r.length>0})).map((function(e){return e[n.value]}));return a};var W=function e(r,a,i){var l=t(a,i);return n(r,l,true,{value:"value",parentValue:"parentValue"}).filter((function(e){var r=e[i.children];return r&&r.length>0})).map((function(e){return e.value}))};var J=function e(r,t){var n=a(r)?[]:r;n=c(n)?n:[n];n=n.map((function(e){if(V(e))return e[t.value];return e}));return n};var Q=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var s=n.dropPosition-Number(l[l.length-1]);var o=t.value;var u=t.children;var c=function e(r,t,n){for(var a=0;a<r.length;a++){if(r[a][o]===t){return n(r[a],a,r)}if(r[a][u]){e(r[a][u],t,n)}}};var d=C(r);var f;c(d,i,(function(e,r,t){t.splice(r,1);f=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else{var v=[];var p;c(d,a,(function(e,r,t){v=t;p=r}));if(s===-1){v.splice(p,0,f)}else{v.splice(p+1,0,f)}}return{dataList:d,dragNodeData:X(i,d,t)}};var X=function r(t,n,a){var i;var l=a.value;var s=a.children;O.walkThroughTree((i={},i[l]=undefined,i[s]=n,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=e(n,s);var u=o.find((function(e){return e[l]===t}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__index"]}};var Z=function r(t,n,a,l){var s={};var o=[];var u=[];t.forEach((function(e){var r;if(i((r=n[e])==null?void 0:r[a])){o.push(e)}else{s[e]=e}}));if(o.length>0){o.forEach((function(r){var i=e(n[r][a],a);if(Object.keys(s).length>i.length){var o=i.filter((function(e){return t.find((function(r){return r===e[l]}))}));if(o.length===i.length){u.push(r)}}}))}return t.filter((function(e){return u.find((function(r){return r==e}))||s[e]}))};var $=function e(r,t,n,a){var i=l([t],{value:a,children:n});return r.filter((function(e){return!i[e]}))};var ee=function e(r,t,n,a){var s={};r.forEach((function(e){var r;var o=(r=t[e])==null?void 0:r[n];if(i(o)){var u=l(o,{value:a,children:n});s=b({},s,u)}}));return r.filter((function(e){return!s[e]}))};var re=function e(r,t,n){return r.filter((function(e){return!i(t[e][n])}))};var te=function r(t,n,a,l){var s=[].concat(t);t.forEach((function(r){var t;var o=(t=n[r])==null?void 0:t[a];if(i(o)){var u=e(o,a);s=s.concat(u.map((function(e){return e[l]})))}}));return Array.from(new Set(s))};var ne=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","customSearchRule","checkableType"];var ae=N((function(e,r){var t=e.style,n=e.serviceConfig,i=e.effectDependencyList,l=e.selectorTreeList,u=e.value,d=e.onChange,N=e.modelKey,O=e.checkableResponseParentNode,V=O===void 0?true:O,U=e.checkable,z=e.onSelectorTreeListChange,H=e.onRequestResponseChange,Y=e.treeItemDataAdapter,X=e.searchValue,ae=e.showSearch,ie=e.searchPlaceholder,le=e.requestMessageConfig,se=e.labelInValueFieldNames,oe=e.labelInValue,ue=e.disabledCanUse,ce=e.menuLayoutType,de=e.menuTriggerType,fe=e.initRootExpand,ve=e.searchResultType,pe=e.onDropNodeHandle,me=e.onDropPrev,he=e.labelRender,ge=e.searchStyle,ye=e.className,be=e.defaultExpandAll,Le=e.menus,Ce=e.customSearchRule,we=e.checkableType,je=L(e,ne);var Te=e.hasOwnProperty("selectorTreeList");var Ae=n||{};var Ne=i||[];var Re=R([]),Se=Re[0],qe=Re[1];var ke=B(N).useStore(),xe=ke[0],Me=ke[1];var Ee=P.useSafeState(false),De=Ee[0],Pe=Ee[1];var _e="request-progress-"+e.modelKey;var Ie=ve==="highlight";var Oe=S((function(){return b({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var Ve=ce===undefined?"fold":ce;var Fe=de===undefined?"click":de;var Ke=q(true);var Ue=S((function(){return b({label:"label",value:"value"},se)}),[se]);var ze=R(),He=ze[0],Be=ze[1];var Ye=S((function(){return J(u,Ue)}),[Ue,u]);P.useEffectCustom((function(){if(xe.treeList.length>0){if(Ke.current&&a(u)){Ke.current=false;if(be){qe(G(xe.treeList,Oe));return}else if(fe&&xe.treeList.length){qe([xe.treeList[0][Oe.value]]);return}}if(!a(u)){var e=Xe(Ye,true);qe(Array.from(new Set(Se==null?void 0:Se.concat(e))))}}}),[u,xe.treeList,Ye]);var Ge=function e(r){return r===""||a(r)};var We=function e(r){var t=r;if(Ae.onRequestResultAdapter){t=Ae.onRequestResultAdapter(r)}else if(Oe.list){t=y(r,Oe.list,[])||[]}if(!c(t)){console.warn("接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析");return[]}return t};P.useEffectCustom((function(){Be(X)}),[X]);var Je=g.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{Ke.current=false;Pe(false);void A.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!Ae.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=Ae.requiredParamsKeys;n=h({},Ae.params);if(t){a=t.find((function(e){return Ge(n[e])}));if(a){void Me.changeRequestStatus({status:"no-dependencies-params"});console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var u=function(){try{return s()}catch(e){return o(e)}};var c=function(e){try{window[_e]=false;Pe(false);void Me.changeRequestStatus({status:"request-error",errorMessage:e.message});return u()}catch(e){return o(e)}};try{Pe(true);return Promise.resolve(Me.changeRequestStatus({status:"request-progress"})).then((function(e){try{window[_e]=true;return Promise.resolve(Ae.onRequest==null?void 0:Ae.onRequest(n)).then((function(e){try{i=e;H==null?void 0:H(i);l=We(i);if(l.length===0){Ke.current=false}Qe(l);Pe(false);window[_e]=false;return u()}catch(e){return c(e)}}),c)}catch(e){return c(e)}}),c)}catch(e){c(e)}}catch(e){o(e)}}))}));P.useEffectCustom((function(){if(Te)return;if(Ne.length){void Je();return}var e=B(N).getState();if(e.requestStatus==="request-success"){z==null?void 0:z(e.treeList);return}if(!window[_e]){void Je()}else{z==null?void 0:z(e.treeList)}}),Ne);P.useEffectCustom((function(){if(Te){Qe(l||[])}}),[l]);var Qe=g.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&xe.treeList.length===0){void Me.changeRequestStatus({status:"request-success"});return}void Me.setTreeList({treeList:e||[],childrenName:Oe.children,valueName:Oe.value});z==null?void 0:z(e)}));var Xe=function e(r,t){var n=[];r.forEach((function(e){if(!t&&Se!=null&&Se.includes(e))return;var r=W(e,xe.treeList,Oe);n=n.concat(r)}));return n};g.useUpdateEffect((function(){if(He){var e=xe.treeTiledArray.filter((function(e){var r=e[Oe.label]||"";if(Ce){return Ce(e,He)}return String(r).toLowerCase().includes(He.toLowerCase())}));var r=Xe(e.map((function(e){return e[Oe.value]})),true);qe(Array.from(new Set(r)))}else{qe([])}}),[He]);k(r,(function(){return{onClearSelectorList:function e(){void Me.resetTreeList()},getTreeDataList:function e(){return xe.treeList},onChangeExpandedKeys:function e(r){qe(r)},onSelectAll:function e(){var r=xe.treeTiledArray.map((function(e){return e[Oe.value]}));qe(r);d==null?void 0:d(r,undefined,xe.treeList,undefined)},onCancelSelectAll:function e(){qe([]);d==null?void 0:d(undefined)},onExpandedAll:function e(){var r=xe.treeTiledArray.map((function(e){return e[Oe.value]}));qe(r)},onCancelExpandedAll:function e(){qe([])}}}));var Ze=g.useCallbackRef((function(e){qe(e)}));var $e=function r(t,n,a,i){if(s(t).length===0){var l=i==null?void 0:i.node[Oe.value];var o=xe.treeTiledArrayMap[l];e.onChange==null?void 0:e.onChange(undefined,o,[o],i)}else{e.onChange==null?void 0:e.onChange(t,n,a,i)}};var er=g.useCallbackRef((function(r,t){var n=[];var a=[];if(U){n=e.checkStrictly?r.checked:r}else{n=r}n=s(n);if(U==false){a=n}else{if(ae&&He&&!Ie){var i=t==null?void 0:t.node;if(e.checkStrictly){if(t.checked==false){n=Ye.filter((function(e){return e!=i[Oe.value]}))}else{n=Array.from(new Set([].concat(Ye,n)))}a=n}else{var l=we==="2"||we==="3"?te(Ye,xe.treeTiledArrayMap,Oe.children,Oe.value):Ye;if(t.checked==false){n=$([].concat(l),i,Oe.children,Oe.value)}else{n=Array.from(new Set([].concat(l,n)))}a=Z(n,xe.treeTiledArrayMap,Oe.children,Oe.value)}}else{a=n}if(!e.checkStrictly){if(we==="2"){n=re(a,xe.treeTiledArrayMap,Oe.children)}else if(we==="3"){n=ee(a,xe.treeTiledArrayMap,Oe.children,Oe.value)}else if(V==false){n=re(a,xe.treeTiledArrayMap,Oe.children)}else{n=a}}}var o=a.map((function(e){return xe.treeTiledArrayMap[e]}));if(oe){var u=Ue.value;var c=Ue.label;var d=n.map((function(e){var r;return r={},r[c]=xe.treeTiledArrayMap[e][Oe.label],r[u]=xe.treeTiledArrayMap[e][Oe.value],r}));if(U){$e(d,n.map((function(e){return xe.treeTiledArrayMap[e]})),o,t)}else{$e(d[0],xe.treeTiledArrayMap[n[0]],o,t)}}else{if(U){$e(n,n.map((function(e){return xe.treeTiledArrayMap[e]})),o,t)}else{$e(n[0],xe.treeTiledArrayMap[n[0]],o,t)}}}));var rr=g.useCallbackRef((function(e){return Y==null?void 0:Y(e)}));var tr=S((function(){var e=C(xe.treeList||[]);if(He&&ve!=="highlight"){var r=o(C(xe.treeList||[]),(function(e){var r;if(Ce){return Ce(e,He)}var t=(r=e[Oe.label])==null?void 0:r.toLowerCase();return t.indexOf(He.toLowerCase())>=0}),{childrenName:Oe.children});return r}return e}),[Ce,Oe.children,Oe.label,ve,xe.treeList,He]);var nr=S((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var t;var n=(rr==null?void 0:rr(r))||r;var a=ue?undefined:n.disabled;var i=n[Oe.label]||"";var l;if(He&&m(i)){var s=i==null?void 0:i.toLowerCase();var o=s.indexOf(He.toLowerCase());var u=i.substring(0,o);var d=i.slice(o+He.length);var f=i.slice(o,o+He.length);l=o>-1?F("span",{className:p({"v-tree-item-disabled":n.disabled}),children:[u,K("span",{className:"site-tree-search-value",children:f}),d]}):null}if(!l&&n.disabled){l=K("span",{className:p({"v-tree-item-disabled":n.disabled}),children:i})}var v=n[Oe.children];return b({},n,(t={disabled:a},t[Oe.label]=l||i,t._treeItemName=i,t._disabled=n.disabled,t[Oe.children]=c(v)&&v.length>0?e(v):undefined,t))}))};return e(tr)}),[tr,rr,ue,Oe.label,Oe.children,He]);var ar=g.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,s,o,u,c;if(r[Oe.children]){t();return a()}var d=function(){try{return a()}catch(e){return i(e)}};var f=function(e){try{void A.error(e.message||"数据加载异常...");n();return d()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest(((s=e.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(r))||{})).then((function(n){try{u=n;c=(o=e.loadDataServiceConfig)!=null&&o.onRequestResultAdapter?e.loadDataServiceConfig.onRequestResultAdapter(u):u;void Me.treeListAppendChildren({value:r[Oe.value],appendList:c,childrenName:Oe.children,valueName:Oe.value}).then((function(e){Qe(e.treeList);t()}));return d()}catch(e){return f(e)}}),f)}catch(e){f(e)}}))}))}));var ir=g.useCallbackRef((function(r){var t=r==null?void 0:r[Oe.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var lr=g.useCallbackRef((function(r){var t,n,a;var i=r._treeItemName||r[Oe.label];var l=Le==null?void 0:Le(b({},r,(t={},t[Oe.label]=i,t)));if(l!=null&&l.operateList.length){return F(x,{children:[K("span",{className:"tree-item-title",children:(he==null?void 0:he(r))||(r==null?void 0:r[Oe.label])}),K(E,b({gap:5},l,{dropdownMenuProps:b({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:p("tree-item-title-operate",l.className)}))]})}if(Ve==="fold"){var s;var o=[];if((s=e.menuOptions)!=null&&s.fold){var u,c,d;o=((u=e.menuOptions)==null||(c=u[Ve])==null?void 0:c.call(u,b({},r,(d={},d[Oe.label]=i,d))))||[]}else{var f;o=(e.getMenuOptions==null?void 0:e.getMenuOptions(b({},r,(f={},f[Oe.label]=i,f))))||[]}return F(x,{children:[K("span",{className:"tree-item-title",children:(he==null?void 0:he(r))||(r==null?void 0:r[Oe.label])}),o.length>0&&K(D,{menuList:o,placement:"bottomRight",children:K(v,{})})]})}var m=(n=e.menuOptions)==null||n.tile==null?void 0:n.tile(b({},r,(a={},a[Oe.label]=i,a)));return F(x,{children:[K("span",{className:"tree-item-title",children:(he==null?void 0:he(r))||(r==null?void 0:r[Oe.label])}),m?K(E,b({gap:5},m,{className:p("tree-item-title-operate",m.className)})):null]})}));var sr=g.useDebounceCallback((function(r){Be(r);e.onSearchValueChange==null?void 0:e.onSearchValueChange(r)}),300);var or=g.useCallbackRef((function(e){sr(e.target.value)}));var ur=g.useCallbackRef((function(r){if(!e.icon)return null;if(M(e.icon))return e.icon;var t=ir(r.data);return e.icon(b({},r,{isParent:!t,isLeaf:t}))}));var cr=S((function(){return{title:Oe.label,key:Oe.value,children:Oe.children}}),[Oe]);var dr=nr.length>0&&xe.requestStatus!=="request-error";var fr=b({showLine:{showLeafIcon:false},titleRender:lr,blockNode:true,switcherIcon:K(f,{}),onDrop:function e(r){if(me){var t=me(r);if(!t)return}var n=Q(tr,Oe,r),a=n.dataList,i=n.dragNodeData;pe==null?void 0:pe(i);Qe(a)},expandedKeys:Se},je,{fieldNames:cr,treeData:nr,onExpand:Ze,loadData:e.loadDataFlag?ar:undefined,style:{width:"100%"},icon:ur});var vr={onCheck:er,checkable:U,checkedKeys:Ye};var pr={onSelect:er,multiple:false,selectedKeys:Ye};var mr=U?vr:pr;var hr=p("v-tree-wrapper","v-tree-wrapper-menu-"+Fe,ye);var gr=xe.treeList.length>0&&!dr&&He;return F("div",{className:hr,style:t,children:[!!ae&&F("div",{className:"v-tree-wrapper-search-area",style:ge,children:[K(_,{className:"v-tree-wrapper-search",placeholder:a(ie)?"搜索":ie,onChange:or,value:He,allowClear:true}),!!e.searchExtraElement&&K("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),dr?F("div",{className:"v-tree-wrapper-tree-wrapper",children:[K(w,{spinning:xe.requestStatus==="request-progress"}),K(j,b({},mr,fr,{className:"v-tree-wrapper-tree"}))]}):K(I,{status:xe.requestStatus,loading:De,messageConfig:b({"request-success":gr?"搜索结果为空":"暂无数据","request-error":xe.requestErrorMessage},le),errorButton:K(T,{type:"primary",onClick:Je,children:"重新获取数据"})})]})}));var ie=u(ae,{getTreeDataList:Y});export{ie as TreeWrapper};
16
+ import{treeToArray as e,arrayToMap as r,treeToTiledArray as t,treeLeafParentsArray as n,isUndefinedOrNull as a,isNotEmptyArray as i,treeToTiledMap as l,toArray as s,treeFilter as u,attachPropertiesToComponent as o}from"@flatbiz/utils";import{isArray as c}from"@dimjs/lang/cjs/is-array";import{Model as d}from"@dimjs/model-react";import f from"@ant-design/icons/es/icons/CaretDownFilled";import v from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as p}from"@dimjs/utils/cjs/class-names";import{isString as m}from"@dimjs/lang/cjs/is-string";import{extend as h}from"@dimjs/utils/cjs/extend";import{hooks as g}from"@wove/react/cjs/hooks";import{get as y}from"@dimjs/utils/cjs/get";import{_ as b,a as L}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{cloneState as C}from"@dimjs/model";import{Spin as w,Tree as j,Button as T,message as A}from"antd";import{forwardRef as N,useState as R,useMemo as S,useRef as q,useImperativeHandle as k,Fragment as x,isValidElement as M}from"react";import{ButtonOperate as E}from"../button-operate/index.js";import{DropdownMenuWrapper as D}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as P}from"../fba-hooks/index.js";import{InputSearchWrapper as _}from"../input-search-wrapper/index.js";import{RequestStatus as I}from"../request-status/index.js";import{tree as O}from"@dimjs/utils/cjs/tree";import{isObject as V}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as F,jsx as K}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-83bede1b.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../use-responsive-point-21b8c601.js";var U={treeList:[],treeTiledArray:[],treeTiledArrayMap:{},queryIsEmpty:false};var z={actions:{setTreeList:function t(n){return function(t){t.treeList=n.treeList||[];t.treeTiledArray=e(t.treeList,n.childrenName);t.treeTiledArrayMap=r(t.treeTiledArray,n.valueName);t.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[];e.treeTiledArray=[];e.treeTiledArrayMap={}}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r.status;if(r.status==="request-error"){e.treeList=[];e.treeTiledArray=[];e.treeTiledArrayMap={};e.requestErrorMessage=r.errorMessage||"数据查询异常"}else{e.requestErrorMessage=undefined}}},treeListAppendChildren:function t(n){return function(t){var a=e(t.treeList,n.childrenName);var i=r(a,n.valueName);var l=i[n.value];if(l){if(c(n.appendList)&&n.appendList.length>0){l[n.childrenName]=n.appendList}else{l.isLeaf=true}}t.treeTiledArray=a;t.treeTiledArrayMap=i}}},state:U};var H={};var B=function e(r){if(!H[r]){H[r]=d(z)}return H[r]};var Y=function e(r){var t=B(r).getState();return t.treeList};var G=function r(t,n){var a=e(t,n.children).filter((function(e){var r=e[n.children];return r&&r.length>0})).map((function(e){return e[n.value]}));return a};var W=function e(r,a,i){var l=t(a,i);return n(r,l,true,{value:"value",parentValue:"parentValue"}).filter((function(e){var r=e[i.children];return r&&r.length>0})).map((function(e){return e.value}))};var J=function e(r,t){var n=a(r)?[]:r;n=c(n)?n:[n];n=n.map((function(e){if(V(e))return e[t.value];return e}));return n};var Q=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var s=n.dropPosition-Number(l[l.length-1]);var u=t.value;var o=t.children;var c=function e(r,t,n){for(var a=0;a<r.length;a++){if(r[a][u]===t){return n(r[a],a,r)}if(r[a][o]){c(r[a][o],t,n)}}};var d=C(r);var f;c(d,i,(function(e,r,t){t.splice(r,1);f=e}));if(!n.dropToGap){c(d,a,(function(e){e[o]=e[o]||[];e[o].unshift(f)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[o]=e[o]||[];e[o].unshift(f)}))}else{var v=[];var p;c(d,a,(function(e,r,t){v=t;p=r}));if(s===-1){v.splice(p,0,f)}else{v.splice(p+1,0,f)}}return{dataList:d,dragNodeData:X(i,d,t)}};var X=function r(t,n,a){var i;var l=a.value;var s=a.children;O.walkThroughTree((i={},i[l]=undefined,i[s]=n,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var u=e(n,s);var o=u.find((function(e){return e[l]===t}));return{parentId:o==null?void 0:o["__parentId"],id:o==null?void 0:o[l],index:o==null?void 0:o["__index"]}};var Z=function r(t,n,a,l){var s={};var u=[];var o=[];t.forEach((function(e){var r;if(i((r=n[e])==null?void 0:r[a])){u.push(e)}else{s[e]=e}}));if(u.length>0){u.forEach((function(r){var i=e(n[r][a],a);if(Object.keys(s).length>i.length){var u=i.filter((function(e){return t.find((function(r){return r===e[l]}))}));if(u.length===i.length){o.push(r)}}}))}return t.filter((function(e){return o.find((function(r){return r==e}))||s[e]}))};var $=function e(r,t,n,a){var i=l([t],{value:a,children:n});return r.filter((function(e){return!i[e]}))};var ee=function e(r,t,n,a){var s={};r.forEach((function(e){var r;var u=(r=t[e])==null?void 0:r[n];if(i(u)){var o=l(u,{value:a,children:n});s=b({},s,o)}}));return r.filter((function(e){return!s[e]}))};var re=function e(r,t,n){return r.filter((function(e){return!i(t[e][n])}))};var te=function r(t,n,a,l){var s=[].concat(t);t.forEach((function(r){var t;var u=(t=n[r])==null?void 0:t[a];if(i(u)){var o=e(u,a);s=s.concat(o.map((function(e){return e[l]})))}}));return Array.from(new Set(s))};var ne=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","customSearchRule","checkableType"];var ae=N((function(e,r){var t=e.style,n=e.serviceConfig,i=e.effectDependencyList,l=e.selectorTreeList,o=e.value,d=e.onChange,N=e.modelKey,O=e.checkableResponseParentNode,V=O===void 0?true:O,U=e.checkable,z=e.onSelectorTreeListChange,H=e.onRequestResponseChange,Y=e.treeItemDataAdapter,X=e.searchValue,ae=e.showSearch,ie=e.searchPlaceholder,le=e.requestMessageConfig,se=e.labelInValueFieldNames,ue=e.labelInValue,oe=e.disabledCanUse,ce=e.menuLayoutType,de=e.menuTriggerType,fe=e.initRootExpand,ve=e.searchResultType,pe=e.onDropNodeHandle,me=e.onDropPrev,he=e.labelRender,ge=e.searchStyle,ye=e.className,be=e.defaultExpandAll,Le=e.menus,Ce=e.customSearchRule,we=e.checkableType,je=L(e,ne);var Te=e.hasOwnProperty("selectorTreeList");var Ae=n||{};var Ne=i||[];var Re=R([]),Se=Re[0],qe=Re[1];var ke=B(N).useStore(),xe=ke[0],Me=ke[1];var Ee=P.useSafeState(false),De=Ee[0],Pe=Ee[1];var _e="request-progress-"+e.modelKey;var Ie=ve==="highlight";var Oe=S((function(){return b({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var Ve=ce===undefined?"fold":ce;var Fe=de===undefined?"click":de;var Ke=q(true);var Ue=S((function(){return b({label:"label",value:"value"},se)}),[se]);var ze=R(),He=ze[0],Be=ze[1];var Ye=S((function(){return J(o,Ue)}),[Ue,o]);P.useEffectCustom((function(){if(xe.treeList.length>0){if(Ke.current&&a(o)){Ke.current=false;if(be){qe(G(xe.treeList,Oe));return}else if(fe&&xe.treeList.length){qe([xe.treeList[0][Oe.value]]);return}}if(!a(o)){var e=Xe(Ye,true);qe(Array.from(new Set(Se==null?void 0:Se.concat(e))))}}}),[o,xe.treeList,Ye]);var Ge=function e(r){return r===""||a(r)};var We=function e(r){var t=r;if(Ae.onRequestResultAdapter){t=Ae.onRequestResultAdapter(r)}else if(Oe.list){t=y(r,Oe.list,[])||[]}if(!c(t)){console.warn("接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析");return[]}return t};P.useEffectCustom((function(){Be(X)}),[X]);var Je=g.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l;var s=function(){try{return e()}catch(e){return r(e)}};var u=function(e){try{Ke.current=false;Pe(false);void A.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!Ae.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=Ae.requiredParamsKeys;n=h({},Ae.params);if(t){a=t.find((function(e){return Ge(n[e])}));if(a){void Me.changeRequestStatus({status:"no-dependencies-params"});console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var o=function(){try{return s()}catch(e){return u(e)}};var c=function(e){try{window[_e]=false;Pe(false);void Me.changeRequestStatus({status:"request-error",errorMessage:e.message});return o()}catch(e){return u(e)}};try{Pe(true);return Promise.resolve(Me.changeRequestStatus({status:"request-progress"})).then((function(e){try{window[_e]=true;return Promise.resolve(Ae.onRequest==null?void 0:Ae.onRequest(n)).then((function(e){try{i=e;H==null||H(i);l=We(i);if(l.length===0){Ke.current=false}Qe(l);Pe(false);window[_e]=false;return o()}catch(e){return c(e)}}),c)}catch(e){return c(e)}}),c)}catch(e){c(e)}}catch(e){u(e)}}))}));P.useEffectCustom((function(){if(Te)return;if(Ne.length){void Je();return}var e=B(N).getState();if(e.requestStatus==="request-success"){z==null||z(e.treeList);return}if(!window[_e]){void Je()}else{z==null||z(e.treeList)}}),Ne);P.useEffectCustom((function(){if(Te){Qe(l||[])}}),[l]);var Qe=g.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&xe.treeList.length===0){void Me.changeRequestStatus({status:"request-success"});return}void Me.setTreeList({treeList:e||[],childrenName:Oe.children,valueName:Oe.value});z==null||z(e)}));var Xe=function e(r,t){var n=[];r.forEach((function(e){if(!t&&Se!=null&&Se.includes(e))return;var r=W(e,xe.treeList,Oe);n=n.concat(r)}));return n};g.useUpdateEffect((function(){if(He){var e=xe.treeTiledArray.filter((function(e){var r=e[Oe.label]||"";if(Ce){return Ce(e,He)}return String(r).toLowerCase().includes(He.toLowerCase())}));var r=Xe(e.map((function(e){return e[Oe.value]})),true);qe(Array.from(new Set(r)))}else{qe([])}}),[He]);k(r,(function(){return{onClearSelectorList:function e(){void Me.resetTreeList()},getTreeDataList:function e(){return xe.treeList},onChangeExpandedKeys:function e(r){qe(r)},onSelectAll:function e(){var r=xe.treeTiledArray.map((function(e){return e[Oe.value]}));qe(r);d==null||d(r,undefined,xe.treeList,undefined)},onCancelSelectAll:function e(){qe([]);d==null||d(undefined)},onExpandedAll:function e(){var r=xe.treeTiledArray.map((function(e){return e[Oe.value]}));qe(r)},onCancelExpandedAll:function e(){qe([])}}}));var Ze=g.useCallbackRef((function(e){qe(e)}));var $e=function r(t,n,a,i){if(s(t).length===0){var l=i==null?void 0:i.node[Oe.value];var u=xe.treeTiledArrayMap[l];e.onChange==null||e.onChange(undefined,u,[u],i)}else{e.onChange==null||e.onChange(t,n,a,i)}};var er=g.useCallbackRef((function(r,t){var n=[];var a=[];if(U){n=e.checkStrictly?r.checked:r}else{n=r}n=s(n);if(!U){a=n}else{if(ae&&He&&!Ie){var i=t==null?void 0:t.node;if(e.checkStrictly){if(t.checked==false){n=Ye.filter((function(e){return e!=i[Oe.value]}))}else{n=Array.from(new Set([].concat(Ye,n)))}a=n}else{var l=we==="2"||we==="3"?te(Ye,xe.treeTiledArrayMap,Oe.children,Oe.value):Ye;if(t.checked==false){n=$([].concat(l),i,Oe.children,Oe.value)}else{n=Array.from(new Set([].concat(l,n)))}a=Z(n,xe.treeTiledArrayMap,Oe.children,Oe.value)}}else{a=n}if(!e.checkStrictly){if(we==="2"){n=re(a,xe.treeTiledArrayMap,Oe.children)}else if(we==="3"){n=ee(a,xe.treeTiledArrayMap,Oe.children,Oe.value)}else if(V==false){n=re(a,xe.treeTiledArrayMap,Oe.children)}else{n=a}}}var u=a.map((function(e){return xe.treeTiledArrayMap[e]}));if(ue){var o=Ue.value;var c=Ue.label;var d=n.map((function(e){var r;return r={},r[c]=xe.treeTiledArrayMap[e][Oe.label],r[o]=xe.treeTiledArrayMap[e][Oe.value],r}));if(U){$e(d,n.map((function(e){return xe.treeTiledArrayMap[e]})),u,t)}else{$e(d[0],xe.treeTiledArrayMap[n[0]],u,t)}}else{if(U){$e(n,n.map((function(e){return xe.treeTiledArrayMap[e]})),u,t)}else{$e(n[0],xe.treeTiledArrayMap[n[0]],u,t)}}}));var rr=g.useCallbackRef((function(e){return Y==null?void 0:Y(e)}));var tr=S((function(){var e=C(xe.treeList||[]);if(He&&ve!=="highlight"){var r=u(C(xe.treeList||[]),(function(e){var r;if(Ce){return Ce(e,He)}var t=(r=e[Oe.label])==null?void 0:r.toLowerCase();return t.indexOf(He.toLowerCase())>=0}),{childrenName:Oe.children});return r}return e}),[Ce,Oe.children,Oe.label,ve,xe.treeList,He]);var nr=S((function(){var e=function r(t){return t==null?void 0:t.map((function(r){var t;var n=(rr==null?void 0:rr(r))||r;var a=oe?undefined:n.disabled;var i=n[Oe.label]||"";var l;if(He&&m(i)){var s=i==null?void 0:i.toLowerCase();var u=s.indexOf(He.toLowerCase());var o=i.substring(0,u);var d=i.slice(u+He.length);var f=i.slice(u,u+He.length);l=u>-1?F("span",{className:p({"v-tree-item-disabled":n.disabled}),children:[o,K("span",{className:"site-tree-search-value",children:f}),d]}):null}if(!l&&n.disabled){l=K("span",{className:p({"v-tree-item-disabled":n.disabled}),children:i})}var v=n[Oe.children];return b({},n,(t={disabled:a},t[Oe.label]=l||i,t._treeItemName=i,t._disabled=n.disabled,t[Oe.children]=c(v)&&v.length>0?e(v):undefined,t))}))};return e(tr)}),[tr,rr,oe,Oe.label,Oe.children,He]);var ar=g.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,s,u,o,c;if(r[Oe.children]){t();return a()}var d=function(){try{return a()}catch(e){return i(e)}};var f=function(e){try{void A.error(e.message||"数据加载异常...");n();return d()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest(((s=e.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(r))||{})).then((function(n){try{o=n;c=(u=e.loadDataServiceConfig)!=null&&u.onRequestResultAdapter?e.loadDataServiceConfig.onRequestResultAdapter(o):o;void Me.treeListAppendChildren({value:r[Oe.value],appendList:c,childrenName:Oe.children,valueName:Oe.value}).then((function(e){Qe(e.treeList);t()}));return d()}catch(e){return f(e)}}),f)}catch(e){f(e)}}))}))}));var ir=g.useCallbackRef((function(r){var t=r==null?void 0:r[Oe.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var lr=g.useCallbackRef((function(r){var t,n,a;var i=r._treeItemName||r[Oe.label];var l=Le==null?void 0:Le(b({},r,(t={},t[Oe.label]=i,t)));if(l!=null&&l.operateList.length){return F(x,{children:[K("span",{className:"tree-item-title",children:(he==null?void 0:he(r))||(r==null?void 0:r[Oe.label])}),K(E,b({gap:5},l,{dropdownMenuProps:b({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:p("tree-item-title-operate",l.className)}))]})}if(Ve==="fold"){var s;var u=[];if((s=e.menuOptions)!=null&&s.fold){var o,c,d;u=((o=e.menuOptions)==null||(c=o[Ve])==null?void 0:c.call(o,b({},r,(d={},d[Oe.label]=i,d))))||[]}else{var f;u=(e.getMenuOptions==null?void 0:e.getMenuOptions(b({},r,(f={},f[Oe.label]=i,f))))||[]}return F(x,{children:[K("span",{className:"tree-item-title",children:(he==null?void 0:he(r))||(r==null?void 0:r[Oe.label])}),u.length>0&&K(D,{menuList:u,placement:"bottomRight",children:K(v,{})})]})}var m=(n=e.menuOptions)==null||n.tile==null?void 0:n.tile(b({},r,(a={},a[Oe.label]=i,a)));return F(x,{children:[K("span",{className:"tree-item-title",children:(he==null?void 0:he(r))||(r==null?void 0:r[Oe.label])}),m?K(E,b({gap:5},m,{className:p("tree-item-title-operate",m.className)})):null]})}));var sr=g.useDebounceCallback((function(r){Be(r);e.onSearchValueChange==null||e.onSearchValueChange(r)}),300);var ur=g.useCallbackRef((function(e){sr(e.target.value)}));var or=g.useCallbackRef((function(r){if(!e.icon)return null;if(M(e.icon))return e.icon;var t=ir(r.data);return e.icon(b({},r,{isParent:!t,isLeaf:t}))}));var cr=S((function(){return{title:Oe.label,key:Oe.value,children:Oe.children}}),[Oe]);var dr=nr.length>0&&xe.requestStatus!=="request-error";var fr=b({showLine:{showLeafIcon:false},titleRender:lr,blockNode:true,switcherIcon:K(f,{}),onDrop:function e(r){if(me){var t=me(r);if(!t)return}var n=Q(tr,Oe,r),a=n.dataList,i=n.dragNodeData;pe==null||pe(i);Qe(a)},expandedKeys:Se},je,{fieldNames:cr,treeData:nr,onExpand:Ze,loadData:e.loadDataFlag?ar:undefined,style:{width:"100%"},icon:or});var vr={onCheck:er,checkable:U,checkedKeys:Ye};var pr={onSelect:er,multiple:false,selectedKeys:Ye};var mr=U?vr:pr;var hr=p("v-tree-wrapper","v-tree-wrapper-menu-"+Fe,ye);var gr=xe.treeList.length>0&&!dr&&He;return F("div",{className:hr,style:t,children:[!!ae&&F("div",{className:"v-tree-wrapper-search-area",style:ge,children:[K(_,{className:"v-tree-wrapper-search",placeholder:a(ie)?"搜索":ie,onChange:ur,value:He,allowClear:true}),!!e.searchExtraElement&&K("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),dr?F("div",{className:"v-tree-wrapper-tree-wrapper",children:[K(w,{spinning:xe.requestStatus==="request-progress"}),K(j,b({},mr,fr,{className:"v-tree-wrapper-tree"}))]}):K(I,{status:xe.requestStatus,loading:De,messageConfig:b({"request-success":gr?"搜索结果为空":"暂无数据","request-error":xe.requestErrorMessage},le),errorButton:K(T,{type:"primary",onClick:Je,children:"重新获取数据"})})]})}));var ie=o(ae,{getTreeDataList:Y});export{ie as TreeWrapper};
17
17
  //# sourceMappingURL=index.js.map