@flatbiz/antd 4.5.33 → 4.5.34

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":"index.js","sources":["@flatbiz/antd/src/label-value-render/utils.ts","@flatbiz/antd/src/label-value-render/label-value.tsx"],"sourcesContent":["import { arrayTotal } from '@flatbiz/utils';\nimport { TLabelValueRenderItem } from './types';\n\nexport const getRenderGrid = (dataList: TLabelValueRenderItem[]) => {\n let results: TLabelValueRenderItem[][] = [];\n\n let currentSum = 0;\n let currentArr: TLabelValueRenderItem[] = [];\n for (let i = 0; i < dataList.length; i++) {\n const item = dataList[i];\n const grid = item.grid;\n const temp = {\n ...item,\n grid: grid,\n } as TLabelValueRenderItem;\n if (currentSum + grid <= 24 && grid > 0) {\n currentSum += grid;\n currentArr.push(temp);\n } else {\n results.push(currentArr);\n currentSum = grid;\n currentArr = [temp];\n }\n }\n\n if (currentArr.length > 0) {\n results.push(currentArr);\n }\n if (results.length > 0) {\n results = results.map((item, index) => {\n if (item.length === 1) {\n item[0].grid = 24;\n } else {\n const total = arrayTotal(item, 'grid');\n const lastItem = item[item.length - 1];\n if (total < 24) {\n lastItem.grid = 24 - total + lastItem.grid;\n }\n }\n if (index === results.length - 1) {\n return item.map((temp) => {\n temp.isLast = true;\n return temp;\n });\n }\n return item;\n });\n }\n\n let resultsFt: TLabelValueRenderItem[] = [];\n results.forEach((item) => {\n resultsFt = resultsFt.concat(item);\n });\n return resultsFt;\n};\n","import { classNames } from '@dimjs/utils';\nimport { CSSProperties, ReactElement, useMemo, useState } from 'react';\n\nimport { isNumber, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { BoxGrid } from '../box-grid';\nimport { TBoxBreakpoint } from '../box-grid/type';\nimport { fbaHooks } from '../fba-hooks';\nimport { TextOverflow } from '../text-overflow';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper } from '../tips-wrapper';\nimport './style.less';\nimport { TLabelValueItem, TLabelValueRenderItem } from './types';\nimport { getRenderGrid } from './utils';\n\nexport type LabelValueRenderProps = {\n className?: string;\n style?: CSSProperties;\n /**\n * 定义一行显示几列, 默认值:4\n * ```\n * 1. label+value 一组为一列\n * 2. 当外层宽度尺寸大于 992px(lg) 时,一行显示几列\n * 3. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响,响应式布局\n * 4. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 5. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4 | 6;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4 | 6;\n /** 数据源配置 */\n options: TLabelValueItem[];\n /**\n * 超过宽度将自动省略,默认值:true\n * ```\n * 1. 当 direction = vertical时,强制为true\n * ```\n */\n ellipsis?: boolean;\n /**\n * 是否添加边框\n * @deprecated 已过期,请使用 bordered\n */\n border?: boolean;\n /** 是否添加边框 */\n bordered?: boolean;\n /** label对齐方式 */\n labelAlign?: 'left' | 'right' | 'center';\n /** label 宽度,默认值:100 */\n labelWidth?: number | 'auto';\n width?: number;\n /** label 样式 */\n labelStyle?: CSSProperties;\n /** value 样式 */\n valueStyle?: CSSProperties;\n\n size?: 'default' | 'small';\n /**\n * label&value 方向布局\n * ```\n * 1. auto表示当响应式为xs(小屏幕)时为vertical,其他情况为horizontal\n * ```\n */\n direction?: 'vertical' | 'horizontal' | 'auto';\n /**\n * 网格布局间距,默认值:[10, 0]\n * ```\n * 1. border = true 无效\n * ```\n */\n gutter?: [number, number];\n};\n\n/**\n * label+value 列表布局\n * ```\n * 1. 可设置超出隐藏、必填标识、设置隐藏、添加说明标签等功能\n * 2. 可自定义设置占用网格列数\n * 3. 内置响应式布局\n * ```\n */\nexport const LabelValueRender = (props: LabelValueRenderProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [breakpoint, setBreakpoint] = useState<TBoxBreakpoint>();\n\n const {\n column,\n forceColumn,\n labelAlign,\n labelWidth,\n options,\n border,\n bordered,\n width,\n size = 'default',\n direction = 'auto',\n gutter,\n } = props;\n\n const columnNew = column && [1, 2, 3, 4, 6].includes(column) ? column : 4;\n\n const borderedNew = !isUndefinedOrNull(bordered) ? bordered : border;\n\n const directionNew = useMemo(() => {\n if (direction === 'horizontal' || direction === 'vertical') return direction;\n if (screenType === 'xs' || breakpoint === 'xs') return 'vertical';\n return 'horizontal';\n }, [breakpoint, direction, screenType]);\n\n const ellipsis = useMemo(() => {\n if (directionNew === 'vertical') return true;\n return isUndefinedOrNull(props.ellipsis) ? true : props.ellipsis;\n }, [directionNew, props.ellipsis]);\n\n const labelWidthNew = labelWidth ? (isNumber(labelWidth) ? `${labelWidth}px` : labelWidth) : '100px';\n\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },\n };\n return columnMap[columnNew];\n }, [columnNew, forceColumn]);\n\n const renderList = useMemo(() => {\n if (!breakpoint) return undefined;\n const dataListNew: TLabelValueRenderItem[] = [];\n options.forEach((item) => {\n if (!item.hidden) {\n let grid: number | undefined = undefined;\n if (item.span) {\n const itemSpan = item.span > columnNew ? columnNew : item.span;\n grid = itemSpan * (24 / columnNew);\n if (breakpoint === 'xs') {\n grid = 24;\n } else if (breakpoint === 'sm') {\n grid = grid > 12 ? grid : 12;\n }\n }\n dataListNew.push({\n ...item,\n grid: grid ? grid : gridSize[breakpoint],\n });\n }\n });\n return getRenderGrid(dataListNew.filter(Boolean));\n }, [breakpoint, columnNew, gridSize, options]);\n\n const colon = borderedNew ? '' : ':';\n\n const getFormRowChildren = () => {\n return renderList\n ?.map((item, index) => {\n const ellipsisFt =\n directionNew === 'vertical' ? true : isUndefinedOrNull(item.ellipsis) ? ellipsis : item.ellipsis;\n\n let labelContent: ReactElement | string = `${item.label}${colon}`;\n\n if (item.tips && ellipsisFt) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n <TextOverflow text={labelContent as unknown as string} hideTip={item.hideTip} />\n </TipsWrapper>\n );\n } else if (item.tips) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n {labelContent}\n </TipsWrapper>\n );\n } else if (ellipsisFt) {\n labelContent = <TextOverflow text={labelContent as unknown as string} hideTip={item.hideTip} />;\n }\n\n return (\n <BoxGrid.Col\n key={index}\n {...gridSize}\n span={item.grid}\n className={classNames('label-value-tr', {\n 'label-value-last-tr': item.isLast,\n })}\n >\n <span className=\"label-value-label\" style={props.labelStyle}>\n {item.required ? <TextSymbolWrapper text={labelContent} symbolType=\"required\" /> : labelContent}\n </span>\n {ellipsisFt && !item.valueNoWrapper ? (\n <span className=\"label-value-value\" style={props.valueStyle} onClick={item.onClick}>\n <TextOverflow text={item.value as string} onClick={item.onClick} hideTip={item.hideTip} />\n </span>\n ) : (\n <span\n className=\"label-value-value\"\n style={{\n wordBreak: 'break-all',\n ...props.valueStyle,\n }}\n >\n {item.onClick ? <a onClick={item.onClick}>{item.value}</a> : item.value}\n </span>\n )}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const onBoxBreakpointChange = hooks.useCallbackRef((breakpoint: TBoxBreakpoint) => {\n setBreakpoint(breakpoint);\n });\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType, width]);\n\n const align = (function () {\n if (labelAlign) return labelAlign;\n if (borderedNew) return 'left';\n if (directionNew === 'horizontal') return 'right';\n return 'left';\n })();\n\n return (\n <BoxGrid.Row\n style={\n {\n ...innerStyle,\n ...props.style,\n '--lvr-label-width': directionNew === 'horizontal' ? labelWidthNew : undefined,\n } as TAny\n }\n className={classNames(\n 'label-value-render',\n `lvr-${directionNew}`,\n `lvr-size-${size}`,\n `lvr-label-${align}`,\n { 'lvr-border': borderedNew },\n props.className,\n )}\n gutter={borderedNew ? [0, 0] : gutter || [10, 0]}\n onBoxBreakpointChange={onBoxBreakpointChange}\n >\n {getFormRowChildren()}\n </BoxGrid.Row>\n );\n};\n"],"names":["getRenderGrid","dataList","results","currentSum","currentArr","i","length","item","grid","temp","_extends","push","map","index","total","arrayTotal","lastItem","isLast","resultsFt","forEach","concat","LabelValueRender","props","screenType","fbaHooks","useResponsivePoint","_useState","useState","breakpoint","setBreakpoint","column","forceColumn","labelAlign","labelWidth","options","border","bordered","width","_props$size","size","_props$direction","direction","gutter","columnNew","includes","borderedNew","isUndefinedOrNull","directionNew","useMemo","ellipsis","labelWidthNew","isNumber","gridSize","num","xs","sm","md","lg","xl","xxl","columnMap","renderList","undefined","dataListNew","hidden","span","itemSpan","filter","Boolean","colon","getFormRowChildren","ellipsisFt","labelContent","label","tips","_jsx","TipsWrapper","tipType","tooltipProps","title","children","TextOverflow","text","hideTip","_jsxs","BoxGrid","Col","className","_classNames","style","labelStyle","required","TextSymbolWrapper","symbolType","valueNoWrapper","valueStyle","onClick","value","wordBreak","onBoxBreakpointChange","_hooks","useCallbackRef","innerStyle","align","Row"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-render/utils.ts","@flatbiz/antd/src/label-value-render/label-value.tsx"],"sourcesContent":["import { arrayTotal } from '@flatbiz/utils';\nimport { TLabelValueRenderItem } from './types';\n\nexport const getRenderGrid = (dataList: TLabelValueRenderItem[]) => {\n let results: TLabelValueRenderItem[][] = [];\n\n let currentSum = 0;\n let currentArr: TLabelValueRenderItem[] = [];\n for (let i = 0; i < dataList.length; i++) {\n const item = dataList[i];\n const grid = item.grid;\n const temp = {\n ...item,\n grid: grid,\n } as TLabelValueRenderItem;\n if (currentSum + grid <= 24 && grid > 0) {\n currentSum += grid;\n currentArr.push(temp);\n } else {\n results.push(currentArr);\n currentSum = grid;\n currentArr = [temp];\n }\n }\n\n if (currentArr.length > 0) {\n results.push(currentArr);\n }\n if (results.length > 0) {\n results = results.map((item, index) => {\n if (item.length === 1) {\n item[0].grid = 24;\n } else {\n const total = arrayTotal(item, 'grid');\n const lastItem = item[item.length - 1];\n if (total < 24) {\n lastItem.grid = 24 - total + lastItem.grid;\n }\n }\n if (index === results.length - 1) {\n return item.map((temp) => {\n temp.isLast = true;\n return temp;\n });\n }\n return item;\n });\n }\n\n let resultsFt: TLabelValueRenderItem[] = [];\n results.forEach((item) => {\n resultsFt = resultsFt.concat(item);\n });\n return resultsFt;\n};\n","import { classNames } from '@dimjs/utils';\nimport { CSSProperties, ReactElement, useMemo, useState } from 'react';\n\nimport { isNumber, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { BoxGrid } from '../box-grid';\nimport { TBoxBreakpoint } from '../box-grid/type';\nimport { fbaHooks } from '../fba-hooks';\nimport { TextOverflow } from '../text-overflow';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper } from '../tips-wrapper';\nimport './style.less';\nimport { TLabelValueItem, TLabelValueRenderItem } from './types';\nimport { getRenderGrid } from './utils';\n\nexport type LabelValueRenderProps = {\n className?: string;\n style?: CSSProperties;\n /**\n * 定义一行显示几列, 默认值:4\n * ```\n * 1. label+value 一组为一列\n * 2. 当外层宽度尺寸大于 992px(lg) 时,一行显示几列\n * 3. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响,响应式布局\n * 4. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 5. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4 | 6;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4 | 6;\n /** 数据源配置 */\n options: TLabelValueItem[];\n /**\n * 超过宽度将自动省略,默认值:true\n * ```\n * 1. 当 direction = vertical时,强制为true\n * ```\n */\n ellipsis?: boolean;\n /**\n * 是否添加边框\n * @deprecated 已过期,请使用 bordered\n */\n border?: boolean;\n /** 是否添加边框 */\n bordered?: boolean;\n /** label对齐方式 */\n labelAlign?: 'left' | 'right' | 'center';\n /** label 宽度,默认值:100 */\n labelWidth?: number | 'auto';\n width?: number;\n /** label 样式 */\n labelStyle?: CSSProperties;\n /** value 样式 */\n valueStyle?: CSSProperties;\n\n size?: 'default' | 'small';\n /**\n * label&value 方向布局\n * ```\n * 1. auto表示当响应式为xs(小屏幕)时为vertical,其他情况为horizontal\n * ```\n */\n direction?: 'vertical' | 'horizontal' | 'auto';\n /**\n * 网格布局间距,默认值:[10, 0]\n * ```\n * 1. border = true 无效\n * ```\n */\n gutter?: [number, number];\n\n /** 隐藏 value hover效果 */\n hiddenValueHover?: boolean;\n};\n\n/**\n * label+value 列表布局\n * ```\n * 1. 可设置超出隐藏、必填标识、设置隐藏、添加说明标签等功能\n * 2. 可自定义设置占用网格列数\n * 3. 内置响应式布局\n * ```\n */\nexport const LabelValueRender = (props: LabelValueRenderProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [breakpoint, setBreakpoint] = useState<TBoxBreakpoint>();\n\n const {\n column,\n forceColumn,\n labelAlign,\n labelWidth,\n options,\n border,\n bordered,\n width,\n size = 'default',\n direction = 'auto',\n gutter,\n hiddenValueHover,\n } = props;\n\n const columnNew = column && [1, 2, 3, 4, 6].includes(column) ? column : 4;\n\n const borderedNew = !isUndefinedOrNull(bordered) ? bordered : border;\n\n const directionNew = useMemo(() => {\n if (direction === 'horizontal' || direction === 'vertical') return direction;\n if (screenType === 'xs' || breakpoint === 'xs') return 'vertical';\n return 'horizontal';\n }, [breakpoint, direction, screenType]);\n\n const ellipsis = useMemo(() => {\n if (directionNew === 'vertical') return true;\n return isUndefinedOrNull(props.ellipsis) ? true : props.ellipsis;\n }, [directionNew, props.ellipsis]);\n\n const labelWidthNew = labelWidth ? (isNumber(labelWidth) ? `${labelWidth}px` : labelWidth) : '100px';\n\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },\n };\n return columnMap[columnNew];\n }, [columnNew, forceColumn]);\n\n const renderList = useMemo(() => {\n if (!breakpoint) return undefined;\n const dataListNew: TLabelValueRenderItem[] = [];\n options.forEach((item) => {\n if (!item.hidden) {\n let grid: number | undefined = undefined;\n if (item.span) {\n const itemSpan = item.span > columnNew ? columnNew : item.span;\n grid = itemSpan * (24 / columnNew);\n if (breakpoint === 'xs') {\n grid = 24;\n } else if (breakpoint === 'sm') {\n grid = grid > 12 ? grid : 12;\n }\n }\n dataListNew.push({\n ...item,\n grid: grid ? grid : gridSize[breakpoint],\n });\n }\n });\n return getRenderGrid(dataListNew.filter(Boolean));\n }, [breakpoint, columnNew, gridSize, options]);\n\n const colon = borderedNew ? '' : ':';\n\n const getFormRowChildren = () => {\n return renderList\n ?.map((item, index) => {\n const ellipsisFt =\n directionNew === 'vertical' ? true : isUndefinedOrNull(item.ellipsis) ? ellipsis : item.ellipsis;\n\n let labelContent: ReactElement | string = `${item.label}${colon}`;\n\n if (item.tips && ellipsisFt) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n <TextOverflow text={labelContent as unknown as string} hideTip={item.hideTip} />\n </TipsWrapper>\n );\n } else if (item.tips) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n {labelContent}\n </TipsWrapper>\n );\n } else if (ellipsisFt) {\n labelContent = <TextOverflow text={labelContent as unknown as string} hideTip={item.hideTip} />;\n }\n\n return (\n <BoxGrid.Col\n key={index}\n {...gridSize}\n span={item.grid}\n className={classNames('label-value-tr', {\n 'label-value-last-tr': item.isLast,\n })}\n >\n <span className=\"label-value-label\" style={props.labelStyle}>\n {item.required ? <TextSymbolWrapper text={labelContent} symbolType=\"required\" /> : labelContent}\n </span>\n {ellipsisFt && !item.valueNoWrapper ? (\n <span className=\"label-value-value\" style={props.valueStyle} onClick={item.onClick}>\n <TextOverflow text={item.value as string} onClick={item.onClick} hideTip={item.hideTip} />\n </span>\n ) : (\n <span\n className=\"label-value-value\"\n style={{\n wordBreak: 'break-all',\n ...props.valueStyle,\n }}\n >\n {item.onClick ? <a onClick={item.onClick}>{item.value}</a> : item.value}\n </span>\n )}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const onBoxBreakpointChange = hooks.useCallbackRef((breakpoint: TBoxBreakpoint) => {\n setBreakpoint(breakpoint);\n });\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType, width]);\n\n const align = (function () {\n if (labelAlign) return labelAlign;\n if (borderedNew) return 'left';\n if (directionNew === 'horizontal') return 'right';\n return 'left';\n })();\n\n return (\n <BoxGrid.Row\n style={\n {\n ...innerStyle,\n ...props.style,\n '--lvr-label-width': directionNew === 'horizontal' ? labelWidthNew : undefined,\n } as TAny\n }\n className={classNames(\n 'label-value-render',\n `lvr-${directionNew}`,\n `lvr-size-${size}`,\n `lvr-label-${align}`,\n { 'lvr-border': borderedNew },\n { 'lvr-hidden-hover': hiddenValueHover },\n props.className,\n )}\n gutter={borderedNew ? [0, 0] : gutter || [10, 0]}\n onBoxBreakpointChange={onBoxBreakpointChange}\n >\n {getFormRowChildren()}\n </BoxGrid.Row>\n );\n};\n"],"names":["getRenderGrid","dataList","results","currentSum","currentArr","i","length","item","grid","temp","_extends","push","map","index","total","arrayTotal","lastItem","isLast","resultsFt","forEach","concat","LabelValueRender","props","screenType","fbaHooks","useResponsivePoint","_useState","useState","breakpoint","setBreakpoint","column","forceColumn","labelAlign","labelWidth","options","border","bordered","width","_props$size","size","_props$direction","direction","gutter","hiddenValueHover","columnNew","includes","borderedNew","isUndefinedOrNull","directionNew","useMemo","ellipsis","labelWidthNew","isNumber","gridSize","num","xs","sm","md","lg","xl","xxl","columnMap","renderList","undefined","dataListNew","hidden","span","itemSpan","filter","Boolean","colon","getFormRowChildren","ellipsisFt","labelContent","label","tips","_jsx","TipsWrapper","tipType","tooltipProps","title","children","TextOverflow","text","hideTip","_jsxs","BoxGrid","Col","className","_classNames","style","labelStyle","required","TextSymbolWrapper","symbolType","valueNoWrapper","valueStyle","onClick","value","wordBreak","onBoxBreakpointChange","_hooks","useCallbackRef","innerStyle","align","Row"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{valueIsEqual as n}from"@flatbiz/utils";import{Space as e,Radio as r}from"antd";import{jsx as t}from"react/jsx-runtime";var a=function a(i){var u=function n(e){return new Promise((function(n,r){var t;t=e.target.value;if(i.onPreChange){return Promise.resolve(i.onPreChange(t)).then(function(n){try{return a.call(this)}catch(n){return r(n)}}.bind(this),r)}function a(){i.onChange==null?void 0:i.onChange(t);return n()}return a.call(this)}))};var o=function e(r){if(!i.isCancel)return;var t=r.target.value;if(n(i.value,t)){i.onChange==null?void 0:i.onChange(undefined)}};return t(e,{size:5,wrap:true,children:i.options.map((function(n){return t(r,{value:n.value,onClick:o,checked:i.value===n.value,onChange:u,disabled:i.disabled||n.disabled,children:n.label},String(n.value))}))})};export{a as RadioGroupWrapper};
4
+ import{valueIsEqual as n}from"@flatbiz/utils";import{Space as e,Radio as r}from"antd";import{jsx as t}from"react/jsx-runtime";var i=function i(a){var o=function n(e){return new Promise((function(n,r){var t;t=e.target.value;if(a.onPreChange){return Promise.resolve(a.onPreChange(t)).then(function(n){try{return i.call(this)}catch(n){return r(n)}}.bind(this),r)}function i(){a.onChange==null?void 0:a.onChange(t);return n()}return i.call(this)}))};var u=function e(r){if(!a.isCancel)return;var t=r.target.value;if(n(a.value,t)){a.onChange==null?void 0:a.onChange(undefined)}};return t(e,{size:5,wrap:true,direction:a.direction,children:a.options.map((function(n){return t(r,{value:n.value,onClick:u,checked:a.value===n.value,onChange:o,disabled:a.disabled||n.disabled,children:n.label},String(n.value))}))})};export{i as RadioGroupWrapper};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/radio-group-wrapper/radio-group-wrapper.tsx"],"sourcesContent":["import { valueIsEqual } from '@flatbiz/utils';\nimport { Radio, Space } from 'antd';\nimport { ReactElement } from 'react';\n\nexport type RadioGroupWrapperValue = string | number | boolean;\n\nexport type RadioGroupWrapperOptionItem = {\n label: string | ReactElement;\n value: RadioGroupWrapperValue;\n disabled?: boolean;\n};\n\nexport type CustomRadioGroupProps = {\n value?: RadioGroupWrapperValue;\n onChange?: (value?: RadioGroupWrapperValue) => void;\n onPreChange?: (value?: RadioGroupWrapperValue) => Promise<void>;\n options: RadioGroupWrapperOptionItem[];\n /** 是否可取消选中,默认:false */\n isCancel?: boolean;\n disabled?: boolean;\n};\n\n/**\n * RadioGroupWrapper 为了解决 RadioGroup 组件不能取消选中问题\n * @param props\n * @returns\n */\nexport const RadioGroupWrapper = (props: CustomRadioGroupProps) => {\n const onChange = async (event) => {\n const value = event.target.value;\n if (props.onPreChange) {\n await props.onPreChange(value);\n }\n props.onChange?.(value);\n };\n const onClick = (event) => {\n if (!props.isCancel) return;\n const value = event.target.value;\n if (valueIsEqual(props.value, value)) {\n props.onChange?.(undefined);\n }\n };\n return (\n <Space size={5} wrap={true}>\n {props.options.map((item) => {\n return (\n <Radio\n value={item.value}\n onClick={onClick}\n checked={props.value === item.value}\n key={String(item.value)}\n onChange={onChange}\n disabled={props.disabled || item.disabled}\n >\n {item.label}\n </Radio>\n );\n })}\n </Space>\n );\n};\n"],"names":["RadioGroupWrapper","props","onChange","event","Promise","$return","$error","value","target","onPreChange","resolve","then","$await_2","$If_1","call","this","$boundEx","bind","onClick","isCancel","valueIsEqual","undefined","_jsx","Space","size","wrap","children","options","map","item","Radio","checked","disabled","label","String"],"mappings":";kIA2BaA,EAAoB,SAApBA,EAAqBC,GAChC,IAAMC,EAAW,SAAXA,EAAkBC,GAAP,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACTC,EAAAA,EAAQJ,EAAMK,OAAOD,MAC3B,GAAIN,EAAMQ,YAAa,CACrB,OAAAL,QAAAM,QAAMT,EAAMQ,YAAYF,IAAxBI,KA/BN,SAAAC,GAAA,IAAI,OAAJC,EAAGC,KAAIC,KAAE,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,CAAC,EAAhCC,KAAKF,MAAKT,EAgCT,CAAC,SAAAO,IACDZ,EAAMC,UAAND,UAAAA,EAAAA,EAAMC,SAAWK,GAAO,OAAAF,GAAA,CAAA,OAjC5BQ,EAAGC,KAAIC,KAAI,GAkCR,EACD,IAAMG,EAAU,SAAVA,EAAWf,GACf,IAAKF,EAAMkB,SAAU,OACrB,IAAMZ,EAAQJ,EAAMK,OAAOD,MAC3B,GAAIa,EAAanB,EAAMM,MAAOA,GAAQ,CACpCN,EAAMC,UAAND,UAAAA,EAAAA,EAAMC,SAAWmB,UACnB,GAEF,OACEC,EAACC,EAAK,CAACC,KAAM,EAAGC,KAAM,KAAKC,SACxBzB,EAAM0B,QAAQC,KAAI,SAACC,GAClB,OACEP,EAACQ,EAAK,CACJvB,MAAOsB,EAAKtB,MACZW,QAASA,EACTa,QAAS9B,EAAMM,QAAUsB,EAAKtB,MAE9BL,SAAUA,EACV8B,SAAU/B,EAAM+B,UAAYH,EAAKG,SAASN,SAEzCG,EAAKI,OAJDC,OAAOL,EAAKtB,YAU7B"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/radio-group-wrapper/radio-group-wrapper.tsx"],"sourcesContent":["import { valueIsEqual } from '@flatbiz/utils';\nimport { Radio, Space } from 'antd';\nimport { ReactElement } from 'react';\n\nexport type RadioGroupWrapperValue = string | number | boolean;\n\nexport type RadioGroupWrapperOptionItem = {\n label: string | ReactElement;\n value: RadioGroupWrapperValue;\n disabled?: boolean;\n};\n\nexport type CustomRadioGroupProps = {\n value?: RadioGroupWrapperValue;\n onChange?: (value?: RadioGroupWrapperValue) => void;\n onPreChange?: (value?: RadioGroupWrapperValue) => Promise<void>;\n options: RadioGroupWrapperOptionItem[];\n /** 是否可取消选中,默认:false */\n isCancel?: boolean;\n disabled?: boolean;\n /**方向,默认值 horizontal */\n direction?: 'horizontal' | 'vertical';\n};\n\n/**\n * RadioGroupWrapper 为了解决 RadioGroup 组件不能取消选中问题\n * @param props\n * @returns\n */\nexport const RadioGroupWrapper = (props: CustomRadioGroupProps) => {\n const onChange = async (event) => {\n const value = event.target.value;\n if (props.onPreChange) {\n await props.onPreChange(value);\n }\n props.onChange?.(value);\n };\n const onClick = (event) => {\n if (!props.isCancel) return;\n const value = event.target.value;\n if (valueIsEqual(props.value, value)) {\n props.onChange?.(undefined);\n }\n };\n return (\n <Space size={5} wrap={true} direction={props.direction}>\n {props.options.map((item) => {\n return (\n <Radio\n value={item.value}\n onClick={onClick}\n checked={props.value === item.value}\n key={String(item.value)}\n onChange={onChange}\n disabled={props.disabled || item.disabled}\n >\n {item.label}\n </Radio>\n );\n })}\n </Space>\n );\n};\n"],"names":["RadioGroupWrapper","props","onChange","event","Promise","$return","$error","value","target","onPreChange","resolve","then","$await_2","$If_1","call","this","$boundEx","bind","onClick","isCancel","valueIsEqual","undefined","_jsx","Space","size","wrap","direction","children","options","map","item","Radio","checked","disabled","label","String"],"mappings":";kIA6BaA,EAAoB,SAApBA,EAAqBC,GAChC,IAAMC,EAAW,SAAXA,EAAkBC,GAAP,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IACTC,EAAAA,EAAQJ,EAAMK,OAAOD,MAC3B,GAAIN,EAAMQ,YAAa,CACrB,OAAAL,QAAAM,QAAMT,EAAMQ,YAAYF,IAAxBI,KAjCN,SAAAC,GAAA,IAAI,OAAJC,EAAGC,KAAIC,KAAE,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,CAAC,EAAhCC,KAAKF,MAAKT,EAkCT,CAAC,SAAAO,IACDZ,EAAMC,UAAND,UAAAA,EAAAA,EAAMC,SAAWK,GAAO,OAAAF,GAAA,CAAA,OAnC5BQ,EAAGC,KAAIC,KAAI,GAoCR,EACD,IAAMG,EAAU,SAAVA,EAAWf,GACf,IAAKF,EAAMkB,SAAU,OACrB,IAAMZ,EAAQJ,EAAMK,OAAOD,MAC3B,GAAIa,EAAanB,EAAMM,MAAOA,GAAQ,CACpCN,EAAMC,UAAND,UAAAA,EAAAA,EAAMC,SAAWmB,UACnB,GAEF,OACEC,EAACC,EAAK,CAACC,KAAM,EAAGC,KAAM,KAAMC,UAAWzB,EAAMyB,UAAUC,SACpD1B,EAAM2B,QAAQC,KAAI,SAACC,GAClB,OACER,EAACS,EAAK,CACJxB,MAAOuB,EAAKvB,MACZW,QAASA,EACTc,QAAS/B,EAAMM,QAAUuB,EAAKvB,MAE9BL,SAAUA,EACV+B,SAAUhC,EAAMgC,UAAYH,EAAKG,SAASN,SAEzCG,EAAKI,OAJDC,OAAOL,EAAKvB,YAU7B"}
@@ -1 +1 @@
1
- .num-ff{font-family:var(--v-font-family-number)}p,ul{margin:0;padding:0}.hide{display:none}.clear-fix:after{clear:both;content:" ";display:block;font-size:0;height:0;visibility:hidden}.ant-btn-variant-dashed:disabled,.ant-btn-variant-link:disabled,.ant-btn-variant-solid:disabled,.ant-checkbox-disabled+span,.ant-input-number-outlined.ant-input-number-disabled,.ant-input[disabled],.ant-radio-wrapper-disabled,.ant-select-multiple.ant-select-disabled .ant-select-selection-item,.ant-select-outlined.ant-select-disabled:not(.ant-select-customize-input) .ant-select-selector{color:rgba(0,0,0,.6)!important}.ant-radio-disabled .ant-radio-inner:after{background-color:rgba(0,0,0,.5)!important}.ant-checkbox-disabled .ant-checkbox-inner:after{border-color:rgba(0,0,0,.6)!important}
1
+ .num-ff{font-family:var(--v-font-family-number)}p,ul{margin:0;padding:0}.hide{display:none}.clear-fix:after{clear:both;content:" ";display:block;font-size:0;height:0;visibility:hidden}.ant-btn-variant-dashed:disabled,.ant-btn-variant-link:disabled,.ant-btn-variant-solid:disabled,.ant-checkbox-disabled+span,.ant-input-number-outlined.ant-input-number-disabled,.ant-input[disabled],.ant-radio-wrapper-disabled,.ant-select-multiple.ant-select-disabled .ant-select-selection-item,.ant-select-outlined.ant-select-disabled:not(.ant-select-customize-input) .ant-select-selector{color:rgba(0,0,0,.8)!important}.ant-radio-disabled .ant-radio-inner:after{background-color:rgba(0,0,0,.5)!important}.ant-checkbox-disabled .ant-checkbox-inner:after{border-color:rgba(0,0,0,.6)!important}
@@ -0,0 +1 @@
1
+ .tabs-sticky-contents>.ant-tabs-nav{display:none}
@@ -0,0 +1,5 @@
1
+ /* eslint-disable */
2
+ import './index.css';
3
+ /*! @flatjs/forge MIT @flatbiz/antd */
4
+ import{_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSize as e}from"ahooks";import{Affix as t,Tabs as n}from"antd";import{useState as i,useRef as l,useEffect as o,useMemo as a}from"react";import{jsx as c,jsxs as v}from"react/jsx-runtime";var u=function u(s){var f=s.tabsProps;var d=i(f.defaultActiveKey),h=d[0],m=d[1];var p=l(null);var g=l(null);var y=l();var b=e(p);var K=l(null);var T=e(K);var k=e(g);o((function(){if(f.activeKey){m(f.activeKey)}}),[f.activeKey]);var C=function r(e){if(!f.activeKey){m(e)}f.onChange==null?void 0:f.onChange(e);var t=(b==null?void 0:b.height)||0;if(y.current){var n;(n=K.current)==null?void 0:n.scrollTo({top:t})}else{if(s.clickTabToTop!==false){var i;(i=K.current)==null?void 0:i.scrollTo({top:t})}}};var B=((T==null?void 0:T.height)||0)-((k==null?void 0:k.height)||0);var j=a((function(){var e;return(e=f.items)==null?void 0:e.map((function(e){return r({},e,{children:null})}))}),[f.items]);var x=a((function(){var e;return(e=f.items)==null?void 0:e.map((function(e){return r({},e,{children:c("div",{style:{minHeight:B},children:e.children})})}))}),[f.items,B]);return v("div",{ref:K,style:{height:"100%",overflowY:"auto"},children:[c("div",{ref:p,children:s.headerRender}),c(t,{offsetTop:0,target:function r(){return K.current},onChange:function r(e){y.current=e},children:c("div",{ref:g,children:c(n,r({},f,{activeKey:h,items:j,tabBarStyle:r({},f.tabBarStyle,{margin:0}),style:r({backgroundColor:"var(--block-bg-color)"},f.style),onChange:C}))})}),c(n,{activeKey:h,className:"tabs-sticky-contents",items:x})]})};export{u as TabsSticky};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tabs-sticky/tabs.tsx"],"sourcesContent":["import { useSize } from 'ahooks';\nimport { Affix, Tabs, type TabsProps } from 'antd';\nimport { useEffect, useMemo, useRef, useState, type ReactElement } from 'react';\nimport './style.less';\n\nexport type TabsStickyProps = {\n tabsProps: TabsProps;\n /** tabs头部布局 */\n headerRender?: ReactElement;\n /** 点击tabItem后,tab跳到顶部吸顶效果;默认值true */\n clickTabToTop?: boolean;\n};\n\n/**\n * Tabs吸顶组件\n * ```\n * 1. 组件根节点设置了 height: 100%、overflow: auto;所以外部包裹元素必须要有高度\n * ```\n */\nexport const TabsSticky = (props: TabsStickyProps) => {\n const tabsProps = props.tabsProps;\n\n const [activeKey, setActiveKey] = useState(tabsProps.defaultActiveKey);\n const headerRef = useRef<HTMLDivElement>(null);\n const affixRef = useRef<any>(null);\n const affixedFlagRef = useRef<boolean>();\n\n const headerSize = useSize(headerRef);\n\n const scollNodeRef = useRef<any>(null);\n\n const scollNodeSize = useSize(scollNodeRef);\n const affixRefSize = useSize(affixRef);\n\n useEffect(() => {\n if (tabsProps.activeKey) {\n setActiveKey(tabsProps.activeKey);\n }\n }, [tabsProps.activeKey]);\n\n const onChange = (activeKey) => {\n if (!tabsProps.activeKey) {\n setActiveKey(activeKey);\n }\n tabsProps.onChange?.(activeKey);\n const top = headerSize?.height || 0;\n if (affixedFlagRef.current) {\n scollNodeRef.current?.scrollTo({\n top,\n });\n } else {\n if (props.clickTabToTop !== false) {\n scollNodeRef.current?.scrollTo({\n top,\n });\n }\n }\n };\n\n const minHeight = (scollNodeSize?.height || 0) - (affixRefSize?.height || 0);\n\n const stickyTabItems = useMemo(() => {\n return tabsProps.items?.map((item) => {\n return {\n ...item,\n children: null,\n };\n });\n }, [tabsProps.items]);\n\n const contentTabItems = useMemo(() => {\n return tabsProps.items?.map((item) => {\n return {\n ...item,\n children: <div style={{ minHeight }}>{item.children}</div>,\n };\n });\n }, [tabsProps.items, minHeight]);\n\n return (\n <div ref={scollNodeRef} style={{ height: '100%', overflowY: 'auto' }}>\n <div ref={headerRef}>{props.headerRender}</div>\n <Affix\n offsetTop={0}\n target={() => scollNodeRef.current as HTMLElement}\n onChange={(affixed) => {\n affixedFlagRef.current = affixed;\n }}\n >\n <div ref={affixRef}>\n <Tabs\n {...tabsProps}\n activeKey={activeKey}\n items={stickyTabItems}\n tabBarStyle={{ ...tabsProps.tabBarStyle, margin: 0 }}\n style={{\n backgroundColor: 'var(--block-bg-color)',\n ...tabsProps.style,\n }}\n onChange={onChange}\n />\n </div>\n </Affix>\n <Tabs activeKey={activeKey} className=\"tabs-sticky-contents\" items={contentTabItems} />\n </div>\n );\n};\n"],"names":["TabsSticky","props","tabsProps","_useState","useState","defaultActiveKey","activeKey","setActiveKey","headerRef","useRef","affixRef","affixedFlagRef","headerSize","useSize","scollNodeRef","scollNodeSize","affixRefSize","useEffect","onChange","top","height","current","_scollNodeRef$current","scrollTo","clickTabToTop","_scollNodeRef$current2","minHeight","stickyTabItems","useMemo","_tabsProps$items","items","map","item","_extends","children","contentTabItems","_tabsProps$items2","_jsx","style","_jsxs","ref","overflowY","headerRender","Affix","offsetTop","target","affixed","Tabs","tabBarStyle","margin","backgroundColor","className"],"mappings":";oQAmBaA,EAAa,SAAbA,EAAcC,GACzB,IAAMC,EAAYD,EAAMC,UAExB,IAAAC,EAAkCC,EAASF,EAAUG,kBAA9CC,EAASH,EAAA,GAAEI,EAAYJ,EAAA,GAC9B,IAAMK,EAAYC,EAAuB,MACzC,IAAMC,EAAWD,EAAY,MAC7B,IAAME,EAAiBF,IAEvB,IAAMG,EAAaC,EAAQL,GAE3B,IAAMM,EAAeL,EAAY,MAEjC,IAAMM,EAAgBF,EAAQC,GAC9B,IAAME,EAAeH,EAAQH,GAE7BO,GAAU,WACR,GAAIf,EAAUI,UAAW,CACvBC,EAAaL,EAAUI,UACzB,CACF,GAAG,CAACJ,EAAUI,YAEd,IAAMY,EAAW,SAAXA,EAAYZ,GAChB,IAAKJ,EAAUI,UAAW,CACxBC,EAAaD,EACf,CACAJ,EAAUgB,UAAVhB,UAAAA,EAAAA,EAAUgB,SAAWZ,GACrB,IAAMa,GAAMP,eAAAA,EAAYQ,SAAU,EAClC,GAAIT,EAAeU,QAAS,CAAA,IAAAC,GAC1BA,EAAAR,EAAaO,UAAbC,UAAAA,EAAAA,EAAsBC,SAAS,CAC7BJ,IAAAA,GAEJ,KAAO,CACL,GAAIlB,EAAMuB,gBAAkB,MAAO,CAAA,IAAAC,GACjCA,EAAAX,EAAaO,UAAbI,UAAAA,EAAAA,EAAsBF,SAAS,CAC7BJ,IAAAA,GAEJ,CACF,GAGF,IAAMO,IAAaX,GAAAA,UAAAA,EAAAA,EAAeK,SAAU,KAAMJ,GAAAA,UAAAA,EAAAA,EAAcI,SAAU,GAE1E,IAAMO,EAAiBC,GAAQ,WAAM,IAAAC,EACnC,OAAAA,EAAO3B,EAAU4B,QAAK,UAAA,EAAfD,EAAiBE,KAAI,SAACC,GAC3B,OAAAC,KACKD,EAAI,CACPE,SAAU,MAEd,GACF,GAAG,CAAChC,EAAU4B,QAEd,IAAMK,EAAkBP,GAAQ,WAAM,IAAAQ,EACpC,OAAAA,EAAOlC,EAAU4B,QAAK,UAAA,EAAfM,EAAiBL,KAAI,SAACC,GAC3B,OAAAC,KACKD,EAAI,CACPE,SAAUG,EAAA,MAAA,CAAKC,MAAO,CAAEZ,UAAAA,GAAYQ,SAAEF,EAAKE,YAE/C,GACD,GAAE,CAAChC,EAAU4B,MAAOJ,IAErB,OACEa,EAAA,MAAA,CAAKC,IAAK1B,EAAcwB,MAAO,CAAElB,OAAQ,OAAQqB,UAAW,QAASP,UACnEG,EAAA,MAAA,CAAKG,IAAKhC,EAAU0B,SAAEjC,EAAMyC,eAC5BL,EAACM,EAAK,CACJC,UAAW,EACXC,OAAQ,SAAAA,IAAA,OAAM/B,EAAaO,OAAuB,EAClDH,SAAU,SAAAA,EAAC4B,GACTnC,EAAeU,QAAUyB,CACzB,EAAAZ,SAEFG,EAAA,MAAA,CAAKG,IAAK9B,EAASwB,SACjBG,EAACU,EAAId,KACC/B,EAAS,CACbI,UAAWA,EACXwB,MAAOH,EACPqB,YAAWf,EAAO/B,GAAAA,EAAU8C,YAAW,CAAEC,OAAQ,IACjDX,MAAKL,EAAA,CACHiB,gBAAiB,yBACdhD,EAAUoC,OAEfpB,SAAUA,SAIhBmB,EAACU,EAAI,CAACzC,UAAWA,EAAW6C,UAAU,uBAAuBrB,MAAOK,MAG1E"}
@@ -17,5 +17,5 @@ import './../dialog-modal/index.css';
17
17
  import './../input-search-wrapper/index.css';
18
18
  import './index.css';
19
19
  /*! @flatjs/forge MIT @flatbiz/antd */
20
- import{_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isObject as i}from"@dimjs/lang/cjs/is-object";import{hooks as n}from"@wove/react/cjs/hooks";import{toArray as t,treeToTiledMap as o,isUndefinedOrNull as r}from"@flatbiz/utils";import{useSize as l}from"ahooks";import{Modal as a}from"antd";import{Fragment as d,useState as s,useRef as u,useMemo as c}from"react";import{fbaHooks as m}from"../fba-hooks/index.js";import{FlexLayout as h}from"../flex-layout/index.js";import p from"@ant-design/icons/es/icons/CloseOutlined";import{CssNodeHover as v}from"../css-node-hover/index.js";import{IconWrapper as f}from"../icon-wrapper/index.js";import{TextOverflow as g}from"../text-overflow/index.js";import{jsx as j,jsxs as x}from"react/jsx-runtime";import{TreeWrapper as C}from"../tree-wrapper/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-string";import"@dimjs/model-react";import"@ant-design/icons/es/icons/CaretDownFilled";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"@dimjs/model";import"../button-operate/index.js";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"react-dom/client";import"@wove/react/cjs/create-ctx";import"../input-search-wrapper/index.js";import"../request-status/index.js";import"@dimjs/utils/cjs/tree";import"dequal";var y=function e(i){var n=i.chenkedIdList;return j(d,{children:n==null?void 0:n.map((function(e){var n=e.value;var t=e.label||n;return j(v,{style:{paddingLeft:5,paddingRight:0},children:x(h,{fullIndex:1,direction:"horizontal",style:{alignItems:"center",fontSize:14,marginBottom:0,color:"#505050"},children:[j(g,{text:t}),j("div",{style:{position:"relative",zIndex:9,color:"#a1a1a1"},children:j(f,{text:j(p,{}),onClick:i.onDeleteItem.bind(null,n),size:"small",style:{paddingRight:5,margin:"2px"}})})]})},n)}))})};var w=function i(o){var r,l;var a=n.useId(undefined,"tree-select-modal");return j(C,e({initRootExpand:true,showSearch:true,searchPlaceholder:"搜索",checkable:true,checkableType:"2"},o.treeProps,{showIcon:(r=o.treeProps)!=null&&r.icon?true:false,value:(l=o.value)==null?void 0:l.map((function(e){return e.value})),modelKey:a,fieldNames:o.fieldNames,labelInValue:true,serviceConfig:o.serviceConfig,onChange:function e(i){o.onChange==null?void 0:o.onChange(t(i))}}))};var b=function e(i){var n,t;var r=i.value||[];var l=((n=i.fieldNames)==null?void 0:n.value)||"value";var a=((t=i.fieldNames)==null?void 0:t.children)||"children";var s=i.textConfig,u=s.selectQuantityPrompt,c=s.placeholder;return x(h,{fullIndex:0,direction:"horizontal",gap:10,style:{height:"100%",overflow:"hidden"},children:[j("div",{style:{backgroundColor:"#f4f4f4",padding:10,borderRadius:5},children:j(w,{treeProps:i.treeProps,value:r,onChange:i.onChange,fieldNames:i.fieldNames,serviceConfig:{onRequest:i.onRequest,onRequestResultAdapter:function e(n){var t=o(n,{value:l,children:a});i.onChangeDataSourceMap(t);i.onChangeDataSource==null?void 0:i.onChangeDataSource(n,t);return n}}})}),x("div",{style:{width:"40%",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",flexShrink:0},children:[j("div",{style:{fontSize:15,fontWeight:"500",marginBottom:10},children:r.length>0?j(d,{children:u?u.replace("{total}",""+((r==null?void 0:r.length)||"")):"已选择"+(r==null?void 0:r.length)}):c||"请选择"}),j("div",{style:{overflow:"auto",flex:1,paddingRight:15},children:j(y,{chenkedIdList:r,fieldNames:i.fieldNames,onDeleteItem:i.onDeleteItem})})]})]})};var S=function e(i){var n,t;var r=i.textConfig,l=r.selectQuantityPrompt,a=r.placeholder;var s=((n=i.fieldNames)==null?void 0:n.value)||"value";var u=((t=i.fieldNames)==null?void 0:t.children)||"children";var c=i.value||[];return x("div",{style:{height:"100%",overflow:"auto"},children:[j("div",{style:{backgroundColor:"#f4f4f4",padding:10,borderRadius:5},children:j(w,{treeProps:i.treeProps,value:c,onChange:i.onChange,fieldNames:i.fieldNames,serviceConfig:{onRequest:i.onRequest,onRequestResultAdapter:function e(n){var t=o(n,{value:s,children:u});i.onChangeDataSourceMap(t);i.onChangeDataSource==null?void 0:i.onChangeDataSource(n,t);return n}}})}),x("div",{style:{marginTop:20},children:[j("div",{style:{fontSize:15,fontWeight:"500",marginBottom:10},children:c.length>0?j(d,{children:l?l.replace("{total}",""+((c==null?void 0:c.length)||"")):"已选择"+(c==null?void 0:c.length)}):a}),j(y,{chenkedIdList:c,fieldNames:i.fieldNames,onDeleteItem:i.onDeleteItem})]})]})};var D=function o(h){var p;var v=h.size,f=v===void 0?"large":v,g=h.isMultiple;var C=s(false),y=C[0],w=C[1];var D=s(),N=D[0],R=D[1];var k=((p=h.fieldNames)==null?void 0:p.label)||"label";var I=l(document.querySelector("html"));var P=m.useResponsivePoint()||"";var q=P==="xs"?"vertical":"horizontal";var z=r(g)?true:g;var B=n.useCallbackRef((function(){w(true)}));var M=h.children.type;var L=s(),O=L[0],F=L[1];var H=u([]);var W=function e(i){var n=O==null?void 0:O.filter((function(e){return e.value!==i}));F(n)};m.useEffectCustom((function(){var e=t(h.value).map((function(e){if(i(e))return e;return{value:e,label:N==null?void 0:N[e][k]}}));if(N){h.onSelectChange==null?void 0:h.onSelectChange(e||[])}H.current=e||[];F(e)}),[h.value,N,k]);var _=c((function(){if(!(I!=null&&I.height)||!P)return undefined;var e=["xs","sm"].includes(P);var i={};if(f=="large"){i={height:(I==null?void 0:I.height)*.65,width:800}}else if(f=="small"){i={height:(I==null?void 0:I.height)*.45,width:450}}else if(f=="middle"){i={height:(I==null?void 0:I.height)*.55,width:600}}return{height:h.modalBodyHeight||i.height,width:e?"90%":h.modalWidth||i.width}}),[I==null?void 0:I.height,P,f,h.modalBodyHeight,h.modalWidth]);var E=e({},h.treeProps,{checkable:z?true:false});var A=function e(){h.onSelectChange==null?void 0:h.onSelectChange(O);h.onChange==null?void 0:h.onChange(O);w(false)};var Q=function e(i){F(i)};var T=function e(){w(false);F(H.current)};return x(d,{children:[j(M,e({},h.children.props,{onClick:B})),j(a,{className:h.modalClassName,title:h.textConfig.title||"选择",open:y,onCancel:T,forceRender:h.forceRender,centered:true,width:_==null?void 0:_.width,onOk:A,styles:q==="horizontal"?{body:{height:_==null?void 0:_.height,maxHeight:"calc(100vh - 200px)",padding:"0px 0 0 20px"},content:{padding:0},header:{padding:"20px 24px 0 20px"},footer:{padding:"0 24px 20px 24px"}}:{body:{height:_==null?void 0:_.height}},children:q==="vertical"?j(S,{onChangeDataSourceMap:R,value:O,onDeleteItem:W,fieldNames:h.fieldNames,onRequest:h.onRequest,textConfig:h.textConfig,onChange:Q,onChangeDataSource:h.onChangeDataSource,treeProps:E}):j(b,{value:O,onChangeDataSourceMap:R,onDeleteItem:W,fieldNames:h.fieldNames,onRequest:h.onRequest,textConfig:h.textConfig,onChange:Q,onChangeDataSource:h.onChangeDataSource,treeProps:E})})]})};export{D as TreeModal};
20
+ import{toArray as e,treeToTiledMap as i,isUndefinedOrNull as n,attachPropertiesToComponent as t}from"@flatbiz/utils";import{_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as r}from"@wove/react/cjs/hooks";import{useSize as l}from"ahooks";import{Modal as a}from"antd";import{Fragment as d,useRef as s,useState as u,useMemo as c}from"react";import{fbaHooks as m}from"../fba-hooks/index.js";import{isObject as v}from"@dimjs/lang/cjs/is-object";import{FlexLayout as h}from"../flex-layout/index.js";import p from"@ant-design/icons/es/icons/CloseOutlined";import{CssNodeHover as f}from"../css-node-hover/index.js";import{IconWrapper as g}from"../icon-wrapper/index.js";import{TextOverflow as j}from"../text-overflow/index.js";import{jsx as x,jsxs as C}from"react/jsx-runtime";import{TreeWrapper as y}from"../tree-wrapper/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-string";import"@dimjs/model-react";import"@ant-design/icons/es/icons/CaretDownFilled";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"@dimjs/model";import"../button-operate/index.js";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"react-dom/client";import"@wove/react/cjs/create-ctx";import"../input-search-wrapper/index.js";import"../request-status/index.js";import"@dimjs/utils/cjs/tree";import"dequal";var b=function e(i){var n=i.chenkedIdList;return x(d,{children:n==null?void 0:n.map((function(e){var n=e.value;var t=e.label||n;return x(f,{style:{paddingLeft:5,paddingRight:0},children:C(h,{fullIndex:1,direction:"horizontal",style:{alignItems:"center",fontSize:14,marginBottom:0,color:"#505050"},children:[x(j,{text:t}),x("div",{style:{position:"relative",zIndex:9,color:"#a1a1a1"},children:x(g,{text:x(p,{}),onClick:i.onDeleteItem.bind(null,n),size:"small",style:{paddingRight:5,margin:"2px"}})})]})},n)}))})};var w=function i(n){var t,l;var a=r.useId(undefined,"tree-select-modal");return x(y,o({initRootExpand:true,showSearch:true,searchPlaceholder:"搜索",checkable:true,checkableType:"2"},n.treeProps,{showIcon:(t=n.treeProps)!=null&&t.icon?true:false,value:(l=n.value)==null?void 0:l.map((function(e){return e.value})),modelKey:a,fieldNames:n.fieldNames,labelInValue:true,serviceConfig:n.serviceConfig,onChange:function i(t){n.onChange==null?void 0:n.onChange(e(t))}}))};var N=function e(n){var t,o;var r=n.value||[];var l=((t=n.fieldNames)==null?void 0:t.value)||"value";var a=((o=n.fieldNames)==null?void 0:o.children)||"children";var s=n.textConfig,u=s.selectQuantityPrompt,c=s.placeholder;return C(h,{fullIndex:0,direction:"horizontal",gap:10,style:{height:"100%",overflow:"hidden"},children:[x("div",{style:{backgroundColor:"#f4f4f4",padding:10,borderRadius:5},children:x(w,{treeProps:n.treeProps,value:r,onChange:n.onChange,fieldNames:n.fieldNames,serviceConfig:{onRequest:n.onRequest,onRequestResultAdapter:function e(t){var o=i(t,{value:l,children:a});n.onChangeDataSource==null?void 0:n.onChangeDataSource(t,o);return t}}})}),C("div",{style:{width:"40%",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",flexShrink:0},children:[x("div",{style:{fontSize:15,fontWeight:"500",marginBottom:10},children:r.length>0?x(d,{children:u?u.replace("{total}",""+((r==null?void 0:r.length)||"")):"已选择"+(r==null?void 0:r.length)}):c||"请选择"}),x("div",{style:{overflow:"auto",flex:1},children:x(b,{chenkedIdList:r,fieldNames:n.fieldNames,onDeleteItem:n.onDeleteItem})})]})]})};var R=function e(n){var t,o;var r=n.textConfig,l=r.selectQuantityPrompt,a=r.placeholder;var s=((t=n.fieldNames)==null?void 0:t.value)||"value";var u=((o=n.fieldNames)==null?void 0:o.children)||"children";var c=n.value||[];return C("div",{style:{height:"100%",overflow:"auto"},children:[x("div",{style:{backgroundColor:"#f4f4f4",padding:10,borderRadius:5},children:x(w,{treeProps:n.treeProps,value:c,onChange:n.onChange,fieldNames:n.fieldNames,serviceConfig:{onRequest:n.onRequest,onRequestResultAdapter:function e(t){var o=i(t,{value:s,children:u});n.onChangeDataSource==null?void 0:n.onChangeDataSource(t,o);return t}}})}),C("div",{style:{marginTop:20},children:[x("div",{style:{fontSize:15,fontWeight:"500",marginBottom:10},children:c.length>0?x(d,{children:l?l.replace("{total}",""+((c==null?void 0:c.length)||"")):"已选择"+(c==null?void 0:c.length)}):a}),x(b,{chenkedIdList:c,fieldNames:n.fieldNames,onDeleteItem:n.onDeleteItem})]})]})};var k=function i(t){var l,a;var c=t.isMultiple;var h=((l=t.fieldNames)==null?void 0:l.label)||"label";var p=((a=t.fieldNames)==null?void 0:a.value)||"value";var f=s({});var g=m.useResponsivePoint()||"";var j=g==="xs"?"vertical":"horizontal";var C=n(c)?true:c;var y=u(),b=y[0],w=y[1];var k=function e(i){var n=b==null?void 0:b.filter((function(e){return e.value!==i}));w(n);t.onChange==null?void 0:t.onChange(n)};m.useEffectCustom((function(){var i=e(t.value).map((function(e){var i;var n=v(e)?e:{label:e,value:e};var t=n.value;return{value:t,label:((i=f.current[t])==null?void 0:i[h])||""}}));w(i)}),[t.value]);var D=o({},t.treeProps,{checkable:C?true:false});var I=function e(i){w(i);t.onChange==null?void 0:t.onChange(i)};var P=r.useCallbackRef((function(e,i){f.current=i;var n=b==null?void 0:b.map((function(e){var n=i[e.value];return n?{label:n[h],value:n[p]}:undefined})).filter(Boolean);w(n);t.onDataSourceChange==null?void 0:t.onDataSourceChange(e,i)}));return x(d,{children:j==="vertical"?x(R,{value:b,onDeleteItem:k,fieldNames:t.fieldNames,onRequest:t.onRequest,textConfig:t.textConfig,onChange:I,onChangeDataSource:P,treeProps:D}):x(N,{value:b,onDeleteItem:k,fieldNames:t.fieldNames,onRequest:t.onRequest,textConfig:t.textConfig,onChange:I,onChangeDataSource:P,treeProps:D})})};var D=function e(i){var n=i.size,t=n===void 0?"large":n;var v=u(false),h=v[0],p=v[1];var f=l(document.querySelector("html"));var g=m.useResponsivePoint()||"";var j=g==="xs"?"vertical":"horizontal";var y=r.useCallbackRef((function(){p(true)}));var b=i.children.type;var w=u(),N=w[0],R=w[1];var D=s([]);var I=c((function(){if(!(f!=null&&f.height)||!g)return undefined;var e=["xs","sm"].includes(g);var n={};if(t=="large"){n={height:(f==null?void 0:f.height)*.65,width:800}}else if(t=="small"){n={height:(f==null?void 0:f.height)*.45,width:450}}else if(t=="middle"){n={height:(f==null?void 0:f.height)*.55,width:600}}return{height:i.modalBodyHeight||n.height,width:e?"90%":i.modalWidth||n.width}}),[f==null?void 0:f.height,g,t,i.modalBodyHeight,i.modalWidth]);var P=function e(){i.onChange==null?void 0:i.onChange(N);p(false)};var S=function e(){p(false);R(D.current)};return C(d,{children:[x(b,o({},i.children.props,{onClick:y})),x(a,{className:i.modalClassName,title:i.textConfig.title||"选择",open:h,onCancel:S,forceRender:i.forceRender,centered:true,width:I==null?void 0:I.width,onOk:P,styles:j==="horizontal"?{body:{height:I==null?void 0:I.height,maxHeight:"calc(100vh - 200px)",padding:"0px 20px 0 20px"},content:{padding:0},header:{padding:"20px 24px 0 20px"},footer:{padding:"0 24px 20px 24px"}}:{body:{height:I==null?void 0:I.height}},children:x(k,o({},i,{onChange:function e(i){R(i)}}))})]})};var I=t(D,{Content:k});export{I as TreeModal};
21
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-modal/select-item.tsx","@flatbiz/antd/src/tree-modal/tree.tsx","@flatbiz/antd/src/tree-modal/horizontal.tsx","@flatbiz/antd/src/tree-modal/vertical.tsx","@flatbiz/antd/src/tree-modal/select-modal.tsx"],"sourcesContent":["import { CloseOutlined } from '@ant-design/icons';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { CssNodeHover } from '../css-node-hover';\nimport { FlexLayout } from '../flex-layout';\nimport { IconWrapper } from '../icon-wrapper';\nimport { TextOverflow } from '../text-overflow';\nimport { TreeModalProps } from './types';\n\nexport const SelectItemList = (props: {\n chenkedIdList: TPlainObject[];\n fieldNames: TreeModalProps['fieldNames'];\n onDeleteItem: (value: TAny) => void;\n}) => {\n const chenkedIdList = props.chenkedIdList;\n return (\n <Fragment>\n {chenkedIdList?.map((item) => {\n const value = item.value;\n const label = item.label || value;\n\n return (\n <CssNodeHover style={{ paddingLeft: 5, paddingRight: 0 }} key={value}>\n <FlexLayout\n fullIndex={1}\n direction=\"horizontal\"\n style={{\n alignItems: 'center',\n fontSize: 14,\n marginBottom: 0,\n color: '#505050',\n }}\n >\n <TextOverflow text={label} />\n <div\n style={{\n position: 'relative',\n zIndex: 9,\n color: '#a1a1a1',\n }}\n >\n <IconWrapper\n text={<CloseOutlined />}\n onClick={props.onDeleteItem.bind(null, value)}\n size=\"small\"\n style={{ paddingRight: 5, margin: '2px' }}\n />\n </div>\n </FlexLayout>\n </CssNodeHover>\n );\n })}\n </Fragment>\n );\n};\n","import { TAny, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { TreeServiceConfig, TreeWrapper, TreeWrapperProps } from '../tree-wrapper';\nimport { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const SelectContent = (props: {\n value?: TAny;\n onChange?: (value?: TreeModelSelectItem[]) => void;\n fieldNames?: TreeWrapperProps['fieldNames'];\n serviceConfig?: TreeServiceConfig;\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const modelKey = hooks.useId(undefined, 'tree-select-modal');\n return (\n <TreeWrapper\n initRootExpand\n showSearch\n searchPlaceholder=\"搜索\"\n checkable={true}\n checkableType=\"2\"\n {...props.treeProps}\n showIcon={props.treeProps?.icon ? true : false}\n value={props.value?.map((item) => item.value)}\n modelKey={modelKey}\n fieldNames={props.fieldNames}\n labelInValue={true}\n serviceConfig={props.serviceConfig}\n onChange={(values) => {\n props.onChange?.(toArray(values));\n }}\n />\n );\n};\n","import { TAny, TPlainObject, treeToTiledMap } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { FlexLayout } from '../flex-layout';\nimport { SelectItemList } from './select-item';\nimport { SelectContent } from './tree';\nimport { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const HorizontalLayout = (props: {\n onChangeDataSourceMap: (data: TPlainObject) => void;\n onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;\n onDeleteItem: (value: TAny) => void;\n fieldNames?: TreeModalProps['fieldNames'];\n onRequest?: TreeModalProps['onRequest'];\n textConfig: TreeModalProps['textConfig'];\n onChange?: (value?: TreeModelSelectItem[]) => void;\n value?: TreeModelSelectItem[];\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const chenkedIdList = props.value || [];\n\n const valueKey = props.fieldNames?.value || 'value';\n const childrenKey = props.fieldNames?.children || 'children';\n\n const { selectQuantityPrompt, placeholder } = props.textConfig;\n\n return (\n <FlexLayout fullIndex={0} direction=\"horizontal\" gap={10} style={{ height: '100%', overflow: 'hidden' }}>\n <div style={{ backgroundColor: '#f4f4f4', padding: 10, borderRadius: 5 }}>\n <SelectContent\n treeProps={props.treeProps}\n value={chenkedIdList}\n onChange={props.onChange}\n fieldNames={props.fieldNames}\n serviceConfig={{\n onRequest: props.onRequest,\n onRequestResultAdapter: (respData) => {\n const listMap: TPlainObject = treeToTiledMap(respData, {\n value: valueKey,\n children: childrenKey,\n });\n props.onChangeDataSourceMap(listMap);\n props.onChangeDataSource?.(respData, listMap);\n return respData;\n },\n }}\n />\n </div>\n\n <div\n style={{\n width: '40%',\n overflow: 'hidden',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n }}\n >\n <div style={{ fontSize: 15, fontWeight: '500', marginBottom: 10 }}>\n {chenkedIdList.length > 0 ? (\n <Fragment>\n {selectQuantityPrompt\n ? selectQuantityPrompt.replace('{total}', `${chenkedIdList?.length || ''}`)\n : `已选择${chenkedIdList?.length}`}\n </Fragment>\n ) : (\n placeholder || '请选择'\n )}\n </div>\n <div style={{ overflow: 'auto', flex: 1, paddingRight: 15 }}>\n <SelectItemList\n chenkedIdList={chenkedIdList}\n fieldNames={props.fieldNames}\n onDeleteItem={props.onDeleteItem}\n />\n </div>\n </div>\n </FlexLayout>\n );\n};\n","import { TAny, TPlainObject, treeToTiledMap } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { SelectItemList } from './select-item';\nimport { SelectContent } from './tree';\nimport { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const VerticalLayout = (props: {\n onChangeDataSourceMap: (data: TPlainObject) => void;\n onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;\n onDeleteItem: (value: TAny) => void;\n fieldNames?: TreeModalProps['fieldNames'];\n onRequest?: TreeModalProps['onRequest'];\n textConfig: TreeModalProps['textConfig'];\n onChange?: (value?: TreeModelSelectItem[]) => void;\n value?: TreeModelSelectItem[];\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const { selectQuantityPrompt, placeholder } = props.textConfig;\n const valueKey = props.fieldNames?.value || 'value';\n const childrenKey = props.fieldNames?.children || 'children';\n\n const chenkedIdList = props.value || [];\n\n return (\n <div style={{ height: '100%', overflow: 'auto' }}>\n <div style={{ backgroundColor: '#f4f4f4', padding: 10, borderRadius: 5 }}>\n <SelectContent\n treeProps={props.treeProps}\n value={chenkedIdList}\n onChange={props.onChange}\n fieldNames={props.fieldNames}\n serviceConfig={{\n onRequest: props.onRequest,\n onRequestResultAdapter: (respData) => {\n const listMap: TPlainObject = treeToTiledMap(respData, {\n value: valueKey,\n children: childrenKey,\n });\n props.onChangeDataSourceMap(listMap);\n props.onChangeDataSource?.(respData, listMap);\n return respData;\n },\n }}\n />\n </div>\n\n <div style={{ marginTop: 20 }}>\n <div style={{ fontSize: 15, fontWeight: '500', marginBottom: 10 }}>\n {chenkedIdList.length > 0 ? (\n <Fragment>\n {selectQuantityPrompt\n ? selectQuantityPrompt.replace('{total}', `${chenkedIdList?.length || ''}`)\n : `已选择${chenkedIdList?.length}`}\n </Fragment>\n ) : (\n placeholder\n )}\n </div>\n <SelectItemList\n chenkedIdList={chenkedIdList}\n fieldNames={props.fieldNames}\n onDeleteItem={props.onDeleteItem}\n />\n </div>\n </div>\n );\n};\n","import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Modal } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { HorizontalLayout } from './horizontal';\nimport { TreeModalProps, TreeModelSelectItem } from './types';\nimport { VerticalLayout } from './vertical';\n\n/**\n * 树节点数据选择,一般用于选择员工等\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModal = (props: TreeModalProps) => {\n const { size = 'large', isMultiple } = props;\n const [isOpen, setIsOpen] = useState(false);\n const [dataSourceMap, setDataSourceMap] = useState<TPlainObject>();\n const labelKey = props.fieldNames?.label || 'label';\n\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const direction = screenType === 'xs' ? 'vertical' : 'horizontal';\n const isMultipleFt = isUndefinedOrNull(isMultiple) ? true : isMultiple;\n\n const handleOnClick = hooks.useCallbackRef(() => {\n setIsOpen(true);\n });\n\n const Action = props.children.type;\n\n const [values, setValues] = useState<TreeModelSelectItem[]>();\n const originalValuesRef = useRef<TreeModelSelectItem[]>([]);\n\n const onDeleteItem = (value) => {\n const targetList = values?.filter((item) => item.value !== value);\n setValues(targetList);\n };\n\n fbaHooks.useEffectCustom(() => {\n const values = toArray<TAny>(props.value).map((item) => {\n if (isObject(item)) return item;\n return {\n value: item,\n label: dataSourceMap?.[item][labelKey],\n };\n });\n if (dataSourceMap) {\n props.onSelectChange?.(values || []);\n }\n originalValuesRef.current = values || [];\n setValues(values);\n }, [props.value, dataSourceMap, labelKey]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n let sizeCalculate: TPlainObject = {};\n if (size == 'large') {\n sizeCalculate = {\n height: htmlSize?.height * 0.65,\n width: 800,\n };\n } else if (size == 'small') {\n sizeCalculate = {\n height: htmlSize?.height * 0.45,\n width: 450,\n };\n } else if (size == 'middle') {\n sizeCalculate = {\n height: htmlSize?.height * 0.55,\n width: 600,\n };\n }\n\n return {\n height: props.modalBodyHeight || sizeCalculate.height,\n width: isXsSm ? '90%' : props.modalWidth || sizeCalculate.width,\n };\n }, [htmlSize?.height, screenType, size, props.modalBodyHeight, props.modalWidth]);\n\n const treePropsFt = {\n ...props.treeProps,\n checkable: isMultipleFt ? true : false,\n };\n const onSubmit = () => {\n props.onSelectChange?.(values);\n props.onChange?.(values);\n setIsOpen(false);\n };\n\n const onChange = (values?: TreeModelSelectItem[]) => {\n setValues(values);\n };\n const onCancel = () => {\n setIsOpen(false);\n setValues(originalValuesRef.current);\n };\n\n return (\n <Fragment>\n <Action {...props.children.props} onClick={handleOnClick} />\n <Modal\n className={props.modalClassName}\n title={props.textConfig.title || '选择'}\n open={isOpen}\n onCancel={onCancel}\n forceRender={props.forceRender}\n centered\n width={customSize?.width}\n onOk={onSubmit}\n styles={\n direction === 'horizontal'\n ? {\n body: {\n height: customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n padding: '0px 0 0 20px',\n },\n content: {\n padding: 0,\n },\n header: {\n padding: '20px 24px 0 20px',\n },\n footer: {\n padding: '0 24px 20px 24px',\n },\n }\n : {\n body: {\n height: customSize?.height,\n },\n }\n }\n >\n {direction === 'vertical' ? (\n <VerticalLayout\n onChangeDataSourceMap={setDataSourceMap}\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n onRequest={props.onRequest}\n textConfig={props.textConfig}\n onChange={onChange}\n onChangeDataSource={props.onChangeDataSource}\n treeProps={treePropsFt}\n ></VerticalLayout>\n ) : (\n <HorizontalLayout\n value={values}\n onChangeDataSourceMap={setDataSourceMap}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n onRequest={props.onRequest}\n textConfig={props.textConfig}\n onChange={onChange}\n onChangeDataSource={props.onChangeDataSource}\n treeProps={treePropsFt}\n />\n )}\n </Modal>\n </Fragment>\n );\n};\n"],"names":["SelectItemList","props","chenkedIdList","_jsx","Fragment","children","map","item","value","label","CssNodeHover","style","paddingLeft","paddingRight","_jsxs","FlexLayout","fullIndex","direction","alignItems","fontSize","marginBottom","color","TextOverflow","text","position","zIndex","IconWrapper","_CloseOutlined","onClick","onDeleteItem","bind","size","margin","SelectContent","_props$treeProps","_props$value","modelKey","_hooks","useId","undefined","TreeWrapper","_extends","initRootExpand","showSearch","searchPlaceholder","checkable","checkableType","treeProps","showIcon","icon","fieldNames","labelInValue","serviceConfig","onChange","values","toArray","HorizontalLayout","_props$fieldNames","_props$fieldNames2","valueKey","childrenKey","_props$textConfig","textConfig","selectQuantityPrompt","placeholder","gap","height","overflow","backgroundColor","padding","borderRadius","onRequest","onRequestResultAdapter","respData","listMap","treeToTiledMap","onChangeDataSourceMap","onChangeDataSource","width","display","flexDirection","flexShrink","fontWeight","length","replace","flex","VerticalLayout","marginTop","TreeModal","_props$size","isMultiple","_useState","useState","isOpen","setIsOpen","_useState2","dataSourceMap","setDataSourceMap","labelKey","htmlSize","useSize","document","querySelector","screenType","fbaHooks","useResponsivePoint","isMultipleFt","isUndefinedOrNull","handleOnClick","useCallbackRef","Action","type","_useState3","setValues","originalValuesRef","useRef","targetList","filter","useEffectCustom","_isObject","onSelectChange","current","customSize","useMemo","isXsSm","includes","sizeCalculate","modalBodyHeight","modalWidth","treePropsFt","onSubmit","onCancel","Modal","className","modalClassName","title","open","forceRender","centered","onOk","styles","body","maxHeight","content","header","footer"],"mappings":";2mEASO,IAAMA,EAAiB,SAAjBA,EAAkBC,GAK7B,IAAMC,EAAgBD,EAAMC,cAC5B,OACEC,EAACC,EAAQ,CAAAC,SACNH,GAAAA,UAAAA,EAAAA,EAAeI,KAAI,SAACC,GACnB,IAAMC,EAAQD,EAAKC,MACnB,IAAMC,EAAQF,EAAKE,OAASD,EAE5B,OACEL,EAACO,EAAY,CAACC,MAAO,CAAEC,YAAa,EAAGC,aAAc,GAAIR,SACvDS,EAACC,EAAU,CACTC,UAAW,EACXC,UAAU,aACVN,MAAO,CACLO,WAAY,SACZC,SAAU,GACVC,aAAc,EACdC,MAAO,WACPhB,SAAA,CAEFF,EAACmB,EAAY,CAACC,KAAMd,IACpBN,EAAA,MAAA,CACEQ,MAAO,CACLa,SAAU,WACVC,OAAQ,EACRJ,MAAO,WACPhB,SAEFF,EAACuB,EAAW,CACVH,KAAMpB,EAAAwB,MACNC,QAAS3B,EAAM4B,aAAaC,KAAK,KAAMtB,GACvCuB,KAAK,QACLpB,MAAO,CAAEE,aAAc,EAAGmB,OAAQ,eAvBqBxB,OAgCzE,ECjDO,IAAMyB,EAAgB,SAAhBA,EAAiBhC,GAMxB,IAAAiC,EAAAC,EACJ,IAAMC,EAAWC,EAAMC,MAAMC,UAAW,qBACxC,OACEpC,EAACqC,EAAWC,EAAA,CACVC,eAAc,KACdC,WAAU,KACVC,kBAAkB,KAClBC,UAAW,KACXC,cAAc,KACV7C,EAAM8C,UAAS,CACnBC,UAAUd,EAAAjC,EAAM8C,YAANb,MAAAA,EAAiBe,KAAO,KAAO,MACzCzC,OAAK2B,EAAElC,EAAMO,QAAN2B,UAAAA,EAAAA,EAAa7B,KAAI,SAACC,GAAI,OAAKA,EAAKC,SACvC4B,SAAUA,EACVc,WAAYjD,EAAMiD,WAClBC,aAAc,KACdC,cAAenD,EAAMmD,cACrBC,SAAU,SAAAA,EAACC,GACTrD,EAAMoD,UAAQ,UAAA,EAAdpD,EAAMoD,SAAWE,EAAQD,GAC3B,IAGN,ECzBO,IAAME,EAAmB,SAAnBA,EAAoBvD,GAU3B,IAAAwD,EAAAC,EACJ,IAAMxD,EAAgBD,EAAMO,OAAS,GAErC,IAAMmD,IAAWF,EAAAxD,EAAMiD,aAANO,UAAAA,EAAAA,EAAkBjD,QAAS,QAC5C,IAAMoD,IAAcF,EAAAzD,EAAMiD,aAANQ,UAAAA,EAAAA,EAAkBrD,WAAY,WAElD,IAAAwD,EAA8C5D,EAAM6D,WAA5CC,EAAoBF,EAApBE,qBAAsBC,EAAWH,EAAXG,YAE9B,OACElD,EAACC,EAAU,CAACC,UAAW,EAAGC,UAAU,aAAagD,IAAK,GAAItD,MAAO,CAAEuD,OAAQ,OAAQC,SAAU,UAAW9D,UACtGF,EAAA,MAAA,CAAKQ,MAAO,CAAEyD,gBAAiB,UAAWC,QAAS,GAAIC,aAAc,GAAIjE,SACvEF,EAAC8B,EAAa,CACZc,UAAW9C,EAAM8C,UACjBvC,MAAON,EACPmD,SAAUpD,EAAMoD,SAChBH,WAAYjD,EAAMiD,WAClBE,cAAe,CACbmB,UAAWtE,EAAMsE,UACjBC,uBAAwB,SAAAA,EAACC,GACvB,IAAMC,EAAwBC,EAAeF,EAAU,CACrDjE,MAAOmD,EACPtD,SAAUuD,IAEZ3D,EAAM2E,sBAAsBF,GAC5BzE,EAAM4E,oBAAkB,UAAA,EAAxB5E,EAAM4E,mBAAqBJ,EAAUC,GACrC,OAAOD,CACT,OAKN3D,EAAA,MAAA,CACEH,MAAO,CACLmE,MAAO,MACPX,SAAU,SACVD,OAAQ,OACRa,QAAS,OACTC,cAAe,SACfC,WAAY,GACZ5E,UAEFF,EAAA,MAAA,CAAKQ,MAAO,CAAEQ,SAAU,GAAI+D,WAAY,MAAO9D,aAAc,IAAKf,SAC/DH,EAAciF,OAAS,EACtBhF,EAACC,EAAQ,CAAAC,SACN0D,EACGA,EAAqBqB,QAAQ,UAAc,KAAAlF,GAAa,UAAA,EAAbA,EAAeiF,SAAU,YAC9DjF,GAAa,UAAA,EAAbA,EAAeiF,UAG3BnB,GAAe,QAGnB7D,EAAA,MAAA,CAAKQ,MAAO,CAAEwD,SAAU,OAAQkB,KAAM,EAAGxE,aAAc,IAAKR,SAC1DF,EAACH,EAAc,CACbE,cAAeA,EACfgD,WAAYjD,EAAMiD,WAClBrB,aAAc5B,EAAM4B,sBAMhC,ECzEO,IAAMyD,EAAiB,SAAjBA,EAAkBrF,GAUzB,IAAAwD,EAAAC,EACJ,IAAAG,EAA8C5D,EAAM6D,WAA5CC,EAAoBF,EAApBE,qBAAsBC,EAAWH,EAAXG,YAC9B,IAAML,IAAWF,EAAAxD,EAAMiD,aAANO,UAAAA,EAAAA,EAAkBjD,QAAS,QAC5C,IAAMoD,IAAcF,EAAAzD,EAAMiD,aAANQ,UAAAA,EAAAA,EAAkBrD,WAAY,WAElD,IAAMH,EAAgBD,EAAMO,OAAS,GAErC,OACEM,EAAA,MAAA,CAAKH,MAAO,CAAEuD,OAAQ,OAAQC,SAAU,QAAS9D,UAC/CF,EAAA,MAAA,CAAKQ,MAAO,CAAEyD,gBAAiB,UAAWC,QAAS,GAAIC,aAAc,GAAIjE,SACvEF,EAAC8B,EAAa,CACZc,UAAW9C,EAAM8C,UACjBvC,MAAON,EACPmD,SAAUpD,EAAMoD,SAChBH,WAAYjD,EAAMiD,WAClBE,cAAe,CACbmB,UAAWtE,EAAMsE,UACjBC,uBAAwB,SAAAA,EAACC,GACvB,IAAMC,EAAwBC,EAAeF,EAAU,CACrDjE,MAAOmD,EACPtD,SAAUuD,IAEZ3D,EAAM2E,sBAAsBF,GAC5BzE,EAAM4E,oBAAkB,UAAA,EAAxB5E,EAAM4E,mBAAqBJ,EAAUC,GACrC,OAAOD,CACT,OAKN3D,EAAA,MAAA,CAAKH,MAAO,CAAE4E,UAAW,IAAKlF,UAC5BF,EAAA,MAAA,CAAKQ,MAAO,CAAEQ,SAAU,GAAI+D,WAAY,MAAO9D,aAAc,IAAKf,SAC/DH,EAAciF,OAAS,EACtBhF,EAACC,EAAQ,CAAAC,SACN0D,EACGA,EAAqBqB,QAAQ,UAAc,KAAAlF,GAAa,UAAA,EAAbA,EAAeiF,SAAU,YAC9DjF,GAAa,UAAA,EAAbA,EAAeiF,UAG3BnB,IAGJ7D,EAACH,EAAc,CACbE,cAAeA,EACfgD,WAAYjD,EAAMiD,WAClBrB,aAAc5B,EAAM4B,oBAK9B,MChDa2D,EAAY,SAAZA,EAAavF,GAA0B,IAAAwD,EAClD,IAAAgC,EAAuCxF,EAA/B8B,KAAAA,EAAI0D,SAAG,EAAA,QAAOA,EAAEC,EAAezF,EAAfyF,WACxB,IAAAC,EAA4BC,EAAS,OAA9BC,EAAMF,EAAA,GAAEG,EAASH,EAAA,GACxB,IAAAI,EAA0CH,IAAnCI,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GACtC,IAAMG,IAAWzC,EAAAxD,EAAMiD,aAANO,UAAAA,EAAAA,EAAkBhD,QAAS,QAE5C,IAAM0F,EAAWC,EAAQC,SAASC,cAAc,SAChD,IAAMC,EAAaC,EAASC,sBAAwB,GAEpD,IAAMxF,EAAYsF,IAAe,KAAO,WAAa,aACrD,IAAMG,EAAeC,EAAkBjB,GAAc,KAAOA,EAE5D,IAAMkB,EAAgBvE,EAAMwE,gBAAe,WACzCf,EAAU,KACZ,IAEA,IAAMgB,EAAS7G,EAAMI,SAAS0G,KAE9B,IAAAC,EAA4BpB,IAArBtC,EAAM0D,EAAA,GAAEC,EAASD,EAAA,GACxB,IAAME,EAAoBC,EAA8B,IAExD,IAAMtF,EAAe,SAAfA,EAAgBrB,GACpB,IAAM4G,EAAa9D,GAAM,UAAA,EAANA,EAAQ+D,QAAO,SAAC9G,GAAI,OAAKA,EAAKC,QAAUA,KAC3DyG,EAAUG,IAGZZ,EAASc,iBAAgB,WACvB,IAAMhE,EAASC,EAActD,EAAMO,OAAOF,KAAI,SAACC,GAC7C,GAAIgH,EAAShH,GAAO,OAAOA,EAC3B,MAAO,CACLC,MAAOD,EACPE,MAAOuF,GAAAA,UAAAA,EAAAA,EAAgBzF,GAAM2F,GAEjC,IACA,GAAIF,EAAe,CACjB/F,EAAMuH,gBAAc,UAAA,EAApBvH,EAAMuH,eAAiBlE,GAAU,GACnC,CACA4D,EAAkBO,QAAUnE,GAAU,GACtC2D,EAAU3D,EACX,GAAE,CAACrD,EAAMO,MAAOwF,EAAeE,IAEhC,IAAMwB,EAAaC,GAAQ,WACzB,KAAKxB,GAAQ,MAARA,EAAUjC,UAAWqC,EAAY,OAAOhE,UAC7C,IAAMqF,EAAS,CAAC,KAAM,MAAMC,SAAStB,GACrC,IAAIuB,EAA8B,CAAA,EAClC,GAAI/F,GAAQ,QAAS,CACnB+F,EAAgB,CACd5D,QAAQiC,GAAQ,UAAA,EAARA,EAAUjC,QAAS,IAC3BY,MAAO,IAEX,MAAO,GAAI/C,GAAQ,QAAS,CAC1B+F,EAAgB,CACd5D,QAAQiC,GAAQ,UAAA,EAARA,EAAUjC,QAAS,IAC3BY,MAAO,IAEX,MAAO,GAAI/C,GAAQ,SAAU,CAC3B+F,EAAgB,CACd5D,QAAQiC,GAAQ,UAAA,EAARA,EAAUjC,QAAS,IAC3BY,MAAO,IAEX,CAEA,MAAO,CACLZ,OAAQjE,EAAM8H,iBAAmBD,EAAc5D,OAC/CY,MAAO8C,EAAS,MAAQ3H,EAAM+H,YAAcF,EAAchD,MAE7D,GAAE,CAACqB,GAAQ,UAAA,EAARA,EAAUjC,OAAQqC,EAAYxE,EAAM9B,EAAM8H,gBAAiB9H,EAAM+H,aAErE,IAAMC,EAAWxF,EACZxC,GAAAA,EAAM8C,UAAS,CAClBF,UAAW6D,EAAe,KAAO,QAEnC,IAAMwB,EAAW,SAAXA,IACJjI,EAAMuH,gBAANvH,UAAAA,EAAAA,EAAMuH,eAAiBlE,GACvBrD,EAAMoD,UAANpD,UAAAA,EAAAA,EAAMoD,SAAWC,GACjBwC,EAAU,QAGZ,IAAMzC,EAAW,SAAXA,EAAYC,GAChB2D,EAAU3D,IAEZ,IAAM6E,EAAW,SAAXA,IACJrC,EAAU,OACVmB,EAAUC,EAAkBO,UAG9B,OACE3G,EAACV,EAAQ,CAAAC,SAAA,CACPF,EAAC2G,EAAMrE,EAAA,CAAA,EAAKxC,EAAMI,SAASJ,MAAK,CAAE2B,QAASgF,KAC3CzG,EAACiI,EAAK,CACJC,UAAWpI,EAAMqI,eACjBC,MAAOtI,EAAM6D,WAAWyE,OAAS,KACjCC,KAAM3C,EACNsC,SAAUA,EACVM,YAAaxI,EAAMwI,YACnBC,SAAQ,KACR5D,MAAO4C,GAAAA,UAAAA,EAAAA,EAAY5C,MACnB6D,KAAMT,EACNU,OACE3H,IAAc,aACV,CACE4H,KAAM,CACJ3E,OAAQwD,GAAAA,UAAAA,EAAAA,EAAYxD,OACpB4E,UAAW,sBACXzE,QAAS,gBAEX0E,QAAS,CACP1E,QAAS,GAEX2E,OAAQ,CACN3E,QAAS,oBAEX4E,OAAQ,CACN5E,QAAS,qBAGb,CACEwE,KAAM,CACJ3E,OAAQwD,GAAAA,UAAAA,EAAAA,EAAYxD,SAG7B7D,SAEAY,IAAc,WACbd,EAACmF,EAAc,CACbV,sBAAuBqB,EACvBzF,MAAO8C,EACPzB,aAAcA,EACdqB,WAAYjD,EAAMiD,WAClBqB,UAAWtE,EAAMsE,UACjBT,WAAY7D,EAAM6D,WAClBT,SAAUA,EACVwB,mBAAoB5E,EAAM4E,mBAC1B9B,UAAWkF,IAGb9H,EAACqD,EAAgB,CACfhD,MAAO8C,EACPsB,sBAAuBqB,EACvBpE,aAAcA,EACdqB,WAAYjD,EAAMiD,WAClBqB,UAAWtE,EAAMsE,UACjBT,WAAY7D,EAAM6D,WAClBT,SAAUA,EACVwB,mBAAoB5E,EAAM4E,mBAC1B9B,UAAWkF,QAMvB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-modal/select-item.tsx","@flatbiz/antd/src/tree-modal/tree.tsx","@flatbiz/antd/src/tree-modal/horizontal.tsx","@flatbiz/antd/src/tree-modal/vertical.tsx","@flatbiz/antd/src/tree-modal/select-modal-content.tsx","@flatbiz/antd/src/tree-modal/select-modal.tsx","@flatbiz/antd/src/tree-modal/index.ts"],"sourcesContent":["import { CloseOutlined } from '@ant-design/icons';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { CssNodeHover } from '../css-node-hover';\nimport { FlexLayout } from '../flex-layout';\nimport { IconWrapper } from '../icon-wrapper';\nimport { TextOverflow } from '../text-overflow';\nimport type { TreeModalProps } from './types';\n\nexport const SelectItemList = (props: {\n chenkedIdList: TPlainObject[];\n fieldNames: TreeModalProps['fieldNames'];\n onDeleteItem: (value: TAny) => void;\n}) => {\n const chenkedIdList = props.chenkedIdList;\n return (\n <Fragment>\n {chenkedIdList?.map((item) => {\n const value = item.value;\n const label = item.label || value;\n\n return (\n <CssNodeHover style={{ paddingLeft: 5, paddingRight: 0 }} key={value}>\n <FlexLayout\n fullIndex={1}\n direction=\"horizontal\"\n style={{\n alignItems: 'center',\n fontSize: 14,\n marginBottom: 0,\n color: '#505050',\n }}\n >\n <TextOverflow text={label} />\n <div\n style={{\n position: 'relative',\n zIndex: 9,\n color: '#a1a1a1',\n }}\n >\n <IconWrapper\n text={<CloseOutlined />}\n onClick={props.onDeleteItem.bind(null, value)}\n size=\"small\"\n style={{ paddingRight: 5, margin: '2px' }}\n />\n </div>\n </FlexLayout>\n </CssNodeHover>\n );\n })}\n </Fragment>\n );\n};\n","import type { TAny } from '@flatbiz/utils';\nimport { toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport type { TreeServiceConfig, TreeWrapperProps } from '../tree-wrapper';\nimport { TreeWrapper } from '../tree-wrapper';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const SelectContent = (props: {\n value?: TAny;\n onChange?: (value?: TreeModelSelectItem[]) => void;\n fieldNames?: TreeWrapperProps['fieldNames'];\n serviceConfig?: TreeServiceConfig;\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const modelKey = hooks.useId(undefined, 'tree-select-modal');\n return (\n <TreeWrapper\n initRootExpand\n showSearch\n searchPlaceholder=\"搜索\"\n checkable={true}\n checkableType=\"2\"\n {...props.treeProps}\n showIcon={props.treeProps?.icon ? true : false}\n value={props.value?.map((item) => item.value)}\n modelKey={modelKey}\n fieldNames={props.fieldNames}\n labelInValue={true}\n serviceConfig={props.serviceConfig}\n onChange={(values) => {\n props.onChange?.(toArray(values));\n }}\n />\n );\n};\n","import type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { treeToTiledMap } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { FlexLayout } from '../flex-layout';\nimport { SelectItemList } from './select-item';\nimport { SelectContent } from './tree';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const HorizontalLayout = (props: {\n onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;\n onDeleteItem: (value: TAny) => void;\n fieldNames?: TreeModalProps['fieldNames'];\n onRequest?: TreeModalProps['onRequest'];\n textConfig: TreeModalProps['textConfig'];\n onChange?: (value?: TreeModelSelectItem[]) => void;\n value?: TreeModelSelectItem[];\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const chenkedIdList = props.value || [];\n\n const valueKey = props.fieldNames?.value || 'value';\n const childrenKey = props.fieldNames?.children || 'children';\n\n const { selectQuantityPrompt, placeholder } = props.textConfig;\n\n return (\n <FlexLayout fullIndex={0} direction=\"horizontal\" gap={10} style={{ height: '100%', overflow: 'hidden' }}>\n <div style={{ backgroundColor: '#f4f4f4', padding: 10, borderRadius: 5 }}>\n <SelectContent\n treeProps={props.treeProps}\n value={chenkedIdList}\n onChange={props.onChange}\n fieldNames={props.fieldNames}\n serviceConfig={{\n onRequest: props.onRequest,\n onRequestResultAdapter: (respData) => {\n const listMap: TPlainObject = treeToTiledMap(respData, {\n value: valueKey,\n children: childrenKey,\n });\n props.onChangeDataSource?.(respData, listMap);\n return respData;\n },\n }}\n />\n </div>\n\n <div\n style={{\n width: '40%',\n overflow: 'hidden',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n flexShrink: 0,\n }}\n >\n <div style={{ fontSize: 15, fontWeight: '500', marginBottom: 10 }}>\n {chenkedIdList.length > 0 ? (\n <Fragment>\n {selectQuantityPrompt\n ? selectQuantityPrompt.replace('{total}', `${chenkedIdList?.length || ''}`)\n : `已选择${chenkedIdList?.length}`}\n </Fragment>\n ) : (\n placeholder || '请选择'\n )}\n </div>\n <div style={{ overflow: 'auto', flex: 1 }}>\n <SelectItemList\n chenkedIdList={chenkedIdList}\n fieldNames={props.fieldNames}\n onDeleteItem={props.onDeleteItem}\n />\n </div>\n </div>\n </FlexLayout>\n );\n};\n","import type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { treeToTiledMap } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { SelectItemList } from './select-item';\nimport { SelectContent } from './tree';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\nexport const VerticalLayout = (props: {\n onChangeDataSource?: (treeDataList: TPlainObject[], mapData: TPlainObject) => void;\n onDeleteItem: (value: TAny) => void;\n fieldNames?: TreeModalProps['fieldNames'];\n onRequest?: TreeModalProps['onRequest'];\n textConfig: TreeModalProps['textConfig'];\n onChange?: (value?: TreeModelSelectItem[]) => void;\n value?: TreeModelSelectItem[];\n treeProps?: TreeModalProps['treeProps'];\n}) => {\n const { selectQuantityPrompt, placeholder } = props.textConfig;\n const valueKey = props.fieldNames?.value || 'value';\n const childrenKey = props.fieldNames?.children || 'children';\n\n const chenkedIdList = props.value || [];\n\n return (\n <div style={{ height: '100%', overflow: 'auto' }}>\n <div style={{ backgroundColor: '#f4f4f4', padding: 10, borderRadius: 5 }}>\n <SelectContent\n treeProps={props.treeProps}\n value={chenkedIdList}\n onChange={props.onChange}\n fieldNames={props.fieldNames}\n serviceConfig={{\n onRequest: props.onRequest,\n onRequestResultAdapter: (respData) => {\n const listMap: TPlainObject = treeToTiledMap(respData, {\n value: valueKey,\n children: childrenKey,\n });\n props.onChangeDataSource?.(respData, listMap);\n return respData;\n },\n }}\n />\n </div>\n\n <div style={{ marginTop: 20 }}>\n <div style={{ fontSize: 15, fontWeight: '500', marginBottom: 10 }}>\n {chenkedIdList.length > 0 ? (\n <Fragment>\n {selectQuantityPrompt\n ? selectQuantityPrompt.replace('{total}', `${chenkedIdList?.length || ''}`)\n : `已选择${chenkedIdList?.length}`}\n </Fragment>\n ) : (\n placeholder\n )}\n </div>\n <SelectItemList\n chenkedIdList={chenkedIdList}\n fieldNames={props.fieldNames}\n onDeleteItem={props.onDeleteItem}\n />\n </div>\n </div>\n );\n};\n","import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Fragment, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { HorizontalLayout } from './horizontal';\nimport type { TreeModalContentProps, TreeModelSelectItem } from './types';\nimport { VerticalLayout } from './vertical';\n\n/**\n * 树节点数据选择,一般用于选择员工等\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalContent = (props: TreeModalContentProps) => {\n const { isMultiple } = props;\n const labelKey = props.fieldNames?.label || 'label';\n const valueKey = props.fieldNames?.value || 'value';\n const dataSourceMapRef = useRef<TPlainObject>({});\n\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const direction = screenType === 'xs' ? 'vertical' : 'horizontal';\n const isMultipleFt = isUndefinedOrNull(isMultiple) ? true : isMultiple;\n\n const [values, setValues] = useState<TreeModelSelectItem[]>();\n\n const onDeleteItem = (value) => {\n const targetList = values?.filter((item) => item.value !== value);\n setValues(targetList);\n props.onChange?.(targetList);\n };\n\n fbaHooks.useEffectCustom(() => {\n const values = toArray<TAny>(props.value).map((item) => {\n const target = isObject(item) ? item : { label: item, value: item };\n const value = target.value;\n return {\n value: value,\n label: dataSourceMapRef.current[value]?.[labelKey] || '',\n };\n });\n setValues(values);\n }, [props.value]);\n\n const treePropsFt = {\n ...props.treeProps,\n checkable: isMultipleFt ? true : false,\n };\n\n const onChange = (values?: TreeModelSelectItem[]) => {\n setValues(values);\n props.onChange?.(values);\n };\n\n const onChangeDataSource = hooks.useCallbackRef((treeDataList: TPlainObject[], mapData: TPlainObject) => {\n dataSourceMapRef.current = mapData;\n const result = values\n ?.map((item) => {\n const target = mapData[item.value];\n return target ? { label: target[labelKey], value: target[valueKey] } : undefined;\n })\n .filter(Boolean) as TreeModelSelectItem[];\n setValues(result);\n props.onDataSourceChange?.(treeDataList, mapData);\n });\n\n return (\n <Fragment>\n {direction === 'vertical' ? (\n <VerticalLayout\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n onRequest={props.onRequest}\n textConfig={props.textConfig}\n onChange={onChange}\n onChangeDataSource={onChangeDataSource}\n treeProps={treePropsFt}\n ></VerticalLayout>\n ) : (\n <HorizontalLayout\n value={values}\n onDeleteItem={onDeleteItem}\n fieldNames={props.fieldNames}\n onRequest={props.onRequest}\n textConfig={props.textConfig}\n onChange={onChange}\n onChangeDataSource={onChangeDataSource}\n treeProps={treePropsFt}\n />\n )}\n </Fragment>\n );\n};\n","import type { TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useSize } from 'ahooks';\nimport { Modal } from 'antd';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TreeModalContent } from './select-modal-content';\nimport type { TreeModalProps, TreeModelSelectItem } from './types';\n\n/**\n * 树节点数据选择,一般用于选择员工等\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModal = (props: TreeModalProps) => {\n const { size = 'large' } = props;\n const [isOpen, setIsOpen] = useState(false);\n\n const htmlSize = useSize(document.querySelector('html'));\n const screenType = fbaHooks.useResponsivePoint() || '';\n\n const direction = screenType === 'xs' ? 'vertical' : 'horizontal';\n\n const handleOnClick = hooks.useCallbackRef(() => {\n setIsOpen(true);\n });\n\n const Action = props.children.type;\n\n const [values, setValues] = useState<TreeModelSelectItem[]>();\n const originalValuesRef = useRef<TreeModelSelectItem[]>([]);\n\n const customSize = useMemo(() => {\n if (!htmlSize?.height || !screenType) return undefined;\n const isXsSm = ['xs', 'sm'].includes(screenType);\n let sizeCalculate: TPlainObject = {};\n if (size == 'large') {\n sizeCalculate = {\n height: htmlSize?.height * 0.65,\n width: 800,\n };\n } else if (size == 'small') {\n sizeCalculate = {\n height: htmlSize?.height * 0.45,\n width: 450,\n };\n } else if (size == 'middle') {\n sizeCalculate = {\n height: htmlSize?.height * 0.55,\n width: 600,\n };\n }\n\n return {\n height: props.modalBodyHeight || sizeCalculate.height,\n width: isXsSm ? '90%' : props.modalWidth || sizeCalculate.width,\n };\n }, [htmlSize?.height, screenType, size, props.modalBodyHeight, props.modalWidth]);\n\n const onSubmit = () => {\n props.onChange?.(values);\n setIsOpen(false);\n };\n\n const onCancel = () => {\n setIsOpen(false);\n setValues(originalValuesRef.current);\n };\n\n return (\n <Fragment>\n <Action {...props.children.props} onClick={handleOnClick} />\n <Modal\n className={props.modalClassName}\n title={props.textConfig.title || '选择'}\n open={isOpen}\n onCancel={onCancel}\n forceRender={props.forceRender}\n centered\n width={customSize?.width}\n onOk={onSubmit}\n styles={\n direction === 'horizontal'\n ? {\n body: {\n height: customSize?.height,\n maxHeight: 'calc(100vh - 200px)',\n padding: '0px 20px 0 20px',\n },\n content: {\n padding: 0,\n },\n header: {\n padding: '20px 24px 0 20px',\n },\n footer: {\n padding: '0 24px 20px 24px',\n },\n }\n : {\n body: {\n height: customSize?.height,\n },\n }\n }\n >\n <TreeModalContent\n {...props}\n onChange={(values) => {\n setValues(values);\n }}\n />\n </Modal>\n </Fragment>\n );\n};\n","import { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { TreeModal as TreeModalInner } from './select-modal';\nimport { TreeModalContent } from './select-modal-content';\n\nexport const TreeModal = attachPropertiesToComponent(TreeModalInner, {\n Content: TreeModalContent,\n});\n"],"names":["SelectItemList","props","chenkedIdList","_jsx","Fragment","children","map","item","value","label","CssNodeHover","style","paddingLeft","paddingRight","_jsxs","FlexLayout","fullIndex","direction","alignItems","fontSize","marginBottom","color","TextOverflow","text","position","zIndex","IconWrapper","_CloseOutlined","onClick","onDeleteItem","bind","size","margin","SelectContent","_props$treeProps","_props$value","modelKey","_hooks","useId","undefined","TreeWrapper","_extends","initRootExpand","showSearch","searchPlaceholder","checkable","checkableType","treeProps","showIcon","icon","fieldNames","labelInValue","serviceConfig","onChange","values","toArray","HorizontalLayout","_props$fieldNames","_props$fieldNames2","valueKey","childrenKey","_props$textConfig","textConfig","selectQuantityPrompt","placeholder","gap","height","overflow","backgroundColor","padding","borderRadius","onRequest","onRequestResultAdapter","respData","listMap","treeToTiledMap","onChangeDataSource","width","display","flexDirection","flexShrink","fontWeight","length","replace","flex","VerticalLayout","marginTop","TreeModalContent","isMultiple","labelKey","dataSourceMapRef","useRef","screenType","fbaHooks","useResponsivePoint","isMultipleFt","isUndefinedOrNull","_useState","useState","setValues","targetList","filter","useEffectCustom","_dataSourceMapRef$cur","target","_isObject","current","treePropsFt","useCallbackRef","treeDataList","mapData","result","Boolean","onDataSourceChange","TreeModal","_props$size","isOpen","setIsOpen","htmlSize","useSize","document","querySelector","handleOnClick","Action","type","_useState2","originalValuesRef","customSize","useMemo","isXsSm","includes","sizeCalculate","modalBodyHeight","modalWidth","onSubmit","onCancel","Modal","className","modalClassName","title","open","forceRender","centered","onOk","styles","body","maxHeight","content","header","footer","attachPropertiesToComponent","TreeModalInner","Content"],"mappings":"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"}
@@ -18,5 +18,5 @@ import './../dialog-modal/index.css';
18
18
  import './../input-search-wrapper/index.css';
19
19
  import './index.css';
20
20
  /*! @flatjs/forge MIT @flatbiz/antd */
21
- import{a as i,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isObject as o}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as n,toArray as t}from"@flatbiz/utils";import{Select as r}from"antd";import{useState as a}from"react";import{TreeModal as s}from"../tree-modal/index.js";import{jsx as l}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"ahooks";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"../flex-layout/index.js";import"@dimjs/utils/cjs/class-names";import"@ant-design/icons/es/icons/CloseOutlined";import"../css-node-hover/index.js";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-undefined";import"../text-overflow/index.js";import"@dimjs/lang/cjs/is-string";import"../tree-wrapper/index.js";import"@dimjs/model-react";import"@ant-design/icons/es/icons/CaretDownFilled";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"@dimjs/model";import"../button-operate/index.js";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"react-dom/client";import"@wove/react/cjs/create-ctx";import"../input-search-wrapper/index.js";import"../request-status/index.js";import"@dimjs/utils/cjs/tree";import"dequal";var m=["placeholder","maxTagCount","labelInValue"];var p=function p(d){var u=d.placeholder,c=d.maxTagCount,j=d.labelInValue,g=i(d,m);var f=n(u)?"请选择":u;var v=a((function(){var i;return((i=t(d.value))==null?void 0:i.map((function(i){return o(i)?i:{label:i,value:i}})))||[]})),x=v[0],h=v[1];var C=function i(e){var o=t(e).length?e:undefined;if(g.isMultiple==false){d.onChange==null?void 0:d.onChange(o==null?void 0:o[0])}else{d.onChange==null?void 0:d.onChange(o)}};var w=function i(e){if(j){C(e);return}C(e==null?void 0:e.map((function(i){return i.value})))};var y=function i(e){if(j){C(e);return}C(e==null?void 0:e.map((function(i){return i.value})))};return l(s,e({},g,{forceRender:true,onChange:y,onSelectChange:function i(e){h(e||[]);d.onSelectChange==null?void 0:d.onSelectChange(e||[])},children:l(r,{labelInValue:true,style:{width:"100%"},placeholder:f,maxTagCount:c,mode:"multiple",open:false,value:x,onChange:w})}))};export{p as TreeModalSelector};
21
+ import{a as e,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as o}from"@wove/react/cjs/hooks";import{isObject as r}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as a,toArray as n}from"@flatbiz/utils";import{Select as t}from"antd";import{useRef as l,useState as s,useEffect as m}from"react";import{TreeModal as p}from"../tree-modal/index.js";import{jsx as d}from"react/jsx-runtime";import"ahooks";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"../flex-layout/index.js";import"@dimjs/utils/cjs/class-names";import"@ant-design/icons/es/icons/CloseOutlined";import"../css-node-hover/index.js";import"../icon-wrapper/index.js";import"@dimjs/lang/cjs/is-undefined";import"../text-overflow/index.js";import"@dimjs/lang/cjs/is-string";import"../tree-wrapper/index.js";import"@dimjs/model-react";import"@ant-design/icons/es/icons/CaretDownFilled";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"@dimjs/model";import"../button-operate/index.js";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"react-dom/client";import"@wove/react/cjs/create-ctx";import"../input-search-wrapper/index.js";import"../request-status/index.js";import"@dimjs/utils/cjs/tree";import"dequal";var u=["placeholder","maxTagCount","labelInValue"];var c=function c(j){var v,f;var g=j.placeholder,x=j.maxTagCount,h=j.labelInValue,b=e(j,u);var C=a(g)?"请选择":g;var w=l({});var y=((v=b.fieldNames)==null?void 0:v.label)||"label";var k=((f=b.fieldNames)==null?void 0:f.value)||"value";var F=s(),O=F[0],_=F[1];m((function(){var e;var i=((e=n(j.value))==null?void 0:e.map((function(e){var i;var o=r(e)?e:{label:e,value:e};return{value:o.value,label:((i=w.current[o.value])==null?void 0:i[y])||o.value}})))||[];_(i)}),[y,j.value]);var z=function e(i){var o=n(i).length?i:undefined;if(b.isMultiple==false){j.onChange==null?void 0:j.onChange(o==null?void 0:o[0])}else{j.onChange==null?void 0:j.onChange(o)}};var D=function e(i){_(i);if(h){z(i);return}z(i==null?void 0:i.map((function(e){return e.value})))};var I=function e(i){_(i);if(h){z(i);return}z(i==null?void 0:i.map((function(e){return e.value})))};var N=o.useCallbackRef((function(e,i){w.current=i;var o=O==null?void 0:O.map((function(e){var o=i[e.value];return o?{label:o[y],value:o[k]}:undefined})).filter(Boolean);_(o)}));return d(p,i({},b,{forceRender:true,onChange:I,onDataSourceChange:N,children:d(t,{labelInValue:true,style:{width:"100%"},placeholder:C,maxTagCount:x,mode:"multiple",open:false,value:O,onChange:D})}))};export{c as TreeModalSelector};
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-modal-selector/selector.tsx"],"sourcesContent":["import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { Select } from 'antd';\nimport { useState } from 'react';\nimport { TreeModal } from '../tree-modal';\nimport { TreeModalProps, TreeModelSelectItem } from '../tree-modal/types';\nexport type TreeModalSelectorProps = Omit<TreeModalProps, 'children' | 'forceRender' | 'onChange'> & {\n placeholder?: string;\n /**\n * 1. 可指定数量\n * 2. 可设置 responsive,一行自适应显示\n */\n maxTagCount?: number | 'responsive';\n /** 是否返回label+value模式 */\n labelInValue?: boolean;\n onChange?: (values?: TreeModelSelectItem[] | TreeModelSelectItem) => void;\n};\n\n/**\n * 树弹框选择器\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalSelector = (props: TreeModalSelectorProps) => {\n const { placeholder, maxTagCount, labelInValue, ...otherProps } = props;\n const placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;\n\n const [showValues, setShowValues] = useState<TreeModelSelectItem[]>(() => {\n return (\n toArray(props.value)?.map((item) => {\n return isObject(item)\n ? (item as TreeModelSelectItem)\n : ({ label: item, value: item } as TreeModelSelectItem);\n }) || []\n );\n });\n\n const onInnerChange = (value: TreeModelSelectItem[]) => {\n const valueFt = toArray(value).length ? value : undefined;\n if (otherProps.isMultiple == false) {\n props.onChange?.(valueFt?.[0]);\n } else {\n props.onChange?.(valueFt);\n }\n };\n\n const onSelectChange = (value) => {\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n\n onInnerChange(value?.map((item) => item.value));\n };\n const treeModalChange = (value) => {\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n\n onInnerChange(value?.map((item) => item.value));\n };\n\n return (\n <TreeModal\n {...otherProps}\n forceRender={true}\n onChange={treeModalChange}\n onSelectChange={(values) => {\n setShowValues(values || []);\n props.onSelectChange?.(values || []);\n }}\n >\n <Select\n labelInValue\n style={{ width: '100%' }}\n placeholder={placeholderFt}\n maxTagCount={maxTagCount}\n mode=\"multiple\"\n open={false}\n value={showValues}\n onChange={onSelectChange}\n />\n </TreeModal>\n );\n};\n"],"names":["TreeModalSelector","props","placeholder","maxTagCount","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","placeholderFt","isUndefinedOrNull","_useState","useState","_toArray","toArray","value","map","item","_isObject","label","showValues","setShowValues","onInnerChange","valueFt","length","undefined","isMultiple","onChange","onSelectChange","treeModalChange","_jsx","TreeModal","_extends","forceRender","values","children","Select","style","width","mode","open"],"mappings":";6+DAyBaA,EAAoB,SAApBA,EAAqBC,GAChC,IAAQC,EAA0DD,EAA1DC,YAAaC,EAA6CF,EAA7CE,YAAaC,EAAgCH,EAAhCG,aAAiBC,EAAUC,EAAKL,EAAKM,GACvE,IAAMC,EAAgBC,EAAkBP,GAAe,MAAQA,EAE/D,IAAAQ,EAAoCC,GAAgC,WAAM,IAAAC,EACxE,QACEA,EAAAC,EAAQZ,EAAMa,SAAM,UAAA,EAApBF,EAAsBG,KAAI,SAACC,GACzB,OAAOC,EAASD,GACXA,EACA,CAAEE,MAAOF,EAAMF,MAAOE,EAC5B,MAAK,EAEV,IAROG,EAAUT,EAAA,GAAEU,EAAaV,EAAA,GAUhC,IAAMW,EAAgB,SAAhBA,EAAiBP,GACrB,IAAMQ,EAAUT,EAAQC,GAAOS,OAAST,EAAQU,UAChD,GAAInB,EAAWoB,YAAc,MAAO,CAClCxB,EAAMyB,UAANzB,UAAAA,EAAAA,EAAMyB,SAAWJ,GAAAA,UAAAA,EAAAA,EAAU,GAC7B,KAAO,CACLrB,EAAMyB,UAANzB,UAAAA,EAAAA,EAAMyB,SAAWJ,EACnB,GAGF,IAAMK,EAAiB,SAAjBA,EAAkBb,GACtB,GAAIV,EAAc,CAChBiB,EAAcP,GACd,MACF,CAEAO,EAAcP,GAAAA,UAAAA,EAAAA,EAAOC,KAAI,SAACC,GAAI,OAAKA,EAAKF,KAAK,MAE/C,IAAMc,EAAkB,SAAlBA,EAAmBd,GACvB,GAAIV,EAAc,CAChBiB,EAAcP,GACd,MACF,CAEAO,EAAcP,GAAAA,UAAAA,EAAAA,EAAOC,KAAI,SAACC,GAAI,OAAKA,EAAKF,KAAK,MAG/C,OACEe,EAACC,EAASC,KACJ1B,EAAU,CACd2B,YAAa,KACbN,SAAUE,EACVD,eAAgB,SAAAA,EAACM,GACfb,EAAca,GAAU,IACxBhC,EAAM0B,gBAAc,UAAA,EAApB1B,EAAM0B,eAAiBM,GAAU,GACjC,EAAAC,SAEFL,EAACM,EAAM,CACL/B,aAAY,KACZgC,MAAO,CAAEC,MAAO,QAChBnC,YAAaM,EACbL,YAAaA,EACbmC,KAAK,WACLC,KAAM,MACNzB,MAAOK,EACPO,SAAUC,MAIlB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-modal-selector/selector.tsx"],"sourcesContent":["import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Select } from 'antd';\nimport { useEffect, useRef, useState } from 'react';\nimport { TreeModal } from '../tree-modal';\nimport type { TreeModalProps, TreeModelSelectItem } from '../tree-modal/types';\nexport type TreeModalSelectorProps = Omit<TreeModalProps, 'children' | 'forceRender' | 'onChange'> & {\n placeholder?: string;\n /**\n * 1. 可指定数量\n * 2. 可设置 responsive,一行自适应显示\n */\n maxTagCount?: number | 'responsive';\n /** 是否返回label+value模式 */\n labelInValue?: boolean;\n onChange?: (values?: TreeModelSelectItem[] | TreeModelSelectItem) => void;\n};\n\n/**\n * 树弹框选择器\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalSelector = (props: TreeModalSelectorProps) => {\n const { placeholder, maxTagCount, labelInValue, ...otherProps } = props;\n const placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;\n\n const dataSourceMapRef = useRef<TPlainObject>({});\n\n const labelKey = otherProps.fieldNames?.label || 'label';\n const valueKey = otherProps.fieldNames?.value || 'value';\n\n const [showValues, setShowValues] = useState<TreeModelSelectItem[]>();\n\n useEffect(() => {\n const dataList =\n toArray(props.value)?.map((item) => {\n const objItems = (isObject(item) ? item : { label: item, value: item }) as TreeModelSelectItem;\n return {\n value: objItems.value,\n label: dataSourceMapRef.current[objItems.value]?.[labelKey] || objItems.value,\n } as TreeModelSelectItem;\n }) || [];\n setShowValues(dataList);\n }, [labelKey, props.value]);\n\n const onInnerChange = (value: TreeModelSelectItem[]) => {\n const valueFt = toArray(value).length ? value : undefined;\n if (otherProps.isMultiple == false) {\n props.onChange?.(valueFt?.[0]);\n } else {\n props.onChange?.(valueFt);\n }\n };\n\n const onSelectChange = (value) => {\n setShowValues(value);\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n\n onInnerChange(value?.map((item) => item.value));\n };\n const treeModalChange = (value) => {\n setShowValues(value);\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n onInnerChange(value?.map((item) => item.value));\n };\n\n const onDataSourceChange = hooks.useCallbackRef((_treeDataList: TPlainObject[], mapData: TPlainObject) => {\n dataSourceMapRef.current = mapData;\n const result = showValues\n ?.map((item) => {\n const target = mapData[item.value];\n return target ? { label: target[labelKey], value: target[valueKey] } : undefined;\n })\n .filter(Boolean) as TreeModelSelectItem[];\n setShowValues(result);\n });\n\n return (\n <TreeModal\n {...otherProps}\n forceRender={true}\n onChange={treeModalChange}\n onDataSourceChange={onDataSourceChange}\n >\n <Select\n labelInValue\n style={{ width: '100%' }}\n placeholder={placeholderFt}\n maxTagCount={maxTagCount}\n mode=\"multiple\"\n open={false}\n value={showValues}\n onChange={onSelectChange}\n />\n </TreeModal>\n );\n};\n"],"names":["TreeModalSelector","props","_otherProps$fieldName","_otherProps$fieldName2","placeholder","maxTagCount","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","placeholderFt","isUndefinedOrNull","dataSourceMapRef","useRef","labelKey","fieldNames","label","valueKey","value","_useState","useState","showValues","setShowValues","useEffect","_toArray","dataList","toArray","map","item","_dataSourceMapRef$cur","objItems","_isObject","current","onInnerChange","valueFt","length","undefined","isMultiple","onChange","onSelectChange","treeModalChange","onDataSourceChange","_hooks","useCallbackRef","_treeDataList","mapData","result","target","filter","Boolean","_jsx","TreeModal","_extends","forceRender","children","Select","style","width","mode","open"],"mappings":";whEA0BaA,EAAoB,SAApBA,EAAqBC,GAAkC,IAAAC,EAAAC,EAClE,IAAQC,EAA0DH,EAA1DG,YAAaC,EAA6CJ,EAA7CI,YAAaC,EAAgCL,EAAhCK,aAAiBC,EAAUC,EAAKP,EAAKQ,GACvE,IAAMC,EAAgBC,EAAkBP,GAAe,MAAQA,EAE/D,IAAMQ,EAAmBC,EAAqB,CAAA,GAE9C,IAAMC,IAAWZ,EAAAK,EAAWQ,aAAXb,UAAAA,EAAAA,EAAuBc,QAAS,QACjD,IAAMC,IAAWd,EAAAI,EAAWQ,aAAXZ,UAAAA,EAAAA,EAAuBe,QAAS,QAEjD,IAAAC,EAAoCC,IAA7BC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAEhCI,GAAU,WAAM,IAAAC,EACd,IAAMC,IACJD,EAAAE,EAAQzB,EAAMiB,qBAAdM,EAAsBG,KAAI,SAACC,GAAS,IAAAC,EAClC,IAAMC,EAAYC,EAASH,GAAQA,EAAO,CAAEZ,MAAOY,EAAMV,MAAOU,GAChE,MAAO,CACLV,MAAOY,EAASZ,MAChBF,QAAOa,EAAAjB,EAAiBoB,QAAQF,EAASZ,qBAAlCW,EAA2Cf,KAAagB,EAASZ,MAE3E,MAAK,GACRI,EAAcG,EACf,GAAE,CAACX,EAAUb,EAAMiB,QAEpB,IAAMe,EAAgB,SAAhBA,EAAiBf,GACrB,IAAMgB,EAAUR,EAAQR,GAAOiB,OAASjB,EAAQkB,UAChD,GAAI7B,EAAW8B,YAAc,MAAO,CAClCpC,EAAMqC,UAANrC,UAAAA,EAAAA,EAAMqC,SAAWJ,GAAAA,UAAAA,EAAAA,EAAU,GAC7B,KAAO,CACLjC,EAAMqC,UAANrC,UAAAA,EAAAA,EAAMqC,SAAWJ,EACnB,GAGF,IAAMK,EAAiB,SAAjBA,EAAkBrB,GACtBI,EAAcJ,GACd,GAAIZ,EAAc,CAChB2B,EAAcf,GACd,MACF,CAEAe,EAAcf,GAAAA,UAAAA,EAAAA,EAAOS,KAAI,SAACC,GAAI,OAAKA,EAAKV,KAAK,MAE/C,IAAMsB,EAAkB,SAAlBA,EAAmBtB,GACvBI,EAAcJ,GACd,GAAIZ,EAAc,CAChB2B,EAAcf,GACd,MACF,CACAe,EAAcf,GAAAA,UAAAA,EAAAA,EAAOS,KAAI,SAACC,GAAI,OAAKA,EAAKV,KAAK,MAG/C,IAAMuB,EAAqBC,EAAMC,gBAAe,SAACC,EAA+BC,GAC9EjC,EAAiBoB,QAAUa,EAC3B,IAAMC,EAASzB,GAAAA,UAAAA,EAAAA,EACXM,KAAI,SAACC,GACL,IAAMmB,EAASF,EAAQjB,EAAKV,OAC5B,OAAO6B,EAAS,CAAE/B,MAAO+B,EAAOjC,GAAWI,MAAO6B,EAAO9B,IAAcmB,SACzE,IACCY,OAAOC,SACV3B,EAAcwB,EAChB,IAEA,OACEI,EAACC,EAASC,KACJ7C,EAAU,CACd8C,YAAa,KACbf,SAAUE,EACVC,mBAAoBA,EAAmBa,SAEvCJ,EAACK,EAAM,CACLjD,aAAY,KACZkD,MAAO,CAAEC,MAAO,QAChBrD,YAAaM,EACbL,YAAaA,EACbqD,KAAK,WACLC,KAAM,MACNzC,MAAOG,EACPiB,SAAUC,MAIlB"}
@@ -13,5 +13,5 @@ import './../flex-layout/index.css';
13
13
  import './../input-search-wrapper/index.css';
14
14
  import './index.css';
15
15
  /*! @flatjs/forge MIT @flatbiz/antd */
16
- import{treeToArray as e,arrayToMap as r,treeToTiledArray as t,treeLeafParentsArray as n,isUndefinedOrNull as a,isNotEmptyArray as i,treeToTiledMap as l,toArray as s,treeFilter as o,attachPropertiesToComponent as u}from"@flatbiz/utils";import{isArray as c}from"@dimjs/lang/cjs/is-array";import{Model as d}from"@dimjs/model-react";import f from"@ant-design/icons/es/icons/CaretDownFilled";import v from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as p}from"@dimjs/utils/cjs/class-names";import{extend as m}from"@dimjs/utils/cjs/extend";import{hooks as h}from"@wove/react/cjs/hooks";import{get as g}from"@dimjs/utils/cjs/get";import{_ as y,a as b}from"../_rollupPluginBabelHelpers-a0769acd.js";import{cloneState as L}from"@dimjs/model";import{Spin as C,Tree as w,Button as j,message as T}from"antd";import{forwardRef as A,useState as N,useMemo as R,useRef as S,useImperativeHandle as q,Fragment as k,isValidElement as x}from"react";import{ButtonOperate as M}from"../button-operate/index.js";import{DropdownMenuWrapper as E}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as D}from"../fba-hooks/index.js";import{InputSearchWrapper as P}from"../input-search-wrapper/index.js";import{RequestStatus as _}from"../request-status/index.js";import{tree as I}from"@dimjs/utils/cjs/tree";import{isObject as O}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as V,jsx as F}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/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../use-responsive-point-21b8c601.js";var K={treeList:[],treeTiledArray:[],treeTiledArrayMap:{},queryIsEmpty:false};var U={actions:{setTreeList:function t(n){return function(t){t.treeList=n.treeList||[];t.treeTiledArray=e(t.treeList,n.childrenName);t.treeTiledArrayMap=r(t.treeTiledArray,n.valueName);t.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[];e.treeTiledArray=[];e.treeTiledArrayMap={}}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r.status;if(r.status==="request-error"){e.treeList=[];e.treeTiledArray=[];e.treeTiledArrayMap={};e.requestErrorMessage=r.errorMessage||"数据查询异常"}else{e.requestErrorMessage=undefined}}},treeListAppendChildren:function t(n){return function(t){var a=e(t.treeList,n.childrenName);var i=r(a,n.valueName);var l=i[n.value];if(l){if(c(n.appendList)&&n.appendList.length>0){l[n.childrenName]=n.appendList}else{l.isLeaf=true}}t.treeTiledArray=a;t.treeTiledArrayMap=i}}},state:K};var z={};var H=function e(r){if(!z[r]){z[r]=d(U)}return z[r]};var B=function e(r){var t=H(r).getState();return t.treeList};var Y=function r(t,n){var a=e(t,n.children).filter((function(e){var r=e[n.children];return r&&r.length>0})).map((function(e){return e[n.value]}));return a};var G=function e(r,a,i){var l=t(a,i);return n(r,l,true,{value:"value",parentValue:"parentValue"}).filter((function(e){var r=e[i.children];return r&&r.length>0})).map((function(e){return e.value}))};var W=function e(r,t){var n=a(r)?[]:r;n=c(n)?n:[n];n=n.map((function(e){if(O(e))return e[t.value];return e}));return n};var J=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=L(r);var f;c(d,i,(function(e,r,t){t.splice(r,1);f=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else{var v=[];var p;c(d,a,(function(e,r,t){v=t;p=r}));if(s===-1){v.splice(p,0,f)}else{v.splice(p+1,0,f)}}return{dataList:d,dragNodeData:Q(i,d,t)}};var Q=function r(t,n,a){var i;var l=a.value;var s=a.children;I.walkThroughTree((i={},i[l]=undefined,i[s]=n,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=e(n,s);var u=o.find((function(e){return e[l]===t}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__index"]}};var X=function r(t,n,a,l){var s={};var o=[];var u=[];t.forEach((function(e){var r;if(i((r=n[e])==null?void 0:r[a])){o.push(e)}else{s[e]=e}}));if(o.length>0){o.forEach((function(r){var i=e(n[r][a],a);if(Object.keys(s).length>i.length){var o=i.filter((function(e){return t.find((function(r){return r===e[l]}))}));if(o.length===i.length){u.push(r)}}}))}return t.filter((function(e){return u.find((function(r){return r==e}))||s[e]}))};var Z=function e(r,t,n,a){var i=l([t],{value:a,children:n});return r.filter((function(e){return!i[e]}))};var $=function e(r,t,n,a){var s={};r.forEach((function(e){var r;var o=(r=t[e])==null?void 0:r[n];if(i(o)){var u=l(o,{value:a,children:n});s=y({},s,u)}}));return r.filter((function(e){return!s[e]}))};var ee=function e(r,t,n){return r.filter((function(e){return!i(t[e][n])}))};var re=function r(t,n,a,l){var s=[].concat(t);t.forEach((function(r){var t;var o=(t=n[r])==null?void 0:t[a];if(i(o)){var u=e(o,a);s=s.concat(u.map((function(e){return e[l]})))}}));return Array.from(new Set(s))};var te=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","customSearchRule","checkableType"];var ne=A((function(e,r){var t=e.style,n=e.serviceConfig,i=e.effectDependencyList,l=e.selectorTreeList,u=e.value,d=e.onChange,A=e.modelKey,I=e.checkableResponseParentNode,O=I===void 0?true:I,K=e.checkable,U=e.onSelectorTreeListChange,z=e.onRequestResponseChange,B=e.treeItemDataAdapter,Q=e.searchValue,ne=e.showSearch,ae=e.searchPlaceholder,ie=e.requestMessageConfig,le=e.labelInValueFieldNames,se=e.labelInValue,oe=e.disabledCanUse,ue=e.menuLayoutType,ce=e.menuTriggerType,de=e.initRootExpand,fe=e.searchResultType,ve=e.onDropNodeHandle,pe=e.onDropPrev,me=e.labelRender,he=e.searchStyle,ge=e.className,ye=e.defaultExpandAll,be=e.menus,Le=e.customSearchRule,Ce=e.checkableType,we=b(e,te);var je=e.hasOwnProperty("selectorTreeList");var Te=n||{};var Ae=i||[];var Ne=N([]),Re=Ne[0],Se=Ne[1];var qe=H(A).useStore(),ke=qe[0],xe=qe[1];var Me=D.useSafeState(false),Ee=Me[0],De=Me[1];var Pe="request-progress-"+e.modelKey;var _e=fe==="highlight";var Ie=R((function(){return y({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var Oe=ue===undefined?"fold":ue;var Ve=ce===undefined?"click":ce;var Fe=S(true);var Ke=R((function(){return y({label:"label",value:"value"},le)}),[le]);var Ue=N(),ze=Ue[0],He=Ue[1];var Be=R((function(){return W(u,Ke)}),[Ke,u]);D.useEffectCustom((function(){if(ke.treeList.length>0){if(Fe.current){Fe.current=false;if(ye){Se(Y(ke.treeList,Ie));return}else if(de&&ke.treeList.length){Se([ke.treeList[0][Ie.value]]);return}}if(!a(u)){var e=Qe(Be,true);Se(Array.from(new Set(Re==null?void 0:Re.concat(e))))}}}),[u,ke.treeList,Be]);var Ye=function e(r){return r===""||a(r)};var Ge=function e(r){var t=r;if(Te.onRequestResultAdapter){t=Te.onRequestResultAdapter(r)}else if(Ie.list){t=g(r,Ie.list,[])||[]}if(!c(t)){console.warn("接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析");return[]}return t};D.useEffectCustom((function(){He(Q)}),[Q]);var We=h.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{Fe.current=false;De(false);void T.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!Te.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=Te.requiredParamsKeys;n=m({},Te.params);if(t){a=t.find((function(e){return Ye(n[e])}));if(a){void xe.changeRequestStatus({status:"no-dependencies-params"});console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var u=function(){try{return s()}catch(e){return o(e)}};var c=function(e){try{window[Pe]=false;De(false);void xe.changeRequestStatus({status:"request-error",errorMessage:e.message});return u()}catch(e){return o(e)}};try{De(true);return Promise.resolve(xe.changeRequestStatus({status:"request-progress"})).then((function(e){try{window[Pe]=true;return Promise.resolve(Te.onRequest==null?void 0:Te.onRequest(n)).then((function(e){try{i=e;z==null?void 0:z(i);l=Ge(i);if(l.length===0){Fe.current=false}Je(l);De(false);window[Pe]=false;return u()}catch(e){return c(e)}}),c)}catch(e){return c(e)}}),c)}catch(e){c(e)}}catch(e){o(e)}}))}));D.useEffectCustom((function(){if(je)return;if(Ae.length){void We();return}var e=H(A).getState();if(e.requestStatus==="request-success"){U==null?void 0:U(e.treeList);return}if(!window[Pe]){void We()}else{U==null?void 0:U(e.treeList)}}),Ae);D.useEffectCustom((function(){if(je){Je(l||[])}}),[l]);var Je=h.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&ke.treeList.length===0){void xe.changeRequestStatus({status:"request-success"});return}void xe.setTreeList({treeList:e||[],childrenName:Ie.children,valueName:Ie.value});U==null?void 0:U(e)}));var Qe=function e(r,t){var n=[];r.forEach((function(e){if(!t&&Re!=null&&Re.includes(e))return;var r=G(e,ke.treeList,Ie);n=n.concat(r)}));return n};h.useUpdateEffect((function(){if(ze){var e=ke.treeTiledArray.filter((function(e){var r=e[Ie.label]||"";if(Le){return Le(e,ze)}return String(r).toLowerCase().includes(ze.toLowerCase())}));var r=Qe(e.map((function(e){return e[Ie.value]})),true);Se(Array.from(new Set(r)))}else{Se([])}}),[ze]);q(r,(function(){return{onClearSelectorList:function e(){void xe.resetTreeList()},getTreeDataList:function e(){return ke.treeList},onChangeExpandedKeys:function e(r){Se(r)},onSelectAll:function e(){var r=ke.treeTiledArray.map((function(e){return e[Ie.value]}));Se(r);d==null?void 0:d(r,undefined,ke.treeList,undefined)},onCancelSelectAll:function e(){Se([]);d==null?void 0:d(undefined)},onExpandedAll:function e(){var r=ke.treeTiledArray.map((function(e){return e[Ie.value]}));Se(r)},onCancelExpandedAll:function e(){Se([])}}}));var Xe=h.useCallbackRef((function(e){Se(e)}));var Ze=function r(t,n,a,i){if(s(t).length===0){var l=i==null?void 0:i.node[Ie.value];var o=ke.treeTiledArrayMap[l];e.onChange==null?void 0:e.onChange(undefined,o,[o],i)}else{e.onChange==null?void 0:e.onChange(t,n,a,i)}};var $e=h.useCallbackRef((function(r,t){var n=[];var a=[];if(K){n=e.checkStrictly?r.checked:r}else{n=r}n=s(n);if(K==false){a=n}else{if(ne&&ze&&!_e){var i=t==null?void 0:t.node;if(e.checkStrictly){if(t.checked==false){n=Be.filter((function(e){return e!=i[Ie.value]}))}else{n=Array.from(new Set([].concat(Be,n)))}a=n}else{var l=Ce==="2"||Ce==="3"?re(Be,ke.treeTiledArrayMap,Ie.children,Ie.value):Be;if(t.checked==false){n=Z([].concat(l),i,Ie.children,Ie.value)}else{n=Array.from(new Set([].concat(l,n)))}a=X(n,ke.treeTiledArrayMap,Ie.children,Ie.value)}}else{a=n}if(!e.checkStrictly){if(Ce==="2"){n=ee(a,ke.treeTiledArrayMap,Ie.children)}else if(Ce==="3"){n=$(a,ke.treeTiledArrayMap,Ie.children,Ie.value)}else if(O==false){n=ee(a,ke.treeTiledArrayMap,Ie.children)}else{n=a}}}var o=a.map((function(e){return ke.treeTiledArrayMap[e]}));if(se){var u=Ke.value;var c=Ke.label;var d=n.map((function(e){var r;return r={},r[c]=ke.treeTiledArrayMap[e][Ie.label],r[u]=ke.treeTiledArrayMap[e][Ie.value],r}));if(K){Ze(d,n.map((function(e){return ke.treeTiledArrayMap[e]})),o,t)}else{Ze(d[0],ke.treeTiledArrayMap[n[0]],o,t)}}else{if(K){Ze(n,n.map((function(e){return ke.treeTiledArrayMap[e]})),o,t)}else{Ze(n[0],ke.treeTiledArrayMap[n[0]],o,t)}}}));var er=h.useCallbackRef((function(e){return B==null?void 0:B(e)}));var rr=R((function(){var e=L(ke.treeList||[]);if(ze&&fe!=="highlight"){var r=o(L(ke.treeList||[]),(function(e){var r;if(Le){return Le(e,ze)}var t=(r=e[Ie.label])==null?void 0:r.toLowerCase();return t.indexOf(ze.toLowerCase())>=0}),{childrenName:Ie.children});return r}return e}),[Le,Ie.children,Ie.label,fe,ke.treeList,ze]);var tr=R((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var t;var n=(er==null?void 0:er(r))||r;var a=oe?undefined:n.disabled;var i=n[Ie.label];var l;if(ze){var s=i==null?void 0:i.toLowerCase();var o=s.indexOf(ze.toLowerCase());var u=s.substring(0,o);var d=s.slice(o+ze.length);var f=s.slice(o,o+ze.length);l=o>-1?V("span",{className:p({"v-tree-item-disabled":n.disabled}),children:[u,F("span",{className:"site-tree-search-value",children:f}),d]}):null}if(!l&&n.disabled){l=F("span",{className:p({"v-tree-item-disabled":n.disabled}),children:i})}var v=n[Ie.children];return y({},n,(t={disabled:a},t[Ie.label]=l||i,t._treeItemName=i,t._disabled=n.disabled,t[Ie.children]=c(v)&&v.length>0?e(v):undefined,t))}))};return e(rr)}),[rr,er,oe,Ie.label,Ie.children,ze]);var nr=h.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,s,o,u,c;if(r[Ie.children]){t();return a()}var d=function(){try{return a()}catch(e){return i(e)}};var f=function(e){try{void T.error(e.message||"数据加载异常...");n();return d()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest(((s=e.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(r))||{})).then((function(n){try{u=n;c=(o=e.loadDataServiceConfig)!=null&&o.onRequestResultAdapter?e.loadDataServiceConfig.onRequestResultAdapter(u):u;void xe.treeListAppendChildren({value:r[Ie.value],appendList:c,childrenName:Ie.children,valueName:Ie.value}).then((function(e){Je(e.treeList);t()}));return d()}catch(e){return f(e)}}),f)}catch(e){f(e)}}))}))}));var ar=h.useCallbackRef((function(r){var t=r==null?void 0:r[Ie.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var ir=h.useCallbackRef((function(r){var t,n,a;var i=r._treeItemName||r[Ie.label];var l=be==null?void 0:be(y({},r,(t={},t[Ie.label]=i,t)));if(l!=null&&l.operateList.length){return V(k,{children:[F("span",{className:"tree-item-title",children:(me==null?void 0:me(r))||(r==null?void 0:r[Ie.label])}),F(M,y({gap:5},l,{dropdownMenuProps:y({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:p("tree-item-title-operate",l.className)}))]})}if(Oe==="fold"){var s;var o=[];if((s=e.menuOptions)!=null&&s.fold){var u,c,d;o=((u=e.menuOptions)==null||(c=u[Oe])==null?void 0:c.call(u,y({},r,(d={},d[Ie.label]=i,d))))||[]}else{var f;o=(e.getMenuOptions==null?void 0:e.getMenuOptions(y({},r,(f={},f[Ie.label]=i,f))))||[]}return V(k,{children:[F("span",{className:"tree-item-title",children:(me==null?void 0:me(r))||(r==null?void 0:r[Ie.label])}),o.length>0&&F(E,{menuList:o,placement:"bottomRight",children:F(v,{})})]})}var m=(n=e.menuOptions)==null||n.tile==null?void 0:n.tile(y({},r,(a={},a[Ie.label]=i,a)));return V(k,{children:[F("span",{className:"tree-item-title",children:(me==null?void 0:me(r))||(r==null?void 0:r[Ie.label])}),m?F(M,y({gap:5},m,{className:p("tree-item-title-operate",m.className)})):null]})}));var lr=h.useDebounceCallback((function(r){He(r);e.onSearchValueChange==null?void 0:e.onSearchValueChange(r)}),300);var sr=h.useCallbackRef((function(e){lr(e.target.value)}));var or=h.useCallbackRef((function(r){if(!e.icon)return null;if(x(e.icon))return e.icon;var t=ar(r.data);return e.icon(y({},r,{isParent:!t,isLeaf:t}))}));var ur=R((function(){return{title:Ie.label,key:Ie.value,children:Ie.children}}),[Ie]);var cr=tr.length>0&&ke.requestStatus!=="request-error";var dr=y({showLine:{showLeafIcon:false},titleRender:ir,blockNode:true,switcherIcon:F(f,{}),onDrop:function e(r){if(pe){var t=pe(r);if(!t)return}var n=J(rr,Ie,r),a=n.dataList,i=n.dragNodeData;ve==null?void 0:ve(i);Je(a)},expandedKeys:Re},we,{fieldNames:ur,treeData:tr,onExpand:Xe,loadData:e.loadDataFlag?nr:undefined,style:{width:"100%"},icon:or});var fr={onCheck:$e,checkable:K,checkedKeys:Be};var vr={onSelect:$e,multiple:false,selectedKeys:Be};var pr=K?fr:vr;var mr=p("v-tree-wrapper","v-tree-wrapper-menu-"+Ve,ge);var hr=ke.treeList.length>0&&!cr&&ze;return V("div",{className:mr,style:t,children:[!!ne&&V("div",{className:"v-tree-wrapper-search-area",style:he,children:[F(P,{className:"v-tree-wrapper-search",placeholder:a(ae)?"搜索":ae,onChange:sr,value:ze,allowClear:true}),!!e.searchExtraElement&&F("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),cr?V("div",{className:"v-tree-wrapper-tree-wrapper",children:[F(C,{spinning:ke.requestStatus==="request-progress"}),F(w,y({},pr,dr,{className:"v-tree-wrapper-tree"}))]}):F(_,{status:ke.requestStatus,loading:Ee,messageConfig:y({"request-success":hr?"搜索结果为空":"暂无数据","request-error":ke.requestErrorMessage},ie),errorButton:F(j,{type:"primary",onClick:We,children:"重新获取数据"})})]})}));var ae=u(ne,{getTreeDataList:B});export{ae as TreeWrapper};
16
+ import{treeToArray as e,arrayToMap as r,treeToTiledArray as t,treeLeafParentsArray as n,isUndefinedOrNull as a,isNotEmptyArray as i,treeToTiledMap as l,toArray as s,treeFilter as o,attachPropertiesToComponent as u}from"@flatbiz/utils";import{isArray as c}from"@dimjs/lang/cjs/is-array";import{Model as d}from"@dimjs/model-react";import f from"@ant-design/icons/es/icons/CaretDownFilled";import v from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as p}from"@dimjs/utils/cjs/class-names";import{extend as m}from"@dimjs/utils/cjs/extend";import{hooks as h}from"@wove/react/cjs/hooks";import{get as g}from"@dimjs/utils/cjs/get";import{_ as y,a as b}from"../_rollupPluginBabelHelpers-a0769acd.js";import{cloneState as L}from"@dimjs/model";import{Spin as C,Tree as w,Button as j,message as T}from"antd";import{forwardRef as A,useState as N,useMemo as R,useRef as S,useImperativeHandle as q,Fragment as k,isValidElement as x}from"react";import{ButtonOperate as M}from"../button-operate/index.js";import{DropdownMenuWrapper as E}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as D}from"../fba-hooks/index.js";import{InputSearchWrapper as P}from"../input-search-wrapper/index.js";import{RequestStatus as _}from"../request-status/index.js";import{tree as I}from"@dimjs/utils/cjs/tree";import{isObject as O}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as V,jsx as F}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/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../use-responsive-point-21b8c601.js";var K={treeList:[],treeTiledArray:[],treeTiledArrayMap:{},queryIsEmpty:false};var U={actions:{setTreeList:function t(n){return function(t){t.treeList=n.treeList||[];t.treeTiledArray=e(t.treeList,n.childrenName);t.treeTiledArrayMap=r(t.treeTiledArray,n.valueName);t.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[];e.treeTiledArray=[];e.treeTiledArrayMap={}}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r.status;if(r.status==="request-error"){e.treeList=[];e.treeTiledArray=[];e.treeTiledArrayMap={};e.requestErrorMessage=r.errorMessage||"数据查询异常"}else{e.requestErrorMessage=undefined}}},treeListAppendChildren:function t(n){return function(t){var a=e(t.treeList,n.childrenName);var i=r(a,n.valueName);var l=i[n.value];if(l){if(c(n.appendList)&&n.appendList.length>0){l[n.childrenName]=n.appendList}else{l.isLeaf=true}}t.treeTiledArray=a;t.treeTiledArrayMap=i}}},state:K};var z={};var H=function e(r){if(!z[r]){z[r]=d(U)}return z[r]};var B=function e(r){var t=H(r).getState();return t.treeList};var Y=function r(t,n){var a=e(t,n.children).filter((function(e){var r=e[n.children];return r&&r.length>0})).map((function(e){return e[n.value]}));return a};var G=function e(r,a,i){var l=t(a,i);return n(r,l,true,{value:"value",parentValue:"parentValue"}).filter((function(e){var r=e[i.children];return r&&r.length>0})).map((function(e){return e.value}))};var W=function e(r,t){var n=a(r)?[]:r;n=c(n)?n:[n];n=n.map((function(e){if(O(e))return e[t.value];return e}));return n};var J=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=L(r);var f;c(d,i,(function(e,r,t){t.splice(r,1);f=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(f)}))}else{var v=[];var p;c(d,a,(function(e,r,t){v=t;p=r}));if(s===-1){v.splice(p,0,f)}else{v.splice(p+1,0,f)}}return{dataList:d,dragNodeData:Q(i,d,t)}};var Q=function r(t,n,a){var i;var l=a.value;var s=a.children;I.walkThroughTree((i={},i[l]=undefined,i[s]=n,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=e(n,s);var u=o.find((function(e){return e[l]===t}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__index"]}};var X=function r(t,n,a,l){var s={};var o=[];var u=[];t.forEach((function(e){var r;if(i((r=n[e])==null?void 0:r[a])){o.push(e)}else{s[e]=e}}));if(o.length>0){o.forEach((function(r){var i=e(n[r][a],a);if(Object.keys(s).length>i.length){var o=i.filter((function(e){return t.find((function(r){return r===e[l]}))}));if(o.length===i.length){u.push(r)}}}))}return t.filter((function(e){return u.find((function(r){return r==e}))||s[e]}))};var Z=function e(r,t,n,a){var i=l([t],{value:a,children:n});return r.filter((function(e){return!i[e]}))};var $=function e(r,t,n,a){var s={};r.forEach((function(e){var r;var o=(r=t[e])==null?void 0:r[n];if(i(o)){var u=l(o,{value:a,children:n});s=y({},s,u)}}));return r.filter((function(e){return!s[e]}))};var ee=function e(r,t,n){return r.filter((function(e){return!i(t[e][n])}))};var re=function r(t,n,a,l){var s=[].concat(t);t.forEach((function(r){var t;var o=(t=n[r])==null?void 0:t[a];if(i(o)){var u=e(o,a);s=s.concat(u.map((function(e){return e[l]})))}}));return Array.from(new Set(s))};var te=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","customSearchRule","checkableType"];var ne=A((function(e,r){var t=e.style,n=e.serviceConfig,i=e.effectDependencyList,l=e.selectorTreeList,u=e.value,d=e.onChange,A=e.modelKey,I=e.checkableResponseParentNode,O=I===void 0?true:I,K=e.checkable,U=e.onSelectorTreeListChange,z=e.onRequestResponseChange,B=e.treeItemDataAdapter,Q=e.searchValue,ne=e.showSearch,ae=e.searchPlaceholder,ie=e.requestMessageConfig,le=e.labelInValueFieldNames,se=e.labelInValue,oe=e.disabledCanUse,ue=e.menuLayoutType,ce=e.menuTriggerType,de=e.initRootExpand,fe=e.searchResultType,ve=e.onDropNodeHandle,pe=e.onDropPrev,me=e.labelRender,he=e.searchStyle,ge=e.className,ye=e.defaultExpandAll,be=e.menus,Le=e.customSearchRule,Ce=e.checkableType,we=b(e,te);var je=e.hasOwnProperty("selectorTreeList");var Te=n||{};var Ae=i||[];var Ne=N([]),Re=Ne[0],Se=Ne[1];var qe=H(A).useStore(),ke=qe[0],xe=qe[1];var Me=D.useSafeState(false),Ee=Me[0],De=Me[1];var Pe="request-progress-"+e.modelKey;var _e=fe==="highlight";var Ie=R((function(){return y({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var Oe=ue===undefined?"fold":ue;var Ve=ce===undefined?"click":ce;var Fe=S(true);var Ke=R((function(){return y({label:"label",value:"value"},le)}),[le]);var Ue=N(),ze=Ue[0],He=Ue[1];var Be=R((function(){return W(u,Ke)}),[Ke,u]);D.useEffectCustom((function(){if(ke.treeList.length>0){if(Fe.current&&a(u)){Fe.current=false;if(ye){Se(Y(ke.treeList,Ie));return}else if(de&&ke.treeList.length){Se([ke.treeList[0][Ie.value]]);return}}if(!a(u)){var e=Qe(Be,true);Se(Array.from(new Set(Re==null?void 0:Re.concat(e))))}}}),[u,ke.treeList,Be]);var Ye=function e(r){return r===""||a(r)};var Ge=function e(r){var t=r;if(Te.onRequestResultAdapter){t=Te.onRequestResultAdapter(r)}else if(Ie.list){t=g(r,Ie.list,[])||[]}if(!c(t)){console.warn("接口返回数据为非数组结构,确认是否需要配置fieldNames.list进行解析");return[]}return t};D.useEffectCustom((function(){He(Q)}),[Q]);var We=h.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{Fe.current=false;De(false);void T.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!Te.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=Te.requiredParamsKeys;n=m({},Te.params);if(t){a=t.find((function(e){return Ye(n[e])}));if(a){void xe.changeRequestStatus({status:"no-dependencies-params"});console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var u=function(){try{return s()}catch(e){return o(e)}};var c=function(e){try{window[Pe]=false;De(false);void xe.changeRequestStatus({status:"request-error",errorMessage:e.message});return u()}catch(e){return o(e)}};try{De(true);return Promise.resolve(xe.changeRequestStatus({status:"request-progress"})).then((function(e){try{window[Pe]=true;return Promise.resolve(Te.onRequest==null?void 0:Te.onRequest(n)).then((function(e){try{i=e;z==null?void 0:z(i);l=Ge(i);if(l.length===0){Fe.current=false}Je(l);De(false);window[Pe]=false;return u()}catch(e){return c(e)}}),c)}catch(e){return c(e)}}),c)}catch(e){c(e)}}catch(e){o(e)}}))}));D.useEffectCustom((function(){if(je)return;if(Ae.length){void We();return}var e=H(A).getState();if(e.requestStatus==="request-success"){U==null?void 0:U(e.treeList);return}if(!window[Pe]){void We()}else{U==null?void 0:U(e.treeList)}}),Ae);D.useEffectCustom((function(){if(je){Je(l||[])}}),[l]);var Je=h.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&ke.treeList.length===0){void xe.changeRequestStatus({status:"request-success"});return}void xe.setTreeList({treeList:e||[],childrenName:Ie.children,valueName:Ie.value});U==null?void 0:U(e)}));var Qe=function e(r,t){var n=[];r.forEach((function(e){if(!t&&Re!=null&&Re.includes(e))return;var r=G(e,ke.treeList,Ie);n=n.concat(r)}));return n};h.useUpdateEffect((function(){if(ze){var e=ke.treeTiledArray.filter((function(e){var r=e[Ie.label]||"";if(Le){return Le(e,ze)}return String(r).toLowerCase().includes(ze.toLowerCase())}));var r=Qe(e.map((function(e){return e[Ie.value]})),true);Se(Array.from(new Set(r)))}else{Se([])}}),[ze]);q(r,(function(){return{onClearSelectorList:function e(){void xe.resetTreeList()},getTreeDataList:function e(){return ke.treeList},onChangeExpandedKeys:function e(r){Se(r)},onSelectAll:function e(){var r=ke.treeTiledArray.map((function(e){return e[Ie.value]}));Se(r);d==null?void 0:d(r,undefined,ke.treeList,undefined)},onCancelSelectAll:function e(){Se([]);d==null?void 0:d(undefined)},onExpandedAll:function e(){var r=ke.treeTiledArray.map((function(e){return e[Ie.value]}));Se(r)},onCancelExpandedAll:function e(){Se([])}}}));var Xe=h.useCallbackRef((function(e){Se(e)}));var Ze=function r(t,n,a,i){if(s(t).length===0){var l=i==null?void 0:i.node[Ie.value];var o=ke.treeTiledArrayMap[l];e.onChange==null?void 0:e.onChange(undefined,o,[o],i)}else{e.onChange==null?void 0:e.onChange(t,n,a,i)}};var $e=h.useCallbackRef((function(r,t){var n=[];var a=[];if(K){n=e.checkStrictly?r.checked:r}else{n=r}n=s(n);if(K==false){a=n}else{if(ne&&ze&&!_e){var i=t==null?void 0:t.node;if(e.checkStrictly){if(t.checked==false){n=Be.filter((function(e){return e!=i[Ie.value]}))}else{n=Array.from(new Set([].concat(Be,n)))}a=n}else{var l=Ce==="2"||Ce==="3"?re(Be,ke.treeTiledArrayMap,Ie.children,Ie.value):Be;if(t.checked==false){n=Z([].concat(l),i,Ie.children,Ie.value)}else{n=Array.from(new Set([].concat(l,n)))}a=X(n,ke.treeTiledArrayMap,Ie.children,Ie.value)}}else{a=n}if(!e.checkStrictly){if(Ce==="2"){n=ee(a,ke.treeTiledArrayMap,Ie.children)}else if(Ce==="3"){n=$(a,ke.treeTiledArrayMap,Ie.children,Ie.value)}else if(O==false){n=ee(a,ke.treeTiledArrayMap,Ie.children)}else{n=a}}}var o=a.map((function(e){return ke.treeTiledArrayMap[e]}));if(se){var u=Ke.value;var c=Ke.label;var d=n.map((function(e){var r;return r={},r[c]=ke.treeTiledArrayMap[e][Ie.label],r[u]=ke.treeTiledArrayMap[e][Ie.value],r}));if(K){Ze(d,n.map((function(e){return ke.treeTiledArrayMap[e]})),o,t)}else{Ze(d[0],ke.treeTiledArrayMap[n[0]],o,t)}}else{if(K){Ze(n,n.map((function(e){return ke.treeTiledArrayMap[e]})),o,t)}else{Ze(n[0],ke.treeTiledArrayMap[n[0]],o,t)}}}));var er=h.useCallbackRef((function(e){return B==null?void 0:B(e)}));var rr=R((function(){var e=L(ke.treeList||[]);if(ze&&fe!=="highlight"){var r=o(L(ke.treeList||[]),(function(e){var r;if(Le){return Le(e,ze)}var t=(r=e[Ie.label])==null?void 0:r.toLowerCase();return t.indexOf(ze.toLowerCase())>=0}),{childrenName:Ie.children});return r}return e}),[Le,Ie.children,Ie.label,fe,ke.treeList,ze]);var tr=R((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var t;var n=(er==null?void 0:er(r))||r;var a=oe?undefined:n.disabled;var i=n[Ie.label];var l;if(ze){var s=i==null?void 0:i.toLowerCase();var o=s.indexOf(ze.toLowerCase());var u=s.substring(0,o);var d=s.slice(o+ze.length);var f=s.slice(o,o+ze.length);l=o>-1?V("span",{className:p({"v-tree-item-disabled":n.disabled}),children:[u,F("span",{className:"site-tree-search-value",children:f}),d]}):null}if(!l&&n.disabled){l=F("span",{className:p({"v-tree-item-disabled":n.disabled}),children:i})}var v=n[Ie.children];return y({},n,(t={disabled:a},t[Ie.label]=l||i,t._treeItemName=i,t._disabled=n.disabled,t[Ie.children]=c(v)&&v.length>0?e(v):undefined,t))}))};return e(rr)}),[rr,er,oe,Ie.label,Ie.children,ze]);var nr=h.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,s,o,u,c;if(r[Ie.children]){t();return a()}var d=function(){try{return a()}catch(e){return i(e)}};var f=function(e){try{void T.error(e.message||"数据加载异常...");n();return d()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest(((s=e.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(r))||{})).then((function(n){try{u=n;c=(o=e.loadDataServiceConfig)!=null&&o.onRequestResultAdapter?e.loadDataServiceConfig.onRequestResultAdapter(u):u;void xe.treeListAppendChildren({value:r[Ie.value],appendList:c,childrenName:Ie.children,valueName:Ie.value}).then((function(e){Je(e.treeList);t()}));return d()}catch(e){return f(e)}}),f)}catch(e){f(e)}}))}))}));var ar=h.useCallbackRef((function(r){var t=r==null?void 0:r[Ie.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var ir=h.useCallbackRef((function(r){var t,n,a;var i=r._treeItemName||r[Ie.label];var l=be==null?void 0:be(y({},r,(t={},t[Ie.label]=i,t)));if(l!=null&&l.operateList.length){return V(k,{children:[F("span",{className:"tree-item-title",children:(me==null?void 0:me(r))||(r==null?void 0:r[Ie.label])}),F(M,y({gap:5},l,{dropdownMenuProps:y({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:p("tree-item-title-operate",l.className)}))]})}if(Oe==="fold"){var s;var o=[];if((s=e.menuOptions)!=null&&s.fold){var u,c,d;o=((u=e.menuOptions)==null||(c=u[Oe])==null?void 0:c.call(u,y({},r,(d={},d[Ie.label]=i,d))))||[]}else{var f;o=(e.getMenuOptions==null?void 0:e.getMenuOptions(y({},r,(f={},f[Ie.label]=i,f))))||[]}return V(k,{children:[F("span",{className:"tree-item-title",children:(me==null?void 0:me(r))||(r==null?void 0:r[Ie.label])}),o.length>0&&F(E,{menuList:o,placement:"bottomRight",children:F(v,{})})]})}var m=(n=e.menuOptions)==null||n.tile==null?void 0:n.tile(y({},r,(a={},a[Ie.label]=i,a)));return V(k,{children:[F("span",{className:"tree-item-title",children:(me==null?void 0:me(r))||(r==null?void 0:r[Ie.label])}),m?F(M,y({gap:5},m,{className:p("tree-item-title-operate",m.className)})):null]})}));var lr=h.useDebounceCallback((function(r){He(r);e.onSearchValueChange==null?void 0:e.onSearchValueChange(r)}),300);var sr=h.useCallbackRef((function(e){lr(e.target.value)}));var or=h.useCallbackRef((function(r){if(!e.icon)return null;if(x(e.icon))return e.icon;var t=ar(r.data);return e.icon(y({},r,{isParent:!t,isLeaf:t}))}));var ur=R((function(){return{title:Ie.label,key:Ie.value,children:Ie.children}}),[Ie]);var cr=tr.length>0&&ke.requestStatus!=="request-error";var dr=y({showLine:{showLeafIcon:false},titleRender:ir,blockNode:true,switcherIcon:F(f,{}),onDrop:function e(r){if(pe){var t=pe(r);if(!t)return}var n=J(rr,Ie,r),a=n.dataList,i=n.dragNodeData;ve==null?void 0:ve(i);Je(a)},expandedKeys:Re},we,{fieldNames:ur,treeData:tr,onExpand:Xe,loadData:e.loadDataFlag?nr:undefined,style:{width:"100%"},icon:or});var fr={onCheck:$e,checkable:K,checkedKeys:Be};var vr={onSelect:$e,multiple:false,selectedKeys:Be};var pr=K?fr:vr;var mr=p("v-tree-wrapper","v-tree-wrapper-menu-"+Ve,ge);var hr=ke.treeList.length>0&&!cr&&ze;return V("div",{className:mr,style:t,children:[!!ne&&V("div",{className:"v-tree-wrapper-search-area",style:he,children:[F(P,{className:"v-tree-wrapper-search",placeholder:a(ae)?"搜索":ae,onChange:sr,value:ze,allowClear:true}),!!e.searchExtraElement&&F("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),cr?V("div",{className:"v-tree-wrapper-tree-wrapper",children:[F(C,{spinning:ke.requestStatus==="request-progress"}),F(w,y({},pr,dr,{className:"v-tree-wrapper-tree"}))]}):F(_,{status:ke.requestStatus,loading:Ee,messageConfig:y({"request-success":hr?"搜索结果为空":"暂无数据","request-error":ke.requestErrorMessage},ie),errorButton:F(j,{type:"primary",onClick:We,children:"重新获取数据"})})]})}));var ae=u(ne,{getTreeDataList:B});export{ae as TreeWrapper};
17
17
  //# sourceMappingURL=index.js.map