@flatbiz/antd 4.2.58 → 4.2.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"button-operate-81d86480.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Divider, Popconfirm, PopconfirmProps, Popover, Space, SpaceProps, Tooltip } from 'antd';\nimport {\n CSSProperties,\n FC,\n Fragment,\n isValidElement,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { DropdownMenuWrapper, DropdownMenuWrapperProps } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport { DialogModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n hidden?: boolean;\n /** hover 提示文字 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: string;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n style?: CSSProperties;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { content: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * @flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, hoverTips, ...otherProps } =\n item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={type}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent content={text} hoverTips={hoverTips} tipsType={item.tipsType} />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList} placement=\"bottomCenter\" {...props.dropdownMenuProps}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","danger","color","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"button-operate-81d86480.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Divider, Popconfirm, PopconfirmProps, Popover, Space, SpaceProps, Tooltip } from 'antd';\nimport {\n CSSProperties,\n FC,\n Fragment,\n isValidElement,\n ReactElement,\n ReactNode,\n useMemo,\n useState,\n} from 'react';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { DropdownMenuWrapper, DropdownMenuWrapperProps } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport { DialogModalProps } from '../dialog-modal';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n hidden?: boolean;\n /** hover 提示文字,isFold=true无效 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: string;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n style?: CSSProperties;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { content: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * @flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const { text, onClick, needConfirm, confirmMessage, popconfirmProps, hoverTips, ...otherProps } =\n item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = !!item.color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={type}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={type}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent content={text} hoverTips={hoverTips} tipsType={item.tipsType} />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList} placement=\"bottomCenter\" {...props.dropdownMenuProps}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","danger","color","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu-wrapper-016a83b6.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n event.stopPropagation();\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.text}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const buttonType = type || 'link';\n const danger = otherProps.color ? false : needConfirm;\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={danger}\n {...otherProps}\n className={classNames('dmw-item-button', otherProps.className)}\n type={buttonType}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={classNames('dropdown-menu-wrapper', clsName)} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","stopPropagation","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","text","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","buttonType","danger","push","key","label","_createElement","ButtonWrapper","size","className","_classNames","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-menu-wrapper-016a83b6.js","sources":["@flatbiz/antd/src/dropdown-menu-wrapper/utils.ts","@flatbiz/antd/src/dropdown-menu-wrapper/dropdown-menu-wrapper.tsx"],"sourcesContent":["export function parentsHasSticky(node: Element) {\n let condition = true;\n let result = false;\n while (condition) {\n if (node.tagName === 'HTML' || node.tagName === 'BODY') {\n condition = false;\n result = false;\n } else {\n const { position } = window.getComputedStyle(node);\n if (position === 'sticky') {\n result = true;\n condition = false;\n } else {\n if (!node || !node.parentNode) {\n condition = false;\n } else {\n node = node.parentNode as Element;\n }\n }\n }\n }\n return result;\n}\n","import { ExclamationCircleFilled } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Dropdown, DropdownProps } from 'antd';\nimport { ItemType } from 'antd/lib/menu/hooks/useItems';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\nimport { fbaUtils } from '../fba-utils';\nimport { FlexLayout } from '../flex-layout';\nimport './style.less';\nimport { parentsHasSticky } from './utils';\n\nexport interface DropdownMenuItem extends ButtonProps {\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface DropdownMenuWrapperProps extends Omit<DropdownProps, 'menu'> {\n menuList: Array<DropdownMenuItem | null>;\n /** dropdown 设置弹框根节点在body下 */\n isFixed?: boolean;\n}\n\n/**\n * DropdownMenuWrapper\n * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能\n * @param props\n * @returns\n * ```\n * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下\n * ```\n */\nexport const DropdownMenuWrapper = (props: DropdownMenuWrapperProps) => {\n const { menuList, ...dropdownOtherProps } = props;\n const clsName = hooks.useId(undefined, 'DropdownMenuWrapper');\n\n const onClick = hooks.useCallbackRef((item: DropdownMenuItem, event) => {\n event.stopPropagation();\n if (item.needConfirm) {\n dialogConfirm.open({\n title: (\n <FlexLayout direction=\"horizontal\" fullIndex={1} gap={8}>\n <ExclamationCircleFilled style={{ color: '#faad14' }} />\n <span>{item.text}</span>\n </FlexLayout>\n ),\n content: <Fragment>{item.confirmMessage}</Fragment>,\n onOk: item.onClick?.bind(null, event),\n okButtonProps: {\n loadingPosition: 'center',\n },\n ...item.confirmModalProps,\n });\n return Promise.resolve();\n }\n return item.onClick?.(event);\n });\n\n const target = document.querySelector(`.${clsName}`);\n const container = useMemo(() => {\n if (props.isFixed || (target && parentsHasSticky(target))) {\n return undefined;\n }\n return target;\n }, [props.isFixed, target]);\n\n const menuItems = useMemo(() => {\n const menuItemsNew: ItemType[] = [];\n menuList.filter(Boolean).forEach((item, index) => {\n if (!item) return;\n const {\n text,\n permission,\n needConfirm,\n confirmMessage,\n hidden,\n type,\n confirmModalProps,\n ...otherProps\n } = item;\n if (hidden) return;\n if (permission && !fbaUtils.hasPermission(permission)) return;\n const buttonType = type || 'link';\n const danger = otherProps.color ? false : needConfirm;\n menuItemsNew.push({\n key: index,\n label: (\n <ButtonWrapper\n loadingPosition=\"center\"\n size=\"small\"\n danger={danger}\n {...otherProps}\n className={classNames('dmw-item-button', otherProps.className)}\n type={buttonType}\n key={index}\n onClick={onClick.bind(null, {\n ...item,\n needConfirm,\n confirmMessage,\n confirmModalProps,\n })}\n >\n {text}\n </ButtonWrapper>\n ),\n });\n });\n return menuItemsNew;\n }, [menuList, onClick]);\n\n return (\n <div className={classNames('dropdown-menu-wrapper', clsName)} style={{ position: 'relative' }}>\n <Dropdown\n trigger={dropdownOtherProps?.trigger || ['hover']}\n getPopupContainer={container ? () => target as HTMLElement : undefined}\n arrow={{ pointAtCenter: true }}\n {...dropdownOtherProps}\n overlayStyle={{ zIndex: 9, ...dropdownOtherProps.overlayStyle }}\n menu={{ items: menuItems }}\n >\n {props.children}\n </Dropdown>\n </div>\n );\n};\n"],"names":["parentsHasSticky","node","condition","result","tagName","_window$getComputedSt","window","getComputedStyle","position","parentNode","DropdownMenuWrapper","props","menuList","dropdownOtherProps","_objectWithoutPropertiesLoose","_excluded","clsName","_hooks","useId","undefined","onClick","useCallbackRef","item","event","stopPropagation","needConfirm","_item$onClick","dialogConfirm","open","_extends","title","_jsxs","FlexLayout","direction","fullIndex","gap","children","_jsx","_ExclamationCircleFilled","style","color","text","content","Fragment","confirmMessage","onOk","bind","okButtonProps","loadingPosition","confirmModalProps","Promise","resolve","target","document","querySelector","container","useMemo","isFixed","menuItems","menuItemsNew","filter","Boolean","forEach","index","permission","hidden","type","otherProps","_excluded2","fbaUtils","hasPermission","buttonType","danger","push","key","label","_createElement","ButtonWrapper","size","className","_classNames","Dropdown","trigger","getPopupContainer","arrow","pointAtCenter","overlayStyle","zIndex","menu","items"],"mappings":"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"}
package/esm/index.js CHANGED
@@ -83,5 +83,5 @@ import './tree-selector-wrapper/index.css';
83
83
  import './tree-wrapper/index.css';
84
84
  import './index.css';
85
85
  /*! @flatjs/forge MIT @flatbiz/antd */
86
- export{A as AnchorSteps}from"./anchor-steps-fba86c87.js";export{a as ButtonOperate,B as ButtonOperateItemContent}from"./button-operate-81d86480.js";export{B as ButtonWrapper}from"./button-wrapper-125fce50.js";export{C as CascaderWrapper}from"./cascader-wrapper-a965eef5.js";export{CheckList}from"./check-list/index.js";export{C as CheckboxWrapper}from"./checkbox-wrapper-018a5c59.js";export{C as ConfigProviderWrapper}from"./config-provider-wrapper-dfe8f592.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{C as CssNodeHover}from"./css-node-hover-ed7b9860.js";export{D as DataRender}from"./data-render-07c0ab6b.js";export{D as DatePickerWrapper}from"./date-picker-wrapper-ba650858.js";export{D as DateRangePickerWrapper}from"./date-range-picker-wrapper-fb15c592.js";export{D as DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item-688cf465.js";export{d as dialogAlert}from"./dialog-alert-89d37729.js";export{d as dialogConfirm}from"./dialog-confirm-74fc9337.js";export{d as dialogDrawer}from"./dialog-drawer-7cb5c6df.js";export{d as dialogLoading}from"./dialog-loading-16bd1baa.js";export{d as dialogModal}from"./dialog-modal-4a0c72c5.js";export{D as DragCollapse}from"./drag-collapse-433fb1e0.js";export{D as DragCollapseFormList}from"./drag-collapse-24ccfe8c.js";export{D as DrawerWrapper}from"./drawer-wrapper-9af2f178.js";export{D as DropdownMenuWrapper}from"./dropdown-menu-wrapper-016a83b6.js";export{d as dynamicNode}from"./dynamic-node-c7864af4.js";export{EasyTable}from"./easy-table/index.js";export{E as EditableField}from"./editable-field-2042924e.js";export{E as EditableFieldProvider}from"./editable-field-provider-20963c3e.js";export{E as EditableTable}from"./editable-table-392040f7.js";export{E as EditorWrapper}from"./editor-wrapper-ff6e75b7.js";export{fbaHooks}from"./fba-hooks/index.js";export{f as fbaUtils}from"./fba-utils-f9e11d02.js";export{F as FileImport}from"./file-import-890a1df9.js";export{F as FlexLayout}from"./flex-layout-8d2b668b.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{F as FormItemHidden}from"./form-item-hidden-45541774.js";export{F as FormItemWrapper}from"./form-item-wrapper-dfe2ebd9.js";export{G as Gap}from"./gap-284e1f59.js";export{I as IconWrapper}from"./icon-wrapper-ed5fcacc.js";export{I as InputSearchWrapper}from"./input-search-wrapper-10d4a9b9.js";export{I as InputTextAreaWrapper}from"./input-text-area-wrapper-c958fba0.js";export{I as InputWrapper}from"./input-wrapper-b378eb5a.js";export{L as LabelValueLayout}from"./label-value-layout-beb35b0d.js";export{LocalLoading}from"./local-loading/index.js";export{M as ModalAction}from"./modal-action-5c5ca8a7.js";export{M as ModalWrapper}from"./modal-wrapper-ff8df98b.js";export{P as PageFixedFooter}from"./page-fixed-footer-9ec2b46c.js";export{P as Page404}from"./page404-f087129a.js";export{P as Permission}from"./permission-17ed4d0b.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{R as RadioGroupWrapper}from"./radio-group-wrapper-b34746d1.js";export{R as RelationTree}from"./relation-tree-7bec12bd.js";export{R as RequestStatus}from"./request-status-03fc60e2.js";export{R as RichTextEditor}from"./rich-text-editor-c8bac6d2.js";export{R as RichTextViewer}from"./rich-text-viewer-3bf4569a.js";export{R as RollLocationCenter}from"./center-a4dfda6f.js";export{R as RollLocationInView}from"./in-view-448ba714.js";export{R as RuleDescribe}from"./rule-describe-b4a8e831.js";export{S as SelectorWrapper}from"./selector-wrapper-91427b7d.js";export{S as SelectorWrapperSearch}from"./selector-wrapper-search-dade1b6b.js";export{S as SelectorWrapperSimple}from"./selector-wrapper-simple-1c0ceae7.js";export{S as SimpleLayout}from"./simple-layout-1cd0fefc.js";export{S as SmsCountDown}from"./sms-count-down-c2609386.js";export{styles}from"./styles/index.js";export{S as SwitchConfirmWrapper}from"./switch-confirm-wrapper-4857f2a9.js";export{S as SwitchWrapper}from"./switch-wrapper-f20b9a58.js";export{t as tableCellRender}from"./cell-render-927ade58.js";export{T as TableScrollbar}from"./table-scrollbar-66c1682c.js";export{T as TableTitleTooltip}from"./title-render-2874a932.js";export{T as TabsWrapper}from"./tabs-wrapper-0a2da713.js";export{T as TagGroup}from"./tag-group-4fbcaa14.js";export{T as TagListSelect}from"./tag-list-select-066f682f.js";export{T as TagWrapper}from"./tag-wrapper-6d8b505e.js";export{T as TextCssEllipsis}from"./text-css-ellipsis-9135d4c5.js";export{T as TextOverflowRender}from"./text-overflow-render-7a6541f5.js";export{T as TimePickerWrapper}from"./time-picker-wrapper-f1d26d96.js";export{T as TimeRangePickerWrapper}from"./time-range-picker-wrapper-be9850b5.js";export{T as TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item-9df6c0f4.js";export{T as TreeSelectorWrapper}from"./tree-selector-wrapper-9cd9da23.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{U as UploadWrapper}from"./upload-wrapper-bd9ef592.js";import"@dimjs/utils/cjs/class-names";import"antd";import"react";import"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"./_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";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"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"ahooks";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
86
+ export{A as AnchorSteps}from"./anchor-steps-fba86c87.js";export{a as ButtonOperate,B as ButtonOperateItemContent}from"./button-operate-81d86480.js";export{B as ButtonWrapper}from"./button-wrapper-125fce50.js";export{C as CascaderWrapper}from"./cascader-wrapper-a965eef5.js";export{CheckList}from"./check-list/index.js";export{C as CheckboxWrapper}from"./checkbox-wrapper-018a5c59.js";export{C as ConfigProviderWrapper}from"./config-provider-wrapper-dfe8f592.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{C as CssNodeHover}from"./css-node-hover-ed7b9860.js";export{D as DataRender}from"./data-render-07c0ab6b.js";export{D as DatePickerWrapper}from"./date-picker-wrapper-ba650858.js";export{D as DateRangePickerWrapper}from"./date-range-picker-wrapper-fb15c592.js";export{D as DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item-688cf465.js";export{d as dialogAlert}from"./dialog-alert-89d37729.js";export{d as dialogConfirm}from"./dialog-confirm-74fc9337.js";export{d as dialogDrawer}from"./dialog-drawer-7cb5c6df.js";export{d as dialogLoading}from"./dialog-loading-16bd1baa.js";export{d as dialogModal}from"./dialog-modal-4a0c72c5.js";export{D as DragCollapse}from"./drag-collapse-433fb1e0.js";export{D as DragCollapseFormList}from"./drag-collapse-24ccfe8c.js";export{D as DrawerWrapper}from"./drawer-wrapper-9af2f178.js";export{D as DropdownMenuWrapper}from"./dropdown-menu-wrapper-016a83b6.js";export{d as dynamicNode}from"./dynamic-node-c7864af4.js";export{EasyTable}from"./easy-table/index.js";export{E as EditableField}from"./editable-field-2042924e.js";export{E as EditableFieldProvider}from"./editable-field-provider-20963c3e.js";export{E as EditableTable}from"./editable-table-392040f7.js";export{E as EditorWrapper}from"./editor-wrapper-ff6e75b7.js";export{fbaHooks}from"./fba-hooks/index.js";export{f as fbaUtils}from"./fba-utils-f9e11d02.js";export{F as FileImport}from"./file-import-890a1df9.js";export{F as FlexLayout}from"./flex-layout-8d2b668b.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{F as FormItemHidden}from"./form-item-hidden-45541774.js";export{F as FormItemWrapper}from"./form-item-wrapper-dfe2ebd9.js";export{G as Gap}from"./gap-284e1f59.js";export{I as IconWrapper}from"./icon-wrapper-ed5fcacc.js";export{I as InputSearchWrapper}from"./input-search-wrapper-10d4a9b9.js";export{I as InputTextAreaWrapper}from"./input-text-area-wrapper-c958fba0.js";export{I as InputWrapper}from"./input-wrapper-b378eb5a.js";export{L as LabelValueLayout}from"./label-value-layout-beb35b0d.js";export{LocalLoading}from"./local-loading/index.js";export{M as ModalAction}from"./modal-action-5c5ca8a7.js";export{M as ModalWrapper}from"./modal-wrapper-ff8df98b.js";export{P as PageFixedFooter}from"./page-fixed-footer-9ec2b46c.js";export{P as Page404}from"./page404-f087129a.js";export{P as Permission}from"./permission-17ed4d0b.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{R as RadioGroupWrapper}from"./radio-group-wrapper-b34746d1.js";export{R as RelationTree}from"./relation-tree-7bec12bd.js";export{R as RequestStatus}from"./request-status-03fc60e2.js";export{R as RichTextEditor}from"./rich-text-editor-c8bac6d2.js";export{R as RichTextViewer}from"./rich-text-viewer-239491ee.js";export{R as RollLocationCenter}from"./center-a4dfda6f.js";export{R as RollLocationInView}from"./in-view-448ba714.js";export{R as RuleDescribe}from"./rule-describe-b4a8e831.js";export{S as SelectorWrapper}from"./selector-wrapper-91427b7d.js";export{S as SelectorWrapperSearch}from"./selector-wrapper-search-c763c481.js";export{S as SelectorWrapperSimple}from"./selector-wrapper-simple-1c0ceae7.js";export{S as SimpleLayout}from"./simple-layout-1cd0fefc.js";export{S as SmsCountDown}from"./sms-count-down-c2609386.js";export{styles}from"./styles/index.js";export{S as SwitchConfirmWrapper}from"./switch-confirm-wrapper-984d57c4.js";export{S as SwitchWrapper}from"./switch-wrapper-f20b9a58.js";export{t as tableCellRender}from"./cell-render-927ade58.js";export{T as TableScrollbar}from"./table-scrollbar-66c1682c.js";export{T as TableTitleTooltip}from"./title-render-2874a932.js";export{T as TabsWrapper}from"./tabs-wrapper-0a2da713.js";export{T as TagGroup}from"./tag-group-4fbcaa14.js";export{T as TagListSelect}from"./tag-list-select-066f682f.js";export{T as TagWrapper}from"./tag-wrapper-6d8b505e.js";export{T as TextCssEllipsis}from"./text-css-ellipsis-9135d4c5.js";export{T as TextOverflowRender}from"./text-overflow-render-7a6541f5.js";export{T as TimePickerWrapper}from"./time-picker-wrapper-f1d26d96.js";export{T as TimeRangePickerWrapper}from"./time-range-picker-wrapper-be9850b5.js";export{T as TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item-9df6c0f4.js";export{T as TreeSelectorWrapper}from"./tree-selector-wrapper-9cd9da23.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{U as UploadWrapper}from"./upload-wrapper-bd9ef592.js";import"@dimjs/utils/cjs/class-names";import"antd";import"react";import"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"./_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";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"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"ahooks";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
87
87
  //# sourceMappingURL=index.js.map
@@ -5,5 +5,5 @@ import './../rich-text-editor/index.css';
5
5
  import './../dynamic-node/index.css';
6
6
  import './index.css';
7
7
  /*! @flatjs/forge MIT @flatbiz/antd */
8
- export{R as RichTextViewer}from"../rich-text-viewer-3bf4569a.js";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"ahooks";import"react";import"../fba-hooks/index.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"antd";import"../icon-wrapper-ed5fcacc.js";import"react/jsx-runtime";import"../rich-text-editor-c8bac6d2.js";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"../dynamic-node-c7864af4.js";import"react-dom/client";import"../dom-4d04aa64.js";
8
+ export{R as RichTextViewer}from"../rich-text-viewer-239491ee.js";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"ahooks";import"react";import"../fba-hooks/index.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"antd";import"../icon-wrapper-ed5fcacc.js";import"react/jsx-runtime";import"../rich-text-editor-c8bac6d2.js";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"../dynamic-node-c7864af4.js";import"react-dom/client";import"../dom-4d04aa64.js";
9
9
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+ import e from"@ant-design/icons/es/icons/FullscreenOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as i}from"@wove/react/cjs/hooks";import{useKeyPress as o}from"ahooks";import{useState as t,useRef as s}from"react";import{fbaHooks as n}from"./fba-hooks/index.js";import{I as a}from"./icon-wrapper-ed5fcacc.js";import{R as c}from"./rich-text-editor-c8bac6d2.js";import{jsxs as l,jsx as u}from"react/jsx-runtime";var m=function m(f){var d=t(false),v=d[0],p=d[1];var b=s();o((function(){return true}),(function(e){if(e.type==="keyup"&&e.key==="Escape"&&v){p(false)}}),{events:["keydown","keyup"]});var k=i.useCallbackRef((function(){p(!v)}));var h=i.useCallbackRef((function(e,r){b.current=r;f.onInit==null?void 0:f.onInit(r)}));n.useEffectCustom((function(){var e;(e=b.current)==null?void 0:e.editorCommands.execCommand("mceAutoResize")}),[f.value]);return l("div",{className:r("fba-editor-viewer",{"fba-editor-viewer-fixed":v},f.className),style:f.style,children:[f.children,f.fullscreen&&f.value&&u("div",{className:"fba-editor-viewer-icon",children:u(a,{hoverTips:f.fullscreenIconTips,icon:u(e,{}),onClick:k})}),u(c,{value:f.value,onInit:h,imgPreview:true,disabled:true,init:{plugins:"autoresize",menubar:false,toolbar:"",statusbar:false}})]})};export{m as R};
3
+ //# sourceMappingURL=rich-text-viewer-239491ee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rich-text-viewer-3bf4569a.js","sources":["@flatbiz/antd/src/rich-text-viewer/rich-text-viewer.tsx"],"sourcesContent":["import { FullscreenOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { useKeyPress } from 'ahooks';\nimport { CSSProperties, ReactElement, useRef, useState } from 'react';\nimport { Editor as TinyMCEEditor } from 'tinymce';\n\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\nimport { RichTextEditor } from '../rich-text-editor';\nimport './style.less';\n\ntype RichTextViewerProps = {\n value: string;\n className?: string;\n style?: CSSProperties;\n fullscreen?: boolean;\n onInit?: (editor: TinyMCEEditor) => void;\n children?: ReactElement;\n fullscreenIconTips?: string;\n};\n\n/**\n * 预览 RichTextEditor 生成的富文本数据\n * ```\n * 1. 通过 onInit 属性可获取实例:editor\n * 2. 如果高度发生变更,可执行 editor.execCommand('mceAutoResize');\n *\n * ```\n * @param props\n * @returns\n */\nexport const RichTextViewer = (props: RichTextViewerProps) => {\n const [isFixed, setIsFixed] = useState(false);\n const editorRef = useRef<TinyMCEEditor>();\n\n useKeyPress(\n () => true,\n (event) => {\n if (event.type === 'keyup' && event.key === 'Escape' && isFixed) {\n setIsFixed(false);\n }\n },\n { events: ['keydown', 'keyup'] },\n );\n\n const onChangeFixed = hooks.useCallbackRef(() => {\n setIsFixed(!isFixed);\n });\n const onInit = hooks.useCallbackRef((_, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n props.onInit?.(editor);\n });\n\n fbaHooks.useEffectCustom(() => {\n editorRef.current?.editorCommands.execCommand('mceAutoResize');\n }, [props.value]);\n\n return (\n <div\n className={classNames('fba-editor-viewer', { 'fba-editor-viewer-fixed': isFixed }, props.className)}\n style={props.style}\n >\n {props.children}\n {props.fullscreen && props.value && (\n <div className=\"fba-editor-viewer-icon\">\n <IconWrapper\n hoverTips={props.fullscreenIconTips}\n icon={<FullscreenOutlined />}\n onClick={onChangeFixed}\n />\n </div>\n )}\n <RichTextEditor\n value={`<div style=\"overflow: hidden\">${props.value}</div>`}\n onInit={onInit}\n imgPreview\n disabled\n init={{\n plugins: 'autoresize',\n menubar: false,\n toolbar: '',\n statusbar: false,\n }}\n />\n </div>\n );\n};\n"],"names":["RichTextViewer","props","_useState","useState","isFixed","setIsFixed","editorRef","useRef","useKeyPress","event","type","key","events","onChangeFixed","_hooks","useCallbackRef","onInit","_","editor","current","fbaHooks","useEffectCustom","_editorRef$current","editorCommands","execCommand","value","_jsxs","className","_classNames","style","children","fullscreen","_jsx","IconWrapper","hoverTips","fullscreenIconTips","icon","_FullscreenOutlined","onClick","RichTextEditor","imgPreview","disabled","init","plugins","menubar","toolbar","statusbar"],"mappings":";+bAgCaA,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1B,IAAMI,EAAYC,IAElBC,GACE,WAAA,OAAM,IACN,IAAA,SAACC,GACC,GAAIA,EAAMC,OAAS,SAAWD,EAAME,MAAQ,UAAYP,EAAS,CAC/DC,EAAW,MACb,CACF,GACA,CAAEO,OAAQ,CAAC,UAAW,WAGxB,IAAMC,EAAgBC,EAAMC,gBAAe,WACzCV,GAAYD,EACd,IACA,IAAMY,EAASF,EAAMC,gBAAe,SAACE,EAAGC,GACtCZ,EAAUa,QAAUD,EACpBjB,EAAMe,QAANf,UAAAA,EAAAA,EAAMe,OAASE,EACjB,IAEAE,EAASC,iBAAgB,WAAM,IAAAC,GAC7BA,EAAAhB,EAAUa,UAAO,UAAA,EAAjBG,EAAmBC,eAAeC,YAAY,gBAChD,GAAG,CAACvB,EAAMwB,QAEV,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAW,oBAAqB,CAAE,0BAA2BxB,GAAWH,EAAM0B,WACzFE,MAAO5B,EAAM4B,MAAMC,SAElB7B,CAAAA,EAAM6B,SACN7B,EAAM8B,YAAc9B,EAAMwB,OACzBO,EAAA,MAAA,CAAKL,UAAU,yBAAwBG,SACrCE,EAACC,EAAW,CACVC,UAAWjC,EAAMkC,mBACjBC,KAAMJ,EAAAK,EAAuB,IAC7BC,QAASzB,MAIfmB,EAACO,EAAc,CACbd,MAAwCxB,iCAAAA,EAAMwB,MAAc,SAC5DT,OAAQA,EACRwB,WAAU,KACVC,SAAQ,KACRC,KAAM,CACJC,QAAS,aACTC,QAAS,MACTC,QAAS,GACTC,UAAW,WAKrB"}
1
+ {"version":3,"file":"rich-text-viewer-239491ee.js","sources":["@flatbiz/antd/src/rich-text-viewer/rich-text-viewer.tsx"],"sourcesContent":["import { FullscreenOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { useKeyPress } from 'ahooks';\nimport { CSSProperties, ReactElement, useRef, useState } from 'react';\nimport { Editor as TinyMCEEditor } from 'tinymce';\n\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\nimport { RichTextEditor } from '../rich-text-editor';\nimport './style.less';\n\ntype RichTextViewerProps = {\n value: string;\n className?: string;\n style?: CSSProperties;\n fullscreen?: boolean;\n onInit?: (editor: TinyMCEEditor) => void;\n children?: ReactElement;\n fullscreenIconTips?: string;\n};\n\n/**\n * 预览 RichTextEditor 生成的富文本数据\n * ```\n * 1. 通过 onInit 属性可获取实例:editor\n * 2. 如果高度发生变更,可执行 editor.execCommand('mceAutoResize');\n *\n * ```\n * @param props\n * @returns\n */\nexport const RichTextViewer = (props: RichTextViewerProps) => {\n const [isFixed, setIsFixed] = useState(false);\n const editorRef = useRef<TinyMCEEditor>();\n\n useKeyPress(\n () => true,\n (event) => {\n if (event.type === 'keyup' && event.key === 'Escape' && isFixed) {\n setIsFixed(false);\n }\n },\n { events: ['keydown', 'keyup'] },\n );\n\n const onChangeFixed = hooks.useCallbackRef(() => {\n setIsFixed(!isFixed);\n });\n const onInit = hooks.useCallbackRef((_, editor: TinyMCEEditor) => {\n editorRef.current = editor;\n props.onInit?.(editor);\n });\n\n fbaHooks.useEffectCustom(() => {\n editorRef.current?.editorCommands.execCommand('mceAutoResize');\n }, [props.value]);\n\n return (\n <div\n className={classNames('fba-editor-viewer', { 'fba-editor-viewer-fixed': isFixed }, props.className)}\n style={props.style}\n >\n {props.children}\n {props.fullscreen && props.value && (\n <div className=\"fba-editor-viewer-icon\">\n <IconWrapper\n hoverTips={props.fullscreenIconTips}\n icon={<FullscreenOutlined />}\n onClick={onChangeFixed}\n />\n </div>\n )}\n <RichTextEditor\n value={props.value}\n onInit={onInit}\n imgPreview\n disabled\n init={{\n plugins: 'autoresize',\n menubar: false,\n toolbar: '',\n statusbar: false,\n }}\n />\n </div>\n );\n};\n"],"names":["RichTextViewer","props","_useState","useState","isFixed","setIsFixed","editorRef","useRef","useKeyPress","event","type","key","events","onChangeFixed","_hooks","useCallbackRef","onInit","_","editor","current","fbaHooks","useEffectCustom","_editorRef$current","editorCommands","execCommand","value","_jsxs","className","_classNames","style","children","fullscreen","_jsx","IconWrapper","hoverTips","fullscreenIconTips","icon","_FullscreenOutlined","onClick","RichTextEditor","imgPreview","disabled","init","plugins","menubar","toolbar","statusbar"],"mappings":";+bAgCaA,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAC1B,IAAMI,EAAYC,IAElBC,GACE,WAAA,OAAM,IACN,IAAA,SAACC,GACC,GAAIA,EAAMC,OAAS,SAAWD,EAAME,MAAQ,UAAYP,EAAS,CAC/DC,EAAW,MACb,CACF,GACA,CAAEO,OAAQ,CAAC,UAAW,WAGxB,IAAMC,EAAgBC,EAAMC,gBAAe,WACzCV,GAAYD,EACd,IACA,IAAMY,EAASF,EAAMC,gBAAe,SAACE,EAAGC,GACtCZ,EAAUa,QAAUD,EACpBjB,EAAMe,QAANf,UAAAA,EAAAA,EAAMe,OAASE,EACjB,IAEAE,EAASC,iBAAgB,WAAM,IAAAC,GAC7BA,EAAAhB,EAAUa,UAAO,UAAA,EAAjBG,EAAmBC,eAAeC,YAAY,gBAChD,GAAG,CAACvB,EAAMwB,QAEV,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAW,oBAAqB,CAAE,0BAA2BxB,GAAWH,EAAM0B,WACzFE,MAAO5B,EAAM4B,MAAMC,SAElB7B,CAAAA,EAAM6B,SACN7B,EAAM8B,YAAc9B,EAAMwB,OACzBO,EAAA,MAAA,CAAKL,UAAU,yBAAwBG,SACrCE,EAACC,EAAW,CACVC,UAAWjC,EAAMkC,mBACjBC,KAAMJ,EAAAK,EAAuB,IAC7BC,QAASzB,MAIfmB,EAACO,EAAc,CACbd,MAAOxB,EAAMwB,MACbT,OAAQA,EACRwB,WAAU,KACVC,SAAQ,KACRC,KAAM,CACJC,QAAS,aACTC,QAAS,MACTC,QAAS,GACTC,UAAW,WAKrB"}
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable */
2
+ import './../fba-hooks/index.css';
2
3
  import './../request-status/index.css';
3
4
  import './index.css';
4
5
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- export{S as SelectorWrapperSearch}from"../selector-wrapper-search-dade1b6b.js";import"@ant-design/icons/es/icons/RedoOutlined";import"@wove/react/cjs/hooks";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/get";import"antd";import"react";import"../request-status-03fc60e2.js";import"@dimjs/utils/cjs/extend";import"@flatbiz/utils";import"react/jsx-runtime";
6
+ export{S as SelectorWrapperSearch}from"../selector-wrapper-search-c763c481.js";import"@ant-design/icons/es/icons/RedoOutlined";import"@wove/react/cjs/hooks";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/get";import"antd";import"react";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../request-status-03fc60e2.js";import"@dimjs/utils/cjs/extend";import"@flatbiz/utils";import"react/jsx-runtime";
6
7
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+ import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{_ as t,a as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as s}from"@dimjs/utils/cjs/get";import{Select as i,Button as a}from"antd";import{useState as u,useMemo as l}from"react";import{fbaHooks as c}from"./fba-hooks/index.js";import{R as d}from"./request-status-03fc60e2.js";import{jsx as f}from"react/jsx-runtime";var v=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter"];var m=function m(p){var h=p.showAllOption,g=p.serviceConfig,b=p.onSelectorListChange,q=p.onSelectorRequestError,y=p.requestMessageConfig,w=p.fieldNames,C=p.onLabelRenderAdapter,R=t(p,v);var j=u("request-init"),S=j[0],A=j[1];var k=u(),K=k[0],x=k[1];var E=(w==null?void 0:w.label)||"label";var L=(w==null?void 0:w.value)||"value";var O=(w==null?void 0:w.disabled)||"disabled";var M=(w==null?void 0:w.searchKeyword)||"searchKeyword";var P=g.params;var B=l((function(){var e=h===true;if(h){return{label:e?"全部":h.label,value:e?"":h.value}}return null}),[h]);var I=function e(r){if(g.onRequestResultAdapter){return g.onRequestResultAdapter(r)}if(w!=null&&w.list){var t=s(r,w==null?void 0:w.list);return n(t)?t:[]}return n(r)?r:[]};var N=function e(r){return new Promise((function(e,t){var n,s,i;var a=function(){try{return e()}catch(e){return t(e)}};var u=function(e){try{A("request-error");q==null?void 0:q(e);return a()}catch(e){return t(e)}};try{A("request-progress");return Promise.resolve(g.onRequest==null?void 0:g.onRequest(o({},P,(n={},n[M]=r,n)))).then((function(e){try{s=e;i=I(s);b==null?void 0:b(i);if(E&&L){i=i.map((function(e){return o({},e,{label:e[E],value:e[L],disabled:e[O||"disabled"]})}))}i.forEach((function(e){if(C){e.label=C(e)}}));if(B){i.unshift(B)}x(i);A("request-success");return a()}catch(e){return u(e)}}),u)}catch(e){u(e)}}))};var _=r.useDebounceCallback((function(e){x([]);void N(e)}),300);c.useEffectCustom((function(){if(p.customKeyword){void N(p.customKeyword)}}),[p.customKeyword]);var D=S==="request-progress";return f(i,o({showSearch:true,allowClear:true,dropdownMatchSelectWidth:false},R,{style:o({width:"100%"},p.style),options:K,filterOption:false,onSearch:_,notFoundContent:f(d,{status:S,loading:D,messageConfig:o({"request-init":"请输入搜索条件"},y),errorButton:f(a,{type:"primary",onClick:N,children:"重新获取数据"})}),suffixIcon:S==="request-error"?f(e,{spin:D,onClick:N}):undefined,loading:D}))};export{m as S};
3
+ //# sourceMappingURL=selector-wrapper-search-c763c481.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-wrapper-search-c763c481.js","sources":["@flatbiz/antd/src/selector-wrapper-search/selector-wrapper-search.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select, SelectProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSearchServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSearchProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如:'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; searchKeyword?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSearchServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /** 通过服务获取数据异常回调 */\n onSelectorRequestError?: (error: Error) => void;\n /** 交互文案配置 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n // 自定义keyword值\n customKeyword?: string;\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 只支持 search + 服务 功能\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSearch = (props: SelectorWrapperSearchProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n onLabelRenderAdapter,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const searchKeyword = fieldNames?.searchKeyword || 'searchKeyword';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n const result = get(respData, fieldNames?.list);\n return isArray(result) ? result : [];\n }\n return isArray(respData) ? respData : [];\n };\n\n const startDataSourceRequest = async (keyword) => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.({\n ...serviceParams,\n [searchKeyword]: keyword,\n });\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField || 'disabled'],\n };\n });\n }\n\n respAdapterData.forEach((item) => {\n if (onLabelRenderAdapter) {\n item.label = onLabelRenderAdapter(item);\n }\n });\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n const onSearch = hooks.useDebounceCallback((value: string) => {\n setDataSource([]);\n void startDataSourceRequest(value);\n }, 300);\n\n fbaHooks.useEffectCustom(() => {\n if (props.customKeyword) {\n void startDataSourceRequest(props.customKeyword);\n }\n }, [props.customKeyword]);\n\n const loading = requestStatus === 'request-progress';\n return (\n <Select\n showSearch={true}\n allowClear={true}\n dropdownMatchSelectWidth={false}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n filterOption={false}\n onSearch={onSearch}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '请输入搜索条件',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSearch","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","searchKeyword","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","onRequestResultAdapter","list","result","_get","_isArray","startDataSourceRequest","keyword","Promise","$return","$error","_extends2","_respData","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","_extends","then","$await_2","map","item","forEach","unshift","onSearch","_hooks","useDebounceCallback","fbaHooks","useEffectCustom","customKeyword","loading","_jsx","Select","showSearch","allowClear","dropdownMatchSelectWidth","style","width","options","filterOption","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable */
2
+ import './../fba-hooks/index.css';
2
3
  import './index.css';
3
4
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- export{S as SwitchConfirmWrapper}from"../switch-confirm-wrapper-4857f2a9.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@wove/react/cjs/hooks";import"antd";import"react";import"react/jsx-runtime";
5
+ export{S as SwitchConfirmWrapper}from"../switch-confirm-wrapper-984d57c4.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@wove/react/cjs/hooks";import"antd";import"react";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";
5
6
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+ import{_ as e,a as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as n}from"@wove/react/cjs/hooks";import{message as o,Popconfirm as t,Switch as i}from"antd";import{useState as u,useMemo as a}from"react";import{fbaHooks as s}from"./fba-hooks/index.js";import{jsx as l}from"react/jsx-runtime";var c=["popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage"];var f=function f(d){var v=d.popConfirmProps,h=d.needConfirm,m=d.checkedValue,p=d.unCheckedValue,C=d.onChange,g=d.value,k=d.serviceConfig,b=d.noMessage,P=e(d,c);var y=v||{},j=y.description,V=y.title,x=y.disabled;var R=u(false),q=R[0],w=R[1];var B=u(false),E=B[0],M=B[1];s.useEffectCustom((function(){w(g===m)}),[d.value]);var _=a((function(){return h==="close"&&q||h==="open"&&!q||!h||h==="all"}),[q,h]);var H=n.useCallbackRef((function(){return new Promise((function(e,r){var n,t,i;n=!q?m:p;if(k!=null&&k.onRequest){var u=function(e){return function(n){try{M(false);return e&&e.call(this,n)}catch(e){return r(e)}}.bind(this)}.bind(this);var a=function(){try{return l.call(this)}catch(e){return r(e)}}.bind(this);var s=function(e){try{if(!b){void o.error((e==null?void 0:e.message)||(k==null?void 0:(i=k.message)==null?void 0:i.defaultError)||"状态修改失败!")}return u(a)()}catch(e){return u(r)(e)}};try{M(true);return Promise.resolve(k.onRequest(n)).then((function(e){try{w(!q);C==null?void 0:C(n);if(!b){void o.success((k==null?void 0:(t=k.message)==null?void 0:t.success)||"状态修改成功!")}return u(a)()}catch(e){return s(e)}}),s)}catch(e){s(e)}}else{w(!q);C==null?void 0:C(n);return l.call(this)}function l(){return e()}}))}));if(_){return l(t,{disabled:x,okButtonProps:{loading:E},title:V,description:j,onConfirm:H,children:l(i,r({checked:q},P))})}return l(i,r({checked:q,loading:E},P,{onChange:H}))};export{f as S};
3
+ //# sourceMappingURL=switch-confirm-wrapper-984d57c4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-confirm-wrapper-984d57c4.js","sources":["@flatbiz/antd/src/switch-confirm-wrapper/switch-confirm-wrapper.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Popconfirm, PopconfirmProps, Switch, SwitchProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\n\nexport type SwitchConfirmWrapperValue = string | number | boolean;\nexport type SwitchConfirmWrapperProps = Omit<SwitchProps, 'defaultChecked' | 'onChange'> & {\n value?: SwitchConfirmWrapperValue;\n checkedValue: SwitchConfirmWrapperValue;\n unCheckedValue: SwitchConfirmWrapperValue;\n needConfirm?: 'close' | 'open' | 'all' | 'none';\n noMessage?: boolean;\n onChange?: (value: SwitchConfirmWrapperValue) => void;\n popConfirmProps?: Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>;\n serviceConfig?: {\n onRequest: (value: SwitchConfirmWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n\n/**\n *\n * @description switch 切换时做二次pop提醒, 非可控组件【内部控制】\n * @param props\n * @param value\n * @param checkedValue:选中状态值\n * @param unCheckedValue:非选中状态值\n * @param needConfirm:二次pop拦截时机 可不传 同 all close:switch 由开启转换成关闭时pop弹出、open:switch 由开启转换成开启时pop弹出all:switch 一直popnone:switch 不弹出\n * @param noMessage:不采用内置message提示\n * @param onChange:switch 有效切换回掉\n * @param popConfirmProps:popConfirm中参数 disabled title description\n * @param serviceConfig onRequest\n * @field onRequest 请求函数\n * @field message message配置 success defaultError\n * @returns RC\n */\nexport const SwitchConfirmWrapper = (props: SwitchConfirmWrapperProps) => {\n const {\n popConfirmProps,\n needConfirm,\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n serviceConfig,\n noMessage,\n ...otherProps\n } = props;\n const { description, title, disabled } = popConfirmProps || {};\n const [isCheked, setIsCheked] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n\n fbaHooks.useEffectCustom(() => {\n setIsCheked(value === checkedValue);\n }, [props.value]);\n\n const showConfirm = useMemo(() => {\n return (\n (needConfirm === 'close' && isCheked) ||\n (needConfirm === 'open' && !isCheked) ||\n !needConfirm ||\n needConfirm === 'all'\n );\n }, [isCheked, needConfirm]);\n\n const onHandleChange = hooks.useCallbackRef(async () => {\n const changeValue = !isCheked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n if (!noMessage) {\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n }\n } catch (error) {\n if (!noMessage) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n }\n } finally {\n setLoading(false);\n }\n } else {\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n }\n });\n if (showConfirm) {\n return (\n <Popconfirm\n disabled={disabled}\n okButtonProps={{ loading: loading }}\n title={title}\n description={description}\n onConfirm={onHandleChange}\n >\n <Switch checked={isCheked} {...otherProps} />\n </Popconfirm>\n );\n }\n return <Switch checked={isCheked} loading={loading} {...otherProps} onChange={onHandleChange} />;\n};\n"],"names":["SwitchConfirmWrapper","props","popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage","otherProps","_objectWithoutPropertiesLoose","_excluded","_ref","description","title","disabled","_useState","useState","isCheked","setIsCheked","_useState2","loading","setLoading","fbaHooks","useEffectCustom","showConfirm","useMemo","onHandleChange","_hooks","useCallbackRef","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","_jsx","Popconfirm","okButtonProps","onConfirm","children","Switch","_extends","checked"],"mappings":";6aAwCaA,EAAuB,SAAvBA,EAAwBC,GACnC,IACEC,EASED,EATFC,gBACAC,EAQEF,EARFE,YACAC,EAOEH,EAPFG,aACAC,EAMEJ,EANFI,eACAC,EAKEL,EALFK,SACAC,EAIEN,EAJFM,MACAC,EAGEP,EAHFO,cACAC,EAEER,EAFFQ,UACGC,EAAUC,EACXV,EAAKW,GACT,IAAAC,EAAyCX,GAAmB,CAAE,EAAtDY,EAAWD,EAAXC,YAAaC,EAAKF,EAALE,MAAOC,EAAQH,EAARG,SAC5B,IAAAC,EAAgCC,EAAkB,OAA3CC,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5B,IAAAI,EAA8BH,EAAkB,OAAzCI,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAE1BG,EAASC,iBAAgB,WACvBL,EAAYb,IAAUH,EACxB,GAAG,CAACH,EAAMM,QAEV,IAAMmB,EAAcC,GAAQ,WAC1B,OACGxB,IAAgB,SAAWgB,GAC3BhB,IAAgB,SAAWgB,IAC3BhB,GACDA,IAAgB,KAEpB,GAAG,CAACgB,EAAUhB,IAEd,IAAMyB,EAAiBC,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACpCC,EAAuDC,EAAAC,EAAvDF,GAAef,EAAWf,EAAeC,EAC/C,GAAIG,GAAa,MAAbA,EAAe6B,UAAW,CAAA,IAAAC,EAvElC,SAAAC,GAAA,OAAC,SAAAC,GAAD,IAqFQjB,EAAW,OArF4F,OAAOgB,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAOV,EAAAU,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAR,IAAIG,EAAJ,WAAA,IAAI,OAAJC,EAAGL,KAAQC,KAAF,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,GAA/BC,KAAKF,MAAR,IAAIK,EAAA,SAgFWC,GAhFf,IAiFQ,IAAKvC,EAAW,MACTwC,EAAQD,OAAMA,GAAAA,UAAAA,EAAAA,EAAOC,WAAWzC,gBAAa4B,EAAb5B,EAAeyC,UAAO,UAAA,EAAtBb,EAAwBc,eAAgB,UAC/E,CAnFR,OAAOZ,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAL,EAAAK,CAAAK,EAAM,GAwE5B,IACEpB,EAAW,MACX,OAAAQ,QAAAoB,QAAM3C,EAAc6B,UAAUH,IAA9BkB,eAA0CC,GA1ElD,IA2EQjC,GAAaD,GACbb,GAAAA,UAAAA,EAAAA,EAAW4B,GACX,IAAKzB,EAAW,MACTwC,EAAQK,SAAQ9C,gBAAa2B,EAAb3B,EAAeyC,UAAfd,UAAAA,EAAAA,EAAwBmB,UAAW,UAC1D,CA/ER,OAAOhB,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOI,EAAAJ,EAAM,CAAC,GAAAI,EAgF5B,CAAC,MAAOC,GAAOD,EAAPC,EAIT,CAGF,KAAO,CACL5B,GAAaD,GACbb,GAAAA,UAAAA,EAAAA,EAAW4B,GAAa,OAzF9BY,EAAGL,KAAQC,KA0FP,CAAC,SAAAI,IAAA,OAAAd,GAAA,CAAA,OAEH,GAAIN,EAAa,CACf,OACE6B,EAACC,EAAU,CACTxC,SAAUA,EACVyC,cAAe,CAAEnC,QAASA,GAC1BP,MAAOA,EACPD,YAAaA,EACb4C,UAAW9B,EAAe+B,SAE1BJ,EAACK,EAAMC,EAAA,CAACC,QAAS3C,GAAcT,KAGrC,CACA,OAAO6C,EAACK,EAAMC,EAAA,CAACC,QAAS3C,EAAUG,QAASA,GAAaZ,EAAU,CAAEJ,SAAUsB,IAChF"}
@@ -12,5 +12,5 @@ import './../flex-layout/index.css';
12
12
  import './../input-search-wrapper/index.css';
13
13
  import './index.css';
14
14
  /*! @flatjs/forge MIT @flatbiz/antd */
15
- import{f as e}from"../fba-utils-f9e11d02.js";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{Model as t}from"@dimjs/model-react";import{treeToArray as n,treeToTiledArray as a,treeLeafParentsArray as i,isUndefinedOrNull as l,treeFilter as s}from"@flatbiz/utils";import o from"@ant-design/icons/es/icons/CaretDownFilled";import u from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as c}from"@dimjs/utils/cjs/class-names";import{extend as d}from"@dimjs/utils/cjs/extend";import{hooks as v}from"@wove/react/cjs/hooks";import{_ as f,a as p}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as m}from"@dimjs/model";import{Spin as h,Tree as g,Button as b,message as y}from"antd";import{forwardRef as L,useState as j,useMemo as C,useRef as w,useImperativeHandle as N,Fragment as R,isValidElement as q}from"react";import{a as k}from"../button-operate-81d86480.js";import{D as S}from"../dropdown-menu-wrapper-016a83b6.js";import{fbaHooks as T}from"../fba-hooks/index.js";import{I as D}from"../input-search-wrapper-10d4a9b9.js";import{R as x}from"../request-status-03fc60e2.js";import{tree as P}from"@dimjs/utils/cjs/tree";import{isObject as E}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as A,jsx as I}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-125fce50.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.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"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm-74fc9337.js";import"../dialog-modal-4a0c72c5.js";import"ahooks";import"react-dom/client";import"../flex-layout-8d2b668b.js";import"../use-responsive-point-21b8c601.js";var _={treeList:[],treeTiledArray:[],queryIsEmpty:false};var O={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=n(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(t){return function(e){var a=n(e.treeList,t.childrenName);var i=a.find((function(e){return e[t.valueName]===t.value}));if(i){if(r(t.appendList)&&t.appendList.length>0){i[t.childrenName]=t.appendList}else{i.isLeaf=true}}e.treeTiledArray=n(e.treeList,t.childrenName)}}},state:_};var V={};var F=function e(r){if(!V[r]){V[r]=t(O)}return V[r]};var K=function e(r){var t=F(r).getState();return t.treeList};var M=function e(r,t,n){var l=a(t,n);return i(r,l,true,{value:"value",parentValue:"parentValue"})};var U=function e(t,n){var a=l(t)?[]:t;a=r(a)?a:[a];a=a.map((function(e){if(E(e))return e[n.value];return e}));return a};var z=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var s=n.dropPosition-Number(l[l.length-1]);var o=t.value;var u=t.children;var c=function e(r,t,n){for(var a=0;a<r.length;a++){if(r[a][o]===t){return n(r[a],a,r)}if(r[a][u]){e(r[a][u],t,n)}}};var d=m(r);var v;c(d,i,(function(e,r,t){t.splice(r,1);v=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}else{var f=[];var p;c(d,a,(function(e,r,t){f=t;p=r}));if(s===-1){f.splice(p,0,v)}else{f.splice(p+1,0,v)}}return{dataList:d,dragNodeData:B(i,d,t)}};var B=function e(r,t,a){var i;var l=a.value;var s=a.children;P.walkThroughTree((i={},i[l]=undefined,i[s]=t,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=n(t,s);var u=o.find((function(e){return e[l]===r}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__index"]}};var H=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus"];var Y=L((function(e,t){var i=e.style,L=e.serviceConfig,P=e.effectDependencyList,E=e.selectorTreeList,_=e.value,O=e.onChange,V=e.modelKey,K=e.checkableResponseParentNode,B=K===void 0?true:K,Y=e.checkable,G=e.onSelectorTreeListChange,W=e.onRequestResponseChange,J=e.treeItemDataAdapter,Q=e.searchValue,X=e.showSearch,Z=e.searchPlaceholder,$=e.requestMessageConfig,ee=e.labelInValueFieldNames,re=e.labelInValue,te=e.disabledCanUse,ne=e.menuLayoutType,ae=e.menuTriggerType,ie=e.initRootExpand,le=e.searchResultType,se=e.onDropNodeHandle,oe=e.onDropPrev,ue=e.labelRender,ce=e.searchStyle,de=e.className,ve=e.defaultExpandAll,fe=e.menus,pe=f(e,H);var me=e.hasOwnProperty("selectorTreeList");var he=L||{};var ge=P||[];var be=j([]),ye=be[0],Le=be[1];var je=F(V).useStore(),Ce=je[0],we=je[1];var Ne=T.useSafeState(false),Re=Ne[0],qe=Ne[1];var ke="request-progress-"+e.modelKey;var Se=C((function(){return p({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var Te=ne===undefined?"fold":ne;var De=ae===undefined?"click":ae;var xe=w(true);var Pe=C((function(){return p({label:"label",value:"value"},ee)}),[ee]);var Ee=j(),Ae=Ee[0],Ie=Ee[1];var _e=w();var Oe=C((function(){var e=U(_,Pe);return e}),[Pe,_]);T.useEffectCustom((function(){if(Ce.treeList.length>0){if(xe.current){xe.current=false;if(ve){var e=n(Ce.treeList,Se.children).map((function(e){return e[Se.value]}));Le(e);return}else if(ie&&Ce.treeList.length){Le([Ce.treeList[0][Se.value]]);return}}if(!l(_)){var r=Ue(Oe,true);Le(Array.from(new Set(ye==null?void 0:ye.concat(r))))}}}),[_,Ce.treeList,Oe]);var Ve=function e(r){return r===""||l(r)};var Fe=function e(r){var t=he.onRequestResultAdapter?he.onRequestResultAdapter(r):r;return t};T.useEffectCustom((function(){Ie(Q)}),[Q]);var Ke=v.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l,s;var o=function(){try{return e()}catch(e){return r(e)}};var u=function(e){try{xe.current=false;qe(false);void y.error(e.message||"数据查询异常...");return o()}catch(e){return r(e)}};try{if(!he.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=he.requiredParamsKeys;n=d({},he.params);if(t){a=t.find((function(e){return Ve(n[e])}));if(a){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return o()}catch(e){return u(e)}};var v=function(e){try{window[ke]=false;qe(false);void we.changeRequestStatus("request-error");return c()}catch(e){return u(e)}};try{qe(true);return Promise.resolve(we.changeRequestStatus("request-progress")).then((function(e){try{window[ke]=true;return Promise.resolve(he.onRequest==null?void 0:he.onRequest(n)).then((function(e){try{i=e;W==null?void 0:W(i);l=Fe(i);s=l||[];if(s.length===0){xe.current=false}Me(s);qe(false);window[ke]=false;return c()}catch(e){return v(e)}}),v)}catch(e){return v(e)}}),v)}catch(e){v(e)}}catch(e){u(e)}}))}));T.useEffectCustom((function(){if(me)return;if(Boolean(ge.length)){void Ke();return}var e=F(V).getState();if(e.requestStatus==="request-success"){G==null?void 0:G(e.treeList);return}if(!window[ke]){void Ke()}else{G==null?void 0:G(e.treeList)}}),ge);T.useEffectCustom((function(){if(me){Me(E||[])}}),[E]);var Me=v.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&Ce.treeList.length===0){void we.changeRequestStatus("request-success");return}void we.setTreeList({treeList:e||[],childrenName:Se.children});G==null?void 0:G(e)}));var Ue=function e(r,t){var n=[];r.forEach((function(e){if(!t&&ye!=null&&ye.includes(e))return;var r=M(e,Ce.treeList,Se);n=n.concat(r.map((function(e){return e.value})))}));return n};v.useUpdateEffect((function(){if(Ae){var e=a(Ce.treeList||[],Se);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ae||"")}));Le((function(e){var t=Ue(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{Le([])}}),[Ae]);N(t,(function(){return{onClearSelectorList:function e(){void we.resetTreeList()},getTreeDataList:function e(){return Ce.treeList}}}));var ze=v.useCallbackRef((function(e){Le(e)}));var Be=v.useCallbackRef((function(e,t,n){_e.current=e;var a=l(t)?[]:r(t)?t:[t];if(l(e)){O==null?void 0:O(e,t,n);return}if(re){var i=Pe.label;var s=Pe.value;var o=a.map((function(e){var r;return r={},r[i]=e[Se.label],r[s]=e[Se.value],r}));if(r(e)){O==null?void 0:O(o,a,n)}else{O==null?void 0:O(o[0],a[0],n)}}else{if(r(e)){O==null?void 0:O(e,a,n)}else{O==null?void 0:O(e,a[0],n)}}}));var He=v.useCallbackRef((function(t,n){var a=e.checkStrictly?t.checked:t;a=l(t)?[]:t;a=r(a)?a:[a];var i=[];var s=[];var o=[];var u=[];a.forEach((function(e){var t=Ce.treeTiledArray.find((function(r){return r[Se.value]===e}));if(!t)return;var n=t==null?void 0:t[Se.children];if(!r(n)||n.length===0){i.push(t);s.push(t[Se.value])}o.push(t);u.push(t[Se.value])}));if(Y){Le((function(e){var r=Ue(s).concat(e||[]);return Array.from(new Set(r))}));if(!B&&!e.checkStrictly){Be(s,i,o)}else{Be(u,o,o)}}else{if(a[0]){var c=o.find((function(e){return e[Se.value]===a[0]}));Be(a[0],c,[c])}else{var d=n.node[Se.value];var v=Ce.treeTiledArray.find((function(e){return e[Se.value]===d}));Be(undefined,v,[v])}}}));var Ye=v.useCallbackRef((function(e){return J==null?void 0:J(e)}));var Ge=C((function(){var e=m(Ce.treeList||[]);if(Ae&&le!=="highlight"){return s(m(Ce.treeList||[]),(function(e){var r;var t=(r=e[Se.label])==null?void 0:r.toLowerCase();return t.indexOf(Ae.toLowerCase())>=0}),{childrenName:Se.children})}return e}),[Se.children,Se.label,le,Ce.treeList,Ae]);var We=C((function(){var e=function e(t){return t==null?void 0:t.map((function(t){var n;var a=(Ye==null?void 0:Ye(t))||t;var i=te?undefined:a.disabled;var l=a[Se.label];var s;if(Ae){var o=l.indexOf(Ae);var u=l.substring(0,o);var d=l.slice(o+Ae.length);s=o>-1?A("span",{className:c({"v-tree-item-disabled":a.disabled}),children:[u,I("span",{className:"site-tree-search-value",children:Ae}),d]}):null}if(!s){s=I("span",{className:c({"v-tree-item-disabled":a.disabled}),children:l})}var v=a[Se.children];return p({},a,(n={disabled:i},n[Se.label]=s,n._treeItemName=l,n._disabled=a.disabled,n[Se.children]=r(v)&&v.length>0?e(v):undefined,n))}))};return e(Ge)}),[Ge,Ye,te,Se.label,Se.children,Ae]);var Je=v.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,s,o,u;if(r[Se.children]){t();return a()}var c=function(){try{return a()}catch(e){return i(e)}};var d=function(e){try{void y.error(e.message||"数据加载异常...");n();return c()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null?void 0:l.onRequest==null?void 0:l.onRequest((s=e.loadDataServiceConfig)==null?void 0:s.getParams==null?void 0:s.getParams(r))).then((function(e){try{o=e;u=he.onRequestResultAdapter?he.onRequestResultAdapter(o):o;void we.treeListAppendChildren({value:r[Se.value],appendList:u,childrenName:Se.children,valueName:Se.value}).then((function(e){Me(e.treeList);t()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Qe=v.useCallbackRef((function(r){var t=r==null?void 0:r[Se.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var Xe=v.useCallbackRef((function(r){var t,n,a;var i=r._treeItemName||r[Se.label];var l=fe==null?void 0:fe(p({},r,(t={},t[Se.label]=i,t)));if(l){return A(R,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[Se.label])}),I(k,p({gap:5},l,{className:c("tree-item-title-operate",l.className)}))]})}if(Te==="fold"){var s;var o=[];if((s=e.menuOptions)!=null&&s.fold){var d,v,f;o=((d=e.menuOptions)==null?void 0:(v=d[Te])==null?void 0:v.call(d,p({},r,(f={},f[Se.label]=i,f))))||[]}else{var m;o=(e.getMenuOptions==null?void 0:e.getMenuOptions(p({},r,(m={},m[Se.label]=i,m))))||[]}return A(R,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[Se.label])}),o.length>0&&I(S,{menuList:o,children:I(u,{})})]})}var h=(n=e.menuOptions)==null?void 0:n.tile==null?void 0:n.tile(p({},r,(a={},a[Se.label]=i,a)));return A(R,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[Se.label])}),h?I(k,p({gap:5},h,{className:c("tree-item-title-operate",h.className)})):null]})}));var Ze=v.useDebounceCallback((function(r){Ie(r);e.onSearchValueChange==null?void 0:e.onSearchValueChange(r)}),300);var $e=v.useCallbackRef((function(e){Ze(e.target.value)}));var er=v.useCallbackRef((function(r){if(!e.icon)return null;if(q(e.icon))return e.icon;var t=Qe(r.data);return e.icon(p({},r,{isParent:!t,isLeaf:t}))}));var rr=C((function(){return{title:Se.label,key:Se.value,children:Se.children}}),[Se]);var tr=We.length>0&&Ce.requestStatus!=="request-error";var nr=p({showLine:{showLeafIcon:false},titleRender:Xe,blockNode:true,switcherIcon:I(o,{}),onDrop:function e(r){if(oe){var t=oe(r);if(!t)return}var n=z(Ge,Se,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);Me(a)},expandedKeys:ye},pe,{fieldNames:rr,treeData:We,onExpand:ze,loadData:e.loadDataFlag?Je:undefined,style:{width:"100%"},icon:er});var ar={onCheck:He,checkable:Y,checkedKeys:Oe};var ir={onSelect:He,multiple:false,selectedKeys:Oe};var lr=Y?ar:ir;var sr=c("v-tree-wrapper","v-tree-wrapper-menu-"+De,de);var or=Ce.treeList.length>0&&!tr&&Ae;return A("div",{className:sr,style:i,children:[!!X&&A("div",{className:"v-tree-wrapper-search-area",style:ce,children:[I(D,{className:"v-tree-wrapper-search",placeholder:Z,onChange:$e,value:Q,allowClear:true}),!!e.searchExtraElement&&I("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),tr?A("div",{className:"v-tree-wrapper-tree-wrapper",children:[I(h,{spinning:Ce.requestStatus==="request-progress"}),I(g,p({},lr,nr,{className:"v-tree-wrapper-tree"}))]}):I(x,{status:Ce.requestStatus,loading:Re,messageConfig:p({"request-success":or?"搜索结果为空":"暂无数据"},$),errorButton:I(b,{type:"primary",onClick:Ke,children:"重新获取数据"})})]})}));Y.defaultProps={disabledCanUse:true};var G=e.attachPropertiesToComponent(Y,{getTreeDataList:K});export{G as TreeWrapper};
15
+ import{f as e}from"../fba-utils-f9e11d02.js";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{Model as t}from"@dimjs/model-react";import{treeToArray as n,treeToTiledArray as a,treeLeafParentsArray as i,isUndefinedOrNull as l,treeFilter as s}from"@flatbiz/utils";import o from"@ant-design/icons/es/icons/CaretDownFilled";import u from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as c}from"@dimjs/utils/cjs/class-names";import{extend as d}from"@dimjs/utils/cjs/extend";import{hooks as v}from"@wove/react/cjs/hooks";import{_ as f,a as p}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as m}from"@dimjs/model";import{Spin as h,Tree as g,Button as b,message as y}from"antd";import{forwardRef as L,useState as j,useMemo as w,useRef as C,useImperativeHandle as R,Fragment as N,isValidElement as q}from"react";import{a as k}from"../button-operate-81d86480.js";import{D as S}from"../dropdown-menu-wrapper-016a83b6.js";import{fbaHooks as T}from"../fba-hooks/index.js";import{I as P}from"../input-search-wrapper-10d4a9b9.js";import{R as x}from"../request-status-03fc60e2.js";import{tree as D}from"@dimjs/utils/cjs/tree";import{isObject as E}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as A,jsx as I}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-125fce50.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.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"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm-74fc9337.js";import"../dialog-modal-4a0c72c5.js";import"ahooks";import"react-dom/client";import"../flex-layout-8d2b668b.js";import"../use-responsive-point-21b8c601.js";var _={treeList:[],treeTiledArray:[],queryIsEmpty:false};var O={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=n(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(t){return function(e){var a=n(e.treeList,t.childrenName);var i=a.find((function(e){return e[t.valueName]===t.value}));if(i){if(r(t.appendList)&&t.appendList.length>0){i[t.childrenName]=t.appendList}else{i.isLeaf=true}}e.treeTiledArray=n(e.treeList,t.childrenName)}}},state:_};var V={};var F=function e(r){if(!V[r]){V[r]=t(O)}return V[r]};var K=function e(r){var t=F(r).getState();return t.treeList};var M=function e(r,t,n){var l=a(t,n);return i(r,l,true,{value:"value",parentValue:"parentValue"})};var U=function e(t,n){var a=l(t)?[]:t;a=r(a)?a:[a];a=a.map((function(e){if(E(e))return e[n.value];return e}));return a};var z=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var s=n.dropPosition-Number(l[l.length-1]);var o=t.value;var u=t.children;var c=function e(r,t,n){for(var a=0;a<r.length;a++){if(r[a][o]===t){return n(r[a],a,r)}if(r[a][u]){e(r[a][u],t,n)}}};var d=m(r);var v;c(d,i,(function(e,r,t){t.splice(r,1);v=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}else{var f=[];var p;c(d,a,(function(e,r,t){f=t;p=r}));if(s===-1){f.splice(p,0,v)}else{f.splice(p+1,0,v)}}return{dataList:d,dragNodeData:B(i,d,t)}};var B=function e(r,t,a){var i;var l=a.value;var s=a.children;D.walkThroughTree((i={},i[l]=undefined,i[s]=t,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=n(t,s);var u=o.find((function(e){return e[l]===r}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__index"]}};var H=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus"];var Y=L((function(e,t){var i=e.style,L=e.serviceConfig,D=e.effectDependencyList,E=e.selectorTreeList,_=e.value,O=e.onChange,V=e.modelKey,K=e.checkableResponseParentNode,B=K===void 0?true:K,Y=e.checkable,G=e.onSelectorTreeListChange,W=e.onRequestResponseChange,J=e.treeItemDataAdapter,Q=e.searchValue,X=e.showSearch,Z=e.searchPlaceholder,$=e.requestMessageConfig,ee=e.labelInValueFieldNames,re=e.labelInValue,te=e.disabledCanUse,ne=e.menuLayoutType,ae=e.menuTriggerType,ie=e.initRootExpand,le=e.searchResultType,se=e.onDropNodeHandle,oe=e.onDropPrev,ue=e.labelRender,ce=e.searchStyle,de=e.className,ve=e.defaultExpandAll,fe=e.menus,pe=f(e,H);var me=e.hasOwnProperty("selectorTreeList");var he=L||{};var ge=D||[];var be=j([]),ye=be[0],Le=be[1];var je=F(V).useStore(),we=je[0],Ce=je[1];var Re=T.useSafeState(false),Ne=Re[0],qe=Re[1];var ke="request-progress-"+e.modelKey;var Se=w((function(){return p({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var Te=ne===undefined?"fold":ne;var Pe=ae===undefined?"click":ae;var xe=C(true);var De=w((function(){return p({label:"label",value:"value"},ee)}),[ee]);var Ee=j(),Ae=Ee[0],Ie=Ee[1];var _e=C();var Oe=w((function(){var e=U(_,De);return e}),[De,_]);T.useEffectCustom((function(){if(we.treeList.length>0){if(xe.current){xe.current=false;if(ve){var e=n(we.treeList,Se.children).map((function(e){return e[Se.value]}));Le(e);return}else if(ie&&we.treeList.length){Le([we.treeList[0][Se.value]]);return}}if(!l(_)){var r=Ue(Oe,true);Le(Array.from(new Set(ye==null?void 0:ye.concat(r))))}}}),[_,we.treeList,Oe]);var Ve=function e(r){return r===""||l(r)};var Fe=function e(r){var t=he.onRequestResultAdapter?he.onRequestResultAdapter(r):r;return t};T.useEffectCustom((function(){Ie(Q)}),[Q]);var Ke=v.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l,s;var o=function(){try{return e()}catch(e){return r(e)}};var u=function(e){try{xe.current=false;qe(false);void y.error(e.message||"数据查询异常...");return o()}catch(e){return r(e)}};try{if(!he.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=he.requiredParamsKeys;n=d({},he.params);if(t){a=t.find((function(e){return Ve(n[e])}));if(a){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return o()}catch(e){return u(e)}};var v=function(e){try{window[ke]=false;qe(false);void Ce.changeRequestStatus("request-error");return c()}catch(e){return u(e)}};try{qe(true);return Promise.resolve(Ce.changeRequestStatus("request-progress")).then((function(e){try{window[ke]=true;return Promise.resolve(he.onRequest==null?void 0:he.onRequest(n)).then((function(e){try{i=e;W==null?void 0:W(i);l=Fe(i);s=l||[];if(s.length===0){xe.current=false}Me(s);qe(false);window[ke]=false;return c()}catch(e){return v(e)}}),v)}catch(e){return v(e)}}),v)}catch(e){v(e)}}catch(e){u(e)}}))}));T.useEffectCustom((function(){if(me)return;if(Boolean(ge.length)){void Ke();return}var e=F(V).getState();if(e.requestStatus==="request-success"){G==null?void 0:G(e.treeList);return}if(!window[ke]){void Ke()}else{G==null?void 0:G(e.treeList)}}),ge);T.useEffectCustom((function(){if(me){Me(E||[])}}),[E]);var Me=v.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&we.treeList.length===0){void Ce.changeRequestStatus("request-success");return}void Ce.setTreeList({treeList:e||[],childrenName:Se.children});G==null?void 0:G(e)}));var Ue=function e(r,t){var n=[];r.forEach((function(e){if(!t&&ye!=null&&ye.includes(e))return;var r=M(e,we.treeList,Se);n=n.concat(r.map((function(e){return e.value})))}));return n};v.useUpdateEffect((function(){if(Ae){var e=a(we.treeList||[],Se);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ae||"")}));Le((function(e){var t=Ue(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{Le([])}}),[Ae]);R(t,(function(){return{onClearSelectorList:function e(){void Ce.resetTreeList()},getTreeDataList:function e(){return we.treeList}}}));var ze=v.useCallbackRef((function(e){Le(e)}));var Be=v.useCallbackRef((function(e,t,n){_e.current=e;var a=l(t)?[]:r(t)?t:[t];if(l(e)){O==null?void 0:O(e,t,n);return}if(re){var i=De.label;var s=De.value;var o=a.map((function(e){var r;return r={},r[i]=e[Se.label],r[s]=e[Se.value],r}));if(r(e)){O==null?void 0:O(o,a,n)}else{O==null?void 0:O(o[0],a[0],n)}}else{if(r(e)){O==null?void 0:O(e,a,n)}else{O==null?void 0:O(e,a[0],n)}}}));var He=v.useCallbackRef((function(t,n){var a=e.checkStrictly?t.checked:t;a=l(t)?[]:t;a=r(a)?a:[a];var i=[];var s=[];var o=[];var u=[];a.forEach((function(e){var t=we.treeTiledArray.find((function(r){return r[Se.value]===e}));if(!t)return;var n=t==null?void 0:t[Se.children];if(!r(n)||n.length===0){i.push(t);s.push(t[Se.value])}o.push(t);u.push(t[Se.value])}));if(Y){Le((function(e){var r=Ue(s).concat(e||[]);return Array.from(new Set(r))}));if(!B&&!e.checkStrictly){Be(s,i,o)}else{Be(u,o,o)}}else{if(a[0]){var c=o.find((function(e){return e[Se.value]===a[0]}));Be(a[0],c,[c])}else{var d=n.node[Se.value];var v=we.treeTiledArray.find((function(e){return e[Se.value]===d}));Be(undefined,v,[v])}}}));var Ye=v.useCallbackRef((function(e){return J==null?void 0:J(e)}));var Ge=w((function(){var e=m(we.treeList||[]);if(Ae&&le!=="highlight"){return s(m(we.treeList||[]),(function(e){var r;var t=(r=e[Se.label])==null?void 0:r.toLowerCase();return t.indexOf(Ae.toLowerCase())>=0}),{childrenName:Se.children})}return e}),[Se.children,Se.label,le,we.treeList,Ae]);var We=w((function(){var e=function e(t){return t==null?void 0:t.map((function(t){var n;var a=(Ye==null?void 0:Ye(t))||t;var i=te?undefined:a.disabled;var l=a[Se.label];var s;if(Ae){var o=l.indexOf(Ae);var u=l.substring(0,o);var d=l.slice(o+Ae.length);s=o>-1?A("span",{className:c({"v-tree-item-disabled":a.disabled}),children:[u,I("span",{className:"site-tree-search-value",children:Ae}),d]}):null}if(!s){s=I("span",{className:c({"v-tree-item-disabled":a.disabled}),children:l})}var v=a[Se.children];return p({},a,(n={disabled:i},n[Se.label]=s,n._treeItemName=l,n._disabled=a.disabled,n[Se.children]=r(v)&&v.length>0?e(v):undefined,n))}))};return e(Ge)}),[Ge,Ye,te,Se.label,Se.children,Ae]);var Je=v.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,s,o,u;if(r[Se.children]){t();return a()}var c=function(){try{return a()}catch(e){return i(e)}};var d=function(e){try{void y.error(e.message||"数据加载异常...");n();return c()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null?void 0:l.onRequest==null?void 0:l.onRequest((s=e.loadDataServiceConfig)==null?void 0:s.getParams==null?void 0:s.getParams(r))).then((function(e){try{o=e;u=he.onRequestResultAdapter?he.onRequestResultAdapter(o):o;void Ce.treeListAppendChildren({value:r[Se.value],appendList:u,childrenName:Se.children,valueName:Se.value}).then((function(e){Me(e.treeList);t()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Qe=v.useCallbackRef((function(r){var t=r==null?void 0:r[Se.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var Xe=v.useCallbackRef((function(r){var t,n,a;var i=r._treeItemName||r[Se.label];var l=fe==null?void 0:fe(p({},r,(t={},t[Se.label]=i,t)));if(l){return A(N,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[Se.label])}),I(k,p({gap:5},l,{dropdownMenuProps:p({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:c("tree-item-title-operate",l.className)}))]})}if(Te==="fold"){var s;var o=[];if((s=e.menuOptions)!=null&&s.fold){var d,v,f;o=((d=e.menuOptions)==null?void 0:(v=d[Te])==null?void 0:v.call(d,p({},r,(f={},f[Se.label]=i,f))))||[]}else{var m;o=(e.getMenuOptions==null?void 0:e.getMenuOptions(p({},r,(m={},m[Se.label]=i,m))))||[]}return A(N,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[Se.label])}),o.length>0&&I(S,{menuList:o,placement:"bottomRight",children:I(u,{})})]})}var h=(n=e.menuOptions)==null?void 0:n.tile==null?void 0:n.tile(p({},r,(a={},a[Se.label]=i,a)));return A(N,{children:[I("span",{className:"tree-item-title",children:(ue==null?void 0:ue(r))||(r==null?void 0:r[Se.label])}),h?I(k,p({gap:5},h,{className:c("tree-item-title-operate",h.className)})):null]})}));var Ze=v.useDebounceCallback((function(r){Ie(r);e.onSearchValueChange==null?void 0:e.onSearchValueChange(r)}),300);var $e=v.useCallbackRef((function(e){Ze(e.target.value)}));var er=v.useCallbackRef((function(r){if(!e.icon)return null;if(q(e.icon))return e.icon;var t=Qe(r.data);return e.icon(p({},r,{isParent:!t,isLeaf:t}))}));var rr=w((function(){return{title:Se.label,key:Se.value,children:Se.children}}),[Se]);var tr=We.length>0&&we.requestStatus!=="request-error";var nr=p({showLine:{showLeafIcon:false},titleRender:Xe,blockNode:true,switcherIcon:I(o,{}),onDrop:function e(r){if(oe){var t=oe(r);if(!t)return}var n=z(Ge,Se,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);Me(a)},expandedKeys:ye},pe,{fieldNames:rr,treeData:We,onExpand:ze,loadData:e.loadDataFlag?Je:undefined,style:{width:"100%"},icon:er});var ar={onCheck:He,checkable:Y,checkedKeys:Oe};var ir={onSelect:He,multiple:false,selectedKeys:Oe};var lr=Y?ar:ir;var sr=c("v-tree-wrapper","v-tree-wrapper-menu-"+Pe,de);var or=we.treeList.length>0&&!tr&&Ae;return A("div",{className:sr,style:i,children:[!!X&&A("div",{className:"v-tree-wrapper-search-area",style:ce,children:[I(P,{className:"v-tree-wrapper-search",placeholder:Z,onChange:$e,value:Q,allowClear:true}),!!e.searchExtraElement&&I("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),tr?A("div",{className:"v-tree-wrapper-tree-wrapper",children:[I(h,{spinning:we.requestStatus==="request-progress"}),I(g,p({},lr,nr,{className:"v-tree-wrapper-tree"}))]}):I(x,{status:we.requestStatus,loading:Ne,messageConfig:p({"request-success":or?"搜索结果为空":"暂无数据"},$),errorButton:I(b,{type:"primary",onClick:Ke,children:"重新获取数据"})})]})}));Y.defaultProps={disabledCanUse:true};var G=e.attachPropertiesToComponent(Y,{getTreeDataList:K});export{G as TreeWrapper};
16
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport { isUndefinedOrNull, LabelValueItem, treeToArray } from '@flatbiz/utils';\nimport { DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny,\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void,\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string },\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n tree.walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children,\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n CSSProperties,\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n treeFilter,\n treeToArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\n\nimport { treeWrapperModel } from './model';\n\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, onTreeDrop } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n | 'defaultCheckedKeys'\n | 'defaultExpandParent'\n | 'defaultSelectedKeys'\n> & {\n modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n /**\n * 根据 menuLayoutType 类型赋值\n * @deprecated 已过期 4.3.0版本移除,请使用 menuOptions\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n menus?: (dataItem) => ButtonOperateProps;\n\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n searchStyle?: CSSProperties;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 当前拖拽节点的父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 当前拖拽节点所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: { parentId?: string | number; id: string | number; index: number }) => void;\n /**\n * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n style,\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n onDropNodeHandle,\n onDropPrev,\n labelRender,\n searchStyle,\n className,\n defaultExpandAll,\n menus,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>([]);\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n const responseFirstRef = useRef(true);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeList.length > 0) {\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (defaultExpandAll) {\n const allValues = treeToArray(state.treeList, fieldNames.children).map((item) => {\n return item[fieldNames.value];\n });\n setTreeExpandedKeys(allValues);\n return;\n } else if (initRootExpand && state.treeList.length) {\n setTreeExpandedKeys([state.treeList[0][fieldNames.value]]);\n return;\n }\n }\n if (!isUndefinedOrNull(value)) {\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(treeExpandedKeys?.concat(expandedKeys))));\n }\n }\n }, [value, state.treeList, valueList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n const respDataListNew = respData || [];\n if (respDataListNew.length === 0) {\n responseFirstRef.current = false;\n }\n onChangeSelectorList(respDataListNew);\n setLoading(false);\n\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error: TAny) {\n responseFirstRef.current = false;\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = (valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode]);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target]);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const originalDataList = useMemo(() => {\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n return treeFilter(\n cloneState(state.treeList || []),\n (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n },\n { childrenName: fieldNames.children },\n );\n }\n return list;\n }, [fieldNames.children, fieldNames.label, searchResultType, state.treeList, treeSearchValue]);\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = adapterItem[fieldNames.label] as string;\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n return loop(originalDataList);\n }, [\n originalDataList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error: TAny) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n const buttonOperateConfig = menus?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n if (buttonOperateConfig) {\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n <ButtonOperate\n gap={5}\n {...buttonOperateConfig}\n className={classNames('tree-item-title-operate', buttonOperateConfig.className)}\n />\n </Fragment>\n );\n }\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions}>\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n gap={5}\n {...menuOptions}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n onDrop: (info) => {\n if (onDropPrev) {\n const boo = onDropPrev(info);\n if (!boo) return;\n }\n const { dataList, dragNodeData } = onTreeDrop(originalDataList as TPlainObject[], fieldNames, info);\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n expandedKeys: treeExpandedKeys,\n ...otherProps,\n fieldNames: treeFieldNames,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%' },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n checkedKeys: valueList,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n selectedKeys: valueList,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`, className);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName} style={style}>\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\" style={searchStyle}>\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n","import { fbaUtils } from '../fba-utils';\nimport { getTreeDataList } from './hooks';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper';\n\nexport type * from './tree-wrapper';\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = fbaUtils.attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\n});\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getTreeDataList","modelKey","getState","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","children","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","_tree$walkThroughTree","id","_tree","walkThroughTree","undefined","_parent","tileList","parentId","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","menuLayoutTypeNew","menuTriggerTypeNew","responseFirstRef","useRef","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","innerOperateValueRef","valueList","useEffectCustom","current","allValues","expandedKeys","getTreeExpandedKeys","Array","from","Set","concat","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","console","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","Boolean","allState","refresh","newTreeExpandedKeys","forEach","includes","targetList","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","treeItemDataAdapterHandle","dataItem","originalDataList","list","treeFilter","_node$fieldNames$labe","toLowerCase","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","titleDom","beforeStr","substring","afterStr","slice","_jsxs","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_extends3","_props$menuOptions3","_extends6","stringLabel","buttonOperateConfig","Fragment","ButtonOperate","gap","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends4","call","_extends5","getMenuOptions","DropdownMenuWrapper","menuList","_MoreOutlined","tile","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","checkedProps","onCheck","checkedKeys","selectedProps","onSelect","multiple","selectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps","fbaUtils","attachPropertiesToComponent","TreeWrapperInner"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport { isUndefinedOrNull, LabelValueItem, treeToArray } from '@flatbiz/utils';\nimport { DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny,\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void,\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string },\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n tree.walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children,\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n CSSProperties,\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n treeFilter,\n treeToArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\n\nimport { treeWrapperModel } from './model';\n\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, onTreeDrop } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n | 'defaultCheckedKeys'\n | 'defaultExpandParent'\n | 'defaultSelectedKeys'\n> & {\n modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n /**\n * 根据 menuLayoutType 类型赋值\n * @deprecated 已过期 4.3.0版本移除,请使用 menuOptions\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n menus?: (dataItem) => ButtonOperateProps;\n\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n searchStyle?: CSSProperties;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 当前拖拽节点的父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 当前拖拽节点所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: { parentId?: string | number; id: string | number; index: number }) => void;\n /**\n * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n style,\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n onDropNodeHandle,\n onDropPrev,\n labelRender,\n searchStyle,\n className,\n defaultExpandAll,\n menus,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>([]);\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n const responseFirstRef = useRef(true);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeList.length > 0) {\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (defaultExpandAll) {\n const allValues = treeToArray(state.treeList, fieldNames.children).map((item) => {\n return item[fieldNames.value];\n });\n setTreeExpandedKeys(allValues);\n return;\n } else if (initRootExpand && state.treeList.length) {\n setTreeExpandedKeys([state.treeList[0][fieldNames.value]]);\n return;\n }\n }\n if (!isUndefinedOrNull(value)) {\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(treeExpandedKeys?.concat(expandedKeys))));\n }\n }\n }, [value, state.treeList, valueList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n const respDataListNew = respData || [];\n if (respDataListNew.length === 0) {\n responseFirstRef.current = false;\n }\n onChangeSelectorList(respDataListNew);\n setLoading(false);\n\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error: TAny) {\n responseFirstRef.current = false;\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = (valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode]);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target]);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const originalDataList = useMemo(() => {\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n return treeFilter(\n cloneState(state.treeList || []),\n (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n },\n { childrenName: fieldNames.children },\n );\n }\n return list;\n }, [fieldNames.children, fieldNames.label, searchResultType, state.treeList, treeSearchValue]);\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = adapterItem[fieldNames.label] as string;\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n return loop(originalDataList);\n }, [\n originalDataList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error: TAny) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n const buttonOperateConfig = menus?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n if (buttonOperateConfig) {\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n <ButtonOperate\n gap={5}\n {...buttonOperateConfig}\n dropdownMenuProps={{\n placement: 'bottomRight',\n isFixed: true,\n ...buttonOperateConfig?.dropdownMenuProps,\n }}\n className={classNames('tree-item-title-operate', buttonOperateConfig.className)}\n />\n </Fragment>\n );\n }\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions} placement=\"bottomRight\">\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n gap={5}\n {...menuOptions}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n onDrop: (info) => {\n if (onDropPrev) {\n const boo = onDropPrev(info);\n if (!boo) return;\n }\n const { dataList, dragNodeData } = onTreeDrop(originalDataList as TPlainObject[], fieldNames, info);\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n expandedKeys: treeExpandedKeys,\n ...otherProps,\n fieldNames: treeFieldNames,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%' },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n checkedKeys: valueList,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n selectedKeys: valueList,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`, className);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName} style={style}>\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\" style={searchStyle}>\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n","import { fbaUtils } from '../fba-utils';\nimport { getTreeDataList } from './hooks';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper';\n\nexport type * from './tree-wrapper';\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = fbaUtils.attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\n});\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getTreeDataList","modelKey","getState","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","children","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","_tree$walkThroughTree","id","_tree","walkThroughTree","undefined","_parent","tileList","parentId","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","menuLayoutTypeNew","menuTriggerTypeNew","responseFirstRef","useRef","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","innerOperateValueRef","valueList","useEffectCustom","current","allValues","expandedKeys","getTreeExpandedKeys","Array","from","Set","concat","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","console","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","Boolean","allState","refresh","newTreeExpandedKeys","forEach","includes","targetList","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","treeItemDataAdapterHandle","dataItem","originalDataList","list","treeFilter","_node$fieldNames$labe","toLowerCase","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","titleDom","beforeStr","substring","afterStr","slice","_jsxs","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_extends3","_props$menuOptions3","_extends6","stringLabel","buttonOperateConfig","Fragment","ButtonOperate","gap","dropdownMenuProps","placement","isFixed","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends4","call","_extends5","getMenuOptions","DropdownMenuWrapper","menuList","_MoreOutlined","tile","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","checkedProps","onCheck","checkedKeys","selectedProps","onSelect","multiple","selectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps","fbaUtils","attachPropertiesToComponent","TreeWrapperInner"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -127,6 +127,7 @@ export interface DropdownMenuItem extends ButtonProps {
127
127
  }
128
128
  export interface DropdownMenuWrapperProps extends Omit<DropdownProps, "menu"> {
129
129
  menuList: Array<DropdownMenuItem | null>;
130
+ /** dropdown 设置弹框根节点在body下 */
130
131
  isFixed?: boolean;
131
132
  }
132
133
  /**
@@ -134,11 +135,14 @@ export interface DropdownMenuWrapperProps extends Omit<DropdownProps, "menu"> {
134
135
  * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能
135
136
  * @param props
136
137
  * @returns
138
+ * ```
139
+ * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下
140
+ * ```
137
141
  */
138
142
  export declare const DropdownMenuWrapper: (props: DropdownMenuWrapperProps) => JSX.Element;
139
143
  export interface ButtonOperateItem extends ButtonWrapperProps {
140
144
  hidden?: boolean;
141
- /** hover 提示文字 */
145
+ /** hover 提示文字,isFold=true无效 */
142
146
  hoverTips?: string | React.ReactElement;
143
147
  /** hover 提示类型 默认:'tooltip' */
144
148
  tipsType?: "popover" | "tooltip";
@@ -1980,7 +1984,7 @@ export type SelectorWrapperSearchProps = Omit<SelectProps, "onSearch" | "notFoun
1980
1984
  /**
1981
1985
  * 参数Key映射
1982
1986
  * ```
1983
- * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'
1987
+ * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如:'a.b.c'
1984
1988
  * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效
1985
1989
  * ```
1986
1990
  */
@@ -2010,6 +2014,7 @@ export type SelectorWrapperSearchProps = Omit<SelectProps, "onSearch" | "notFoun
2010
2014
  /** 交互文案配置 */
2011
2015
  requestMessageConfig?: TRequestStatusProps["messageConfig"];
2012
2016
  onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;
2017
+ customKeyword?: string;
2013
2018
  };
2014
2019
  /**
2015
2020
  * 选择器简单包装组件
@@ -2150,7 +2155,7 @@ export type SwitchConfirmWrapperProps = Omit<SwitchProps, "defaultChecked" | "on
2150
2155
  *
2151
2156
  * @description switch 切换时做二次pop提醒, 非可控组件【内部控制】
2152
2157
  * @param props
2153
- * @param value:初始值
2158
+ * @param value
2154
2159
  * @param checkedValue:选中状态值
2155
2160
  * @param unCheckedValue:非选中状态值
2156
2161
  * @param needConfirm:二次pop拦截时机 可不传 同 all close:switch 由开启转换成关闭时pop弹出、open:switch 由开启转换成开启时pop弹出all:switch 一直popnone:switch 不弹出
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.2.58",
3
+ "version": "4.2.59",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import e from"@ant-design/icons/es/icons/FullscreenOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as i}from"@wove/react/cjs/hooks";import{useKeyPress as o}from"ahooks";import{useState as t,useRef as s}from"react";import{fbaHooks as n}from"./fba-hooks/index.js";import{I as a}from"./icon-wrapper-ed5fcacc.js";import{R as l}from"./rich-text-editor-c8bac6d2.js";import{jsxs as c,jsx as u}from"react/jsx-runtime";var f=function f(m){var d=t(false),v=d[0],p=d[1];var b=s();o((function(){return true}),(function(e){if(e.type==="keyup"&&e.key==="Escape"&&v){p(false)}}),{events:["keydown","keyup"]});var k=i.useCallbackRef((function(){p(!v)}));var h=i.useCallbackRef((function(e,r){b.current=r;m.onInit==null?void 0:m.onInit(r)}));n.useEffectCustom((function(){var e;(e=b.current)==null?void 0:e.editorCommands.execCommand("mceAutoResize")}),[m.value]);return c("div",{className:r("fba-editor-viewer",{"fba-editor-viewer-fixed":v},m.className),style:m.style,children:[m.children,m.fullscreen&&m.value&&u("div",{className:"fba-editor-viewer-icon",children:u(a,{hoverTips:m.fullscreenIconTips,icon:u(e,{}),onClick:k})}),u(l,{value:'<div style="overflow: hidden">'+m.value+"</div>",onInit:h,imgPreview:true,disabled:true,init:{plugins:"autoresize",menubar:false,toolbar:"",statusbar:false}})]})};export{f as R};
3
- //# sourceMappingURL=rich-text-viewer-3bf4569a.js.map
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{_ as t,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{get as a}from"@dimjs/utils/cjs/get";import{Select as i,Button as s}from"antd";import{useState as l,useMemo as u}from"react";import{R as c}from"./request-status-03fc60e2.js";import{jsx as d}from"react/jsx-runtime";var f=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter"];var v=function v(m){var p=m.showAllOption,h=m.serviceConfig,g=m.onSelectorListChange,q=m.onSelectorRequestError,b=m.requestMessageConfig,C=m.fieldNames,R=m.onLabelRenderAdapter,y=t(m,f);var w=l("request-init"),j=w[0],S=w[1];var A=l(),k=A[0],L=A[1];var O=(C==null?void 0:C.label)||"label";var x=(C==null?void 0:C.value)||"value";var E=(C==null?void 0:C.disabled)||"disabled";var M=(C==null?void 0:C.searchKeyword)||"searchKeyword";var P=h.params;var B=u((function(){var e=p===true;if(p){return{label:e?"全部":p.label,value:e?"":p.value}}return null}),[p]);var I=function e(r){if(h.onRequestResultAdapter){return h.onRequestResultAdapter(r)}if(C!=null&&C.list){var t=a(r,C==null?void 0:C.list);return o(t)?t:[]}return o(r)?r:[]};var K=function e(r){return new Promise((function(e,t){var o,a,i;var s=function(){try{return e()}catch(e){return t(e)}};var l=function(e){try{S("request-error");q==null?void 0:q(e);return s()}catch(e){return t(e)}};try{S("request-progress");return Promise.resolve(h.onRequest==null?void 0:h.onRequest(n({},P,(o={},o[M]=r,o)))).then((function(e){try{a=e;i=I(a);g==null?void 0:g(i);if(O&&x){i=i.map((function(e){return n({},e,{label:e[O],value:e[x],disabled:e[E||"disabled"]})}))}i.forEach((function(e){if(R){e.label=R(e)}}));if(B){i.unshift(B)}L(i);S("request-success");return s()}catch(e){return l(e)}}),l)}catch(e){l(e)}}))};var N=r.useDebounceCallback((function(e){L([]);void K(e)}),300);var _=j==="request-progress";return d(i,n({showSearch:true,allowClear:true,dropdownMatchSelectWidth:false},y,{style:n({width:"100%"},m.style),options:k,filterOption:false,onSearch:N,notFoundContent:d(c,{status:j,loading:_,messageConfig:n({"request-init":"请输入搜索条件"},b),errorButton:d(s,{type:"primary",onClick:K,children:"重新获取数据"})}),suffixIcon:j==="request-error"?d(e,{spin:_,onClick:K}):undefined,loading:_}))};export{v as S};
3
- //# sourceMappingURL=selector-wrapper-search-dade1b6b.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selector-wrapper-search-dade1b6b.js","sources":["@flatbiz/antd/src/selector-wrapper-search/selector-wrapper-search.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select, SelectProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSearchServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSearchProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; searchKeyword?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSearchServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /** 通过服务获取数据异常回调 */\n onSelectorRequestError?: (error: Error) => void;\n /** 交互文案配置 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 只支持 search + 服务 功能\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSearch = (props: SelectorWrapperSearchProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n onLabelRenderAdapter,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const searchKeyword = fieldNames?.searchKeyword || 'searchKeyword';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n const result = get(respData, fieldNames?.list);\n return isArray(result) ? result : [];\n }\n return isArray(respData) ? respData : [];\n };\n\n const startDataSourceRequest = async (keyword) => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.({\n ...serviceParams,\n [searchKeyword]: keyword,\n });\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField || 'disabled'],\n };\n });\n }\n\n respAdapterData.forEach((item) => {\n if (onLabelRenderAdapter) {\n item.label = onLabelRenderAdapter(item);\n }\n });\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n const onSearch = hooks.useDebounceCallback((value: string) => {\n setDataSource([]);\n void startDataSourceRequest(value);\n }, 300);\n\n const loading = requestStatus === 'request-progress';\n return (\n <Select\n showSearch={true}\n allowClear={true}\n dropdownMatchSelectWidth={false}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n filterOption={false}\n onSearch={onSearch}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '请输入搜索条件',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSearch","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","searchKeyword","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","onRequestResultAdapter","list","result","_get","_isArray","startDataSourceRequest","keyword","Promise","$return","$error","_extends2","_respData","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","_extends","then","$await_2","map","item","forEach","unshift","onSearch","_hooks","useDebounceCallback","loading","_jsx","Select","showSearch","allowClear","dropdownMatchSelectWidth","style","width","options","filterOption","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{_ as e,a as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as n}from"@wove/react/cjs/hooks";import{message as o,Popconfirm as t,Switch as i}from"antd";import{useState as a,useMemo as u}from"react";import{jsx as l}from"react/jsx-runtime";var s=["popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage"];var c=function c(d){var f=d.popConfirmProps,v=d.needConfirm,h=d.checkedValue,m=d.unCheckedValue,p=d.onChange,g=d.value,C=d.serviceConfig,k=d.noMessage,b=e(d,s);var P=f||{},y=P.description,V=P.title,j=P.disabled;var R=a(g===h),q=R[0],w=R[1];var x=a(false),B=x[0],M=x[1];var _=u((function(){return v==="close"&&q||v==="open"&&!q||!v||v==="all"}),[q,v]);var E=n.useCallbackRef((function(){return new Promise((function(e,r){var n,t,i;n=!q?h:m;if(C!=null&&C.onRequest){var a=function(e){return function(n){try{M(false);return e&&e.call(this,n)}catch(e){return r(e)}}.bind(this)}.bind(this);var u=function(){try{return s.call(this)}catch(e){return r(e)}}.bind(this);var l=function(e){try{if(!k){void o.error((e==null?void 0:e.message)||(C==null?void 0:(i=C.message)==null?void 0:i.defaultError)||"状态修改失败!")}return a(u)()}catch(e){return a(r)(e)}};try{M(true);return Promise.resolve(C.onRequest(n)).then((function(e){try{w(!q);p==null?void 0:p(n);if(!k){void o.success((C==null?void 0:(t=C.message)==null?void 0:t.success)||"状态修改成功!")}return a(u)()}catch(e){return l(e)}}),l)}catch(e){l(e)}}else{w(!q);p==null?void 0:p(n);return s.call(this)}function s(){return e()}}))}));if(_){return l(t,{disabled:j,okButtonProps:{loading:B},title:V,description:y,onConfirm:E,children:l(i,r({checked:q},b))})}return l(i,r({checked:q,loading:B},b,{onChange:E}))};export{c as S};
3
- //# sourceMappingURL=switch-confirm-wrapper-4857f2a9.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch-confirm-wrapper-4857f2a9.js","sources":["@flatbiz/antd/src/switch-confirm-wrapper/switch-confirm-wrapper.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { message, Popconfirm, PopconfirmProps, Switch, SwitchProps } from 'antd';\nimport { useMemo, useState } from 'react';\n\nexport type SwitchConfirmWrapperValue = string | number | boolean;\nexport type SwitchConfirmWrapperProps = Omit<SwitchProps, 'defaultChecked' | 'onChange'> & {\n value?: SwitchConfirmWrapperValue;\n checkedValue: SwitchConfirmWrapperValue;\n unCheckedValue: SwitchConfirmWrapperValue;\n needConfirm?: 'close' | 'open' | 'all' | 'none';\n noMessage?: boolean;\n onChange?: (value: SwitchConfirmWrapperValue) => void;\n popConfirmProps?: Pick<PopconfirmProps, 'disabled' | 'title' | 'description'>;\n serviceConfig?: {\n onRequest: (value: SwitchConfirmWrapperValue) => TAny;\n message?: {\n success?: string;\n defaultError?: string;\n };\n };\n};\n\n/**\n *\n * @description switch 切换时做二次pop提醒, 非可控组件【内部控制】\n * @param props\n * @param value:初始值\n * @param checkedValue:选中状态值\n * @param unCheckedValue:非选中状态值\n * @param needConfirm:二次pop拦截时机 可不传 同 all close:switch 由开启转换成关闭时pop弹出、open:switch 由开启转换成开启时pop弹出all:switch 一直popnone:switch 不弹出\n * @param noMessage:不采用内置message提示\n * @param onChange:switch 有效切换回掉\n * @param popConfirmProps:popConfirm中参数 disabled title description\n * @param serviceConfig onRequest\n * @field onRequest 请求函数\n * @field message message配置 success defaultError\n * @returns RC\n */\nexport const SwitchConfirmWrapper = (props: SwitchConfirmWrapperProps) => {\n const {\n popConfirmProps,\n needConfirm,\n checkedValue,\n unCheckedValue,\n onChange,\n value,\n serviceConfig,\n noMessage,\n ...otherProps\n } = props;\n const { description, title, disabled } = popConfirmProps || {};\n const [isCheked, setIsCheked] = useState(value === checkedValue);\n const [loading, setLoading] = useState<boolean>(false);\n const showConfirm = useMemo(() => {\n return (\n (needConfirm === 'close' && isCheked) ||\n (needConfirm === 'open' && !isCheked) ||\n !needConfirm ||\n needConfirm === 'all'\n );\n }, [isCheked, needConfirm]);\n\n const onHandleChange = hooks.useCallbackRef(async () => {\n const changeValue = !isCheked ? checkedValue : unCheckedValue;\n if (serviceConfig?.onRequest) {\n try {\n setLoading(true);\n await serviceConfig.onRequest(changeValue);\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n if (!noMessage) {\n void message.success(serviceConfig?.message?.success || '状态修改成功!');\n }\n } catch (error) {\n if (!noMessage) {\n void message.error(error?.message || serviceConfig?.message?.defaultError || '状态修改失败!');\n }\n } finally {\n setLoading(false);\n }\n } else {\n setIsCheked(!isCheked);\n onChange?.(changeValue);\n }\n });\n if (showConfirm) {\n return (\n <Popconfirm\n disabled={disabled}\n okButtonProps={{ loading: loading }}\n title={title}\n description={description}\n onConfirm={onHandleChange}\n >\n <Switch checked={isCheked} {...otherProps} />\n </Popconfirm>\n );\n }\n return <Switch checked={isCheked} loading={loading} {...otherProps} onChange={onHandleChange} />;\n};\n"],"names":["SwitchConfirmWrapper","props","popConfirmProps","needConfirm","checkedValue","unCheckedValue","onChange","value","serviceConfig","noMessage","otherProps","_objectWithoutPropertiesLoose","_excluded","_ref","description","title","disabled","_useState","useState","isCheked","setIsCheked","_useState2","loading","setLoading","showConfirm","useMemo","onHandleChange","_hooks","useCallbackRef","Promise","$return","$error","changeValue","_serviceConfig$messag","_serviceConfig$messag2","onRequest","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","$Try_1_Post","$If_2","$Try_1_Catch","error","message","defaultError","resolve","then","$await_3","success","_jsx","Popconfirm","okButtonProps","onConfirm","children","Switch","_extends","checked"],"mappings":";6XAuCaA,EAAuB,SAAvBA,EAAwBC,GACnC,IACEC,EASED,EATFC,gBACAC,EAQEF,EARFE,YACAC,EAOEH,EAPFG,aACAC,EAMEJ,EANFI,eACAC,EAKEL,EALFK,SACAC,EAIEN,EAJFM,MACAC,EAGEP,EAHFO,cACAC,EAEER,EAFFQ,UACGC,EAAUC,EACXV,EAAKW,GACT,IAAAC,EAAyCX,GAAmB,CAAE,EAAtDY,EAAWD,EAAXC,YAAaC,EAAKF,EAALE,MAAOC,EAAQH,EAARG,SAC5B,IAAAC,EAAgCC,EAASX,IAAUH,GAA5Ce,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5B,IAAAI,EAA8BH,EAAkB,OAAzCI,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAMG,EAAcC,GAAQ,WAC1B,OACGtB,IAAgB,SAAWgB,GAC3BhB,IAAgB,SAAWgB,IAC3BhB,GACDA,IAAgB,KAEpB,GAAG,CAACgB,EAAUhB,IAEd,IAAMuB,EAAiBC,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACpCC,EAAuDC,EAAAC,EAAvDF,GAAeb,EAAWf,EAAeC,EAC/C,GAAIG,GAAa,MAAbA,EAAe2B,UAAW,CAAA,IAAAC,EAjElC,SAAAC,GAAA,OAAC,SAAAC,GAAD,IA+EQf,EAAW,OA/E4F,OAAOc,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAOV,EAAAU,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAR,IAAIG,EAAJ,WAAA,IAAI,OAAJC,EAAGL,KAAQC,KAAF,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,GAA/BC,KAAKF,MAAR,IAAIK,EAAA,SA0EWC,GA1Ef,IA2EQ,IAAKrC,EAAW,MACTsC,EAAQD,OAAMA,GAAAA,UAAAA,EAAAA,EAAOC,WAAWvC,gBAAa0B,EAAb1B,EAAeuC,UAAO,UAAA,EAAtBb,EAAwBc,eAAgB,UAC/E,CA7ER,OAAOZ,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAL,EAAAK,CAAAK,EAAM,GAkE5B,IACElB,EAAW,MACX,OAAAM,QAAAoB,QAAMzC,EAAc2B,UAAUH,IAA9BkB,eAA0CC,GApElD,IAqEQ/B,GAAaD,GACbb,GAAAA,UAAAA,EAAAA,EAAW0B,GACX,IAAKvB,EAAW,MACTsC,EAAQK,SAAQ5C,gBAAayB,EAAbzB,EAAeuC,UAAfd,UAAAA,EAAAA,EAAwBmB,UAAW,UAC1D,CAzER,OAAOhB,EAAAO,EAAAP,EAAE,CAAC,MAAAK,GAAW,OAAOI,EAAAJ,EAAM,CAAC,GAAAI,EA0E5B,CAAC,MAAOC,GAAOD,EAAPC,EAIT,CAGF,KAAO,CACL1B,GAAaD,GACbb,GAAAA,UAAAA,EAAAA,EAAW0B,GAAa,OAnF9BY,EAAGL,KAAQC,KAoFP,CAAC,SAAAI,IAAA,OAAAd,GAAA,CAAA,OAEH,GAAIN,EAAa,CACf,OACE6B,EAACC,EAAU,CACTtC,SAAUA,EACVuC,cAAe,CAAEjC,QAASA,GAC1BP,MAAOA,EACPD,YAAaA,EACb0C,UAAW9B,EAAe+B,SAE1BJ,EAACK,EAAMC,EAAA,CAACC,QAASzC,GAAcT,KAGrC,CACA,OAAO2C,EAACK,EAAMC,EAAA,CAACC,QAASzC,EAAUG,QAASA,GAAaZ,EAAU,CAAEJ,SAAUoB,IAChF"}