@flatbiz/antd 4.5.46 → 4.5.48

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 (162) hide show
  1. package/esm/ace-editor-json/index.js +1 -1
  2. package/esm/ace-editor-json/index.js.map +1 -1
  3. package/esm/ace-editor-mysql/index.js +1 -1
  4. package/esm/ace-editor-mysql/index.js.map +1 -1
  5. package/esm/ace-editor-xml/index.js +1 -1
  6. package/esm/ace-editor-xml/index.js.map +1 -1
  7. package/esm/ai-search/index.css +0 -0
  8. package/esm/ai-search/index.js +11 -0
  9. package/esm/ai-search/index.js.map +1 -0
  10. package/esm/bootstrap/index.js +1 -1
  11. package/esm/bootstrap/index.js.map +1 -1
  12. package/esm/button-operate/index.js +1 -1
  13. package/esm/button-operate/index.js.map +1 -1
  14. package/esm/button-wrapper/index.js +1 -1
  15. package/esm/button-wrapper/index.js.map +1 -1
  16. package/esm/cascader-wrapper/index.js +1 -1
  17. package/esm/cascader-wrapper/index.js.map +1 -1
  18. package/esm/check-list/index.js +1 -1
  19. package/esm/check-list/index.js.map +1 -1
  20. package/esm/config-provider-wrapper/index.js +1 -1
  21. package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
  22. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  23. package/esm/dialog-alert/index.js +1 -1
  24. package/esm/dialog-alert/index.js.map +1 -1
  25. package/esm/dialog-confirm/index.js +1 -1
  26. package/esm/dialog-confirm/index.js.map +1 -1
  27. package/esm/dialog-drag-modal/index.css +1 -0
  28. package/esm/dialog-drag-modal/index.js +12 -0
  29. package/esm/dialog-drag-modal/index.js.map +1 -0
  30. package/esm/dialog-drawer/index.js +1 -1
  31. package/esm/dialog-drawer/index.js.map +1 -1
  32. package/esm/dialog-drawer-content/index.js +1 -1
  33. package/esm/dialog-drawer-content/index.js.map +1 -1
  34. package/esm/dialog-loading/index.js +1 -1
  35. package/esm/dialog-loading/index.js.map +1 -1
  36. package/esm/dialog-modal/index.js +1 -1
  37. package/esm/dialog-modal/index.js.map +1 -1
  38. package/esm/dialog-preview-image/index.js +1 -1
  39. package/esm/dialog-preview-image/index.js.map +1 -1
  40. package/esm/drag-collapse/index.js +1 -1
  41. package/esm/drag-collapse/index.js.map +1 -1
  42. package/esm/drag-collapse-form-list/index.js +1 -1
  43. package/esm/drag-collapse-form-list/index.js.map +1 -1
  44. package/esm/drag-editable-card/index.js +1 -1
  45. package/esm/drag-editable-card/index.js.map +1 -1
  46. package/esm/drag-editable-table/index.js +1 -1
  47. package/esm/drag-editable-table/index.js.map +1 -1
  48. package/esm/drag-editable-table-pro/index.js +1 -1
  49. package/esm/drag-editable-table-pro/index.js.map +1 -1
  50. package/esm/drag-form-list/index.js +1 -1
  51. package/esm/drag-form-list/index.js.map +1 -1
  52. package/esm/drawer-wrapper/index.js +1 -1
  53. package/esm/drawer-wrapper/index.js.map +1 -1
  54. package/esm/dropdown-menu-wrapper/index.js +1 -1
  55. package/esm/dropdown-menu-wrapper/index.js.map +1 -1
  56. package/esm/easy-form/index.js +1 -1
  57. package/esm/easy-form/index.js.map +1 -1
  58. package/esm/easy-table/index.js +1 -1
  59. package/esm/easy-table/index.js.map +1 -1
  60. package/esm/editable-card/index.js +1 -1
  61. package/esm/editable-card/index.js.map +1 -1
  62. package/esm/editable-field/index.js +1 -1
  63. package/esm/editable-field/index.js.map +1 -1
  64. package/esm/editable-table/index.js +1 -1
  65. package/esm/editable-table/index.js.map +1 -1
  66. package/esm/editable-table-pro/index.js +1 -1
  67. package/esm/editable-table-pro/index.js.map +1 -1
  68. package/esm/fba-app/index.js +1 -1
  69. package/esm/fba-app/index.js.map +1 -1
  70. package/esm/fba-hooks/index.js +1 -1
  71. package/esm/fba-hooks/index.js.map +1 -1
  72. package/esm/form-item-group/index.js +1 -1
  73. package/esm/form-item-group/index.js.map +1 -1
  74. package/esm/form-item-text/index.js +1 -1
  75. package/esm/form-item-text/index.js.map +1 -1
  76. package/esm/form-item-wrapper/index.js +1 -1
  77. package/esm/form-item-wrapper/index.js.map +1 -1
  78. package/esm/form-list-wrapper/index.js +1 -1
  79. package/esm/form-list-wrapper/index.js.map +1 -1
  80. package/esm/index.js +3 -1
  81. package/esm/input-search-wrapper/index.js +1 -1
  82. package/esm/input-search-wrapper/index.js.map +1 -1
  83. package/esm/input-text-area-wrapper/index.js +1 -1
  84. package/esm/input-text-area-wrapper/index.js.map +1 -1
  85. package/esm/input-wrapper/index.js +1 -1
  86. package/esm/input-wrapper/index.js.map +1 -1
  87. package/esm/json-editor/index.js +1 -1
  88. package/esm/json-editor/index.js.map +1 -1
  89. package/esm/label-value-render/index.js +1 -1
  90. package/esm/label-value-render/index.js.map +1 -1
  91. package/esm/local-loading/index.js +1 -1
  92. package/esm/local-loading/index.js.map +1 -1
  93. package/esm/mention-editor/index.js +1 -1
  94. package/esm/mention-editor/index.js.map +1 -1
  95. package/esm/mentions-wrapper/index.js +1 -1
  96. package/esm/mentions-wrapper/index.js.map +1 -1
  97. package/esm/modal-wrapper/index.js +1 -1
  98. package/esm/modal-wrapper/index.js.map +1 -1
  99. package/esm/number-range-form-item/index.js +1 -1
  100. package/esm/number-range-form-item/index.js.map +1 -1
  101. package/esm/pdf/index.js +1 -1
  102. package/esm/pdf/index.js.map +1 -1
  103. package/esm/pdf-preview/index.js +1 -1
  104. package/esm/pdf-preview/index.js.map +1 -1
  105. package/esm/relation-tree/index.js +1 -1
  106. package/esm/relation-tree/index.js.map +1 -1
  107. package/esm/rich-text-editor/index.js +1 -1
  108. package/esm/rich-text-editor/index.js.map +1 -1
  109. package/esm/rich-text-viewer/index.js +1 -1
  110. package/esm/rich-text-viewer/index.js.map +1 -1
  111. package/esm/roll-location-center/index.js +1 -1
  112. package/esm/roll-location-center/index.js.map +1 -1
  113. package/esm/roll-location-in-view/index.js +1 -1
  114. package/esm/roll-location-in-view/index.js.map +1 -1
  115. package/esm/rule-describe/index.js +1 -1
  116. package/esm/rule-describe/index.js.map +1 -1
  117. package/esm/search-form/index.js +1 -1
  118. package/esm/search-form/index.js.map +1 -1
  119. package/esm/search-menu/index.js +1 -1
  120. package/esm/search-menu/index.js.map +1 -1
  121. package/esm/selector-wrapper/index.js +1 -1
  122. package/esm/selector-wrapper/index.js.map +1 -1
  123. package/esm/selector-wrapper-search/index.js +1 -1
  124. package/esm/selector-wrapper-search/index.js.map +1 -1
  125. package/esm/selector-wrapper-simple/index.js +1 -1
  126. package/esm/selector-wrapper-simple/index.js.map +1 -1
  127. package/esm/simple-layout/index.js +1 -1
  128. package/esm/simple-layout/index.js.map +1 -1
  129. package/esm/switch-confirm-wrapper/index.js +1 -1
  130. package/esm/switch-confirm-wrapper/index.js.map +1 -1
  131. package/esm/table-cell-render/index.js +1 -1
  132. package/esm/table-cell-render/index.js.map +1 -1
  133. package/esm/table-scrollbar/index.js +1 -1
  134. package/esm/table-scrollbar/index.js.map +1 -1
  135. package/esm/tabs-wrapper/index.css +1 -1
  136. package/esm/tag-group/index.js +1 -1
  137. package/esm/tag-group/index.js.map +1 -1
  138. package/esm/tag-wrapper/index.js +1 -1
  139. package/esm/tag-wrapper/index.js.map +1 -1
  140. package/esm/text-css-ellipsis/index.js +1 -1
  141. package/esm/text-css-ellipsis/index.js.map +1 -1
  142. package/esm/text-overflow/index.js +1 -1
  143. package/esm/text-overflow/index.js.map +1 -1
  144. package/esm/text-overflow-render/index.js +1 -1
  145. package/esm/text-overflow-render/index.js.map +1 -1
  146. package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
  147. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  148. package/esm/tips-title/index.css +1 -1
  149. package/esm/tips-title/index.js +1 -1
  150. package/esm/tips-title/index.js.map +1 -1
  151. package/esm/tree-modal/index.js +1 -1
  152. package/esm/tree-modal/index.js.map +1 -1
  153. package/esm/tree-modal-selector/index.js +1 -1
  154. package/esm/tree-modal-selector/index.js.map +1 -1
  155. package/esm/tree-selector-wrapper/index.js +1 -1
  156. package/esm/tree-selector-wrapper/index.js.map +1 -1
  157. package/esm/tree-wrapper/index.js +1 -1
  158. package/esm/tree-wrapper/index.js.map +1 -1
  159. package/esm/upload-wrapper/index.js +1 -1
  160. package/esm/upload-wrapper/index.js.map +1 -1
  161. package/index.d.ts +83 -0
  162. package/package.json +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/text-overflow/overflow-auto.tsx","@flatbiz/antd/src/text-overflow/overflow-length.tsx","@flatbiz/antd/src/text-overflow/overflow-width.tsx","@flatbiz/antd/src/text-overflow/text-overflow.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowAuto = (props: TextOverflowProps) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const size = useSize(rootRef);\n const parentNodeWidth = size?.width || 0;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n\n // 文本宽度是否溢出\n const isTextOverflow = fbaHooks.useMemoCustom(() => {\n if (!hideTextSize?.width || !parentNodeWidth) return false;\n return hideTextSize.width > parentNodeWidth;\n }, [hideTextSize?.width, parentNodeWidth]);\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {props.text}\n </span>\n </span>\n <Tooltip title={isTextOverflow && !props.hideTip ? props.text : undefined}>\n <span className=\"tow-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {props.text}\n </span>\n </span>\n </Tooltip>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useRef } from 'react';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowLength = (props: Omit<TextOverflowProps, 'maxWidth'>) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const size = useSize(rootRef);\n const maxLength = props.maxLength as number;\n const parentNodeWidth = size?.width || 0;\n const text = props.text as string;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n const needCut = text.length > maxLength;\n\n const cutedTextWidth = hideTextSize?.width || 0;\n\n const showCustomEllipsis = needCut && cutedTextWidth < parentNodeWidth;\n\n const isTextOverflow = parentNodeWidth < cutedTextWidth + 1 || needCut;\n\n const cutValue = text.substring(0, props.maxLength);\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {cutValue}\n </span>\n </span>\n\n <Tooltip title={isTextOverflow && !props.hideTip ? text : undefined}>\n {showCustomEllipsis ? (\n <span className=\"tow-cut-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {cutValue}...\n </span>\n </span>\n ) : (\n <span className=\"tow-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {text}\n </span>\n </span>\n )}\n </Tooltip>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowWidth = (props: Omit<TextOverflowProps, 'maxLength'>) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const rootSize = useSize(rootRef);\n const maxWidth = props.maxWidth || 0;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n\n const handleResult = useMemo(() => {\n if (!hideTextSize?.width || !rootSize?.width) return undefined;\n if (rootSize.width < maxWidth) {\n if (hideTextSize.width > rootSize.width) {\n return { isTextOverflow: true };\n }\n }\n if (hideTextSize.width < maxWidth) return undefined;\n if (hideTextSize.width > maxWidth) {\n return { isTextOverflow: true, width: maxWidth };\n }\n return undefined;\n }, [hideTextSize?.width, maxWidth]);\n\n const isTextOverflow = handleResult?.isTextOverflow;\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {props.text}\n </span>\n </span>\n\n <Tooltip title={isTextOverflow && !props.hideTip ? props.text : undefined}>\n <span className=\"tow-content\" style={{ width: handleResult?.width }}>\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {props.text}\n </span>\n </span>\n </Tooltip>\n </div>\n );\n};\n","import { isString } from '@dimjs/lang';\nimport { memo } from 'react';\nimport { OverflowAuto } from './overflow-auto';\nimport { OverflowLength } from './overflow-length';\nimport { OverflowWidth } from './overflow-width';\nimport './style.less';\nimport { TextOverflowProps } from './types';\n\nconst InnerTextOverflow = (props: TextOverflowProps) => {\n if (props.maxLength && isString(props.text)) {\n return <OverflowLength {...props} />;\n }\n if (props.maxWidth) {\n return <OverflowWidth {...props} />;\n }\n return <OverflowAuto {...props} />;\n};\n\n/**\n * 内容溢出截取,并在尾部添加...,被截取的添加Tooltip显示完整数据\n * ```\n * 控制文本显示三种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 maxWidth 控制超长\n * 3. 与父节点宽度比较,控制超长\n * 4. 优先级 maxLength > maxWidth\n *\n * 注意:\n * 1. 当前节点父节点需要添加 overflow-x: hidden;\n * 2. 如果父节点设置flex-shrink会有影响,可复写flex-shrink: initial;\n * 3. 与 Table columns render结合使用,需要配置ellipsis=true\n * 例如:<Table columns={[{\n ...\n render: (value) => {\n return <TextOverflow text={value} />;\n },\n ellipsis: true,\n }]} />\n 4. 与 Table columns render结合使用,如果Table配置了 scroll={{ x: 'max-content' }}后,不能与TextOverflow maxWidth结合使用\n * ```\n */\nexport const TextOverflow = memo(InnerTextOverflow, (pre, next) => {\n if (pre.text !== next.text || pre.maxLength !== next.maxLength || pre.maxWidth !== pre.maxWidth) {\n return false;\n }\n return true;\n});\n"],"names":["OverflowAuto","props","rootRef","useRef","size","useSize","parentNodeWidth","width","hideTextRef","hideTextSize","isTextOverflow","fbaHooks","useMemoCustom","_jsxs","className","_classNames","onClick","ref","children","_jsx","text","Tooltip","title","hideTip","undefined","OverflowLength","maxLength","needCut","length","cutedTextWidth","showCustomEllipsis","cutValue","substring","OverflowWidth","rootSize","maxWidth","handleResult","useMemo","style","InnerTextOverflow","_isString","_extends","TextOverflow","memo","pre","next"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/text-overflow/overflow-auto.tsx","@flatbiz/antd/src/text-overflow/overflow-length.tsx","@flatbiz/antd/src/text-overflow/overflow-width.tsx","@flatbiz/antd/src/text-overflow/text-overflow.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowAuto = (props: TextOverflowProps) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const size = useSize(rootRef);\n const parentNodeWidth = size?.width || 0;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n\n // 文本宽度是否溢出\n const isTextOverflow = fbaHooks.useMemoCustom(() => {\n if (!hideTextSize?.width || !parentNodeWidth) return false;\n return hideTextSize.width > parentNodeWidth;\n }, [hideTextSize?.width, parentNodeWidth]);\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {props.text}\n </span>\n </span>\n <Tooltip title={isTextOverflow && !props.hideTip ? props.text : undefined}>\n <span className=\"tow-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {props.text}\n </span>\n </span>\n </Tooltip>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useRef } from 'react';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowLength = (props: Omit<TextOverflowProps, 'maxWidth'>) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const size = useSize(rootRef);\n const maxLength = props.maxLength as number;\n const parentNodeWidth = size?.width || 0;\n const text = props.text as string;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n const needCut = text.length > maxLength;\n\n const cutedTextWidth = hideTextSize?.width || 0;\n\n const showCustomEllipsis = needCut && cutedTextWidth < parentNodeWidth;\n\n const isTextOverflow = parentNodeWidth < cutedTextWidth + 1 || needCut;\n\n const cutValue = text.substring(0, props.maxLength);\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {cutValue}\n </span>\n </span>\n\n <Tooltip title={isTextOverflow && !props.hideTip ? text : undefined}>\n {showCustomEllipsis ? (\n <span className=\"tow-cut-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {cutValue}...\n </span>\n </span>\n ) : (\n <span className=\"tow-content\">\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {text}\n </span>\n </span>\n )}\n </Tooltip>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { useSize } from 'ahooks';\nimport { Tooltip } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport { TextOverflowProps } from './types';\n\nexport const OverflowWidth = (props: Omit<TextOverflowProps, 'maxLength'>) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const rootSize = useSize(rootRef);\n const maxWidth = props.maxWidth || 0;\n const hideTextRef = useRef<HTMLSpanElement>(null);\n\n const hideTextSize = useSize(hideTextRef);\n\n const handleResult = useMemo(() => {\n if (!hideTextSize?.width || !rootSize?.width) return undefined;\n if (rootSize.width < maxWidth) {\n if (hideTextSize.width > rootSize.width) {\n return { isTextOverflow: true };\n }\n }\n if (hideTextSize.width < maxWidth) return undefined;\n if (hideTextSize.width > maxWidth) {\n return { isTextOverflow: true, width: maxWidth };\n }\n return undefined;\n }, [hideTextSize?.width, maxWidth]);\n\n const isTextOverflow = handleResult?.isTextOverflow;\n\n return (\n <div\n className={classNames('text-overflow', {\n 'tow-trigger': props.onClick,\n })}\n ref={rootRef}\n >\n <span className=\"tow-hidden\">\n <span className=\"tow-inner-text\" ref={hideTextRef}>\n {props.text}\n </span>\n </span>\n\n <Tooltip title={isTextOverflow && !props.hideTip ? props.text : undefined}>\n <span className=\"tow-content\" style={{ width: handleResult?.width }}>\n <span className=\"tow-show-text\" onClick={props.onClick}>\n {props.text}\n </span>\n </span>\n </Tooltip>\n </div>\n );\n};\n","import { isString } from '@dimjs/lang';\nimport { memo } from 'react';\nimport { OverflowAuto } from './overflow-auto';\nimport { OverflowLength } from './overflow-length';\nimport { OverflowWidth } from './overflow-width';\nimport './style.less';\nimport { TextOverflowProps } from './types';\n\nconst InnerTextOverflow = (props: TextOverflowProps) => {\n if (props.maxLength && isString(props.text)) {\n return <OverflowLength {...props} />;\n }\n if (props.maxWidth) {\n return <OverflowWidth {...props} />;\n }\n return <OverflowAuto {...props} />;\n};\n\n/**\n * 内容溢出截取,并在尾部添加...,被截取的添加Tooltip显示完整数据\n * ```\n * 控制文本显示三种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 maxWidth 控制超长\n * 3. 与父节点宽度比较,控制超长\n * 4. 优先级 maxLength > maxWidth\n *\n * 注意:\n * 1. 当前节点父节点需要添加 overflow-x: hidden;\n * 2. 如果父节点设置flex-shrink会有影响,可复写flex-shrink: initial;\n * 3. 与 Table columns render结合使用,需要配置ellipsis=true\n * 例如:<Table columns={[{\n ...\n render: (value) => {\n return <TextOverflow text={value} />;\n },\n ellipsis: true,\n }]} />\n 4. 与 Table columns render结合使用,如果Table配置了 scroll={{ x: 'max-content' }}后,不能与TextOverflow maxWidth结合使用\n * ```\n */\nexport const TextOverflow = memo(InnerTextOverflow, (pre, next) => {\n if (pre.text !== next.text || pre.maxLength !== next.maxLength || pre.maxWidth !== pre.maxWidth) {\n return false;\n }\n return true;\n});\n"],"names":["OverflowAuto","props","rootRef","useRef","size","useSize","parentNodeWidth","width","hideTextRef","hideTextSize","isTextOverflow","fbaHooks","useMemoCustom","_jsxs","className","_classNames","onClick","ref","children","_jsx","text","Tooltip","title","hideTip","undefined","OverflowLength","maxLength","needCut","length","cutedTextWidth","showCustomEllipsis","cutValue","substring","OverflowWidth","rootSize","maxWidth","handleResult","useMemo","style","InnerTextOverflow","_isString","_extends","TextOverflow","memo","pre","next"],"mappings":"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"}
@@ -7,5 +7,5 @@ import './../fba-utils/index.css';
7
7
  import './../text-css-ellipsis/index.css';
8
8
  import './index.css';
9
9
  /*! @flatjs/forge MIT @flatbiz/antd */
10
- import{isEmpty as i}from"@dimjs/lang/cjs/is-empty";import{a as r,_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{getStrByteLen as t,cutString as n}from"@flatbiz/utils";import{Tooltip as l}from"antd";import{Fragment as o}from"react";import{ButtonWrapper as s}from"../button-wrapper/index.js";import{TextCssEllipsis as a}from"../text-css-ellipsis/index.js";import{jsx as p,jsxs as m}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@dimjs/utils/cjs/class-names";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-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"ahooks";var d=["onClick","children","prefix"];var c=function i(t){var n=t.onClick,l=t.children,o=t.prefix,a=r(t,d);if(!!n){return m(s,e({type:"link",onClick:n,style:{padding:0,height:"initial",display:"inline-flex",alignItems:"center"}},a,{children:[o?p("span",{style:{marginRight:5},children:o}):null,l]}))}return m("span",e({},a,{style:e({display:"inline-flex"},a["style"]),children:[o?p("span",{style:{marginRight:5},children:o}):null,l]}))};var j=function r(e){var s=e.text,m=e.maxLength,d=e.placeholder,j=e.onClick,u=e.prefix;if(!s||i(s)||s==="")return p(o,{children:d});if(!!m){var f=t(s);if(f<=m*2){return p(c,{onClick:j,prefix:u,children:s})}else{var h=n(s,m*2);return p(l,{placement:"topLeft",title:s,children:p(c,{onClick:j,prefix:u,children:h})})}}if(e.width){return p(c,{onClick:j,prefix:u,children:p(a,{text:s,width:e.width})})}return p(c,{onClick:j,prefix:u,children:e.text})};export{j as TextOverflowRender};
10
+ import{isEmpty as i}from"@dimjs/lang/cjs/is-empty";import{a as r,_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{getStrByteLen as t,cutString as n}from"@flatbiz/utils";import{Tooltip as l}from"antd";import{Fragment as o}from"react";import{ButtonWrapper as s}from"../button-wrapper/index.js";import{TextCssEllipsis as a}from"../text-css-ellipsis/index.js";import{jsx as p,jsxs as m}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@dimjs/utils/cjs/class-names";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-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"ahooks";var d=["onClick","children","prefix"];var c=function i(t){var n=t.onClick,l=t.children,o=t.prefix,a=r(t,d);if(!!n){return m(s,e({type:"link",onClick:n,style:{padding:0,height:"initial",display:"inline-flex",alignItems:"center"}},a,{children:[o?p("span",{style:{marginRight:5},children:o}):null,l]}))}return m("span",e({},a,{style:e({display:"inline-flex"},a["style"]),children:[o?p("span",{style:{marginRight:5},children:o}):null,l]}))};var u=function r(e){var s=e.text,m=e.maxLength,d=e.placeholder,u=e.onClick,j=e.prefix;if(!s||i(s)||s==="")return p(o,{children:d});if(!!m){var f=t(s);if(f<=m*2){return p(c,{onClick:u,prefix:j,children:s})}else{var h=n(s,m*2);return p(l,{placement:"topLeft",title:s,children:p(c,{onClick:u,prefix:j,children:h})})}}if(e.width){return p(c,{onClick:u,prefix:j,children:p(a,{text:s,width:e.width})})}return p(c,{onClick:u,prefix:j,children:e.text})};export{u as TextOverflowRender};
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/text-overflow-render/text-overflow-render.tsx"],"sourcesContent":["import { isEmpty } from '@dimjs/lang';\nimport { cutString, getStrByteLen } from '@flatbiz/utils';\nimport { Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\n\nconst LinkRender = (props: {\n onClick?: (e) => void;\n children?: ReactElement | string;\n prefix?: string | ReactElement;\n}) => {\n const { onClick, children, prefix, ...otherProps } = props;\n if (!!onClick) {\n return (\n <ButtonWrapper\n type=\"link\"\n onClick={onClick}\n style={{ padding: 0, height: 'initial', display: 'inline-flex', alignItems: 'center' }}\n {...otherProps}\n >\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </ButtonWrapper>\n );\n }\n return (\n <span {...otherProps} style={{ display: 'inline-flex', ...otherProps['style'] }}>\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </span>\n );\n};\n\nexport type TextOverflowRenderProps = {\n /** width 宽度控制超长 */\n width?: number;\n /** maxLength 数字控制超长 */\n maxLength?: number;\n /** 完整文本 */\n text?: string;\n /** 文本前缀显示 */\n prefix?: string | ReactElement;\n /** 数据不存在时,占位符 */\n placeholder?: ReactElement | string;\n onClick?: (e) => void;\n};\n\n/**\n * 文本显示超出截取,被截取的添加Tooltip显示完整数据\n * @deprecated 已过期,请使用 TextOverflow 组件\n * ```\n * 控制文本显示两种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 width 控制超长\n *\n * 3. maxLength 与 width 互斥,优先级:maxLength > width\n * ```\n */\nexport const TextOverflowRender = (props: TextOverflowRenderProps) => {\n const { text, maxLength, placeholder, onClick, prefix } = props;\n\n if (!text || isEmpty(text) || text === '') return <Fragment>{placeholder}</Fragment>;\n if (!!maxLength) {\n const strByteLen = getStrByteLen(text);\n if (strByteLen <= maxLength * 2) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {text}\n </LinkRender>\n );\n } else {\n const resultTitle = cutString(text, maxLength * 2);\n return (\n <Tooltip placement=\"topLeft\" title={text}>\n <LinkRender onClick={onClick} prefix={prefix}>\n {resultTitle}\n </LinkRender>\n </Tooltip>\n );\n }\n }\n if (props.width) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n <TextCssEllipsis text={text} width={props.width} />\n </LinkRender>\n );\n }\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {props.text}\n </LinkRender>\n );\n};\n"],"names":["LinkRender","props","onClick","children","prefix","otherProps","_objectWithoutPropertiesLoose","_excluded","_jsxs","ButtonWrapper","_extends","type","style","padding","height","display","alignItems","_jsx","marginRight","TextOverflowRender","text","maxLength","placeholder","_isEmpty","Fragment","strByteLen","getStrByteLen","resultTitle","cutString","Tooltip","placement","title","width","TextCssEllipsis"],"mappings":";qqCAOA,IAAMA,EAAa,SAAbA,EAAcC,GAKlB,IAAQC,EAA6CD,EAA7CC,QAASC,EAAoCF,EAApCE,SAAUC,EAA0BH,EAA1BG,OAAWC,EAAUC,EAAKL,EAAKM,GAC1D,KAAML,EAAS,CACb,OACEM,EAACC,EAAaC,EAAA,CACZC,KAAK,OACLT,QAASA,EACTU,MAAO,CAAEC,QAAS,EAAGC,OAAQ,UAAWC,QAAS,cAAeC,WAAY,WACxEX,EAAU,CAAAF,SAAA,CAEbC,EAASa,EAAA,OAAA,CAAML,MAAO,CAAEM,YAAa,GAAIf,SAAEC,IAAiB,KAC5DD,KAGP,CACA,OACEK,EAAA,OAAAE,EAAA,CAAA,EAAUL,EAAU,CAAEO,MAAKF,EAAA,CAAIK,QAAS,eAAkBV,EAAW,UAAWF,SAAA,CAC7EC,EAASa,EAAA,OAAA,CAAML,MAAO,CAAEM,YAAa,GAAIf,SAAEC,IAAiB,KAC5DD,KAGP,MA2BagB,EAAqB,SAArBA,EAAsBlB,GACjC,IAAQmB,EAAkDnB,EAAlDmB,KAAMC,EAA4CpB,EAA5CoB,UAAWC,EAAiCrB,EAAjCqB,YAAapB,EAAoBD,EAApBC,QAASE,EAAWH,EAAXG,OAE/C,IAAKgB,GAAQG,EAAQH,IAASA,IAAS,GAAI,OAAOH,EAACO,EAAQ,CAAArB,SAAEmB,IAC7D,KAAMD,EAAW,CACf,IAAMI,EAAaC,EAAcN,GACjC,GAAIK,GAAcJ,EAAY,EAAG,CAC/B,OACEJ,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CiB,GAGP,KAAO,CACL,IAAMO,EAAcC,EAAUR,EAAMC,EAAY,GAChD,OACEJ,EAACY,EAAO,CAACC,UAAU,UAAUC,MAAOX,EAAKjB,SACvCc,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CwB,KAIT,CACF,CACA,GAAI1B,EAAM+B,MAAO,CACf,OACEf,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC3Cc,EAACgB,EAAe,CAACb,KAAMA,EAAMY,MAAO/B,EAAM+B,SAGhD,CACA,OACEf,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CF,EAAMmB,MAGb"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/text-overflow-render/text-overflow-render.tsx"],"sourcesContent":["import { isEmpty } from '@dimjs/lang';\nimport { cutString, getStrByteLen } from '@flatbiz/utils';\nimport { Tooltip } from 'antd';\nimport { Fragment, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\n\nconst LinkRender = (props: {\n onClick?: (e) => void;\n children?: ReactElement | string;\n prefix?: string | ReactElement;\n}) => {\n const { onClick, children, prefix, ...otherProps } = props;\n if (!!onClick) {\n return (\n <ButtonWrapper\n type=\"link\"\n onClick={onClick}\n style={{ padding: 0, height: 'initial', display: 'inline-flex', alignItems: 'center' }}\n {...otherProps}\n >\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </ButtonWrapper>\n );\n }\n return (\n <span {...otherProps} style={{ display: 'inline-flex', ...otherProps['style'] }}>\n {prefix ? <span style={{ marginRight: 5 }}>{prefix}</span> : null}\n {children}\n </span>\n );\n};\n\nexport type TextOverflowRenderProps = {\n /** width 宽度控制超长 */\n width?: number;\n /** maxLength 数字控制超长 */\n maxLength?: number;\n /** 完整文本 */\n text?: string;\n /** 文本前缀显示 */\n prefix?: string | ReactElement;\n /** 数据不存在时,占位符 */\n placeholder?: ReactElement | string;\n onClick?: (e) => void;\n};\n\n/**\n * 文本显示超出截取,被截取的添加Tooltip显示完整数据\n * @deprecated 已过期,请使用 TextOverflow 组件\n * ```\n * 控制文本显示两种方式\n * 1. 通过 maxLength 控制超长\n * 2. 通过 width 控制超长\n *\n * 3. maxLength 与 width 互斥,优先级:maxLength > width\n * ```\n */\nexport const TextOverflowRender = (props: TextOverflowRenderProps) => {\n const { text, maxLength, placeholder, onClick, prefix } = props;\n\n if (!text || isEmpty(text) || text === '') return <Fragment>{placeholder}</Fragment>;\n if (!!maxLength) {\n const strByteLen = getStrByteLen(text);\n if (strByteLen <= maxLength * 2) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {text}\n </LinkRender>\n );\n } else {\n const resultTitle = cutString(text, maxLength * 2);\n return (\n <Tooltip placement=\"topLeft\" title={text}>\n <LinkRender onClick={onClick} prefix={prefix}>\n {resultTitle}\n </LinkRender>\n </Tooltip>\n );\n }\n }\n if (props.width) {\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n <TextCssEllipsis text={text} width={props.width} />\n </LinkRender>\n );\n }\n return (\n <LinkRender onClick={onClick} prefix={prefix}>\n {props.text}\n </LinkRender>\n );\n};\n"],"names":["LinkRender","props","onClick","children","prefix","otherProps","_objectWithoutPropertiesLoose","_excluded","_jsxs","ButtonWrapper","_extends","type","style","padding","height","display","alignItems","_jsx","marginRight","TextOverflowRender","text","maxLength","placeholder","_isEmpty","Fragment","strByteLen","getStrByteLen","resultTitle","cutString","Tooltip","placement","title","width","TextCssEllipsis"],"mappings":";msCAOA,IAAMA,EAAa,SAAbA,EAAcC,GAKlB,IAAQC,EAA6CD,EAA7CC,QAASC,EAAoCF,EAApCE,SAAUC,EAA0BH,EAA1BG,OAAWC,EAAUC,EAAKL,EAAKM,GAC1D,KAAML,EAAS,CACb,OACEM,EAACC,EAAaC,EAAA,CACZC,KAAK,OACLT,QAASA,EACTU,MAAO,CAAEC,QAAS,EAAGC,OAAQ,UAAWC,QAAS,cAAeC,WAAY,WACxEX,EAAU,CAAAF,SAAA,CAEbC,EAASa,EAAA,OAAA,CAAML,MAAO,CAAEM,YAAa,GAAIf,SAAEC,IAAiB,KAC5DD,KAGP,CACA,OACEK,EAAA,OAAAE,EAAA,CAAA,EAAUL,EAAU,CAAEO,MAAKF,EAAA,CAAIK,QAAS,eAAkBV,EAAW,UAAWF,SAAA,CAC7EC,EAASa,EAAA,OAAA,CAAML,MAAO,CAAEM,YAAa,GAAIf,SAAEC,IAAiB,KAC5DD,KAGP,MA2BagB,EAAqB,SAArBA,EAAsBlB,GACjC,IAAQmB,EAAkDnB,EAAlDmB,KAAMC,EAA4CpB,EAA5CoB,UAAWC,EAAiCrB,EAAjCqB,YAAapB,EAAoBD,EAApBC,QAASE,EAAWH,EAAXG,OAE/C,IAAKgB,GAAQG,EAAQH,IAASA,IAAS,GAAI,OAAOH,EAACO,EAAQ,CAAArB,SAAEmB,IAC7D,KAAMD,EAAW,CACf,IAAMI,EAAaC,EAAcN,GACjC,GAAIK,GAAcJ,EAAY,EAAG,CAC/B,OACEJ,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CiB,GAGP,KAAO,CACL,IAAMO,EAAcC,EAAUR,EAAMC,EAAY,GAChD,OACEJ,EAACY,EAAO,CAACC,UAAU,UAAUC,MAAOX,EAAKjB,SACvCc,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CwB,KAIT,CACF,CACA,GAAI1B,EAAM+B,MAAO,CACf,OACEf,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC3Cc,EAACgB,EAAe,CAACb,KAAMA,EAAMY,MAAO/B,EAAM+B,SAGhD,CACA,OACEf,EAACjB,EAAU,CAACE,QAASA,EAASE,OAAQA,EAAOD,SAC1CF,EAAMmB,MAGb"}
@@ -7,5 +7,5 @@ import './../pre-defined-class-name/index.css';
7
7
  import './../types/index.css';
8
8
  import './index.css';
9
9
  /*! @flatjs/forge MIT @flatbiz/antd */
10
- import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as a}from"@wove/react/cjs/hooks";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{toArray as i}from"@flatbiz/utils";import{Form as o}from"antd";import{useMemo as t,useEffect as m,useRef as s}from"react";import{fbaHooks as l}from"../fba-hooks/index.js";import{fbaUtils as u}from"../fba-utils/index.js";import{FormItemHidden as v}from"../form-item-hidden/index.js";import{FormItemWrapper as c}from"../form-item-wrapper/index.js";import{TimeRangePickerWrapper as f}from"../time-range-picker-wrapper/index.js";import{jsxs as p,Fragment as d,jsx as j}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";import"@dimjs/model";import"../pre-defined-class-name/index.js";import"@dimjs/utils/cjs/class-names";import"dayjs";import"../time-53b3f55f.js";var h=["startName","endName","formListName","formListCompleteName","timeRangePickerWrapperProps"];var g=function s(l){var g;var C=l.startName,x=l.endName,N=l.formListName,k=l.formListCompleteName,P=l.timeRangePickerWrapperProps,b=e(l,h);var F=o.useFormInstance();var W=k||N;var L=t((function(){if(W&&n(C)&&n(x)){var e=C[0],r=C.slice(1);var a=x.slice(1);return[e].concat("__#invalid_time_"+r.join("-")+"_"+a.join("-"))}return"__#invalid_time_"+C+"_"+x}),[W,C,x]);var w=t((function(){return W?[].concat(i(W),L):L}),[L,W]);var R=t((function(){return W?[].concat(i(W),i(C)):C}),[C,W]);var y=t((function(){return W?[].concat(i(W),i(x)):x}),[x,W]);var z=o.useWatch(R,F);var A=o.useWatch(y,F);var B=o.useWatch(w,F);var E=a.useCallbackRef((function(e){var r=e==null?void 0:e[0];var a=e==null?void 0:e[1];u.setFormFieldsAndTriggerValuesChange(F,[{name:R,value:r},{name:y,value:a}]);P==null||P.onChange==null||P.onChange(e)}));m((function(){if(z&&A){F.setFields([{name:w,value:[z,A]}])}else{F.setFields([{name:w,value:undefined}])}}),[z,A,B,F,w]);return p(d,{children:[j(v,{name:C}),j(v,{name:x}),j(c,r({},b,{name:L,children:W&&(g=l.rules)!=null&&g.length?j(_,r({},P,{onChange:E})):j(f,r({},P,{onChange:E}))}))]})};var _=function e(a){var n,i;var o=s(0);var t=l.usePrevious(a.value);l.useEffectCustom((function(){var e,r;if(o.current===0&&!t&&(e=a.value)!=null&&e[0]&&(r=a.value)!=null&&r[1]){o.current=1;a.onChange==null||a.onChange(a.value)}}),[(n=a.value)==null?void 0:n[0],(i=a.value)==null?void 0:i[1]]);return j(f,r({},a))};export{g as TimeRangePickerWrapperFormItem};
10
+ import{a as e,_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as a}from"@wove/react/cjs/hooks";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{toArray as i}from"@flatbiz/utils";import{Form as t}from"antd";import{useMemo as o,useEffect as m,useRef as s}from"react";import{fbaHooks as l}from"../fba-hooks/index.js";import{fbaUtils as u}from"../fba-utils/index.js";import{FormItemHidden as v}from"../form-item-hidden/index.js";import{FormItemWrapper as c}from"../form-item-wrapper/index.js";import{TimeRangePickerWrapper as f}from"../time-range-picker-wrapper/index.js";import{jsxs as p,Fragment as d,jsx as j}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/model";import"../pre-defined-class-name/index.js";import"@dimjs/utils/cjs/class-names";import"dayjs";import"../time-53b3f55f.js";var h=["startName","endName","formListName","formListCompleteName","timeRangePickerWrapperProps"];var g=function s(l){var g;var C=l.startName,x=l.endName,N=l.formListName,k=l.formListCompleteName,P=l.timeRangePickerWrapperProps,b=e(l,h);var F=t.useFormInstance();var W=k||N;var L=o((function(){if(W&&n(C)&&n(x)){var e=C[0],r=C.slice(1);var a=x.slice(1);return[e].concat("__#invalid_time_"+r.join("-")+"_"+a.join("-"))}return"__#invalid_time_"+C+"_"+x}),[W,C,x]);var w=o((function(){return W?[].concat(i(W),L):L}),[L,W]);var R=o((function(){return W?[].concat(i(W),i(C)):C}),[C,W]);var y=o((function(){return W?[].concat(i(W),i(x)):x}),[x,W]);var z=t.useWatch(R,F);var A=t.useWatch(y,F);var B=t.useWatch(w,F);var E=a.useCallbackRef((function(e){var r=e==null?void 0:e[0];var a=e==null?void 0:e[1];u.setFormFieldsAndTriggerValuesChange(F,[{name:R,value:r},{name:y,value:a}]);P==null||P.onChange==null||P.onChange(e)}));m((function(){if(z&&A){F.setFields([{name:w,value:[z,A]}])}else{F.setFields([{name:w,value:undefined}])}}),[z,A,B,F,w]);return p(d,{children:[j(v,{name:C}),j(v,{name:x}),j(c,r({},b,{name:L,children:W&&(g=l.rules)!=null&&g.length?j(_,r({},P,{onChange:E})):j(f,r({},P,{onChange:E}))}))]})};var _=function e(a){var n,i;var t=s(0);var o=l.usePrevious(a.value);l.useEffectCustom((function(){var e,r;if(t.current===0&&!o&&(e=a.value)!=null&&e[0]&&(r=a.value)!=null&&r[1]){t.current=1;a.onChange==null||a.onChange(a.value)}}),[(n=a.value)==null?void 0:n[0],(i=a.value)==null?void 0:i[1]]);return j(f,r({},a))};export{g as TimeRangePickerWrapperFormItem};
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/time-range-picker-wrapper-form-item/time-range-picker-wrapper-form-item.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\n\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper, FormItemWrapperProps } from '../form-item-wrapper';\nimport {\n TimeRangePickerWrapper,\n TimeRangePickerWrapperProps,\n} from '../time-range-picker-wrapper/time-range-picker-wrapper';\nimport { FormItemNamePath } from '../types';\n\nexport type TimeRangePickerWrapperFormItemProps = Omit<FormItemWrapperProps, 'name'> & {\n /**\n * 开始的时间name\n */\n startName: FormItemNamePath;\n /**\n * 结束的时间name\n */\n endName: FormItemNamePath;\n /**\n * 如果 TimeRangePickerWrapperFormItem 在Form.List场景下 必传\n * @deprecated 使用 formListCompleteName 配置\n */\n formListName?: Array<string | number>;\n /**\n * 前端 formItem 前缀FormName,当 TimeRangePickerWrapperFormItem 处在Form.List场景下,必传\n * ```\n * 例如 处在formList内部时,则 formListCompleteName = ['xxxxList']\n * 例如 处在formList套formList内部时,则 formListCompleteName = ['xxxxList', 索引值, 'xxxxList2']\n * ```\n */\n formListCompleteName?: Array<string | number> | string;\n\n timeRangePickerWrapperProps?: TimeRangePickerWrapperProps;\n};\n/**\n * 包含了Form.Item组件的时间区间选择组件,时间区间组件可以定义成两个字段操作,不用再通过数组处理\n * ```\n * 1. 会在form中产生一个 `__#invalid_time_xxxx_xxxx` 的无效字段,可以直接忽略\n * 2. 设置日期格式 timeRangePickerWrapperProps={{ format: 'HH:mm:ss' }}\n * 使用场景:\n * 1. 基础使用场景\n * <TimeRangePickerWrapperFormItem startName={'date1'} endName={'date2'} />\n * 2. Form.List 内部使用\n * <FormListWrapper name=\"dataList\" prevCompleteName={[]}>\n * {(data) => {\n * return <TimeRangePickerWrapperFormItem formListCompleteName={data.prevCompleteName} startName={data.getInsideFormItemName('date1')} endName={data.getInsideFormItemName('date2')} />\n * }}\n * </FormListWrapper>\n * 3. Form.List 套 Form.List 内部使用\n * <FormListWrapper name=\"dataList\" prevCompleteName={[]}>\n * {(data) => {\n * return <FormListWrapper name={data.getInsideFormItemName('childrenList')} prevCompleteName={data.prevCompleteName}>\n * {(data2) => {\n * return <TimeRangePickerWrapperFormItem formListCompleteName={data2.prevCompleteName} startName={data2.getInsideFormItemName('date1')} endName={data2.getInsideFormItemName('date2')} />\n * }}\n * </FormListWrapper>\n * }}\n * </FormListWrapper>\n * ```\n */\nexport const TimeRangePickerWrapperFormItem = (props: TimeRangePickerWrapperFormItemProps) => {\n const {\n startName,\n endName,\n formListName,\n formListCompleteName,\n timeRangePickerWrapperProps,\n ...otherProps\n } = props;\n const form = Form.useFormInstance();\n\n const prevName = formListCompleteName || formListName;\n\n const bodyName = useMemo(() => {\n if (prevName && isArray(startName) && isArray(endName)) {\n const [startName0, ...startNameOther] = startName;\n const [, ...endNameOther] = endName;\n return [startName0].concat(`__#invalid_time_${startNameOther.join('-')}_${endNameOther.join('-')}`);\n }\n return `__#invalid_time_${startName}_${endName}`;\n }, [prevName, startName, endName]);\n\n const bodyCompleteName = useMemo(\n () => (prevName ? [...toArray<string | number>(prevName), ...bodyName] : bodyName),\n [bodyName, prevName],\n );\n const startCompleteName = useMemo(() => {\n return prevName\n ? [...toArray<string | number>(prevName), ...toArray<string | number>(startName)]\n : startName;\n }, [startName, prevName]);\n\n const endCompleteName = useMemo(() => {\n return prevName ? [...toArray<string | number>(prevName), ...toArray<string | number>(endName)] : endName;\n }, [endName, prevName]);\n\n const startVal = Form.useWatch(startCompleteName, form);\n const endVal = Form.useWatch(endCompleteName, form);\n const bodyValue = Form.useWatch(bodyCompleteName, form);\n\n const onChange = hooks.useCallbackRef((data) => {\n const value1 = data?.[0];\n const value2 = data?.[1];\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n { name: startCompleteName, value: value1 },\n { name: endCompleteName, value: value2 },\n ]);\n timeRangePickerWrapperProps?.onChange?.(data);\n });\n\n useEffect(() => {\n if (startVal && endVal) {\n form.setFields([{ name: bodyCompleteName, value: [startVal, endVal] }]);\n } else {\n form.setFields([{ name: bodyCompleteName, value: undefined }]);\n }\n }, [startVal, endVal, bodyValue, form, bodyCompleteName]);\n\n return (\n <>\n <FormItemHidden name={startName} />\n <FormItemHidden name={endName} />\n <FormItemWrapper {...otherProps} name={bodyName}>\n {prevName && props.rules?.length ? (\n <Content {...timeRangePickerWrapperProps} onChange={onChange} />\n ) : (\n <TimeRangePickerWrapper {...timeRangePickerWrapperProps} onChange={onChange} />\n )}\n </FormItemWrapper>\n </>\n );\n};\n\nconst Content = (props) => {\n const ref = useRef<number>(0);\n const preValue = fbaHooks.usePrevious(props.value);\n fbaHooks.useEffectCustom(() => {\n // 处在Form.List场景下,当第一次外部赋值时,会出现赋值成功,但显示异常效果\n if (ref.current === 0 && !preValue && props.value?.[0] && props.value?.[1]) {\n ref.current = 1;\n props.onChange?.(props.value);\n }\n }, [props.value?.[0], props.value?.[1]]);\n\n return <TimeRangePickerWrapper {...props} />;\n};\n"],"names":["TimeRangePickerWrapperFormItem","props","_props$rules","startName","endName","formListName","formListCompleteName","timeRangePickerWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","form","Form","useFormInstance","prevName","bodyName","useMemo","_isArray","startName0","startNameOther","slice","endNameOther","concat","join","bodyCompleteName","toArray","startCompleteName","endCompleteName","startVal","useWatch","endVal","bodyValue","onChange","_hooks","useCallbackRef","data","value1","value2","fbaUtils","setFormFieldsAndTriggerValuesChange","name","value","useEffect","setFields","undefined","_jsxs","_Fragment","children","_jsx","FormItemHidden","FormItemWrapper","_extends","rules","length","Content","TimeRangePickerWrapper","_props$value3","_props$value4","ref","useRef","preValue","fbaHooks","usePrevious","useEffectCustom","_props$value","_props$value2","current"],"mappings":";q7BAmEaA,EAAiC,SAAjCA,EAAkCC,GAA+C,IAAAC,EAC5F,IACEC,EAMEF,EANFE,UACAC,EAKEH,EALFG,QACAC,EAIEJ,EAJFI,aACAC,EAGEL,EAHFK,qBACAC,EAEEN,EAFFM,4BACGC,EAAUC,EACXR,EAAKS,GACT,IAAMC,EAAOC,EAAKC,kBAElB,IAAMC,EAAWR,GAAwBD,EAEzC,IAAMU,EAAWC,GAAQ,WACvB,GAAIF,GAAYG,EAAQd,IAAcc,EAAQb,GAAU,CACtD,IAAOc,EAAiCf,EAAS,GAA3BgB,EAAkBhB,EAASiB,MAAA,GACjD,IAAYC,EAAgBjB,EAAOgB,MAAA,GACnC,MAAO,CAACF,GAAYI,OAAM,mBAAoBH,EAAeI,KAAK,SAAQF,EAAaE,KAAK,KAC9F,CACA,MAA0BpB,mBAAAA,MAAaC,CACxC,GAAE,CAACU,EAAUX,EAAWC,IAEzB,IAAMoB,EAAmBR,GACvB,WAAA,OAAOF,EAAQQ,GAAAA,OAAOG,EAAyBX,GAAcC,GAAYA,CAAQ,GACjF,CAACA,EAAUD,IAEb,IAAMY,EAAoBV,GAAQ,WAChC,OAAOF,EAAQ,GAAAQ,OACPG,EAAyBX,GAAcW,EAAyBtB,IACpEA,CACN,GAAG,CAACA,EAAWW,IAEf,IAAMa,EAAkBX,GAAQ,WAC9B,OAAOF,EAAQ,GAAAQ,OAAOG,EAAyBX,GAAcW,EAAyBrB,IAAYA,CACpG,GAAG,CAACA,EAASU,IAEb,IAAMc,EAAWhB,EAAKiB,SAASH,EAAmBf,GAClD,IAAMmB,EAASlB,EAAKiB,SAASF,EAAiBhB,GAC9C,IAAMoB,EAAYnB,EAAKiB,SAASL,EAAkBb,GAElD,IAAMqB,EAAWC,EAAMC,gBAAe,SAACC,GACrC,IAAMC,EAASD,eAAAA,EAAO,GACtB,IAAME,EAASF,eAAAA,EAAO,GACtBG,EAASC,oCAAoC5B,EAAM,CACjD,CAAE6B,KAAMd,EAAmBe,MAAOL,GAClC,CAAEI,KAAMb,EAAiBc,MAAOJ,KAElC9B,GAA2B,MAA3BA,EAA6ByB,UAAQ,MAArCzB,EAA6ByB,SAAWG,EAC1C,IAEAO,GAAU,WACR,GAAId,GAAYE,EAAQ,CACtBnB,EAAKgC,UAAU,CAAC,CAAEH,KAAMhB,EAAkBiB,MAAO,CAACb,EAAUE,KAC9D,KAAO,CACLnB,EAAKgC,UAAU,CAAC,CAAEH,KAAMhB,EAAkBiB,MAAOG,YACnD,CACF,GAAG,CAAChB,EAAUE,EAAQC,EAAWpB,EAAMa,IAEvC,OACEqB,EAAAC,EAAA,CAAAC,SAAA,CACEC,EAACC,EAAc,CAACT,KAAMrC,IACtB6C,EAACC,EAAc,CAACT,KAAMpC,IACtB4C,EAACE,EAAeC,KAAK3C,EAAU,CAAEgC,KAAMzB,EAASgC,SAC7CjC,IAAQZ,EAAID,EAAMmD,QAAK,MAAXlD,EAAamD,OACxBL,EAACM,EAAOH,KAAK5C,EAA2B,CAAEyB,SAAUA,KAEpDgB,EAACO,EAAsBJ,KAAK5C,EAA2B,CAAEyB,SAAUA,UAK7E,EAEA,IAAMsB,EAAU,SAAVA,EAAWrD,GAAU,IAAAuD,EAAAC,EACzB,IAAMC,EAAMC,EAAe,GAC3B,IAAMC,EAAWC,EAASC,YAAY7D,EAAMwC,OAC5CoB,EAASE,iBAAgB,WAAM,IAAAC,EAAAC,EAE7B,GAAIP,EAAIQ,UAAY,IAAMN,IAAQI,EAAI/D,EAAMwC,QAAK,MAAXuB,EAAc,KAAEC,EAAIhE,EAAMwC,QAANwB,MAAAA,EAAc,GAAI,CAC1EP,EAAIQ,QAAU,EACdjE,EAAM+B,UAAQ,MAAd/B,EAAM+B,SAAW/B,EAAMwC,MACzB,IACC,EAAAe,EAACvD,EAAMwC,QAAK,UAAA,EAAXe,EAAc,IAAEC,EAAExD,EAAMwC,QAAK,UAAA,EAAXgB,EAAc,KAEpC,OAAOT,EAACO,EAAsBJ,EAAKlD,CAAAA,EAAAA,GACrC"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/time-range-picker-wrapper-form-item/time-range-picker-wrapper-form-item.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\n\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper, FormItemWrapperProps } from '../form-item-wrapper';\nimport {\n TimeRangePickerWrapper,\n TimeRangePickerWrapperProps,\n} from '../time-range-picker-wrapper/time-range-picker-wrapper';\nimport { FormItemNamePath } from '../types';\n\nexport type TimeRangePickerWrapperFormItemProps = Omit<FormItemWrapperProps, 'name'> & {\n /**\n * 开始的时间name\n */\n startName: FormItemNamePath;\n /**\n * 结束的时间name\n */\n endName: FormItemNamePath;\n /**\n * 如果 TimeRangePickerWrapperFormItem 在Form.List场景下 必传\n * @deprecated 使用 formListCompleteName 配置\n */\n formListName?: Array<string | number>;\n /**\n * 前端 formItem 前缀FormName,当 TimeRangePickerWrapperFormItem 处在Form.List场景下,必传\n * ```\n * 例如 处在formList内部时,则 formListCompleteName = ['xxxxList']\n * 例如 处在formList套formList内部时,则 formListCompleteName = ['xxxxList', 索引值, 'xxxxList2']\n * ```\n */\n formListCompleteName?: Array<string | number> | string;\n\n timeRangePickerWrapperProps?: TimeRangePickerWrapperProps;\n};\n/**\n * 包含了Form.Item组件的时间区间选择组件,时间区间组件可以定义成两个字段操作,不用再通过数组处理\n * ```\n * 1. 会在form中产生一个 `__#invalid_time_xxxx_xxxx` 的无效字段,可以直接忽略\n * 2. 设置日期格式 timeRangePickerWrapperProps={{ format: 'HH:mm:ss' }}\n * 使用场景:\n * 1. 基础使用场景\n * <TimeRangePickerWrapperFormItem startName={'date1'} endName={'date2'} />\n * 2. Form.List 内部使用\n * <FormListWrapper name=\"dataList\" prevCompleteName={[]}>\n * {(data) => {\n * return <TimeRangePickerWrapperFormItem formListCompleteName={data.prevCompleteName} startName={data.getInsideFormItemName('date1')} endName={data.getInsideFormItemName('date2')} />\n * }}\n * </FormListWrapper>\n * 3. Form.List 套 Form.List 内部使用\n * <FormListWrapper name=\"dataList\" prevCompleteName={[]}>\n * {(data) => {\n * return <FormListWrapper name={data.getInsideFormItemName('childrenList')} prevCompleteName={data.prevCompleteName}>\n * {(data2) => {\n * return <TimeRangePickerWrapperFormItem formListCompleteName={data2.prevCompleteName} startName={data2.getInsideFormItemName('date1')} endName={data2.getInsideFormItemName('date2')} />\n * }}\n * </FormListWrapper>\n * }}\n * </FormListWrapper>\n * ```\n */\nexport const TimeRangePickerWrapperFormItem = (props: TimeRangePickerWrapperFormItemProps) => {\n const {\n startName,\n endName,\n formListName,\n formListCompleteName,\n timeRangePickerWrapperProps,\n ...otherProps\n } = props;\n const form = Form.useFormInstance();\n\n const prevName = formListCompleteName || formListName;\n\n const bodyName = useMemo(() => {\n if (prevName && isArray(startName) && isArray(endName)) {\n const [startName0, ...startNameOther] = startName;\n const [, ...endNameOther] = endName;\n return [startName0].concat(`__#invalid_time_${startNameOther.join('-')}_${endNameOther.join('-')}`);\n }\n return `__#invalid_time_${startName}_${endName}`;\n }, [prevName, startName, endName]);\n\n const bodyCompleteName = useMemo(\n () => (prevName ? [...toArray<string | number>(prevName), ...bodyName] : bodyName),\n [bodyName, prevName],\n );\n const startCompleteName = useMemo(() => {\n return prevName\n ? [...toArray<string | number>(prevName), ...toArray<string | number>(startName)]\n : startName;\n }, [startName, prevName]);\n\n const endCompleteName = useMemo(() => {\n return prevName ? [...toArray<string | number>(prevName), ...toArray<string | number>(endName)] : endName;\n }, [endName, prevName]);\n\n const startVal = Form.useWatch(startCompleteName, form);\n const endVal = Form.useWatch(endCompleteName, form);\n const bodyValue = Form.useWatch(bodyCompleteName, form);\n\n const onChange = hooks.useCallbackRef((data) => {\n const value1 = data?.[0];\n const value2 = data?.[1];\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n { name: startCompleteName, value: value1 },\n { name: endCompleteName, value: value2 },\n ]);\n timeRangePickerWrapperProps?.onChange?.(data);\n });\n\n useEffect(() => {\n if (startVal && endVal) {\n form.setFields([{ name: bodyCompleteName, value: [startVal, endVal] }]);\n } else {\n form.setFields([{ name: bodyCompleteName, value: undefined }]);\n }\n }, [startVal, endVal, bodyValue, form, bodyCompleteName]);\n\n return (\n <>\n <FormItemHidden name={startName} />\n <FormItemHidden name={endName} />\n <FormItemWrapper {...otherProps} name={bodyName}>\n {prevName && props.rules?.length ? (\n <Content {...timeRangePickerWrapperProps} onChange={onChange} />\n ) : (\n <TimeRangePickerWrapper {...timeRangePickerWrapperProps} onChange={onChange} />\n )}\n </FormItemWrapper>\n </>\n );\n};\n\nconst Content = (props) => {\n const ref = useRef<number>(0);\n const preValue = fbaHooks.usePrevious(props.value);\n fbaHooks.useEffectCustom(() => {\n // 处在Form.List场景下,当第一次外部赋值时,会出现赋值成功,但显示异常效果\n if (ref.current === 0 && !preValue && props.value?.[0] && props.value?.[1]) {\n ref.current = 1;\n props.onChange?.(props.value);\n }\n }, [props.value?.[0], props.value?.[1]]);\n\n return <TimeRangePickerWrapper {...props} />;\n};\n"],"names":["TimeRangePickerWrapperFormItem","props","_props$rules","startName","endName","formListName","formListCompleteName","timeRangePickerWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","form","Form","useFormInstance","prevName","bodyName","useMemo","_isArray","startName0","startNameOther","slice","endNameOther","concat","join","bodyCompleteName","toArray","startCompleteName","endCompleteName","startVal","useWatch","endVal","bodyValue","onChange","_hooks","useCallbackRef","data","value1","value2","fbaUtils","setFormFieldsAndTriggerValuesChange","name","value","useEffect","setFields","undefined","_jsxs","_Fragment","children","_jsx","FormItemHidden","FormItemWrapper","_extends","rules","length","Content","TimeRangePickerWrapper","_props$value3","_props$value4","ref","useRef","preValue","fbaHooks","usePrevious","useEffectCustom","_props$value","_props$value2","current"],"mappings":"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"}
@@ -1 +1 @@
1
- .tips-title{border:1px solid var(--v-border-color,#d9d9d9);border-radius:8px;padding:24px;position:relative}.tips-title-title{background-color:var(--block-bg-color);font-weight:600;left:10px;padding:0 10px;position:absolute;top:0;transform:translateY(-50%)}.tips-title-small{padding:12px}.tips-title+.tips-title{margin-top:20px}
1
+ .tips-title{border:1px solid var(--v-border-color,#d9d9d9);border-radius:8px;padding:24px;position:relative}.tips-title-title{background-color:var(--block-bg-color);font-weight:600;gap:5px;left:10px;padding:0 10px;position:absolute;top:0;transform:translateY(-50%)}.tips-title-small{padding:12px}.tips-title+.tips-title{margin-top:20px}.tips-title-content{height:100%;overflow:auto}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as l}from"@dimjs/utils/cjs/class-names";import i from"@ant-design/icons/es/icons/QuestionCircleOutlined";import{Space as t}from"antd";import{jsx as r,jsxs as s}from"react/jsx-runtime";var n=function n(o){if(o.hidden)return null;var c=o.helpIcon?o.helpIcon:o.onHelp?r(i,{onClick:o.onHelp}):null;return s("div",{className:l("tips-title",{"tips-title-small":o.size==="small"},o.className),style:e({},o.style,{"--v-border-color":o.borderColor}),children:[s(t,{className:"tips-title-title",size:5,direction:"horizontal",children:[r("span",{style:o.titleStyle,children:o.title}),c]}),r("div",{className:"tips-title-content",children:o.children})]})};export{n as TipsTitle};
4
+ import{_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as l}from"@dimjs/utils/cjs/class-names";import t from"@ant-design/icons/es/icons/QuestionCircleOutlined";import{Flex as i}from"antd";import{jsx as s,jsxs as r}from"react/jsx-runtime";var n=function n(o){if(o.hidden)return null;var c=o.helpIcon?o.helpIcon:o.onHelp?s(t,{onClick:o.onHelp}):null;return r("div",{className:l("tips-title",{"tips-title-small":o.size==="small"},o.className),style:e({},o.style,{"--v-border-color":o.borderColor}),children:[r(i,{className:"tips-title-title",children:[s("span",{style:o.titleStyle,children:o.title}),c]}),s("div",{className:"tips-title-content",style:o.contentStyle,children:o.children})]})};export{n as TipsTitle};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tips-title/tips-title.tsx"],"sourcesContent":["import { QuestionCircleOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Space } from 'antd';\nimport { CSSProperties, ReactElement, type ReactNode } from 'react';\nimport './style.less';\n\nexport type TipsTitleProps = {\n className?: string;\n style?: CSSProperties;\n title: string | ReactElement;\n titleStyle?: CSSProperties;\n children: ReactNode;\n size?: 'default' | 'small';\n /** 自定义 help icon */\n helpIcon?: ReactElement;\n /** 配置 helpIcon 后,此参数失效 */\n onHelp?: () => void;\n hidden?: boolean;\n borderColor?: string;\n};\n\nexport const TipsTitle = (props: TipsTitleProps) => {\n if (props.hidden) return null;\n const helpElement = props.helpIcon ? (\n props.helpIcon\n ) : props.onHelp ? (\n <QuestionCircleOutlined onClick={props.onHelp} />\n ) : null;\n\n return (\n <div\n className={classNames(\n 'tips-title',\n {\n 'tips-title-small': props.size === 'small',\n },\n props.className,\n )}\n style={\n {\n ...props.style,\n '--v-border-color': props.borderColor,\n } as CSSProperties\n }\n >\n <Space className=\"tips-title-title\" size={5} direction=\"horizontal\">\n <span style={props.titleStyle}>{props.title}</span>\n {helpElement}\n </Space>\n <div className=\"tips-title-content\">{props.children}</div>\n </div>\n );\n};\n"],"names":["TipsTitle","props","hidden","helpElement","helpIcon","onHelp","_jsx","_QuestionCircleOutlined","onClick","_jsxs","className","_classNames","size","style","_extends","borderColor","children","Space","direction","titleStyle","title"],"mappings":";2QAqBaA,EAAY,SAAZA,EAAaC,GACxB,GAAIA,EAAMC,OAAQ,OAAO,KACzB,IAAMC,EAAcF,EAAMG,SACxBH,EAAMG,SACJH,EAAMI,OACRC,EAAAC,EAAA,CAAwBC,QAASP,EAAMI,SACrC,KAEJ,OACEI,EAAA,MAAA,CACEC,UAAWC,EACT,aACA,CACE,mBAAoBV,EAAMW,OAAS,SAErCX,EAAMS,WAERG,MAAKC,EAEEb,GAAAA,EAAMY,MAAK,CACd,mBAAoBZ,EAAMc,cAE7BC,SAAA,CAEDP,EAACQ,EAAK,CAACP,UAAU,mBAAmBE,KAAM,EAAGM,UAAU,aAAYF,UACjEV,EAAA,OAAA,CAAMO,MAAOZ,EAAMkB,WAAWH,SAAEf,EAAMmB,QACrCjB,KAEHG,EAAA,MAAA,CAAKI,UAAU,qBAAoBM,SAAEf,EAAMe,aAGjD"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tips-title/tips-title.tsx"],"sourcesContent":["import { QuestionCircleOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Flex } from 'antd';\nimport type { CSSProperties, ReactElement } from 'react';\nimport { type ReactNode } from 'react';\nimport './style.less';\n\nexport type TipsTitleProps = {\n className?: string;\n style?: CSSProperties;\n title: string | ReactElement;\n titleStyle?: CSSProperties;\n contentStyle?: CSSProperties;\n children: ReactNode;\n size?: 'default' | 'small';\n /** 自定义 help icon */\n helpIcon?: ReactElement;\n /** 配置 helpIcon 后,此参数失效 */\n onHelp?: () => void;\n hidden?: boolean;\n borderColor?: string;\n};\n\nexport const TipsTitle = (props: TipsTitleProps) => {\n if (props.hidden) return null;\n const helpElement = props.helpIcon ? (\n props.helpIcon\n ) : props.onHelp ? (\n <QuestionCircleOutlined onClick={props.onHelp} />\n ) : null;\n\n return (\n <div\n className={classNames(\n 'tips-title',\n {\n 'tips-title-small': props.size === 'small',\n },\n props.className,\n )}\n style={\n {\n ...props.style,\n '--v-border-color': props.borderColor,\n } as CSSProperties\n }\n >\n <Flex className=\"tips-title-title\">\n <span style={props.titleStyle}>{props.title}</span>\n {helpElement}\n </Flex>\n <div className=\"tips-title-content\" style={props.contentStyle}>\n {props.children}\n </div>\n </div>\n );\n};\n"],"names":["TipsTitle","props","hidden","helpElement","helpIcon","onHelp","_jsx","_QuestionCircleOutlined","onClick","_jsxs","className","_classNames","size","style","_extends","borderColor","children","Flex","titleStyle","title","contentStyle"],"mappings":";0QAuBaA,EAAY,SAAZA,EAAaC,GACxB,GAAIA,EAAMC,OAAQ,OAAO,KACzB,IAAMC,EAAcF,EAAMG,SACxBH,EAAMG,SACJH,EAAMI,OACRC,EAAAC,EAAA,CAAwBC,QAASP,EAAMI,SACrC,KAEJ,OACEI,EAAA,MAAA,CACEC,UAAWC,EACT,aACA,CACE,mBAAoBV,EAAMW,OAAS,SAErCX,EAAMS,WAERG,MAAKC,EAEEb,GAAAA,EAAMY,MAAK,CACd,mBAAoBZ,EAAMc,cAE7BC,SAAA,CAEDP,EAACQ,EAAI,CAACP,UAAU,mBAAkBM,UAChCV,EAAA,OAAA,CAAMO,MAAOZ,EAAMiB,WAAWF,SAAEf,EAAMkB,QACrChB,KAEHG,EAAA,MAAA,CAAKI,UAAU,qBAAqBG,MAAOZ,EAAMmB,aAAaJ,SAC3Df,EAAMe,aAIf"}
@@ -17,5 +17,5 @@ import './../dropdown-menu-wrapper/index.css';
17
17
  import './../input-search-wrapper/index.css';
18
18
  import './index.css';
19
19
  /*! @flatjs/forge MIT @flatbiz/antd */
20
- import{toArray as e,treeToTiledMap as i,isUndefinedOrNull as n,attachPropertiesToComponent as t}from"@flatbiz/utils";import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as o}from"@wove/react/cjs/hooks";import{useSize as l}from"ahooks";import{Modal as a}from"antd";import{Fragment as d,useRef as s,useState as u,useEffect as c,useMemo as m}from"react";import{fbaHooks as v}from"../fba-hooks/index.js";import{isObject as h}from"@dimjs/lang/cjs/is-object";import{FlexLayout as p}from"../flex-layout/index.js";import f from"@ant-design/icons/es/icons/CloseOutlined";import{CssNodeHover as g}from"../css-node-hover/index.js";import{IconWrapper as C}from"../icon-wrapper/index.js";import{TextOverflow as j}from"../text-overflow/index.js";import{jsx as x,jsxs as y}from"react/jsx-runtime";import{TreeWrapper as b}from"../tree-wrapper/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-string";import"@dimjs/model-react";import"@dimjs/utils/cjs/array";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 w=function e(i){var n=i.checkedIdList;return x(d,{children:n==null?void 0:n.map((function(e){var n=e.value;var t=e.label||n;return x(g,{style:{paddingLeft:5,paddingRight:0},children:y(p,{fullIndex:1,direction:"horizontal",style:{alignItems:"center",fontSize:14,marginBottom:0,color:"#505050"},children:[x(j,{text:t}),x("div",{style:{position:"relative",zIndex:9,color:"#a1a1a1"},children:x(C,{text:x(f,{}),onClick:i.onDeleteItem.bind(null,n),size:"small",style:{paddingRight:5,margin:"2px"}})})]})},n)}))})};var N=function i(n){var t,l;var a=o.useId(undefined,"tree-select-modal");return x(b,r({initRootExpand:true,showSearch:true,searchPlaceholder:"搜索",checkable:true,checkableType:"2"},n.treeProps,{showIcon:(t=n.treeProps)!=null&&t.icon?true:false,value:(l=n.value)==null?void 0:l.map((function(e){return e.value})),modelKey:a,fieldNames:n.fieldNames,labelInValue:true,serviceConfig:n.serviceConfig,onChange:function i(t){n.onChange==null||n.onChange(e(t))}}))};var k=function e(n){var t,o;var l=n.value||[];var a=((t=n.fieldNames)==null?void 0:t.value)||"value";var s=((o=n.fieldNames)==null?void 0:o.children)||"children";var u=n.textConfig,c=u.selectQuantityPrompt,m=u.placeholder;return y(p,{fullIndex:0,direction:"horizontal",gap:10,style:{height:"100%",overflow:"hidden"},children:[x("div",{style:{backgroundColor:"#f4f4f4",padding:10,borderRadius:5},children:x(N,{treeProps:n.treeProps,value:l,onChange:n.onChange,fieldNames:n.fieldNames,serviceConfig:r({},n.serviceConfig,{onRequestResultAdapter:function e(t){var r=i(t,{value:a,children:s});n.onChangeDataSource==null||n.onChangeDataSource(t,r);return t}})})}),y("div",{style:{width:"40%",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",flexShrink:0},children:[x("div",{style:{fontSize:15,fontWeight:"500",marginBottom:10},children:l.length>0?x(d,{children:c?c.replace("{total}",""+((l==null?void 0:l.length)||"")):"已选择"+(l==null?void 0:l.length)}):m||"请选择"}),x("div",{style:{overflow:"auto",flex:1},children:x(w,{checkedIdList:l,fieldNames:n.fieldNames,onDeleteItem:n.onDeleteItem})})]})]})};var R=function e(n){var t,o;var l=n.textConfig,a=l.selectQuantityPrompt,s=l.placeholder;var u=((t=n.fieldNames)==null?void 0:t.value)||"value";var c=((o=n.fieldNames)==null?void 0:o.children)||"children";var m=n.value||[];return y("div",{style:{height:"100%",overflow:"auto"},children:[x("div",{style:{backgroundColor:"#f4f4f4",padding:10,borderRadius:5},children:x(N,{treeProps:n.treeProps,value:m,onChange:n.onChange,fieldNames:n.fieldNames,serviceConfig:r({},n.serviceConfig,{onRequestResultAdapter:function e(t){var r=i(t,{value:u,children:c});n.onChangeDataSource==null||n.onChangeDataSource(t,r);return t}})})}),y("div",{style:{marginTop:20},children:[x("div",{style:{fontSize:15,fontWeight:"500",marginBottom:10},children:m.length>0?x(d,{children:a?a.replace("{total}",""+((m==null?void 0:m.length)||"")):"已选择"+(m==null?void 0:m.length)}):s}),x(w,{checkedIdList:m,fieldNames:n.fieldNames,onDeleteItem:n.onDeleteItem})]})]})};var D=function i(t){var l,a;var c=t.isMultiple;var m=((l=t.fieldNames)==null?void 0:l.label)||"label";var p=((a=t.fieldNames)==null?void 0:a.value)||"value";var f=s({});var g=v.useResponsivePoint()||"";var C=g==="xs"?"vertical":"horizontal";var j=n(c)?true:c;var y=u(),b=y[0],w=y[1];var N=function e(i){var n=b==null?void 0:b.filter((function(e){return e.value!==i}));w(n);t.onChange==null||t.onChange(n)};v.useEffectCustom((function(){var i=e(t.value).map((function(e){var i;var n=h(e)?e:{label:e,value:e};var t=n.value;return{value:t,label:((i=f.current[t])==null?void 0:i[m])||""}}));w(i)}),[t.value]);var D=r({},t.treeProps,{checkable:j?true:false});var I=function e(i){w(i);t.onChange==null||t.onChange(i)};var P=o.useCallbackRef((function(e,i){f.current=i;var n=b==null?void 0:b.map((function(e){var n=i[e.value];return n?{label:n[m],value:n[p]}:undefined})).filter(Boolean);w(n);t.onDataSourceChange==null||t.onDataSourceChange(e,i)}));return x(d,{children:C==="vertical"?x(R,{value:b,onDeleteItem:N,fieldNames:t.fieldNames,serviceConfig:t.serviceConfig?t.serviceConfig:{onRequest:t.onRequest},textConfig:t.textConfig,onChange:I,onChangeDataSource:P,treeProps:D}):x(k,{value:b,onDeleteItem:N,fieldNames:t.fieldNames,serviceConfig:t.serviceConfig?t.serviceConfig:{onRequest:t.onRequest},textConfig:t.textConfig,onChange:I,onChangeDataSource:P,treeProps:D})})};var I=function e(i){var n=i.size,t=n===void 0?"large":n;var h=u(false),p=h[0],f=h[1];var g=l(document.querySelector("html"));var C=v.useResponsivePoint()||"";var j=C==="xs"?"vertical":"horizontal";var b=o.useCallbackRef((function(){if(i.disabled)return;f(true)}));var w=i.children.type;var N=u(),k=N[0],R=N[1];var I=s();c((function(){I.current=i.value||[];R(i.value)}),[i.value]);var P=m((function(){if(!(g!=null&&g.height)||!C)return undefined;var e=["xs","sm"].includes(C);var n={};if(t=="large"){n={height:(g==null?void 0:g.height)*.65,width:800}}else if(t=="small"){n={height:(g==null?void 0:g.height)*.45,width:450}}else if(t=="middle"){n={height:(g==null?void 0:g.height)*.55,width:600}}return{height:i.modalBodyHeight||n.height,width:e?"90%":i.modalWidth||n.width}}),[g==null?void 0:g.height,C,t,i.modalBodyHeight,i.modalWidth]);var S=function e(){i.onChange==null||i.onChange(k);f(false)};var z=function e(){f(false);R(I.current)};return y(d,{children:[x(w,r({},i.children.props,{onClick:b})),x(a,{className:i.modalClassName,title:i.textConfig.title||"选择",open:p,onCancel:z,forceRender:i.forceRender,centered:true,width:P==null?void 0:P.width,onOk:S,styles:j==="horizontal"?{body:{height:P==null?void 0:P.height,maxHeight:"calc(100vh - 200px)",padding:"0px 20px 0 20px"},content:{padding:0},header:{padding:"20px 24px 0 20px"},footer:{padding:"0 24px 20px 24px"}}:{body:{height:P==null?void 0:P.height}},children:x(D,r({},i,{value:k,onChange:function e(i){R(i)}}))})]})};var P=t(I,{Content:D});export{P as TreeModal};
20
+ import{toArray as e,treeToTiledMap as i,isUndefinedOrNull as n,attachPropertiesToComponent as t}from"@flatbiz/utils";import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as o}from"@wove/react/cjs/hooks";import{useSize as l}from"ahooks";import{Modal as a}from"antd";import{Fragment as d,useRef as s,useState as u,useEffect as c,useMemo as m}from"react";import{fbaHooks as v}from"../fba-hooks/index.js";import{isObject as h}from"@dimjs/lang/cjs/is-object";import{FlexLayout as p}from"../flex-layout/index.js";import f from"@ant-design/icons/es/icons/CloseOutlined";import{CssNodeHover as g}from"../css-node-hover/index.js";import{IconWrapper as j}from"../icon-wrapper/index.js";import{TextOverflow as C}from"../text-overflow/index.js";import{jsx as x,jsxs as y}from"react/jsx-runtime";import{TreeWrapper as b}from"../tree-wrapper/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-string";import"@dimjs/model-react";import"@dimjs/utils/cjs/array";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 w=function e(i){var n=i.checkedIdList;return x(d,{children:n==null?void 0:n.map((function(e){var n=e.value;var t=e.label||n;return x(g,{style:{paddingLeft:5,paddingRight:0},children:y(p,{fullIndex:1,direction:"horizontal",style:{alignItems:"center",fontSize:14,marginBottom:0,color:"#505050"},children:[x(C,{text:t}),x("div",{style:{position:"relative",zIndex:9,color:"#a1a1a1"},children:x(j,{text:x(f,{}),onClick:i.onDeleteItem.bind(null,n),size:"small",style:{paddingRight:5,margin:"2px"}})})]})},n)}))})};var N=function i(n){var t,l;var a=o.useId(undefined,"tree-select-modal");return x(b,r({initRootExpand:true,showSearch:true,searchPlaceholder:"搜索",checkable:true,checkableType:"2"},n.treeProps,{showIcon:(t=n.treeProps)!=null&&t.icon?true:false,value:(l=n.value)==null?void 0:l.map((function(e){return e.value})),modelKey:a,fieldNames:n.fieldNames,labelInValue:true,serviceConfig:n.serviceConfig,onChange:function i(t){n.onChange==null||n.onChange(e(t))}}))};var k=function e(n){var t,o;var l=n.value||[];var a=((t=n.fieldNames)==null?void 0:t.value)||"value";var s=((o=n.fieldNames)==null?void 0:o.children)||"children";var u=n.textConfig,c=u.selectQuantityPrompt,m=u.placeholder;return y(p,{fullIndex:0,direction:"horizontal",gap:10,style:{height:"100%",overflow:"hidden"},children:[x("div",{style:{backgroundColor:"#f4f4f4",padding:10,borderRadius:5},children:x(N,{treeProps:n.treeProps,value:l,onChange:n.onChange,fieldNames:n.fieldNames,serviceConfig:r({},n.serviceConfig,{onRequestResultAdapter:function e(t){var r=i(t,{value:a,children:s});n.onChangeDataSource==null||n.onChangeDataSource(t,r);return t}})})}),y("div",{style:{width:"40%",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",flexShrink:0},children:[x("div",{style:{fontSize:15,fontWeight:"500",marginBottom:10},children:l.length>0?x(d,{children:c?c.replace("{total}",""+((l==null?void 0:l.length)||"")):"已选择"+(l==null?void 0:l.length)}):m||"请选择"}),x("div",{style:{overflow:"auto",flex:1},children:x(w,{checkedIdList:l,fieldNames:n.fieldNames,onDeleteItem:n.onDeleteItem})})]})]})};var R=function e(n){var t,o;var l=n.textConfig,a=l.selectQuantityPrompt,s=l.placeholder;var u=((t=n.fieldNames)==null?void 0:t.value)||"value";var c=((o=n.fieldNames)==null?void 0:o.children)||"children";var m=n.value||[];return y("div",{style:{height:"100%",overflow:"auto"},children:[x("div",{style:{backgroundColor:"#f4f4f4",padding:10,borderRadius:5},children:x(N,{treeProps:n.treeProps,value:m,onChange:n.onChange,fieldNames:n.fieldNames,serviceConfig:r({},n.serviceConfig,{onRequestResultAdapter:function e(t){var r=i(t,{value:u,children:c});n.onChangeDataSource==null||n.onChangeDataSource(t,r);return t}})})}),y("div",{style:{marginTop:20},children:[x("div",{style:{fontSize:15,fontWeight:"500",marginBottom:10},children:m.length>0?x(d,{children:a?a.replace("{total}",""+((m==null?void 0:m.length)||"")):"已选择"+(m==null?void 0:m.length)}):s}),x(w,{checkedIdList:m,fieldNames:n.fieldNames,onDeleteItem:n.onDeleteItem})]})]})};var D=function i(t){var l,a;var c=t.isMultiple;var m=((l=t.fieldNames)==null?void 0:l.label)||"label";var p=((a=t.fieldNames)==null?void 0:a.value)||"value";var f=s({});var g=v.useResponsivePoint()||"";var j=g==="xs"?"vertical":"horizontal";var C=n(c)?true:c;var y=u(),b=y[0],w=y[1];var N=function e(i){var n=b==null?void 0:b.filter((function(e){return e.value!==i}));w(n);t.onChange==null||t.onChange(n)};v.useEffectCustom((function(){var i=e(t.value).map((function(e){var i;var n=h(e)?e:{label:e,value:e};var t=n.value;return{value:t,label:((i=f.current[t])==null?void 0:i[m])||""}}));w(i)}),[t.value]);var D=r({},t.treeProps,{checkable:C?true:false});var I=function e(i){w(i);t.onChange==null||t.onChange(i)};var P=o.useCallbackRef((function(e,i){f.current=i;var n=b==null?void 0:b.map((function(e){var n=i[e.value];return n?{label:n[m],value:n[p]}:undefined})).filter(Boolean);w(n);t.onDataSourceChange==null||t.onDataSourceChange(e,i)}));return x(d,{children:j==="vertical"?x(R,{value:b,onDeleteItem:N,fieldNames:t.fieldNames,serviceConfig:t.serviceConfig?t.serviceConfig:{onRequest:t.onRequest},textConfig:t.textConfig,onChange:I,onChangeDataSource:P,treeProps:D}):x(k,{value:b,onDeleteItem:N,fieldNames:t.fieldNames,serviceConfig:t.serviceConfig?t.serviceConfig:{onRequest:t.onRequest},textConfig:t.textConfig,onChange:I,onChangeDataSource:P,treeProps:D})})};var I=function e(i){var n=i.size,t=n===void 0?"large":n;var h=u(false),p=h[0],f=h[1];var g=l(document.querySelector("html"));var j=v.useResponsivePoint()||"";var C=j==="xs"?"vertical":"horizontal";var b=o.useCallbackRef((function(){if(i.disabled)return;f(true)}));var w=i.children.type;var N=u(),k=N[0],R=N[1];var I=s();c((function(){I.current=i.value||[];R(i.value)}),[i.value]);var P=m((function(){if(!(g!=null&&g.height)||!j)return undefined;var e=["xs","sm"].includes(j);var n={};if(t=="large"){n={height:(g==null?void 0:g.height)*.65,width:800}}else if(t=="small"){n={height:(g==null?void 0:g.height)*.45,width:450}}else if(t=="middle"){n={height:(g==null?void 0:g.height)*.55,width:600}}return{height:i.modalBodyHeight||n.height,width:e?"90%":i.modalWidth||n.width}}),[g==null?void 0:g.height,j,t,i.modalBodyHeight,i.modalWidth]);var S=function e(){i.onChange==null||i.onChange(k);f(false)};var z=function e(){f(false);R(I.current)};return y(d,{children:[x(w,r({},i.children.props,{onClick:b})),x(a,{className:i.modalClassName,title:i.textConfig.title||"选择",open:p,onCancel:z,forceRender:i.forceRender,centered:true,width:P==null?void 0:P.width,onOk:S,styles:C==="horizontal"?{body:{height:P==null?void 0:P.height,maxHeight:"calc(100vh - 200px)",padding:"0px 20px 0 20px"},content:{padding:0},header:{padding:"20px 24px 0 20px"},footer:{padding:"0 24px 20px 24px"}}:{body:{height:P==null?void 0:P.height}},children:x(D,r({},i,{value:k,onChange:function e(i){R(i)}}))})]})};var P=t(I,{Content:D});export{P as TreeModal};
21
21
  //# sourceMappingURL=index.js.map
@@ -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 { Fragment } from 'react';\n\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\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 checkedIdList: TPlainObject[];\n fieldNames: TreeModalProps['fieldNames'];\n onDeleteItem: (value: TAny) => void;\n}) => {\n const checkedIdList = props.checkedIdList;\n return (\n <Fragment>\n {checkedIdList?.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 serviceConfig?: {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n };\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 ...props.serviceConfig,\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 checkedIdList={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 serviceConfig?: {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n };\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 ...props.serviceConfig,\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 checkedIdList={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 return (\n <Fragment>\n {direction === 'vertical' ? (\n <VerticalLayout\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n serviceConfig={\n props.serviceConfig\n ? props.serviceConfig\n : {\n onRequest: props.onRequest,\n }\n }\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 serviceConfig={\n props.serviceConfig\n ? props.serviceConfig\n : {\n onRequest: props.onRequest,\n }\n }\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, useEffect, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TreeModalContent } from './select-modal-content';\nimport type { TreeModalProps, TreeModelSelectItem, TreeModelSelectValue } 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 if (props.disabled) return;\n setIsOpen(true);\n });\n\n const Action = props.children.type;\n\n const [values, setValues] = useState<TreeModelSelectValue>();\n const originalValuesRef = useRef<TreeModelSelectValue>();\n\n useEffect(() => {\n originalValuesRef.current = props.value || [];\n setValues(props.value);\n }, [props.value]);\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 as TreeModelSelectItem[]);\n setIsOpen(false);\n };\n\n const onCancel = () => {\n setIsOpen(false);\n setValues(originalValuesRef.current);\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 value={values}\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","checkedIdList","_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","chenkedIdList","valueKey","childrenKey","_props$textConfig","textConfig","selectQuantityPrompt","placeholder","gap","height","overflow","backgroundColor","padding","borderRadius","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","onRequest","TreeModal","_props$size","isOpen","setIsOpen","htmlSize","useSize","document","querySelector","handleOnClick","disabled","Action","type","_useState2","originalValuesRef","useEffect","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 { Fragment } from 'react';\n\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\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 checkedIdList: TPlainObject[];\n fieldNames: TreeModalProps['fieldNames'];\n onDeleteItem: (value: TAny) => void;\n}) => {\n const checkedIdList = props.checkedIdList;\n return (\n <Fragment>\n {checkedIdList?.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 serviceConfig?: {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n };\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 ...props.serviceConfig,\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 checkedIdList={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 serviceConfig?: {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n };\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 ...props.serviceConfig,\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 checkedIdList={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 return (\n <Fragment>\n {direction === 'vertical' ? (\n <VerticalLayout\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n serviceConfig={\n props.serviceConfig\n ? props.serviceConfig\n : {\n onRequest: props.onRequest,\n }\n }\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 serviceConfig={\n props.serviceConfig\n ? props.serviceConfig\n : {\n onRequest: props.onRequest,\n }\n }\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, useEffect, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TreeModalContent } from './select-modal-content';\nimport type { TreeModalProps, TreeModelSelectItem, TreeModelSelectValue } 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 if (props.disabled) return;\n setIsOpen(true);\n });\n\n const Action = props.children.type;\n\n const [values, setValues] = useState<TreeModelSelectValue>();\n const originalValuesRef = useRef<TreeModelSelectValue>();\n\n useEffect(() => {\n originalValuesRef.current = props.value || [];\n setValues(props.value);\n }, [props.value]);\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 as TreeModelSelectItem[]);\n setIsOpen(false);\n };\n\n const onCancel = () => {\n setIsOpen(false);\n setValues(originalValuesRef.current);\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 value={values}\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","checkedIdList","_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","chenkedIdList","valueKey","childrenKey","_props$textConfig","textConfig","selectQuantityPrompt","placeholder","gap","height","overflow","backgroundColor","padding","borderRadius","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","onRequest","TreeModal","_props$size","isOpen","setIsOpen","htmlSize","useSize","document","querySelector","handleOnClick","disabled","Action","type","_useState2","originalValuesRef","useEffect","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-c0dbec57.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isObject as a}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as o,toArray as n}from"@flatbiz/utils";import{Select as t,message as l}from"antd";import{forwardRef as s,useRef as u,useState as d,useEffect as m,useImperativeHandle as p}from"react";import{TreeModal as c}from"../tree-modal/index.js";import{jsx as j}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"@dimjs/utils/cjs/array";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 v=["placeholder","maxTagCount","labelInValue","maxCount","overMaxCountMsg","disabled","allowClear"];var f=s((function(s,f){var g,x;var C=s.placeholder,b=s.maxTagCount,h=s.labelInValue,w=s.maxCount,y=s.overMaxCountMsg,M=s.disabled,k=s.allowClear,D=e(s,v);var F=o(C)?"请选择":C;var O=o(k)?true:k;var S=u({});var _=u([]);var z=((g=D.fieldNames)==null?void 0:g.label)||"label";var I=((x=D.fieldNames)==null?void 0:x.value)||"value";var N=d(),T=N[0],V=N[1];m((function(){var e;var i=((e=n(s.value))==null?void 0:e.map((function(e){var i;var r=a(e)?e:{label:e,value:e};return{value:r.value,label:((i=S.current[r.value])==null?void 0:i[z])||r.value}})))||[];V(i)}),[z,s.value]);var q=function e(i){var r=n(i).length?i:undefined;if(D.isMultiple==false){s.onChange==null||s.onChange(r==null?void 0:r[0])}else{if(r&&w!==undefined&&r.length>w){void l.error(y?y:"最多选择"+w+"项");return}s.onChange==null||s.onChange(r)}};var B=function e(i){V(i);if(h){q(i);return}q(i==null?void 0:i.map((function(e){return e.value})))};var L=function e(i){V(i);if(h){q(i);return}q(i==null?void 0:i.map((function(e){return e.value})))};var P=r.useCallbackRef((function(e,i){S.current=i;_.current=e||[];var r=T==null?void 0:T.map((function(e){var r=i[e.value];return r?{label:r[z],value:r[I]}:undefined})).filter(Boolean);V(r)}));p(f,(function(){return{getDataSourceMap:function e(){return{treeDataList:_.current,dataSourceMap:S.current}}}}));return j(c,i({},D,{value:T,forceRender:true,onChange:L,onDataSourceChange:P,disabled:M,children:j(t,{labelInValue:true,style:{width:"100%"},placeholder:F,maxTagCount:b,mode:D.isMultiple?"multiple":undefined,open:false,value:T,onChange:B,disabled:M,allowClear:O})}))}));export{f as TreeModalSelector};
21
+ import{a as e,_ as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isObject as a}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as o,toArray as t}from"@flatbiz/utils";import{Select as n,message as l}from"antd";import{forwardRef as s,useRef as u,useState as d,useEffect as m,useImperativeHandle as p}from"react";import{TreeModal as c}from"../tree-modal/index.js";import{jsx as j}from"react/jsx-runtime";import"ahooks";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";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"@dimjs/utils/cjs/array";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 v=["placeholder","maxTagCount","labelInValue","maxCount","overMaxCountMsg","disabled","allowClear"];var f=s((function(s,f){var g,x;var C=s.placeholder,b=s.maxTagCount,h=s.labelInValue,w=s.maxCount,y=s.overMaxCountMsg,M=s.disabled,k=s.allowClear,D=e(s,v);var F=o(C)?"请选择":C;var O=o(k)?true:k;var S=u({});var _=u([]);var z=((g=D.fieldNames)==null?void 0:g.label)||"label";var I=((x=D.fieldNames)==null?void 0:x.value)||"value";var N=d(),T=N[0],V=N[1];m((function(){var e;var i=((e=t(s.value))==null?void 0:e.map((function(e){var i;var r=a(e)?e:{label:e,value:e};return{value:r.value,label:((i=S.current[r.value])==null?void 0:i[z])||r.value}})))||[];V(i)}),[z,s.value]);var q=function e(i){var r=t(i).length?i:undefined;if(D.isMultiple==false){s.onChange==null||s.onChange(r==null?void 0:r[0])}else{if(r&&w!==undefined&&r.length>w){void l.error(y?y:"最多选择"+w+"项");return}s.onChange==null||s.onChange(r)}};var B=function e(i){V(i);if(h){q(i);return}q(i==null?void 0:i.map((function(e){return e.value})))};var L=function e(i){V(i);if(h){q(i);return}q(i==null?void 0:i.map((function(e){return e.value})))};var P=r.useCallbackRef((function(e,i){S.current=i;_.current=e||[];var r=T==null?void 0:T.map((function(e){var r=i[e.value];return r?{label:r[z],value:r[I]}:undefined})).filter(Boolean);V(r)}));p(f,(function(){return{getDataSourceMap:function e(){return{treeDataList:_.current,dataSourceMap:S.current}}}}));return j(c,i({},D,{value:T,forceRender:true,onChange:L,onDataSourceChange:P,disabled:M,children:j(n,{labelInValue:true,style:{width:"100%"},placeholder:F,maxTagCount:b,mode:D.isMultiple?"multiple":undefined,open:false,value:T,onChange:B,disabled:M,allowClear:O})}))}));export{f 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 { message, Select } from 'antd';\nimport { forwardRef, useEffect, useImperativeHandle, 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 maxCount?: number;\n /** 超过最大选择数量提示文本 */\n overMaxCountMsg?: string;\n disabled?: boolean;\n allowClear?: boolean;\n};\n\nexport type TreeModalSelectorApi = {\n getDataSourceMap: () => {\n treeDataList: TPlainObject[];\n dataSourceMap: TPlainObject;\n };\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 = forwardRef<TreeModalSelectorApi, TreeModalSelectorProps>((props, ref) => {\n const {\n placeholder,\n maxTagCount,\n labelInValue,\n maxCount,\n overMaxCountMsg,\n disabled,\n allowClear,\n ...otherProps\n } = props;\n const placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;\n const allowClearFt = isUndefinedOrNull(allowClear) ? true : allowClear;\n\n const dataSourceMapRef = useRef<TPlainObject>({});\n const treeDataListRef = 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 if (valueFt && maxCount !== undefined && valueFt.length > maxCount) {\n void message.error(overMaxCountMsg ? overMaxCountMsg : `最多选择${maxCount}项`);\n return;\n }\n\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 treeDataListRef.current = treeDataList || [];\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 useImperativeHandle(ref, () => {\n return {\n getDataSourceMap: () => {\n return {\n treeDataList: treeDataListRef.current,\n dataSourceMap: dataSourceMapRef.current,\n };\n },\n };\n });\n\n return (\n <TreeModal\n {...otherProps}\n value={showValues}\n forceRender={true}\n onChange={treeModalChange}\n onDataSourceChange={onDataSourceChange}\n disabled={disabled}\n >\n <Select\n labelInValue\n style={{ width: '100%' }}\n placeholder={placeholderFt}\n maxTagCount={maxTagCount}\n mode={otherProps.isMultiple ? 'multiple' : undefined}\n open={false}\n value={showValues}\n onChange={onSelectChange}\n disabled={disabled}\n allowClear={allowClearFt}\n />\n </TreeModal>\n );\n});\n"],"names":["TreeModalSelector","forwardRef","props","ref","_otherProps$fieldName","_otherProps$fieldName2","placeholder","maxTagCount","labelInValue","maxCount","overMaxCountMsg","disabled","allowClear","otherProps","_objectWithoutPropertiesLoose","_excluded","placeholderFt","isUndefinedOrNull","allowClearFt","dataSourceMapRef","useRef","treeDataListRef","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","message","error","onSelectChange","treeModalChange","onDataSourceChange","_hooks","useCallbackRef","treeDataList","mapData","result","target","filter","Boolean","useImperativeHandle","getDataSourceMap","dataSourceMap","_jsx","TreeModal","_extends","forceRender","children","Select","style","width","mode","open"],"mappings":"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"}
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 { message, Select } from 'antd';\nimport { forwardRef, useEffect, useImperativeHandle, 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 maxCount?: number;\n /** 超过最大选择数量提示文本 */\n overMaxCountMsg?: string;\n disabled?: boolean;\n allowClear?: boolean;\n};\n\nexport type TreeModalSelectorApi = {\n getDataSourceMap: () => {\n treeDataList: TPlainObject[];\n dataSourceMap: TPlainObject;\n };\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 = forwardRef<TreeModalSelectorApi, TreeModalSelectorProps>((props, ref) => {\n const {\n placeholder,\n maxTagCount,\n labelInValue,\n maxCount,\n overMaxCountMsg,\n disabled,\n allowClear,\n ...otherProps\n } = props;\n const placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;\n const allowClearFt = isUndefinedOrNull(allowClear) ? true : allowClear;\n\n const dataSourceMapRef = useRef<TPlainObject>({});\n const treeDataListRef = 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 if (valueFt && maxCount !== undefined && valueFt.length > maxCount) {\n void message.error(overMaxCountMsg ? overMaxCountMsg : `最多选择${maxCount}项`);\n return;\n }\n\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 treeDataListRef.current = treeDataList || [];\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 useImperativeHandle(ref, () => {\n return {\n getDataSourceMap: () => {\n return {\n treeDataList: treeDataListRef.current,\n dataSourceMap: dataSourceMapRef.current,\n };\n },\n };\n });\n\n return (\n <TreeModal\n {...otherProps}\n value={showValues}\n forceRender={true}\n onChange={treeModalChange}\n onDataSourceChange={onDataSourceChange}\n disabled={disabled}\n >\n <Select\n labelInValue\n style={{ width: '100%' }}\n placeholder={placeholderFt}\n maxTagCount={maxTagCount}\n mode={otherProps.isMultiple ? 'multiple' : undefined}\n open={false}\n value={showValues}\n onChange={onSelectChange}\n disabled={disabled}\n allowClear={allowClearFt}\n />\n </TreeModal>\n );\n});\n"],"names":["TreeModalSelector","forwardRef","props","ref","_otherProps$fieldName","_otherProps$fieldName2","placeholder","maxTagCount","labelInValue","maxCount","overMaxCountMsg","disabled","allowClear","otherProps","_objectWithoutPropertiesLoose","_excluded","placeholderFt","isUndefinedOrNull","allowClearFt","dataSourceMapRef","useRef","treeDataListRef","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","message","error","onSelectChange","treeModalChange","onDataSourceChange","_hooks","useCallbackRef","treeDataList","mapData","result","target","filter","Boolean","useImperativeHandle","getDataSourceMap","dataSourceMap","_jsx","TreeModal","_extends","forceRender","children","Select","style","width","mode","open"],"mappings":"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"}
@@ -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 n}from"@dimjs/utils/cjs/extend";import{hooks as l}from"@wove/react/cjs/hooks";import{isArray as a}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{usePrevious as m}from"ahooks";import{TreeSelect as h,Button as S}from"antd";import{dequal as g}from"dequal";import{useState as C,useRef as b,useMemo as y,createElement as q}from"react";import{fbaHooks as L}from"../fba-hooks/index.js";import{RequestStatus as w}from"../request-status/index.js";import{Model as R}from"@dimjs/model-react";import{jsx as T}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var j={treeSelectorList:[],treeSelectorTiledMap:{},queryIsEmpty:false};var k={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:j};var x={};var M=function e(r){if(!x[r]){x[r]=R(k)}return x[r]};var E=function e(r,t){var n=[];var l=t[r];while(l){var a=l.pId;l=t[a];if(l){n.push(a)}}return n};var I=function e(r,t){if(r.length===0)return[];var n=[];r.forEach((function(e){var r=E(e,t);n.push.apply(n,r)}));return Array.from(new Set(n))};var N=["serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","treeSelectorList","requestMessageConfig","modelKey","value","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","selectedParentCheckedAllChildrenList","fieldNames","onChange","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys","executeOnChangeInRenderFirstValue"];var A=function R(j){var k=j.serviceConfig,x=j.effectDependencyList,E=j.onTreeSelectorListChange,A=j.onTreeSelectorRequestError,O=j.treeSelectorList,D=j.requestMessageConfig,P=j.modelKey,V=j.value,F=j.labelInValue,B=j.labelInValueFieldNames,K=j.onTreeItemDataAdapter,H=j.selectedParentCheckedAllChildrenList,J=H===void 0?true:H,W=j.fieldNames,_=j.onChange,z=j.treeDefaultExpandAll,G=j.showAllOption,Q=j.initRootExpand,U=j.treeDefaultExpandedKeys,X=j.executeOnChangeInRenderFirstValue,Y=u(j,N);var Z=Object.prototype.hasOwnProperty.call(j,"treeSelectorList");var $=k||{};var ee=x||[];var re=L.useSafeState(false),te=re[0],ne=re[1];var le=C(),ae=le[0],ie=le[1];var oe=M(P).useStore(),ue=oe[0],se=oe[1];var ce="request-progress-"+P;var fe=Y.treeCheckable||Y.multiple;var de=b(true);var ve=y((function(){if(Y.treeCheckStrictly)return true;return F}),[F,Y.treeCheckStrictly]);var pe=y((function(){return s({label:"label",value:"value",children:"children",disabled:"disabled"},W)}),[W]);var me=y((function(){return s({label:"label",value:"value"},B)}),[B]);var he=y((function(){if(G){var e=G===true;return{label:e?"全部":G.label,value:e?"":G.value}}return null}),[G]);var Se=C(),ge=Se[0],Ce=Se[1];var be=L.useMemoCustom((function(){return c(V).map((function(e){if(o(e)){return ve?e[me.value]:e[pe.value]}return e}))}),[pe.value,ve,me.value,j.value]);var ye=m(be);L.useEffectCustom((function(){if(ue.treeSelectorList.length>0){if(de.current&&X&&ve){var e=[];var r=[];be.forEach((function(t){var n=ue.treeSelectorTiledMap[t];if(n){var l;r.push(n);e.push((l={},l[me.label]=n[pe.label],l[me.value]=n[pe.value],l))}}));if(fe){j.onChange==null||j.onChange(e?e:undefined,r)}else{j.onChange==null||j.onChange(e?e[0]:undefined,r[0])}}var t=[];if(de.current){de.current=false;if(U){t=U}else if(z){var n=Object.keys(ue.treeSelectorTiledMap).map((function(e){var r;return(r=ue.treeSelectorTiledMap[e])==null?void 0:r[pe.value]}));t=n}else if(Q&&ue.treeSelectorList.length===1){t=[ue.treeSelectorList[0][pe.value]]}ie(t)}}}),[be,ue.treeSelectorList]);L.useEffectCustom((function(){if(!de.current&&be.length>0){if(ue.treeSelectorList.length>0&&JSON.stringify(be)!==JSON.stringify(ye)){if(!ge){var e=I(be,ue.treeSelectorTiledMap);ie(e)}}}}),[be,ue.treeSelectorList]);var qe=function e(r){return r===""||p(r)};var Le=function e(r){var t=r;if($.onRequestResultAdapter){t=$.onRequestResultAdapter(r)}else if(pe.list){t=i(r,pe.list)}if(t&&!a(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var we=l.useCallbackRef((function(){return new Promise((function(e,r){var t,l,a,i,o;if(!$.onRequest){return r(new Error("onRequest 调用接口服务不能为空"))}t=$.requiredParamsKeys||[];l=n({},$.params);a=t.find((function(e){return qe(l[e])}));if(a){void se.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{ne(false);window[ce]=false;void se.changeRequestStatus("request-error");A==null||A(e);return u()}catch(e){return r(e)}};try{ne(true);window[ce]=true;void se.changeRequestStatus("request-progress");return Promise.resolve($.onRequest==null?void 0:$.onRequest(l)).then((function(e){try{i=e;o=Le(i);ne(false);window[ce]=false;Re(o||[]);return u()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));l.useCustomCompareEffect((function(){if(Z)return;if(ee.length){Re([]);void we();return}var e=M(P).getState();if(e.requestStatus==="request-success"){return}if(!window[ce]){void we();return}}),ee,g);var Re=l.useCallbackRef((function(e){var r;if((e==null?void 0:e.length)===0&&ue.treeSelectorList.length===0){void se.setSelectBoxList({treeSelectorList:[],treeSelectorTiledMap:{}});E==null||E([]);return}var t=he?(r={},r[pe.label]=he.label,r[pe.value]=he.value,r):undefined;var n=G?[t].concat(e):e;void se.setSelectBoxList({treeSelectorList:n,treeSelectorTiledMap:f(n,{value:pe.value,children:pe.children},"pId")});E==null||E(e)}));L.useEffectCustom((function(){if(Z){Re(O||[])}}),[O]);var Te=l.useCallbackRef((function(e){ie(e)}));var je=l.useCallbackRef((function(){void we()}));var ke=l.useCallbackRef((function(e,r,t){var n=c(e);if(Y.treeCheckStrictly){if(J&&t.checked){var l=ue.treeSelectorTiledMap[t==null?void 0:t.triggerValue];if(d(l[pe.children])){n=v([l],pe.children).map((function(e){return e[pe.value]}))}else{n=e==null?void 0:e.map((function(e){return e.value}))}}else{n=e==null?void 0:e.map((function(e){return e.value}))}}if(ve){var a=n.map((function(e){var r;var t=ue.treeSelectorTiledMap[e];return r={},r[me.label]=t[pe.label],r[me.value]=t[pe.value],r}));if(fe){_==null||_(a,a,t)}else{_==null||_(a[0],a[0],t)}}else{var i=n.map((function(e){return ue.treeSelectorTiledMap[e]}));if(fe){_==null||_(n,i,t)}else{_==null||_(n[0],i[0],t)}}}));var xe=l.useCallbackRef((function(e){if(!e)return null;return e.map((function(e){var r=(K==null?void 0:K(s({},e)))||e;var t=r[pe.children];var n=r[pe.value];var l=r[pe.label];var a=r[pe.disabled]?r[pe.disabled]:r.disabled;return q(h.TreeNode,s({},r,{disabled:a,value:n,title:l,key:""+n}),t&&t.length>0&&xe(t))}))}));var Me=function e(r){Ce(r);var t=[];if(!r){Ce(undefined);t=be}else{Object.keys(ue.treeSelectorTiledMap).forEach((function(e){var n=ue.treeSelectorTiledMap[e];var l=n==null?void 0:n[pe.label];if(l!=null&&l.includes(r)){t.push(n[pe.value])}}))}var n=I(t,ue.treeSelectorTiledMap);ie(n)};var Ee=fe?be:be[0];return T(h,s({searchValue:ge,dropdownStyle:{maxHeight:400,overflow:"auto"},showSearch:true,treeLine:{showLeafIcon:false},treeNodeFilterProp:"title",switcherIcon:T(t,{}),popupMatchSelectWidth:false},Y,{className:r("v-tree-select-wrapper",Y.className),popupClassName:r("v-tree-select-wrapper-dropdown",Y.popupClassName),onChange:ke,treeExpandedKeys:ae,value:Ee,onSearch:Me,loading:te,onTreeExpand:Te,style:s({width:"100%"},Y.style),suffixIcon:ue.requestStatus==="request-error"?T(e,{spin:te,onClick:je}):undefined,notFoundContent:T(w,{status:ue.requestStatus,messageConfig:D,loading:te,errorButton:T(S,{type:"primary",onClick:je,children:"重新获取数据"})}),children:xe(ue.treeSelectorList)}))};export{A 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 n}from"@dimjs/utils/cjs/extend";import{hooks as l}from"@wove/react/cjs/hooks";import{isArray as a}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{usePrevious as m}from"ahooks";import{TreeSelect as h,Button as S}from"antd";import{dequal as g}from"dequal";import{useState as C,useRef as b,useMemo as y,createElement as q}from"react";import{fbaHooks as L}from"../fba-hooks/index.js";import{RequestStatus as w}from"../request-status/index.js";import{Model as R}from"@dimjs/model-react";import{jsx as T}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/uuid";var j={treeSelectorList:[],treeSelectorTiledMap:{},queryIsEmpty:false};var k={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:j};var x={};var M=function e(r){if(!x[r]){x[r]=R(k)}return x[r]};var E=function e(r,t){var n=[];var l=t[r];while(l){var a=l.pId;l=t[a];if(l){n.push(a)}}return n};var I=function e(r,t){if(r.length===0)return[];var n=[];r.forEach((function(e){var r=E(e,t);n.push.apply(n,r)}));return Array.from(new Set(n))};var N=["serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","treeSelectorList","requestMessageConfig","modelKey","value","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","selectedParentCheckedAllChildrenList","fieldNames","onChange","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys","executeOnChangeInRenderFirstValue"];var A=function R(j){var k=j.serviceConfig,x=j.effectDependencyList,E=j.onTreeSelectorListChange,A=j.onTreeSelectorRequestError,O=j.treeSelectorList,D=j.requestMessageConfig,P=j.modelKey,V=j.value,F=j.labelInValue,B=j.labelInValueFieldNames,K=j.onTreeItemDataAdapter,H=j.selectedParentCheckedAllChildrenList,J=H===void 0?true:H,W=j.fieldNames,_=j.onChange,z=j.treeDefaultExpandAll,G=j.showAllOption,Q=j.initRootExpand,U=j.treeDefaultExpandedKeys,X=j.executeOnChangeInRenderFirstValue,Y=u(j,N);var Z=Object.prototype.hasOwnProperty.call(j,"treeSelectorList");var $=k||{};var ee=x||[];var re=L.useSafeState(false),te=re[0],ne=re[1];var le=C(),ae=le[0],ie=le[1];var oe=M(P).useStore(),ue=oe[0],se=oe[1];var ce="request-progress-"+P;var fe=Y.treeCheckable||Y.multiple;var de=b(true);var ve=y((function(){if(Y.treeCheckStrictly)return true;return F}),[F,Y.treeCheckStrictly]);var pe=y((function(){return s({label:"label",value:"value",children:"children",disabled:"disabled"},W)}),[W]);var me=y((function(){return s({label:"label",value:"value"},B)}),[B]);var he=y((function(){if(G){var e=G===true;return{label:e?"全部":G.label,value:e?"":G.value}}return null}),[G]);var Se=C(),ge=Se[0],Ce=Se[1];var be=L.useMemoCustom((function(){return c(V).map((function(e){if(o(e)){return ve?e[me.value]:e[pe.value]}return e}))}),[pe.value,ve,me.value,j.value]);var ye=m(be);L.useEffectCustom((function(){if(ue.treeSelectorList.length>0){if(de.current&&X&&ve){var e=[];var r=[];be.forEach((function(t){var n=ue.treeSelectorTiledMap[t];if(n){var l;r.push(n);e.push((l={},l[me.label]=n[pe.label],l[me.value]=n[pe.value],l))}}));if(fe){j.onChange==null||j.onChange(e?e:undefined,r)}else{j.onChange==null||j.onChange(e?e[0]:undefined,r[0])}}var t=[];if(de.current){de.current=false;if(U){t=U}else if(z){var n=Object.keys(ue.treeSelectorTiledMap).map((function(e){var r;return(r=ue.treeSelectorTiledMap[e])==null?void 0:r[pe.value]}));t=n}else if(Q&&ue.treeSelectorList.length===1){t=[ue.treeSelectorList[0][pe.value]]}ie(t)}}}),[be,ue.treeSelectorList]);L.useEffectCustom((function(){if(!de.current&&be.length>0){if(ue.treeSelectorList.length>0&&JSON.stringify(be)!==JSON.stringify(ye)){if(!ge){var e=I(be,ue.treeSelectorTiledMap);ie(e)}}}}),[be,ue.treeSelectorList]);var qe=function e(r){return r===""||p(r)};var Le=function e(r){var t=r;if($.onRequestResultAdapter){t=$.onRequestResultAdapter(r)}else if(pe.list){t=i(r,pe.list)}if(t&&!a(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var we=l.useCallbackRef((function(){return new Promise((function(e,r){var t,l,a,i,o;if(!$.onRequest){return r(new Error("onRequest 调用接口服务不能为空"))}t=$.requiredParamsKeys||[];l=n({},$.params);a=t.find((function(e){return qe(l[e])}));if(a){void se.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{ne(false);window[ce]=false;void se.changeRequestStatus("request-error");A==null||A(e);return u()}catch(e){return r(e)}};try{ne(true);window[ce]=true;void se.changeRequestStatus("request-progress");return Promise.resolve($.onRequest==null?void 0:$.onRequest(l)).then((function(e){try{i=e;o=Le(i);ne(false);window[ce]=false;Re(o||[]);return u()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));l.useCustomCompareEffect((function(){if(Z)return;if(ee.length){Re([]);void we();return}var e=M(P).getState();if(e.requestStatus==="request-success"){return}if(!window[ce]){void we();return}}),ee,g);var Re=l.useCallbackRef((function(e){var r;if((e==null?void 0:e.length)===0&&ue.treeSelectorList.length===0){void se.setSelectBoxList({treeSelectorList:[],treeSelectorTiledMap:{}});E==null||E([]);return}var t=he?(r={},r[pe.label]=he.label,r[pe.value]=he.value,r):undefined;var n=G?[t].concat(e):e;void se.setSelectBoxList({treeSelectorList:n,treeSelectorTiledMap:f(n,{value:pe.value,children:pe.children},"pId")});E==null||E(e)}));L.useEffectCustom((function(){if(Z){Re(O||[])}}),[O]);var Te=l.useCallbackRef((function(e){ie(e)}));var je=l.useCallbackRef((function(){void we()}));var ke=l.useCallbackRef((function(e,r,t){var n=c(e);if(Y.treeCheckStrictly){if(J&&t.checked){var l=ue.treeSelectorTiledMap[t==null?void 0:t.triggerValue];if(d(l[pe.children])){n=v([l],pe.children).map((function(e){return e[pe.value]}))}else{n=e==null?void 0:e.map((function(e){return e.value}))}}else{n=e==null?void 0:e.map((function(e){return e.value}))}}if(ve){var a=n.map((function(e){var r;var t=ue.treeSelectorTiledMap[e];return r={},r[me.label]=t[pe.label],r[me.value]=t[pe.value],r}));if(fe){_==null||_(a,a,t)}else{_==null||_(a[0],a[0],t)}}else{var i=n.map((function(e){return ue.treeSelectorTiledMap[e]}));if(fe){_==null||_(n,i,t)}else{_==null||_(n[0],i[0],t)}}}));var xe=l.useCallbackRef((function(e){if(!e)return null;return e.map((function(e){var r=(K==null?void 0:K(s({},e)))||e;var t=r[pe.children];var n=r[pe.value];var l=r[pe.label];var a=r[pe.disabled]?r[pe.disabled]:r.disabled;return q(h.TreeNode,s({},r,{disabled:a,value:n,title:l,key:""+n}),t&&t.length>0&&xe(t))}))}));var Me=function e(r){Ce(r);var t=[];if(!r){Ce(undefined);t=be}else{Object.keys(ue.treeSelectorTiledMap).forEach((function(e){var n=ue.treeSelectorTiledMap[e];var l=n==null?void 0:n[pe.label];if(l!=null&&l.includes(r)){t.push(n[pe.value])}}))}var n=I(t,ue.treeSelectorTiledMap);ie(n)};var Ee=fe?be:be[0];return T(h,s({searchValue:ge,dropdownStyle:{maxHeight:400,overflow:"auto"},showSearch:true,treeLine:{showLeafIcon:false},treeNodeFilterProp:"title",switcherIcon:T(t,{}),popupMatchSelectWidth:false},Y,{className:r("v-tree-select-wrapper",Y.className),popupClassName:r("v-tree-select-wrapper-dropdown",Y.popupClassName),onChange:ke,treeExpandedKeys:ae,value:Ee,onSearch:Me,loading:te,onTreeExpand:Te,style:s({width:"100%"},Y.style),suffixIcon:ue.requestStatus==="request-error"?T(e,{spin:te,onClick:je}):undefined,notFoundContent:T(w,{status:ue.requestStatus,messageConfig:D,loading:te,errorButton:T(S,{type:"primary",onClick:je,children:"重新获取数据"})}),children:xe(ue.treeSelectorList)}))};export{A as TreeSelectorWrapper};
7
7
  //# sourceMappingURL=index.js.map