@flatbiz/antd 4.5.32 → 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.
- package/esm/box-grid/index.js.map +1 -1
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate/index.js.map +1 -1
- package/esm/cascader-wrapper/index.js +1 -1
- package/esm/cascader-wrapper/index.js.map +1 -1
- package/esm/dropdown-menu-wrapper/index.js.map +1 -1
- package/esm/easy-form/index.js +1 -1
- package/esm/easy-form/index.js.map +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/index.js +2 -1
- package/esm/label-value-render/index.css +1 -1
- package/esm/label-value-render/index.js +1 -1
- package/esm/label-value-render/index.js.map +1 -1
- package/esm/radio-group-wrapper/index.js +1 -1
- package/esm/radio-group-wrapper/index.js.map +1 -1
- package/esm/selector-wrapper/index.js +1 -1
- package/esm/selector-wrapper/index.js.map +1 -1
- package/esm/selector-wrapper-search/index.js +1 -1
- package/esm/selector-wrapper-search/index.js.map +1 -1
- package/esm/selector-wrapper-simple/index.js +1 -1
- package/esm/selector-wrapper-simple/index.js.map +1 -1
- package/esm/styles/index.css +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/table-cell-render/index.js.map +1 -1
- package/esm/tabs-sticky/index.css +1 -0
- package/esm/tabs-sticky/index.js +5 -0
- package/esm/tabs-sticky/index.js.map +1 -0
- package/esm/tree-modal/index.js +1 -1
- package/esm/tree-modal/index.js.map +1 -1
- package/esm/tree-modal-selector/index.js +1 -1
- package/esm/tree-modal-selector/index.js.map +1 -1
- package/esm/tree-selector-wrapper/index.js +1 -1
- package/esm/tree-selector-wrapper/index.js.map +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper/index.js.map +1 -1
- package/index.d.ts +57 -23
- package/package.json +3 -3
|
@@ -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
|
|
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":";
|
|
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"}
|
|
@@ -3,5 +3,5 @@ import './../request-status/index.css';
|
|
|
3
3
|
import './../fba-hooks/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{isString as r}from"@dimjs/lang/cjs/is-string";import{hooks as n}from"@wove/react/cjs/hooks";import{a as t,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isUndefinedOrNull as
|
|
6
|
+
import e from"@ant-design/icons/es/icons/RedoOutlined";import{isString as r}from"@dimjs/lang/cjs/is-string";import{hooks as n}from"@wove/react/cjs/hooks";import{a as t,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isUndefinedOrNull as s,toArray as u,valueIsEqual as i,arrayFind as a}from"@flatbiz/utils";import{Select as l,Button as c}from"antd";import{useState as f,useMemo as v,useRef as d}from"react";import{RequestStatus as h}from"../request-status/index.js";import{isDeepEqual as p}from"@dimjs/lang/cjs/is-deep-equal";import{isArray as m}from"@dimjs/lang/cjs/is-array";import{get as g}from"@dimjs/utils/cjs/get";import{json as C}from"@dimjs/utils/cjs/json";import q from"pubsub-js";import{fbaHooks as w}from"../fba-hooks/index.js";import{isObject as y}from"@dimjs/lang/cjs/is-object";import{jsx as _,jsxs as b}from"react/jsx-runtime";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";var j=function e(r){var n=r.cacheKey,t=r.serviceConfig,o=r.hasOuterSelectorList,u=r.outerSelectorList,i=r.onRespDataChange,a=r.onSelectorRequestError,l=r.onChange,c=r.useCache,d=r.fieldNames;var h=t==null?void 0:t.params;var y=(t==null?void 0:t.requiredParamsKeys)||[];var _=h&&Object.keys(h).length>0;var b=f(),j=b[0],R=b[1];var S=f(),L=S[0],O=S[1];var P=f(Date.now()),A=P[0],k=P[1];var x=v((function(){try{if(_){var e=JSON.stringify(C.sort(h));if(e==="{}"){return undefined}return e}}catch(e){}return undefined}),[_,h]);var N=""+x;var E=x+"_status";var D=n+"_"+N;var I=w.usePrevious(x);var K=w.usePrevious(h);var M=function e(r){var n=r;if(t!=null&&t.onRequestResultAdapter){n=t==null?void 0:t.onRequestResultAdapter(r)}else if(d!=null&&d.list){n=g(r,d==null?void 0:d.list)}if(n&&!m(n)){console.warn("待渲染数据为非数组结构",n);return[]}return n||[]};var B=function e(){var r;return(r=window["__selector_wrapper_"])==null?void 0:r[n]};var J=function e(){var r;return(r=B())==null?void 0:r[N]};var T=function e(){var r;return(r=B())==null?void 0:r[E]};var V=function e(r,t){if(!window["__selector_wrapper_"]){window["__selector_wrapper_"]={}}if(!window["__selector_wrapper_"][n]){window["__selector_wrapper_"][n]={}}window["__selector_wrapper_"][n][r]=t};var z=function e(r){V(E,r);O(r)};var F=function e(){return new Promise((function(e,r){var n,o;var s=function(n){try{console.error(n);z("request-error");R(undefined);setTimeout((function(){q.publish(D,{status:"request-error"})}));a==null?void 0:a(n);return e(Promise.reject())}catch(e){return r(e)}};try{z("request-progress");return Promise.resolve(t==null||t.onRequest==null?void 0:t.onRequest(h||{})).then((function(r){try{n=r;o=M(n);V(N,o);z("request-success");setTimeout((function(){q.publish(D,{status:"request-success",respData:o})}));return e(o)}catch(e){return s(e)}}),s)}catch(e){s(e)}}))};w.useEffectCustomAsync((function(){return new Promise((function(e,r){var n,f,v,d,m,g;if(o){O("request-success");R(u);i==null?void 0:i(u);return e()}if(y.length>0){n=h?y.find((function(e){return s(h[e])})):true;if(n){R([]);O("no-dependencies-params");if(I){l==null?void 0:l(undefined)}return e()}if(c===false){if(p(h,K)){return e()}var C=function(){try{return e()}catch(e){return r(e)}};var w=function(e){try{console.error(e);O("request-error");R(undefined);a==null?void 0:a(e);return C()}catch(e){return r(e)}};try{O("request-progress");return Promise.resolve(t==null||t.onRequest==null?void 0:t.onRequest(h||{})).then((function(e){try{f=e;v=M(f);O("request-success");R(v);i==null?void 0:i(v);return C()}catch(e){return w(e)}}),w)}catch(e){w(e)}}return _.call(this)}function _(){d=T();if(d==="request-success"){m=J();R(m);O(d);i==null?void 0:i(m);return e()}if(d==="request-progress"){O(d);q.subscribe(D,(function(e,r){var n=r.status,t=r.respData;if(n==="request-success"){O(n);R(t);i==null?void 0:i(t)}else{O("request-error");R(undefined)}}));return e()}var n=function(){try{return e()}catch(e){return r(e)}};var t=function(e){try{console.error(e);O("request-error");R(undefined);a==null?void 0:a(e);return n()}catch(e){return r(e)}};try{return Promise.resolve(F()).then((function(e){try{g=e;R(g);O("request-success");i==null?void 0:i(g);return n()}catch(e){return t(e)}}),t)}catch(e){t(e)}}return _.call(this)}))}),[JSON.stringify(h),u,A]);var H=function e(){k(Date.now())};return{requestStatus:L,stateSelectorList:j,serviceRequestParamsStringify:x,onRefreshRequest:H}};var R=function e(r,n){var t=u(r);t=t.map((function(e){if(y(e))return e[n];return e}));return t};var S=["serviceConfig","showAllOption","onSelectorListChange","onSelectorListAllChange","onSelectorRequestError","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","fieldNames","value","labelInValue","useCache"];var L=function s(f){var p=f.serviceConfig,m=f.showAllOption,g=f.onSelectorListChange,C=f.onSelectorListAllChange,q=f.onSelectorRequestError,w=f.onLabelRenderAdapter,y=f.requestMessageConfig,L=f.selectorList,O=f.modelKey,P=f.fieldNames,A=f.value,k=f.labelInValue,x=f.useCache,N=t(f,S);var E=d(true);var D=f.hasOwnProperty("selectorList");var I=o({label:"label",value:"value",disabled:"disabled"},P);var K=I.label,M=I.value,B=I.disabled;var J=v((function(){var e;if(!m)return null;var r=m===true;return e={},e[K]=r?"全部":m.label,e[M]=r?"":m.value,e}),[K,M,m]);var T=i(f.mode,["multiple"]);var V=j({fieldNames:I,cacheKey:O,hasOuterSelectorList:D,onChange:f.onChange,serviceConfig:p,outerSelectorList:L,onRespDataChange:function e(r){if(E.current){g==null?void 0:g(r||[]);E.current=false}C==null?void 0:C(r||[])},onSelectorRequestError:q,useCache:x===undefined?true:x}),z=V.requestStatus,F=V.stateSelectorList,H=V.onRefreshRequest;var W=n.useCallbackRef((function(e){if(k){if(T){f.onChange==null?void 0:f.onChange(e,e)}else{f.onChange==null?void 0:f.onChange(e[0],e)}}else{var r=e.map((function(e){return e[M]}));if(T){f.onChange==null?void 0:f.onChange(r,e)}else{f.onChange==null?void 0:f.onChange(r[0],e[0])}}}));var G=n.useCallbackRef((function(e,r){if(!r)return f.onChange==null?void 0:f.onChange(undefined);var n=u(r);var t=[];n.forEach((function(e){if(m&&J&&e.value===J[M]){t.push(J)}else{var r=a(F||[],e.value,M);if(r){t.push(r)}}}));W(t)}));var Q=v((function(){if(z!=="request-success")return[];if(!F||F.length===0)return[];if(!J)return F;return[J].concat(F)}),[J,z,F]);var U=z==="request-progress";var X=v((function(){var e=R(A,M);return T?e:e[0]}),[T,M,A]);var Y=n.useCallbackRef((function(e,n){var t=u(n.children);var o="";t.forEach((function(e){if(r(e))o+=e}));return o.toLowerCase().indexOf(e.toLowerCase())>=0}));return _(l,o({showSearch:true,allowClear:true,popupMatchSelectWidth:false,filterOption:Y},N,{style:o({width:"100%"},f.style),value:X,loading:U,onChange:G,fieldNames:undefined,suffixIcon:z==="request-error"?_(e,{spin:U,onClick:H}):N.suffixIcon,notFoundContent:_(h,{status:z,loading:U,messageConfig:o({"request-init":"暂无数据"},y),errorButton:_(c,{type:"primary",onClick:H,children:"重新获取数据"})}),children:Q.map((function(e,r){var n=e[M];var t=e[K];return b(l.Option,{value:n,label:t,disabled:e[B],children:[f.showIcon?_("span",{className:"v-selector-item-icon",children:f.icon==null?void 0:f.icon(e,r)}):null,w?w(e):t]},n+"-"+r)}))}))};export{L as SelectorWrapper};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, type TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { type TRequestStatus } from '../request-status';\nimport { type SelectorServiceConfig, type SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams =\n serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(\n json.sort(serviceRequestParams)\n );\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(\n serviceRequestParamsStringify\n );\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig?.onRequestResultAdapter(\n respData as unknown as TPlainObject\n );\n }\n if (fieldNames?.list) {\n const result = get(respData, fieldNames?.list);\n return isArray(result) ? result : [];\n }\n return respData;\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(\n serviceRequestParams || {}\n );\n const respAdapterData = serviceRespDataAdapter(respData) || [];\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) =>\n isUndefinedOrNull(serviceRequestParams[key])\n )\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(\n serviceRequestParams || {}\n );\n const respAdapterData = serviceRespDataAdapter(respData) || [];\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [JSON.stringify(serviceRequestParams), outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport { RequestStatus } from '../request-status';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索调用服务模式,可使用组件 SelectorWrapperSearch\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n ...fieldNames,\n };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKey,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n popupMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n );\n};\n"],"names":["useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","_useState","useState","stateSelectorList","setStateSelectorList","_useState2","requestStatus","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","useMemo","sortDataStringify","JSON","stringify","_json","sort","undefined","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","fbaHooks","usePrevious","prevParams","serviceRespDataAdapter","respData","onRequestResultAdapter","list","result","_get","_isArray","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","console","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","_dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","dataList","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","hasOwnProperty","mergeFieldNames","_extends","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","_hooks","useCallbackRef","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","loading","selectValue","filterOption","input","option","children","mergeString","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","popupMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper/use-request.ts","@flatbiz/antd/src/selector-wrapper/utils.ts","@flatbiz/antd/src/selector-wrapper/selector-wrapper.tsx"],"sourcesContent":["import { isArray, isDeepEqual } from '@dimjs/lang';\nimport { get, json } from '@dimjs/utils';\nimport { isUndefinedOrNull, type TPlainObject } from '@flatbiz/utils';\nimport pubSub from 'pubsub-js';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { type TRequestStatus } from '../request-status';\nimport { type SelectorServiceConfig, type SelectorWrapperProps } from './types';\n\nexport const useRequest = (options: {\n cacheKey: string;\n serviceConfig?: SelectorServiceConfig;\n hasOuterSelectorList?: boolean;\n onChange?: SelectorWrapperProps['onChange'];\n outerSelectorList?: SelectorWrapperProps['selectorList'];\n onRespDataChange?: (dataList?: TPlainObject[]) => void;\n onSelectorRequestError?: SelectorWrapperProps['onSelectorRequestError'];\n useCache: boolean;\n fieldNames: SelectorWrapperProps['fieldNames'];\n}) => {\n const {\n cacheKey,\n serviceConfig,\n hasOuterSelectorList,\n outerSelectorList,\n onRespDataChange,\n onSelectorRequestError,\n onChange,\n useCache,\n fieldNames,\n } = options;\n const serviceRequestParams = serviceConfig?.params;\n const requiredParamsKeys = serviceConfig?.requiredParamsKeys || [];\n const hasServiceRequestParams = serviceRequestParams && Object.keys(serviceRequestParams).length > 0;\n\n const [stateSelectorList, setStateSelectorList] = useState<TPlainObject[]>();\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>();\n const [refreshKey, setRefreshKey] = useState(Date.now());\n\n const serviceRequestParamsStringify = useMemo(() => {\n try {\n if (hasServiceRequestParams) {\n const sortDataStringify = JSON.stringify(json.sort(serviceRequestParams));\n if (sortDataStringify === '{}') {\n return undefined;\n }\n return sortDataStringify;\n }\n } catch (error) {}\n return undefined;\n }, [hasServiceRequestParams, serviceRequestParams]);\n // 将 undefined => 'undefined'\n const serviceRequestCahceKey = `${serviceRequestParamsStringify}`;\n const serviceRequestCahceStatusKey = `${serviceRequestParamsStringify}_status`;\n const pubSubKey = `${cacheKey}_${serviceRequestCahceKey}`;\n\n // 上一个参数值\n const prevServiceRequestParamsStringify = fbaHooks.usePrevious(serviceRequestParamsStringify);\n const prevParams = fbaHooks.usePrevious(serviceRequestParams);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig?.onRequestResultAdapter) {\n result = serviceConfig?.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const getWindowCacheData = () => {\n return window['__selector_wrapper_']?.[cacheKey];\n };\n const getWindowCacheValue = () => {\n return getWindowCacheData()?.[serviceRequestCahceKey];\n };\n const getWindowCacheStatus = () => {\n return getWindowCacheData()?.[serviceRequestCahceStatusKey];\n };\n\n const setWindowCache = (key, value) => {\n if (!window['__selector_wrapper_']) {\n window['__selector_wrapper_'] = {};\n }\n if (!window['__selector_wrapper_'][cacheKey]) {\n window['__selector_wrapper_'][cacheKey] = {};\n }\n window['__selector_wrapper_'][cacheKey][key] = value;\n };\n\n const onChangeRequestStatus = (status: TRequestStatus) => {\n setWindowCache(serviceRequestCahceStatusKey, status);\n setRequestStatus(status);\n };\n\n const onRequest = async () => {\n try {\n onChangeRequestStatus('request-progress');\n\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n\n setWindowCache(serviceRequestCahceKey, respAdapterData);\n onChangeRequestStatus('request-success');\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-success',\n respData: respAdapterData,\n });\n });\n\n return respAdapterData;\n } catch (error) {\n console.error(error);\n onChangeRequestStatus('request-error');\n setStateSelectorList(undefined);\n setTimeout(() => {\n pubSub.publish(pubSubKey, {\n status: 'request-error',\n });\n });\n onSelectorRequestError?.(error);\n return Promise.reject();\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (hasOuterSelectorList) {\n setRequestStatus('request-success');\n setStateSelectorList(outerSelectorList);\n onRespDataChange?.(outerSelectorList);\n return;\n }\n if (requiredParamsKeys.length > 0) {\n const isEmpty = serviceRequestParams\n ? requiredParamsKeys.find((key) => isUndefinedOrNull(serviceRequestParams[key]))\n : true;\n if (isEmpty) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setStateSelectorList([]);\n setRequestStatus('no-dependencies-params');\n /**\n * 怎么判断数据是从有到无的\n * 每一次 params 变少,只要 上一次 params 值存在,就应该清空 value 值\n */\n if (prevServiceRequestParamsStringify) {\n onChange?.(undefined);\n }\n return;\n }\n\n // 不使用缓存模式\n if (useCache === false) {\n // 判断参数是否发生变化\n if (isDeepEqual(serviceRequestParams, prevParams)) {\n return;\n }\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig?.onRequest?.(serviceRequestParams || {});\n const respAdapterData = serviceRespDataAdapter(respData);\n setRequestStatus('request-success');\n setStateSelectorList(respAdapterData);\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n return;\n }\n }\n\n /**\n * 此处无法判断 调用props.onChange?.(undefined);\n * A、B、C\n * 例如:C依赖A、B,当外部只修改了一个元素,理论上应该应该清空C value 值(调用onChange(undefined)),如果此时外部直接回填A、B、C时,C无法回填成功;该场景只能在A、B的onChange事件中,清空C\n */\n // if (prevServiceRequestParamsStringify) {\n // props.onChange?.(undefined);\n // }\n\n const status = getWindowCacheStatus();\n if (status === 'request-success') {\n const dataList = getWindowCacheValue();\n setStateSelectorList(dataList);\n setRequestStatus(status);\n onRespDataChange?.(dataList);\n return;\n }\n if (status === 'request-progress') {\n setRequestStatus(status);\n pubSub.subscribe(pubSubKey, (_msg, { status, respData }) => {\n if (status === 'request-success') {\n setRequestStatus(status);\n setStateSelectorList(respData);\n onRespDataChange?.(respData);\n } else {\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n }\n });\n return;\n }\n try {\n const respAdapterData = await onRequest();\n setStateSelectorList(respAdapterData);\n setRequestStatus('request-success');\n onRespDataChange?.(respAdapterData);\n } catch (error) {\n console.error(error);\n setRequestStatus('request-error');\n setStateSelectorList(undefined);\n onSelectorRequestError?.(error);\n }\n }, [JSON.stringify(serviceRequestParams), outerSelectorList, refreshKey]);\n\n const onRefreshRequest = () => {\n setRefreshKey(Date.now());\n };\n\n return {\n requestStatus,\n stateSelectorList,\n serviceRequestParamsStringify,\n onRefreshRequest,\n };\n};\n","import { isObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\n/**\n * value存在两种格式\n * 1. string | number;\n * 2. labelInValue 格式\n * @param data\n * @param labelInValueFieldNames\n * @returns\n */\nexport const getVauleList = (data, valueKey: string | number) => {\n let valueList = toArray<string | number>(data);\n valueList = valueList.map((item) => {\n if (isObject(item)) return item[valueKey];\n return item;\n });\n return valueList;\n};\n","import { arrayFind, TAny, toArray, TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select } from 'antd';\nimport { useMemo, useRef } from 'react';\nimport './style.less';\n\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isString } from '@dimjs/lang';\nimport { RequestStatus } from '../request-status';\nimport { SelectorWrapperProps } from './types';\nimport { useRequest } from './use-request';\nimport { getVauleList } from './utils';\nexport * from './types';\n/**\n * 选择器包装组件\n * ```\n * 1. 不支持搜索调用服务模式,可使用组件 SelectorWrapperSearch\n * ```\n */\nexport const SelectorWrapper = (props: SelectorWrapperProps) => {\n const {\n serviceConfig,\n showAllOption,\n onSelectorListChange,\n onSelectorListAllChange,\n onSelectorRequestError,\n onLabelRenderAdapter,\n requestMessageConfig,\n selectorList: outerSelectorList,\n modelKey,\n fieldNames,\n value,\n labelInValue,\n useCache,\n ...otherProps\n } = props;\n\n const firstRenderSelectList = useRef(true);\n\n // props 是否存在 selectorList,selectorList = undefined 也算存在\n const hasOuterSelectorList = props.hasOwnProperty('selectorList');\n const mergeFieldNames = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n ...fieldNames,\n };\n\n const {\n label: optionsItemLabelField,\n value: optionsItemValueField,\n disabled: optionsItemDisabledField,\n } = mergeFieldNames;\n\n const allOptionConfig = useMemo(() => {\n if (!showAllOption) return null;\n const isTrue = showAllOption === true;\n return {\n [optionsItemLabelField]: isTrue ? '全部' : showAllOption.label,\n [optionsItemValueField]: isTrue ? '' : showAllOption.value,\n };\n }, [optionsItemLabelField, optionsItemValueField, showAllOption]);\n\n const isMultiple = valueIsEqual(props.mode, ['multiple']);\n\n const { requestStatus, stateSelectorList, onRefreshRequest } = useRequest({\n fieldNames: mergeFieldNames,\n cacheKey: modelKey,\n hasOuterSelectorList,\n onChange: props.onChange,\n serviceConfig,\n outerSelectorList,\n onRespDataChange: (dataList) => {\n if (firstRenderSelectList.current) {\n onSelectorListChange?.(dataList || []);\n firstRenderSelectList.current = false;\n }\n onSelectorListAllChange?.(dataList || []);\n },\n onSelectorRequestError,\n useCache: useCache === undefined ? true : useCache,\n });\n\n const onRespChange = hooks.useCallbackRef((selectedList: TPlainObject[]) => {\n if (labelInValue) {\n if (isMultiple) {\n props.onChange?.(selectedList, selectedList);\n } else {\n props.onChange?.(selectedList[0], selectedList);\n }\n } else {\n const valueList = selectedList.map((item) => item[optionsItemValueField]);\n if (isMultiple) {\n props.onChange?.(valueList, selectedList);\n } else {\n props.onChange?.(valueList[0], selectedList[0]);\n }\n }\n });\n\n const onInnerChange = hooks.useCallbackRef((_value, otherParams) => {\n if (!otherParams) return props.onChange?.(undefined);\n const selectedList = toArray<TAny>(otherParams);\n const targetList = [] as TPlainObject[];\n selectedList.forEach((item) => {\n if (showAllOption && allOptionConfig && item.value === allOptionConfig[optionsItemValueField]) {\n targetList.push(allOptionConfig);\n } else {\n const filterTarget = arrayFind(stateSelectorList || [], item.value, optionsItemValueField);\n if (filterTarget) {\n targetList.push(filterTarget);\n }\n }\n });\n onRespChange(targetList);\n });\n\n const selectorAllList = useMemo(() => {\n if (requestStatus !== 'request-success') return [];\n if (!stateSelectorList || stateSelectorList.length === 0) return [];\n if (!allOptionConfig) return stateSelectorList;\n return [allOptionConfig].concat(stateSelectorList);\n }, [allOptionConfig, requestStatus, stateSelectorList]);\n\n const loading = requestStatus === 'request-progress';\n\n const selectValue = useMemo(() => {\n const targetList = getVauleList(value, optionsItemValueField);\n return isMultiple ? targetList : targetList[0];\n }, [isMultiple, optionsItemValueField, value]);\n\n const filterOption = hooks.useCallbackRef((input: string, option) => {\n const children = toArray(option.children);\n let mergeString = '';\n children.forEach((item) => {\n if (isString(item)) mergeString += item;\n });\n return mergeString.toLowerCase().indexOf(input.toLowerCase()) >= 0;\n });\n\n return (\n <Select\n showSearch={true}\n allowClear={true}\n popupMatchSelectWidth={false}\n filterOption={filterOption}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n value={selectValue}\n loading={loading}\n onChange={onInnerChange}\n fieldNames={undefined}\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onRefreshRequest} />\n ) : (\n otherProps.suffixIcon\n )\n }\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={onRefreshRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {selectorAllList.map((item, index) => {\n const value = item[optionsItemValueField];\n const label = item[optionsItemLabelField];\n return (\n <Select.Option\n value={value}\n label={label}\n key={`${value}-${index}`}\n disabled={item[optionsItemDisabledField]}\n >\n {props.showIcon ? (\n <span className=\"v-selector-item-icon\">{props.icon?.(item, index)}</span>\n ) : null}\n {onLabelRenderAdapter ? onLabelRenderAdapter(item) : label}\n </Select.Option>\n );\n })}\n </Select>\n );\n};\n"],"names":["useRequest","options","cacheKey","serviceConfig","hasOuterSelectorList","outerSelectorList","onRespDataChange","onSelectorRequestError","onChange","useCache","fieldNames","serviceRequestParams","params","requiredParamsKeys","hasServiceRequestParams","Object","keys","length","_useState","useState","stateSelectorList","setStateSelectorList","_useState2","requestStatus","setRequestStatus","_useState3","Date","now","refreshKey","setRefreshKey","serviceRequestParamsStringify","useMemo","sortDataStringify","JSON","stringify","_json","sort","undefined","error","serviceRequestCahceKey","serviceRequestCahceStatusKey","pubSubKey","prevServiceRequestParamsStringify","fbaHooks","usePrevious","prevParams","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","getWindowCacheData","_window$__selector_wr","window","getWindowCacheValue","_getWindowCacheData","getWindowCacheStatus","_getWindowCacheData2","setWindowCache","key","value","onChangeRequestStatus","status","onRequest","Promise","$return","$error","respAdapterData","$Try_2_Catch","setTimeout","pubSub","publish","reject","$boundEx","resolve","then","$await_7","useEffectCustomAsync","isEmpty","_dataList","_respAdapterData","find","isUndefinedOrNull","_isDeepEqual","$Try_3_Post","$Try_3_Catch","$await_8","$If_5","call","this","dataList","subscribe","_msg","_ref","$Try_4_Post","$Try_4_Catch","$await_9","onRefreshRequest","getVauleList","data","valueKey","valueList","toArray","map","item","_isObject","SelectorWrapper","props","showAllOption","onSelectorListChange","onSelectorListAllChange","onLabelRenderAdapter","requestMessageConfig","selectorList","modelKey","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","firstRenderSelectList","useRef","hasOwnProperty","mergeFieldNames","_extends","label","disabled","optionsItemLabelField","optionsItemValueField","optionsItemDisabledField","allOptionConfig","isTrue","isMultiple","valueIsEqual","mode","_useRequest","current","onRespChange","_hooks","useCallbackRef","selectedList","onInnerChange","_value","otherParams","targetList","forEach","push","filterTarget","arrayFind","selectorAllList","concat","loading","selectValue","filterOption","input","option","children","mergeString","_isString","toLowerCase","indexOf","_jsx","Select","showSearch","allowClear","popupMatchSelectWidth","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","index","_jsxs","Option","showIcon","className","icon"],"mappings":";k6BASO,IAAMA,EAAa,SAAbA,EAAcC,GAWzB,IACEC,EASED,EATFC,SACAC,EAQEF,EARFE,cACAC,EAOEH,EAPFG,qBACAC,EAMEJ,EANFI,kBACAC,EAKEL,EALFK,iBACAC,EAIEN,EAJFM,uBACAC,EAGEP,EAHFO,SACAC,EAEER,EAFFQ,SACAC,EACET,EADFS,WAEF,IAAMC,EAAuBR,GAAAA,UAAAA,EAAAA,EAAeS,OAC5C,IAAMC,GAAqBV,eAAAA,EAAeU,qBAAsB,GAChE,IAAMC,EAA0BH,GAAwBI,OAAOC,KAAKL,GAAsBM,OAAS,EAEnG,IAAAC,EAAkDC,IAA3CC,EAAiBF,EAAA,GAAEG,EAAoBH,EAAA,GAC9C,IAAAI,EAA0CH,IAAnCI,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GACtC,IAAAG,EAAoCN,EAASO,KAAKC,OAA3CC,EAAUH,EAAA,GAAEI,EAAaJ,EAAA,GAEhC,IAAMK,EAAgCC,GAAQ,WAC5C,IACE,GAAIjB,EAAyB,CAC3B,IAAMkB,EAAoBC,KAAKC,UAAUC,EAAKC,KAAKzB,IACnD,GAAIqB,IAAsB,KAAM,CAC9B,OAAOK,SACT,CACA,OAAOL,CACT,CACF,CAAE,MAAOM,GAAQ,CACjB,OAAOD,SACT,GAAG,CAACvB,EAAyBH,IAE7B,IAAM4B,KAA4BT,EAClC,IAAMU,EAAkCV,EAAsC,UAC9E,IAAMW,EAAevC,EAAQ,IAAIqC,EAGjC,IAAMG,EAAoCC,EAASC,YAAYd,GAC/D,IAAMe,EAAaF,EAASC,YAAYjC,GAExC,IAAMmC,EAAyB,SAAzBA,EAA0BC,GAC9B,IAAIC,EAAyBD,EAC7B,GAAI5C,GAAa,MAAbA,EAAe8C,uBAAwB,CACzCD,EAAS7C,GAAAA,UAAAA,EAAAA,EAAe8C,uBAAuBF,EAChD,MAAM,GAAIrC,SAAAA,EAAYwC,KAAM,CAC3BF,EAASG,EAAIJ,EAAUrC,GAAAA,UAAAA,EAAAA,EAAYwC,KACrC,CACA,GAAIF,IAAWI,EAAQJ,GAAS,CAC9BK,QAAQC,KAAK,cAAeN,GAC5B,MAAO,EACT,CACA,OAAOA,GAAU,IAGnB,IAAMO,EAAqB,SAArBA,IAA2B,IAAAC,EAC/B,OAAAA,EAAOC,OAAO,yBAAPD,UAAAA,EAAAA,EAAgCtD,IAEzC,IAAMwD,EAAsB,SAAtBA,IAA4B,IAAAC,EAChC,OAAAA,EAAOJ,MAAAI,UAAAA,EAAAA,EAAuBpB,IAEhC,IAAMqB,EAAuB,SAAvBA,IAA6B,IAAAC,EACjC,OAAAA,EAAON,MAAAM,UAAAA,EAAAA,EAAuBrB,IAGhC,IAAMsB,EAAiB,SAAjBA,EAAkBC,EAAKC,GAC3B,IAAKP,OAAO,uBAAwB,CAClCA,OAAO,uBAAyB,EAClC,CACA,IAAKA,OAAO,uBAAuBvD,GAAW,CAC5CuD,OAAO,uBAAuBvD,GAAY,CAAA,CAC5C,CACAuD,OAAO,uBAAuBvD,GAAU6D,GAAOC,GAGjD,IAAMC,EAAwB,SAAxBA,EAAyBC,GAC7BJ,EAAetB,EAA8B0B,GAC7C1C,EAAiB0C,IAGnB,IAAMC,EAAY,SAAZA,IAAY,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAIRvB,EACAwB,EAxGZ,IAAIC,EAAA,SAoHSlC,GApHb,IAqHMe,QAAQf,MAAMA,GACd2B,EAAsB,iBACtB5C,EAAqBgB,WACrBoC,YAAW,WACTC,EAAOC,QAAQlC,EAAW,CACxByB,OAAQ,iBAEZ,IACA3D,GAAAA,UAAAA,EAAAA,EAAyB+B,GACzB,OAAA+B,EAAOD,QAAQQ,SA9HZ,CAAC,MAAAC,GAAW,OAAOP,EAAAO,EAAM,GAoG9B,IACEZ,EAAsB,oBAEL,OAAAG,QAAAU,QAAM3E,GAAAA,MAAAA,EAAegE,WAAfhE,UAAAA,EAAAA,EAAegE,UAAYxD,GAAwB,CAAA,IAAzDoE,MAA4D,SAAAC,GAvGnF,IAuGYjC,EAAWiC,EACXT,EAAkBzB,EAAuBC,GAE/Ce,EAAevB,EAAwBgC,GACvCN,EAAsB,mBACtBQ,YAAW,WACTC,EAAOC,QAAQlC,EAAW,CACxByB,OAAQ,kBACRnB,SAAUwB,GAEd,IAEA,OAAAF,EAAOE,EAnHJ,CAAC,MAAAM,GAAW,OAAOL,EAAAK,EAAM,CAAC,GAAAL,EAoH9B,CAAC,MAAOlC,GAAOkC,EAAPlC,EAWT,CAAC,GACF,EAEDK,EAASsC,sBAAqB,WAAA,OAAA,IAAAb,SAAA,SAAAC,EAAAC,GAAA,IAQpBY,EAyBInC,EACAwB,EAuBNL,EAEEiB,EAqBAC,EA/ER,GAAIhF,EAAsB,CACxBoB,EAAiB,mBACjBH,EAAqBhB,GACrBC,GAAAA,UAAAA,EAAAA,EAAmBD,GACnB,OAAAgE,GACF,CACA,GAAIxD,EAAmBI,OAAS,EAAG,CAC3BiE,EAAUvE,EACZE,EAAmBwE,MAAK,SAACtB,GAAG,OAAKuB,EAAkB3E,EAAqBoD,GAAK,IAC7E,KACJ,GAAImB,EAAS,CAEX7D,EAAqB,IACrBG,EAAiB,0BAKjB,GAAIkB,EAAmC,CACrClC,GAAAA,UAAAA,EAAAA,EAAW6B,UACb,CACA,OAAAgC,GACF,CAGA,GAAI5D,IAAa,MAAO,CAEtB,GAAI8E,EAAY5E,EAAsBkC,GAAa,CACjD,OAAAwB,GACF,CAhKR,IAAImB,aAAJ,IA8KQ,OAAAnB,GA9KC,CAAC,MAAAQ,GAAW,OAAOP,EAAAO,EAAM,GAAlC,IAAIY,EAAA,SAwKanD,GAxKjB,IAyKUe,QAAQf,MAAMA,GACdd,EAAiB,iBACjBH,EAAqBgB,WACrB9B,GAAAA,UAAAA,EAAAA,EAAyB+B,GA5KnC,OAAOkD,GAAE,CAAC,MAAAX,GAAW,OAAOP,EAAAO,EAAM,GAiK1B,IACErD,EAAiB,oBACA,OAAA4C,QAAAU,QAAM3E,GAAAA,MAAAA,EAAegE,WAAfhE,UAAAA,EAAAA,EAAegE,UAAYxD,GAAwB,CAAA,IAAzDoE,MAA4D,SAAAW,GAnKvF,IAmKgB3C,EAAW2C,EACXnB,EAAkBzB,EAAuBC,GAC/CvB,EAAiB,mBACjBH,EAAqBkD,GACrBjE,GAAAA,UAAAA,EAAAA,EAAmBiE,GAvK7B,OAAOiB,GAAE,CAAC,MAAAX,GAAW,OAAOY,EAAAZ,EAAM,CAAC,GAAAY,EAwK1B,CAAC,MAAOnD,GAAOmD,EAAPnD,EAKT,CAEF,CAAC,OA/KPqD,EAAGC,KAAIC,KAgLH,CASA,SAAAF,IAEMzB,EAASN,IACf,GAAIM,IAAW,kBAAmB,CAC1B4B,EAAWpC,IACjBrC,EAAqByE,GACrBtE,EAAiB0C,GACjB5D,GAAAA,UAAAA,EAAAA,EAAmBwF,GACnB,OAAAzB,GACF,CACA,GAAIH,IAAW,mBAAoB,CACjC1C,EAAiB0C,GACjBQ,EAAOqB,UAAUtD,GAAW,SAACuD,EAAIC,GAA2B,IAAvB/B,EAAM+B,EAAN/B,OAAQnB,EAAQkD,EAARlD,SAC3C,GAAImB,IAAW,kBAAmB,CAChC1C,EAAiB0C,GACjB7C,EAAqB0B,GACrBzC,GAAAA,UAAAA,EAAAA,EAAmByC,EACrB,KAAO,CACLvB,EAAiB,iBACjBH,EAAqBgB,UACvB,CACF,IACA,OAAAgC,GACF,CAhNJ,IAAI6B,aAAJ,IAAI,OAAA7B,GAAK,CAAC,MAAAQ,GAAW,OAAOP,EAAAO,EAAM,GAAlC,IAAIsB,EAAA,SAsNS7D,GAtNb,IAuNMe,QAAQf,MAAMA,GACdd,EAAiB,iBACjBH,EAAqBgB,WACrB9B,GAAAA,UAAAA,EAAAA,EAAyB+B,GA1N/B,OAAO4D,GAAE,CAAC,MAAArB,GAAW,OAAOP,EAAAO,EAAM,GAiN9B,IAC0B,OAAAT,QAAAU,QAAMX,KAANY,MAAiB,SAAAqB,GAlN/C,IAkNY7B,EAAkB6B,EACxB/E,EAAqBkD,GACrB/C,EAAiB,mBACjBlB,GAAAA,UAAAA,EAAAA,EAAmBiE,GArNzB,OAAO2B,GAAE,CAAC,MAAArB,GAAW,OAAOsB,EAAAtB,EAAM,CAAC,GAAAsB,EAsN9B,CAAC,MAAO7D,GAAO6D,EAAP7D,EAKT,CAAC,CAAA,OA3NLqD,EAAGC,KAAIC,KAAI,GA4NR,GAAE,CAAC5D,KAAKC,UAAUvB,GAAuBN,EAAmBuB,IAE7D,IAAMyE,EAAmB,SAAnBA,IACJxE,EAAcH,KAAKC,QAGrB,MAAO,CACLJ,cAAAA,EACAH,kBAAAA,EACAU,8BAAAA,EACAuE,iBAAAA,EAEJ,EC7NO,IAAMC,EAAe,SAAfA,EAAgBC,EAAMC,GACjC,IAAIC,EAAYC,EAAyBH,GACzCE,EAAYA,EAAUE,KAAI,SAACC,GACzB,GAAIC,EAASD,GAAO,OAAOA,EAAKJ,GAChC,OAAOI,CACT,IACA,OAAOH,CACT,+OCCaK,EAAkB,SAAlBA,EAAmBC,GAC9B,IACE5G,EAcE4G,EAdF5G,cACA6G,EAaED,EAbFC,cACAC,EAYEF,EAZFE,qBACAC,EAWEH,EAXFG,wBACA3G,EAUEwG,EAVFxG,uBACA4G,EASEJ,EATFI,qBACAC,EAQEL,EARFK,qBACc/G,EAOZ0G,EAPFM,aACAC,EAMEP,EANFO,SACA5G,EAKEqG,EALFrG,WACAsD,EAIE+C,EAJF/C,MACAuD,EAGER,EAHFQ,aACA9G,EAEEsG,EAFFtG,SACG+G,EAAUC,EACXV,EAAKW,GAET,IAAMC,EAAwBC,EAAO,MAGrC,IAAMxH,EAAuB2G,EAAMc,eAAe,gBAClD,IAAMC,EAAeC,EAAA,CACnBC,MAAO,QACPhE,MAAO,QACPiE,SAAU,YACPvH,GAGL,IACSwH,EAGLJ,EAHFE,MACOG,EAELL,EAFF9D,MACUoE,EACRN,EADFG,SAGF,IAAMI,EAAkBtG,GAAQ,WAAM,IAAAkE,EACpC,IAAKe,EAAe,OAAO,KAC3B,IAAMsB,EAAStB,IAAkB,KACjC,OAAAf,EAAAA,CAAAA,EAAAA,EACGiC,GAAwBI,EAAS,KAAOtB,EAAcgB,MAAK/B,EAC3DkC,GAAwBG,EAAS,GAAKtB,EAAchD,MAAKiC,CAE7D,GAAE,CAACiC,EAAuBC,EAAuBnB,IAElD,IAAMuB,EAAaC,EAAazB,EAAM0B,KAAM,CAAC,aAE7C,IAAAC,EAA+D1I,EAAW,CACxEU,WAAYoH,EACZ5H,SAAUoH,EACVlH,qBAAAA,EACAI,SAAUuG,EAAMvG,SAChBL,cAAAA,EACAE,kBAAAA,EACAC,iBAAkB,SAAAA,EAACwF,GACjB,GAAI6B,EAAsBgB,QAAS,CACjC1B,eAAAA,EAAuBnB,GAAY,IACnC6B,EAAsBgB,QAAU,KAClC,CACAzB,eAAAA,EAA0BpB,GAAY,GACvC,EACDvF,uBAAAA,EACAE,SAAUA,IAAa4B,UAAY,KAAO5B,IAfpCc,EAAamH,EAAbnH,cAAeH,EAAiBsH,EAAjBtH,kBAAmBiF,EAAgBqC,EAAhBrC,iBAkB1C,IAAMuC,EAAeC,EAAMC,gBAAe,SAACC,GACzC,GAAIxB,EAAc,CAChB,GAAIgB,EAAY,CACdxB,EAAMvG,UAAQ,UAAA,EAAduG,EAAMvG,SAAWuI,EAAcA,EACjC,KAAO,CACLhC,EAAMvG,UAANuG,UAAAA,EAAAA,EAAMvG,SAAWuI,EAAa,GAAIA,EACpC,CACF,KAAO,CACL,IAAMtC,EAAYsC,EAAapC,KAAI,SAACC,GAAI,OAAKA,EAAKuB,MAClD,GAAII,EAAY,CACdxB,EAAMvG,UAAQ,UAAA,EAAduG,EAAMvG,SAAWiG,EAAWsC,EAC9B,KAAO,CACLhC,EAAMvG,UAAQ,UAAA,EAAduG,EAAMvG,SAAWiG,EAAU,GAAIsC,EAAa,GAC9C,CACF,CACF,IAEA,IAAMC,EAAgBH,EAAMC,gBAAe,SAACG,EAAQC,GAClD,IAAKA,EAAa,OAAOnC,EAAMvG,UAAQ,UAAA,EAAduG,EAAMvG,SAAW6B,WAC1C,IAAM0G,EAAerC,EAAcwC,GACnC,IAAMC,EAAa,GACnBJ,EAAaK,SAAQ,SAACxC,GACpB,GAAII,GAAiBqB,GAAmBzB,EAAK5C,QAAUqE,EAAgBF,GAAwB,CAC7FgB,EAAWE,KAAKhB,EAClB,KAAO,CACL,IAAMiB,EAAeC,EAAUnI,GAAqB,GAAIwF,EAAK5C,MAAOmE,GACpE,GAAImB,EAAc,CAChBH,EAAWE,KAAKC,EAClB,CACF,CACF,IACAV,EAAaO,EACf,IAEA,IAAMK,EAAkBzH,GAAQ,WAC9B,GAAIR,IAAkB,kBAAmB,MAAO,GAChD,IAAKH,GAAqBA,EAAkBH,SAAW,EAAG,MAAO,GACjE,IAAKoH,EAAiB,OAAOjH,EAC7B,MAAO,CAACiH,GAAiBoB,OAAOrI,EACjC,GAAE,CAACiH,EAAiB9G,EAAeH,IAEpC,IAAMsI,EAAUnI,IAAkB,mBAElC,IAAMoI,EAAc5H,GAAQ,WAC1B,IAAMoH,EAAa7C,EAAatC,EAAOmE,GACvC,OAAOI,EAAaY,EAAaA,EAAW,EAC7C,GAAE,CAACZ,EAAYJ,EAAuBnE,IAEvC,IAAM4F,EAAef,EAAMC,gBAAe,SAACe,EAAeC,GACxD,IAAMC,EAAWrD,EAAQoD,EAAOC,UAChC,IAAIC,EAAc,GAClBD,EAASX,SAAQ,SAACxC,GAChB,GAAIqD,EAASrD,GAAOoD,GAAepD,CACrC,IACA,OAAOoD,EAAYE,cAAcC,QAAQN,EAAMK,gBAAkB,CACnE,IAEA,OACEE,EAACC,EAAMtC,EAAA,CACLuC,WAAY,KACZC,WAAY,KACZC,sBAAuB,MACvBZ,aAAcA,GACVpC,EAAU,CACdiD,MAAK1C,EAAA,CAAI2C,MAAO,QAAW3D,EAAM0D,OACjCzG,MAAO2F,EACPD,QAASA,EACTlJ,SAAUwI,EACVtI,WAAY2B,UACZsI,WACEpJ,IAAkB,gBAChB6I,EAAAQ,EAAA,CAAcC,KAAMnB,EAASoB,QAASzE,IAEtCmB,EAAWmD,WAGfI,gBACEX,EAACY,EAAa,CACZ9G,OAAQ3C,EACRmI,QAASA,EACTuB,cAAalD,EAAA,CACX,eAAgB,QACbX,GAEL8D,YACEd,EAACe,EAAM,CAACC,KAAK,UAAUN,QAASzE,EAAiB0D,SAAC,aAKvDA,SAEAP,EAAgB7C,KAAI,SAACC,EAAMyE,GAC1B,IAAMrH,EAAQ4C,EAAKuB,GACnB,IAAMH,EAAQpB,EAAKsB,GACnB,OACEoD,EAACjB,EAAOkB,OAAM,CACZvH,MAAOA,EACPgE,MAAOA,EAEPC,SAAUrB,EAAKwB,GAA0B2B,SAExChD,CAAAA,EAAMyE,SACLpB,EAAA,OAAA,CAAMqB,UAAU,uBAAsB1B,SAAEhD,EAAM2E,MAAI,UAAA,EAAV3E,EAAM2E,KAAO9E,EAAMyE,KACzD,KACHlE,EAAuBA,EAAqBP,GAAQoB,IAN7ChE,EAASqH,IAAAA,QAY7B"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../request-status/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{a as t,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as i}from"@dimjs/utils/cjs/get";import{Select as s,Button as a}from"antd";import{useState as
|
|
6
|
+
import e from"@ant-design/icons/es/icons/RedoOutlined";import{hooks as r}from"@wove/react/cjs/hooks";import{a as t,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{get as i}from"@dimjs/utils/cjs/get";import{Select as s,Button as a}from"antd";import{useState as l,useMemo as u}from"react";import{fbaHooks as c}from"../fba-hooks/index.js";import{RequestStatus as d}from"../request-status/index.js";import{jsx as f}from"react/jsx-runtime";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var v=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter"];var m=function m(p){var h=p.showAllOption,g=p.serviceConfig,b=p.onSelectorListChange,q=p.onSelectorRequestError,w=p.requestMessageConfig,y=p.fieldNames,C=p.onLabelRenderAdapter,j=t(p,v);var R=l("request-init"),S=R[0],x=R[1];var A=l(),k=A[0],K=A[1];var E=(y==null?void 0:y.label)||"label";var L=(y==null?void 0:y.value)||"value";var O=(y==null?void 0:y.disabled)||"disabled";var M=(y==null?void 0:y.searchKeyword)||"searchKeyword";var P=g.params;var B=u((function(){var e=h===true;if(h){return{label:e?"全部":h.label,value:e?"":h.value}}return null}),[h]);var N=function e(r){var t=r;if(g.onRequestResultAdapter){t=g.onRequestResultAdapter(r)}else if(y!=null&&y.list){t=i(r,y==null?void 0:y.list)}if(t&&!n(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var _=function e(r){return new Promise((function(e,t){var n,i,s;var a=function(){try{return e()}catch(e){return t(e)}};var l=function(e){try{x("request-error");q==null?void 0:q(e);return a()}catch(e){return t(e)}};try{x("request-progress");return Promise.resolve(g.onRequest==null?void 0:g.onRequest(o({},P,(n={},n[M]=r,n)))).then((function(e){try{i=e;s=N(i);b==null?void 0:b(s);if(E&&L){s=s.map((function(e){return o({},e,{label:e[E],value:e[L],disabled:e[O||"disabled"]})}))}s.forEach((function(e){if(C){e.label=C(e)}}));if(B){s.unshift(B)}K(s);x("request-success");return a()}catch(e){return l(e)}}),l)}catch(e){l(e)}}))};var z=r.useDebounceCallback((function(e){K([]);void _(e)}),300);c.useEffectCustom((function(){if(p.customKeyword){void _(p.customKeyword)}}),[p.customKeyword]);var D=S==="request-progress";return f(s,o({showSearch:true,allowClear:true,dropdownMatchSelectWidth:false},j,{style:o({width:"100%"},p.style),options:k,filterOption:false,onSearch:z,notFoundContent:f(d,{status:S,loading:D,messageConfig:o({"request-init":"请输入搜索条件"},w),errorButton:f(a,{type:"primary",onClick:_,children:"重新获取数据"})}),suffixIcon:S==="request-error"?f(e,{spin:D,onClick:_}):undefined,loading:D}))};export{m as SelectorWrapperSearch};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper-search/selector-wrapper-search.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select, SelectProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSearchServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSearchProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如:'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; searchKeyword?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSearchServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /** 通过服务获取数据异常回调 */\n onSelectorRequestError?: (error: Error) => void;\n /** 交互文案配置 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n // 自定义keyword值\n customKeyword?: string;\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 只支持 search + 服务 功能\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSearch = (props: SelectorWrapperSearchProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n onLabelRenderAdapter,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const searchKeyword = fieldNames?.searchKeyword || 'searchKeyword';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig.onRequestResultAdapter) {\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper-search/selector-wrapper-search.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Select, SelectProps } from 'antd';\nimport { ReactElement, useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSearchServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSearchProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如:'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; searchKeyword?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSearchServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /** 通过服务获取数据异常回调 */\n onSelectorRequestError?: (error: Error) => void;\n /** 交互文案配置 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n // 自定义keyword值\n customKeyword?: string;\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 只支持 search + 服务 功能\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSearch = (props: SelectorWrapperSearchProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n onLabelRenderAdapter,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const searchKeyword = fieldNames?.searchKeyword || 'searchKeyword';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig.onRequestResultAdapter) {\n result = serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = async (keyword) => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.({\n ...serviceParams,\n [searchKeyword]: keyword,\n });\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField || 'disabled'],\n };\n });\n }\n\n respAdapterData.forEach((item) => {\n if (onLabelRenderAdapter) {\n item.label = onLabelRenderAdapter(item);\n }\n });\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n const onSearch = hooks.useDebounceCallback((value: string) => {\n setDataSource([]);\n void startDataSourceRequest(value);\n }, 300);\n\n fbaHooks.useEffectCustom(() => {\n if (props.customKeyword) {\n void startDataSourceRequest(props.customKeyword);\n }\n }, [props.customKeyword]);\n\n const loading = requestStatus === 'request-progress';\n return (\n <Select\n showSearch={true}\n allowClear={true}\n dropdownMatchSelectWidth={false}\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n filterOption={false}\n onSearch={onSearch}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={{\n 'request-init': '请输入搜索条件',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSearch","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","onLabelRenderAdapter","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","searchKeyword","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","keyword","Promise","$return","$error","_extends2","_respData","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","_extends","then","$await_2","map","item","forEach","unshift","onSearch","_hooks","useDebounceCallback","fbaHooks","useEffectCustom","customKeyword","loading","_jsx","Select","showSearch","allowClear","dropdownMatchSelectWidth","style","width","options","filterOption","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../request-status/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{a as r,_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{get as n}from"@dimjs/utils/cjs/get";import{Select as i,Button as s}from"antd";import{useState as u,useMemo as l}from"react";import{fbaHooks as a}from"../fba-hooks/index.js";import{RequestStatus as c}from"../request-status/index.js";import{jsx as f}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var v=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames"];var d=function d(m){var p=m.showAllOption,g=m.serviceConfig,q=m.onSelectorListChange,h=m.onSelectorRequestError,j=m.requestMessageConfig,b=m.fieldNames,C=r(m,v);var y=u("request-init"),R=y[0],
|
|
6
|
+
import e from"@ant-design/icons/es/icons/RedoOutlined";import{a as r,_ as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{get as n}from"@dimjs/utils/cjs/get";import{Select as i,Button as s}from"antd";import{useState as u,useMemo as l}from"react";import{fbaHooks as a}from"../fba-hooks/index.js";import{RequestStatus as c}from"../request-status/index.js";import{jsx as f}from"react/jsx-runtime";import"@wove/react/cjs/hooks";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var v=["showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames"];var d=function d(m){var p=m.showAllOption,g=m.serviceConfig,q=m.onSelectorListChange,h=m.onSelectorRequestError,j=m.requestMessageConfig,b=m.fieldNames,C=r(m,v);var y=u("request-init"),R=y[0],w=y[1];var x=u(),k=x[0],A=x[1];var S=(b==null?void 0:b.label)||"label";var E=(b==null?void 0:b.value)||"value";var O=(b==null?void 0:b.disabled)||"disabled";var P=g.params;var B=l((function(){var e=p===true;if(p){return{label:e?"全部":p.label,value:e?"":p.value}}return null}),[p]);var L=function e(r){var t=r;if(g.onRequestResultAdapter){t=g.onRequestResultAdapter(r)}else if(b!=null&&b.list){t=n(r,b==null?void 0:b.list)}if(t&&!o(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var M=function e(){return new Promise((function(e,r){var o,n;var i=function(){try{return e()}catch(e){return r(e)}};var s=function(e){try{w("request-error");h==null?void 0:h(e);return i()}catch(e){return r(e)}};try{w("request-progress");return Promise.resolve(g.onRequest==null?void 0:g.onRequest(P)).then((function(e){try{o=e;n=L(o);q==null?void 0:q(n);if(S&&E){n=n.map((function(e){return t({},e,{label:e[S],value:e[E],disabled:e[O]})}))}if(B){n.unshift(B)}A(n);w("request-success");return i()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))};a.useEffectCustom((function(){void M()}),[]);var N=R==="request-progress";return f(i,t({},C,{style:t({width:"100%"},m.style),options:k,notFoundContent:f(c,{status:R,loading:N,messageConfig:j,errorButton:f(s,{type:"primary",onClick:M,children:"重新获取数据"})}),suffixIcon:R==="request-error"?f(e,{spin:N,onClick:M}):undefined,loading:N}))};export{d as SelectorWrapperSimple};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper-simple/selector-wrapper-simple.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Button, Select, SelectProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSimpleServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSimpleProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSimpleServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 通过服务获取数据异常回调\n */\n onSelectorRequestError?: (error: Error) => void;\n\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 不支持search效果\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSimple = (props: SelectorWrapperSimpleProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig.onRequestResultAdapter) {\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/selector-wrapper-simple/selector-wrapper-simple.tsx"],"sourcesContent":["import { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Button, Select, SelectProps } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { RequestStatus, TRequestStatus, TRequestStatusProps } from '../request-status';\n\nexport type SelectorWrapperSimpleServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSimpleProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: { label: string; value: string; disabled?: string; list?: string };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSimpleServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 通过服务获取数据异常回调\n */\n onSelectorRequestError?: (error: Error) => void;\n\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 不支持search效果\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSimple = (props: SelectorWrapperSimpleProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] = useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig.onRequestResultAdapter) {\n result = serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = async () => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(serviceParams);\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField],\n };\n });\n }\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loading = requestStatus === 'request-progress';\n\n return (\n <Select\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSimple","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","requestStatus","setRequestStatus","_useState2","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","Promise","$return","$error","_respData","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","then","$await_2","map","item","_extends","unshift","fbaHooks","useEffectCustom","loading","_jsx","Select","style","width","options","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":"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"}
|
package/esm/styles/index.css
CHANGED
|
@@ -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,.
|
|
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}
|
|
@@ -13,5 +13,5 @@ import './../tag-list-render/index.css';
|
|
|
13
13
|
import './../tag-list-select/index.css';
|
|
14
14
|
import './index.css';
|
|
15
15
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
16
|
-
import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as e}from"@dimjs/lang/cjs/is-object";import{get as n}from"@dimjs/utils/cjs/get";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isEmpty as o}from"@dimjs/lang/cjs/is-empty";import{isNumber as a,isUndefinedOrNull as l,getStrByteLen as u,cutString as s,flatbizDate as d,flatbizPrice as c}from"@flatbiz/utils";import{Tooltip as f,Space as m,Badge as p}from"antd";import{Fragment as v}from"react";import{ButtonOperate as j}from"../button-operate/index.js";import{TagListRender as g}from"../tag-list-render/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";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-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../dropdown-menu-wrapper/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";var x=function r(e,n){return function(r){if(o(r)||r==="")return n;if(a(r))return r;var t=r.toString();var i=l(e)?10:e;var d=u(t);if(d<=i*2){return t}return h(f,{placement:"topLeft",title:t,children:s(t,i*2)})}};var C=function r(e){return function(r,n,t){var o=e(n,t);return h(j,i({},o))}};var w=function r(e,n){return function(r){if(o(r)||r==="")return n;try{return d.format(new Date(r),e)}catch(e){return r||n}}};var b=function r(e,n){return function(r,t,i){if(n&&e){return(e-1)*n+i+1}return i+1}};var y=function r(e){return function(r,n,t){var i=(e==null?void 0:e())||{},o=i.pageNo,a=i.pageSize;if(a&&o){return(o-1)*a+t+1}return t+1}};var k=function r(e,n,t){return function(r){if(l(r))return null;return h(g,i({dataList:e,colorMap:n,value:r,forceMatch:false},t))}};var N=function r(i,o){return function(r){if(t(r)){var a=n(r,i,o);if(!a)return"";if(e(a))return JSON.stringify(a);return a}return r||o}};var V=function r(e){var n=e!=null&&e.hideBgColor?"":"table-fen-color";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2yuan(r);return h("span",{className:n,children:c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false})})}};var O=function r(e){var n=(e==null?void 0:e.showBgColor)===true?"table-wan-color":"";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2wan(r);var i=e!=null&&e.removeTailZero?c.removeTailZero(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false}):c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false});return h("span",{className:n,children:i})}};var S=function e(n){return function(e,t){var i=n==null?void 0:n(t);if(!i)return h(v,{children:e});var o=l(i.showData)?true:i.showData;var a=l(i.notOverflowShowExtra)?true:i.notOverflowShowExtra;var u=l(i.showMaxNumber)?10:i.showMaxNumber;var d=i.extraPosition?i.extraPosition:"after";var c=r(e)?s(e,u*2):e;if(i.extra&&o){if(c===e&&!a){return e}var f=[h("span",{children:c},"1"),h(v,{children:i.extra},"2")];var p=d==="before"?f.reverse():f;return h(m,{onClick:i.onClick,style:{cursor:i.onClick?"pointer":undefined},size:5,children:p.map((function(r,e){return h(v,{children:r},e)}))})}return h("span",{onClick:i.onClick,children:i.extra})}};var z=function r(e,n){return function(r){if(
|
|
16
|
+
import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as e}from"@dimjs/lang/cjs/is-object";import{get as n}from"@dimjs/utils/cjs/get";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isEmpty as o}from"@dimjs/lang/cjs/is-empty";import{isNumber as a,isUndefinedOrNull as l,getStrByteLen as u,cutString as s,flatbizDate as d,flatbizPrice as c}from"@flatbiz/utils";import{Tooltip as f,Space as m,Badge as p}from"antd";import{Fragment as v}from"react";import{ButtonOperate as j}from"../button-operate/index.js";import{TagListRender as g}from"../tag-list-render/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";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-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../dropdown-menu-wrapper/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";var x=function r(e,n){return function(r){if(o(r)||r==="")return n;if(a(r))return r;var t=r.toString();var i=l(e)?10:e;var d=u(t);if(d<=i*2){return t}return h(f,{placement:"topLeft",title:t,children:s(t,i*2)})}};var C=function r(e){return function(r,n,t){var o=e(n,t);return h(j,i({},o))}};var w=function r(e,n){return function(r){if(o(r)||r==="")return n;try{return d.format(new Date(r),e)}catch(e){return r||n}}};var b=function r(e,n){return function(r,t,i){if(n&&e){return(e-1)*n+i+1}return i+1}};var y=function r(e){return function(r,n,t){var i=(e==null?void 0:e())||{},o=i.pageNo,a=i.pageSize;if(a&&o){return(o-1)*a+t+1}return t+1}};var k=function r(e,n,t){return function(r){if(l(r))return null;return h(g,i({dataList:e,colorMap:n,value:r,forceMatch:false},t))}};var N=function r(i,o){return function(r){if(t(r)){var a=n(r,i,o);if(!a)return"";if(e(a))return JSON.stringify(a);return a}return r||o}};var V=function r(e){var n=e!=null&&e.hideBgColor?"":"table-fen-color";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2yuan(r);return h("span",{className:n,children:c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false})})}};var O=function r(e){var n=(e==null?void 0:e.showBgColor)===true?"table-wan-color":"";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2wan(r);var i=e!=null&&e.removeTailZero?c.removeTailZero(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false}):c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false});return h("span",{className:n,children:i})}};var S=function e(n){return function(e,t){var i=n==null?void 0:n(t);if(!i)return h(v,{children:e});var o=l(i.showData)?true:i.showData;var a=l(i.notOverflowShowExtra)?true:i.notOverflowShowExtra;var u=l(i.showMaxNumber)?10:i.showMaxNumber;var d=i.extraPosition?i.extraPosition:"after";var c=r(e)?s(e,u*2):e;if(i.extra&&o){if(c===e&&!a){return e}var f=[h("span",{children:c},"1"),h(v,{children:i.extra},"2")];var p=d==="before"?f.reverse():f;return h(m,{onClick:i.onClick,style:{cursor:i.onClick?"pointer":undefined},size:5,children:p.map((function(r,e){return h(v,{children:r},e)}))})}return h("span",{onClick:i.onClick,children:i.extra})}};var z=function r(e,n){return function(r){if(l(r))return null;var t=e.find((function(e){return e.value===r}));if(t)return h(p,{color:(t==null?void 0:t.color)||(n==null?void 0:n[r])||"rgba(0, 0, 0, 0.25)",text:t==null?void 0:t.label});return r}};var M=function r(e,n){return function(r,t){if(l(r))return n;return h("a",{onClick:e.bind(null,t),children:r})}};var D={extraContentRender:S,indexCell:b,serialNumberCell:y,dateCell:w,operateCell:C,tooltipCell:x,selectorCell:k,objectCell:N,fen2yuanCell:V,fen2wanCell:O,badgeCell:z,clickCell:M};export{D as tableCellRender};
|
|
17
17
|
//# sourceMappingURL=index.js.map
|