@flatbiz/antd 4.2.61 → 4.2.62

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 (54) hide show
  1. package/esm/anchor-steps/index.js +1 -1
  2. package/esm/{anchor-steps-fba86c87.js → anchor-steps-601a335f.js} +2 -2
  3. package/esm/{anchor-steps-fba86c87.js.map → anchor-steps-601a335f.js.map} +1 -1
  4. package/esm/cascader-wrapper/index.js +1 -1
  5. package/esm/{cascader-wrapper-a965eef5.js → cascader-wrapper-2f6a926f.js} +2 -2
  6. package/esm/{cascader-wrapper-a965eef5.js.map → cascader-wrapper-2f6a926f.js.map} +1 -1
  7. package/esm/content-c0e49ffb.js +3 -0
  8. package/esm/content-c0e49ffb.js.map +1 -0
  9. package/esm/context-1f2093c6.js +3 -0
  10. package/esm/context-1f2093c6.js.map +1 -0
  11. package/esm/dialog-drawer/index.js +1 -1
  12. package/esm/dialog-drawer-550ce42c.js +3 -0
  13. package/esm/dialog-drawer-550ce42c.js.map +1 -0
  14. package/esm/dialog-drawer-content/index.css +1 -0
  15. package/esm/dialog-drawer-content/index.js +9 -0
  16. package/esm/dialog-drawer-content/index.js.map +1 -0
  17. package/esm/dialog-loading/index.js +1 -1
  18. package/esm/{dialog-loading-16bd1baa.js → dialog-loading-53cf2c60.js} +2 -2
  19. package/esm/{dialog-loading-16bd1baa.js.map → dialog-loading-53cf2c60.js.map} +1 -1
  20. package/esm/easy-table/index.js +2 -1
  21. package/esm/easy-table/index.js.map +1 -1
  22. package/esm/editable-field/index.js +1 -1
  23. package/esm/{editable-field-2042924e.js → editable-field-bcac193d.js} +2 -2
  24. package/esm/{editable-field-2042924e.js.map → editable-field-bcac193d.js.map} +1 -1
  25. package/esm/editable-field-provider/index.js +1 -1
  26. package/esm/{editable-field-provider-20963c3e.js → editable-field-provider-3223073a.js} +2 -2
  27. package/esm/{editable-field-provider-20963c3e.js.map → editable-field-provider-3223073a.js.map} +1 -1
  28. package/esm/editable-table/index.js +1 -1
  29. package/esm/{editable-table-81eca425.js → editable-table-c17d96ed.js} +2 -2
  30. package/esm/{editable-table-81eca425.js.map → editable-table-c17d96ed.js.map} +1 -1
  31. package/esm/index.js +3 -1
  32. package/esm/local-loading/index.js +1 -1
  33. package/esm/pagination-0e66a3b5.js +3 -0
  34. package/esm/pagination-0e66a3b5.js.map +1 -0
  35. package/esm/pagination-wrapper/index.css +0 -0
  36. package/esm/pagination-wrapper/index.js +5 -0
  37. package/esm/pagination-wrapper/index.js.map +1 -0
  38. package/esm/selector-wrapper/index.js +1 -1
  39. package/esm/{selector-wrapper-91427b7d.js → selector-wrapper-773778c0.js} +2 -2
  40. package/esm/{selector-wrapper-91427b7d.js.map → selector-wrapper-773778c0.js.map} +1 -1
  41. package/esm/selector-wrapper-search/index.js +1 -1
  42. package/esm/{selector-wrapper-search-c763c481.js → selector-wrapper-search-54866dd6.js} +2 -2
  43. package/esm/{selector-wrapper-search-c763c481.js.map → selector-wrapper-search-54866dd6.js.map} +1 -1
  44. package/esm/selector-wrapper-simple/index.js +1 -1
  45. package/esm/{selector-wrapper-simple-1c0ceae7.js → selector-wrapper-simple-7b34f7bd.js} +2 -2
  46. package/esm/{selector-wrapper-simple-1c0ceae7.js.map → selector-wrapper-simple-7b34f7bd.js.map} +1 -1
  47. package/esm/tree-selector-wrapper/index.js +1 -1
  48. package/esm/{tree-selector-wrapper-8c9a9393.js → tree-selector-wrapper-1e520ad1.js} +2 -2
  49. package/esm/{tree-selector-wrapper-8c9a9393.js.map → tree-selector-wrapper-1e520ad1.js.map} +1 -1
  50. package/esm/tree-wrapper/index.js +1 -1
  51. package/index.d.ts +37 -4
  52. package/package.json +1 -1
  53. package/esm/dialog-drawer-7cb5c6df.js +0 -3
  54. package/esm/dialog-drawer-7cb5c6df.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/select.tsx","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { Select, SelectProps } from 'antd';\nimport * as React from 'react';\n\ntype CompoundedComponent = React.FC<SelectProps> & {\n Option: typeof Select.Option;\n};\n\n/**\n * 由于 antd 5.3.x 分页Pagination组件,存在点击分页选择框框时,一直朝下\n * issues:https://github.com/ant-design/ant-design/issues/36866\n * 为了兼容,在 Pagination 中添加了 selectComponentClass 属性,后期antd 官方优化了bug,可取消 配置selectComponentClass\n * @param props\n * @returns\n */\nexport const MiniSelect: CompoundedComponent = (props) => (\n <Select {...props} size=\"small\" placement=\"topLeft\" />\n);\n\nMiniSelect.Option = Select.Option;\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message, Pagination, PaginationProps } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport { MiniSelect } from './select';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /** EasyTable唯一值,可用于缓存查询条件 */\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, pageSize),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition.pageSize) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition.pageSize),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames('fba-easy-table', {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n });\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames('fba-easy-table-wrapper', {\n 'fba-easy-table-wrapper-inline': props.isInline,\n });\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <Pagination\n size=\"small\"\n {...paginationData}\n onChange={onChange}\n selectComponentClass={MiniSelect}\n />\n </div>\n )}\n </div>\n ) : (\n <div className={className}>{children}</div>\n )}\n </EasyTableCtxProvider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate, formClassName } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formRowChildren = useMemo(() => {\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n leftList: [],\n ...filterOperate?.(form),\n };\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n const { rightList, leftList } = formOperateColProps;\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(<FormGrid.OperateCol key={999} {...formOperateColProps} />);\n }, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps]);\n\n return (\n <SimpleLayout className=\"easy-table-filter\">\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\nimport { MiniSelect } from './select';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex: keyof T | (string & {});\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n tableWrapperStyle?: CSSProperties;\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: MiniSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, title, ...otherProps } = item;\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip title={title} tooltip={tooltip} />,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 4. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 5. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 6. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 7. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 8. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","MiniSelect","props","_jsx","Select","size","placement","Option","EasyTable","forwardRef","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getEasyTableRef","getDataSource","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","value","tableList","tableTotal","foldKeys","_jsxs","Pagination","selectComponentClass","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","formClassName","_useEasyTableCtx","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","leftList","length","changeFolditem","style","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","filter","Boolean","concat","OperateCol","SimpleLayout","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","ctx","resp","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","title","_excluded2","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":";01DAKO,IAAAA,EAAgDC,IAAzCC,EAAeF,EAAA,GAAEG,EAAoBH,EAAA,GCUnD,IAAMI,EAA2B,CAC/BC,eAAgB,CAAE,EAClBC,OAAQ,MAGV,IAAMC,EAA4D,CAChEC,QAAS,CACPC,sBAAuB,SAAAA,EAACC,GACtB,OAAO,SAACC,GACNA,EAAMN,eAAcO,EAAA,CAAA,EACfD,EAAMN,eACNK,GAGR,EACDG,qBAAsB,SAAAA,EAACH,GACrB,OAAO,SAACC,GACNA,EAAMN,eAAcO,EAAA,CAAA,EACfR,EAAaC,eACbK,GAGR,EACDI,iBAAkB,SAAAA,IAChB,OAAO,SAACH,GACNA,EAAML,OAAS,MAEnB,GAEFK,MAAOP,GAGT,IAAMW,EAAuF,CAAA,EAQtF,IAAMC,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAKF,EAAgBE,GAAM,CACzBF,EAAgBE,GAAOC,EAAMX,EAC/B,CACA,OAAOQ,EAAgBE,EACzB,EC9CO,IAAME,EAAkC,SAAlCA,EAAmCC,GAAK,OACnDC,EAACC,EAAMV,KAAKQ,EAAK,CAAEG,KAAK,QAAQC,UAAU,YAAY,EAGxDL,EAAWM,OAASH,EAAOG,OCoEpB,IAAMC,EAAYC,GAA4C,SAACP,EAAuBQ,GAAQ,IAAAC,EACnG,IAAAC,EAAoCC,EAAyB,IAAtDC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChC,IAAAI,EAA0BH,EAAiB,GAApCI,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GACtB,IAAAG,EAA8BN,EAAkB,OAAzCO,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAAG,EAAyBxB,EAAeI,EAAMqB,UAAUC,WAAjD/B,EAAK6B,EAAA,GAAEhC,EAAOgC,EAAA,GACrB,IAAMG,EAAWvB,EAAMuB,YAAQd,EAAIT,EAAMwB,0BAANf,UAAAA,EAAAA,EAA+Bc,WAAY,GAC9E,IAAME,EAAczB,EAAMyB,cAAgBC,UAAY,KAAO1B,EAAMyB,YACnE,IAAAE,EAAgDhB,EAAS,OAAlDiB,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAC5C,IAAMG,EAAsBC,IAE5B,IAAMC,EAAUxC,EAAA,CACdyC,KAAM,OACNlB,MAAO,QACPmB,OAAQ,SACRX,SAAU,YACPvB,EAAMgC,YAGX,IAAAG,EAAeC,EAAKC,UAAbC,EAAIH,EAAA,GAEX,IAAMI,EAAiBC,EAAMC,gBAAe,SAAOnD,GAAP,OAAA,IAAAoD,SAAA,SAAAC,EAAAC,GAAA,IAGlCC,EACA5D,EAA0D6D,EAAAC,EAAAC,EAAAC,EAE1DC,EACAC,EAGAC,EACAC,EArHZ,IAAIC,aAAJ,IAAI,OAAAX,GAAK,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,GAAlC,IAAIC,EAAA,SAyHSC,GAzHb,IA0HMtC,EAAW,OACX,GAAInB,EAAM0D,qBAAsB,CAC9B1D,EAAM0D,qBAAqBD,EAC7B,KAAO,MACAE,EAAQF,MAAMA,EAAME,QAC3B,CA/HN,OAAOL,GAAE,CAAC,MAAAC,GAAW,OAAOX,EAAAW,EAAM,GA2G9B,IACEpC,EAAW,MACM,OAAAuB,QAAAkB,QAAMxE,EAAQC,sBAAsBC,IAApCuE,eAA2CC,GA7GlE,IA6GYjB,EAAWiB,EACX7E,EAAiB8E,EAAWlB,EAAS5D,gBAAkB,CAAE,GAC/D6D,EAAkE9C,EAAMgE,cAAhEjB,EAAoBD,EAApBC,qBAAsBC,EAASF,EAATE,UAAWC,EAAoBH,EAApBG,qBACnCC,EAAYH,EAAuBA,EAAqB9D,GAAkBA,EAC9D,OAAAyD,QAAAkB,QAAMZ,EAAUE,IAAhBW,MAA0B,SAAAI,GAjHlD,IAiHYd,EAAYc,GAA+B,GACjDnC,EAAoBoC,QAAUf,EAC9BnD,EAAMmE,oBAANnE,UAAAA,EAAAA,EAAMmE,mBAAqBhB,GACrBC,EAAcH,EAAuBA,EAAqBE,GAAYA,EACtEE,EAAWD,EAAYpB,EAAWC,MACxCpB,EAAcuD,EAAQf,GAAYA,EAAW,IAC7CrC,EAASoC,EAAYpB,EAAWjB,QAChCI,EAAW,OAxHjB,OAAOmC,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAA1B,CAAC,MAAAD,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAyH9B,CAAC,MAAOC,GAAOD,EAAPC,EAOT,CAAC,OAGH,IAAMY,EAAsB7B,EAAMC,gBAAe,SAAO6B,GAAP,OAAA,IAAA5B,SAAA,SAAAC,EAAAC,GAC/C,OAAAF,QAAAkB,QAAMxE,EAAQK,wBAAdoE,MAAoC,SAAAU,GApIxC,IAqIIjC,EAAKkC,cACL,GAAIF,EAAQ,MACLlF,EAAQC,sBAAsBiF,GACnChC,EAAKmC,eAAeH,EACtB,CAAC,OAAA3B,GAzII,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EAoIK,OAQtC,IAAM8B,EAAoB,SAApBA,EAAqBxC,EAAgByC,GACzC,GAAI/C,EAAkB,CAAA,IAAAgD,EACpB,OAAAA,KAAAA,EACG5C,EAAWE,QAASA,EAAM0C,EAC1B5C,EAAWT,UAAWoD,GAAapD,EAAQqD,CAEhD,KAAO,CACL,MAAO,EACT,GAGF,IAAMC,EAAiBrC,EAAMC,gBAAe,SAAO6B,GAAP,OAAA,IAAA5B,SAAA,SAAAC,EAAAC,GAAA,IACpCtD,EAAAA,EAAME,EACPkF,CAAAA,EAAAA,EAAkB,EAAGnD,GACrBvB,EAAM8E,cACNR,GAEL,OAAA5B,QAAAkB,QAAMxE,EAAQK,qBAAqBH,IAAnCuE,eAA0CkB,GA7J9C,IA8JIzC,EAAKkC,mBACAjC,EAAejD,GAAQ,OAAAqD,GA/JvB,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EA6JW,OAK5C,IAAMoC,EAAmBxC,EAAMC,gBAAe,WAC5C,OAAAjD,KACKD,EAAMN,eACNqD,EAAK2C,iBAEZ,IAEA,IAAMC,EAAkB,SAAlBA,IACJ,MAAO,CACLlC,UAAWT,EACX8B,oBAAAA,EACAW,iBAAAA,EACAH,eAAAA,EACAvC,KAAAA,EACA6C,cAAe,SAAAA,IACb,OAAOrD,EAAoBoC,OAC7B,IAIJkB,EAAoB5E,GAAK,WACvB,OAAO0E,GACT,IAEA,IAAMG,EAAwB,SAAxBA,EAAyBC,GAC7BzD,EAAoByD,IAGtB,IAAMC,EAAe,SAAfA,IACJ,IAAMjB,EAAShC,EAAK2C,iBACpB,GAAIjF,EAAMuF,aAAc,CACtBvF,EAAMuF,aAAY/F,EAAA,CAAA,EAAM8E,EAAWI,EAAkB,EAAGnF,EAAMN,eAAesC,WAC/E,KAAO,MACAgB,EAAc/C,EACd8E,CAAAA,EAAAA,EACAI,EAAkB,EAAGnF,EAAMN,eAAesC,WAEjD,GAEF,IAAMiE,EAASC,EAAYzF,EAAMwF,QAAU,KAAOxF,EAAMwF,OACxD,IAAME,EAAYC,EAAW,iBAAkB,CAC7C,sBAAuBH,EACvB,8BAA+BxF,EAAM4F,YACrC,kCAAmC5F,EAAM6F,kBAG3C,IAAMC,EAAiBC,GAAQ,WAC7B,OAAAvG,EAAA,CACEwG,gBAAiB,KACjB9B,QAAS3E,EAAMN,eAAe+C,EAAWE,SAAW,EACpDX,SAAUhC,EAAMN,eAAe+C,EAAWT,WAAaA,EACvDR,MAAOA,EACPkF,UAAW,SAAAA,EAAClF,GAAK,MAAA,KAAUA,EAAK,MAAA,GAC7Bf,EAAMkG,WAEZ,GAAE,CAAClE,EAAWE,OAAQF,EAAWT,SAAUA,EAAUvB,EAAMkG,WAAY3G,EAAMN,eAAgB8B,IAE9F,IAAMoF,EAAW3D,EAAMC,gBAAe,SAAC2D,EAAc7E,GAAqB,IAAA8E,EAAAC,OACnE/D,GAAc8D,EAAA,CAAA,EAAAA,EAAIrE,EAAWT,UAAWA,EAAQ8E,EAAGrE,EAAWE,QAASkE,EAAIC,KAChFC,EAAAtG,EAAMkG,yBAANI,EAAkBH,UAAQ,UAAA,EAA1BG,EAAkBH,SAAWC,EAAM7E,EACrC,IAEA,IAAMgF,GAAmBZ,EAAW,yBAA0B,CAC5D,gCAAiC3F,EAAMwG,WAGzC,IAAMC,UACGzG,EAAMyG,WAAa,WAAazG,EAAMyG,SAAS3E,EAAoBoC,SAAWlE,EAAMyG,SAE7F,OACExG,EAAClB,EAAoB,CACnB2H,MAAO,CACLxB,gBAAAA,EACA7D,SAAUrB,EAAMqB,SAChB2B,UAAWT,EACXoE,UAAW/F,EACXgG,WAAY7F,EACZG,QAAAA,EACAc,WAAAA,EACAT,SAAAA,EACAE,YAAAA,EACAqD,cAAe9E,EAAM8E,eAAiB,CAAE,EACxCO,sBAAAA,EACAzD,iBAAAA,EACA2D,aAAAA,EACAjD,KAAAA,EACAuD,gBAAiB7F,EAAM6F,iBAAmB,MAC1CgB,SAAU7G,EAAM6G,UAAY,IAC5BJ,SAEDzG,EAAM6F,gBACLiB,EAAA,MAAA,CAAKpB,UAAWa,GAAiBE,UAC/BxG,EAAA,MAAA,CAAKyF,UAAWA,EAAUe,SAAEA,KAC3B1F,EAAQ,GACPd,EAAA,MAAA,CAAKyF,UAAU,4BAA2Be,SACxCxG,EAAC8G,EAAUvH,EAAA,CACTW,KAAK,SACD2F,EAAc,CAClBK,SAAUA,EACVa,qBAAsBjH,UAM9BE,EAAA,MAAA,CAAKyF,UAAWA,EAAUe,SAAEA,MAIpC,IChNO,IAAMQ,EAAkB,SAAlBA,EAAmBjH,GAC9B,IAAQkH,EAAqElH,EAArEkH,iBAAkBC,EAAmDnH,EAAnDmH,iBAAkBC,EAAiCpH,EAAjCoH,cAAeC,EAAkBrH,EAAlBqH,cAC3D,IAAAC,EAUIxI,IATFuC,EAAQiG,EAARjG,SACAwF,EAAQS,EAART,SACA7E,EAAUsF,EAAVtF,WACAgB,EAASsE,EAATtE,UACAzB,EAAQ+F,EAAR/F,SACAK,EAAgB0F,EAAhB1F,iBACAkD,EAAawC,EAAbxC,cACAxC,EAAIgF,EAAJhF,KACAiD,EAAY+B,EAAZ/B,aAEF,IAAMkB,SAAkBzG,EAAMyG,WAAa,WAAazG,EAAMyG,SAASnE,GAAQtC,EAAMyG,SACrF,IAAMc,EAAYxB,GAAQ,WACxB,GAAIyB,EAAWf,GAAW,CACxB,OAAOgB,EAASC,QAASjB,EAA0BzG,MAAMyG,SAC3D,KAAO,CACL,OAAOgB,EAASC,QAAQjB,EAC1B,CACF,GAAG,CAACA,IAEJ,IAAA/F,EAAgCC,EAAS,OAAlCgH,EAAQjH,EAAA,GAAEkH,EAAWlH,EAAA,GAE5B,IAAAU,EAAyBxB,EAAeyB,GAAUC,WAA3C/B,EAAK6B,EAAA,GAAEhC,EAAOgC,EAAA,GAErB,IAAMyG,EAAUrF,EAAMC,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAAAkF,EACnC,OAAApF,QAAAkB,QAAMxE,EAAQK,wBAAdoE,MAAoC,SAAAkE,GA1FxC,IA2FIzF,EAAKkC,cACL,GAAI5C,EAAkB,CACpBoB,EAASxD,GAAAsI,EAAA,CAAA,EAAAA,EACN9F,EAAWE,QAAS,EAAC4F,EACrB9F,EAAWT,UAAWA,EAAQuG,GAC5BhD,GAEP,KAAO,CACL9B,EAAU8B,EACZ,CAAC,OAAAnC,GApGI,CAAC,MAAAY,GAAW,OAAOX,EAAAW,EAAM,CAAC,GAAAX,EA0FK,OAatC,IAAMoF,EAAkBjC,GAAQ,WAC9B,IAAMkC,EAAmBzI,EAAA,CACvB0I,UAAW,GACRhB,GAAAA,MAAAA,EAAkBiB,QACjBlI,EAACmI,EAAa5I,EAAA,CAAS6I,KAAK,UAAUC,SAAS,UAAapB,EAAgB,CAAAT,UACzES,eAAAA,EAAkBqB,OAAQ,OADV,KAGjB,OACHpB,GAAgB,MAAhBA,EAAkBgB,QACjBlI,EAACmI,EAAa5I,EAAA,CAASgJ,QAASX,GAAaV,EAAgB,CAAAV,UAC1DU,eAAAA,EAAkBoB,OAAQ,OADV,KAGjB,MAENE,SAAU,IACPrB,GAAAA,UAAAA,EAAAA,EAAgB9E,IAGrB,GAAIuE,EAAS6B,OAAS,EAAG,CACvB,IAAMC,EACJ1I,EAACmI,EAAa,CACZC,KAAK,OAELO,MAAO,CAAEC,QAAS,KAClBL,QAAS,SAAAA,IACPZ,GAAaD,EACb,EAAAlB,SAEDkB,EACCb,EAAA,OAAA,CAAAL,SAAM,CAAA,KAEJxG,EAAA6I,EAAA,CAAYF,MAAO,CAAEG,WAAY,EAAGC,SAAU,SAGhDlC,EAAA,OAAA,CAAAL,SAAM,CAAA,KAEJxG,EAAAgJ,EAAA,CAAcL,MAAO,CAAEG,WAAY,EAAGC,SAAU,UAdhD,gBAmBR,IAAQd,EAAwBD,EAAxBC,UAAWO,EAAaR,EAAbQ,SACnB,GAAIP,EAAUQ,OAAS,GAAKD,EAASC,SAAW,EAAG,CACjDR,EAAUgB,KAAKP,QACV,IAAIF,GAAQ,UAAA,EAARA,EAAUC,QAAS,EAAG,CAC/BD,EAASS,KAAKP,EAChB,CACF,CAEA,OAAOpB,EACJ4B,KAAI,SAACC,EAAMC,GACV,IAAK1B,GAAYd,EAASyC,MAAK,SAACC,GAAO,MAAK,KAAKA,IAAcH,EAAKvJ,OAAM,OAAO,KACjF,GAAIuJ,EAAKpJ,MAAM,UAAW,OAAO,KACjC,GAAIoJ,EAAKf,KAAK,iBAAmB,UAAW,OAAOe,EACnD,OAAOnJ,EAACuJ,EAASC,IAAG,CAAAhD,SAAc2C,GAARC,EAC3B,IACAK,OAAOC,SACPC,OAAO3J,EAACuJ,EAASK,WAAUrK,KAAeyI,GAAT,KACtC,GAAG,CAACV,EAAWH,EAAeP,EAAUvE,EAAMuF,EAASF,EAAUT,EAAkBC,IAEnF,OACElH,EAAC6J,EAAY,CAACpE,UAAU,oBAAmBe,SACzCxG,EAACmC,EAAI,CACHE,KAAMA,EACNyH,SAAUxE,EACVT,cAAatF,EACRsF,CAAAA,EAAAA,EACAvF,EAAMN,gBAEXyG,UAAW2B,EAAcZ,SAExBzG,EAAMgK,OACLvD,EAEAxG,EAACuJ,EAASS,IAAG,CAACC,OAAQ,CAAC,GAAI,GAAIC,SAAUnK,EAAMoK,aAAa3D,SACzDuB,OAMb,EChLO,IAAMqC,EAAe,SAAfA,IACX,IAAMC,EAAMxL,IACZ,IAAMyL,EAAOxI,EAAOuI,EAAIpF,mBACxB,OAAOqF,EAAKrG,OACd,EAOO,IAAMsG,EAAiB,SAAjBA,IACX,IAAAlD,EAA4BxI,IAApBoG,EAAeoC,EAAfpC,gBACR,IAAM1E,EAAMuB,EAAwBmD,KACpC,OAAO1E,CACT,iEC8BO,IAAMiK,EAAiB,SAAjBA,EAA0CzK,GACrD,IAAQyG,EAAgDzG,EAAhDyG,SAAUiE,EAAsC1K,EAAtC0K,OAAQxE,EAA8BlG,EAA9BkG,WAAeyE,EAAUC,EAAK5K,EAAK6K,GAE7D,IAAAvD,EAYIxI,IAXFuC,EAAQiG,EAARjG,SACAW,EAAUsF,EAAVtF,WACAgB,EAASsE,EAATtE,UACA2D,EAASW,EAATX,UACAlF,EAAW6F,EAAX7F,YACAF,EAAQ+F,EAAR/F,SACAqF,EAAUU,EAAVV,WACA1F,EAAOoG,EAAPpG,QACA4D,EAAawC,EAAbxC,cACAe,EAAeyB,EAAfzB,gBACAR,EAAqBiC,EAArBjC,sBAEF,IAAAjE,EAAyBxB,EAAeyB,GAAUC,WAA3C/B,EAAK6B,EAAA,GAAEhC,EAAOgC,EAAA,GAErB,IAAM0J,EAAsB/E,GAAQ,WAClC,GAAIF,GAAmBK,IAAe,MAAO,OAAO,MACpD,OAAA1G,EAAA,CACEwG,gBAAiB,KACjB9B,QAAS3E,EAAMN,eAAe+C,EAAWE,SAAW,EACpDX,SAAUhC,EAAMN,eAAe+C,EAAWT,WAAaA,EACvDR,MAAO6F,EACPX,UAAW,SAAAA,EAAClF,GAAK,MAAA,KAAUA,EAAK,MAAA,GAC7Bf,EAAMkG,WAAU,CACnBc,qBAAsBjH,GAEzB,GAAE,CACDiC,EAAWE,OACXF,EAAWT,SACXA,EACA2E,EACAL,EACA7F,EAAMkG,WACN3G,EAAMN,eACN2H,IAGF,IAAMmE,EAA6C,SAA7CA,EAA8C7E,EAAY8E,EAASC,EAAQC,GAC/E,GAAIA,EAAMC,SAAW,YAAcL,EAAqB,CAAA,IAAAM,EACtDpI,GAASoI,EAAA,CAAA,EAAAA,EAAIpJ,EAAWT,UAAW2E,EAAW3E,SAAQ6J,EAAGpJ,EAAWE,QAASgE,EAAWhC,QAAOkH,GACjG,KAAO,CACLpL,EAAMmG,UAANnG,UAAAA,EAAAA,EAAMmG,SAAWD,EAAY8E,EAASC,EAAQC,EAChD,GAGF,IAAMtK,EAAamF,GAAQ,WACzB,GAAIY,EAAU+B,SAAW,EAAG,CAC1B,MAAO,EACT,CACA,UAAWgC,IAAW,UAAYW,EAAkB1E,EAAU,GAAG+D,IAAU,CACzE,OAAO/D,EAAUwC,KAAI,SAACC,GACpBA,EAAKsB,GAAUY,IACf,OAAOlC,CACT,GACF,CACA,OAAOzC,CACT,GAAG,CAACA,EAAW+D,IAEfa,EAASC,iBAAgB,WACvB,IAAMC,EAAgB5F,GAAmBiF,IAAwB,MACjEzF,EAAsBoG,GACtB,GAAIhK,IAAgB,QAAUlC,EAAML,OAAQ,CAC1C,GAAIuM,EAAe,CAAA,IAAA3D,OACZ9E,EAASxD,GAAAsI,EAAA,CAAA,EAAAA,EACX9F,EAAWE,QAAS,EAAC4F,EACrB9F,EAAWT,UAAWA,EAAQuG,GAC5BhD,EACAvF,EAAMN,gBAEb,KAAO,MACA+D,EAAU8B,EACjB,CACF,KAAO,MACA1F,EAAQC,sBAAsByF,EACrC,MACK1F,EAAQM,kBACd,GAAE,IAEH,IAAMgM,EAAU3F,GAAQ,WACtB,OAAO/F,EAAM0L,QAAQvC,KAAI,SAACC,GACxB,IAAQuC,EAAkCvC,EAAlCuC,QAASC,EAAyBxC,EAAzBwC,MAAUjB,EAAUC,EAAKxB,EAAIyC,GAC9C,UAAWD,IAAU,YAAcD,EAAS,CAC1C,OAAAnM,KACKmL,EAAU,CACbiB,MAAO3L,EAAC6L,EAAiB,CAACF,MAAOA,EAAOD,QAASA,KAErD,CACA,OAAOvC,CACT,GACF,GAAG,CAACpJ,EAAM0L,UAEV,OACE5E,EAACgD,EAAY,CACXpE,UAAWC,EAAW,mBAAoB3F,EAAM+L,uBAChDnD,MAAO5I,EAAMgM,kBAAkBvF,SAAA,CAE9BA,EACAwF,IACChM,EAACiM,EAAK1M,EAAA,CACJW,KAAK,QACLgM,OAAQ,CAAEC,EAAG,eACbC,SAAQ,MACJ1B,EAAU,CACde,QAASA,EACTxF,WAAY4E,EACZJ,OAAQA,EACRvE,SAAU4E,EACV7J,QAASA,EACTN,WAAYA,KAGdX,EAACqM,EAAc,CAAA7F,SACbxG,EAACiM,EAAK1M,EAAA,CACJW,KAAK,QACLgM,OAAQ,CAAEC,EAAG,eACbC,SAAQ,MACJ1B,EAAU,CACde,QAASA,EACTxF,WAAY4E,EACZJ,OAAQA,EACRvE,SAAU4E,EACV7J,QAASA,EACTN,WAAYA,SAMxB,ECnKO,IAAMN,EAAYiM,EAASC,4BAA4BC,EAAgB,CA+B5EC,OAAQzF,EASRiF,MAAOzB,EAKPD,eAAgBA,EAGhBH,aAAcA"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message, PaginationProps } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /** EasyTable唯一值,可用于缓存查询条件 */\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, pageSize),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition.pageSize) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition.pageSize),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames('fba-easy-table', {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n });\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames('fba-easy-table-wrapper', {\n 'fba-easy-table-wrapper-inline': props.isInline,\n });\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className}>{children}</div>\n )}\n </EasyTableCtxProvider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate, formClassName } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formRowChildren = useMemo(() => {\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n leftList: [],\n ...filterOperate?.(form),\n };\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n const { rightList, leftList } = formOperateColProps;\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(<FormGrid.OperateCol key={999} {...formOperateColProps} />);\n }, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps]);\n\n return (\n <SimpleLayout className=\"easy-table-filter\">\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * ```\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n tableWrapperStyle?: CSSProperties;\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, title, ...otherProps } = item;\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip title={title} tooltip={tooltip} />,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 4. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 5. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 6. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 7. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 8. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getEasyTableRef","getDataSource","onFilterDataSource","filterDataSource","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","value","tableList","tableTotal","foldKeys","_jsxs","PaginationWrapper","size","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","formClassName","_useEasyTableCtx","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","leftList","length","changeFolditem","style","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","filter","Boolean","concat","OperateCol","SimpleLayout","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","ctx","resp","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","title","_excluded2","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
3
3
  import './../icon-wrapper/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
- export{E as EditableField}from"../editable-field-2042924e.js";import"@dimjs/utils/cjs/class-names";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/lang/cjs/is-number";import"@dimjs/lang/cjs/is-string";import"@ant-design/icons/es/icons/EditOutlined";import"@flatbiz/utils";import"antd";import"react";import"../context-25d0b686.js";import"../fba-hooks/index.js";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"../icon-wrapper-ed5fcacc.js";import"react/jsx-runtime";
6
+ export{E as EditableField}from"../editable-field-bcac193d.js";import"@dimjs/utils/cjs/class-names";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/lang/cjs/is-number";import"@dimjs/lang/cjs/is-string";import"@ant-design/icons/es/icons/EditOutlined";import"@flatbiz/utils";import"antd";import"react";import"../context-25d0b686.js";import"../fba-hooks/index.js";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"../icon-wrapper-ed5fcacc.js";import"react/jsx-runtime";
7
7
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{classNames as n}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/CloseOutlined";import i from"@ant-design/icons/es/icons/CheckOutlined";import{a as e}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{isNumber as t}from"@dimjs/lang/cjs/is-number";import{isString as l}from"@dimjs/lang/cjs/is-string";import a from"@ant-design/icons/es/icons/EditOutlined";import{isUndefinedOrNull as c}from"@flatbiz/utils";import{Space as s}from"antd";import{useState as u,useContext as f,useRef as d,useEffect as m,isValidElement as v}from"react";import{E as p}from"./context-25d0b686.js";import{fbaHooks as h}from"./fba-hooks/index.js";import{I as C}from"./icon-wrapper-ed5fcacc.js";import{jsx as b,jsxs as g}from"react/jsx-runtime";var j=function j(I){var k=I.value,y=I.onChange,w=I.viewRender,E=I.placeholderValue,P=E===void 0?"-":E,x=I.editRender,z=I.isEditFull,R=I.onClickEditIconPre,O=I.onClickConfirmIconPre,N=I.iconConfig,T=I.onEditCallback,B=I.onConfirmCallback;var F=u(false),H=F[0],V=F[1];var _=f(p);var q=d(k);var A=function(){if(_.isCtx){return I.showEditableIcon===undefined?_.showEditableIcon:I.showEditableIcon}return I.showEditableIcon===undefined?true:I.showEditableIcon}();var D=function(){if(_.isCtx){return I.editable===undefined?_.editable:I.editable}return I.editable||false}();var G=h.useThemeToken();m((function(){V(D)}),[D]);var J=function n(){return new Promise((function(n,r){if(R){return Promise.resolve(R(k)).then(function(n){try{return i.call(this)}catch(n){return r(n)}}.bind(this),r)}function i(){q.current=k;V(true);T==null?void 0:T(k);return n()}return i.call(this)}))};var K=N!=null&&N.editIcon?N.editIcon({onClick:J}):b(C,{size:"small",icon:b(a,{}),onClick:J});if(!H){var L=(w?w(I.value):I.value)||P;if(l(L)||t(L)||c(L)||v(L)){if(!A){return L}return g(s,{size:8,children:[b("span",{children:L}),K]})}console.warn("对象作为React子对象无效",L)}var M=function n(){if(k!==q.current){y==null?void 0:y(q.current)}V(false)};var Q=function n(r){var i=r;if(typeof r==="object"&&r!==null&&!o(r)&&r.target){var e;var a=(e=r.target)==null?void 0:e.value;if(l(a)||t(a)||c(a)){var s;i=(s=r.target)==null?void 0:s.value}}y==null?void 0:y(i)};var S=function n(){return new Promise((function(n,r){if(O){return Promise.resolve(O(k,q.current)).then(function(n){try{return i.call(this)}catch(n){return r(n)}}.bind(this),r)}function i(){V(false);B==null?void 0:B(k,q.current);return n()}return i.call(this)}))};var U=typeof x==="function"?x({value:k,onChange:Q}):x;if(!A){return b(U.type,e({value:k,onChange:Q},U.props))}var W=N!=null&&N.confirmIcon?N.confirmIcon({onClick:S}):b(C,{size:"small",icon:b(i,{style:{color:G.colorPrimary}}),onClick:S});var X=N!=null&&N.cancelIcon?N.cancelIcon({onClick:M}):b(C,{size:"small",icon:b(r,{style:{color:G.colorPrimary}}),onClick:M});return g(s,{direction:"horizontal",size:12,style:{display:"flex",paddingRight:6},className:n({"editable-field-full":z},I.className),children:[b(U.type,e({value:k,onChange:Q},U.props)),W,X]})};export{j as E};
3
- //# sourceMappingURL=editable-field-2042924e.js.map
2
+ import{classNames as n}from"@dimjs/utils/cjs/class-names";import r from"@ant-design/icons/es/icons/CloseOutlined";import i from"@ant-design/icons/es/icons/CheckOutlined";import{a as e}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isArray as o}from"@dimjs/lang/cjs/is-array";import{isNumber as t}from"@dimjs/lang/cjs/is-number";import{isString as l}from"@dimjs/lang/cjs/is-string";import a from"@ant-design/icons/es/icons/EditOutlined";import{isUndefinedOrNull as c}from"@flatbiz/utils";import{Space as s}from"antd";import{useState as u,useContext as f,useRef as d,useEffect as m,isValidElement as v}from"react";import{E as p}from"./context-25d0b686.js";import{fbaHooks as h}from"./fba-hooks/index.js";import{I as C}from"./icon-wrapper-ed5fcacc.js";import{jsx as b,jsxs as g}from"react/jsx-runtime";var j=function j(I){var k=I.value,y=I.onChange,E=I.viewRender,w=I.placeholderValue,P=w===void 0?"-":w,x=I.editRender,z=I.isEditFull,R=I.onClickEditIconPre,O=I.onClickConfirmIconPre,N=I.iconConfig,T=I.onEditCallback,B=I.onConfirmCallback;var F=u(false),H=F[0],V=F[1];var _=f(p);var q=d(k);var A=function(){if(_.isCtx){return I.showEditableIcon===undefined?_.showEditableIcon:I.showEditableIcon}return I.showEditableIcon===undefined?true:I.showEditableIcon}();var D=function(){if(_.isCtx){return I.editable===undefined?_.editable:I.editable}return I.editable||false}();var G=h.useThemeToken();m((function(){V(D)}),[D]);var J=function n(){return new Promise((function(n,r){if(R){return Promise.resolve(R(k)).then(function(n){try{return i.call(this)}catch(n){return r(n)}}.bind(this),r)}function i(){q.current=k;V(true);T==null?void 0:T(k);return n()}return i.call(this)}))};var K=N!=null&&N.editIcon?N.editIcon({onClick:J}):b(C,{size:"small",icon:b(a,{}),onClick:J});if(!H){var L=(E?E(I.value):I.value)||P;if(l(L)||t(L)||c(L)||v(L)){if(!A){return L}return g(s,{size:8,children:[b("span",{children:L}),K]})}console.warn("对象作为React子对象无效",L)}var M=function n(){if(k!==q.current){y==null?void 0:y(q.current)}V(false)};var Q=function n(r){var i=r;if(typeof r==="object"&&r!==null&&!o(r)&&r.target){var e;var a=(e=r.target)==null?void 0:e.value;if(l(a)||t(a)||c(a)){var s;i=(s=r.target)==null?void 0:s.value}}y==null?void 0:y(i)};var S=function n(){return new Promise((function(n,r){if(O){return Promise.resolve(O(k,q.current)).then(function(n){try{return i.call(this)}catch(n){return r(n)}}.bind(this),r)}function i(){V(false);B==null?void 0:B(k,q.current);return n()}return i.call(this)}))};var U=typeof x==="function"?x({value:k,onChange:Q}):x;if(!A){return b(U.type,e({value:k,onChange:Q},U.props))}var W=N!=null&&N.confirmIcon?N.confirmIcon({onClick:S}):b(C,{size:"small",icon:b(i,{style:{color:G.colorPrimary}}),onClick:S});var X=N!=null&&N.cancelIcon?N.cancelIcon({onClick:M}):b(C,{size:"small",icon:b(r,{style:{color:G.colorPrimary}}),onClick:M});return g(s,{direction:"horizontal",size:12,style:{display:"flex",paddingRight:6},className:n({"editable-field-full":z},I.className),children:[b(U.type,e({value:k,onChange:Q},U.props)),W,X]})};export{j as E};
3
+ //# sourceMappingURL=editable-field-bcac193d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editable-field-2042924e.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport { isValidElement, ReactElement, ReactNode, useContext, useEffect, useRef, useState } from 'react';\nimport { EditableFieldContext } from '../editable-field-provider/context';\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\n\nimport './style.less';\n\nexport interface EditableFieldProps {\n className?: string;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 是否可编辑 */\n editable?: boolean;\n /** 是否显示编辑、确认、取消操作icon,默认值:true */\n showEditableIcon?: boolean;\n /** 点击编辑按钮,操作前,返回reject不会开启编辑效果 */\n onClickEditIconPre?: (value?: TAny) => Promise<void>;\n onEditCallback?: (value?: TAny) => void;\n /** 点击确定按钮,操作前,返回reject不会执行确定功能 */\n onClickConfirmIconPre?: (value?: TAny, preValue?: TAny) => Promise<void>;\n onConfirmCallback?: (value?: TAny, preValue?: TAny) => void;\n /** 组件操作Icon配置 */\n iconConfig?: {\n editIcon?: (options: { onClick: () => void }) => ReactElement;\n confirmIcon?: (options: { onClick: () => void }) => ReactElement;\n cancelIcon?: (options: { onClick: () => void }) => ReactElement;\n };\n}\n\n/**\n * 可编辑字段组件\n * @param props\n * @returns\n * ```\n * 字段渲染有两种状态\n * 1. 只读:如果value类型为复杂格式,必须要通过【viewRender】来进行处理操作,转成简单数据类型\n * 2. 编辑:参数value的格式要求必须满足编辑组件入参value要求\n * 3. 可自定义编辑Icon、确定Icon、取消Icon\n * 4. 可拦截编辑操作、确定操作\n * ```\n */\nexport const EditableField = (props: EditableFieldProps) => {\n const {\n value,\n onChange,\n viewRender,\n placeholderValue = '-',\n editRender,\n isEditFull,\n onClickEditIconPre,\n onClickConfirmIconPre,\n iconConfig,\n onEditCallback,\n onConfirmCallback,\n } = props;\n const [isEdit, setIsEdit] = useState<boolean>(false);\n const ctx = useContext(EditableFieldContext);\n const originalValue = useRef<TAny>(value);\n\n const showEditableIcon = (function () {\n if (ctx.isCtx) {\n return props.showEditableIcon === undefined ? ctx.showEditableIcon : props.showEditableIcon;\n }\n return props.showEditableIcon === undefined ? true : props.showEditableIcon;\n })();\n\n const editable = (function () {\n if (ctx.isCtx) {\n return props.editable === undefined ? ctx.editable : props.editable;\n }\n return props.editable || false;\n })();\n\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n setIsEdit(editable);\n }, [editable]);\n\n const onClickEditIcon = async () => {\n if (onClickEditIconPre) {\n await onClickEditIconPre(value);\n }\n originalValue.current = value;\n setIsEdit(true);\n onEditCallback?.(value);\n };\n\n const editIcon = iconConfig?.editIcon ? (\n iconConfig.editIcon({ onClick: onClickEditIcon })\n ) : (\n <IconWrapper size=\"small\" icon={<EditOutlined />} onClick={onClickEditIcon} />\n );\n\n if (!isEdit) {\n const viewValue = (viewRender ? viewRender(props.value) : props.value) || placeholderValue;\n if (\n isString(viewValue) ||\n isNumber(viewValue) ||\n isUndefinedOrNull(viewValue) ||\n isValidElement(viewValue)\n ) {\n if (!showEditableIcon) {\n return viewValue;\n }\n return (\n <Space size={8}>\n <span>{viewValue}</span>\n {editIcon}\n </Space>\n );\n }\n console.warn('对象作为React子对象无效', viewValue);\n }\n\n const onCancel = () => {\n if (value !== originalValue.current) {\n onChange?.(originalValue.current);\n }\n setIsEdit(false);\n };\n\n const onEditChange = (value) => {\n let target = value;\n /** 为了处理 Input、TextArea等onChange取值 */\n if (typeof value === 'object' && value !== null && !isArray(value) && value.target) {\n const _value = value.target?.value;\n if (isString(_value) || isNumber(_value) || isUndefinedOrNull(_value)) {\n target = value.target?.value;\n }\n }\n onChange?.(target);\n };\n\n const onOk = async () => {\n if (onClickConfirmIconPre) {\n await onClickConfirmIconPre(value, originalValue.current);\n }\n setIsEdit(false);\n onConfirmCallback?.(value, originalValue.current);\n };\n\n const editRenderElement =\n typeof editRender === 'function' ? editRender({ value: value, onChange: onEditChange }) : editRender;\n\n if (!showEditableIcon) {\n return <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />;\n }\n\n const confirmIcon = iconConfig?.confirmIcon ? (\n iconConfig.confirmIcon({ onClick: onOk })\n ) : (\n <IconWrapper size=\"small\" icon={<CheckOutlined style={{ color: theme.colorPrimary }} />} onClick={onOk} />\n );\n\n const cancelIcon = iconConfig?.cancelIcon ? (\n iconConfig.cancelIcon({ onClick: onCancel })\n ) : (\n <IconWrapper\n size=\"small\"\n icon={<CloseOutlined style={{ color: theme.colorPrimary }} />}\n onClick={onCancel}\n />\n );\n\n return (\n <Space\n direction=\"horizontal\"\n size={12}\n style={{ display: 'flex', paddingRight: 6 }}\n className={classNames({ 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","_useState","useState","isEdit","setIsEdit","ctx","useContext","EditableFieldContext","originalValue","useRef","showEditableIcon","isCtx","undefined","editable","theme","fbaHooks","useThemeToken","useEffect","onClickEditIcon","Promise","$return","$error","resolve","then","$await_3","$If_1","call","this","$boundEx","bind","current","editIcon","onClick","_jsx","IconWrapper","size","icon","_EditOutlined","viewValue","_isString","_isNumber","isUndefinedOrNull","isValidElement","_jsxs","Space","children","console","warn","onCancel","onEditChange","target","_isArray","_value$target","_value","_value$target2","onOk","$await_4","$If_2","editRenderElement","type","_extends","confirmIcon","_CheckOutlined","style","color","colorPrimary","cancelIcon","_CloseOutlined","direction","display","paddingRight","className","_classNames"],"mappings":"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"}
1
+ {"version":3,"file":"editable-field-bcac193d.js","sources":["@flatbiz/antd/src/editable-field/editable-field.tsx"],"sourcesContent":["import { CheckOutlined, CloseOutlined, EditOutlined } from '@ant-design/icons';\nimport { isArray, isNumber, isString } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Space } from 'antd';\nimport { isValidElement, ReactElement, ReactNode, useContext, useEffect, useRef, useState } from 'react';\nimport { EditableFieldContext } from '../editable-field-provider/context';\nimport { fbaHooks } from '../fba-hooks';\nimport { IconWrapper } from '../icon-wrapper';\n\nimport './style.less';\n\nexport interface EditableFieldProps {\n className?: string;\n editRender: ReactElement | ((data: { value?: TAny; onChange?: (data?: TAny) => void }) => ReactElement);\n viewRender?: (value?: TAny) => ReactNode;\n value?: TAny;\n onChange?: (data?: TAny) => void;\n placeholderValue?: string;\n /** edit 区域是否铺满,showEditableIcon=false 无效 */\n isEditFull?: boolean;\n /** 是否可编辑 */\n editable?: boolean;\n /** 是否显示编辑、确认、取消操作icon,默认值:true */\n showEditableIcon?: boolean;\n /** 点击编辑按钮,操作前,返回reject不会开启编辑效果 */\n onClickEditIconPre?: (value?: TAny) => Promise<void>;\n onEditCallback?: (value?: TAny) => void;\n /** 点击确定按钮,操作前,返回reject不会执行确定功能 */\n onClickConfirmIconPre?: (value?: TAny, preValue?: TAny) => Promise<void>;\n onConfirmCallback?: (value?: TAny, preValue?: TAny) => void;\n /** 组件操作Icon配置 */\n iconConfig?: {\n editIcon?: (options: { onClick: () => void }) => ReactElement;\n confirmIcon?: (options: { onClick: () => void }) => ReactElement;\n cancelIcon?: (options: { onClick: () => void }) => ReactElement;\n };\n}\n\n/**\n * 可编辑字段组件\n * @param props\n * @returns\n * ```\n * 字段渲染有两种状态\n * 1. 只读:如果value类型为复杂格式,必须要通过【viewRender】来进行处理操作,转成简单数据类型\n * 2. 编辑:参数value的格式要求必须满足编辑组件入参value要求\n * 3. 可自定义编辑Icon、确定Icon、取消Icon\n * 4. 可拦截编辑操作、确定操作\n * ```\n */\nexport const EditableField = (props: EditableFieldProps) => {\n const {\n value,\n onChange,\n viewRender,\n placeholderValue = '-',\n editRender,\n isEditFull,\n onClickEditIconPre,\n onClickConfirmIconPre,\n iconConfig,\n onEditCallback,\n onConfirmCallback,\n } = props;\n const [isEdit, setIsEdit] = useState<boolean>(false);\n const ctx = useContext(EditableFieldContext);\n const originalValue = useRef<TAny>(value);\n\n const showEditableIcon = (function () {\n if (ctx.isCtx) {\n return props.showEditableIcon === undefined ? ctx.showEditableIcon : props.showEditableIcon;\n }\n return props.showEditableIcon === undefined ? true : props.showEditableIcon;\n })();\n\n const editable = (function () {\n if (ctx.isCtx) {\n return props.editable === undefined ? ctx.editable : props.editable;\n }\n return props.editable || false;\n })();\n\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n setIsEdit(editable);\n }, [editable]);\n\n const onClickEditIcon = async () => {\n if (onClickEditIconPre) {\n await onClickEditIconPre(value);\n }\n originalValue.current = value;\n setIsEdit(true);\n onEditCallback?.(value);\n };\n\n const editIcon = iconConfig?.editIcon ? (\n iconConfig.editIcon({ onClick: onClickEditIcon })\n ) : (\n <IconWrapper size=\"small\" icon={<EditOutlined />} onClick={onClickEditIcon} />\n );\n\n if (!isEdit) {\n const viewValue = (viewRender ? viewRender(props.value) : props.value) || placeholderValue;\n if (\n isString(viewValue) ||\n isNumber(viewValue) ||\n isUndefinedOrNull(viewValue) ||\n isValidElement(viewValue)\n ) {\n if (!showEditableIcon) {\n return viewValue;\n }\n return (\n <Space size={8}>\n <span>{viewValue}</span>\n {editIcon}\n </Space>\n );\n }\n console.warn('对象作为React子对象无效', viewValue);\n }\n\n const onCancel = () => {\n if (value !== originalValue.current) {\n onChange?.(originalValue.current);\n }\n setIsEdit(false);\n };\n\n const onEditChange = (value) => {\n let target = value;\n /** 为了处理 Input、TextArea等onChange取值 */\n if (typeof value === 'object' && value !== null && !isArray(value) && value.target) {\n const _value = value.target?.value;\n if (isString(_value) || isNumber(_value) || isUndefinedOrNull(_value)) {\n target = value.target?.value;\n }\n }\n onChange?.(target);\n };\n\n const onOk = async () => {\n if (onClickConfirmIconPre) {\n await onClickConfirmIconPre(value, originalValue.current);\n }\n setIsEdit(false);\n onConfirmCallback?.(value, originalValue.current);\n };\n\n const editRenderElement =\n typeof editRender === 'function' ? editRender({ value: value, onChange: onEditChange }) : editRender;\n\n if (!showEditableIcon) {\n return <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />;\n }\n\n const confirmIcon = iconConfig?.confirmIcon ? (\n iconConfig.confirmIcon({ onClick: onOk })\n ) : (\n <IconWrapper size=\"small\" icon={<CheckOutlined style={{ color: theme.colorPrimary }} />} onClick={onOk} />\n );\n\n const cancelIcon = iconConfig?.cancelIcon ? (\n iconConfig.cancelIcon({ onClick: onCancel })\n ) : (\n <IconWrapper\n size=\"small\"\n icon={<CloseOutlined style={{ color: theme.colorPrimary }} />}\n onClick={onCancel}\n />\n );\n\n return (\n <Space\n direction=\"horizontal\"\n size={12}\n style={{ display: 'flex', paddingRight: 6 }}\n className={classNames({ 'editable-field-full': isEditFull }, props.className)}\n >\n <editRenderElement.type value={value} onChange={onEditChange} {...editRenderElement.props} />\n {confirmIcon}\n {cancelIcon}\n </Space>\n );\n};\n"],"names":["EditableField","props","value","onChange","viewRender","_props$placeholderVal","placeholderValue","editRender","isEditFull","onClickEditIconPre","onClickConfirmIconPre","iconConfig","onEditCallback","onConfirmCallback","_useState","useState","isEdit","setIsEdit","ctx","useContext","EditableFieldContext","originalValue","useRef","showEditableIcon","isCtx","undefined","editable","theme","fbaHooks","useThemeToken","useEffect","onClickEditIcon","Promise","$return","$error","resolve","then","$await_3","$If_1","call","this","$boundEx","bind","current","editIcon","onClick","_jsx","IconWrapper","size","icon","_EditOutlined","viewValue","_isString","_isNumber","isUndefinedOrNull","isValidElement","_jsxs","Space","children","console","warn","onCancel","onEditChange","target","_isArray","_value$target","_value","_value$target2","onOk","$await_4","$If_2","editRenderElement","type","_extends","confirmIcon","_CheckOutlined","style","color","colorPrimary","cancelIcon","_CloseOutlined","direction","display","paddingRight","className","_classNames"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- export{E as EditableFieldProvider}from"../editable-field-provider-20963c3e.js";import"../context-25d0b686.js";import"react";import"react/jsx-runtime";
4
+ export{E as EditableFieldProvider}from"../editable-field-provider-3223073a.js";import"../context-25d0b686.js";import"react";import"react/jsx-runtime";
5
5
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
- import{E as e}from"./context-25d0b686.js";import{jsx as r}from"react/jsx-runtime";var t=function t(i){var a=i.editable===undefined?true:i.editable;var n=i.showEditableIcon===undefined?false:i.showEditableIcon;return r(e.Provider,{value:{editable:a,isCtx:true,showEditableIcon:n},children:i.children})};export{t as E};
3
- //# sourceMappingURL=editable-field-provider-20963c3e.js.map
2
+ import{E as e}from"./context-25d0b686.js";import{jsx as r}from"react/jsx-runtime";var t=function t(i){var a=i.editable===undefined?true:i.editable;var d=i.showEditableIcon===undefined?false:i.showEditableIcon;return r(e.Provider,{value:{editable:a,isCtx:true,showEditableIcon:d},children:i.children})};export{t as E};
3
+ //# sourceMappingURL=editable-field-provider-3223073a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editable-field-provider-20963c3e.js","sources":["@flatbiz/antd/src/editable-field-provider/editable-field-provider.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { EditableFieldContext } from './context';\n\nexport interface EditableFieldProviderProps {\n children: ReactElement;\n editable?: boolean;\n showEditableIcon?: boolean;\n}\n\n/**\n * EditableFieldProvider 控制内部使有的 EditableField 状态\n * @param props\n * @returns\n */\nexport const EditableFieldProvider = (props: EditableFieldProviderProps) => {\n const editable = props.editable === undefined ? true : props.editable;\n const showEditableIcon = props.showEditableIcon === undefined ? false : props.showEditableIcon;\n\n return (\n <EditableFieldContext.Provider value={{ editable, isCtx: true, showEditableIcon }}>\n {props.children}\n </EditableFieldContext.Provider>\n );\n};\n"],"names":["EditableFieldProvider","props","editable","undefined","showEditableIcon","_jsx","EditableFieldContext","Provider","value","isCtx","children"],"mappings":";sFAcaA,EAAwB,SAAxBA,EAAyBC,GACpC,IAAMC,EAAWD,EAAMC,WAAaC,UAAY,KAAOF,EAAMC,SAC7D,IAAME,EAAmBH,EAAMG,mBAAqBD,UAAY,MAAQF,EAAMG,iBAE9E,OACEC,EAACC,EAAqBC,SAAQ,CAACC,MAAO,CAAEN,SAAAA,EAAUO,MAAO,KAAML,iBAAAA,GAAmBM,SAC/ET,EAAMS,UAGb"}
1
+ {"version":3,"file":"editable-field-provider-3223073a.js","sources":["@flatbiz/antd/src/editable-field-provider/editable-field-provider.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { EditableFieldContext } from './context';\n\nexport interface EditableFieldProviderProps {\n children: ReactElement;\n editable?: boolean;\n showEditableIcon?: boolean;\n}\n\n/**\n * EditableFieldProvider 控制内部使有的 EditableField 状态\n * @param props\n * @returns\n */\nexport const EditableFieldProvider = (props: EditableFieldProviderProps) => {\n const editable = props.editable === undefined ? true : props.editable;\n const showEditableIcon = props.showEditableIcon === undefined ? false : props.showEditableIcon;\n\n return (\n <EditableFieldContext.Provider value={{ editable, isCtx: true, showEditableIcon }}>\n {props.children}\n </EditableFieldContext.Provider>\n );\n};\n"],"names":["EditableFieldProvider","props","editable","undefined","showEditableIcon","_jsx","EditableFieldContext","Provider","value","isCtx","children"],"mappings":";sFAcaA,EAAwB,SAAxBA,EAAyBC,GACpC,IAAMC,EAAWD,EAAMC,WAAaC,UAAY,KAAOF,EAAMC,SAC7D,IAAME,EAAmBH,EAAMG,mBAAqBD,UAAY,MAAQF,EAAMG,iBAE9E,OACEC,EAACC,EAAqBC,SAAQ,CAACC,MAAO,CAAEN,SAAAA,EAAUO,MAAO,KAAML,iBAAAA,GAAmBM,SAC/ET,EAAMS,UAGb"}
@@ -13,5 +13,5 @@ import './../input-wrapper/index.css';
13
13
  import './../input-text-area-wrapper/index.css';
14
14
  import './index.css';
15
15
  /*! @flatjs/forge MIT @flatbiz/antd */
16
- export{E as EditableTable}from"../editable-table-81eca425.js";import"@ant-design/icons/es/icons/PlusOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@flatbiz/utils";import"antd";import"react";import"../button-wrapper-125fce50.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-f9e11d02.js";import"../title-render-4f255df0.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/class-names";import"../date-picker-wrapper-ba650858.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper-fb15c592.js";import"../input-wrapper-b378eb5a.js";import"../selector-wrapper-91427b7d.js";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/lang/cjs/is-string";import"../request-status-03fc60e2.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper-c958fba0.js";import"../upload-wrapper-bd9ef592.js";import"@dimjs/lang/cjs/is-plain-object";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";
16
+ export{E as EditableTable}from"../editable-table-c17d96ed.js";import"@ant-design/icons/es/icons/PlusOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@flatbiz/utils";import"antd";import"react";import"../button-wrapper-125fce50.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-f9e11d02.js";import"../title-render-4f255df0.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/class-names";import"../date-picker-wrapper-ba650858.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper-fb15c592.js";import"../input-wrapper-b378eb5a.js";import"../selector-wrapper-773778c0.js";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/lang/cjs/is-string";import"../request-status-03fc60e2.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper-c958fba0.js";import"../upload-wrapper-bd9ef592.js";import"@dimjs/lang/cjs/is-plain-object";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";
17
17
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  /*! @flatjs/forge MIT @flatbiz/antd */
2
- import e from"@ant-design/icons/es/icons/PlusOutlined";import{a as n,_ as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{arrayField2LabelValue as a,toArray as l}from"@flatbiz/utils";import{Form as i,Checkbox as t,Tag as o,InputNumber as d,Radio as u,Space as m,Button as f,Input as c,Table as s}from"antd";import{useMemo as v,useState as p,useEffect as g,Fragment as b}from"react";import{B as C}from"./button-wrapper-125fce50.js";import{T as h}from"./title-render-4f255df0.js";import{isArray as I}from"@dimjs/lang/cjs/is-array";import{extend as w}from"@dimjs/utils/cjs/extend";import{classNames as x}from"@dimjs/utils/cjs/class-names";import{hooks as R}from"@wove/react/cjs/hooks";import{jsx as N,jsxs as y,Fragment as P}from"react/jsx-runtime";import{D as j}from"./date-picker-wrapper-ba650858.js";import{D as k}from"./date-range-picker-wrapper-fb15c592.js";import{I as F}from"./input-wrapper-b378eb5a.js";import{fbaHooks as L}from"./fba-hooks/index.js";import{S as T}from"./selector-wrapper-91427b7d.js";import{isBoolean as A}from"@dimjs/lang/cjs/is-boolean";import{isNumber as O}from"@dimjs/lang/cjs/is-number";import{isString as B}from"@dimjs/lang/cjs/is-string";import{I as S}from"./input-text-area-wrapper-c958fba0.js";import{U as V}from"./upload-wrapper-bd9ef592.js";import _ from"@ant-design/icons/es/icons/DeleteOutlined";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var W=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,d=a.render;var u=l.editableComptProps;var m=v((function(){if(i)return[];var e=I(r.value)?r.value:[];var n=u.options||[];if(!I(n)||n.length===0){return e.map((function(e){return{label:e,value:e}}))}var a=[];e.forEach((function(e){var r=n.find((function(n){return n.value===e}));a.push(r?r:{label:e,value:e})}));return a}),[i,u.options,r.value]);var f=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e)}));if(i){return N(t.Group,n({},u,{value:r.value,onChange:f}))}return N("span",{className:"editable-checkbox-group-view",children:d?d(r.value):m.map((function(e,n){return N(o,{color:"#1890ff",children:e.label},n)}))})};var D=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-checkbox-group-form-item",a==null?void 0:a.className),children:N(W,n({},r))}))};var E=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,className:x("editable-date-picker-wraper-form-item",l==null?void 0:l.className),children:N(j,n({allowClear:true},t.editableComptProps))}))};var z=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,t=a.render;var o=l.editableComptProps;var d=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null?void 0:o.onChange==null?void 0:o.onChange(e)}));var u=v((function(){var e=I(r.value)?r.value:[];if(i)return undefined;return e.join("~")}),[i,r.value]);if(i){return N(k,n({allowClear:true},o,{value:r.value,onChange:d}))}return N("span",{className:"editable-date-range-picker-view",children:t?t(r.value):u})};var M=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:N(z,n({},r))}))};var H=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,children:N(F,n({allowClear:true},t.editableComptProps))}))};var J=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,className:x("editable-input-number-form-item",l==null?void 0:l.className),children:N(d,n({},t.editableComptProps))}))};var K=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,t=a.render;var d=l.editableComptProps;var m=L.useThemeToken();var f=v((function(){if(i)return[];var e=r.value;var n=d.options||[];if(!I(n)||n.length===0){return e}var a=n.find((function(n){return n.value===e}));return(a==null?void 0:a.label)||e}),[i,d.options,r.value]);var c=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);d.onChange==null?void 0:d.onChange(e)}));if(i){return N(u.Group,n({},d,{value:r.value,onChange:c}))}return N("span",{className:"editable-radio-group-view",children:t?t(r.value):f?N(o,{color:m.colorPrimary,children:f}):null})};var U=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-radio-group-form-item",a==null?void 0:a.className),children:N(K,n({},r))}))};var X=function e(r){var l=r.fieldConfig,i=l.editableConfig,t=l.editable,d=l.render;var u=i.editableComptProps;var m=p([]),f=m[0],c=m[1];var s=p([]),v=s[0],C=s[1];var h=L.useThemeToken();g((function(){if(!t){var e=I(r.value)?r.value:r.value===undefined?[]:[r.value];if(f.length===0){C(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=f.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));C(n)}}),[t,u.fieldNames,r.value,f]);var w=R.useCallbackRef((function(e){c(a(e||[],u.fieldNames))}));var x=R.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e,n)}));if(t){return N(T,n({},u,{value:r.value,onChange:x,onSelectorListAllChange:w}))}return y(b,{children:[N("div",{style:{display:"none"},children:N(T,n({},u,{onSelectorListAllChange:w}))}),N("span",{className:"editable-selector-view",children:d?d(r.value,f):v.map((function(e,n){return N(o,{color:h.colorPrimary,children:e.label},n)}))})]})};var q=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:N(X,n({},r))}))};var Q=function e(n){var r,a;var l=v((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=B(n.value)||O(n.value)||A(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var i=((a=n.fieldConfig)==null?void 0:a.render==null?void 0:a.render(n.value))||l;return N("span",{children:i})};var Y=function e(n){return N(i.Item,{noStyle:true,name:n.name,children:N(Q,{name:n.name,fieldConfig:n.fieldConfig})})};var Z=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,children:N(S,n({},t.editableComptProps))}))};var $=["children"];var ee=function e(a){var l=a.fieldConfig,i=l.editableConfig,t=l.render,o=l.editable;var d=i.editableComptProps,u=d.children,m=r(d,$);if(o){return N(V,n({listType:"text"},m,{value:a.value,onChange:a.onChange,children:u}))}return N("div",{className:"upload-wrapper-selector-view",children:t?t(a.value):N(V,n({listType:"text"},m,{value:a.value,disabled:true}))})};var ne=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:N(ee,n({},r))}))};var re=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable;var t=G(i,r.tableRowIndex);var o=w({},r.fieldConfig,{editable:t});var d={name:r.name,fieldConfig:o};if((l==null?void 0:l.type)==="input"&&t){return N(H,n({},d))}else if((l==null?void 0:l.type)==="inputNumber"&&t){return N(J,n({},d))}else if((l==null?void 0:l.type)==="textArea"&&t){return N(Z,n({},d))}else if((l==null?void 0:l.type)==="datePickerWrapper"&&t){return N(E,n({},d))}else if((l==null?void 0:l.type)==="dateRangePickerWrapper"){return N(M,n({},d))}else if((l==null?void 0:l.type)==="selectorWrapper"){return N(q,n({},d))}else if((l==null?void 0:l.type)==="checkboxGroup"){return N(D,n({},d))}else if((l==null?void 0:l.type)==="radioGroup"){return N(U,n({},d))}else if((l==null?void 0:l.type)==="uploadWrapper"){return N(ne,n({},d))}else if((l==null?void 0:l.type)==="custom"){return l.editableComptProps({name:r.name,editable:t,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return N(Y,n({},d))};var ae=function e(n){var r=i.useFormInstance();var a=n.formListConfig,l=a.onFormListBeforeRender,t=a.editableConfigList,o=a.onFormListAfterRender,d=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,f=a.deleteOperateRender;return N(i.List,{name:n.name,children:function e(a,i){var c=i.add,s=i.remove;return y(P,{children:[l?l({tableRowIndex:n.tableRowIndex,add:c,get value(){return r.getFieldValue(n.completeName)}}):null,a.map((function(e,a){var l=t.find((function(e){return G(e.editable,n.tableRowIndex)}));var i=x("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!l});return y("div",{className:i,children:[d==null?void 0:d({add:c,remove:function e(){s(a)},formListItemIndex:a,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),y(m,{children:[t.map((function(r,a){return N(re,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},a)})),l?N(le,{deleteOperateRender:f,remove:function e(){s(a)},index:a}):undefined]}),u==null?void 0:u({add:c,formListItemIndex:a,tableRowIndex:n.tableRowIndex,remove:function e(){s(a)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},a)})),o?o({tableRowIndex:n.tableRowIndex,add:c,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var le=function e(n){return N(i.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):N(f,{type:"link",danger:true,icon:N(_,{}),onClick:n.remove,children:"删除"})})};var ie=function e(n){if(n.fieldConfig){if(I(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return N(ae,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return y(b,{children:[N(re,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?N(i.Item,{hidden:true,name:n.hiddenField.dataIndex,children:N(c,{})}):null]})}}return N(Y,{name:n.name})};var te=["fieldConfig","renderMiddleware","tooltip","title"];var oe=function a(t){var o;var d=v((function(){if(!t.columns)return[];return t.columns.map((function(e){var a=e.fieldConfig,i=e.renderMiddleware,o=e.tooltip,d=e.title,u=r(e,te);return n({title:typeof d==="string"&&!!o?N(h,{title:d,tooltip:o}):d,onCell:function e(){var n;return{valign:((n=t.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},u,{_render:function n(r,o,d){var u=[].concat(l(t.name),[o.name]);var m=e.dataIndex?[].concat(u,[e.dataIndex]):u;var f=i==null?void 0:i({name:m,tableRowIndex:o.name,operation:o.operation,tableRowName:u,index:d});if(f){return f}var c=typeof a==="function"?a({name:m,tableRowIndex:o.name,tableRowName:u}):a;return N(ie,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:m,fieldConfig:c,tableRowIndex:o.name,hiddenField:e.hiddenField})},get render(){return this._render},set render(e){this._render=e}})}))}),[t.columns,t.name,(o=t.tableProps)==null?void 0:o.cellVerticalAlign]);return N("div",{className:"editable-table",children:N(i.List,{name:t.name,rules:t.rules,children:function r(a,l){return y(b,{children:[t.onTableBeforeRender?t.onTableBeforeRender(l,a.length):null,N(s,n({scroll:{x:"max-content"},pagination:false,rowKey:"key"},t.tableProps,{dataSource:a.map((function(e){return n({},e,{operation:l})})),columns:d})),t.onTableAfterRender?t.onTableAfterRender(l,a.length):N(C,{type:"dashed",hidden:t.hiddenFooterBtn,onClick:function e(){return l.add()},block:true,icon:N(e,{}),style:{marginTop:15},children:"新增"})]})}})})};export{oe as E};
3
- //# sourceMappingURL=editable-table-81eca425.js.map
2
+ import e from"@ant-design/icons/es/icons/PlusOutlined";import{a as n,_ as r}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{arrayField2LabelValue as a,toArray as l}from"@flatbiz/utils";import{Form as i,Checkbox as t,Tag as o,InputNumber as d,Radio as u,Space as m,Button as f,Input as c,Table as s}from"antd";import{useMemo as v,useState as p,useEffect as g,Fragment as b}from"react";import{B as C}from"./button-wrapper-125fce50.js";import{T as h}from"./title-render-4f255df0.js";import{isArray as I}from"@dimjs/lang/cjs/is-array";import{extend as w}from"@dimjs/utils/cjs/extend";import{classNames as x}from"@dimjs/utils/cjs/class-names";import{hooks as R}from"@wove/react/cjs/hooks";import{jsx as N,jsxs as P,Fragment as y}from"react/jsx-runtime";import{D as j}from"./date-picker-wrapper-ba650858.js";import{D as k}from"./date-range-picker-wrapper-fb15c592.js";import{I as F}from"./input-wrapper-b378eb5a.js";import{fbaHooks as L}from"./fba-hooks/index.js";import{S as T}from"./selector-wrapper-773778c0.js";import{isBoolean as A}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as O}from"@dimjs/lang/cjs/is-string";import{I as S}from"./input-text-area-wrapper-c958fba0.js";import{U as V}from"./upload-wrapper-bd9ef592.js";import _ from"@ant-design/icons/es/icons/DeleteOutlined";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var W=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,d=a.render;var u=l.editableComptProps;var m=v((function(){if(i)return[];var e=I(r.value)?r.value:[];var n=u.options||[];if(!I(n)||n.length===0){return e.map((function(e){return{label:e,value:e}}))}var a=[];e.forEach((function(e){var r=n.find((function(n){return n.value===e}));a.push(r?r:{label:e,value:e})}));return a}),[i,u.options,r.value]);var f=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e)}));if(i){return N(t.Group,n({},u,{value:r.value,onChange:f}))}return N("span",{className:"editable-checkbox-group-view",children:d?d(r.value):m.map((function(e,n){return N(o,{color:"#1890ff",children:e.label},n)}))})};var D=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-checkbox-group-form-item",a==null?void 0:a.className),children:N(W,n({},r))}))};var E=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,className:x("editable-date-picker-wraper-form-item",l==null?void 0:l.className),children:N(j,n({allowClear:true},t.editableComptProps))}))};var z=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,t=a.render;var o=l.editableComptProps;var d=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null?void 0:o.onChange==null?void 0:o.onChange(e)}));var u=v((function(){var e=I(r.value)?r.value:[];if(i)return undefined;return e.join("~")}),[i,r.value]);if(i){return N(k,n({allowClear:true},o,{value:r.value,onChange:d}))}return N("span",{className:"editable-date-range-picker-view",children:t?t(r.value):u})};var M=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:N(z,n({},r))}))};var H=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,children:N(F,n({allowClear:true},t.editableComptProps))}))};var J=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,className:x("editable-input-number-form-item",l==null?void 0:l.className),children:N(d,n({},t.editableComptProps))}))};var K=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable,t=a.render;var d=l.editableComptProps;var m=L.useThemeToken();var f=v((function(){if(i)return[];var e=r.value;var n=d.options||[];if(!I(n)||n.length===0){return e}var a=n.find((function(n){return n.value===e}));return(a==null?void 0:a.label)||e}),[i,d.options,r.value]);var c=R.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);d.onChange==null?void 0:d.onChange(e)}));if(i){return N(u.Group,n({},d,{value:r.value,onChange:c}))}return N("span",{className:"editable-radio-group-view",children:t?t(r.value):f?N(o,{color:m.colorPrimary,children:f}):null})};var Q=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-radio-group-form-item",a==null?void 0:a.className),children:N(K,n({},r))}))};var U=function e(r){var l=r.fieldConfig,i=l.editableConfig,t=l.editable,d=l.render;var u=i.editableComptProps;var m=p([]),f=m[0],c=m[1];var s=p([]),v=s[0],C=s[1];var h=L.useThemeToken();g((function(){if(!t){var e=I(r.value)?r.value:r.value===undefined?[]:[r.value];if(f.length===0){C(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=f.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));C(n)}}),[t,u.fieldNames,r.value,f]);var w=R.useCallbackRef((function(e){c(a(e||[],u.fieldNames))}));var x=R.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e,n)}));if(t){return N(T,n({},u,{value:r.value,onChange:x,onSelectorListAllChange:w}))}return P(b,{children:[N("div",{style:{display:"none"},children:N(T,n({},u,{onSelectorListAllChange:w}))}),N("span",{className:"editable-selector-view",children:d?d(r.value,f):v.map((function(e,n){return N(o,{color:h.colorPrimary,children:e.label},n)}))})]})};var Z=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:N(U,n({},r))}))};var q=function e(n){var r,a;var l=v((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=O(n.value)||B(n.value)||A(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var i=((a=n.fieldConfig)==null?void 0:a.render==null?void 0:a.render(n.value))||l;return N("span",{children:i})};var X=function e(n){return N(i.Item,{noStyle:true,name:n.name,children:N(q,{name:n.name,fieldConfig:n.fieldConfig})})};var Y=function e(r){var a=r.fieldConfig,l=a.formItemProps,t=a.editableConfig;return N(i.Item,n({},l,{name:r.name,children:N(S,n({},t.editableComptProps))}))};var $=["children"];var ee=function e(a){var l=a.fieldConfig,i=l.editableConfig,t=l.render,o=l.editable;var d=i.editableComptProps,u=d.children,m=r(d,$);if(o){return N(V,n({listType:"text"},m,{value:a.value,onChange:a.onChange,children:u}))}return N("div",{className:"upload-wrapper-selector-view",children:t?t(a.value):N(V,n({listType:"text"},m,{value:a.value,disabled:true}))})};var ne=function e(r){var a=r.fieldConfig.formItemProps;return N(i.Item,n({},a,{name:r.name,className:x("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:N(ee,n({},r))}))};var re=function e(r){var a=r.fieldConfig,l=a.editableConfig,i=a.editable;var t=G(i,r.tableRowIndex);var o=w({},r.fieldConfig,{editable:t});var d={name:r.name,fieldConfig:o};if((l==null?void 0:l.type)==="input"&&t){return N(H,n({},d))}else if((l==null?void 0:l.type)==="inputNumber"&&t){return N(J,n({},d))}else if((l==null?void 0:l.type)==="textArea"&&t){return N(Y,n({},d))}else if((l==null?void 0:l.type)==="datePickerWrapper"&&t){return N(E,n({},d))}else if((l==null?void 0:l.type)==="dateRangePickerWrapper"){return N(M,n({},d))}else if((l==null?void 0:l.type)==="selectorWrapper"){return N(Z,n({},d))}else if((l==null?void 0:l.type)==="checkboxGroup"){return N(D,n({},d))}else if((l==null?void 0:l.type)==="radioGroup"){return N(Q,n({},d))}else if((l==null?void 0:l.type)==="uploadWrapper"){return N(ne,n({},d))}else if((l==null?void 0:l.type)==="custom"){return l.editableComptProps({name:r.name,editable:t,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return N(X,n({},d))};var ae=function e(n){var r=i.useFormInstance();var a=n.formListConfig,l=a.onFormListBeforeRender,t=a.editableConfigList,o=a.onFormListAfterRender,d=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,f=a.deleteOperateRender;return N(i.List,{name:n.name,children:function e(a,i){var c=i.add,s=i.remove;return P(y,{children:[l?l({tableRowIndex:n.tableRowIndex,add:c,get value(){return r.getFieldValue(n.completeName)}}):null,a.map((function(e,a){var l=t.find((function(e){return G(e.editable,n.tableRowIndex)}));var i=x("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!l});return P("div",{className:i,children:[d==null?void 0:d({add:c,remove:function e(){s(a)},formListItemIndex:a,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),P(m,{children:[t.map((function(r,a){return N(re,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},a)})),l?N(le,{deleteOperateRender:f,remove:function e(){s(a)},index:a}):undefined]}),u==null?void 0:u({add:c,formListItemIndex:a,tableRowIndex:n.tableRowIndex,remove:function e(){s(a)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},a)})),o?o({tableRowIndex:n.tableRowIndex,add:c,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var le=function e(n){return N(i.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):N(f,{type:"link",danger:true,icon:N(_,{}),onClick:n.remove,children:"删除"})})};var ie=function e(n){if(n.fieldConfig){if(I(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return N(ae,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return P(b,{children:[N(re,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?N(i.Item,{hidden:true,name:n.hiddenField.dataIndex,children:N(c,{})}):null]})}}return N(X,{name:n.name})};var te=["fieldConfig","renderMiddleware","tooltip","title"];var oe=function a(t){var o;var d=v((function(){if(!t.columns)return[];return t.columns.map((function(e){var a=e.fieldConfig,i=e.renderMiddleware,o=e.tooltip,d=e.title,u=r(e,te);return n({title:typeof d==="string"&&!!o?N(h,{title:d,tooltip:o}):d,onCell:function e(){var n;return{valign:((n=t.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},u,{_render:function n(r,o,d){var u=[].concat(l(t.name),[o.name]);var m=e.dataIndex?[].concat(u,[e.dataIndex]):u;var f=i==null?void 0:i({name:m,tableRowIndex:o.name,operation:o.operation,tableRowName:u,index:d});if(f){return f}var c=typeof a==="function"?a({name:m,tableRowIndex:o.name,tableRowName:u}):a;return N(ie,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:m,fieldConfig:c,tableRowIndex:o.name,hiddenField:e.hiddenField})},get render(){return this._render},set render(e){this._render=e}})}))}),[t.columns,t.name,(o=t.tableProps)==null?void 0:o.cellVerticalAlign]);return N("div",{className:"editable-table",children:N(i.List,{name:t.name,rules:t.rules,children:function r(a,l){return P(b,{children:[t.onTableBeforeRender?t.onTableBeforeRender(l,a.length):null,N(s,n({scroll:{x:"max-content"},pagination:false,rowKey:"key"},t.tableProps,{dataSource:a.map((function(e){return n({},e,{operation:l})})),columns:d})),t.onTableAfterRender?t.onTableAfterRender(l,a.length):N(C,{type:"dashed",hidden:t.hiddenFooterBtn,onClick:function e(){return l.add()},block:true,icon:N(e,{}),style:{marginTop:15},children:"新增"})]})}})})};export{oe as E};
3
+ //# sourceMappingURL=editable-table-c17d96ed.js.map