@flatbiz/antd 4.5.41 → 4.5.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/esm/_rollupPluginBabelHelpers-c0dbec57.js +3 -0
  2. package/esm/_rollupPluginBabelHelpers-c0dbec57.js.map +1 -0
  3. package/esm/ace-editor-groovy/index.js +1 -1
  4. package/esm/ace-editor-groovy/index.js.map +1 -1
  5. package/esm/ace-editor-java/index.js +1 -1
  6. package/esm/ace-editor-java/index.js.map +1 -1
  7. package/esm/ace-editor-json/index.js +1 -1
  8. package/esm/ace-editor-json/index.js.map +1 -1
  9. package/esm/ace-editor-mysql/index.js +1 -1
  10. package/esm/ace-editor-mysql/index.js.map +1 -1
  11. package/esm/ace-editor-xml/index.js +1 -1
  12. package/esm/ace-editor-xml/index.js.map +1 -1
  13. package/esm/alert-wrapper/index.js +1 -1
  14. package/esm/amount-fen-input/index.js +1 -1
  15. package/esm/amount-fen-input/index.js.map +1 -1
  16. package/esm/amount-fen-input-form-item/index.js +1 -1
  17. package/esm/anchor-steps/index.js +1 -1
  18. package/esm/anchor-steps/index.js.map +1 -1
  19. package/esm/block-layout/index.js +1 -1
  20. package/esm/bootstrap/index.js +1 -1
  21. package/esm/box-grid/index.js +1 -1
  22. package/esm/box-grid/index.js.map +1 -1
  23. package/esm/button-operate/index.js +1 -1
  24. package/esm/button-operate/index.js.map +1 -1
  25. package/esm/button-wrapper/index.js +1 -1
  26. package/esm/card-layout/index.js +1 -1
  27. package/esm/card-wrapper/index.js +1 -1
  28. package/esm/cascader-wrapper/index.js +1 -1
  29. package/esm/cascader-wrapper/index.js.map +1 -1
  30. package/esm/check-list/index.js +1 -1
  31. package/esm/check-list/index.js.map +1 -1
  32. package/esm/checkbox-wrapper/index.js +1 -1
  33. package/esm/checkbox-wrapper/index.js.map +1 -1
  34. package/esm/color-picker-wrapper/index.js +1 -1
  35. package/esm/color-picker-wrapper/index.js.map +1 -1
  36. package/esm/config-provider-wrapper/index.js +1 -1
  37. package/esm/create-drawer-wrapper-model/index.js.map +1 -1
  38. package/esm/create-modal-wrapper-model/index.js.map +1 -1
  39. package/esm/css-node-hover/index.js +1 -1
  40. package/esm/date-picker-wrapper/index.js +1 -1
  41. package/esm/date-picker-wrapper/index.js.map +1 -1
  42. package/esm/date-range-picker-wrapper/index.js +1 -1
  43. package/esm/date-range-picker-wrapper/index.js.map +1 -1
  44. package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
  45. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  46. package/esm/delete-node/index.js +1 -1
  47. package/esm/dialog-alert/index.js +1 -1
  48. package/esm/dialog-alert/index.js.map +1 -1
  49. package/esm/dialog-confirm/index.js +1 -1
  50. package/esm/dialog-confirm/index.js.map +1 -1
  51. package/esm/dialog-drawer/index.js +1 -1
  52. package/esm/dialog-drawer/index.js.map +1 -1
  53. package/esm/dialog-drawer-content/index.js +1 -1
  54. package/esm/dialog-loading/index.js +1 -1
  55. package/esm/dialog-loading/index.js.map +1 -1
  56. package/esm/dialog-modal/index.js +1 -1
  57. package/esm/dialog-modal/index.js.map +1 -1
  58. package/esm/dialog-preview-image/index.js +1 -1
  59. package/esm/dialog-preview-image/index.js.map +1 -1
  60. package/esm/drag-collapse/index.js +1 -1
  61. package/esm/drag-collapse/index.js.map +1 -1
  62. package/esm/drag-collapse-form-list/index.js +1 -1
  63. package/esm/drag-collapse-form-list/index.js.map +1 -1
  64. package/esm/drag-editable-card/index.js +1 -1
  65. package/esm/drag-editable-card/index.js.map +1 -1
  66. package/esm/drag-editable-table/index.js +1 -1
  67. package/esm/drag-editable-table/index.js.map +1 -1
  68. package/esm/drag-editable-table-pro/index.js +1 -1
  69. package/esm/drag-editable-table-pro/index.js.map +1 -1
  70. package/esm/drag-form-list/index.js +1 -1
  71. package/esm/drag-form-list/index.js.map +1 -1
  72. package/esm/drag-table/index.js +1 -1
  73. package/esm/drag-table/index.js.map +1 -1
  74. package/esm/drawer-wrapper/index.js +1 -1
  75. package/esm/dropdown-menu-wrapper/index.js +1 -1
  76. package/esm/dynamic-node/index.js +1 -1
  77. package/esm/dynamic-node/index.js.map +1 -1
  78. package/esm/easy-form/index.js +1 -1
  79. package/esm/easy-table/index.css +1 -1
  80. package/esm/easy-table/index.js +1 -1
  81. package/esm/easy-table/index.js.map +1 -1
  82. package/esm/editable-card/index.js +1 -1
  83. package/esm/editable-card/index.js.map +1 -1
  84. package/esm/editable-field/index.js +1 -1
  85. package/esm/editable-field/index.js.map +1 -1
  86. package/esm/editable-table/index.js +1 -1
  87. package/esm/editable-table/index.js.map +1 -1
  88. package/esm/editable-table-pro/index.js +1 -1
  89. package/esm/editable-table-pro/index.js.map +1 -1
  90. package/esm/editor-wrapper/index.js +1 -1
  91. package/esm/editor-wrapper/index.js.map +1 -1
  92. package/esm/error-boundary-wrapper/index.js +1 -1
  93. package/esm/error-boundary-wrapper/index.js.map +1 -1
  94. package/esm/fba-app/index.js +1 -1
  95. package/esm/fba-app/index.js.map +1 -1
  96. package/esm/fba-hooks/index.js +1 -1
  97. package/esm/file-export/index.js +1 -1
  98. package/esm/file-export/index.js.map +1 -1
  99. package/esm/file-import/index.js +1 -1
  100. package/esm/file-select/index.js +1 -1
  101. package/esm/file-select/index.js.map +1 -1
  102. package/esm/flex-layout/index.js +1 -1
  103. package/esm/form-grid/index.js +1 -1
  104. package/esm/form-item-group/index.js +1 -1
  105. package/esm/form-item-span/index.js +1 -1
  106. package/esm/form-item-text/index.js +1 -1
  107. package/esm/form-item-text/index.js.map +1 -1
  108. package/esm/form-item-wrapper/index.js +1 -1
  109. package/esm/form-item-wrapper/index.js.map +1 -1
  110. package/esm/form-item-wrapper-dependencies/index.js +1 -1
  111. package/esm/form-list-wrapper/index.js +1 -1
  112. package/esm/form-list-wrapper/index.js.map +1 -1
  113. package/esm/form-wrapper/index.js +1 -1
  114. package/esm/gap/index.js +1 -1
  115. package/esm/icon-wrapper/index.css +1 -1
  116. package/esm/icon-wrapper/index.js +1 -1
  117. package/esm/icon-wrapper/index.js.map +1 -1
  118. package/esm/{index-7f4ad045.js → index-83bede1b.js} +2 -2
  119. package/esm/{index-7f4ad045.js.map → index-83bede1b.js.map} +1 -1
  120. package/esm/index.js +1 -1
  121. package/esm/input-search-wrapper/index.js +1 -1
  122. package/esm/input-search-wrapper/index.js.map +1 -1
  123. package/esm/input-text-area-wrapper/index.js +1 -1
  124. package/esm/input-text-area-wrapper/index.js.map +1 -1
  125. package/esm/input-wrapper/index.js +1 -1
  126. package/esm/input-wrapper/index.js.map +1 -1
  127. package/esm/json-editor/index.js +1 -1
  128. package/esm/json-editor/index.js.map +1 -1
  129. package/esm/label-value-layout/index.js +1 -1
  130. package/esm/label-value-render/index.js +1 -1
  131. package/esm/label-value-render/index.js.map +1 -1
  132. package/esm/local-loading/index.js +1 -1
  133. package/esm/local-loading/index.js.map +1 -1
  134. package/esm/mention-editor/index.js +1 -1
  135. package/esm/mention-editor/index.js.map +1 -1
  136. package/esm/mentions-wrapper/index.js +1 -1
  137. package/esm/mentions-wrapper/index.js.map +1 -1
  138. package/esm/modal-action/index.js +1 -1
  139. package/esm/modal-wrapper/index.js +1 -1
  140. package/esm/number-range-form-item/index.js +1 -1
  141. package/esm/number-range-form-item/index.js.map +1 -1
  142. package/esm/pagination-wrapper/index.js +1 -1
  143. package/esm/pdf/index.js +1 -1
  144. package/esm/pdf/index.js.map +1 -1
  145. package/esm/pdf-preview/index.js +1 -1
  146. package/esm/pdf-preview/index.js.map +1 -1
  147. package/esm/radio-group-wrapper/index.js +1 -1
  148. package/esm/radio-group-wrapper/index.js.map +1 -1
  149. package/esm/relation-tree/index.js +1 -1
  150. package/esm/relation-tree/index.js.map +1 -1
  151. package/esm/rich-text-editor/index.js +1 -1
  152. package/esm/rich-text-editor/index.js.map +1 -1
  153. package/esm/rich-text-viewer/index.js +1 -1
  154. package/esm/rich-text-viewer/index.js.map +1 -1
  155. package/esm/roll-location-center/index.js +1 -1
  156. package/esm/roll-location-center/index.js.map +1 -1
  157. package/esm/roll-location-in-view/index.js +1 -1
  158. package/esm/roll-location-in-view/index.js.map +1 -1
  159. package/esm/rule-describe/index.js +1 -1
  160. package/esm/search-form/index.js +1 -1
  161. package/esm/search-form/index.js.map +1 -1
  162. package/esm/search-menu/index.js +1 -1
  163. package/esm/search-menu/index.js.map +1 -1
  164. package/esm/selector-wrapper/index.js +1 -1
  165. package/esm/selector-wrapper/index.js.map +1 -1
  166. package/esm/selector-wrapper-search/index.js +1 -1
  167. package/esm/selector-wrapper-search/index.js.map +1 -1
  168. package/esm/selector-wrapper-simple/index.js +1 -1
  169. package/esm/selector-wrapper-simple/index.js.map +1 -1
  170. package/esm/simple-layout/index.js +1 -1
  171. package/esm/sms-count-down/index.js +1 -1
  172. package/esm/sms-count-down/index.js.map +1 -1
  173. package/esm/split-wrapper/index.js +1 -1
  174. package/esm/svg-http-view/index.js +1 -1
  175. package/esm/switch-confirm-wrapper/index.js +1 -1
  176. package/esm/switch-confirm-wrapper/index.js.map +1 -1
  177. package/esm/switch-wrapper/index.js +1 -1
  178. package/esm/switch-wrapper/index.js.map +1 -1
  179. package/esm/table-cell-render/index.js +1 -1
  180. package/esm/table-scrollbar/index.js +1 -1
  181. package/esm/table-scrollbar/index.js.map +1 -1
  182. package/esm/tabs-sticky/index.js +1 -1
  183. package/esm/tabs-sticky/index.js.map +1 -1
  184. package/esm/tabs-wrapper/index.js +1 -1
  185. package/esm/tabs-wrapper/index.js.map +1 -1
  186. package/esm/tag-group/index.js +1 -1
  187. package/esm/tag-list-render/index.js +1 -1
  188. package/esm/tag-list-render/index.js.map +1 -1
  189. package/esm/tag-wrapper/index.js +1 -1
  190. package/esm/text-css-ellipsis/index.js +1 -1
  191. package/esm/text-css-ellipsis/index.js.map +1 -1
  192. package/esm/text-overflow/index.js +1 -1
  193. package/esm/text-overflow-render/index.js +1 -1
  194. package/esm/text-symbol-wrapper/index.js +1 -1
  195. package/esm/time-picker-wrapper/index.js +1 -1
  196. package/esm/time-picker-wrapper/index.js.map +1 -1
  197. package/esm/time-range-picker-wrapper/index.js +1 -1
  198. package/esm/time-range-picker-wrapper/index.js.map +1 -1
  199. package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
  200. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  201. package/esm/tips-title/index.js +1 -1
  202. package/esm/tips-wrapper/index.js +1 -1
  203. package/esm/tree-modal/index.js +1 -1
  204. package/esm/tree-modal/index.js.map +1 -1
  205. package/esm/tree-modal-selector/index.js +1 -1
  206. package/esm/tree-modal-selector/index.js.map +1 -1
  207. package/esm/tree-selector-wrapper/index.js +1 -1
  208. package/esm/tree-selector-wrapper/index.js.map +1 -1
  209. package/esm/tree-wrapper/index.css +1 -1
  210. package/esm/tree-wrapper/index.js +1 -1
  211. package/esm/tree-wrapper/index.js.map +1 -1
  212. package/esm/upload-wrapper/index.js +1 -1
  213. package/esm/upload-wrapper/index.js.map +1 -1
  214. package/esm/x-mind-preview/index.js +1 -1
  215. package/esm/x-mind-preview/index.js.map +1 -1
  216. package/index.d.ts +74 -63
  217. package/package.json +1 -1
  218. package/esm/_rollupPluginBabelHelpers-a0769acd.js +0 -3
  219. package/esm/_rollupPluginBabelHelpers-a0769acd.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/box-grid/constant.tsx","@flatbiz/antd/src/box-grid/ctx.ts","@flatbiz/antd/src/box-grid/col.tsx","@flatbiz/antd/src/box-grid/hooks.ts","@flatbiz/antd/src/box-grid/row.tsx","@flatbiz/antd/src/box-grid/utils.ts","@flatbiz/antd/src/box-grid/index.ts"],"sourcesContent":["export const PresetDefaultGrid = {\n xs: 24,\n sm: 12,\n md: 12,\n lg: 8,\n xl: 8,\n xxl: 6,\n};\n\nexport const DefaultGutter = { xs: 8, sm: 16, md: 16, lg: 24, xl: 24, xxl: 32 };\n\nexport const RowAligns = ['top', 'middle', 'bottom', 'stretch'] as const;\nexport const RowJustify = [\n 'start',\n 'end',\n 'center',\n 'space-around',\n 'space-between',\n 'space-evenly',\n] as const;\n\nexport const alignPropsMap: Record<(typeof RowAligns)[number], string> = {\n top: 'flex-start',\n middle: 'center',\n bottom: 'flex-end',\n stretch: 'stretch',\n};\n\nexport const justifyPropsMap: Record<(typeof RowJustify)[number], string> = {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n 'space-around': 'space-around',\n 'space-between': 'space-between',\n 'space-evenly': 'space-evenly',\n};\n","import { createContext } from 'react';\nimport { PresetDefaultGrid } from './constant';\nimport { type TBoxBreakpoint } from './type';\n\nexport type BoxGridProviderContextType = {\n horizontalGap: number;\n verticalGap: number;\n boxBreakpoint: TBoxBreakpoint;\n defaultGrid: {\n xs: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n xxl: number;\n };\n};\n\nexport const defaultCtx: BoxGridProviderContextType = {\n boxBreakpoint: 'lg',\n defaultGrid: PresetDefaultGrid,\n horizontalGap: 10,\n verticalGap: 10,\n};\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const BoxGridProviderCtx = createContext<BoxGridProviderContextType>(defaultCtx);\n","import { classNames } from '@dimjs/utils';\nimport { Children, cloneElement, useContext, useMemo, type FC, type ReactElement } from 'react';\nimport { BoxGridProviderCtx } from './ctx';\nimport { type ICommonReact } from './type';\n\nexport type BoxColProps = {\n /**\n * 栅格占位格数\n * span 优先级最高:配置了span后,其他的响应式配置将失效;\n * 范围 0 ~ 24\n * 为 0 相当于隐藏\n * 为 24 相当于独占一行\n */\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /**\n * 是否移除 外部包装div\n * ```\n * 1. 如果children 为数组,则此配置不生效\n * 2. 如果移除,会在children中添加style和className(所以children组件必须要有style、className属性)\n * ```\n */\n removeWrapper?: boolean;\n};\n\nexport const Col: FC<BoxColProps & ICommonReact> = (props) => {\n const { children, className, style, removeWrapper } = props;\n const { defaultGrid, horizontalGap, boxBreakpoint } = useContext(BoxGridProviderCtx);\n\n const span = useMemo(() => {\n return props.span || props[boxBreakpoint || 'lg'] || defaultGrid?.[boxBreakpoint || 'lg'] || 8;\n }, [props, boxBreakpoint, defaultGrid]);\n\n const styles = {\n ...style,\n flex: `0 0 ${(span / 24) * 100}%`,\n maxWidth: `${(span / 24) * 100}%`,\n padding: `0 ${horizontalGap / 2}px`,\n };\n\n if (removeWrapper && Children.count(children) === 1) {\n const innerStyle = children?.['props']?.style || {};\n const innerClassName = children?.['props']?.className || {};\n return cloneElement(children as ReactElement, {\n ...children?.['props'],\n style: { ...styles, ...innerStyle },\n className: classNames('box-grad-col', innerClassName, className),\n });\n }\n\n return (\n <div className={classNames(className, 'box-grad-col')} style={styles}>\n {children}\n </div>\n );\n};\n\nCol['domTypeName'] = 'BoxGridCol';\n","import { isNumber } from '@dimjs/lang';\nimport { useSize } from 'ahooks';\nimport { useMemo } from 'react';\nimport { DefaultGutter } from './constant';\nimport { defaultCtx } from './ctx';\nimport { type GutterParams, type TBoxBreakpoint } from './type';\n\n/**\n * 监听盒子大小变化,返回当前的断点\n * @param dom\n * @returns\n */\nexport const useBoxBreakpoint = (dom) => {\n const { width } = useSize(dom) || {};\n\n const boxBreakpoint = useMemo<TBoxBreakpoint>(() => {\n const w = width || dom?.clientWidth;\n if (!w) {\n return 'lg';\n }\n\n if (w >= 1600) {\n return 'xxl';\n } else if (w >= 1200) {\n return 'xl';\n } else if (w >= 992) {\n return 'lg';\n } else if (w >= 768) {\n return 'md';\n } else if (w >= 576) {\n return 'sm';\n } else {\n return 'xs';\n }\n }, [width]);\n\n return {\n boxBreakpoint,\n /**\n * @deprecated\n * 使用 haveWidth 替代\n */\n isInit: !!width,\n /** width为0,或者不存在 */\n haveWidth: !!width,\n };\n};\n\n/**\n * 处理间距\n * @param gutter\n * @param boxBreakpoint\n * @returns\n */\nexport const useGutter = (gutter: GutterParams = DefaultGutter, boxBreakpoint: TBoxBreakpoint) => {\n return useMemo(() => {\n let horizontalGap: number;\n let verticalGap: number;\n\n const getCommonGutter = (gutter) => {\n if (typeof gutter === 'number') {\n return gutter;\n }\n if (typeof gutter === 'object') {\n return { ...DefaultGutter, ...gutter }[boxBreakpoint];\n }\n };\n\n if (Array.isArray(gutter)) {\n const [h, v] = gutter;\n horizontalGap = getCommonGutter(h);\n verticalGap = getCommonGutter(v);\n } else {\n horizontalGap = getCommonGutter(gutter);\n verticalGap = defaultCtx.verticalGap;\n }\n\n return {\n horizontalGap: isNumber(horizontalGap) ? horizontalGap : defaultCtx.horizontalGap,\n verticalGap: isNumber(verticalGap) ? verticalGap : defaultCtx.verticalGap,\n };\n }, [gutter, boxBreakpoint]);\n};\n","import { classNames } from '@dimjs/utils';\nimport { FC, useEffect, useRef } from 'react';\nimport { alignPropsMap, justifyPropsMap, PresetDefaultGrid } from './constant';\nimport { BoxGridProviderCtx, defaultCtx } from './ctx';\nimport { useBoxBreakpoint, useGutter } from './hooks';\nimport { TBoxBreakpoint, type GutterParams, type ICommonReact } from './type';\n\nexport interface BoxRowProps {\n /**\n * 在不同响应尺寸下的元素占位格数\n * 应用到所有Col子元素上\n */\n defaultGrid?: Partial<typeof PresetDefaultGrid>;\n /** 间距 */\n gutter?: GutterParams;\n /** flex 布局的垂直对齐方式 */\n align?: 'top' | 'middle' | 'bottom' | 'stretch';\n /** flex 布局的水平排列方式 */\n justify?: 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly';\n /** 尺寸变化回调 */\n onBoxBreakpointChange?: (breakpoint: TBoxBreakpoint) => void;\n}\n\nexport const Row: FC<BoxRowProps & ICommonReact> = (props) => {\n const {\n defaultGrid = PresetDefaultGrid,\n children,\n className,\n style,\n gutter,\n align,\n justify,\n onBoxBreakpointChange,\n } = props;\n const comRef = useRef<HTMLDivElement>(null);\n const { boxBreakpoint, haveWidth } = useBoxBreakpoint(comRef);\n const { horizontalGap, verticalGap } = useGutter(gutter, boxBreakpoint);\n\n useEffect(() => {\n onBoxBreakpointChange?.(boxBreakpoint);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [boxBreakpoint]);\n\n return (\n <BoxGridProviderCtx.Provider\n value={{\n ...defaultCtx,\n defaultGrid: {\n ...PresetDefaultGrid,\n ...defaultGrid,\n },\n boxBreakpoint,\n horizontalGap,\n verticalGap,\n }}\n >\n <div className={classNames('box-grad-root', className)} ref={comRef} style={style}>\n <div\n className=\"box-grad-row\"\n style={{\n alignItems: align ? alignPropsMap[align] : 'normal',\n justifyContent: justify ? justifyPropsMap[justify] : 'normal',\n marginLeft: `-${horizontalGap / 2}px`,\n marginRight: `-${horizontalGap / 2}px`,\n rowGap: `${verticalGap}px`,\n /**\n * fix: boxBreakpoint多次变化,闪一下的问题\n * 子元素拿不到宽度,boxBreakpoint 会快速变化,导致元素闪烁\n * 场景:\n * 1. 使用 Tabs 组件时,任意父级元素disabled,子元素拿不到宽度\n * 2. 初始渲染,拿不到宽度\n */\n opacity: haveWidth ? 1 : 0,\n }}\n >\n {children}\n </div>\n </div>\n </BoxGridProviderCtx.Provider>\n );\n};\n","import { type TBoxBreakpoint } from './type';\n\n/**\n * 获取栅格响应式布局的配置\n * @param minSize 元素的最小可接受宽度\n * @returns\n */\nexport const getGridMapByRange = (minSize: number): Record<TBoxBreakpoint, number> => {\n const getSpan = (threshold: number) => {\n const result = Math.ceil((minSize * 24) / threshold);\n return [1, 2, 3, 4, 6, 8, 12, 24].find((item) => item >= result) || 24;\n };\n\n return {\n xxl: getSpan(1600),\n xl: getSpan(1200),\n lg: getSpan(992),\n md: getSpan(768),\n sm: getSpan(576),\n xs: getSpan(200),\n };\n};\n","import { Col } from './col';\nimport './index.less';\nimport { Row } from './row';\nimport { getGridMapByRange } from './utils';\n\nexport { useBoxBreakpoint } from './hooks';\n\nexport const BoxGrid = {\n /**\n * 网格响应式布局\n *```\n * 1. 应用场景:根据盒子大小决定内部元素的布局\n * 2. 子元素只能是 BoxGrid.Col\n */\n Row,\n /**\n * 网格响应式布局,\n * 默认值:\n * { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * xs={24} sm={12} md={12} lg={8} xl={8} xxl={6}\n *```\n * 1. 设置 span 栅格占位格数,0 ~ 24\n * 2. grid 自定义响应式网格布局\n * xs: 容器尺寸 < 576px\n * sm: 容器尺寸 ≥ 576px\n * md: 容器尺寸 ≥ 768px\n * lg: 容器尺寸 ≥ 992px\n * xl: 容器尺寸 ≥ 1200px\n * xxl: 容器尺寸 ≥ 1600px\n * ```\n */\n Col,\n /**\n * 获取栅格响应式布局的配置\n * @param minSize 元素的最小可接受宽度\n * @returns { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num }\n */\n getGridMapByRange,\n};\n"],"names":["PresetDefaultGrid","xs","sm","md","lg","xl","xxl","DefaultGutter","alignPropsMap","top","middle","bottom","stretch","justifyPropsMap","start","end","center","defaultCtx","boxBreakpoint","defaultGrid","horizontalGap","verticalGap","BoxGridProviderCtx","createContext","Col","props","children","className","style","removeWrapper","_useContext","useContext","span","useMemo","styles","_extends","flex","maxWidth","padding","Children","count","_children$props","_children$props2","innerStyle","innerClassName","cloneElement","_classNames","_jsx","useBoxBreakpoint","dom","_ref","useSize","width","w","clientWidth","isInit","haveWidth","useGutter","gutter","getCommonGutter","Array","isArray","_gutter","h","v","_isNumber","Row","_props$defaultGrid","align","justify","onBoxBreakpointChange","comRef","useRef","_useBoxBreakpoint","_useGutter","useEffect","Provider","value","ref","alignItems","justifyContent","marginLeft","marginRight","rowGap","opacity","getGridMapByRange","minSize","getSpan","threshold","result","Math","ceil","find","item","BoxGrid"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/box-grid/constant.tsx","@flatbiz/antd/src/box-grid/ctx.ts","@flatbiz/antd/src/box-grid/col.tsx","@flatbiz/antd/src/box-grid/hooks.ts","@flatbiz/antd/src/box-grid/row.tsx","@flatbiz/antd/src/box-grid/utils.ts","@flatbiz/antd/src/box-grid/index.ts"],"sourcesContent":["export const PresetDefaultGrid = {\n xs: 24,\n sm: 12,\n md: 12,\n lg: 8,\n xl: 8,\n xxl: 6,\n};\n\nexport const DefaultGutter = { xs: 8, sm: 16, md: 16, lg: 24, xl: 24, xxl: 32 };\n\nexport const RowAligns = ['top', 'middle', 'bottom', 'stretch'] as const;\nexport const RowJustify = [\n 'start',\n 'end',\n 'center',\n 'space-around',\n 'space-between',\n 'space-evenly',\n] as const;\n\nexport const alignPropsMap: Record<(typeof RowAligns)[number], string> = {\n top: 'flex-start',\n middle: 'center',\n bottom: 'flex-end',\n stretch: 'stretch',\n};\n\nexport const justifyPropsMap: Record<(typeof RowJustify)[number], string> = {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n 'space-around': 'space-around',\n 'space-between': 'space-between',\n 'space-evenly': 'space-evenly',\n};\n","import { createContext } from 'react';\nimport { PresetDefaultGrid } from './constant';\nimport { type TBoxBreakpoint } from './type';\n\nexport type BoxGridProviderContextType = {\n horizontalGap: number;\n verticalGap: number;\n boxBreakpoint: TBoxBreakpoint;\n defaultGrid: {\n xs: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n xxl: number;\n };\n};\n\nexport const defaultCtx: BoxGridProviderContextType = {\n boxBreakpoint: 'lg',\n defaultGrid: PresetDefaultGrid,\n horizontalGap: 10,\n verticalGap: 10,\n};\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const BoxGridProviderCtx = createContext<BoxGridProviderContextType>(defaultCtx);\n","import { classNames } from '@dimjs/utils';\nimport { Children, cloneElement, useContext, useMemo, type FC, type ReactElement } from 'react';\nimport { BoxGridProviderCtx } from './ctx';\nimport { type ICommonReact } from './type';\n\nexport type BoxColProps = {\n /**\n * 栅格占位格数\n * span 优先级最高:配置了span后,其他的响应式配置将失效;\n * 范围 0 ~ 24\n * 为 0 相当于隐藏\n * 为 24 相当于独占一行\n */\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /**\n * 是否移除 外部包装div\n * ```\n * 1. 如果children 为数组,则此配置不生效\n * 2. 如果移除,会在children中添加style和className(所以children组件必须要有style、className属性)\n * ```\n */\n removeWrapper?: boolean;\n};\n\nexport const Col: FC<BoxColProps & ICommonReact> = (props) => {\n const { children, className, style, removeWrapper } = props;\n const { defaultGrid, horizontalGap, boxBreakpoint } = useContext(BoxGridProviderCtx);\n\n const span = useMemo(() => {\n return props.span || props[boxBreakpoint || 'lg'] || defaultGrid?.[boxBreakpoint || 'lg'] || 8;\n }, [props, boxBreakpoint, defaultGrid]);\n\n const styles = {\n ...style,\n flex: `0 0 ${(span / 24) * 100}%`,\n maxWidth: `${(span / 24) * 100}%`,\n padding: `0 ${horizontalGap / 2}px`,\n };\n\n if (removeWrapper && Children.count(children) === 1) {\n const innerStyle = children?.['props']?.style || {};\n const innerClassName = children?.['props']?.className || {};\n return cloneElement(children as ReactElement, {\n ...children?.['props'],\n style: { ...styles, ...innerStyle },\n className: classNames('box-grad-col', innerClassName, className),\n });\n }\n\n return (\n <div className={classNames(className, 'box-grad-col')} style={styles}>\n {children}\n </div>\n );\n};\n\nCol['domTypeName'] = 'BoxGridCol';\n","import { isNumber } from '@dimjs/lang';\nimport { useSize } from 'ahooks';\nimport { useMemo } from 'react';\nimport { DefaultGutter } from './constant';\nimport { defaultCtx } from './ctx';\nimport { type GutterParams, type TBoxBreakpoint } from './type';\n\n/**\n * 监听盒子大小变化,返回当前的断点\n * @param dom\n * @returns\n */\nexport const useBoxBreakpoint = (dom) => {\n const { width } = useSize(dom) || {};\n\n const boxBreakpoint = useMemo<TBoxBreakpoint>(() => {\n const w = width || dom?.clientWidth;\n if (!w) {\n return 'lg';\n }\n\n if (w >= 1600) {\n return 'xxl';\n } else if (w >= 1200) {\n return 'xl';\n } else if (w >= 992) {\n return 'lg';\n } else if (w >= 768) {\n return 'md';\n } else if (w >= 576) {\n return 'sm';\n } else {\n return 'xs';\n }\n }, [width]);\n\n return {\n boxBreakpoint,\n /**\n * @deprecated\n * 使用 haveWidth 替代\n */\n isInit: !!width,\n /** width为0,或者不存在 */\n haveWidth: !!width,\n };\n};\n\n/**\n * 处理间距\n * @param gutter\n * @param boxBreakpoint\n * @returns\n */\nexport const useGutter = (gutter: GutterParams = DefaultGutter, boxBreakpoint: TBoxBreakpoint) => {\n return useMemo(() => {\n let horizontalGap: number;\n let verticalGap: number;\n\n const getCommonGutter = (gutter) => {\n if (typeof gutter === 'number') {\n return gutter;\n }\n if (typeof gutter === 'object') {\n return { ...DefaultGutter, ...gutter }[boxBreakpoint];\n }\n };\n\n if (Array.isArray(gutter)) {\n const [h, v] = gutter;\n horizontalGap = getCommonGutter(h);\n verticalGap = getCommonGutter(v);\n } else {\n horizontalGap = getCommonGutter(gutter);\n verticalGap = defaultCtx.verticalGap;\n }\n\n return {\n horizontalGap: isNumber(horizontalGap) ? horizontalGap : defaultCtx.horizontalGap,\n verticalGap: isNumber(verticalGap) ? verticalGap : defaultCtx.verticalGap,\n };\n }, [gutter, boxBreakpoint]);\n};\n","import { classNames } from '@dimjs/utils';\nimport { FC, useEffect, useRef } from 'react';\nimport { alignPropsMap, justifyPropsMap, PresetDefaultGrid } from './constant';\nimport { BoxGridProviderCtx, defaultCtx } from './ctx';\nimport { useBoxBreakpoint, useGutter } from './hooks';\nimport { TBoxBreakpoint, type GutterParams, type ICommonReact } from './type';\n\nexport interface BoxRowProps {\n /**\n * 在不同响应尺寸下的元素占位格数\n * 应用到所有Col子元素上\n */\n defaultGrid?: Partial<typeof PresetDefaultGrid>;\n /** 间距 */\n gutter?: GutterParams;\n /** flex 布局的垂直对齐方式 */\n align?: 'top' | 'middle' | 'bottom' | 'stretch';\n /** flex 布局的水平排列方式 */\n justify?: 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly';\n /** 尺寸变化回调 */\n onBoxBreakpointChange?: (breakpoint: TBoxBreakpoint) => void;\n}\n\nexport const Row: FC<BoxRowProps & ICommonReact> = (props) => {\n const {\n defaultGrid = PresetDefaultGrid,\n children,\n className,\n style,\n gutter,\n align,\n justify,\n onBoxBreakpointChange,\n } = props;\n const comRef = useRef<HTMLDivElement>(null);\n const { boxBreakpoint, haveWidth } = useBoxBreakpoint(comRef);\n const { horizontalGap, verticalGap } = useGutter(gutter, boxBreakpoint);\n\n useEffect(() => {\n onBoxBreakpointChange?.(boxBreakpoint);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [boxBreakpoint]);\n\n return (\n <BoxGridProviderCtx.Provider\n value={{\n ...defaultCtx,\n defaultGrid: {\n ...PresetDefaultGrid,\n ...defaultGrid,\n },\n boxBreakpoint,\n horizontalGap,\n verticalGap,\n }}\n >\n <div className={classNames('box-grad-root', className)} ref={comRef} style={style}>\n <div\n className=\"box-grad-row\"\n style={{\n alignItems: align ? alignPropsMap[align] : 'normal',\n justifyContent: justify ? justifyPropsMap[justify] : 'normal',\n marginLeft: `-${horizontalGap / 2}px`,\n marginRight: `-${horizontalGap / 2}px`,\n rowGap: `${verticalGap}px`,\n /**\n * fix: boxBreakpoint多次变化,闪一下的问题\n * 子元素拿不到宽度,boxBreakpoint 会快速变化,导致元素闪烁\n * 场景:\n * 1. 使用 Tabs 组件时,任意父级元素disabled,子元素拿不到宽度\n * 2. 初始渲染,拿不到宽度\n */\n opacity: haveWidth ? 1 : 0,\n }}\n >\n {children}\n </div>\n </div>\n </BoxGridProviderCtx.Provider>\n );\n};\n","import { type TBoxBreakpoint } from './type';\n\n/**\n * 获取栅格响应式布局的配置\n * @param minSize 元素的最小可接受宽度\n * @returns\n */\nexport const getGridMapByRange = (minSize: number): Record<TBoxBreakpoint, number> => {\n const getSpan = (threshold: number) => {\n const result = Math.ceil((minSize * 24) / threshold);\n return [1, 2, 3, 4, 6, 8, 12, 24].find((item) => item >= result) || 24;\n };\n\n return {\n xxl: getSpan(1600),\n xl: getSpan(1200),\n lg: getSpan(992),\n md: getSpan(768),\n sm: getSpan(576),\n xs: getSpan(200),\n };\n};\n","import { Col } from './col';\nimport './index.less';\nimport { Row } from './row';\nimport { getGridMapByRange } from './utils';\n\nexport { useBoxBreakpoint } from './hooks';\n\nexport const BoxGrid = {\n /**\n * 网格响应式布局\n *```\n * 1. 应用场景:根据盒子大小决定内部元素的布局\n * 2. 子元素只能是 BoxGrid.Col\n */\n Row,\n /**\n * 网格响应式布局,\n * 默认值:\n * { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * xs={24} sm={12} md={12} lg={8} xl={8} xxl={6}\n *```\n * 1. 设置 span 栅格占位格数,0 ~ 24\n * 2. grid 自定义响应式网格布局\n * xs: 容器尺寸 < 576px\n * sm: 容器尺寸 ≥ 576px\n * md: 容器尺寸 ≥ 768px\n * lg: 容器尺寸 ≥ 992px\n * xl: 容器尺寸 ≥ 1200px\n * xxl: 容器尺寸 ≥ 1600px\n * ```\n */\n Col,\n /**\n * 获取栅格响应式布局的配置\n * @param minSize 元素的最小可接受宽度\n * @returns { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num }\n */\n getGridMapByRange,\n};\n"],"names":["PresetDefaultGrid","xs","sm","md","lg","xl","xxl","DefaultGutter","alignPropsMap","top","middle","bottom","stretch","justifyPropsMap","start","end","center","defaultCtx","boxBreakpoint","defaultGrid","horizontalGap","verticalGap","BoxGridProviderCtx","createContext","Col","props","children","className","style","removeWrapper","_useContext","useContext","span","useMemo","styles","_extends","flex","maxWidth","padding","Children","count","_children$props","_children$props2","innerStyle","innerClassName","cloneElement","_classNames","_jsx","useBoxBreakpoint","dom","_ref","useSize","width","w","clientWidth","isInit","haveWidth","useGutter","gutter","getCommonGutter","Array","isArray","_gutter","h","v","_isNumber","Row","_props$defaultGrid","align","justify","onBoxBreakpointChange","comRef","useRef","_useBoxBreakpoint","_useGutter","useEffect","Provider","value","ref","alignItems","justifyContent","marginLeft","marginRight","rowGap","opacity","getGridMapByRange","minSize","getSpan","threshold","result","Math","ceil","find","item","BoxGrid"],"mappings":";mXAAO,IAAMA,EAAoB,CAC/BC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,EACJC,GAAI,EACJC,IAAK,GAGA,IAAMC,EAAgB,CAAEN,GAAI,EAAGC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,IAAK,IAYpE,IAAME,EAA4D,CACvEC,IAAK,aACLC,OAAQ,SACRC,OAAQ,WACRC,QAAS,WAGJ,IAAMC,EAA+D,CAC1EC,MAAO,aACPC,IAAK,WACLC,OAAQ,SACR,eAAgB,eAChB,gBAAiB,gBACjB,eAAgB,gBChBX,IAAMC,EAAyC,CACpDC,cAAe,KACfC,YAAanB,EACboB,cAAe,GACfC,YAAa,IAIR,IAAMC,EAAqBC,EAA0CN,GCUrE,IAAMO,EAAsC,SAAtCA,EAAuCC,GAClD,IAAQC,EAA8CD,EAA9CC,SAAUC,EAAoCF,EAApCE,UAAWC,EAAyBH,EAAzBG,MAAOC,EAAkBJ,EAAlBI,cACpC,IAAAC,EAAsDC,EAAWT,GAAzDH,EAAWW,EAAXX,YAAaC,EAAaU,EAAbV,cAAeF,EAAaY,EAAbZ,cAEpC,IAAMc,EAAOC,GAAQ,WACnB,OAAOR,EAAMO,MAAQP,EAAMP,GAAiB,QAASC,GAAW,UAAA,EAAXA,EAAcD,GAAiB,QAAS,CAC9F,GAAE,CAACO,EAAOP,EAAeC,IAE1B,IAAMe,EAAMC,EAAA,CAAA,EACPP,EAAK,CACRQ,YAAcJ,EAAO,GAAM,IAAM,IACjCK,SAAcL,EAAO,GAAM,IAAM,IACjCM,QAAO,KAAOlB,EAAgB,EAAC,OAGjC,GAAIS,GAAiBU,EAASC,MAAMd,KAAc,EAAG,CAAA,IAAAe,EAAAC,EACnD,IAAMC,GAAajB,GAAQ,OAAAe,EAARf,EAAW,WAAXe,UAAAA,EAAAA,EAAqBb,QAAS,CAAA,EACjD,IAAMgB,GAAiBlB,GAAQ,OAAAgB,EAARhB,EAAW,WAAXgB,UAAAA,EAAAA,EAAqBf,YAAa,CAAA,EACzD,OAAOkB,EAAanB,EAAQS,EACvBT,GAAAA,GAAAA,UAAAA,EAAAA,EAAW,SAAQ,CACtBE,MAAKO,EAAA,GAAOD,EAAWS,GACvBhB,UAAWmB,EAAW,eAAgBF,EAAgBjB,KAE1D,CAEA,OACEoB,EAAA,MAAA,CAAKpB,UAAWmB,EAAWnB,EAAW,gBAAiBC,MAAOM,EAAOR,SAClEA,GAGP,EAEAF,EAAI,eAAiB,iBCxDRwB,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAAC,EAAkBC,EAAQF,IAAQ,CAAE,EAA5BG,EAAKF,EAALE,MAER,IAAMlC,EAAgBe,GAAwB,WAC5C,IAAMoB,EAAID,IAASH,GAAAA,UAAAA,EAAAA,EAAKK,aACxB,IAAKD,EAAG,CACN,MAAO,IACT,CAEA,GAAIA,GAAK,KAAM,CACb,MAAO,KACT,MAAO,GAAIA,GAAK,KAAM,CACpB,MAAO,IACT,MAAO,GAAIA,GAAK,IAAK,CACnB,MAAO,IACT,MAAO,GAAIA,GAAK,IAAK,CACnB,MAAO,IACT,MAAO,GAAIA,GAAK,IAAK,CACnB,MAAO,IACT,KAAO,CACL,MAAO,IACT,CACF,GAAG,CAACD,IAEJ,MAAO,CACLlC,cAAAA,EAKAqC,SAAUH,EAEVI,YAAaJ,EAEjB,EAQO,IAAMK,EAAY,SAAZA,EAAaC,EAAsCxC,GAAkC,GAAxEwC,SAAoB,EAAA,CAApBA,EAAuBnD,CAAa,CAC5D,OAAO0B,GAAQ,WACb,IAAIb,EACJ,IAAIC,EAEJ,IAAMsC,EAAkB,SAAlBA,EAAmBD,GACvB,UAAWA,IAAW,SAAU,CAC9B,OAAOA,CACT,CACA,UAAWA,IAAW,SAAU,CAC9B,OAAOvB,EAAK5B,CAAAA,EAAAA,EAAkBmD,GAASxC,EACzC,GAGF,GAAI0C,MAAMC,QAAQH,GAAS,CACzB,IAAAI,EAAeJ,EAARK,EAACD,EAAA,GAAEE,EAACF,EAAA,GACX1C,EAAgBuC,EAAgBI,GAChC1C,EAAcsC,EAAgBK,EAChC,KAAO,CACL5C,EAAgBuC,EAAgBD,GAChCrC,EAAcJ,EAAWI,WAC3B,CAEA,MAAO,CACLD,cAAe6C,EAAS7C,GAAiBA,EAAgBH,EAAWG,cACpEC,YAAa4C,EAAS5C,GAAeA,EAAcJ,EAAWI,YAElE,GAAG,CAACqC,EAAQxC,GACd,EC3DO,IAAMgD,EAAsC,SAAtCA,EAAuCzC,GAClD,IAAA0C,EASI1C,EARFN,YAAAA,EAAWgD,SAAGnE,EAAAA,EAAiBmE,EAC/BzC,EAOED,EAPFC,SACAC,EAMEF,EANFE,UACAC,EAKEH,EALFG,MACA8B,EAIEjC,EAJFiC,OACAU,EAGE3C,EAHF2C,MACAC,EAEE5C,EAFF4C,QACAC,EACE7C,EADF6C,sBAEF,IAAMC,EAASC,EAAuB,MACtC,IAAAC,EAAqCzB,EAAiBuB,GAA9CrD,EAAauD,EAAbvD,cAAesC,EAASiB,EAATjB,UACvB,IAAAkB,EAAuCjB,EAAUC,EAAQxC,GAAjDE,EAAasD,EAAbtD,cAAeC,EAAWqD,EAAXrD,YAEvBsD,GAAU,WACRL,GAAAA,MAAAA,EAAwBpD,EAE1B,GAAG,CAACA,IAEJ,OACE6B,EAACzB,EAAmBsD,SAAQ,CAC1BC,MAAK1C,EAAA,CAAA,EACAlB,EAAU,CACbE,YAAWgB,EAAA,GACNnC,EACAmB,GAELD,cAAAA,EACAE,cAAAA,EACAC,YAAAA,IACAK,SAEFqB,EAAA,MAAA,CAAKpB,UAAWmB,EAAW,gBAAiBnB,GAAYmD,IAAKP,EAAQ3C,MAAOA,EAAMF,SAChFqB,EAAA,MAAA,CACEpB,UAAU,eACVC,MAAO,CACLmD,WAAYX,EAAQ5D,EAAc4D,GAAS,SAC3CY,eAAgBX,EAAUxD,EAAgBwD,GAAW,SACrDY,WAAgB7D,IAAAA,EAAgB,EAAK,KACrC8D,YAAiB9D,IAAAA,EAAgB,EAAK,KACtC+D,OAAW9D,EAAe,KAQ1B+D,QAAS5B,EAAY,EAAI,GACzB9B,SAEDA,OAKX,ECzEO,IAAM2D,EAAoB,SAApBA,EAAqBC,GAChC,IAAMC,EAAU,SAAVA,EAAWC,GACf,IAAMC,EAASC,KAAKC,KAAML,EAAU,GAAME,GAC1C,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAII,MAAK,SAACC,GAAI,OAAKA,GAAQJ,CAAM,KAAK,IAGtE,MAAO,CACLnF,IAAKiF,EAAQ,MACblF,GAAIkF,EAAQ,MACZnF,GAAImF,EAAQ,KACZpF,GAAIoF,EAAQ,KACZrF,GAAIqF,EAAQ,KACZtF,GAAIsF,EAAQ,KAEhB,ECdO,IAAMO,EAAU,CAOrB5B,IAAAA,EAiBA1C,IAAAA,EAMA6D,kBAAAA"}
@@ -9,5 +9,5 @@ import './../dialog-confirm/index.css';
9
9
  import './../dialog-modal/index.css';
10
10
  import './index.css';
11
11
  /*! @flatjs/forge MIT @flatbiz/antd */
12
- import i from"@ant-design/icons/es/icons/MoreOutlined";import{_ as r,a as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isUndefined as o}from"@dimjs/lang/cjs/is-undefined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as p}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as l,Tooltip as c,Space as d,Divider as m,Popconfirm as u,Button as f}from"antd";import{isValidElement as v,Fragment as j,useState as g,useMemo as h,createElement as y}from"react";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaUtils as T}from"../fba-utils/index.js";import{jsx as C,jsxs as P}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";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"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"@dimjs/model";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps","hoverTips","color","tipsType","type","isFold"];var b=function i(r){if(r.hoverTips){if(r.tipsType==="popover"){return C(l,{content:r.hoverTips,zIndex:1e3,children:C("span",{children:r.content})})}return C(c,{title:r.hoverTips,zIndex:1e3,children:C("span",{children:r.content})})}if(v(r.content)){return C(j,{children:r.content})}return C("span",{children:r.content})};var F=function l(c){var j=g(false),F=j[0],z=j[1];var O=a.useCallbackRef((function(i,r){var e=i.onClick==null?void 0:i.onClick(r);if(e&&p(e)){z(true);return e.finally((function(){z(false)}))}return}));var I=c.operateList.filter((function(i){if(!i)return false;if(v(i)){var r,e,o;if(((r=i.props)==null?void 0:r["hidden"])===true)return false;if(((e=i.props)==null?void 0:e["v-hidden"])===true)return false;var n=(o=i.props)==null?void 0:o["v-permission"];if(s(n)){return T.hasPermission(n)}return true}if(t(i)){if(!T.hasPermission(i["permission"])){return false}return!i["hidden"]}return false}));var M=h((function(){return I.filter((function(i){if(v(i)){return true}return!i["isFold"]}))}),[I]);var N=h((function(){var i=I.filter((function(i){if(v(i)){return false}return i["isFold"]}));var e=[];i.forEach((function(i){var o=r({},i);delete o.isFold;e.push(o)}));return e}),[I]);var _=c.gap===undefined?10:c.gap;var L=!c.split?_:0;return C("div",{className:n("table-operate",c.className),style:c.style,children:P(d,r({split:c.split?C(m,{type:"vertical"}):null,size:L,wrap:o(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(i,o){if(i&&v(i)){return C(b,{content:i,hoverTips:i.hoverTips,tipsType:i.tipsType},o)}var n=i.text,t=i.onClick,s=i.needConfirm,p=i.confirmMessage,a=i.popconfirmProps,l=i.hoverTips,c=i.color,d=i.tipsType,m=i.type;i.isFold;var f=e(i,w);var j=m||"link";if(s&&!f.disabled){var g=c?false:true;return y(u,r({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:p,onConfirm:O.bind(null,i),key:o,okButtonProps:{loading:F},onOpenChange:function i(r){if(!r){z(false)}},onCancel:function i(r){r==null?void 0:r.stopPropagation()}}),C(k,r({danger:g},f,{onClick:function i(r){r.stopPropagation()},type:j,children:C(b,{content:n,hoverTips:l,tipsType:d},o)})))}return y(k,r({loadingPosition:"center"},f,{type:j,onClick:function i(r){r.stopPropagation();return t==null?void 0:t(r)},key:o}),C(b,{content:n,hoverTips:l,tipsType:i.tipsType}))})),N.length>0?C(x,r({menuList:N,placement:"bottom"},c.dropdownMenuProps,{children:C(f,{type:"link",className:"fold-more-button",onClick:function i(r){r.stopPropagation()},children:c.foldIcon?c.foldIcon:C(i,{})})})):null]}))})};F.defaultProps={split:true};export{F as ButtonOperate,b as ButtonOperateItemContent};
12
+ import i from"@ant-design/icons/es/icons/MoreOutlined";import{_ as r,a as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isUndefined as o}from"@dimjs/lang/cjs/is-undefined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as s}from"@dimjs/lang/cjs/is-string";import{isPromise as p}from"@dimjs/lang/cjs/is-promise";import{hooks as a}from"@wove/react/cjs/hooks";import{Popover as l,Tooltip as c,Space as d,Divider as m,Popconfirm as u,Button as f}from"antd";import{isValidElement as v,Fragment as j,useState as g,useMemo as h,createElement as y}from"react";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaUtils as T}from"../fba-utils/index.js";import{jsx as C,jsxs as P}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@flatbiz/utils";import"../index-83bede1b.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"@dimjs/model";var w=["text","onClick","needConfirm","confirmMessage","popconfirmProps","hoverTips","color","tipsType","type","isFold"];var b=function i(r){if(r.hoverTips){if(r.tipsType==="popover"){return C(l,{content:r.hoverTips,zIndex:1e3,children:C("span",{children:r.content})})}return C(c,{title:r.hoverTips,zIndex:1e3,children:C("span",{children:r.content})})}if(v(r.content)){return C(j,{children:r.content})}return C("span",{children:r.content})};var F=function l(c){var j=g(false),F=j[0],z=j[1];var O=a.useCallbackRef((function(i,r){var e=i.onClick==null?void 0:i.onClick(r);if(e&&p(e)){z(true);return e.finally((function(){z(false)}))}return}));var I=c.operateList.filter((function(i){if(!i)return false;if(v(i)){var r,e,o;if(((r=i.props)==null?void 0:r["hidden"])===true)return false;if(((e=i.props)==null?void 0:e["v-hidden"])===true)return false;var n=(o=i.props)==null?void 0:o["v-permission"];if(s(n)){return T.hasPermission(n)}return true}if(t(i)){if(!T.hasPermission(i["permission"])){return false}return!i["hidden"]}return false}));var M=h((function(){return I.filter((function(i){if(v(i)){return true}return!i["isFold"]}))}),[I]);var N=h((function(){var i=I.filter((function(i){if(v(i)){return false}return i["isFold"]}));var e=[];i.forEach((function(i){var o=r({},i);delete o.isFold;e.push(o)}));return e}),[I]);var _=c.gap===undefined?10:c.gap;var L=!c.split?_:0;return C("div",{className:n("table-operate",c.className),style:c.style,children:P(d,r({split:c.split?C(m,{type:"vertical"}):null,size:L,wrap:o(c.wrap)?true:c.wrap},c.spaceProps,{children:[M.map((function(i,o){if(i&&v(i)){return C(b,{content:i,hoverTips:i.hoverTips,tipsType:i.tipsType},o)}var n=i.text,t=i.onClick,s=i.needConfirm,p=i.confirmMessage,a=i.popconfirmProps,l=i.hoverTips,c=i.color,d=i.tipsType,m=i.type;i.isFold;var f=e(i,w);var j=m||"link";if(s&&!f.disabled){var g=c?false:true;return y(u,r({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},a,{title:p,onConfirm:O.bind(null,i),key:o,okButtonProps:{loading:F},onOpenChange:function i(r){if(!r){z(false)}},onCancel:function i(r){r==null||r.stopPropagation()}}),C(k,r({danger:g},f,{onClick:function i(r){r.stopPropagation()},type:j,children:C(b,{content:n,hoverTips:l,tipsType:d},o)})))}return y(k,r({loadingPosition:"center"},f,{type:j,onClick:function i(r){r.stopPropagation();return t==null?void 0:t(r)},key:o}),C(b,{content:n,hoverTips:l,tipsType:i.tipsType}))})),N.length>0?C(x,r({menuList:N,placement:"bottom"},c.dropdownMenuProps,{children:C(f,{type:"link",className:"fold-more-button",onClick:function i(r){r.stopPropagation()},children:c.foldIcon?c.foldIcon:C(i,{})})})):null]}))})};F.defaultProps={split:true};export{F as ButtonOperate,b as ButtonOperateItemContent};
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport type { PopconfirmProps, SpaceProps } from 'antd';\nimport { Button, Divider, Popconfirm, Popover, Space, Tooltip } from 'antd';\nimport type { CSSProperties, FC, ReactElement, ReactNode } from 'react';\nimport { Fragment, isValidElement, useMemo, useState } from 'react';\nimport type { ButtonWrapperProps } from '../button-wrapper/button-wrapper.jsx';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport type { DialogModalProps } from '../dialog-modal/dialog-modal.jsx';\nimport type { DropdownMenuWrapperProps } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { fbaUtils } from '../fba-utils/index.js';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字,isFold=true无效 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n /** 按钮文案 */\n text?: string | ReactElement;\n /** 自定义按钮颜色 */\n color?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: ReactNode;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface ButtonOperateProps {\n className?: string;\n style?: CSSProperties;\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n /** 是否换行,默认true */\n wrap?: boolean;\n /** 隐藏图标Icon */\n foldIcon?: ReactElement;\n /** 按钮之间是否添加分隔符 */\n split?: boolean;\n /** 多个按钮的包装组件Space属性 */\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & {\n content: ReactNode;\n },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * 1. operateList中存在ReactElement类型的元素,可通过配置 v-permission 属性来设置权限,例如 v-permission=\"add\"\n * 2. operateList中存在ReactElement类型的元素,如果有hidden、v-hidden属性,值为true会隐藏\n *\n *\n * flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n if (item.props?.['v-hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const {\n text,\n onClick,\n needConfirm,\n confirmMessage,\n popconfirmProps,\n hoverTips,\n color,\n tipsType,\n type,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isFold: _isFold,\n ...otherProps\n } = item;\n const typeFt = type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={typeFt}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={typeFt}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent content={text} hoverTips={hoverTips} tipsType={item.tipsType} />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList} placement=\"bottom\" {...props.dropdownMenuProps}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","_item$props","_item$props2","_item$props3","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","color","otherProps","_objectWithoutPropertiesLoose","_excluded","typeFt","disabled","danger","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":";2zDA8DaA,EAA2B,SAA3BA,EACXC,GAIA,GAAIA,EAAMC,UAAW,CACnB,GAAID,EAAME,WAAa,UAAW,CAChC,OACEC,EAACC,EAAO,CAACC,QAASL,EAAMC,UAAWK,OAAQ,IAAKC,SAC9CJ,EAAA,OAAA,CAAAI,SAAOP,EAAMK,WAGnB,CACA,OACEF,EAACK,EAAO,CAACC,MAAOT,EAAMC,UAAWK,OAAQ,IAAKC,SAC5CJ,EAAA,OAAA,CAAAI,SAAOP,EAAMK,WAGnB,CACA,GAAIK,EAAeV,EAAMK,SAAU,CACjC,OAAOF,EAACQ,EAAQ,CAAAJ,SAAEP,EAAMK,SAC1B,CAEA,OAAOF,EAAA,OAAA,CAAAI,SAAOP,EAAMK,SACtB,MAcaO,EAAwC,SAAxCA,EAAyCZ,GACpD,IAAAa,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1B,IAAMI,EAAYC,EAAMC,gBAAe,SAACC,EAAyBC,GAC/D,IAAMC,EAASF,EAAKG,SAALH,UAAAA,EAAAA,EAAKG,QAAUF,GAC9B,GAAIC,GAAUE,EAAUF,GAAS,CAC/BN,EAAW,MACX,OAAOM,EAAOG,SAAQ,WACpBT,EAAW,MACb,GACF,CACA,MACF,IAEA,IAAMU,EAAc1B,EAAM0B,YAAYC,QAAO,SAACP,GAC5C,IAAKA,EAAM,OAAO,MAClB,GAAIV,EAAeU,GAAO,CAAA,IAAAQ,EAAAC,EAAAC,EACxB,KAAIF,EAAAR,EAAKpB,QAAK,UAAA,EAAV4B,EAAa,aAAc,KAAM,OAAO,MAC5C,KAAIC,EAAAT,EAAKpB,QAAK,UAAA,EAAV6B,EAAa,eAAgB,KAAM,OAAO,MAC9C,IAAME,GAAUD,EAAGV,EAAKpB,QAAL8B,UAAAA,EAAAA,EAAa,gBAChC,GAAIE,EAASD,GAAa,CACxB,OAAOE,EAASC,cAAcH,EAChC,CACA,OAAO,IACT,CACA,GAAII,EAAcf,GAAO,CACvB,IAAKa,EAASC,cAAcd,EAAK,eAAgB,CAC/C,OAAO,KACT,CACA,OAAQA,EAAK,SACf,CACA,OAAO,KACT,IAEA,IAAMgB,EAAWC,GAAQ,WACvB,OAAOX,EAAYC,QAAO,SAACP,GACzB,GAAIV,EAAeU,GAAO,CACxB,OAAO,IACT,CACA,OAAQA,EAAK,SACf,GACF,GAAG,CAACM,IAEJ,IAAMY,EAAWD,GAAQ,WACvB,IAAME,EAAab,EAAYC,QAAO,SAACP,GACrC,GAAIV,EAAeU,GAAO,CACxB,OAAO,KACT,CACA,OAAOA,EAAK,SACd,IACA,IAAME,EAAS,GACfiB,EAAWC,SAAQ,SAACpB,GAClB,IAAMqB,EAAMC,EAAA,CAAA,EAAQtB,UAEbqB,EAAOE,OACdrB,EAAOsB,KAAKH,EACd,IACA,OAAOnB,CACT,GAAG,CAACI,IAEJ,IAAMmB,EAAM7C,EAAM6C,MAAQC,UAAY,GAAK9C,EAAM6C,IACjD,IAAME,GAAQ/C,EAAMgD,MAAQH,EAAM,EAElC,OACE1C,EAAA,MAAA,CAAK8C,UAAWC,EAAW,gBAAiBlD,EAAMiD,WAAYE,MAAOnD,EAAMmD,MAAM5C,SAC/E6C,EAACC,EAAKX,EAAA,CACJM,MAAOhD,EAAMgD,MAAQ7C,EAACmD,EAAO,CAACC,KAAK,aAAgB,KACnDR,KAAMA,EACNS,KAAMC,EAAYzD,EAAMwD,MAAQ,KAAOxD,EAAMwD,MACzCxD,EAAM0D,WAAU,CAAAnD,SAAA,CAEnB6B,EAASuB,KAAI,SAACvC,EAAMwC,GACnB,GAAIxC,GAAQV,EAAeU,GAAO,CAChC,OACEjB,EAACJ,EAAwB,CACvBM,QAASe,EACTnB,UAAWmB,EAAKnB,UAChBC,SAAUkB,EAAKlB,UACV0D,EAGX,CACA,IACEC,EAYEzC,EAZFyC,KACAtC,EAWEH,EAXFG,QACAuC,EAUE1C,EAVF0C,YACAC,EASE3C,EATF2C,eACAC,EAQE5C,EARF4C,gBACA/D,EAOEmB,EAPFnB,UACAgE,EAME7C,EANF6C,MACA/D,EAKEkB,EALFlB,SACAqD,EAIEnC,EAJFmC,KAIEnC,EAFFuB,OACGuB,IAAAA,EAAUC,EACX/C,EAAIgD,GACR,IAAMC,EAASd,GAAQ,OACvB,GAAIO,IAAgBI,EAAWI,SAAU,CACvC,IAAMC,EAASN,EAAQ,MAAQ,KAC/B,OACEO,EAACC,EAAU/B,EAAA,CACTgC,OAAO,KACPC,WAAW,KACXC,QAAS,CAAC,SACVC,UAAU,WACVC,MAAO,KACPC,qBAAsB,MAClBf,EAAe,CACnBvD,MAAOsD,EACP9C,UAAWA,EAAU+D,KAAK,KAAM5D,GAChC6D,IAAKrB,EACLsB,cAAe,CACbnE,QAAAA,GAEFoE,aAAc,SAAAA,EAACC,GACb,IAAKA,EAAO,CACVpE,EAAW,MACb,CACA,EACFqE,SAAU,SAAAA,EAAChE,GACTA,GAAAA,UAAAA,EAAAA,EAAOiE,iBACT,IAEAnF,EAACoF,EAAa7C,EAAA,CACZ6B,OAAQA,GACJL,EAAU,CACd3C,QAAS,SAAAA,EAACF,GACRA,EAAMiE,iBACN,EACF/B,KAAMc,EAAO9D,SAEbJ,EAACJ,EAAwB,CACvBM,QAASwD,EACT5D,UAAWA,EACXC,SAAUA,GACL0D,MAKf,CACA,OACEY,EAACe,EAAa7C,EAAA,CACZ8C,gBAAgB,UACZtB,EAAU,CACdX,KAAMc,EACN9C,QAAS,SAAAA,EAACF,GACRA,EAAMiE,kBACN,OAAO/D,GAAO,UAAA,EAAPA,EAAUF,EACjB,EACF4D,IAAKrB,IAELzD,EAACJ,EAAwB,CAACM,QAASwD,EAAM5D,UAAWA,EAAWC,SAAUkB,EAAKlB,WAGpF,IACCoC,EAASmD,OAAS,EACjBtF,EAACuF,EAAmBhD,EAAA,CAACiD,SAAUrD,EAAUuC,UAAU,UAAa7E,EAAM4F,kBAAiB,CAAArF,SACrFJ,EAAC0F,EAAM,CACLtC,KAAK,OACLN,UAAU,mBACV1B,QAAS,SAAAA,EAACF,GACRA,EAAMiE,iBACN,EAAA/E,SAEDP,EAAM8F,SAAW9F,EAAM8F,SAAW3F,EAAA4F,EAAe,SAGpD,UAIZ,EAEAnF,EAAcoF,aAAe,CAC3BhD,MAAO"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport type { PopconfirmProps, SpaceProps } from 'antd';\nimport { Button, Divider, Popconfirm, Popover, Space, Tooltip } from 'antd';\nimport type { CSSProperties, FC, ReactElement, ReactNode } from 'react';\nimport { Fragment, isValidElement, useMemo, useState } from 'react';\nimport type { ButtonWrapperProps } from '../button-wrapper/button-wrapper.jsx';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport type { DialogModalProps } from '../dialog-modal/dialog-modal.jsx';\nimport type { DropdownMenuWrapperProps } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper/dropdown-menu-wrapper.jsx';\nimport { fbaUtils } from '../fba-utils/index.js';\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonWrapperProps {\n /** hover 提示文字,isFold=true无效 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n /** 按钮文案 */\n text?: string | ReactElement;\n /** 自定义按钮颜色 */\n color?: string;\n /** 是否需要二次弹框确认 */\n needConfirm?: boolean;\n /** 二次弹框确认文案 */\n confirmMessage?: ReactNode;\n /* isFold=false & needConfirm=true 有效 */\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n /** 是否折叠合拢 */\n isFold?: boolean;\n /* isFold=true & needConfirm=true 有效 */\n confirmModalProps?: DialogModalProps;\n}\n\nexport interface ButtonOperateProps {\n className?: string;\n style?: CSSProperties;\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n /** 是否换行,默认true */\n wrap?: boolean;\n /** 隐藏图标Icon */\n foldIcon?: ReactElement;\n /** 按钮之间是否添加分隔符 */\n split?: boolean;\n /** 多个按钮的包装组件Space属性 */\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n /** 折叠合拢属性 */\n dropdownMenuProps?: Omit<DropdownMenuWrapperProps, 'menuList'>;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & {\n content: ReactNode;\n },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <span>{props.content}</span>\n </Tooltip>\n );\n }\n if (isValidElement(props.content)) {\n return <Fragment>{props.content}</Fragment>;\n }\n // ButtonOperate item 内部 span 包文案会有动态效果\n return <span>{props.content}</span>;\n};\n\n/**\n * 按钮组合处理组件\n * ```\n * 1. operateList中存在ReactElement类型的元素,可通过配置 v-permission 属性来设置权限,例如 v-permission=\"add\"\n * 2. operateList中存在ReactElement类型的元素,如果有hidden、v-hidden属性,值为true会隐藏\n *\n *\n * flatbiz/antd@4.2.49\n * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能\n * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题\n * ```\n */\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n if (item.props?.['v-hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item['permission'])) {\n return false;\n }\n return !item['hidden'];\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item['isFold'];\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item['isFold'];\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)} style={props.style}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item)) {\n return (\n <ButtonOperateItemContent\n content={item}\n hoverTips={item.hoverTips}\n tipsType={item.tipsType}\n key={index}\n />\n );\n }\n const {\n text,\n onClick,\n needConfirm,\n confirmMessage,\n popconfirmProps,\n hoverTips,\n color,\n tipsType,\n type,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isFold: _isFold,\n ...otherProps\n } = item;\n const typeFt = type || 'link';\n if (needConfirm && !otherProps.disabled) {\n const danger = color ? false : true;\n return (\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n onCancel={(event) => {\n event?.stopPropagation();\n }}\n >\n <ButtonWrapper\n danger={danger}\n {...otherProps}\n onClick={(event) => {\n event.stopPropagation();\n }}\n type={typeFt}\n >\n <ButtonOperateItemContent\n content={text}\n hoverTips={hoverTips}\n tipsType={tipsType}\n key={index}\n />\n </ButtonWrapper>\n </Popconfirm>\n );\n }\n return (\n <ButtonWrapper\n loadingPosition=\"center\"\n {...otherProps}\n type={typeFt}\n onClick={(event) => {\n event.stopPropagation();\n return onClick?.(event);\n }}\n key={index}\n >\n <ButtonOperateItemContent content={text} hoverTips={hoverTips} tipsType={item.tipsType} />\n </ButtonWrapper>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList} placement=\"bottom\" {...props.dropdownMenuProps}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Tooltip","title","isValidElement","Fragment","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","_item$props","_item$props2","_item$props3","permission","_isString","fbaUtils","hasPermission","_isPlainObject","viewList","useMemo","foldList","filterList","forEach","target","_extends","isFold","push","gap","undefined","size","split","className","_classNames","style","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","needConfirm","confirmMessage","popconfirmProps","color","otherProps","_objectWithoutPropertiesLoose","_excluded","typeFt","disabled","danger","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","onCancel","stopPropagation","ButtonWrapper","loadingPosition","length","DropdownMenuWrapper","menuList","dropdownMenuProps","Button","foldIcon","_MoreOutlined","defaultProps"],"mappings":"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"}
@@ -5,5 +5,5 @@ import './../types/index.css';
5
5
  import './../fba-utils/index.css';
6
6
  import './index.css';
7
7
  /*! @flatjs/forge MIT @flatbiz/antd */
8
- import o from"@ant-design/icons/es/icons/LoadingOutlined";import{a as r,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isPromise as e}from"@dimjs/lang/cjs/is-promise";import{hooks as l}from"@wove/react/cjs/hooks";import{classNames as a}from"@dimjs/utils/cjs/class-names";import{isUndefinedOrNull as n}from"@flatbiz/utils";import{Button as t}from"antd";import{useState as s}from"react";import{C as c}from"../index-7f4ad045.js";import{fbaHooks as m}from"../fba-hooks/index.js";import{fbaUtils as d}from"../fba-utils/index.js";import{jsx as p,jsxs as u}from"react/jsx-runtime";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"@dimjs/utils/cjs/extend";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/model";var f=["loadingPosition","color","debounceDuration","permission","hidden","loading","removeGap"];var v=function o(r){if(r.color&&!r.disabled){var i={};if(r.type==="link"){i={colorLink:r.color,colorLinkActive:r.color,colorLinkHover:r.color}}else if(r.type==="primary"){i={colorPrimary:r.color,colorPrimaryHover:r.color,colorPrimaryActive:r.color}}else{i={colorPrimaryHover:r.color,colorPrimaryActive:r.color,colorText:r.color,colorBorder:r.color}}return p(c,{theme:{components:{Button:i}},children:r.children})}return r.children};var y=function c(y){var j=y.loadingPosition,h=y.color,g=y.debounceDuration,b=y.permission,k=y.hidden,P=y.loading,x=y.removeGap,C=r(y,f);var w=P;var N=s(false),D=N[0],H=N[1];var L=j===undefined?"left":j;var _=L==="left";var z=n(g)?500:g;var A=a(C.className,{"button-remove-gap":x});m.useEffectCustom((function(){if(!n(P)){H(w||false)}}),[P]);var B=l.useDebounceClick((function(o){var r=y.onClick;if(!r){return}var i=r(o);if(i&&e(i)){H(true);i.catch((function(o){console.error(o)})).finally((function(){H(false)}))}}),z);if(!d.hasPermission(b)){return null}if(k){return null}if(_){return p(v,{color:h,disabled:y.disabled,type:y.type,children:p(t,i({},C,{onClick:B,loading:D,className:A,children:y.children}))})}return p(v,{color:h,disabled:y.disabled,type:y.type,children:u(t,i({},C,{onClick:B,className:A,children:[D&&p("div",{className:"bw-center-loading",children:p(o,{})}),D?p("div",{style:{opacity:.5},children:y.children}):y.children]}))})};export{y as ButtonWrapper};
8
+ import o from"@ant-design/icons/es/icons/LoadingOutlined";import{a as r,_ as i}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{isPromise as e}from"@dimjs/lang/cjs/is-promise";import{hooks as l}from"@wove/react/cjs/hooks";import{classNames as a}from"@dimjs/utils/cjs/class-names";import{isUndefinedOrNull as n}from"@flatbiz/utils";import{Button as t}from"antd";import{useState as s}from"react";import{C as c}from"../index-83bede1b.js";import{fbaHooks as m}from"../fba-hooks/index.js";import{fbaUtils as d}from"../fba-utils/index.js";import{jsx as p,jsxs as u}from"react/jsx-runtime";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"@dimjs/utils/cjs/extend";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/model";var f=["loadingPosition","color","debounceDuration","permission","hidden","loading","removeGap"];var v=function o(r){if(r.color&&!r.disabled){var i={};if(r.type==="link"){i={colorLink:r.color,colorLinkActive:r.color,colorLinkHover:r.color}}else if(r.type==="primary"){i={colorPrimary:r.color,colorPrimaryHover:r.color,colorPrimaryActive:r.color}}else{i={colorPrimaryHover:r.color,colorPrimaryActive:r.color,colorText:r.color,colorBorder:r.color}}return p(c,{theme:{components:{Button:i}},children:r.children})}return r.children};var y=function c(y){var j=y.loadingPosition,h=y.color,g=y.debounceDuration,b=y.permission,k=y.hidden,P=y.loading,x=y.removeGap,C=r(y,f);var w=P;var N=s(false),D=N[0],H=N[1];var L=j===undefined?"left":j;var _=L==="left";var z=n(g)?500:g;var A=a(C.className,{"button-remove-gap":x});m.useEffectCustom((function(){if(!n(P)){H(w||false)}}),[P]);var B=l.useDebounceClick((function(o){var r=y.onClick;if(!r){return}var i=r(o);if(i&&e(i)){H(true);i.catch((function(o){console.error(o)})).finally((function(){H(false)}))}}),z);if(!d.hasPermission(b)){return null}if(k){return null}if(_){return p(v,{color:h,disabled:y.disabled,type:y.type,children:p(t,i({},C,{onClick:B,loading:D,className:A,children:y.children}))})}return p(v,{color:h,disabled:y.disabled,type:y.type,children:u(t,i({},C,{onClick:B,className:A,children:[D&&p("div",{className:"bw-center-loading",children:p(o,{})}),D?p("div",{style:{opacity:.5},children:y.children}):y.children]}))})};export{y as ButtonWrapper};
9
9
  //# sourceMappingURL=index.js.map
@@ -2,5 +2,5 @@
2
2
  import './../block-layout/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import{isArray as t}from"@dimjs/lang/cjs/is-array";import{_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{extend as l}from"@dimjs/utils/cjs/extend";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{Space as a}from"antd";import{Fragment as r}from"react";import{BlockLayout as s}from"../block-layout/index.js";import{jsx as d,jsxs as c}from"react/jsx-runtime";var n=function n(o){var u;var m=i("card-layout",{"card-layout-tight":o.layoutType==="tight","card-layout-title-fixed":o.titleFixed,"card-layout-small":o.size==="small"},o.className);var y=l(o.style,{padding:o.padding,width:o.width,height:o.height,overflowY:!o.titleFixed&&(o.height||(u=o.style)!=null&&u.height)?"auto":undefined});if(o.hidden)return d(r,{});return c(s,{className:m,style:y,onClick:o.onClick,children:[o.title||o.titleExtra?c("div",{className:i("card-layout-title",{"card-layout-title-sign":o.title?o.titleLeftLine:false}),style:o.titleStyle,children:[o.subTitle?c(r,{children:[d("div",{className:"card-layout-title-content",style:o.titleContentStyle,children:o.title}),d("div",{className:"card-layout-subtitle",style:e({marginLeft:10},o.subTitleStyle),children:o.subTitle})]}):d("div",{className:"card-layout-title-content",style:e({flex:1},o.titleContentStyle),children:o.title}),o.titleExtra?d("div",{className:"card-layout-title-extra",style:o.titleExtraStyle,children:o.titleExtra}):null]}):null,o.desc&&!t(o.desc)?d("div",{className:"card-layout-desc",children:o.desc}):null,o.desc&&t(o.desc)?d("div",{className:"card-layout-desc-list",children:d(a,{direction:"vertical",size:0,children:o.desc.map((function(t,e){return d(r,{children:t},e)}))})}):null,o.children?d("div",{className:"card-layout-content",style:o.contentStyle,children:o.children}):null]})};n.defaultProps={titleLeftLine:true,layoutType:"layer"};export{n as CardLayout};
5
+ import{isArray as t}from"@dimjs/lang/cjs/is-array";import{_ as e}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{extend as l}from"@dimjs/utils/cjs/extend";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{Space as a}from"antd";import{Fragment as r}from"react";import{BlockLayout as s}from"../block-layout/index.js";import{jsx as d,jsxs as c}from"react/jsx-runtime";var n=function n(o){var u;var m=i("card-layout",{"card-layout-tight":o.layoutType==="tight","card-layout-title-fixed":o.titleFixed,"card-layout-small":o.size==="small"},o.className);var y=l(o.style,{padding:o.padding,width:o.width,height:o.height,overflowY:!o.titleFixed&&(o.height||(u=o.style)!=null&&u.height)?"auto":undefined});if(o.hidden)return d(r,{});return c(s,{className:m,style:y,onClick:o.onClick,children:[o.title||o.titleExtra?c("div",{className:i("card-layout-title",{"card-layout-title-sign":o.title?o.titleLeftLine:false}),style:o.titleStyle,children:[o.subTitle?c(r,{children:[d("div",{className:"card-layout-title-content",style:o.titleContentStyle,children:o.title}),d("div",{className:"card-layout-subtitle",style:e({marginLeft:10},o.subTitleStyle),children:o.subTitle})]}):d("div",{className:"card-layout-title-content",style:e({flex:1},o.titleContentStyle),children:o.title}),o.titleExtra?d("div",{className:"card-layout-title-extra",style:o.titleExtraStyle,children:o.titleExtra}):null]}):null,o.desc&&!t(o.desc)?d("div",{className:"card-layout-desc",children:o.desc}):null,o.desc&&t(o.desc)?d("div",{className:"card-layout-desc-list",children:d(a,{direction:"vertical",size:0,children:o.desc.map((function(t,e){return d(r,{children:t},e)}))})}):null,o.children?d("div",{className:"card-layout-content",style:o.contentStyle,children:o.children}):null]})};n.defaultProps={titleLeftLine:true,layoutType:"layer"};export{n as CardLayout};
6
6
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as s}from"@dimjs/utils/cjs/class-names";import{Card as a}from"antd";import{jsx as m}from"react/jsx-runtime";var e=function e(o){return m(a,r({},o,{className:s("card-wrapper",o.className)}))};export{e as CardWrapper};
4
+ import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as s}from"@dimjs/utils/cjs/class-names";import{Card as a}from"antd";import{jsx as m}from"react/jsx-runtime";var e=function e(o){return m(a,r({},o,{className:s("card-wrapper",o.className)}))};export{e as CardWrapper};
5
5
  //# sourceMappingURL=index.js.map
@@ -2,5 +2,5 @@
2
2
  import './../fba-hooks/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import e from"@ant-design/icons/es/icons/CloseCircleFilled";import n from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as i,_ as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{get as l}from"@dimjs/utils/cjs/get";import{extend as u}from"@dimjs/utils/cjs/extend";import{toArray as s,isUndefinedOrNull as f,treeNodeParentsList as c}from"@flatbiz/utils";import{Cascader as d,Button as v,Flex as m}from"antd";import{forwardRef as p,useState as g,useRef as h,useMemo as C,useEffect as y,useImperativeHandle as q}from"react";import{fbaHooks as j}from"../fba-hooks/index.js";import{RequestStatus as R}from"../request-status/index.js";import{isPlainObject as b}from"@dimjs/lang/cjs/is-plain-object";import{jsx as L,jsxs as k}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var w=function e(n){var r=s(n);return r.map((function(e){return b(e)?e==null?void 0:e["value"]:e}))};var P=["serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue"];var x=p((function(s,p){var b=s.serviceConfig,x=s.fieldNames,N=s.isDynamicLoad,S=s.requestMessageConfig,E=s.onSelectorListChange,D=s.responseType,I=s.labelInValue,O=i(s,P);var A=g([]),B=A[0],F=A[1];var J=g("request-init"),K=J[0],M=J[1];var T=h(S);var V=j.useSafeState(false),_=V[0],z=V[1];var H=u(true,{label:"label",value:"value",children:"children"},x);var G=g(),Q=G[0],U=G[1];var W=j.usePrevious(JSON.stringify((b==null?void 0:b.params)||{}));var X=C((function(){return JSON.stringify((b==null?void 0:b.params)||{})}),[b==null?void 0:b.params]);y((function(){T.current=S}),[S]);var Y=function e(n){if(b!=null&&b.onRequestResultAdapter){return b.onRequestResultAdapter(n)}if(x!=null&&x.list){n=l(n,x==null?void 0:x.list)}if(!a(n)){console.warn("接口返回数据不是数组类型,已被忽略",n);return[]}return n};var Z=t.useCallbackRef((function(){return new Promise((function(e,n){var r,i,t,a;if(!(b!=null&&b.onRequest)){return n(new Error("onRequest 调用接口服务不能为空"))}var l=function(){try{return e()}catch(e){return n(e)}};var u=function(e){try{z(false);T.current=o({},T.current,{"request-error":e.message||"获取数据异常"});M("request-error");return l()}catch(e){return n(e)}};try{r=b.params||{};if(b!=null&&b.requiredParamsKeys){i=b==null?void 0:b.requiredParamsKeys.find((function(e){return f(r[e])}));if(i){F([]);M("no-dependencies-params");if(s.value){s.onChange==null?void 0:s.onChange(undefined)}return e()}}z(true);M("request-progress");return Promise.resolve(b.onRequest==null?void 0:b.onRequest(r)).then((function(e){try{t=e;a=Y(t);if(N){a.map((function(e){e.isLeaf=e.isLeaf||false}))}z(false);F(a||[]);E==null?void 0:E(a||[]);return l()}catch(e){return u(e)}}),u)}catch(e){u(e)}}))}));j.useEffectCustom((function(){var e=w(s.value);if(e.length>0){if(D==="all"){U(e)}else{var n=c(e[0],B,true,H).reverse();if(n.length===0){U([s.value])}else{U(n)}}}else{U(undefined)}}),[B,s.value]);q(p,(function(){return{getCascaderList:function e(){return B}}}));j.useEffectCustom((function(){if(W){if(X!==W){void Z()}}}),[W,X]);var $=t.useCallbackRef((function(){void Z()}));j.useEffectCustom((function(){void Z()}),[]);var ee=function e(n){return new Promise((function(e,r){var i,t,a,l;t=n[n.length-1];t.loading=true;return Promise.resolve(b==null||b.onRequest==null?void 0:b.onRequest(o({},b.params,(i={},i[H.value]=t[H.value],i)))).then((function(n){try{a=n;l=Y(a);if(!l||l.length===0){t.isLeaf=true}else{l.map((function(e){e.isLeaf=e.isLeaf||false}));t.children=l}t.loading=false;E==null?void 0:E(B||[]);F([].concat(B));return e()}catch(e){return r(e)}}),r)}))};var ne=t.useCallbackRef((function(e,n){if(I!==true){if(D==="all"){s.onChange==null?void 0:s.onChange(e,n)}else{s.onChange==null?void 0:s.onChange(e==null?void 0:e[e.length-1],n)}}else{var r=n==null?void 0:n.map((function(e){return{label:e[H.label],value:e[H.value]}}));if(D==="all"){s.onChange==null?void 0:s.onChange(r,n)}else{s.onChange==null?void 0:s.onChange(r==null?void 0:r[r.length-1],n)}}}));var re=t.useCallbackRef((function(){void(s.onChange==null?void 0:s.onChange(undefined))}));return L(d,o({showSearch:true,allowClear:true},O,{popupClassName:r("cascader-wrapper-popup",O.popupClassName),notFoundContent:L(R,{status:K,loading:_,messageConfig:T.current,errorButton:L(v,{type:"primary",onClick:$,ghost:true,children:"重新获取数据"})}),loading:_,loadData:N?ee:undefined,fieldNames:H,suffixIcon:K==="request-error"?k(m,{style:{display:"inline-flex",gap:10},children:[L(n,{spin:_,onClick:$}),L(e,{style:{color:"#ff4d4f"}})]}):undefined,options:B,value:Q,multiple:false,onChange:ne,onClear:re}))}));export{x as CascaderWrapper};
5
+ import e from"@ant-design/icons/es/icons/CloseCircleFilled";import n from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{a as t,_ as a}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as i}from"@wove/react/cjs/hooks";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{get as l}from"@dimjs/utils/cjs/get";import{extend as s}from"@dimjs/utils/cjs/extend";import{toArray as u,isUndefinedOrNull as f,treeNodeParentsList as c}from"@flatbiz/utils";import{Cascader as m,Button as d,Flex as v}from"antd";import{forwardRef as p,useState as g,useRef as h,useMemo as C,useEffect as q,useImperativeHandle as y}from"react";import{fbaHooks as j}from"../fba-hooks/index.js";import{RequestStatus as R}from"../request-status/index.js";import{isPlainObject as b}from"@dimjs/lang/cjs/is-plain-object";import{jsx as L,jsxs as k}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var w=function e(n){var r=u(n);return r.map((function(e){return b(e)?e==null?void 0:e["value"]:e}))};var P=["serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue"];var x=p((function(u,p){var b=u.serviceConfig,x=u.fieldNames,N=u.isDynamicLoad,S=u.requestMessageConfig,E=u.onSelectorListChange,D=u.responseType,I=u.labelInValue,O=t(u,P);var A=g([]),B=A[0],F=A[1];var J=g("request-init"),K=J[0],M=J[1];var T=h(S);var V=j.useSafeState(false),_=V[0],z=V[1];var H=s(true,{label:"label",value:"value",children:"children"},x);var G=g(),Q=G[0],U=G[1];var W=j.usePrevious(JSON.stringify((b==null?void 0:b.params)||{}));var X=C((function(){return JSON.stringify((b==null?void 0:b.params)||{})}),[b==null?void 0:b.params]);q((function(){T.current=S}),[S]);var Y=function e(n){if(b!=null&&b.onRequestResultAdapter){return b.onRequestResultAdapter(n)}if(x!=null&&x.list){n=l(n,x==null?void 0:x.list)}if(!o(n)){console.warn("接口返回数据不是数组类型,已被忽略",n);return[]}return n};var Z=i.useCallbackRef((function(){return new Promise((function(e,n){var r,t,i,o;if(!(b!=null&&b.onRequest)){return n(new Error("onRequest 调用接口服务不能为空"))}var l=function(){try{return e()}catch(e){return n(e)}};var s=function(e){try{z(false);T.current=a({},T.current,{"request-error":e.message||"获取数据异常"});M("request-error");return l()}catch(e){return n(e)}};try{r=b.params||{};if(b!=null&&b.requiredParamsKeys){t=b==null?void 0:b.requiredParamsKeys.find((function(e){return f(r[e])}));if(t){F([]);M("no-dependencies-params");if(u.value){u.onChange==null||u.onChange(undefined)}return e()}}z(true);M("request-progress");return Promise.resolve(b.onRequest==null?void 0:b.onRequest(r)).then((function(e){try{i=e;o=Y(i);if(N){o.map((function(e){e.isLeaf=e.isLeaf||false}))}z(false);F(o||[]);E==null||E(o||[]);M("request-success");return l()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));j.useEffectCustom((function(){var e=w(u.value);if(e.length>0){if(D==="all"){U(e)}else{var n=c(e[0],B,true,H).reverse();if(n.length===0){U([u.value])}else{U(n)}}}else{U(undefined)}}),[B,u.value]);y(p,(function(){return{getCascaderList:function e(){return B}}}));j.useEffectCustom((function(){if(W){if(X!==W){void Z()}}}),[W,X]);var $=i.useCallbackRef((function(){void Z()}));j.useEffectCustom((function(){void Z()}),[]);var ee=function e(n){return new Promise((function(e,r){var t,i,o,l;i=n[n.length-1];i.loading=true;return Promise.resolve(b==null||b.onRequest==null?void 0:b.onRequest(a({},b.params,(t={},t[H.value]=i[H.value],t)))).then((function(n){try{o=n;l=Y(o);if(!l||l.length===0){i.isLeaf=true}else{l.map((function(e){e.isLeaf=e.isLeaf||false}));i.children=l}i.loading=false;E==null||E(B||[]);F([].concat(B));return e()}catch(e){return r(e)}}),r)}))};var ne=i.useCallbackRef((function(e,n){if(I!==true){if(D==="all"){u.onChange==null||u.onChange(e,n)}else{u.onChange==null||u.onChange(e==null?void 0:e[e.length-1],n)}}else{var r=n==null?void 0:n.map((function(e){return{label:e[H.label],value:e[H.value]}}));if(D==="all"){u.onChange==null||u.onChange(r,n)}else{u.onChange==null||u.onChange(r==null?void 0:r[r.length-1],n)}}}));var re=i.useCallbackRef((function(){void(u.onChange==null?void 0:u.onChange(undefined))}));return L(m,a({showSearch:true,allowClear:true},O,{popupClassName:r("cascader-wrapper-popup",O.popupClassName),notFoundContent:L(R,{status:K,loading:_,messageConfig:T.current,errorButton:L(d,{type:"primary",onClick:$,ghost:true,children:"重新获取数据"})}),loading:_,loadData:N?ee:undefined,fieldNames:H,suffixIcon:K==="request-error"?k(v,{style:{display:"inline-flex",gap:10},children:[L(n,{spin:_,onClick:$}),L(e,{style:{color:"#ff4d4f"}})]}):undefined,options:B,value:Q,multiple:false,onChange:ne,onClear:re}))}));export{x as CascaderWrapper};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/cascader-wrapper/utils.ts","@flatbiz/antd/src/cascader-wrapper/cascader-wrapper.tsx"],"sourcesContent":["import { isPlainObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\nexport const getValues = (value: any) => {\n const values = toArray(value);\n return values.map((item) => {\n return isPlainObject(item) ? item?.['value'] : item;\n });\n};\n","import { CloseCircleFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n LabelValueItem,\n TPlainObject,\n treeNodeParentsList,\n type TAny,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Cascader, CascaderProps, Flex } from 'antd';\nimport { forwardRef, ReactElement, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks/index';\nimport type { TRequestStatus, TRequestStatusProps } from '../request-status/request-status';\nimport { RequestStatus } from '../request-status/request-status';\nimport './style.less';\nimport { getValues } from './utils';\n\ntype CascaderWrapperServiceConfig = {\n params?: TPlainObject;\n onRequest?: (params?: TAny) => TAny;\n /** 响应数据适配器 */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n /** 必填字段设置 */\n requiredParamsKeys?: string[];\n};\n\nexport type CascaderWrapperProps = Omit<\n CascaderProps<TAny>,\n 'loading' | 'notFoundContent' | 'options' | 'value' | 'multiple' | 'onChange' | 'fieldNames'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. 默认值:value=value、label=label、children=children\n * 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * 4. 如果没有配置list,可说明接口返回为数组\n * ```\n */\n fieldNames?: {\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n };\n /**\n * 请求服务需求的数据,当设置`selectorList`后无效果\n */\n serviceConfig?: CascaderWrapperServiceConfig;\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 是否动态加载选项\n */\n isDynamicLoad?: boolean;\n value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];\n onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;\n /** 配置数据查询状态描述,比如有依赖字段描述 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * 选择数据响应类型(当用户选中后响应数据),默认值:last\n * ```\n * 1. last 响应选中的最后一级数据\n * 2. all 响应选中的多级数据\n * ```\n */\n responseType?: 'last' | 'all';\n /** 响应数据是否包含label、value */\n labelInValue?: boolean;\n};\n\nexport type CascaderWrapperRefApi = {\n getCascaderList: () => TPlainObject[];\n};\n/**\n * 级联选择器包装组件\n * ```\n * 1. 数据源中 value 不能重复\n * 2. 不支持多选\n * 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存\n * 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据\n * 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据\n * 6. @flatbiz/antd@5.0.25 删除 modelKey 字段\n * 7. serviceConfig.params 参数发生变化时,会重新请求数据\n * ```\n */\nexport const CascaderWrapper = forwardRef<CascaderWrapperRefApi, CascaderWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n fieldNames,\n isDynamicLoad,\n requestMessageConfig,\n onSelectorListChange,\n responseType,\n labelInValue,\n ...otherProps\n } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n const [status, setStatus] = useState<TRequestStatus>('request-init');\n\n const requestMessageConfigRef = useRef(requestMessageConfig);\n\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const fieldNamesMerge = extend(true, { label: 'label', value: 'value', children: 'children' }, fieldNames);\n const [valueList, setValueList] = useState<string[]>();\n\n const prevParams = fbaHooks.usePrevious(JSON.stringify(serviceConfig?.params || {}));\n\n const paramsStr = useMemo(() => {\n return JSON.stringify(serviceConfig?.params || {});\n }, [serviceConfig?.params]);\n\n useEffect(() => {\n requestMessageConfigRef.current = requestMessageConfig;\n }, [requestMessageConfig]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n respData = get(respData, fieldNames?.list);\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据不是数组类型,已被忽略', respData);\n return [];\n }\n return respData;\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!serviceConfig?.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n try {\n const params = serviceConfig.params || {};\n // 判断必填参数是否完整\n if (serviceConfig?.requiredParamsKeys) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(params[item]);\n });\n if (target) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setDataList([]);\n setStatus('no-dependencies-params');\n if (props.value) {\n props.onChange?.(undefined);\n }\n return;\n }\n }\n setLoading(true);\n setStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(params);\n const respAdapterData = serviceRespDataAdapter(respData);\n if (isDynamicLoad) {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n }\n setLoading(false);\n setDataList(respAdapterData || []);\n onSelectorListChange?.(respAdapterData || []);\n } catch (error: TAny) {\n setLoading(false);\n requestMessageConfigRef.current = {\n ...requestMessageConfigRef.current,\n 'request-error': error.message || '获取数据异常',\n };\n setStatus('request-error');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const values = getValues(props.value) as Array<number | string>;\n if (values.length > 0) {\n if (responseType === 'all') {\n setValueList(values as string[]);\n } else {\n const filterList = treeNodeParentsList(values[0], dataList, true, fieldNamesMerge).reverse();\n if (filterList.length === 0) {\n setValueList([props.value as string]);\n } else {\n setValueList(filterList as string[]);\n }\n }\n } else {\n setValueList(undefined);\n }\n }, [dataList, props.value]);\n\n useImperativeHandle(ref, () => {\n return {\n getCascaderList: () => {\n return dataList;\n },\n };\n });\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (paramsStr !== prevParams) {\n void startDataSourceRequest();\n }\n }\n }, [prevParams, paramsStr]);\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loadData = async (selectedOptions: TAny[]) => {\n const targetOption = selectedOptions[selectedOptions.length - 1];\n targetOption.loading = true;\n const respData = await serviceConfig?.onRequest?.({\n ...serviceConfig.params,\n [fieldNamesMerge.value]: targetOption[fieldNamesMerge.value],\n });\n const respAdapterData = serviceRespDataAdapter(respData);\n if (!respAdapterData || respAdapterData.length === 0) {\n targetOption.isLeaf = true;\n } else {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n targetOption.children = respAdapterData;\n }\n targetOption.loading = false;\n onSelectorListChange?.(dataList || []);\n setDataList([...dataList]);\n };\n\n const onChange = hooks.useCallbackRef((values: Array<string | number>, selectList) => {\n if (labelInValue !== true) {\n if (responseType === 'all') {\n props.onChange?.(values, selectList);\n } else {\n props.onChange?.(values?.[values.length - 1], selectList);\n }\n } else {\n const labelInValueList = selectList?.map((item) => {\n return {\n label: item[fieldNamesMerge.label],\n value: item[fieldNamesMerge.value],\n };\n });\n if (responseType === 'all') {\n props.onChange?.(labelInValueList, selectList);\n } else {\n props.onChange?.(labelInValueList?.[labelInValueList.length - 1], selectList);\n }\n }\n });\n\n const onClear = hooks.useCallbackRef(() => {\n void props.onChange?.(undefined);\n });\n\n return (\n <Cascader\n showSearch={true}\n allowClear={true}\n {...(otherProps as TAny)}\n popupClassName={classNames('cascader-wrapper-popup', otherProps.popupClassName)}\n notFoundContent={\n <RequestStatus\n status={status}\n loading={loading}\n messageConfig={requestMessageConfigRef.current}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest} ghost>\n 重新获取数据\n </Button>\n }\n />\n }\n loading={loading}\n loadData={isDynamicLoad ? loadData : undefined}\n fieldNames={fieldNamesMerge}\n suffixIcon={\n status === 'request-error' ? (\n <Flex style={{ display: 'inline-flex', gap: 10 }}>\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n <CloseCircleFilled style={{ color: '#ff4d4f' }} />\n </Flex>\n ) : undefined\n }\n options={dataList}\n value={valueList}\n multiple={false}\n onChange={onChange}\n onClear={onClear}\n />\n );\n});\n"],"names":["getValues","value","values","toArray","map","item","_isPlainObject","CascaderWrapper","forwardRef","props","ref","serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","dataList","setDataList","_useState2","status","setStatus","requestMessageConfigRef","useRef","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","fieldNamesMerge","_extend","label","children","_useState3","valueList","setValueList","prevParams","usePrevious","JSON","stringify","params","paramsStr","useMemo","useEffect","current","serviceRespDataAdapter","respData","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","_params","target","_respData","respAdapterData","onRequest","Error","$Try_1_Post","$boundEx","$Try_1_Catch","error","_extends","message","requiredParamsKeys","find","isUndefinedOrNull","onChange","undefined","resolve","then","$await_2","isLeaf","useEffectCustom","length","filterList","treeNodeParentsList","reverse","useImperativeHandle","getCascaderList","onAgainRequest","loadData","selectedOptions","_extends2","targetOption","$await_3","concat","selectList","labelInValueList","onClear","_jsx","Cascader","showSearch","allowClear","popupClassName","_classNames","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","onClick","ghost","suffixIcon","_jsxs","Flex","style","display","gap","_RedoOutlined","spin","_CloseCircleFilled","color","options","multiple"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/cascader-wrapper/utils.ts","@flatbiz/antd/src/cascader-wrapper/cascader-wrapper.tsx"],"sourcesContent":["import { isPlainObject } from '@dimjs/lang';\nimport { toArray } from '@flatbiz/utils';\n\nexport const getValues = (value: any) => {\n const values = toArray(value);\n return values.map((item) => {\n return isPlainObject(item) ? item?.['value'] : item;\n });\n};\n","import { CloseCircleFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n LabelValueItem,\n TPlainObject,\n treeNodeParentsList,\n type TAny,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, Cascader, CascaderProps, Flex } from 'antd';\nimport { forwardRef, ReactElement, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks/index';\nimport type { TRequestStatus, TRequestStatusProps } from '../request-status/request-status';\nimport { RequestStatus } from '../request-status/request-status';\nimport './style.less';\nimport { getValues } from './utils';\n\ntype CascaderWrapperServiceConfig = {\n params?: TPlainObject;\n onRequest?: (params?: TAny) => TAny;\n /** 响应数据适配器 */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n /** 必填字段设置 */\n requiredParamsKeys?: string[];\n};\n\nexport type CascaderWrapperProps = Omit<\n CascaderProps<TAny>,\n 'loading' | 'notFoundContent' | 'options' | 'value' | 'multiple' | 'onChange' | 'fieldNames'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. 默认值:value=value、label=label、children=children\n * 2. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 3. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * 4. 如果没有配置list,可说明接口返回为数组\n * ```\n */\n fieldNames?: {\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n };\n /**\n * 请求服务需求的数据,当设置`selectorList`后无效果\n */\n serviceConfig?: CascaderWrapperServiceConfig;\n // label渲染适配器\n onLabelRenderAdapter?: (dataItem: TPlainObject) => string | ReactElement;\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 是否动态加载选项\n */\n isDynamicLoad?: boolean;\n value?: string | number | Array<string | number> | LabelValueItem | LabelValueItem[];\n onChange?: (value?: string | number | Array<string | number>, selectedList?: TPlainObject[]) => void;\n /** 配置数据查询状态描述,比如有依赖字段描述 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * 选择数据响应类型(当用户选中后响应数据),默认值:last\n * ```\n * 1. last 响应选中的最后一级数据\n * 2. all 响应选中的多级数据\n * ```\n */\n responseType?: 'last' | 'all';\n /** 响应数据是否包含label、value */\n labelInValue?: boolean;\n};\n\nexport type CascaderWrapperRefApi = {\n getCascaderList: () => TPlainObject[];\n};\n/**\n * 级联选择器包装组件\n * ```\n * 1. 数据源中 value 不能重复\n * 2. 不支持多选\n * 3. modelKey的配置是为了缓存数据,只缓存初始化数据,如果isDynamicLoad=true,动态获取的数据不再缓存\n * 4. onChange操作第一个参数返回叶子节点value(可配置返回多级),第二个参数返回选中的多级数据\n * 5. isDynamicLoad=true 会在请求中添加当前选中option的fieldNames.value为key的数据\n * 6. @flatbiz/antd@5.0.25 删除 modelKey 字段\n * 7. serviceConfig.params 参数发生变化时,会重新请求数据\n * ```\n */\nexport const CascaderWrapper = forwardRef<CascaderWrapperRefApi, CascaderWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n fieldNames,\n isDynamicLoad,\n requestMessageConfig,\n onSelectorListChange,\n responseType,\n labelInValue,\n ...otherProps\n } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n const [status, setStatus] = useState<TRequestStatus>('request-init');\n\n const requestMessageConfigRef = useRef(requestMessageConfig);\n\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const fieldNamesMerge = extend(true, { label: 'label', value: 'value', children: 'children' }, fieldNames);\n const [valueList, setValueList] = useState<string[]>();\n\n const prevParams = fbaHooks.usePrevious(JSON.stringify(serviceConfig?.params || {}));\n\n const paramsStr = useMemo(() => {\n return JSON.stringify(serviceConfig?.params || {});\n }, [serviceConfig?.params]);\n\n useEffect(() => {\n requestMessageConfigRef.current = requestMessageConfig;\n }, [requestMessageConfig]);\n\n const serviceRespDataAdapter = (respData) => {\n if (serviceConfig?.onRequestResultAdapter) {\n return serviceConfig.onRequestResultAdapter(respData as unknown as TPlainObject);\n }\n if (fieldNames?.list) {\n respData = get(respData, fieldNames?.list);\n }\n if (!isArray(respData)) {\n console.warn('接口返回数据不是数组类型,已被忽略', respData);\n return [];\n }\n return respData;\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!serviceConfig?.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n try {\n const params = serviceConfig.params || {};\n // 判断必填参数是否完整\n if (serviceConfig?.requiredParamsKeys) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(params[item]);\n });\n if (target) {\n // 当依赖项查询条件为空时,清空当前缓存数据\n setDataList([]);\n setStatus('no-dependencies-params');\n if (props.value) {\n props.onChange?.(undefined);\n }\n return;\n }\n }\n setLoading(true);\n setStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(params);\n const respAdapterData = serviceRespDataAdapter(respData);\n if (isDynamicLoad) {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n }\n setLoading(false);\n setDataList(respAdapterData || []);\n onSelectorListChange?.(respAdapterData || []);\n setStatus('request-success');\n } catch (error: TAny) {\n setLoading(false);\n requestMessageConfigRef.current = {\n ...requestMessageConfigRef.current,\n 'request-error': error.message || '获取数据异常',\n };\n setStatus('request-error');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const values = getValues(props.value) as Array<number | string>;\n if (values.length > 0) {\n if (responseType === 'all') {\n setValueList(values as string[]);\n } else {\n const filterList = treeNodeParentsList(values[0], dataList, true, fieldNamesMerge).reverse();\n if (filterList.length === 0) {\n setValueList([props.value as string]);\n } else {\n setValueList(filterList as string[]);\n }\n }\n } else {\n setValueList(undefined);\n }\n }, [dataList, props.value]);\n\n useImperativeHandle(ref, () => {\n return {\n getCascaderList: () => {\n return dataList;\n },\n };\n });\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (paramsStr !== prevParams) {\n void startDataSourceRequest();\n }\n }\n }, [prevParams, paramsStr]);\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loadData = async (selectedOptions: TAny[]) => {\n const targetOption = selectedOptions[selectedOptions.length - 1];\n targetOption.loading = true;\n const respData = await serviceConfig?.onRequest?.({\n ...serviceConfig.params,\n [fieldNamesMerge.value]: targetOption[fieldNamesMerge.value],\n });\n const respAdapterData = serviceRespDataAdapter(respData);\n if (!respAdapterData || respAdapterData.length === 0) {\n targetOption.isLeaf = true;\n } else {\n respAdapterData.map((item) => {\n item.isLeaf = item.isLeaf || false;\n });\n targetOption.children = respAdapterData;\n }\n targetOption.loading = false;\n onSelectorListChange?.(dataList || []);\n setDataList([...dataList]);\n };\n\n const onChange = hooks.useCallbackRef((values: Array<string | number>, selectList) => {\n if (labelInValue !== true) {\n if (responseType === 'all') {\n props.onChange?.(values, selectList);\n } else {\n props.onChange?.(values?.[values.length - 1], selectList);\n }\n } else {\n const labelInValueList = selectList?.map((item) => {\n return {\n label: item[fieldNamesMerge.label],\n value: item[fieldNamesMerge.value],\n };\n });\n if (responseType === 'all') {\n props.onChange?.(labelInValueList, selectList);\n } else {\n props.onChange?.(labelInValueList?.[labelInValueList.length - 1], selectList);\n }\n }\n });\n\n const onClear = hooks.useCallbackRef(() => {\n void props.onChange?.(undefined);\n });\n\n return (\n <Cascader\n showSearch={true}\n allowClear={true}\n {...(otherProps as TAny)}\n popupClassName={classNames('cascader-wrapper-popup', otherProps.popupClassName)}\n notFoundContent={\n <RequestStatus\n status={status}\n loading={loading}\n messageConfig={requestMessageConfigRef.current}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest} ghost>\n 重新获取数据\n </Button>\n }\n />\n }\n loading={loading}\n loadData={isDynamicLoad ? loadData : undefined}\n fieldNames={fieldNamesMerge}\n suffixIcon={\n status === 'request-error' ? (\n <Flex style={{ display: 'inline-flex', gap: 10 }}>\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n <CloseCircleFilled style={{ color: '#ff4d4f' }} />\n </Flex>\n ) : undefined\n }\n options={dataList}\n value={valueList}\n multiple={false}\n onChange={onChange}\n onClear={onClear}\n />\n );\n});\n"],"names":["getValues","value","values","toArray","map","item","_isPlainObject","CascaderWrapper","forwardRef","props","ref","serviceConfig","fieldNames","isDynamicLoad","requestMessageConfig","onSelectorListChange","responseType","labelInValue","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","dataList","setDataList","_useState2","status","setStatus","requestMessageConfigRef","useRef","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","fieldNamesMerge","_extend","label","children","_useState3","valueList","setValueList","prevParams","usePrevious","JSON","stringify","params","paramsStr","useMemo","useEffect","current","serviceRespDataAdapter","respData","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","target","respAdapterData","onRequest","Error","$Try_1_Post","$boundEx","$Try_1_Catch","error","_extends","message","requiredParamsKeys","find","isUndefinedOrNull","onChange","undefined","resolve","then","$await_2","isLeaf","useEffectCustom","length","filterList","treeNodeParentsList","reverse","useImperativeHandle","getCascaderList","onAgainRequest","loadData","selectedOptions","_extends2","targetOption","$await_3","concat","selectList","labelInValueList","onClear","_jsx","Cascader","showSearch","allowClear","popupClassName","_classNames","notFoundContent","RequestStatus","messageConfig","errorButton","Button","type","onClick","ghost","suffixIcon","_jsxs","Flex","style","display","gap","_RedoOutlined","spin","_CloseCircleFilled","color","options","multiple"],"mappings":";y7BAGO,IAAMA,EAAY,SAAZA,EAAaC,GACxB,IAAMC,EAASC,EAAQF,GACvB,OAAOC,EAAOE,KAAI,SAACC,GACjB,OAAOC,EAAcD,GAAQA,GAAAA,UAAAA,EAAAA,EAAO,SAAWA,CACjD,GACF,mICiFO,IAAME,EAAkBC,GAAwD,SAACC,EAAOC,GAC7F,IACEC,EAQEF,EARFE,cACAC,EAOEH,EAPFG,WACAC,EAMEJ,EANFI,cACAC,EAKEL,EALFK,qBACAC,EAIEN,EAJFM,qBACAC,EAGEP,EAHFO,aACAC,EAEER,EAFFQ,aACGC,EAAUC,EACXV,EAAKW,GACT,IAAAC,EAAgCC,EAAiB,IAA1CC,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAE5B,IAAAI,EAA4BH,EAAyB,gBAA9CI,EAAMD,EAAA,GAAEE,EAASF,EAAA,GAExB,IAAMG,EAA0BC,EAAOf,GAEvC,IAAAgB,EAA8BC,EAASC,aAAa,OAA7CC,EAAOH,EAAA,GAAEI,EAAUJ,EAAA,GAC1B,IAAMK,EAAkBC,EAAO,KAAM,CAAEC,MAAO,QAASpC,MAAO,QAASqC,SAAU,YAAc1B,GAC/F,IAAA2B,EAAkCjB,IAA3BkB,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAE9B,IAAMG,EAAaX,EAASY,YAAYC,KAAKC,WAAUlC,GAAa,UAAA,EAAbA,EAAemC,SAAU,CAAA,IAEhF,IAAMC,EAAYC,GAAQ,WACxB,OAAOJ,KAAKC,WAAUlC,GAAAA,UAAAA,EAAAA,EAAemC,SAAU,CAAA,KAC9C,CAACnC,GAAa,UAAA,EAAbA,EAAemC,SAEnBG,GAAU,WACRrB,EAAwBsB,QAAUpC,CACpC,GAAG,CAACA,IAEJ,IAAMqC,EAAyB,SAAzBA,EAA0BC,GAC9B,GAAIzC,GAAa,MAAbA,EAAe0C,uBAAwB,CACzC,OAAO1C,EAAc0C,uBAAuBD,EAC9C,CACA,GAAIxC,GAAU,MAAVA,EAAY0C,KAAM,CACpBF,EAAWG,EAAIH,EAAUxC,GAAAA,UAAAA,EAAAA,EAAY0C,KACvC,CACA,IAAKE,EAAQJ,GAAW,CACtBK,QAAQC,KAAK,oBAAqBN,GAClC,MAAO,EACT,CACA,OAAOA,GAGT,IAAMO,EAAyBC,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAK1ClB,EAGEmB,EAeFb,EACAc,EAvBR,KAAKvD,GAAa,MAAbA,EAAewD,WAAW,CAC7B,OAAAH,EAAM,IAAII,MAAM,wBAClB,CAzIJ,IAAIC,aAAJ,IAAI,OAAAN,GAAK,CAAC,MAAAO,GAAW,OAAON,EAAAM,EAAM,GAAlC,IAAIC,EAAA,SAwKSC,GAxKb,IAyKMtC,EAAW,OACXN,EAAwBsB,QAAOuB,EAC1B7C,CAAAA,EAAAA,EAAwBsB,QAAO,CAClC,gBAAiBsB,EAAME,SAAW,WAEpC/C,EAAU,iBA9KhB,OAAO0C,GAAE,CAAC,MAAAC,GAAW,OAAON,EAAAM,EAAM,GA0I9B,IACQxB,EAASnC,EAAcmC,QAAU,GAEvC,GAAInC,GAAa,MAAbA,EAAegE,mBAAoB,CAC/BV,EAAStD,GAAa,UAAA,EAAbA,EAAegE,mBAAmBC,MAAK,SAACvE,GACrD,OAAOwE,EAAkB/B,EAAOzC,GAClC,IACA,GAAI4D,EAAQ,CAEVzC,EAAY,IACZG,EAAU,0BACV,GAAIlB,EAAMR,MAAO,CACfQ,EAAMqE,UAANrE,MAAAA,EAAMqE,SAAWC,UACnB,CACA,OAAAhB,GACF,CACF,CACA7B,EAAW,MACXP,EAAU,oBACO,OAAAmC,QAAAkB,QAAMrE,EAAcwD,WAAS,UAAA,EAAvBxD,EAAcwD,UAAYrB,IAAhCmC,eAAuCC,GA7J9D,IA6JY9B,EAAW8B,EACXhB,EAAkBf,EAAuBC,GAC/C,GAAIvC,EAAe,CACjBqD,EAAgB9D,KAAI,SAACC,GACnBA,EAAK8E,OAAS9E,EAAK8E,QAAU,KAC/B,GACF,CACAjD,EAAW,OACXV,EAAY0C,GAAmB,IAC/BnD,SAAAA,EAAuBmD,GAAmB,IAC1CvC,EAAU,mBAvKhB,OAAO0C,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAwK9B,CAAC,MAAOC,GAAaD,EAAbC,EAOT,CAAC,OAGHzC,EAASqD,iBAAgB,WACvB,IAAMlF,EAASF,EAAUS,EAAMR,OAC/B,GAAIC,EAAOmF,OAAS,EAAG,CACrB,GAAIrE,IAAiB,MAAO,CAC1ByB,EAAavC,EACf,KAAO,CACL,IAAMoF,EAAaC,EAAoBrF,EAAO,GAAIqB,EAAU,KAAMY,GAAiBqD,UACnF,GAAIF,EAAWD,SAAW,EAAG,CAC3B5C,EAAa,CAAChC,EAAMR,OACtB,KAAO,CACLwC,EAAa6C,EACf,CACF,CACF,KAAO,CACL7C,EAAasC,UACf,CACD,GAAE,CAACxD,EAAUd,EAAMR,QAEpBwF,EAAoB/E,GAAK,WACvB,MAAO,CACLgF,gBAAiB,SAAjBA,IACE,OAAOnE,CACT,EAEJ,IAEAQ,EAASqD,iBAAgB,WACvB,GAAI1C,EAAY,CACd,GAAIK,IAAcL,EAAY,MACvBiB,GACP,CACF,CACF,GAAG,CAACjB,EAAYK,IAEhB,IAAM4C,EAAiB/B,EAAMC,gBAAe,gBACrCF,GACP,IAEA5B,EAASqD,iBAAgB,gBAClBzB,GACN,GAAE,IAEH,IAAMiC,GAAW,SAAXA,EAAkBC,GAAP,OAAA,IAAA/B,SAAA,SAAAC,EAAAC,GAAA,IAAA8B,EACTC,EAEA3C,EAIAc,EANA6B,EAAeF,EAAgBA,EAAgBR,OAAS,GAC9DU,EAAa9D,QAAU,KACN,OAAA6B,QAAAkB,QAAMrE,GAAa,MAAbA,EAAewD,WAAfxD,UAAAA,EAAAA,EAAewD,UAASM,EAC1C9D,CAAAA,EAAAA,EAAcmC,QAAMgD,EAAA,CAAA,EAAAA,EACtB3D,EAAgBlC,OAAQ8F,EAAa5D,EAAgBlC,OAAM6F,MAF7Cb,eAGfe,GAlON,IA+NU5C,EAAW4C,EAIX9B,EAAkBf,EAAuBC,GAC/C,IAAKc,GAAmBA,EAAgBmB,SAAW,EAAG,CACpDU,EAAaZ,OAAS,IACxB,KAAO,CACLjB,EAAgB9D,KAAI,SAACC,GACnBA,EAAK8E,OAAS9E,EAAK8E,QAAU,KAC/B,IACAY,EAAazD,SAAW4B,CAC1B,CACA6B,EAAa9D,QAAU,MACvBlB,SAAAA,EAAuBQ,GAAY,IACnCC,EAAWyE,GAAAA,OAAK1E,IAAW,OAAAwC,GA9OtB,CAAC,MAAAO,GAAW,OAAON,EAAAM,EAAM,CAAC,GAAAN,EAkO7B,GAaH,EAED,IAAMc,GAAWlB,EAAMC,gBAAe,SAAC3D,EAAgCgG,GACrE,GAAIjF,IAAiB,KAAM,CACzB,GAAID,IAAiB,MAAO,CAC1BP,EAAMqE,UAAQ,MAAdrE,EAAMqE,SAAW5E,EAAQgG,EAC3B,KAAO,CACLzF,EAAMqE,UAAQ,MAAdrE,EAAMqE,SAAW5E,GAAM,UAAA,EAANA,EAASA,EAAOmF,OAAS,GAAIa,EAChD,CACF,KAAO,CACL,IAAMC,EAAmBD,GAAAA,UAAAA,EAAAA,EAAY9F,KAAI,SAACC,GACxC,MAAO,CACLgC,MAAOhC,EAAK8B,EAAgBE,OAC5BpC,MAAOI,EAAK8B,EAAgBlC,OAEhC,IACA,GAAIe,IAAiB,MAAO,CAC1BP,EAAMqE,UAAQ,MAAdrE,EAAMqE,SAAWqB,EAAkBD,EACrC,KAAO,CACLzF,EAAMqE,UAAQ,MAAdrE,EAAMqE,SAAWqB,GAAgB,UAAA,EAAhBA,EAAmBA,EAAiBd,OAAS,GAAIa,EACpE,CACF,CACF,IAEA,IAAME,GAAUxC,EAAMC,gBAAe,gBAC9BpD,EAAMqE,UAAQ,UAAA,EAAdrE,EAAMqE,SAAWC,WACxB,IAEA,OACEsB,EAACC,EAAQ7B,EAAA,CACP8B,WAAY,KACZC,WAAY,MACPtF,EAAU,CACfuF,eAAgBC,EAAW,yBAA0BxF,EAAWuF,gBAChEE,gBACEN,EAACO,EAAa,CACZlF,OAAQA,EACRO,QAASA,EACT4E,cAAejF,EAAwBsB,QACvC4D,YACET,EAACU,EAAM,CAACC,KAAK,UAAUC,QAAStB,EAAgBuB,MAAK,KAAA5E,SAAC,aAM5DL,QAASA,EACT2D,SAAU/E,EAAgB+E,GAAWb,UACrCnE,WAAYuB,EACZgF,WACEzF,IAAW,gBACT0F,EAACC,EAAI,CAACC,MAAO,CAAEC,QAAS,cAAeC,IAAK,IAAKlF,SAAA,CAC/C+D,EAAAoB,EAAA,CAAcC,KAAMzF,EAASgF,QAAStB,IACtCU,EAAAsB,EAAA,CAAmBL,MAAO,CAAEM,MAAO,gBAEnC7C,UAEN8C,QAAStG,EACTtB,MAAOuC,EACPsF,SAAU,MACVhD,SAAUA,GACVsB,QAASA,KAGf"}
@@ -3,5 +3,5 @@ import './../fba-utils/index.css';
3
3
  import './../fba-hooks/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{extend as t}from"@dimjs/utils/cjs/extend";import{hooks as n}from"@wove/react/cjs/hooks";import{useMemo as i}from"react";import{fbaHooks as a}from"../fba-hooks/index.js";import{createCtx as l}from"@wove/react/cjs/create-ctx";import{toArray as o}from"@flatbiz/utils";import{jsx as s,jsxs as u}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"../_rollupPluginBabelHelpers-a0769acd.js";import"../use-responsive-point-21b8c601.js";import"antd";var c=l(),d=c[0],f=c[1];var m=function e(r,t){if(r!==undefined){var n=o(r);return t?n:n.splice(0,1)}return null};var p=function e(l){var o=a.useArrayChange([]),c=o[0],d=o[1];var p=i((function(){return m(l.value,l.multiple)}),[l.value,l.multiple]);a.useEffectCustom((function(){var e=p||m(l.defaultValue,l.multiple);d.resetList(e||[])}),[]);n.useUpdateEffect((function(){d.resetList(p||[])}),[p]);var h=n.useCallbackRef((function(e,r){return new Promise((function(n,i){var a,o,s;if(l.onPreChange){return Promise.resolve(l.onPreChange(e)).then(function(e){try{return u.call(this)}catch(e){return i(e)}}.bind(this),i)}function u(){a=c.findIndex((function(r){return r===e}));if(l.multiple===true){if(c.length===1&&a>=0&&l.required){return n()}if(a>=0){d.delete(a)}else{d.add(e)}}else{if(a>=0&&l.required){return n()}else{d.resetList(a>=0?[]:[e])}}if(!r){o=d.getList();if(l.multiple){s=o.length>0?t([],o):undefined}else{s=o.length>0?o[0]:undefined}l.onChange==null?void 0:l.onChange(s,e)}return n()}return u.call(this)}))}));return s("div",{className:r("check-list",l.className),style:l.style,children:u(f,{value:{onChange:h,checkedValues:c,stopPropagation:l.stopPropagation},children:[l.beforeExtra,l.children,l.afterExtra]})})};var h=function e(t){var i;var a=d();if(a===null){console.error("CheckList.Item can only be used inside CheckList.");return null}var l=n.useCallbackRef((function(e){if(a.stopPropagation){e.stopPropagation()}if(!t.disabled){a==null?void 0:a.onChange(t.value)}}));var o=(a==null?void 0:a.checkedValues.findIndex((function(e){return e===t.value})))>=0;var s="check-list";var u=r(s+"-item",(i={},i[s+"-disabled"]=t.disabled,i[s+"-readonly"]=t.readonly,i[s+"-checked"]=o,i),t.className);return t.children({onClick:l,checked:o,disabled:t.disabled,readonly:t.readonly,className:u,style:t.style})};var v=e.attachPropertiesToComponent(p,{Item:h});export{v as CheckList};
6
+ import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{extend as t}from"@dimjs/utils/cjs/extend";import{hooks as n}from"@wove/react/cjs/hooks";import{useMemo as i}from"react";import{fbaHooks as a}from"../fba-hooks/index.js";import{createCtx as l}from"@wove/react/cjs/create-ctx";import{toArray as o}from"@flatbiz/utils";import{jsx as s,jsxs as u}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"../_rollupPluginBabelHelpers-c0dbec57.js";import"../use-responsive-point-21b8c601.js";import"antd";var c=l(),d=c[0],f=c[1];var m=function e(r,t){if(r!==undefined){var n=o(r);return t?n:n.splice(0,1)}return null};var p=function e(l){var o=a.useArrayChange([]),c=o[0],d=o[1];var p=i((function(){return m(l.value,l.multiple)}),[l.value,l.multiple]);a.useEffectCustom((function(){var e=p||m(l.defaultValue,l.multiple);d.resetList(e||[])}),[]);n.useUpdateEffect((function(){d.resetList(p||[])}),[p]);var h=n.useCallbackRef((function(e,r){return new Promise((function(n,i){var a,o,s;if(l.onPreChange){return Promise.resolve(l.onPreChange(e)).then(function(e){try{return u.call(this)}catch(e){return i(e)}}.bind(this),i)}function u(){a=c.findIndex((function(r){return r===e}));if(l.multiple===true){if(c.length===1&&a>=0&&l.required){return n()}if(a>=0){d.delete(a)}else{d.add(e)}}else{if(a>=0&&l.required){return n()}else{d.resetList(a>=0?[]:[e])}}if(!r){o=d.getList();if(l.multiple){s=o.length>0?t([],o):undefined}else{s=o.length>0?o[0]:undefined}l.onChange==null||l.onChange(s,e)}return n()}return u.call(this)}))}));return s("div",{className:r("check-list",l.className),style:l.style,children:u(f,{value:{onChange:h,checkedValues:c,stopPropagation:l.stopPropagation},children:[l.beforeExtra,l.children,l.afterExtra]})})};var h=function e(t){var i;var a=d();if(a===null){console.error("CheckList.Item can only be used inside CheckList.");return null}var l=n.useCallbackRef((function(e){if(a.stopPropagation){e.stopPropagation()}if(!t.disabled){a==null||a.onChange(t.value)}}));var o=(a==null?void 0:a.checkedValues.findIndex((function(e){return e===t.value})))>=0;var s="check-list";var u=r(s+"-item",(i={},i[s+"-disabled"]=t.disabled,i[s+"-readonly"]=t.readonly,i[s+"-checked"]=o,i),t.className);return t.children({onClick:l,checked:o,disabled:t.disabled,readonly:t.readonly,className:u,style:t.style})};var v=e.attachPropertiesToComponent(p,{Item:h});export{v as CheckList};
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/check-list/context.ts","@flatbiz/antd/src/check-list/utils.ts","@flatbiz/antd/src/check-list/check-list.tsx","@flatbiz/antd/src/check-list/check-list-item.tsx","@flatbiz/antd/src/check-list/index.ts"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { CheckListItemValue } from './types';\n\nexport const [useCheckListCtx, CheckListCtxProvider] = createCtx<{\n checkedValues: CheckListItemValue[];\n onChange: (value: CheckListItemValue, defaultChange?: boolean) => void;\n stopPropagation?: boolean;\n}>();\n","import { toArray } from '@flatbiz/utils';\nimport { CheckListItemValue, CheckListValue } from './types';\n\nexport const getValueList = (value?: CheckListValue, multiple?: boolean) => {\n if (value !== undefined) {\n const valueList = toArray<CheckListItemValue>(value);\n return multiple ? valueList : valueList.splice(0, 1);\n }\n return null;\n};\n","import { classNames, extend } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ReactNode, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { CommonPropsWithChildren } from '../_utils/native-props';\nimport { CheckListCtxProvider } from './context';\nimport './style.less';\nimport { CheckListItemValue } from './types';\nimport { getValueList } from './utils';\n\nexport type CheckListSelectedValue<T extends 'multi' | 'radio'> = T extends 'multi'\n ? CheckListItemValue[]\n : CheckListItemValue;\n\nexport type CheckListProps<T extends 'multi' | 'radio'> = {\n multiple?: boolean;\n onChange?: (value: CheckListSelectedValue<T>, operateValue: CheckListItemValue) => void;\n onPreChange?: (value: CheckListItemValue) => Promise<void>;\n value?: CheckListSelectedValue<T>;\n defaultValue?: CheckListSelectedValue<T>;\n beforeExtra?: ReactNode;\n afterExtra?: ReactNode;\n stopPropagation?: boolean;\n required?: boolean;\n} & CommonPropsWithChildren;\n\nexport const CheckListInner = <T extends 'multi' | 'radio'>(props: CheckListProps<T>) => {\n const [checkedValues, arrayOperate] = fbaHooks.useArrayChange<CheckListItemValue>([]);\n\n const valueList = useMemo(() => {\n return getValueList(props.value, props.multiple);\n }, [props.value, props.multiple]);\n\n fbaHooks.useEffectCustom(() => {\n const current = valueList || getValueList(props.defaultValue, props.multiple);\n arrayOperate.resetList(current || []);\n }, []);\n\n hooks.useUpdateEffect(() => {\n arrayOperate.resetList(valueList || []);\n }, [valueList]);\n\n const onChange = hooks.useCallbackRef(async (value: CheckListItemValue, defaultChange) => {\n if (props.onPreChange) {\n await props.onPreChange(value);\n }\n const targetIndex = checkedValues.findIndex((temp) => temp === value);\n if (props.multiple === true) {\n if (checkedValues.length === 1 && targetIndex >= 0 && props.required) {\n return;\n }\n if (targetIndex >= 0) {\n arrayOperate.delete(targetIndex);\n } else {\n arrayOperate.add(value);\n }\n } else {\n if (targetIndex >= 0 && props.required) {\n return;\n } else {\n arrayOperate.resetList(targetIndex >= 0 ? [] : [value]);\n }\n }\n if (!defaultChange) {\n const newValues = arrayOperate.getList();\n let selectedValue;\n if (props.multiple) {\n selectedValue = newValues.length > 0 ? extend([], newValues) : undefined;\n } else {\n selectedValue = newValues.length > 0 ? newValues[0] : undefined;\n }\n props.onChange?.(selectedValue as CheckListSelectedValue<T>, value);\n }\n });\n\n return (\n <div className={classNames('check-list', props.className)} style={props.style}>\n <CheckListCtxProvider\n value={{\n onChange,\n checkedValues,\n stopPropagation: props.stopPropagation,\n }}\n >\n {props.beforeExtra}\n {props.children}\n {props.afterExtra}\n </CheckListCtxProvider>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { CSSProperties, ReactElement } from 'react';\nimport { useCheckListCtx } from './context';\nimport { CheckListItemValue } from './types';\n\nexport type CheckListItemContentProps = {\n checked?: boolean;\n disabled?: boolean;\n onClick?: (event) => void;\n className?: string;\n readonly?: boolean;\n style?: CSSProperties;\n};\n\nexport type CheckListItemProps = {\n value: CheckListItemValue;\n disabled?: boolean;\n readonly?: boolean;\n children: (data: CheckListItemContentProps) => ReactElement;\n className?: string;\n style?: CSSProperties;\n};\n\nexport const CheckListItem = (props: CheckListItemProps) => {\n const context = useCheckListCtx();\n\n if (context === null) {\n console.error('CheckList.Item can only be used inside CheckList.');\n return null;\n }\n\n const onClick = hooks.useCallbackRef((event) => {\n if (context.stopPropagation) {\n event.stopPropagation();\n }\n if (!props.disabled) {\n context?.onChange(props.value);\n }\n });\n\n const checked = context?.checkedValues.findIndex((temp) => temp === props.value) >= 0;\n const checkedClassPrefix = 'check-list';\n\n const className = classNames(\n `${checkedClassPrefix}-item`,\n {\n [`${checkedClassPrefix}-disabled`]: props.disabled,\n [`${checkedClassPrefix}-readonly`]: props.readonly,\n [`${checkedClassPrefix}-checked`]: checked,\n },\n props.className,\n );\n\n return props.children({\n onClick,\n checked,\n disabled: props.disabled,\n readonly: props.readonly,\n className,\n style: props.style,\n });\n};\n","import { fbaUtils } from '../fba-utils';\nimport { CheckListInner } from './check-list';\nimport { CheckListItem } from './check-list-item';\n\nexport const CheckList = fbaUtils.attachPropertiesToComponent(CheckListInner, {\n Item: CheckListItem,\n});\n"],"names":["_createCtx","_createCtx2","useCheckListCtx","CheckListCtxProvider","getValueList","value","multiple","undefined","valueList","toArray","splice","CheckListInner","props","_fbaHooks$useArrayCha","fbaHooks","useArrayChange","checkedValues","arrayOperate","useMemo","useEffectCustom","current","defaultValue","resetList","_hooks","useUpdateEffect","onChange","useCallbackRef","defaultChange","Promise","$return","$error","targetIndex","newValues","selectedValue","onPreChange","resolve","then","$await_2","$If_1","call","this","$boundEx","bind","findIndex","temp","length","required","delete","add","getList","_extend","_jsx","className","_classNames","style","children","_jsxs","stopPropagation","beforeExtra","afterExtra","CheckListItem","_classNames2","context","console","error","onClick","event","disabled","checked","checkedClassPrefix","readonly","CheckList","fbaUtils","attachPropertiesToComponent","Item"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/check-list/context.ts","@flatbiz/antd/src/check-list/utils.ts","@flatbiz/antd/src/check-list/check-list.tsx","@flatbiz/antd/src/check-list/check-list-item.tsx","@flatbiz/antd/src/check-list/index.ts"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { CheckListItemValue } from './types';\n\nexport const [useCheckListCtx, CheckListCtxProvider] = createCtx<{\n checkedValues: CheckListItemValue[];\n onChange: (value: CheckListItemValue, defaultChange?: boolean) => void;\n stopPropagation?: boolean;\n}>();\n","import { toArray } from '@flatbiz/utils';\nimport { CheckListItemValue, CheckListValue } from './types';\n\nexport const getValueList = (value?: CheckListValue, multiple?: boolean) => {\n if (value !== undefined) {\n const valueList = toArray<CheckListItemValue>(value);\n return multiple ? valueList : valueList.splice(0, 1);\n }\n return null;\n};\n","import { classNames, extend } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { ReactNode, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { CommonPropsWithChildren } from '../_utils/native-props';\nimport { CheckListCtxProvider } from './context';\nimport './style.less';\nimport { CheckListItemValue } from './types';\nimport { getValueList } from './utils';\n\nexport type CheckListSelectedValue<T extends 'multi' | 'radio'> = T extends 'multi'\n ? CheckListItemValue[]\n : CheckListItemValue;\n\nexport type CheckListProps<T extends 'multi' | 'radio'> = {\n multiple?: boolean;\n onChange?: (value: CheckListSelectedValue<T>, operateValue: CheckListItemValue) => void;\n onPreChange?: (value: CheckListItemValue) => Promise<void>;\n value?: CheckListSelectedValue<T>;\n defaultValue?: CheckListSelectedValue<T>;\n beforeExtra?: ReactNode;\n afterExtra?: ReactNode;\n stopPropagation?: boolean;\n required?: boolean;\n} & CommonPropsWithChildren;\n\nexport const CheckListInner = <T extends 'multi' | 'radio'>(props: CheckListProps<T>) => {\n const [checkedValues, arrayOperate] = fbaHooks.useArrayChange<CheckListItemValue>([]);\n\n const valueList = useMemo(() => {\n return getValueList(props.value, props.multiple);\n }, [props.value, props.multiple]);\n\n fbaHooks.useEffectCustom(() => {\n const current = valueList || getValueList(props.defaultValue, props.multiple);\n arrayOperate.resetList(current || []);\n }, []);\n\n hooks.useUpdateEffect(() => {\n arrayOperate.resetList(valueList || []);\n }, [valueList]);\n\n const onChange = hooks.useCallbackRef(async (value: CheckListItemValue, defaultChange) => {\n if (props.onPreChange) {\n await props.onPreChange(value);\n }\n const targetIndex = checkedValues.findIndex((temp) => temp === value);\n if (props.multiple === true) {\n if (checkedValues.length === 1 && targetIndex >= 0 && props.required) {\n return;\n }\n if (targetIndex >= 0) {\n arrayOperate.delete(targetIndex);\n } else {\n arrayOperate.add(value);\n }\n } else {\n if (targetIndex >= 0 && props.required) {\n return;\n } else {\n arrayOperate.resetList(targetIndex >= 0 ? [] : [value]);\n }\n }\n if (!defaultChange) {\n const newValues = arrayOperate.getList();\n let selectedValue;\n if (props.multiple) {\n selectedValue = newValues.length > 0 ? extend([], newValues) : undefined;\n } else {\n selectedValue = newValues.length > 0 ? newValues[0] : undefined;\n }\n props.onChange?.(selectedValue as CheckListSelectedValue<T>, value);\n }\n });\n\n return (\n <div className={classNames('check-list', props.className)} style={props.style}>\n <CheckListCtxProvider\n value={{\n onChange,\n checkedValues,\n stopPropagation: props.stopPropagation,\n }}\n >\n {props.beforeExtra}\n {props.children}\n {props.afterExtra}\n </CheckListCtxProvider>\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { CSSProperties, ReactElement } from 'react';\nimport { useCheckListCtx } from './context';\nimport { CheckListItemValue } from './types';\n\nexport type CheckListItemContentProps = {\n checked?: boolean;\n disabled?: boolean;\n onClick?: (event) => void;\n className?: string;\n readonly?: boolean;\n style?: CSSProperties;\n};\n\nexport type CheckListItemProps = {\n value: CheckListItemValue;\n disabled?: boolean;\n readonly?: boolean;\n children: (data: CheckListItemContentProps) => ReactElement;\n className?: string;\n style?: CSSProperties;\n};\n\nexport const CheckListItem = (props: CheckListItemProps) => {\n const context = useCheckListCtx();\n\n if (context === null) {\n console.error('CheckList.Item can only be used inside CheckList.');\n return null;\n }\n\n const onClick = hooks.useCallbackRef((event) => {\n if (context.stopPropagation) {\n event.stopPropagation();\n }\n if (!props.disabled) {\n context?.onChange(props.value);\n }\n });\n\n const checked = context?.checkedValues.findIndex((temp) => temp === props.value) >= 0;\n const checkedClassPrefix = 'check-list';\n\n const className = classNames(\n `${checkedClassPrefix}-item`,\n {\n [`${checkedClassPrefix}-disabled`]: props.disabled,\n [`${checkedClassPrefix}-readonly`]: props.readonly,\n [`${checkedClassPrefix}-checked`]: checked,\n },\n props.className,\n );\n\n return props.children({\n onClick,\n checked,\n disabled: props.disabled,\n readonly: props.readonly,\n className,\n style: props.style,\n });\n};\n","import { fbaUtils } from '../fba-utils';\nimport { CheckListInner } from './check-list';\nimport { CheckListItem } from './check-list-item';\n\nexport const CheckList = fbaUtils.attachPropertiesToComponent(CheckListInner, {\n Item: CheckListItem,\n});\n"],"names":["_createCtx","_createCtx2","useCheckListCtx","CheckListCtxProvider","getValueList","value","multiple","undefined","valueList","toArray","splice","CheckListInner","props","_fbaHooks$useArrayCha","fbaHooks","useArrayChange","checkedValues","arrayOperate","useMemo","useEffectCustom","current","defaultValue","resetList","_hooks","useUpdateEffect","onChange","useCallbackRef","defaultChange","Promise","$return","$error","targetIndex","newValues","selectedValue","onPreChange","resolve","then","$await_2","$If_1","call","this","$boundEx","bind","findIndex","temp","length","required","delete","add","getList","_extend","_jsx","className","_classNames","style","children","_jsxs","stopPropagation","beforeExtra","afterExtra","CheckListItem","_classNames2","context","console","error","onClick","event","disabled","checked","checkedClassPrefix","readonly","CheckList","fbaUtils","attachPropertiesToComponent","Item"],"mappings":";6kBAGO,IAAAA,EAAgDC,IAAzCC,EAAeF,EAAA,GAAEG,EAAoBH,EAAA,GCA5C,IAAMI,EAAe,SAAfA,EAAgBC,EAAwBC,GACnD,GAAID,IAAUE,UAAW,CACvB,IAAMC,EAAYC,EAA4BJ,GAC9C,OAAOC,EAAWE,EAAYA,EAAUE,OAAO,EAAG,EACpD,CACA,OAAO,IACT,ECiBO,IAAMC,EAAiB,SAAjBA,EAA+CC,GAC1D,IAAAC,EAAsCC,EAASC,eAAmC,IAA3EC,EAAaH,EAAA,GAAEI,EAAYJ,EAAA,GAElC,IAAML,EAAYU,GAAQ,WACxB,OAAOd,EAAaQ,EAAMP,MAAOO,EAAMN,SACxC,GAAE,CAACM,EAAMP,MAAOO,EAAMN,WAEvBQ,EAASK,iBAAgB,WACvB,IAAMC,EAAUZ,GAAaJ,EAAaQ,EAAMS,aAAcT,EAAMN,UACpEW,EAAaK,UAAUF,GAAW,GACnC,GAAE,IAEHG,EAAMC,iBAAgB,WACpBP,EAAaK,UAAUd,GAAa,GACtC,GAAG,CAACA,IAEJ,IAAMiB,EAAWF,EAAMG,gBAAe,SAAOrB,EAA2BsB,GAAlC,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAI9BC,EAkBEC,EACFC,EAtBN,GAAIrB,EAAMsB,YAAa,CACrB,OAAAN,QAAAO,QAAMvB,EAAMsB,YAAY7B,IAAxB+B,KA5CN,SAAAC,GAAA,IAAI,OAAJC,EAAGC,KAAIC,KAAE,CAAC,MAAAC,GAAW,OAAOX,EAAAW,EAAM,CAAC,EAAhCC,KAAKF,MAAKV,EA6CT,CAAC,SAAAQ,IACKP,EAAcf,EAAc2B,WAAU,SAACC,GAAI,OAAKA,IAASvC,KAC/D,GAAIO,EAAMN,WAAa,KAAM,CAC3B,GAAIU,EAAc6B,SAAW,GAAKd,GAAe,GAAKnB,EAAMkC,SAAU,CACpE,OAAAjB,GACF,CACA,GAAIE,GAAe,EAAG,CACpBd,EAAa8B,OAAOhB,EACtB,KAAO,CACLd,EAAa+B,IAAI3C,EACnB,CACF,KAAO,CACL,GAAI0B,GAAe,GAAKnB,EAAMkC,SAAU,CACtC,OAAAjB,GACF,KAAO,CACLZ,EAAaK,UAAUS,GAAe,EAAI,GAAK,CAAC1B,GAClD,CACF,CACA,IAAKsB,EAAe,CACZK,EAAYf,EAAagC,UAE/B,GAAIrC,EAAMN,SAAU,CAClB2B,EAAgBD,EAAUa,OAAS,EAAIK,EAAO,GAAIlB,GAAazB,SACjE,KAAO,CACL0B,EAAgBD,EAAUa,OAAS,EAAIb,EAAU,GAAKzB,SACxD,CACAK,EAAMa,UAAQ,MAAdb,EAAMa,SAAWQ,EAA4C5B,EAC/D,CAAC,OAAAwB,GAAA,CAAA,OAxELS,EAAGC,KAAIC,KAAI,OA2ET,OACEW,EAAA,MAAA,CAAKC,UAAWC,EAAW,aAAczC,EAAMwC,WAAYE,MAAO1C,EAAM0C,MAAMC,SAC5EC,EAACrD,EAAoB,CACnBE,MAAO,CACLoB,SAAAA,EACAT,cAAAA,EACAyC,gBAAiB7C,EAAM6C,iBACvBF,SAAA,CAED3C,EAAM8C,YACN9C,EAAM2C,SACN3C,EAAM+C,eAIf,EClEO,IAAMC,EAAgB,SAAhBA,EAAiBhD,GAA8B,IAAAiD,EAC1D,IAAMC,EAAU5D,IAEhB,GAAI4D,IAAY,KAAM,CACpBC,QAAQC,MAAM,qDACd,OAAO,IACT,CAEA,IAAMC,EAAU1C,EAAMG,gBAAe,SAACwC,GACpC,GAAIJ,EAAQL,gBAAiB,CAC3BS,EAAMT,iBACR,CACA,IAAK7C,EAAMuD,SAAU,CACnBL,GAAO,MAAPA,EAASrC,SAASb,EAAMP,MAC1B,CACF,IAEA,IAAM+D,GAAUN,GAAAA,UAAAA,EAAAA,EAAS9C,cAAc2B,WAAU,SAACC,GAAI,OAAKA,IAAShC,EAAMP,KAAK,MAAK,EACpF,IAAMgE,EAAqB,aAE3B,IAAMjB,EAAYC,EACbgB,EAAkBR,SAAAA,EAAAA,GAAAA,EAEfQ,EAAkB,aAAczD,EAAMuD,SAAQN,EAC9CQ,eAAgCzD,EAAM0D,SAAQT,EAC9CQ,EAA+BD,YAAAA,EAAOP,GAE5CjD,EAAMwC,WAGR,OAAOxC,EAAM2C,SAAS,CACpBU,QAAAA,EACAG,QAAAA,EACAD,SAAUvD,EAAMuD,SAChBG,SAAU1D,EAAM0D,SAChBlB,UAAAA,EACAE,MAAO1C,EAAM0C,OAEjB,EC1DO,IAAMiB,EAAYC,EAASC,4BAA4B9D,EAAgB,CAC5E+D,KAAMd"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{a as e,_ as a}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isUndefinedOrNull as o}from"@flatbiz/utils";import{Checkbox as l}from"antd";import{jsx as n}from"react/jsx-runtime";var t=["checkedValue","unCheckedValue","onChange","value"];var u=function u(c){var i=c.checkedValue,m=c.unCheckedValue,h=c.onChange,f=c.value,s=e(c,t);var v=r.useCallbackRef((function(e){var a=e.target.checked;h==null?void 0:h(a?i:m)}));return n(l,a({},s,{checked:!o(f)&&i===f,onChange:v}))};export{u as CheckboxWrapper};
4
+ import{a as e,_ as a}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isUndefinedOrNull as o}from"@flatbiz/utils";import{Checkbox as l}from"antd";import{jsx as n}from"react/jsx-runtime";var t=["checkedValue","unCheckedValue","onChange","value"];var u=function u(c){var i=c.checkedValue,m=c.unCheckedValue,h=c.onChange,f=c.value,s=e(c,t);var k=r.useCallbackRef((function(e){var a=e.target.checked;h==null||h(a?i:m)}));return n(l,a({},s,{checked:!o(f)&&i===f,onChange:k}))};export{u as CheckboxWrapper};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/checkbox-wrapper/checkbox-wrapper.tsx"],"sourcesContent":["import { isUndefinedOrNull } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, CheckboxProps } from 'antd';\n\nexport type CheckboxWrapperProps = Omit<CheckboxProps, 'checked' | 'defaultChecked' | 'onChange'> & {\n value?: string | number | boolean;\n checkedValue: string | number | boolean;\n unCheckedValue: string | number | boolean;\n onChange?: (value: string | number | boolean) => void;\n};\n/**\n * 解决 Checkbox 只能接收boolean的限制,与Form.Item结合使用最佳\n * ```\n * 1. value 为状态值,不局限于boolean,可以为 [string | number | boolean]\n * 2. checkedValue 选中值\n * 3. unCheckedValue 未选中值\n * 4. 与 Form.Item 结合使用,不再需要配置 valuePropName\n * <Form.Item name=\"fieldName\">\n * <CheckboxWrapper checkedValue={2} unCheckedValue={1} />\n * </Form.Item>\n * ```\n */\nexport const CheckboxWrapper = (props: CheckboxWrapperProps) => {\n const { checkedValue, unCheckedValue, onChange, value, ...otherProps } = props;\n const onChangeHandle = hooks.useCallbackRef((event) => {\n const checked = event.target.checked;\n onChange?.(checked ? checkedValue : unCheckedValue);\n });\n\n return (\n <Checkbox\n {...otherProps}\n checked={!isUndefinedOrNull(value) && checkedValue === value}\n onChange={onChangeHandle}\n />\n );\n};\n"],"names":["CheckboxWrapper","props","checkedValue","unCheckedValue","onChange","value","otherProps","_objectWithoutPropertiesLoose","_excluded","onChangeHandle","_hooks","useCallbackRef","event","checked","target","_jsx","Checkbox","_extends","isUndefinedOrNull"],"mappings":";4SAsBaA,EAAkB,SAAlBA,EAAmBC,GAC9B,IAAQC,EAAiED,EAAjEC,aAAcC,EAAmDF,EAAnDE,eAAgBC,EAAmCH,EAAnCG,SAAUC,EAAyBJ,EAAzBI,MAAUC,EAAUC,EAAKN,EAAKO,GAC9E,IAAMC,EAAiBC,EAAMC,gBAAe,SAACC,GAC3C,IAAMC,EAAUD,EAAME,OAAOD,QAC7BT,GAAQ,UAAA,EAARA,EAAWS,EAAUX,EAAeC,EACtC,IAEA,OACEY,EAACC,EAAQC,KACHX,EAAU,CACdO,SAAUK,EAAkBb,IAAUH,IAAiBG,EACvDD,SAAUK,IAGhB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/checkbox-wrapper/checkbox-wrapper.tsx"],"sourcesContent":["import { isUndefinedOrNull } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, CheckboxProps } from 'antd';\n\nexport type CheckboxWrapperProps = Omit<CheckboxProps, 'checked' | 'defaultChecked' | 'onChange'> & {\n value?: string | number | boolean;\n checkedValue: string | number | boolean;\n unCheckedValue: string | number | boolean;\n onChange?: (value: string | number | boolean) => void;\n};\n/**\n * 解决 Checkbox 只能接收boolean的限制,与Form.Item结合使用最佳\n * ```\n * 1. value 为状态值,不局限于boolean,可以为 [string | number | boolean]\n * 2. checkedValue 选中值\n * 3. unCheckedValue 未选中值\n * 4. 与 Form.Item 结合使用,不再需要配置 valuePropName\n * <Form.Item name=\"fieldName\">\n * <CheckboxWrapper checkedValue={2} unCheckedValue={1} />\n * </Form.Item>\n * ```\n */\nexport const CheckboxWrapper = (props: CheckboxWrapperProps) => {\n const { checkedValue, unCheckedValue, onChange, value, ...otherProps } = props;\n const onChangeHandle = hooks.useCallbackRef((event) => {\n const checked = event.target.checked;\n onChange?.(checked ? checkedValue : unCheckedValue);\n });\n\n return (\n <Checkbox\n {...otherProps}\n checked={!isUndefinedOrNull(value) && checkedValue === value}\n onChange={onChangeHandle}\n />\n );\n};\n"],"names":["CheckboxWrapper","props","checkedValue","unCheckedValue","onChange","value","otherProps","_objectWithoutPropertiesLoose","_excluded","onChangeHandle","_hooks","useCallbackRef","event","checked","target","_jsx","Checkbox","_extends","isUndefinedOrNull"],"mappings":";4SAsBaA,EAAkB,SAAlBA,EAAmBC,GAC9B,IAAQC,EAAiED,EAAjEC,aAAcC,EAAmDF,EAAnDE,eAAgBC,EAAmCH,EAAnCG,SAAUC,EAAyBJ,EAAzBI,MAAUC,EAAUC,EAAKN,EAAKO,GAC9E,IAAMC,EAAiBC,EAAMC,gBAAe,SAACC,GAC3C,IAAMC,EAAUD,EAAME,OAAOD,QAC7BT,GAAQ,MAARA,EAAWS,EAAUX,EAAeC,EACtC,IAEA,OACEY,EAACC,EAAQC,KACHX,EAAU,CACdO,SAAUK,EAAkBb,IAAUH,IAAiBG,EACvDD,SAAUK,IAGhB"}
@@ -2,5 +2,5 @@
2
2
  import './../icon-wrapper/index.css';
3
3
  import './index.css';
4
4
  /*! @flatjs/forge MIT @flatbiz/antd */
5
- import e from"@ant-design/icons/es/icons/CloseCircleOutlined";import{_ as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{ColorPicker as o}from"antd";import{useState as i,useEffect as r}from"react";import{IconWrapper as l}from"../icon-wrapper/index.js";import{jsxs as c,jsx as t}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";var a=function a(s){var m=i(),d=m[0],u=m[1];r((function(){u(s.value)}),[s.value]);return c("div",{className:"color-picker-wrapper",children:[t(o,n({},s,{onChange:function e(n){u(n.toHexString());s.onChange==null?void 0:s.onChange(n.toHexString())},children:!d?t("div",{className:"color-placeholder",children:"请选择颜色"}):undefined})),d?t(l,{icon:t(e,{}),onClick:function e(){s.onChange==null?void 0:s.onChange(undefined)},size:"small",style:{marginLeft:10,color:"#cfcece"},hideHoverBgColor:true}):null]})};export{a as ColorPickerWrapper};
5
+ import e from"@ant-design/icons/es/icons/CloseCircleOutlined";import{_ as n}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{ColorPicker as o}from"antd";import{useState as r,useEffect as i}from"react";import{IconWrapper as l}from"../icon-wrapper/index.js";import{jsxs as c,jsx as t}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-undefined";var a=function a(s){var m=r(),d=m[0],u=m[1];i((function(){u(s.value)}),[s.value]);return c("div",{className:"color-picker-wrapper",children:[t(o,n({},s,{onChange:function e(n){u(n.toHexString());s.onChange==null||s.onChange(n.toHexString())},children:!d?t("div",{className:"color-placeholder",children:"请选择颜色"}):undefined})),d?t(l,{icon:t(e,{}),onClick:function e(){s.onChange==null||s.onChange(undefined)},size:"small",style:{marginLeft:10,color:"#cfcece"},hideHoverBgColor:true}):null]})};export{a as ColorPickerWrapper};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/color-picker-wrapper/color-picker.tsx"],"sourcesContent":["import { CloseCircleOutlined } from '@ant-design/icons';\nimport { ColorPicker, type ColorPickerProps } from 'antd';\nimport { useEffect, useState } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\nimport './style.less';\n\nexport type ColorPickerWrapperProps = Omit<ColorPickerProps, 'value' | 'onChange'> & {\n /** 格式:#1677ff */\n value?: string;\n /** 转换成 hex 格式颜色字符串,返回格式如:#1677ff */\n onChange?: (hex?: string) => void;\n viewMinWidth?: number;\n};\n\nexport const ColorPickerWrapper = (props: ColorPickerWrapperProps) => {\n const [color, setColor] = useState<string>();\n\n useEffect(() => {\n setColor(props.value);\n }, [props.value]);\n\n return (\n <div className=\"color-picker-wrapper\">\n <ColorPicker\n {...props}\n onChange={(color) => {\n setColor(color.toHexString());\n props.onChange?.(color.toHexString());\n }}\n >\n {!color ? <div className=\"color-placeholder\">请选择颜色</div> : undefined}\n </ColorPicker>\n\n {color ? (\n <IconWrapper\n icon={<CloseCircleOutlined />}\n onClick={() => {\n props.onChange?.(undefined);\n }}\n size=\"small\"\n style={{ marginLeft: 10, color: '#cfcece' }}\n hideHoverBgColor\n />\n ) : null}\n </div>\n );\n};\n"],"names":["ColorPickerWrapper","props","_useState","useState","color","setColor","useEffect","value","_jsxs","className","children","_jsx","ColorPicker","_extends","onChange","toHexString","undefined","IconWrapper","icon","_CloseCircleOutlined","onClick","size","style","marginLeft","hideHoverBgColor"],"mappings":";qYAcaA,EAAqB,SAArBA,EAAsBC,GACjC,IAAAC,EAA0BC,IAAnBC,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEtBI,GAAU,WACRD,EAASJ,EAAMM,MACjB,GAAG,CAACN,EAAMM,QAEV,OACEC,EAAA,MAAA,CAAKC,UAAU,uBAAsBC,UACnCC,EAACC,EAAWC,KACNZ,EAAK,CACTa,SAAU,SAAAA,EAACV,GACTC,EAASD,EAAMW,eACfd,EAAMa,UAANb,UAAAA,EAAAA,EAAMa,SAAWV,EAAMW,cACvB,EAAAL,UAEAN,EAAQO,EAAA,MAAA,CAAKF,UAAU,oBAAmBC,SAAC,UAAcM,aAG5DZ,EACCO,EAACM,EAAW,CACVC,KAAMP,EAAAQ,MACNC,QAAS,SAAAA,IACPnB,EAAMa,UAANb,UAAAA,EAAAA,EAAMa,SAAWE,UACjB,EACFK,KAAK,QACLC,MAAO,CAAEC,WAAY,GAAInB,MAAO,WAChCoB,iBAAgB,OAEhB,OAGV"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/color-picker-wrapper/color-picker.tsx"],"sourcesContent":["import { CloseCircleOutlined } from '@ant-design/icons';\nimport { ColorPicker, type ColorPickerProps } from 'antd';\nimport { useEffect, useState } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\nimport './style.less';\n\nexport type ColorPickerWrapperProps = Omit<ColorPickerProps, 'value' | 'onChange'> & {\n /** 格式:#1677ff */\n value?: string;\n /** 转换成 hex 格式颜色字符串,返回格式如:#1677ff */\n onChange?: (hex?: string) => void;\n viewMinWidth?: number;\n};\n\nexport const ColorPickerWrapper = (props: ColorPickerWrapperProps) => {\n const [color, setColor] = useState<string>();\n\n useEffect(() => {\n setColor(props.value);\n }, [props.value]);\n\n return (\n <div className=\"color-picker-wrapper\">\n <ColorPicker\n {...props}\n onChange={(color) => {\n setColor(color.toHexString());\n props.onChange?.(color.toHexString());\n }}\n >\n {!color ? <div className=\"color-placeholder\">请选择颜色</div> : undefined}\n </ColorPicker>\n\n {color ? (\n <IconWrapper\n icon={<CloseCircleOutlined />}\n onClick={() => {\n props.onChange?.(undefined);\n }}\n size=\"small\"\n style={{ marginLeft: 10, color: '#cfcece' }}\n hideHoverBgColor\n />\n ) : null}\n </div>\n );\n};\n"],"names":["ColorPickerWrapper","props","_useState","useState","color","setColor","useEffect","value","_jsxs","className","children","_jsx","ColorPicker","_extends","onChange","toHexString","undefined","IconWrapper","icon","_CloseCircleOutlined","onClick","size","style","marginLeft","hideHoverBgColor"],"mappings":";qYAcaA,EAAqB,SAArBA,EAAsBC,GACjC,IAAAC,EAA0BC,IAAnBC,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAEtBI,GAAU,WACRD,EAASJ,EAAMM,MACjB,GAAG,CAACN,EAAMM,QAEV,OACEC,EAAA,MAAA,CAAKC,UAAU,uBAAsBC,UACnCC,EAACC,EAAWC,KACNZ,EAAK,CACTa,SAAU,SAAVA,EAAWV,GACTC,EAASD,EAAMW,eACfd,EAAMa,UAANb,MAAAA,EAAMa,SAAWV,EAAMW,cACvB,EAAAL,UAEAN,EAAQO,EAAA,MAAA,CAAKF,UAAU,oBAAmBC,SAAC,UAAcM,aAG5DZ,EACCO,EAACM,EAAW,CACVC,KAAMP,EAAAQ,MACNC,QAAS,SAATA,IACEnB,EAAMa,UAANb,MAAAA,EAAMa,SAAWE,UACjB,EACFK,KAAK,QACLC,MAAO,CAAEC,WAAY,GAAInB,MAAO,WAChCoB,iBAAgB,OAEhB,OAGV"}
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
3
3
  import './../types/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- export{C as ConfigProviderWrapper}from"../index-7f4ad045.js";import"../_rollupPluginBabelHelpers-a0769acd.js";import"antd";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"@wove/react/cjs/hooks";import"react";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"react/jsx-runtime";
6
+ export{C as ConfigProviderWrapper}from"../index-83bede1b.js";import"../_rollupPluginBabelHelpers-c0dbec57.js";import"antd";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"@wove/react/cjs/hooks";import"react";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"react/jsx-runtime";
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/create-drawer-wrapper-model/drawer.model.ts","@flatbiz/antd/src/create-drawer-wrapper-model/index.ts"],"sourcesContent":["import { ModelType } from '@dimjs/model';\n\nexport interface DrawerStateType {\n title: string;\n /**\n * 显示drawer\n */\n open: boolean;\n /**\n * 用来处理form, `更新`的时候的传递当前item列表行的数据, 当`创建`的时候强制设置为 `undefined`\n */\n itemData?: Record<string, any>;\n operateType: 'create' | 'update' | 'view' | null;\n pageLoading?: boolean;\n}\n\nexport interface DrawerActionsParamType {\n openDrawerForm: Pick<DrawerStateType, 'title' | 'itemData' | 'operateType' | 'pageLoading'>;\n closeDrawer: void;\n setDrawerItemData: Record<string, any>;\n}\n\n/**\n * @shared\n * 提供公共的drawer处理, 通常用来表单编辑, 弹窗抽屉模式.\n * 注意全部理论上只允许一个drawer实例存在,如需处理多个, 请自行实例话模型.\n */\nexport const DrawerModel: ModelType<DrawerStateType, DrawerActionsParamType> = {\n actions: {\n openDrawerForm({ itemData, title, operateType, pageLoading }) {\n return (state) => {\n state.itemData = itemData;\n state.title = title;\n state.operateType = operateType;\n state.pageLoading = pageLoading;\n state.open = true;\n };\n },\n closeDrawer() {\n return (state) => {\n state.open = false;\n };\n },\n setDrawerItemData(params) {\n return (state) => {\n state.pageLoading = false;\n state.itemData = params;\n };\n },\n },\n state: {\n open: false,\n title: '',\n operateType: null,\n },\n};\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { DrawerActionsParamType, DrawerModel, DrawerStateType } from './drawer.model';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst drawerModels: Record<string, API<ModelType<DrawerStateType, DrawerActionsParamType, any>>> = {};\n\n/**\n * drawer弹窗模型\n * @param key 唯一值必传\n * @returns\n * @deprecated 废弃 DrawerWrapper 4.3.0版本移除, 请使用 const { appDialogModal } = FbaApp.useDialogModal();\n */\nexport const createDrawerWrapperModel = (key: string) => {\n if (!drawerModels[key]) {\n drawerModels[key] = Model(DrawerModel);\n }\n return drawerModels[key];\n};\n"],"names":["DrawerModel","actions","openDrawerForm","_ref","itemData","title","operateType","pageLoading","state","open","closeDrawer","setDrawerItemData","params","drawerModels","createDrawerWrapperModel","key","Model"],"mappings":";2CA2BO,IAAMA,EAAkE,CAC7EC,QAAS,CACPC,eAAc,SAAAA,EAAAC,GAAgD,IAA7CC,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAaC,EAAWJ,EAAXI,YAC7C,OAAO,SAACC,GACNA,EAAMJ,SAAWA,EACjBI,EAAMH,MAAQA,EACdG,EAAMF,YAAcA,EACpBE,EAAMD,YAAcA,EACpBC,EAAMC,KAAO,KAEhB,EACDC,YAAW,SAAAA,IACT,OAAO,SAACF,GACNA,EAAMC,KAAO,MAEhB,EACDE,kBAAiB,SAAAA,EAACC,GAChB,OAAO,SAACJ,GACNA,EAAMD,YAAc,MACpBC,EAAMJ,SAAWQ,EAErB,GAEFJ,MAAO,CACLC,KAAM,MACNJ,MAAO,GACPC,YAAa,OChDjB,IAAMO,EAA6F,CAAA,MAQtFC,EAA2B,SAA3BA,EAA4BC,GACvC,IAAKF,EAAaE,GAAM,CACtBF,EAAaE,GAAOC,EAAMhB,EAC5B,CACA,OAAOa,EAAaE,EACtB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/create-drawer-wrapper-model/drawer.model.ts","@flatbiz/antd/src/create-drawer-wrapper-model/index.ts"],"sourcesContent":["import { ModelType } from '@dimjs/model';\n\nexport interface DrawerStateType {\n title: string;\n /**\n * 显示drawer\n */\n open: boolean;\n /**\n * 用来处理form, `更新`的时候的传递当前item列表行的数据, 当`创建`的时候强制设置为 `undefined`\n */\n itemData?: Record<string, any>;\n operateType: 'create' | 'update' | 'view' | null;\n pageLoading?: boolean;\n}\n\nexport interface DrawerActionsParamType {\n openDrawerForm: Pick<DrawerStateType, 'title' | 'itemData' | 'operateType' | 'pageLoading'>;\n closeDrawer: void;\n setDrawerItemData: Record<string, any>;\n}\n\n/**\n * @shared\n * 提供公共的drawer处理, 通常用来表单编辑, 弹窗抽屉模式.\n * 注意全部理论上只允许一个drawer实例存在,如需处理多个, 请自行实例话模型.\n */\nexport const DrawerModel: ModelType<DrawerStateType, DrawerActionsParamType> = {\n actions: {\n openDrawerForm({ itemData, title, operateType, pageLoading }) {\n return (state) => {\n state.itemData = itemData;\n state.title = title;\n state.operateType = operateType;\n state.pageLoading = pageLoading;\n state.open = true;\n };\n },\n closeDrawer() {\n return (state) => {\n state.open = false;\n };\n },\n setDrawerItemData(params) {\n return (state) => {\n state.pageLoading = false;\n state.itemData = params;\n };\n },\n },\n state: {\n open: false,\n title: '',\n operateType: null,\n },\n};\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { DrawerActionsParamType, DrawerModel, DrawerStateType } from './drawer.model';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst drawerModels: Record<string, API<ModelType<DrawerStateType, DrawerActionsParamType, any>>> = {};\n\n/**\n * drawer弹窗模型\n * @param key 唯一值必传\n * @returns\n * @deprecated 废弃 DrawerWrapper 4.3.0版本移除, 请使用 const { appDialogModal } = FbaApp.useDialogModal();\n */\nexport const createDrawerWrapperModel = (key: string) => {\n if (!drawerModels[key]) {\n drawerModels[key] = Model(DrawerModel);\n }\n return drawerModels[key];\n};\n"],"names":["DrawerModel","actions","openDrawerForm","_ref","itemData","title","operateType","pageLoading","state","open","closeDrawer","setDrawerItemData","params","drawerModels","createDrawerWrapperModel","key","Model"],"mappings":";2CA2BO,IAAMA,EAAkE,CAC7EC,QAAS,CACPC,eAAAA,SAAAA,EAAcC,GAAgD,IAA7CC,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAaC,EAAWJ,EAAXI,YAC7C,OAAO,SAACC,GACNA,EAAMJ,SAAWA,EACjBI,EAAMH,MAAQA,EACdG,EAAMF,YAAcA,EACpBE,EAAMD,YAAcA,EACpBC,EAAMC,KAAO,KAEhB,EACDC,YAAW,SAAXA,IACE,OAAO,SAACF,GACNA,EAAMC,KAAO,MAEhB,EACDE,kBAAAA,SAAAA,EAAkBC,GAChB,OAAO,SAACJ,GACNA,EAAMD,YAAc,MACpBC,EAAMJ,SAAWQ,EAErB,GAEFJ,MAAO,CACLC,KAAM,MACNJ,MAAO,GACPC,YAAa,OChDjB,IAAMO,EAA6F,CAAA,MAQtFC,EAA2B,SAA3BA,EAA4BC,GACvC,IAAKF,EAAaE,GAAM,CACtBF,EAAaE,GAAOC,EAAMhB,EAC5B,CACA,OAAOa,EAAaE,EACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/create-modal-wrapper-model/modal.model.ts","@flatbiz/antd/src/create-modal-wrapper-model/index.ts"],"sourcesContent":["import { ModelType } from '@dimjs/model';\n\nexport interface ModalStateType {\n title?: string;\n /**\n * 显示modal\n */\n open: boolean;\n /**\n * 用来处理form, `更新`的时候的传递当前item列表行的数据, 当`创建`的时候强制设置为 `undefined`\n */\n itemData?: Record<string, unknown> | null;\n operateType: 'create' | 'update' | 'view';\n pageLoading?: boolean;\n}\n\nexport interface ModalActionsParamType {\n openModalForm: Pick<ModalStateType, 'title' | 'itemData' | 'operateType' | 'pageLoading'>;\n closeModal: void;\n setModalItemData: Record<string, unknown>;\n}\n\n/**\n * @shared\n * 提供公共的modal处理, 通常用来表单编辑, 弹窗抽屉模式.\n * 注意全部理论上只允许一个modal实例存在,如需处理多个, 请自行实例话模型.\n */\nexport const ModalModel: ModelType<ModalStateType, ModalActionsParamType> = {\n actions: {\n openModalForm({ itemData, title, operateType, pageLoading }) {\n return (state) => {\n state.itemData = itemData;\n state.title = title;\n state.operateType = operateType;\n state.pageLoading = pageLoading;\n state.open = true;\n };\n },\n closeModal() {\n return (state) => {\n state.open = false;\n };\n },\n setModalItemData(params) {\n return (state) => {\n state.pageLoading = false;\n state.itemData = params;\n };\n },\n },\n state: {\n open: false,\n title: '',\n operateType: 'view',\n },\n};\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { ModalActionsParamType, ModalModel, ModalStateType } from './modal.model';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst modalModels: Record<string, API<ModelType<ModalStateType, ModalActionsParamType, any>>> = {};\n\n/**\n * modal弹窗模型\n * @param key 唯一值必传\n * @deprecated 废弃 ModalWrapper 4.3.0版本移除,请使用 const { appDialogModal } = FbaApp.useDialogModal();\n */\nexport const createModalWrapperModel = (key: string) => {\n if (!modalModels[key]) {\n modalModels[key] = Model(ModalModel);\n }\n return modalModels[key];\n};\n"],"names":["ModalModel","actions","openModalForm","_ref","itemData","title","operateType","pageLoading","state","open","closeModal","setModalItemData","params","modalModels","createModalWrapperModel","key","Model"],"mappings":";2CA2BO,IAAMA,EAA+D,CAC1EC,QAAS,CACPC,cAAa,SAAAA,EAAAC,GAAgD,IAA7CC,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAaC,EAAWJ,EAAXI,YAC5C,OAAO,SAACC,GACNA,EAAMJ,SAAWA,EACjBI,EAAMH,MAAQA,EACdG,EAAMF,YAAcA,EACpBE,EAAMD,YAAcA,EACpBC,EAAMC,KAAO,KAEhB,EACDC,WAAU,SAAAA,IACR,OAAO,SAACF,GACNA,EAAMC,KAAO,MAEhB,EACDE,iBAAgB,SAAAA,EAACC,GACf,OAAO,SAACJ,GACNA,EAAMD,YAAc,MACpBC,EAAMJ,SAAWQ,EAErB,GAEFJ,MAAO,CACLC,KAAM,MACNJ,MAAO,GACPC,YAAa,SChDjB,IAAMO,EAA0F,CAAA,MAOnFC,EAA0B,SAA1BA,EAA2BC,GACtC,IAAKF,EAAYE,GAAM,CACrBF,EAAYE,GAAOC,EAAMhB,EAC3B,CACA,OAAOa,EAAYE,EACrB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/create-modal-wrapper-model/modal.model.ts","@flatbiz/antd/src/create-modal-wrapper-model/index.ts"],"sourcesContent":["import { ModelType } from '@dimjs/model';\n\nexport interface ModalStateType {\n title?: string;\n /**\n * 显示modal\n */\n open: boolean;\n /**\n * 用来处理form, `更新`的时候的传递当前item列表行的数据, 当`创建`的时候强制设置为 `undefined`\n */\n itemData?: Record<string, unknown> | null;\n operateType: 'create' | 'update' | 'view';\n pageLoading?: boolean;\n}\n\nexport interface ModalActionsParamType {\n openModalForm: Pick<ModalStateType, 'title' | 'itemData' | 'operateType' | 'pageLoading'>;\n closeModal: void;\n setModalItemData: Record<string, unknown>;\n}\n\n/**\n * @shared\n * 提供公共的modal处理, 通常用来表单编辑, 弹窗抽屉模式.\n * 注意全部理论上只允许一个modal实例存在,如需处理多个, 请自行实例话模型.\n */\nexport const ModalModel: ModelType<ModalStateType, ModalActionsParamType> = {\n actions: {\n openModalForm({ itemData, title, operateType, pageLoading }) {\n return (state) => {\n state.itemData = itemData;\n state.title = title;\n state.operateType = operateType;\n state.pageLoading = pageLoading;\n state.open = true;\n };\n },\n closeModal() {\n return (state) => {\n state.open = false;\n };\n },\n setModalItemData(params) {\n return (state) => {\n state.pageLoading = false;\n state.itemData = params;\n };\n },\n },\n state: {\n open: false,\n title: '',\n operateType: 'view',\n },\n};\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { ModalActionsParamType, ModalModel, ModalStateType } from './modal.model';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst modalModels: Record<string, API<ModelType<ModalStateType, ModalActionsParamType, any>>> = {};\n\n/**\n * modal弹窗模型\n * @param key 唯一值必传\n * @deprecated 废弃 ModalWrapper 4.3.0版本移除,请使用 const { appDialogModal } = FbaApp.useDialogModal();\n */\nexport const createModalWrapperModel = (key: string) => {\n if (!modalModels[key]) {\n modalModels[key] = Model(ModalModel);\n }\n return modalModels[key];\n};\n"],"names":["ModalModel","actions","openModalForm","_ref","itemData","title","operateType","pageLoading","state","open","closeModal","setModalItemData","params","modalModels","createModalWrapperModel","key","Model"],"mappings":";2CA2BO,IAAMA,EAA+D,CAC1EC,QAAS,CACPC,cAAAA,SAAAA,EAAaC,GAAgD,IAA7CC,EAAQD,EAARC,SAAUC,EAAKF,EAALE,MAAOC,EAAWH,EAAXG,YAAaC,EAAWJ,EAAXI,YAC5C,OAAO,SAACC,GACNA,EAAMJ,SAAWA,EACjBI,EAAMH,MAAQA,EACdG,EAAMF,YAAcA,EACpBE,EAAMD,YAAcA,EACpBC,EAAMC,KAAO,KAEhB,EACDC,WAAU,SAAVA,IACE,OAAO,SAACF,GACNA,EAAMC,KAAO,MAEhB,EACDE,iBAAAA,SAAAA,EAAiBC,GACf,OAAO,SAACJ,GACNA,EAAMD,YAAc,MACpBC,EAAMJ,SAAWQ,EAErB,GAEFJ,MAAO,CACLC,KAAM,MACNJ,MAAO,GACPC,YAAa,SChDjB,IAAMO,EAA0F,CAAA,MAOnFC,EAA0B,SAA1BA,EAA2BC,GACtC,IAAKF,EAAYE,GAAM,CACrBF,EAAYE,GAAOC,EAAMhB,EAC3B,CACA,OAAOa,EAAYE,EACrB"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as s}from"@dimjs/utils/cjs/class-names";import{toArray as e}from"@flatbiz/utils";import{Fragment as l,cloneElement as t}from"react";import{jsx as i}from"react/jsx-runtime";var o=function o(a){var m=e(a.children);if(m.length>1){return i("div",{className:"v-css-hover",style:a.style,children:m})}var c=a.children;return i(l,{children:t(c,{className:s("v-css-hover",c.props.className),style:r({},a.style,c.props.style)})})};export{o as CssNodeHover};
4
+ import{_ as r}from"../_rollupPluginBabelHelpers-c0dbec57.js";import{classNames as s}from"@dimjs/utils/cjs/class-names";import{toArray as e}from"@flatbiz/utils";import{Fragment as l,cloneElement as t}from"react";import{jsx as i}from"react/jsx-runtime";var o=function o(a){var m=e(a.children);if(m.length>1){return i("div",{className:"v-css-hover",style:a.style,children:m})}var c=a.children;return i(l,{children:t(c,{className:s("v-css-hover",c.props.className),style:r({},a.style,c.props.style)})})};export{o as CssNodeHover};
5
5
  //# sourceMappingURL=index.js.map