@flatbiz/antd 4.2.26 → 4.2.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/button-operate/index.js +1 -1
- package/esm/{button-operate-f09bce7f.js → button-operate-260750d4.js} +2 -2
- package/esm/{button-operate-f09bce7f.js.map → button-operate-260750d4.js.map} +1 -1
- package/esm/button-wrapper/index.js +1 -1
- package/esm/{button-wrapper-698da5b1.js → button-wrapper-6441881c.js} +2 -2
- package/esm/{button-wrapper-698da5b1.js.map → button-wrapper-6441881c.js.map} +1 -1
- package/esm/check-list/index.js +2 -1
- package/esm/check-list/index.js.map +1 -1
- package/esm/dialog-alert/index.js +1 -1
- package/esm/dialog-confirm/index.js +1 -1
- package/esm/{dialog-confirm-0ebd95e5.js → dialog-confirm-4b387b9b.js} +2 -2
- package/esm/{dialog-confirm-0ebd95e5.js.map → dialog-confirm-4b387b9b.js.map} +1 -1
- package/esm/dialog-drawer/index.js +1 -1
- package/esm/dialog-modal/index.js +1 -1
- package/esm/{dialog-modal-910b7cec.js → dialog-modal-8568caf2.js} +2 -2
- package/esm/{dialog-modal-910b7cec.js.map → dialog-modal-8568caf2.js.map} +1 -1
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/{dropdown-menu-wrapper-24932100.js → dropdown-menu-wrapper-bd05860d.js} +2 -2
- package/esm/dropdown-menu-wrapper-bd05860d.js.map +1 -0
- package/esm/dynamic-node/index.js +1 -1
- package/esm/dynamic-node-c7864af4.js +3 -0
- package/esm/dynamic-node-c7864af4.js.map +1 -0
- package/esm/easy-table/index.js +2 -2
- package/esm/easy-table/index.js.map +1 -1
- package/esm/fba-utils/index.js +1 -1
- package/esm/fba-utils-1e895394.js +3 -0
- package/esm/fba-utils-1e895394.js.map +1 -0
- package/esm/form-grid/index.js +1 -1
- package/esm/form-grid/index.js.map +1 -1
- package/esm/form-item-group/index.js +1 -1
- package/esm/form-item-hidden/index.css +0 -0
- package/esm/form-item-hidden/index.js +5 -0
- package/esm/form-item-hidden/index.js.map +1 -0
- package/esm/form-item-normalize/index.css +0 -0
- package/esm/form-item-normalize/index.js +5 -0
- package/esm/form-item-normalize/index.js.map +1 -0
- package/esm/label-value-layout/index.js.map +1 -1
- package/esm/local-loading/index.css +1 -1
- package/esm/local-loading/index.js +2 -1
- package/esm/local-loading/index.js.map +1 -1
- package/esm/permission/index.js +1 -1
- package/esm/rich-text-editor/index.js +1 -1
- package/esm/{rich-text-editor-e2ff6a3d.js → rich-text-editor-c8bac6d2.js} +2 -2
- package/esm/{rich-text-editor-e2ff6a3d.js.map → rich-text-editor-c8bac6d2.js.map} +1 -1
- package/esm/rich-text-viewer/index.js +1 -1
- package/esm/rich-text-viewer/index.js.map +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/index.d.ts +51 -4
- package/package.json +1 -1
- package/esm/attach-properties-to-component-9d9644cf.js +0 -3
- package/esm/attach-properties-to-component-9d9644cf.js.map +0 -1
- package/esm/dropdown-menu-wrapper-24932100.js.map +0 -1
- package/esm/dynamic-node-577ef8fd.js +0 -3
- package/esm/dynamic-node-577ef8fd.js.map +0 -1
- package/esm/fba-utils-a4c7d94d.js +0 -3
- package/esm/fba-utils-a4c7d94d.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: void;\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: () => {\n return (state) => {\n state.queryCondition = defaultState.queryCondition;\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, 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[];\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 使用 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\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\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 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 void message.error(error.message);\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 await actions.resetFilterCondition();\n form.resetFields();\n void onInnerRequest({\n ...getPaginationData(1, pageSize),\n ...props.initialValues,\n ...values,\n });\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 };\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 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=\"fba-easy-table-wrapper\">\n <div className={className}>{props.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}>{props.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 { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\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/**\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 *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate } = 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 = Children.toArray(children) as ReactElement[];\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 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.type['domTypeName'] === 'FormCol') {\n return item;\n }\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 >\n {props.isPure ? children : <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>}\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 已过去,请使用 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 } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\nimport { MiniSelect } from './select';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement | ReactElement[];\n /** 表格行 key 的取值 */\n rowKey: string;\n tableWrapperStyle?: CSSProperties;\n tableWrapperClassName?: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\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'] = (data, ...otherProps) => {\n if (tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (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 });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\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 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 pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\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 = 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 *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过去,请使用 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","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","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","$await_5","initialValues","getRequestParams","getFieldsValue","getEasyTableRef","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","current","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","value","tableList","tableTotal","foldKeys","children","_jsxs","Pagination","selectComponentClass","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","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","useEasyTable","ctx","resp","useRef","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","onChangePage","data","_onRequest","_len","arguments","Array","_key","apply","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
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[];\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 使用 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\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 void message.error(error.message);\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 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=\"fba-easy-table-wrapper\">\n <div className={className}>{props.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}>{props.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 { 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 formGridSize?: FormRowProps['gridSize'];\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 } = 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 = Children.toArray(children) as ReactElement[];\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 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 >\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 已过去,请使用 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 } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\nimport { MiniSelect } from './select';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement | ReactElement[];\n /** 表格行 key 的取值 */\n rowKey: string;\n tableWrapperStyle?: CSSProperties;\n tableWrapperClassName?: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\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'] = (data, ...otherProps) => {\n if (tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (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 });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\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 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 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 * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过去,请使用 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","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","value","tableList","tableTotal","foldKeys","children","_jsxs","Pagination","selectComponentClass","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","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","data","_onRequest","_len","arguments","Array","_key","apply","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
package/esm/fba-utils/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
export{f as fbaUtils}from"../fba-utils-
|
|
4
|
+
export{f as fbaUtils}from"../fba-utils-1e895394.js";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
+
import{isArray as r}from"@dimjs/lang/cjs/is-array";import{getGlobalData as t}from"@flatbiz/utils";var i=function i(){var e=t(),n=e.elemAclLimits;var a=r(n)?n:[];return a};var e=function r(t){if(!t)return true;var e=i();if(e.includes(t)){return true}return false};function n(r,t){var i=r;for(var e in t){if(t.hasOwnProperty(e)){i[e]=t[e]}}return i}var a={hasPermission:e,getPermissionList:i,attachPropertiesToComponent:n};export{a as f};
|
|
3
|
+
//# sourceMappingURL=fba-utils-1e895394.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fba-utils-1e895394.js","sources":["@flatbiz/antd/src/fba-utils/fba-utils.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { getGlobalData } from '@flatbiz/utils';\n\nconst getPermissionList = () => {\n const { elemAclLimits } = getGlobalData<{ elemAclLimits: string[] }>();\n const permissionList: string[] = isArray(elemAclLimits) ? elemAclLimits : [];\n return permissionList;\n};\n\nconst hasPermission = (name?: string) => {\n if (!name) return true;\n const permissionList = getPermissionList();\n if (permissionList.includes(name)) {\n return true;\n }\n return false;\n};\n\nfunction attachPropertiesToComponent<C, P extends Record<string, unknown>>(\n component: C,\n properties: P,\n): C & P {\n const ret = component as Record<string, unknown>;\n for (const key in properties) {\n if (properties.hasOwnProperty(key)) {\n ret[key] = properties[key];\n }\n }\n return ret as C & P;\n}\n\nexport const fbaUtils = {\n hasPermission,\n getPermissionList,\n attachPropertiesToComponent,\n};\n"],"names":["getPermissionList","_getGlobalData","getGlobalData","elemAclLimits","permissionList","_isArray","hasPermission","name","includes","attachPropertiesToComponent","component","properties","ret","key","hasOwnProperty","fbaUtils"],"mappings":";kGAGA,IAAMA,EAAoB,SAApBA,IACJ,IAAAC,EAA0BC,IAAlBC,EAAaF,EAAbE,cACR,IAAMC,EAA2BC,EAAQF,GAAiBA,EAAgB,GAC1E,OAAOC,CACT,EAEA,IAAME,EAAgB,SAAhBA,EAAiBC,GACrB,IAAKA,EAAM,OAAO,KAClB,IAAMH,EAAiBJ,IACvB,GAAII,EAAeI,SAASD,GAAO,CACjC,OAAO,IACT,CACA,OAAO,KACT,EAEA,SAASE,EACPC,EACAC,GAEA,IAAMC,EAAMF,EACZ,IAAK,IAAMG,KAAOF,EAAY,CAC5B,GAAIA,EAAWG,eAAeD,GAAM,CAClCD,EAAIC,GAAOF,EAAWE,EACxB,CACF,CACA,OAAOD,CACT,CAEO,IAAMG,EAAW,CACtBT,cAAAA,EACAN,kBAAAA,EACAS,4BAAAA"}
|
package/esm/form-grid/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{_ as r,a as e}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{Col as t,Form as n,Row as i,Space as o}from"antd";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{classNames as u}from"@dimjs/utils/cjs/class-names";import{useMemo as f,isValidElement as s,cloneElement as
|
|
4
|
+
import{_ as r,a as e}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{Col as t,Form as n,Row as i,Space as o}from"antd";import{jsx as a,jsxs as l}from"react/jsx-runtime";import{classNames as u}from"@dimjs/utils/cjs/class-names";import{useMemo as f,isValidElement as s,cloneElement as d}from"react";import{toArray as p,valueIsEqual as m}from"@flatbiz/utils";import{u as v}from"../use-responsive-point-21b8c601.js";var c=["forceAloneRow","hidden"];var h={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var g=function n(i){var o=i.forceAloneRow,l=i.hidden,u=r(i,c);var f=o?h:u;if(l)return null;return a(t,e({},f,{children:i.children}))};g["domTypeName"]="FormCol";var x=["leftList","rightList","rowColTotal","justify","forceAloneRow","hidden","leftSpaceProps","rightSpaceProps"];var L={xs:24,sm:24,md:24,lg:24,xl:24,xxl:24};var y=function s(d){var p=d,m=p.leftList,v=p.rightList,c=p.rowColTotal,h=p.justify,g=p.forceAloneRow,y=p.hidden,C=p.leftSpaceProps,w=p.rightSpaceProps,j=r(p,x);var T=(m||[]).filter(Boolean);var N=(v||[]).filter(Boolean);var F=T.length>0&&N.length>0;var G=g||F?L:{};var O=f((function(){if(h)return h;if(F)return"space-between";if(g)return"end";if(c===1)return"start";return"end"}),[g,F,h,c]);var P=u(d.className,"v-form-col-operate");if(y)return null;return a(t,e({},j,G,{className:P,children:a(n.Item,{children:l(i,{justify:O,children:[a(o,e({},C,{children:T.map((function(r){return r}))})),a(o,e({},w,{children:N==null?void 0:N.map((function(r){return r}))}))]})})}))};y["domTypeName"]="FormOperateCol";var C=function r(e,t){try{var n=[];var i=function r(t){var n=e[t];return{index:t,value:n>24?24:n}};var o=true;var a=[];var l=0;var u=0;while(o){var f=e[l];a.push(i(l));if(f>=24){n.push(a);a=[];u=0}else if(l===e.length-1){n.push(a)}else{u+=f;if(u>=24){n.push(a);a=[];u=0}}l=l+1;if(l>=e.length){o=false}}var s=n.find((function(r){return!!r.find((function(r){return r.index===t}))}))||[];var d=0;var p=0;s.forEach((function(r,e){if(r.index===t)p=e;if(r.index<t){d=d+r.value}}));if(d===24||d===0){s[p].value=24}else{s[p].value=24-d}return{gridList:n.reduce((function(r,e){return r.concat(e)})).map((function(r){return r.value})),gridGroupList:n}}catch(r){return{gridList:e,gridGroupList:[]}}};var w={xs:24,sm:12,md:12,lg:8,xl:8,xxl:6};var j={xs:24,sm:12,md:12,lg:6,xl:6,xxl:6};var T=function r(t){var n=v()||"md";var o=p(t.children).filter((function(r){if(!r||!s(r))return false;return m(r.type["domTypeName"],["FormOperateCol","FormCol"])}));var l=t.gridSize==="small"?j:w;var u=f((function(){var r=o.findIndex((function(r){return r.type["domTypeName"]==="FormOperateCol"}));if(n===undefined){return{gridList:[],gridGroupList:[]}}var e=o.map((function(e,t){var i,o;if(t===r)return 0;var a=(i=e.props)==null?void 0:i.span;return((o=e.props)==null?void 0:o[n])||a||l[n]}));if(r<0){return{gridList:e,gridGroupList:[]}}return C(e,r)}),[o,l,n]),c=u.gridList,h=u.gridGroupList;return a(i,e({},t,{children:o.map((function(r,t){var i;var o=e({},l,r.props);var a=e({key:t},o,(i={},i[n]=c[t]||o[n],i));if(r.type["domTypeName"]==="FormOperateCol"){a["rowColTotal"]=h.length}return d(r,a)}))}))};var N={Row:T,Col:g,OperateCol:y};export{N as FormGrid};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-grid/form-col.tsx","@flatbiz/antd/src/form-grid/form-operate-col.tsx","@flatbiz/antd/src/form-grid/utils.ts","@flatbiz/antd/src/form-grid/form-row.tsx","@flatbiz/antd/src/form-grid/index.ts"],"sourcesContent":["import { Col } from 'antd';\nimport { ReactNode } from 'react';\nconst forceAloneRowGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormColProps = {\n // 栅格占位格数,不考虑响应式\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n children?: ReactNode | ReactNode[];\n hidden?: boolean;\n};\n\n/**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\nexport const FormCol = (props: FormColProps) => {\n const { forceAloneRow, hidden, ...otherProps } = props;\n const forceGrid = forceAloneRow ? forceAloneRowGrid : otherProps;\n if (hidden) return null;\n return <Col {...forceGrid}>{props.children}</Col>;\n};\n\nFormCol['domTypeName'] = 'FormCol';\n","import { classNames } from '@dimjs/utils';\nimport { Col, Form, Row, RowProps, Space, SpaceProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\n\nconst fullGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormOperateColProps = {\n className?: string;\n leftList?: Array<ReactElement | null>;\n rightList?: Array<ReactElement | null>;\n // left、right 对齐方式,优先级最高\n justify?: RowProps['justify'];\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n hidden?: boolean;\n leftSpaceProps?: SpaceProps;\n rightSpaceProps?: SpaceProps;\n};\n\n/**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\nexport const FormOperateCol = (props: FormOperateColProps) => {\n const {\n leftList,\n rightList,\n rowColTotal,\n justify,\n forceAloneRow,\n hidden,\n leftSpaceProps,\n rightSpaceProps,\n ...otherProps\n } = props as FormOperateColProps & {\n rowColTotal: number;\n };\n const _leftList = (leftList || []).filter(Boolean);\n const _rightList = (rightList || []).filter(Boolean);\n const hasAll = _leftList.length > 0 && _rightList.length > 0;\n const forceGrid = forceAloneRow || hasAll ? fullGrid : {};\n\n const colJustify = useMemo(() => {\n if (justify) return justify;\n if (hasAll) return 'space-between';\n if (forceAloneRow) return 'end';\n if (rowColTotal === 1) return 'start';\n return 'end';\n }, [forceAloneRow, hasAll, justify, rowColTotal]);\n\n const className = classNames(props.className, 'v-form-col-operate');\n\n if (hidden) return null;\n\n return (\n <Col {...otherProps} {...forceGrid} className={className}>\n <Form.Item>\n <Row justify={colJustify}>\n <Space {...leftSpaceProps}>{_leftList.map((item) => item)}</Space>\n <Space {...rightSpaceProps}>{_rightList?.map((item) => item)}</Space>\n </Row>\n </Form.Item>\n </Col>\n );\n};\n\nFormOperateCol['domTypeName'] = 'FormOperateCol';\n","/**\n * 用于计算 operateCol 所占用网格数\n * ```\n * col网格数据 [8,8,8,12,24,0,8] => [[8,8,8],[12],[24],[0,8]],分组后计算operateCol所在行中剩余网格数\n * ```\n * @returns\n */\nexport const calculateOperateGrid = (gridList: number[], operateColIndex: number) => {\n try {\n const groupList = [] as { index: number; value: number }[][];\n const getGroupItem = function (index) {\n const value = gridList[index];\n return { index, value: value > 24 ? 24 : value };\n };\n let condition = true;\n let groupItemList = [] as { index: number; value: number }[];\n let currentIndex = 0;\n let total = 0;\n while (condition) {\n const currentValue = gridList[currentIndex];\n groupItemList.push(getGroupItem(currentIndex));\n if (currentValue >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n } else if (currentIndex === gridList.length - 1) {\n groupList.push(groupItemList);\n } else {\n total += currentValue;\n if (total >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n }\n }\n currentIndex = currentIndex + 1;\n if (currentIndex >= gridList.length) {\n condition = false;\n }\n }\n const hasOperateList =\n groupList.find((item) => !!item.find((temp) => temp.index === operateColIndex)) || [];\n let hasOperateTotal = 0;\n let hasOperateIndex = 0;\n hasOperateList.forEach((item, index) => {\n if (item.index === operateColIndex) hasOperateIndex = index;\n if (item.index < operateColIndex) {\n hasOperateTotal = hasOperateTotal + item.value;\n }\n });\n if (hasOperateTotal === 24 || hasOperateTotal === 0) {\n hasOperateList[hasOperateIndex].value = 24;\n } else {\n hasOperateList[hasOperateIndex].value = 24 - hasOperateTotal;\n }\n\n return {\n gridList: groupList.reduce((a, b) => a.concat(b)).map((temp) => temp.value),\n gridGroupList: groupList,\n };\n } catch (error) {\n return {\n gridList,\n gridGroupList: [],\n };\n }\n};\n","import { toArray, valueIsEqual } from '@flatbiz/utils';\nimport { Row, RowProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { calculateOperateGrid } from './utils';\n\nexport type FormRowProps = RowProps & {\n children?: ReactNode | ReactNode[];\n};\nconst defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n\n/**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\nexport const FormRow = (props: FormRowProps) => {\n const screenType = useResponsivePoint() || 'md';\n const childrenList = toArray<ReactElement>(props.children).filter((item) => {\n if (!item || !isValidElement(item)) return false;\n return valueIsEqual(item.type['domTypeName'], ['FormOperateCol', 'FormCol']);\n });\n const { gridList, gridGroupList } = useMemo(() => {\n const operateColIndex = childrenList.findIndex((item) => {\n return item.type['domTypeName'] === 'FormOperateCol';\n });\n if (screenType === undefined) {\n return { gridList: [] as number[], gridGroupList: [] };\n }\n const _currentGridList = childrenList.map((temp, index) => {\n if (index === operateColIndex) return 0;\n const span = temp.props?.span as number;\n return temp.props?.[screenType] || span || defaultGrid[screenType];\n });\n if (operateColIndex < 0) {\n return { gridList: _currentGridList, gridGroupList: [] };\n }\n return calculateOperateGrid(_currentGridList, operateColIndex);\n }, [childrenList, screenType]);\n\n // if (!screenType) return <Fragment>{props.children}</Fragment>;\n return (\n <Row {...props}>\n {childrenList.map((item, index) => {\n const itemProps = { ...defaultGrid, ...item.props };\n const newProps = {\n key: index,\n ...itemProps,\n [screenType]: gridList[index] || itemProps[screenType],\n };\n if (item.type['domTypeName'] === 'FormOperateCol') {\n newProps['rowColTotal'] = gridGroupList.length;\n }\n return cloneElement(item, newProps);\n })}\n </Row>\n );\n};\n","import { FormCol } from './form-col';\nimport { FormOperateCol } from './form-operate-col';\nimport { FormRow } from './form-row';\n\nexport const FormGrid = {\n /**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormCol、FormOperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormOperateCol\n */\n Row: FormRow,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\n Col: FormCol,\n /**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\n OperateCol: FormOperateCol,\n};\n"],"names":["forceAloneRowGrid","xs","sm","md","lg","xl","xxl","FormCol","props","forceAloneRow","hidden","otherProps","_objectWithoutPropertiesLoose","_excluded","forceGrid","_jsx","Col","_extends","children","fullGrid","FormOperateCol","_ref","leftList","rightList","rowColTotal","justify","leftSpaceProps","rightSpaceProps","_leftList","filter","Boolean","_rightList","hasAll","length","colJustify","useMemo","className","_classNames","Form","Item","_jsxs","Row","Space","map","item","calculateOperateGrid","gridList","operateColIndex","groupList","getGroupItem","index","value","condition","groupItemList","currentIndex","total","currentValue","push","hasOperateList","find","temp","hasOperateTotal","hasOperateIndex","forEach","reduce","a","b","concat","gridGroupList","error","defaultGrid","FormRow","screenType","useResponsivePoint","childrenList","toArray","isValidElement","valueIsEqual","type","_useMemo","findIndex","undefined","_currentGridList","_temp$props","_temp$props2","span","_extends2","itemProps","newProps","key","cloneElement","FormGrid","OperateCol"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-grid/form-col.tsx","@flatbiz/antd/src/form-grid/form-operate-col.tsx","@flatbiz/antd/src/form-grid/utils.ts","@flatbiz/antd/src/form-grid/form-row.tsx","@flatbiz/antd/src/form-grid/index.ts"],"sourcesContent":["import { Col } from 'antd';\nimport { ReactNode } from 'react';\nconst forceAloneRowGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormColProps = {\n // 栅格占位格数,不考虑响应式\n span?: number;\n /** 屏幕 < 576px */\n xs?: number;\n /** 屏幕 ≥ 576px */\n sm?: number;\n /** 屏幕 ≥ 768px */\n md?: number;\n /** 屏幕 ≥ 992px */\n lg?: number;\n /** 屏幕 ≥ 1200px */\n xl?: number;\n /** 屏幕 ≥ 1600px */\n xxl?: number;\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n children?: ReactNode | ReactNode[];\n hidden?: boolean;\n};\n\n/**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\nexport const FormCol = (props: FormColProps) => {\n const { forceAloneRow, hidden, ...otherProps } = props;\n const forceGrid = forceAloneRow ? forceAloneRowGrid : otherProps;\n if (hidden) return null;\n return <Col {...forceGrid}>{props.children}</Col>;\n};\n\nFormCol['domTypeName'] = 'FormCol';\n","import { classNames } from '@dimjs/utils';\nimport { Col, Form, Row, RowProps, Space, SpaceProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\n\nconst fullGrid = { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 };\nexport type FormOperateColProps = {\n className?: string;\n leftList?: Array<ReactElement | null>;\n rightList?: Array<ReactElement | null>;\n // left、right 对齐方式,优先级最高\n justify?: RowProps['justify'];\n /** 强制单独一行 */\n forceAloneRow?: boolean;\n hidden?: boolean;\n leftSpaceProps?: SpaceProps;\n rightSpaceProps?: SpaceProps;\n};\n\n/**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\nexport const FormOperateCol = (props: FormOperateColProps) => {\n const {\n leftList,\n rightList,\n rowColTotal,\n justify,\n forceAloneRow,\n hidden,\n leftSpaceProps,\n rightSpaceProps,\n ...otherProps\n } = props as FormOperateColProps & {\n rowColTotal: number;\n };\n const _leftList = (leftList || []).filter(Boolean);\n const _rightList = (rightList || []).filter(Boolean);\n const hasAll = _leftList.length > 0 && _rightList.length > 0;\n const forceGrid = forceAloneRow || hasAll ? fullGrid : {};\n\n const colJustify = useMemo(() => {\n if (justify) return justify;\n if (hasAll) return 'space-between';\n if (forceAloneRow) return 'end';\n if (rowColTotal === 1) return 'start';\n return 'end';\n }, [forceAloneRow, hasAll, justify, rowColTotal]);\n\n const className = classNames(props.className, 'v-form-col-operate');\n\n if (hidden) return null;\n\n return (\n <Col {...otherProps} {...forceGrid} className={className}>\n <Form.Item>\n <Row justify={colJustify}>\n <Space {...leftSpaceProps}>{_leftList.map((item) => item)}</Space>\n <Space {...rightSpaceProps}>{_rightList?.map((item) => item)}</Space>\n </Row>\n </Form.Item>\n </Col>\n );\n};\n\nFormOperateCol['domTypeName'] = 'FormOperateCol';\n","/**\n * 用于计算 operateCol 所占用网格数\n * ```\n * col网格数据 [8,8,8,12,24,0,8] => [[8,8,8],[12],[24],[0,8]],分组后计算operateCol所在行中剩余网格数\n * ```\n * @returns\n */\nexport const calculateOperateGrid = (gridList: number[], operateColIndex: number) => {\n try {\n const groupList = [] as { index: number; value: number }[][];\n const getGroupItem = function (index) {\n const value = gridList[index];\n return { index, value: value > 24 ? 24 : value };\n };\n let condition = true;\n let groupItemList = [] as { index: number; value: number }[];\n let currentIndex = 0;\n let total = 0;\n while (condition) {\n const currentValue = gridList[currentIndex];\n groupItemList.push(getGroupItem(currentIndex));\n if (currentValue >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n } else if (currentIndex === gridList.length - 1) {\n groupList.push(groupItemList);\n } else {\n total += currentValue;\n if (total >= 24) {\n groupList.push(groupItemList);\n groupItemList = [];\n total = 0;\n }\n }\n currentIndex = currentIndex + 1;\n if (currentIndex >= gridList.length) {\n condition = false;\n }\n }\n const hasOperateList =\n groupList.find((item) => !!item.find((temp) => temp.index === operateColIndex)) || [];\n let hasOperateTotal = 0;\n let hasOperateIndex = 0;\n hasOperateList.forEach((item, index) => {\n if (item.index === operateColIndex) hasOperateIndex = index;\n if (item.index < operateColIndex) {\n hasOperateTotal = hasOperateTotal + item.value;\n }\n });\n if (hasOperateTotal === 24 || hasOperateTotal === 0) {\n hasOperateList[hasOperateIndex].value = 24;\n } else {\n hasOperateList[hasOperateIndex].value = 24 - hasOperateTotal;\n }\n\n return {\n gridList: groupList.reduce((a, b) => a.concat(b)).map((temp) => temp.value),\n gridGroupList: groupList,\n };\n } catch (error) {\n return {\n gridList,\n gridGroupList: [],\n };\n }\n};\n","import { toArray, valueIsEqual } from '@flatbiz/utils';\nimport { Row, RowProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { useResponsivePoint } from '../fba-hooks/use-responsive-point';\nimport { calculateOperateGrid } from './utils';\n\nexport type FormRowProps = RowProps & {\n children?: ReactNode | ReactNode[];\n /**\n * defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * defaultSmallGrid = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n gridSize?: 'default' | 'small';\n};\nconst defaultGrid = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\nconst defaultSmallGrid = { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 };\n\n/**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormGrid.Col、FormGrid.OperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormGrid.OperateCol\n */\nexport const FormRow = (props: FormRowProps) => {\n const screenType = useResponsivePoint() || 'md';\n const childrenList = toArray<ReactElement>(props.children).filter((item) => {\n if (!item || !isValidElement(item)) return false;\n return valueIsEqual(item.type['domTypeName'], ['FormOperateCol', 'FormCol']);\n });\n const defaultGridSize = props.gridSize === 'small' ? defaultSmallGrid : defaultGrid;\n const { gridList, gridGroupList } = useMemo(() => {\n const operateColIndex = childrenList.findIndex((item) => {\n return item.type['domTypeName'] === 'FormOperateCol';\n });\n if (screenType === undefined) {\n return { gridList: [] as number[], gridGroupList: [] };\n }\n const _currentGridList = childrenList.map((temp, index) => {\n if (index === operateColIndex) return 0;\n const span = temp.props?.span as number;\n return temp.props?.[screenType] || span || defaultGridSize[screenType];\n });\n if (operateColIndex < 0) {\n return { gridList: _currentGridList, gridGroupList: [] };\n }\n return calculateOperateGrid(_currentGridList, operateColIndex);\n }, [childrenList, defaultGridSize, screenType]);\n\n // if (!screenType) return <Fragment>{props.children}</Fragment>;\n return (\n <Row {...props}>\n {childrenList.map((item, index) => {\n const itemProps = { ...defaultGridSize, ...item.props };\n const newProps = {\n key: index,\n ...itemProps,\n [screenType]: gridList[index] || itemProps[screenType],\n };\n if (item.type['domTypeName'] === 'FormOperateCol') {\n newProps['rowColTotal'] = gridGroupList.length;\n }\n return cloneElement(item, newProps);\n })}\n </Row>\n );\n};\n","import { FormCol } from './form-col';\nimport { FormOperateCol } from './form-operate-col';\nimport { FormRow } from './form-row';\n\nexport const FormGrid = {\n /**\n * FormItem网格响应式布局\n *```\n * 1. 应用场景:Form条件布局\n * 2. 子元素只能是 FormCol、FormOperateCol,其他会被忽略\n * 3. 所有子元素中只能存在一个 FormOperateCol\n */\n Row: FormRow,\n /**\n * 网格响应式布局,默认值:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n *```\n * 1. 设置 span 栅格占位格数,不考虑响应式\n * 2. grid 自定义响应式网格布局\n * xs: 屏幕 < 576px\n * sm: 屏幕 ≥ 576px\n * md: 屏幕 ≥ 768px\n * lg: 屏幕 ≥ 992px\n * xl: 屏幕 ≥ 1200px\n * xxl: 屏幕 ≥ 1600px\n * ```\n */\n Col: FormCol,\n /**\n * FormOperateCol 布局说明\n * ```\n * 1. 网格数以及位置为动态计算,不支持 xs、sm、md等\n * 2. 如果FormRow只有一行col,则OperateCol会在当前行剩余网格内居左对齐\n * 3. 如果同时设置 leftList、rightList,则此cell会强制独占一行,并左右布局\n * 4. 如果只设置 leftList、rightList其中一个,则会在最后一行剩余网格内居右对齐\n * ```\n */\n OperateCol: FormOperateCol,\n};\n"],"names":["forceAloneRowGrid","xs","sm","md","lg","xl","xxl","FormCol","props","forceAloneRow","hidden","otherProps","_objectWithoutPropertiesLoose","_excluded","forceGrid","_jsx","Col","_extends","children","fullGrid","FormOperateCol","_ref","leftList","rightList","rowColTotal","justify","leftSpaceProps","rightSpaceProps","_leftList","filter","Boolean","_rightList","hasAll","length","colJustify","useMemo","className","_classNames","Form","Item","_jsxs","Row","Space","map","item","calculateOperateGrid","gridList","operateColIndex","groupList","getGroupItem","index","value","condition","groupItemList","currentIndex","total","currentValue","push","hasOperateList","find","temp","hasOperateTotal","hasOperateIndex","forEach","reduce","a","b","concat","gridGroupList","error","defaultGrid","defaultSmallGrid","FormRow","screenType","useResponsivePoint","childrenList","toArray","isValidElement","valueIsEqual","type","defaultGridSize","gridSize","_useMemo","findIndex","undefined","_currentGridList","_temp$props","_temp$props2","span","_extends2","itemProps","newProps","key","cloneElement","FormGrid","OperateCol"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../flex-layout/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import{a as e}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{fbaHooks as t}from"../fba-hooks/index.js";import{jsxs as i,jsx as o}from"react/jsx-runtime";import{Form as l}from"antd";import{useMemo as a,isValidElement as n,cloneElement as s}from"react";import{F as m}from"../flex-layout-8d2b668b.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"@flatbiz/utils";var f=function l(a){var n;var s="form-item-group-card";var m=t.useThemeToken();var f={"--form-item-group-colorPrimary":m.colorPrimary};return i("div",{className:r(s,a.className),style:e({},f,a.style),children:[a.title?o("div",{className:r(s+"-title",(n={},n[s+"-title-sign"]=a.titleSign===true,n)),children:a.title}):null,a.children]})};f.defaultProps={titleSign:true};var u=function t(i){var f=a((function(){var r=[];var t=[];i.groupConfigList.forEach((function(i){if(i.before){t.push(n(i.before)?i.before:o("div",{className:"union-before-text",children:i.before}))}if(i.width){t.push(s(i.mainItem,{style:e({width:i.width},i.mainItem.props.style)}))}else{r.push(t.length);t.push(i.mainItem)}if(i.after){t.push(n(i.after)?i.after:o("div",{className:"union-after-text",children:i.after}))}}));return{flexElementList:t,fullIndex:r}}),[i.groupConfigList]);return o(l.Item,{label:i.label,className:r("form-item-group-horizontal-union",i.className),style:i.style,hidden:i.hidden,required:i.required,colon:i.colon,children:o(m,{direction:"horizontal",gap:i.gap===undefined?15:i.gap,fullIndex:f.fullIndex,style:i.flexLayoutStyle,children:f.flexElementList.map((function(e,r){return s(e,{key:r})}))})})};var
|
|
6
|
+
import{a as e}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{fbaHooks as t}from"../fba-hooks/index.js";import{jsxs as i,jsx as o}from"react/jsx-runtime";import{Form as l}from"antd";import{useMemo as a,isValidElement as n,cloneElement as s}from"react";import{F as m}from"../flex-layout-8d2b668b.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";import"@flatbiz/utils";var f=function l(a){var n;var s="form-item-group-card";var m=t.useThemeToken();var f={"--form-item-group-colorPrimary":m.colorPrimary};return i("div",{className:r(s,a.className),style:e({},f,a.style),children:[a.title?o("div",{className:r(s+"-title",(n={},n[s+"-title-sign"]=a.titleSign===true,n)),children:a.title}):null,a.children]})};f.defaultProps={titleSign:true};var u=function t(i){var f=a((function(){var r=[];var t=[];i.groupConfigList.forEach((function(i){if(i.before){t.push(n(i.before)?i.before:o("div",{className:"union-before-text",children:i.before}))}if(i.width){t.push(s(i.mainItem,{style:e({width:i.width},i.mainItem.props.style)}))}else{r.push(t.length);t.push(i.mainItem)}if(i.after){t.push(n(i.after)?i.after:o("div",{className:"union-after-text",children:i.after}))}}));return{flexElementList:t,fullIndex:r}}),[i.groupConfigList]);return o(l.Item,{label:i.label,className:r("form-item-group-horizontal-union",i.className),style:i.style,hidden:i.hidden,required:i.required,colon:i.colon,children:o(m,{direction:"horizontal",gap:i.gap===undefined?15:i.gap,fullIndex:f.fullIndex,style:i.flexLayoutStyle,children:f.flexElementList.map((function(e,r){return s(e,{key:r})}))})})};var c={HorizontalUnion:u,Card:f};export{c as FormItemGroup};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import './index.css';
|
|
3
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
+
import{Form as r}from"antd";import{jsx as e}from"react/jsx-runtime";var n=function n(t){return e(r.Item,{name:t.name,hidden:true,children:e("span",{})})};export{n as FormItemHidden};
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-hidden/form-item-hidden.tsx"],"sourcesContent":["import { Form } from 'antd';\n\nexport type FormItemHiddenProps = {\n name: string;\n};\n\nexport const FormItemHidden = (props: FormItemHiddenProps) => {\n return (\n <Form.Item name={props.name} hidden>\n <span></span>\n </Form.Item>\n );\n};\n"],"names":["FormItemHidden","props","_jsx","Form","Item","name","hidden","children"],"mappings":";wEAMaA,EAAiB,SAAjBA,EAAkBC,GAC7B,OACEC,EAACC,EAAKC,KAAI,CAACC,KAAMJ,EAAMI,KAAMC,OAAM,KAAAC,SACjCL,EAAA,OAAA,KAGN"}
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import './index.css';
|
|
3
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
+
import{a as r}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{useMemo as e}from"react";import{jsx as n}from"react/jsx-runtime";var l=function l(o){var a=o.value,i=o.onChange,t=o.inputNormalize,u=o.outputNormalize;var p=e((function(){if(t){return t(a)}return a}),[t,a]);var v=function r(e){for(var n=arguments.length,l=new Array(n>1?n-1:0),o=1;o<n;o++){l[o-1]=arguments[o]}if(u){i==null?void 0:i(u(e),l)}else{i==null?void 0:i(e,l)}};if(!o.children)return null;var f=o.children.type;var m=o.children.props;return n(f,r({},m,{value:p,onChange:v}))};export{l as FormItemNormalize};
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-normalize/form-item-normalize.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { ReactElement, useMemo } from 'react';\n\ntype FormItemNormalizeProps = {\n value?: TAny;\n onChange?: (value?: TAny, ...other) => void;\n /** value 序列化处理 */\n inputNormalize?: (value?: TAny) => TAny;\n /** onChange 参数序列化处理 */\n outputNormalize?: (value?: TAny) => TAny;\n children: ReactElement | null;\n};\n/**\n * 解决 Form.Item 输入 与 输出 不同问题\n * @param props\n * ```\n * 例如:\n * <Form.Item name=\"abc\">\n * <Select 多选 />\n * </Form.Item>\n * 1. 接口给的数据是'v1,v2',但Form.Item内部需要的是['v1', 'v2']\n * 2. Form.Item 内部返回是数据是['v1', 'v2'],但接口需要的是'v1,v2'\n *\n * 使用方法\n * <Form.Item name=\"abc\">\n * <FormItemNormalize inputNormalize={} outputNormalize={}>\n * <Select 多选 />\n * </FormItemNormalize>\n * </Form.Item>\n * ```\n */\nexport const FormItemNormalize = (props: FormItemNormalizeProps) => {\n const { value, onChange, inputNormalize, outputNormalize } = props;\n const valueNew = useMemo(() => {\n if (inputNormalize) {\n return inputNormalize(value);\n }\n return value;\n }, [inputNormalize, value]);\n\n const onChangeNew = (data, ...otherProps) => {\n if (outputNormalize) {\n onChange?.(outputNormalize(data), otherProps);\n } else {\n onChange?.(data, otherProps);\n }\n };\n\n if (!props.children) return null;\n\n const Node = props.children.type;\n const nodeProps = props.children.props;\n return <Node {...nodeProps} value={valueNew} onChange={onChangeNew} />;\n};\n"],"names":["FormItemNormalize","props","value","onChange","inputNormalize","outputNormalize","valueNew","useMemo","onChangeNew","data","_len","arguments","length","otherProps","Array","_key","children","Node","type","nodeProps","_jsx","_extends"],"mappings":";yIA+BaA,EAAoB,SAApBA,EAAqBC,GAChC,IAAQC,EAAqDD,EAArDC,MAAOC,EAA8CF,EAA9CE,SAAUC,EAAoCH,EAApCG,eAAgBC,EAAoBJ,EAApBI,gBACzC,IAAMC,EAAWC,GAAQ,WACvB,GAAIH,EAAgB,CAClB,OAAOA,EAAeF,EACxB,CACA,OAAOA,CACT,GAAG,CAACE,EAAgBF,IAEpB,IAAMM,EAAc,SAAdA,EAAeC,GAAwB,IAAAC,IAAAA,EAAAC,UAAAC,OAAfC,MAAUC,MAAAJ,EAAAA,EAAAA,OAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAA,CAAVF,EAAUE,EAAAJ,GAAAA,UAAAI,EAAA,CACtC,GAAIV,EAAiB,CACnBF,GAAQ,UAAA,EAARA,EAAWE,EAAgBI,GAAOI,EACpC,KAAO,CACLV,eAAAA,EAAWM,EAAMI,EACnB,GAGF,IAAKZ,EAAMe,SAAU,OAAO,KAE5B,IAAMC,EAAOhB,EAAMe,SAASE,KAC5B,IAAMC,EAAYlB,EAAMe,SAASf,MACjC,OAAOmB,EAACH,EAAII,KAAKF,EAAS,CAAEjB,MAAOI,EAAUH,SAAUK,IACzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: { label: string | ReactElement; value
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: { label: string | ReactElement; value?: string | number | ReactElement }[];\n labelWidth?: number;\n // 一行占几组,默认1\n column?: number;\n bordered?: boolean;\n};\n\nexport const LabelValueLayout = (props: LabelValueLayoutProps) => {\n const style = { '--v-label-value-layout-lWidth': `${props.labelWidth || 120}px` } as CSSProperties;\n const className = classNames('v-label-value-layout');\n return (\n <Descriptions\n column={props.column || 1}\n bordered={props.bordered}\n size=\"small\"\n className={className}\n style={style}\n >\n {props.options.map((item, index) => {\n return (\n <Descriptions.Item key={index} label={item.label}>\n {item.value}\n </Descriptions.Item>\n );\n })}\n </Descriptions>\n );\n};\n"],"names":["LabelValueLayout","props","style","labelWidth","className","_classNames","_jsx","Descriptions","column","bordered","size","children","options","map","item","index","Item","label","value"],"mappings":";0IAaaA,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAQ,CAAE,iCAAoCD,EAAME,YAAc,KAAG,MAC3E,IAAMC,EAAYC,EAAW,wBAC7B,OACEC,EAACC,EAAY,CACXC,OAAQP,EAAMO,QAAU,EACxBC,SAAUR,EAAMQ,SAChBC,KAAK,QACLN,UAAWA,EACXF,MAAOA,EAAMS,SAEZV,EAAMW,QAAQC,KAAI,SAACC,EAAMC,GACxB,OACET,EAACC,EAAaS,KAAI,CAAaC,MAAOH,EAAKG,MAAMN,SAC9CG,EAAKI,OADgBH,OAOlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.local-loading-error{padding:24px 16px!important}.local-loading-error .ant-result-icon{margin-bottom:15px!important}.local-loading-error .ant-result-icon .anticon{font-size:40px!important}.local-loading-error .ant-result-title{font-size:16px!important}.local-loading-error .ant-result-extra{margin-top:15px!important}
|
|
1
|
+
.local-loading-error{padding:24px 16px!important}.local-loading-error .ant-result-icon{margin-bottom:15px!important}.local-loading-error .ant-result-icon .anticon{font-size:40px!important}.local-loading-error .ant-result-title{font-size:16px!important}.local-loading-error .ant-result-extra{margin-top:15px!important}.local-loading-area{left:50%;position:absolute;top:50%}.fba-local-loading{overflow:hidden;position:relative}.local-loading-content{height:100%;overflow-y:auto}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
+
import './../dynamic-node/index.css';
|
|
2
3
|
import './../fba-hooks/index.css';
|
|
3
4
|
import './index.css';
|
|
4
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{
|
|
6
|
+
import{classNames as r}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as n}from"@dimjs/lang/cjs/is-deep-equal";import{a as t}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{toArray as e}from"@flatbiz/utils";import{Result as i,Button as a,Spin as o}from"antd";import{forwardRef as s,useState as c,useRef as u,useMemo as l,useImperativeHandle as f}from"react";import{d as m}from"../dynamic-node-c7864af4.js";import{fbaHooks as d}from"../fba-hooks/index.js";import{jsx as v,jsxs as p}from"react/jsx-runtime";import"react-dom/client";import"../dom-4d04aa64.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var h=s((function(s,h){var y=s.serviceConfig,g=s.isAsync,j=s.children,b=s.errorRender;var P=c("init"),C=P[0],N=P[1];var x=c(),k=x[0],H=x[1];var R=s.loadingHeight===undefined?100:s.loadingHeight;var q=u(null);var w=u();var E=d.usePrevious(y.params);var A=l((function(){var r;if(!y.params||e(y.invalidParamKey).length===0){return y.params}var n=t({},y.params);(r=y.invalidParamKey)==null?void 0:r.forEach((function(r){n[r]=undefined}));return n}),[y]);var K=function r(){w.current=m.append({content:v(o,{spinning:true}),getContainer:function r(){return q.current}}).elementId};var T=function r(){m.remove(w.current)};var z=function r(){return new Promise((function(r,n){var t=function(r){return function(t){try{T();return r&&r.call(this,t)}catch(r){return n(r)}}.bind(this)}.bind(this);var e;var i=function(){try{return r()}catch(r){return n(r)}};var a=function(r){try{N("error");return t(i)()}catch(r){return t(n)(r)}};try{K();return Promise.resolve(y.onRequest(A)).then((function(r){try{e=r;N("success");H(e);return t(i)()}catch(r){return a(r)}}),a)}catch(r){a()}}))};d.useEffectCustomAsync(z,[]);d.useEffectCustom((function(){if(E){if(!n(y.params,E)){void B()}}}),[E,y.params]);var B=function r(){return new Promise((function(r,n){var t=function(r){return function(t){try{T();return r&&r.call(this,t)}catch(r){return n(r)}}.bind(this)}.bind(this);var e;var i=function(){try{return r()}catch(r){return n(r)}};var a=function(r){try{N("error");return t(i)()}catch(r){return t(n)(r)}};try{K();return Promise.resolve(y.onRequest(A)).then((function(r){try{e=r;H(e);N("success");return t(i)()}catch(r){return a(r)}}),a)}catch(r){a()}}))};f(h,(function(){return{onRefresh:B}}));if(C==="error"){if(b){return b(k)}return v(i,{status:"error",className:"local-loading-error",subTitle:(k==null?void 0:k.message)||"数据处理异常",style:{minHeight:R},extra:[v(a,{type:"primary",onClick:function r(){N("init");setTimeout((function(){void z()}),100)},children:"重新获取"},"console")]})}if(C!=="success"&&!g){return v("div",{className:"fba-local-loading-process",style:{height:R,display:"flex",justifyContent:"center",position:"relative",backgroundColor:"#fff"},children:v("div",{className:"local-loading-area",ref:q})})}return p("div",{className:r("fba-local-loading",s.className),style:s.style,children:[v("div",{className:"local-loading-area",ref:q}),v("div",{className:"local-loading-content",children:j(k)})]})}));export{h as LocalLoading};
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/local-loading.tsx"],"sourcesContent":["import { isDeepEqual } from '@dimjs/lang';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/local-loading.tsx"],"sourcesContent":["import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { dynamicNode } from '../dynamic-node';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TPlainObject>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number;\n className?: string;\n style?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: () => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoading = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const loadingKeyRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig.params || toArray(serviceConfig.invalidParamKey).length === 0) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const openLoading = () => {\n loadingKeyRef.current = dynamicNode.append({\n content: <Spin spinning={true}></Spin>,\n getContainer: () => {\n return rootRef.current as HTMLElement;\n },\n }).elementId;\n };\n\n const closeLoading = () => {\n dynamicNode.remove(loadingKeyRef.current);\n };\n\n const onInitRequest = async () => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest(serviceParams);\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n setStatus('error');\n } finally {\n closeLoading();\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onRefresh();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n const onRefresh = async () => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest(serviceParams);\n setRespData(respData);\n setStatus('success');\n } catch (error) {\n setStatus('error');\n } finally {\n closeLoading();\n }\n };\n\n useImperativeHandle(ref, () => {\n return { onRefresh };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <Result\n status=\"error\"\n className=\"local-loading-error\"\n subTitle={(respData?.message as string) || '数据处理异常'}\n style={{ minHeight: loadingHeight }}\n extra={[\n <Button\n type=\"primary\"\n key=\"console\"\n onClick={() => {\n setStatus('init');\n setTimeout(() => {\n void onInitRequest();\n }, 100);\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className=\"fba-local-loading-process\"\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: '#fff',\n }}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n </div>\n );\n }\n\n return (\n <div className={classNames('fba-local-loading', props.className)} style={props.style}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <div className=\"local-loading-content\">{children(respData)}</div>\n </div>\n );\n});\n"],"names":["LocalLoading","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","loadingKeyRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","openLoading","current","dynamicNode","append","content","_jsx","Spin","spinning","getContainer","elementId","closeLoading","remove","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","resolve","onRequest","then","$await_3","useEffectCustomAsync","useEffectCustom","_isDeepEqual","onRefresh","$Try_2_Finally","$Try_2_Exit","$Try_2_Value","_respData2","$Try_2_Post","$Try_2_Catch","$await_4","useImperativeHandle","Result","className","subTitle","message","style","minHeight","extra","Button","type","onClick","setTimeout","height","display","justifyContent","position","backgroundColor","_jsxs","_classNames"],"mappings":"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"}
|
package/esm/permission/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-utils/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{Fragment as r}from"react";import{f as i}from"../fba-utils-
|
|
5
|
+
import{Fragment as r}from"react";import{f as i}from"../fba-utils-1e895394.js";import{jsx as t}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";var e=function e(m){var n=i.getPermissionList();if(!m.name||n.includes(m.name)){return t(r,{children:m.children})}return null};export{e as Permission};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -3,5 +3,5 @@ import './../dynamic-node/index.css';
|
|
|
3
3
|
import './../fba-hooks/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
export{R as RichTextEditor}from"../rich-text-editor-
|
|
6
|
+
export{R as RichTextEditor}from"../rich-text-editor-c8bac6d2.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@tinymce/tinymce-react";import"ahooks";import"react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"antd";import"../dynamic-node-c7864af4.js";import"react-dom/client";import"../dom-4d04aa64.js";import"react/jsx-runtime";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{_ as e,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{Editor as i}from"@tinymce/tinymce-react";import{useKeyPress as o}from"ahooks";import{Fragment as a,useRef as l,useState as s}from"react";import c from"@ant-design/icons/es/icons/PlusCircleOutlined";import{Image as u}from"antd";import{d as m}from"./dynamic-node-
|
|
3
|
-
//# sourceMappingURL=rich-text-editor-
|
|
2
|
+
import{_ as e,a as n}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{Editor as i}from"@tinymce/tinymce-react";import{useKeyPress as o}from"ahooks";import{Fragment as a,useRef as l,useState as s}from"react";import c from"@ant-design/icons/es/icons/PlusCircleOutlined";import{Image as u}from"antd";import{d as m}from"./dynamic-node-c7864af4.js";import{fbaHooks as d}from"./fba-hooks/index.js";import{jsx as f,Fragment as v,jsxs as p}from"react/jsx-runtime";var g=function e(n){var t=n.visible,r=n.url;d.useEffectCustom((function(){if(t){m.append({content:f(c,{onClick:n.close,className:"preview-image-popup-close",twoToneColor:"#1890ff"})})}else{m.remove()}}),[t]);if(!r)return f(v,{});return f(a,{children:f(u,{style:{left:"100px"},preview:{className:"preview-image-popup",maskStyle:{backgroundColor:"rgba(0,0,0,0.85)"},visible:t,src:r,onVisibleChange:function e(){n.close()}}},r)})};var h=["onUploadImage","onChange","className"];var y=function a(c){var u,m,d,v;var y=c.onUploadImage,b=c.onChange,C=c.className,k=e(c,h);var x=l(null);var w=s(""),_=w[0],j=w[1];var E=((u=c.init)==null?void 0:u.img_ratio)||[{min:0,max:1e3,ratio:.5},{min:1e3,ratio:.3}];o((function(){return true}),(function(e){try{if(e.type==="keyup"&&e.key==="Escape"){var n;var t=(n=x.current)==null?void 0:n.editorContainer.classList.contains("tox-fullscreen");if(t){var r;(r=x.current)==null?void 0:r.editorCommands.execCommand("mceFullScreen")}}}catch(e){}}),{events:["keydown","keyup"]});var I=r.useCallbackRef((function(e,n){try{if(e.keyCode==27){var t;var r=(t=x.current)==null?void 0:t.editorContainer.classList.contains("tox-fullscreen");if(r){var i;(i=x.current)==null?void 0:i.editorCommands.execCommand("mceFullScreen")}}}catch(e){}c.onKeyDown==null?void 0:c.onKeyDown(e,n)}));var N=r.useCallbackRef((function(e,n){x.current=n;try{var t,r;(t=n.iframeElement)==null?void 0:(r=t.contentDocument)==null?void 0:r.addEventListener("click",(function(e){var n;if(c.imgPreview&&((n=e.target)==null?void 0:n["tagName"])==="IMG"){j(e.target["src"])}}),true)}catch(e){}k.onInit==null?void 0:k.onInit(e,n)}));var P=r.useCallbackRef((function(e,n){x.current=n;k.onEditorChange==null?void 0:k.onEditorChange(e,n);b==null?void 0:b(e)}));var R="https://file.40017.cn/tcsk/tinymce@6.4.1";var S=function e(n){if(E.length===0)return 1;for(var t=0;t<E.length;t++){var r=E[t];if(r.max){if(n>=r.min&&n<=r.max)return r.ratio}else{if(n>=r.min)return r.ratio}}return 1};var z=r.useCallbackRef((function(e,n){try{var t=n.node.children||[];if(t.length===1&&t[0].nodeName==="IMG"){t[0].setAttribute("style","display:none");var r=document.createElement("img");r.src=t[0].getAttribute("src");console.log("img.src",r.src);r.onload=function(){var n=S(r.width);e.execCommand("mceInsertContent",true,'<img src="'+r.src+'" width="'+r.width*n+'" height="'+r.height*n+'" />')}}}catch(e){}}));return p("div",{className:t("v-editor-wrapper",C),children:[f(i,n({tinymceScriptSrc:R+"/tinymce.min.js"},k,{onInit:N,onKeyDown:I,onEditorChange:P,init:n({promotion:false,language:"zh-Hans",height:500,paste_data_images:y?true:false,paste_postprocess:z,autosave_ask_before_unload:false,base_url:R,autoresize_bottom_margin:0,images_upload_handler:function e(n){return new Promise((function(e,t){var r,i,o;var a=function(n){try{return e(Promise.reject((n==null?void 0:n.message)||"图片上传异常"))}catch(e){return t(e)}};try{r=n.blob();i=new File([r],r.name,{type:r.type});return Promise.resolve(y==null?void 0:y(i)).then((function(n){try{o=n;return e(Promise.resolve(o))}catch(e){return a(e)}}),a)}catch(e){a(e)}}))},plugins:"lists link image advlist charmap preview fullscreen code table help codesample "+(((m=c.init)==null?void 0:m.plugins_append)||""),toolbar:"undo redo fullscreen preview | bold italic underline strikethrough |"+"fontsize blocks |"+"forecolor backcolor removeformat |"+"numlist bullist advlist |"+"alignleft aligncenter alignright alignjustify |"+"outdent indent |"+"hr image link code codesample |"+(((d=c.init)==null?void 0:d.toolbar_append)||""),font_size_formats:"8px 10px 12px 14px 16px 18px 24px 36px 48px"},c.init,{content_style:"img {max-width:100%;} table{width:100%} "+((v=c.init)==null?void 0:v.content_style)})})),f(g,{visible:!!_,url:_,close:function e(){j("")}})]})};export{y as R};
|
|
3
|
+
//# sourceMappingURL=rich-text-editor-c8bac6d2.js.map
|