@flatbiz/antd 5.0.44 → 5.0.45
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/dist/_commonjsHelpers-a3yINl_6.js +8 -0
- package/dist/_commonjsHelpers-a3yINl_6.js.map +1 -0
- package/dist/amount-fen-input-DI4mxLeO.js.map +1 -1
- package/dist/anchor-steps-CqqmN9Pf.js.map +1 -1
- package/dist/bootstrap/index.d.ts +1 -1
- package/dist/bootstrap-DtZAiLNG.js.map +1 -1
- package/dist/box-grid/index.js.map +1 -1
- package/dist/button-operate/index.d.ts +1 -1
- package/dist/button-operate-BIWXX7to.js.map +1 -1
- package/dist/button-wrapper-DezyMqPx.js.map +1 -1
- package/dist/card-layout-P-Qb5pCT.js.map +1 -1
- package/dist/cascader-wrapper-CMYrmR6L.js.map +1 -1
- package/dist/cell-render-1gunNiMm.js.map +1 -1
- package/dist/center-DgQUmnwe.js.map +1 -1
- package/dist/check-list/index.js.map +1 -1
- package/dist/checkbox-wrapper-BOIS5kIz.js.map +1 -1
- package/dist/color-picker-D8Tiiut0.js.map +1 -1
- package/dist/config-provider-wrapper/index.d.ts +1 -1
- package/dist/config-provider-wrapper-C72dPUJZ.js.map +1 -1
- package/dist/content-B5Twifti.js.map +1 -1
- package/dist/context-HuMVSP3b.js.map +1 -1
- package/dist/copy-BSlIwnwz.js.map +1 -1
- package/dist/css-node-hover-2asP-4iL.js.map +1 -1
- package/dist/data-render-U7RkK7OY.js.map +1 -1
- package/dist/date-picker-wrapper/index.d.ts +1 -1
- package/dist/date-picker-wrapper-D0_g483p.js.map +1 -1
- package/dist/date-range-picker-wrapper-BYOsf0I5.js.map +1 -1
- package/dist/date-range-picker-wrapper-form-item-C_ClxVlZ.js.map +1 -1
- package/dist/delete-node-BXaXf6fO.js.map +1 -1
- package/dist/dependencies-BPs1pFvo.js.map +1 -1
- package/dist/dialog-alert/index.d.ts +1 -1
- package/dist/dialog-alert-CDsZqePQ.js.map +1 -1
- package/dist/dialog-confirm/index.d.ts +1 -1
- package/dist/dialog-confirm-Dc6IMRm7.js.map +1 -1
- package/dist/dialog-drag-modal/index.js +2 -2
- package/dist/dialog-drawer/index.d.ts +1 -1
- package/dist/dialog-drawer-JEjoR512.js.map +1 -1
- package/dist/dialog-loading-Bm6n4_3R.js.map +1 -1
- package/dist/dialog-modal/index.d.ts +1 -1
- package/dist/dialog-modal-DLWmy5GR.js.map +1 -1
- package/dist/dom-DJxTwF3J.js.map +1 -1
- package/dist/{drag-Dxvr0bSy.js → drag-D891d5m3.js} +3 -2
- package/dist/drag-D891d5m3.js.map +1 -0
- package/dist/{drag-CGxDk1SF.js → drag-DT_ZyPqJ.js} +2 -2
- package/dist/{drag-CGxDk1SF.js.map → drag-DT_ZyPqJ.js.map} +1 -1
- package/dist/drag-collapse-D2mbeDvD.js.map +1 -1
- package/dist/drag-collapse-DhZ1V5P6.js.map +1 -1
- package/dist/drag-collapse-form-list/index.d.ts +1 -1
- package/dist/drag-editable-card/index.d.ts +1 -1
- package/dist/drag-editable-table/index.d.ts +6 -6
- package/dist/drag-editable-table/index.js +5 -5
- package/dist/drag-editable-table-pro/index.d.ts +2 -2
- package/dist/drag-editable-table-pro/index.js +1 -1
- package/dist/drag-form-list/index.d.ts +1 -1
- package/dist/drag-form-list-BrIW06Ex.js.map +1 -1
- package/dist/{drag-modal-C3Azghu3.js → drag-modal-Y41HH12_.js} +161 -204
- package/dist/drag-modal-Y41HH12_.js.map +1 -0
- package/dist/drag-table-Dk8HllSn.js.map +1 -1
- package/dist/{drawer-6Cq1mcQa.js → drawer-BfMemZA8.js} +2 -2
- package/dist/{drawer-6Cq1mcQa.js.map → drawer-BfMemZA8.js.map} +1 -1
- package/dist/dropdown-menu-wrapper/index.d.ts +1 -1
- package/dist/dropdown-menu-wrapper-BE3Liqoh.js.map +1 -1
- package/dist/dynamic-node-B_An5owN.js.map +1 -1
- package/dist/easy-table/index.d.ts +1 -1
- package/dist/easy-table/index.js.map +1 -1
- package/dist/editable-card/index.d.ts +1 -1
- package/dist/editable-card-tyOSUivy.js.map +1 -1
- package/dist/editable-card-zY9wCgE6.js.map +1 -1
- package/dist/editable-field-DBiVpCRE.js.map +1 -1
- package/dist/editable-table/index.d.ts +6 -6
- package/dist/editable-table/index.js +4 -4
- package/dist/{editable-table-Ckl_Q1fk.js → editable-table-0f-H4DHt.js} +2 -2
- package/dist/editable-table-0f-H4DHt.js.map +1 -0
- package/dist/editable-table-pro/index.d.ts +2 -2
- package/dist/editable-table-pro-B12YG7J_.js.map +1 -1
- package/dist/editor-C_Wf256R.js.map +1 -1
- package/dist/editor-CncecOdy.js.map +1 -1
- package/dist/editor-CxXSgnLP.js.map +1 -1
- package/dist/editor-Dhs7idH7.js.map +1 -1
- package/dist/editor-i79rPG9r.js.map +1 -1
- package/dist/error-boundary-D6RX4EQZ.js.map +1 -1
- package/dist/fba-app-Ew89Y7th.js.map +1 -1
- package/dist/fba-hooks/index.js.map +1 -1
- package/dist/fba-utils-okhb5eSJ.js.map +1 -1
- package/dist/file-export-B3RBS7Wl.js.map +1 -1
- package/dist/file-import-pbdSC5lZ.js.map +1 -1
- package/dist/file-select/index.d.ts +1 -1
- package/dist/file-select-BFrXFyKW.js.map +1 -1
- package/dist/flex-layout-BGtMe7zr.js.map +1 -1
- package/dist/form-ByFljQr9.js.map +1 -1
- package/dist/form-grid/index.js.map +1 -1
- package/dist/form-item-group/index.js.map +1 -1
- package/dist/form-item-hidden-BtQvJEx7.js.map +1 -1
- package/dist/form-item-text-bxy5q8tw.js.map +1 -1
- package/dist/form-item-wrapper-Ci7-5IKi.js.map +1 -1
- package/dist/form-list-wrapper/index.d.ts +1 -1
- package/dist/form-list-wrapper-BTSuq_pI.js.map +1 -1
- package/dist/form-wrapper-DBDMN0mN.js.map +1 -1
- package/dist/full-screen/index.js.map +1 -1
- package/dist/gap-5v_ndf2v.js.map +1 -1
- package/dist/icon-wrapper-DE97bI14.js.map +1 -1
- package/dist/in-view-XeG6cIRO.js.map +1 -1
- package/dist/{index-DSPRsDId.js → index-C6y8q2MK.js} +2 -2
- package/dist/{index-DSPRsDId.js.map → index-C6y8q2MK.js.map} +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +9 -9
- package/dist/input-search-wrapper/index.d.ts +1 -1
- package/dist/input-search-wrapper-dVFSFf3t.js.map +1 -1
- package/dist/input-text-area-wrapper/index.d.ts +1 -1
- package/dist/input-text-area-wrapper-CRi9fWSJ.js.map +1 -1
- package/dist/input-wrapper-hEJP2UIk.js.map +1 -1
- package/dist/label-value-layout-CbKTtTXJ.js.map +1 -1
- package/dist/{label-value-CcUdtnY1.js → label-value-o1pOZ2M6.js} +9 -1
- package/dist/label-value-o1pOZ2M6.js.map +1 -0
- package/dist/label-value-render/index.d.ts +3 -2
- package/dist/label-value-render/index.js +1 -1
- package/dist/layout-2woF_D6T.js.map +1 -1
- package/dist/local-loading/index.js.map +1 -1
- package/dist/mention-editor-zgAlQ8Cx.js.map +1 -1
- package/dist/mentions-950t_JC_.js.map +1 -1
- package/dist/modal-action-kQ60nGCG.js.map +1 -1
- package/dist/number-range-DUyTW0V1.js.map +1 -1
- package/dist/page-fixed-footer-BHBJsfnh.js.map +1 -1
- package/dist/pdf/index.js.map +1 -1
- package/dist/permission-D5AvZAS8.js.map +1 -1
- package/dist/pre-defined-class-name/index.js.map +1 -1
- package/dist/preview-Blwn4lHG.js.map +1 -1
- package/dist/preview-DvEwmG2h.js.map +1 -1
- package/dist/preview-image-BCBOv4h_.js.map +1 -1
- package/dist/radio-group-wrapper-Dip9OsdR.js.map +1 -1
- package/dist/relation-tree-BMas57Ck.js.map +1 -1
- package/dist/request-status-CTleOQtX.js.map +1 -1
- package/dist/resizable-drawer/index.js +3 -3
- package/dist/rich-text-editor-cqzUxX_s.js.map +1 -1
- package/dist/rich-text-viewer-FVi2i8nv.js.map +1 -1
- package/dist/rule-describe-BkkX7ukt.js.map +1 -1
- package/dist/search-BbKmdP-9.js.map +1 -1
- package/dist/search-menu/index.d.ts +1 -1
- package/dist/search-menu-N7nz0XoH.js.map +1 -1
- package/dist/selector-D0YxuDbf.js.map +1 -1
- package/dist/selector-fu9imgsR.js.map +1 -1
- package/dist/selector-wrapper/index.js +3 -3
- package/dist/{selector-wrapper-l88Z-JLK.js → selector-wrapper-B5PUm15M.js} +2 -2
- package/dist/{selector-wrapper-l88Z-JLK.js.map → selector-wrapper-B5PUm15M.js.map} +1 -1
- package/dist/selector-wrapper-search-BMyOMlZl.js.map +1 -1
- package/dist/selector-wrapper-simple-Vbt4cYNm.js.map +1 -1
- package/dist/simple-layout-mSolkIZ5.js.map +1 -1
- package/dist/sms-count-down-DyovY2s3.js.map +1 -1
- package/dist/span-Cjqb-rEm.js.map +1 -1
- package/dist/split-BHDOAdvw.js.map +1 -1
- package/dist/svg-CqFW3W-s.js.map +1 -1
- package/dist/switch-confirm-wrapper-CFFD0YJY.js.map +1 -1
- package/dist/switch-wrapper-CxGztawn.js.map +1 -1
- package/dist/symbol-DcM8okBP.js.map +1 -1
- package/dist/table-cell-render/index.d.ts +1 -1
- package/dist/table-scrollbar-yqz5FkCz.js.map +1 -1
- package/dist/tabs-cpy2bCpo.js.map +1 -1
- package/dist/tabs-wrapper-IxpPTX9z.js.map +1 -1
- package/dist/tag-group-B2oj-CYo.js.map +1 -1
- package/dist/tag-list-DrmpuEDJ.js.map +1 -1
- package/dist/tag-list-select-C8_X2SS-.js.map +1 -1
- package/dist/tag-wrapper-CJsZ8Jvy.js.map +1 -1
- package/dist/text-overflow-C42UFIyh.js.map +1 -1
- package/dist/time-Cv4_lLXu.js.map +1 -1
- package/dist/time-picker-wrapper-AQg6UCts.js.map +1 -1
- package/dist/time-range-picker-wrapper-C2Y0j-w1.js.map +1 -1
- package/dist/time-range-picker-wrapper-form-item-Cl0i2rZv.js.map +1 -1
- package/dist/tips-title-B6qZn_zc.js.map +1 -1
- package/dist/tips-wrapper-DvbgHMwl.js.map +1 -1
- package/dist/title-render-DGYUo6yV.js.map +1 -1
- package/dist/tree-modal/index.d.ts +1 -1
- package/dist/tree-modal/index.js.map +1 -1
- package/dist/tree-modal-selector/index.d.ts +1 -1
- package/dist/tree-wrapper/index.d.ts +1 -1
- package/dist/tree-wrapper/index.js.map +1 -1
- package/dist/upload-wrapper/index.d.ts +1 -1
- package/dist/upload-wrapper--IfkLPBP.js.map +1 -1
- package/dist/use-responsive-point-Bp3D3lZT.js.map +1 -1
- package/dist/x-mind-preview-Bx7UmHAu.js.map +1 -1
- package/package.json +1 -1
- package/dist/_commonjsHelpers-nJh5OW6J.js +0 -33
- package/dist/_commonjsHelpers-nJh5OW6J.js.map +0 -1
- package/dist/drag-Dxvr0bSy.js.map +0 -1
- package/dist/drag-modal-C3Azghu3.js.map +0 -1
- package/dist/editable-table-Ckl_Q1fk.js.map +0 -1
- package/dist/label-value-CcUdtnY1.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TAny, TPlainObject } from '@flatbiz/utils';
|
|
2
2
|
import { FormItemProps, FormListOperation, PopoverProps, TableProps, TooltipProps } from 'antd';
|
|
3
|
-
import { FormListProps } from 'antd/
|
|
4
|
-
import { ColumnsType } from 'antd/
|
|
3
|
+
import { FormListProps } from 'antd/lib/form/index.js';
|
|
4
|
+
import { ColumnsType } from 'antd/lib/table/index.js';
|
|
5
5
|
import { CSSProperties, ReactElement, ReactNode } from 'react';
|
|
6
6
|
|
|
7
7
|
export type TFormItemLayoutPreClassNameProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editable-table-pro-B12YG7J_.js","sources":["@flatbiz/antd/src/editable-table-pro/editable-table-pro.tsx"],"sourcesContent":["import type { CSSProperties, ReactElement, ReactNode } from 'react';\nimport { isValidElement, useMemo, useRef, useState } from 'react';\nimport {\n Form,\n type FormListOperation,\n message,\n Space,\n Table,\n type TableProps,\n} from 'antd';\nimport type { FormListProps } from 'antd/es/form';\nimport type { ColumnsType } from 'antd/es/table';\nimport { CloseCircleFilled, PlusOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { arrayReorder, isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { fbaUtils } from '../fba-utils/fba-utils.js';\nimport { FormItemWrapper } from '../form-item-wrapper/form-item-wrapper.jsx';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper/symbol.jsx';\nimport { TipsWrapper } from '../tips-wrapper/tips-wrapper.jsx';\nimport type {\n EditableTableProColumnItem,\n EditableTableProDataIndex,\n EditableTableProOperation,\n} from './type.js';\nimport './style.less';\n\ntype dataSourceRelativeItem = {\n level: number;\n parentUid?: string | number;\n index: number;\n};\n\nexport type EditableTableProProps = {\n columns: EditableTableProColumnItem[];\n /**\n * 当前Edittable处在formList内部时(必填),完整formItem的name\n * ```\n * 例如 处在formList内部\n * 1. formListName=[0,dataList]\n * 2. formListCompleteName=[xxxList, 0, dataList]\n * ```\n */\n formListCompleteName?: Array<string | number>;\n /** Form.List name */\n formListName: Array<string | number> | string;\n /** 唯一值字段Key */\n uidFieldKey: string;\n /** 初始化值 */\n initialValue?: TPlainObject[];\n /** 指定树形结构的列名,默认值:children */\n childrenColumnName?: string;\n /** 表格组件配置 */\n tableProps?: Omit<\n TableProps<TPlainObject>,\n 'dataSource' | 'columns' | 'rowKey'\n > & {\n // 如果重写了columns.onCell,则此配置失效\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n /**\n * Form.List rules\n * ```\n rules={[\n {\n validator: async (_, names) => {\n if (!names || names.length < 2) {\n return Promise.reject(new Error('At least 2 passengers'));\n }\n },\n },\n ]}\n * ```\n */\n rules?: FormListProps['rules'];\n className?: string;\n style?: CSSProperties;\n\n /**`默认新增按钮`新增行默认值,hiddenFooterBtn != true 有效 */\n addRowDefaultValues?: () => TPlainObject;\n /** 隐藏底部`新增`按钮 */\n hiddenFooterBtn?: boolean;\n /** 表格顶部区域渲染 */\n tableBeforeAreaRender?: (\n formListOperation: FormListOperation,\n nextRowIndex: number\n ) => ReactElement | null;\n /** 表格底部区域渲染 */\n tableAfterAreaRender?: (\n formListOperation: FormListOperation,\n nextRowIndex: number\n ) => ReactElement | null;\n /** 展开的行key,一般用于初始化,重新tableProps.expandable.expandedRowKeys后失效 */\n expandedRowKeys?: string[];\n /**\n * 展开图标布局,默认:layout1\n * ```\n * 1. 可编辑表格第一项为可编辑状态时,选 layout1\n * 2. 可编辑表格第一项为非可编辑状态时,选 layout2\n * ```\n */\n expandedIconLayout?: 'layout1' | 'layout2';\n};\n\n/**\n * 使用FormList实现可编辑表格\n * ```\n * 1. 必须在外部包裹Form组件\n * 2. 表格数据源数组中必须存在唯一值字段,通过uidFieldKey配置\n * 3. 可嵌套编辑,数据嵌套的节点名称可通过 childrenColumnName设置,默认:children\n * 4. 行内需要联动逻辑可使用 column.render.operation.setCurrentRowTargetField 方法\n * 5. 在多级编辑中,可通过 column.render.operation.level 判断当前行数据层级\n * 6. 不存在多级的情况下,可使用DragEditableTablePro组件实现拖拽排序\n * 7. 存在多级的情况下,可通过 column.render.operation.move 方法实现同一级内移动\n *\n * demo\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable2\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable4\n * ```\n */\nexport const EditableTablePro = (props: EditableTableProProps) => {\n const form = Form.useFormInstance();\n const [expandedRowKeys, setExpandedRowKeys] = useState<string[]>([]);\n const formListName = toArray<string | number>(props.formListName);\n const dataSourceUidMap = useRef<Record<string, TPlainObject>>({});\n const dataSourceUidMapFt = useRef<\n Record<string | number, dataSourceRelativeItem>\n >({});\n const formListOperationRef = useRef<FormListOperation>();\n const uidFieldKey = props.uidFieldKey;\n const childrenColumnName = props.childrenColumnName || 'children';\n const expandedIconLayout = props.expandedIconLayout || 'layout1';\n\n const formListCompleteName = props.formListCompleteName || formListName;\n\n const dataSource = Form.useWatch(formListCompleteName, form);\n\n const [showEmptyText, setShowEmptyText] = useState<string | undefined>();\n\n const dataSourceFt = useMemo(() => {\n if (!dataSource) return [];\n let queryUidErrorFlag = false;\n function deep(\n itemList: TPlainObject[],\n level: number,\n parentUid?: string | number\n ) {\n for (let index = 0; index < itemList.length; index++) {\n const item = itemList[index];\n if (!item[uidFieldKey]) {\n console.error(item, '数据中未查询到唯一值');\n queryUidErrorFlag = true;\n return;\n } else {\n dataSourceUidMapFt.current[item[uidFieldKey]] = {\n level,\n parentUid,\n index,\n };\n dataSourceUidMap.current[item[uidFieldKey]] = item;\n deep(item[childrenColumnName] || [], level + 1, item[uidFieldKey]);\n }\n }\n }\n\n dataSourceUidMapFt.current = {};\n dataSourceUidMap.current = {};\n deep(isArray(dataSource) ? dataSource : [], 1);\n if (queryUidErrorFlag) {\n const txt = `数据源中存在唯一值【${uidFieldKey}】为空的情况,无法渲染表格`;\n void message.error(txt);\n setShowEmptyText(txt);\n return [];\n }\n return dataSource;\n }, [childrenColumnName, dataSource, uidFieldKey]);\n\n fbaHooks.useEffectCustom(() => {\n setExpandedRowKeys(props.expandedRowKeys || []);\n }, [JSON.stringify(props.expandedRowKeys || [])]);\n\n const getFormItemName = hooks.useCallbackRef((record: TPlainObject) => {\n const uid = record[uidFieldKey];\n let target: dataSourceRelativeItem | undefined =\n dataSourceUidMapFt.current[uid];\n\n const indexes: number[] = [];\n while (target) {\n indexes.push(target.index);\n if (target.level === 1) {\n break;\n }\n target = target.parentUid\n ? dataSourceUidMapFt.current[target.parentUid]\n : undefined;\n }\n const arr: Array<string | number> = [];\n indexes.reverse().forEach((item, index) => {\n arr.push(item);\n if (index < indexes.length - 1) {\n arr.push(childrenColumnName);\n }\n });\n return arr;\n });\n\n const addItem = hooks.useCallbackRef(\n (uid: string, defaultValue: TPlainObject, insertIndex?: number) => {\n const target = dataSourceUidMap.current[uid];\n\n if (target) {\n if (target.level === 1) {\n /** 通过 formListOperation.add 可以使得 Form.List的 rules 生效 */\n formListOperationRef.current?.add(defaultValue, insertIndex);\n return;\n }\n target[childrenColumnName] = target[childrenColumnName] || [];\n if (insertIndex == undefined) {\n target[childrenColumnName].push(defaultValue);\n } else {\n target[childrenColumnName].splice(insertIndex, 0, defaultValue);\n }\n const expandedRowKeysSet = new Set(expandedRowKeys);\n expandedRowKeysSet.add(target[uidFieldKey]);\n setExpandedRowKeys([...Array.from(expandedRowKeysSet)]);\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: [...dataSource],\n },\n ]);\n }\n }\n );\n\n const deleteItem = hooks.useCallbackRef(\n (uid: string | number, index: number) => {\n const target = dataSourceUidMapFt.current[uid];\n if (target.level === 1) {\n /** 通过 formListOperation.remove 可以使得 Form.List的 rules 生效 */\n formListOperationRef.current?.remove(index);\n return;\n }\n const parentUid = target.parentUid;\n if (!parentUid) {\n dataSource.splice(index, 1);\n } else {\n const parentTarget = dataSourceUidMap.current[parentUid];\n parentTarget[childrenColumnName].splice(index, 1);\n if (parentTarget[childrenColumnName].length === 0) {\n delete parentTarget[childrenColumnName];\n }\n }\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: cloneState(dataSource),\n },\n ]);\n }\n );\n\n const moveItem = hooks.useCallbackRef(\n (uid: string | number, fromIndex: number, toIndex: number) => {\n if (fromIndex === toIndex || toIndex < 0) return;\n const target = dataSourceUidMapFt.current[uid];\n const parentUid = target.parentUid;\n if (!parentUid) {\n const result = arrayReorder(dataSource, fromIndex, toIndex);\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: result,\n },\n ]);\n } else {\n const parentTarget = dataSourceUidMap.current[parentUid];\n parentTarget[childrenColumnName] = arrayReorder(\n parentTarget[childrenColumnName],\n fromIndex,\n toIndex\n );\n\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: [...dataSource],\n },\n ]);\n }\n }\n );\n\n const setCurrentRowTargetField = hooks.useCallbackRef(\n (\n formItemPrevName: Array<string | number>,\n dataIndexConfigs: {\n name: EditableTableProDataIndex;\n value?: TAny;\n }[]\n ) => {\n fbaUtils.setFormFieldsAndTriggerValuesChange(\n form,\n dataIndexConfigs.map((item) => {\n return {\n name: [\n ...formListCompleteName,\n ...formItemPrevName,\n ...toArray<string | number>(item.name),\n ],\n value: item.value,\n };\n })\n );\n }\n );\n\n const setCurrentRowChildrenValue = hooks.useCallbackRef(\n (formItemPrevName: Array<string | number>, value?: TPlainObject[]) => {\n setCurrentRowTargetField(formItemPrevName, [\n { name: childrenColumnName, value },\n ]);\n }\n );\n\n const validateRowFields = hooks.useCallbackRef(\n async (\n formItemPrevName: Array<string | number>,\n nameList: EditableTableProDataIndex[]\n ) => {\n await form.validateFields(\n nameList.map((item) => [\n ...formItemPrevName,\n ...toArray<string | number>(item),\n ])\n );\n }\n );\n\n const columns = useMemo(() => {\n return props.columns.map((column) => {\n const title = column.title;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string | undefined = title;\n if (column.tipsWrapperProps && support) {\n if (typeof column.tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper\n tipType=\"popover\"\n popoverProps={{ content: column.tipsWrapperProps }}\n >\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = (\n <TipsWrapper {...column.tipsWrapperProps}>{title}</TipsWrapper>\n );\n }\n }\n\n let required = column.required;\n\n if (\n !required &&\n typeof column.formItemProps === 'object' &&\n column.formItemProps.rules?.length\n ) {\n required = !!column.formItemProps.rules.find(\n (item) => !!item['required']\n );\n }\n\n return {\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...column,\n title: required ? (\n <TextSymbolWrapper\n style={{ marginLeft: column.align === 'center' ? undefined : 10 }}\n text={titleRender}\n position=\"before\"\n symbolType=\"required\"\n />\n ) : (\n titleRender\n ),\n render: (value, record, index) => {\n if (isUndefinedOrNull(column.render)) {\n return value;\n }\n const uid = record[uidFieldKey];\n const dataIndex = toArray<string>(column['dataIndex']);\n const formItemPrevName = getFormItemName(record);\n const dataSourceTarget = dataSourceUidMapFt.current[uid];\n\n const editable =\n typeof column?.editable === 'function'\n ? column?.editable(record, index)\n : column?.editable;\n const tableRowFormItemCompleteName = [\n ...formListCompleteName,\n ...formItemPrevName,\n ];\n\n const renderOperationProps: EditableTableProOperation = {\n editable,\n add: addItem.bind(null, uid),\n remove: deleteItem.bind(null, uid),\n move: moveItem.bind(null, uid),\n level: dataSourceTarget.level,\n parentItem: dataSourceTarget.parentUid\n ? dataSourceUidMapFt.current[dataSourceTarget.parentUid]\n : null,\n tableRowFormItemName: formItemPrevName,\n tableRowFormItemCompleteName,\n setCurrentRowTargetField: setCurrentRowTargetField.bind(\n null,\n formItemPrevName\n ),\n setCurrentRowChildrenValue: setCurrentRowChildrenValue.bind(\n null,\n formItemPrevName\n ),\n validateRowFields: validateRowFields.bind(\n null,\n tableRowFormItemCompleteName\n ),\n };\n if (editable === true) {\n let formItemProps =\n typeof column.formItemProps === 'function'\n ? column.formItemProps(\n value,\n record,\n index,\n renderOperationProps\n )\n : column.formItemProps;\n\n if (!formItemProps?.rules?.length && required) {\n formItemProps = {\n ...formItemProps,\n rules: [{ required: true, message: '' }],\n };\n }\n\n return (\n <FormItemWrapper\n {...formItemProps}\n name={[...formItemPrevName, ...dataIndex]}\n style={{ marginBottom: 0, ...formItemProps?.style }}\n >\n {\n column.render?.(\n value,\n record,\n index,\n renderOperationProps\n ) as ReactNode\n }\n </FormItemWrapper>\n );\n }\n return column.render?.(value, record, index, renderOperationProps);\n },\n };\n }) as ColumnsType<TPlainObject>;\n }, [\n props.columns,\n props.tableProps?.cellVerticalAlign,\n uidFieldKey,\n getFormItemName,\n formListCompleteName,\n addItem,\n deleteItem,\n moveItem,\n setCurrentRowTargetField,\n setCurrentRowChildrenValue,\n validateRowFields,\n ]);\n\n const className = classNames(\n 'editable-table-pro',\n { 'editable-table-pro-layout1': expandedIconLayout === 'layout1' },\n props.className\n );\n\n return (\n <div className={className} style={props.style}>\n <Form.List\n name={formListName}\n rules={props.rules}\n initialValue={props.initialValue}\n >\n {(fields, formListOperation, { errors }) => {\n formListOperationRef.current = formListOperation;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length\n ? '1px solid #ff4d4f'\n : '1px solid transparent',\n }}\n >\n {props.tableBeforeAreaRender?.(formListOperation, fields.length)}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n size=\"small\"\n {...props.tableProps}\n locale={{\n emptyText: showEmptyText ? (\n <Space size={5} style={{ color: '#ff4d4f' }}>\n <CloseCircleFilled />\n <span>{showEmptyText}</span>\n </Space>\n ) : undefined,\n }}\n expandable={{\n expandedRowKeys: expandedRowKeys,\n onExpandedRowsChange: (expandedRowKeys) => {\n setExpandedRowKeys(expandedRowKeys as string[]);\n },\n ...props.tableProps?.expandable,\n childrenColumnName: childrenColumnName,\n }}\n columns={columns}\n dataSource={dataSourceFt}\n rowKey={uidFieldKey}\n />\n <ButtonWrapper\n block\n hidden={props.hiddenFooterBtn}\n type=\"dashed\"\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n onClick={() => {\n const defaultValues = props.addRowDefaultValues?.();\n if (!defaultValues?.[uidFieldKey]) {\n void message.error(\n `新增行默认值必须包含唯一值字段【${uidFieldKey}】,通过 addRowDefaultValues 设置`\n );\n return;\n }\n formListOperation.add(defaultValues);\n }}\n >\n 新增\n </ButtonWrapper>\n {props.tableAfterAreaRender?.(formListOperation, fields.length)}\n {errors.length ? (\n <Form.ErrorList\n errors={[\n <div style={{ color: '#ff4d4f', padding: '5px' }} key=\"0\">\n {errors}\n </div>,\n ]}\n />\n ) : null}\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["EditableTablePro","props","_props$tableProps2","form","Form","useFormInstance","_useState","useState","_useState2","_slicedToArray","expandedRowKeys","setExpandedRowKeys","formListName","toArray","dataSourceUidMap","useRef","dataSourceUidMapFt","formListOperationRef","uidFieldKey","childrenColumnName","expandedIconLayout","formListCompleteName","dataSource","useWatch","_useState3","_useState4","showEmptyText","setShowEmptyText","dataSourceFt","useMemo","queryUidErrorFlag","deep","itemList","level","parentUid","index","length","item","console","error","current","_isArray","txt","concat","message","fbaHooks","useEffectCustom","JSON","stringify","getFormItemName","_hooks","useCallbackRef","record","uid","target","indexes","push","undefined","arr","reverse","forEach","addItem","defaultValue","insertIndex","_formListOperationRef","add","splice","expandedRowKeysSet","Set","_toConsumableArray","Array","from","fbaUtils","setFormFieldsAndTriggerValuesChange","name","value","deleteItem","_formListOperationRef2","remove","parentTarget","cloneState","moveItem","fromIndex","toIndex","result","arrayReorder","setCurrentRowTargetField","formItemPrevName","dataIndexConfigs","map","setCurrentRowChildrenValue","validateRowFields","nameList","Promise","$return","$error","resolve","validateFields","then","$await_1","$boundEx","columns","column","_column$formItemProps","title","support","isValidElement","titleRender","tipsWrapperProps","_jsx","TipsWrapper","tipType","popoverProps","content","children","_objectSpread","required","formItemProps","rules","find","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","TextSymbolWrapper","style","marginLeft","align","text","position","symbolType","render","_column$render2","isUndefinedOrNull","dataIndex","dataSourceTarget","editable","tableRowFormItemCompleteName","renderOperationProps","bind","move","parentItem","tableRowFormItemName","_formItemProps","_formItemProps2","_column$render","FormItemWrapper","marginBottom","call","className","_classNames","List","initialValue","fields","formListOperation","_ref","_props$tableBeforeAre","_props$tableProps3","_props$tableAfterArea","errors","_jsxs","borderRadius","border","tableBeforeAreaRender","Table","scroll","x","pagination","size","locale","emptyText","Space","color","_CloseCircleFilled","expandable","onExpandedRowsChange","rowKey","ButtonWrapper","block","hidden","hiddenFooterBtn","type","icon","_PlusOutlined","marginTop","onClick","_props$addRowDefaultV","defaultValues","addRowDefaultValues","tableAfterAreaRender","ErrorList","padding"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editable-table-pro-B12YG7J_.js","sources":["@flatbiz/antd/src/editable-table-pro/editable-table-pro.tsx"],"sourcesContent":["import type { CSSProperties, ReactElement, ReactNode } from 'react';\nimport { isValidElement, useMemo, useRef, useState } from 'react';\nimport {\n Form,\n type FormListOperation,\n message,\n Space,\n Table,\n type TableProps,\n} from 'antd';\nimport type { FormListProps } from 'antd/lib/form/index.js';\nimport type { ColumnsType } from 'antd/lib/table/index.js';\nimport { CloseCircleFilled, PlusOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { arrayReorder, isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { fbaUtils } from '../fba-utils/fba-utils.js';\nimport { FormItemWrapper } from '../form-item-wrapper/form-item-wrapper.jsx';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper/symbol.jsx';\nimport { TipsWrapper } from '../tips-wrapper/tips-wrapper.jsx';\nimport type {\n EditableTableProColumnItem,\n EditableTableProDataIndex,\n EditableTableProOperation,\n} from './type.js';\nimport './style.less';\n\ntype dataSourceRelativeItem = {\n level: number;\n parentUid?: string | number;\n index: number;\n};\n\nexport type EditableTableProProps = {\n columns: EditableTableProColumnItem[];\n /**\n * 当前Edittable处在formList内部时(必填),完整formItem的name\n * ```\n * 例如 处在formList内部\n * 1. formListName=[0,dataList]\n * 2. formListCompleteName=[xxxList, 0, dataList]\n * ```\n */\n formListCompleteName?: Array<string | number>;\n /** Form.List name */\n formListName: Array<string | number> | string;\n /** 唯一值字段Key */\n uidFieldKey: string;\n /** 初始化值 */\n initialValue?: TPlainObject[];\n /** 指定树形结构的列名,默认值:children */\n childrenColumnName?: string;\n /** 表格组件配置 */\n tableProps?: Omit<\n TableProps<TPlainObject>,\n 'dataSource' | 'columns' | 'rowKey'\n > & {\n // 如果重写了columns.onCell,则此配置失效\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n /**\n * Form.List rules\n * ```\n rules={[\n {\n validator: async (_, names) => {\n if (!names || names.length < 2) {\n return Promise.reject(new Error('At least 2 passengers'));\n }\n },\n },\n ]}\n * ```\n */\n rules?: FormListProps['rules'];\n className?: string;\n style?: CSSProperties;\n\n /**`默认新增按钮`新增行默认值,hiddenFooterBtn != true 有效 */\n addRowDefaultValues?: () => TPlainObject;\n /** 隐藏底部`新增`按钮 */\n hiddenFooterBtn?: boolean;\n /** 表格顶部区域渲染 */\n tableBeforeAreaRender?: (\n formListOperation: FormListOperation,\n nextRowIndex: number\n ) => ReactElement | null;\n /** 表格底部区域渲染 */\n tableAfterAreaRender?: (\n formListOperation: FormListOperation,\n nextRowIndex: number\n ) => ReactElement | null;\n /** 展开的行key,一般用于初始化,重新tableProps.expandable.expandedRowKeys后失效 */\n expandedRowKeys?: string[];\n /**\n * 展开图标布局,默认:layout1\n * ```\n * 1. 可编辑表格第一项为可编辑状态时,选 layout1\n * 2. 可编辑表格第一项为非可编辑状态时,选 layout2\n * ```\n */\n expandedIconLayout?: 'layout1' | 'layout2';\n};\n\n/**\n * 使用FormList实现可编辑表格\n * ```\n * 1. 必须在外部包裹Form组件\n * 2. 表格数据源数组中必须存在唯一值字段,通过uidFieldKey配置\n * 3. 可嵌套编辑,数据嵌套的节点名称可通过 childrenColumnName设置,默认:children\n * 4. 行内需要联动逻辑可使用 column.render.operation.setCurrentRowTargetField 方法\n * 5. 在多级编辑中,可通过 column.render.operation.level 判断当前行数据层级\n * 6. 不存在多级的情况下,可使用DragEditableTablePro组件实现拖拽排序\n * 7. 存在多级的情况下,可通过 column.render.operation.move 方法实现同一级内移动\n *\n * demo\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable2\n * https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable4\n * ```\n */\nexport const EditableTablePro = (props: EditableTableProProps) => {\n const form = Form.useFormInstance();\n const [expandedRowKeys, setExpandedRowKeys] = useState<string[]>([]);\n const formListName = toArray<string | number>(props.formListName);\n const dataSourceUidMap = useRef<Record<string, TPlainObject>>({});\n const dataSourceUidMapFt = useRef<\n Record<string | number, dataSourceRelativeItem>\n >({});\n const formListOperationRef = useRef<FormListOperation>();\n const uidFieldKey = props.uidFieldKey;\n const childrenColumnName = props.childrenColumnName || 'children';\n const expandedIconLayout = props.expandedIconLayout || 'layout1';\n\n const formListCompleteName = props.formListCompleteName || formListName;\n\n const dataSource = Form.useWatch(formListCompleteName, form);\n\n const [showEmptyText, setShowEmptyText] = useState<string | undefined>();\n\n const dataSourceFt = useMemo(() => {\n if (!dataSource) return [];\n let queryUidErrorFlag = false;\n function deep(\n itemList: TPlainObject[],\n level: number,\n parentUid?: string | number\n ) {\n for (let index = 0; index < itemList.length; index++) {\n const item = itemList[index];\n if (!item[uidFieldKey]) {\n console.error(item, '数据中未查询到唯一值');\n queryUidErrorFlag = true;\n return;\n } else {\n dataSourceUidMapFt.current[item[uidFieldKey]] = {\n level,\n parentUid,\n index,\n };\n dataSourceUidMap.current[item[uidFieldKey]] = item;\n deep(item[childrenColumnName] || [], level + 1, item[uidFieldKey]);\n }\n }\n }\n\n dataSourceUidMapFt.current = {};\n dataSourceUidMap.current = {};\n deep(isArray(dataSource) ? dataSource : [], 1);\n if (queryUidErrorFlag) {\n const txt = `数据源中存在唯一值【${uidFieldKey}】为空的情况,无法渲染表格`;\n void message.error(txt);\n setShowEmptyText(txt);\n return [];\n }\n return dataSource;\n }, [childrenColumnName, dataSource, uidFieldKey]);\n\n fbaHooks.useEffectCustom(() => {\n setExpandedRowKeys(props.expandedRowKeys || []);\n }, [JSON.stringify(props.expandedRowKeys || [])]);\n\n const getFormItemName = hooks.useCallbackRef((record: TPlainObject) => {\n const uid = record[uidFieldKey];\n let target: dataSourceRelativeItem | undefined =\n dataSourceUidMapFt.current[uid];\n\n const indexes: number[] = [];\n while (target) {\n indexes.push(target.index);\n if (target.level === 1) {\n break;\n }\n target = target.parentUid\n ? dataSourceUidMapFt.current[target.parentUid]\n : undefined;\n }\n const arr: Array<string | number> = [];\n indexes.reverse().forEach((item, index) => {\n arr.push(item);\n if (index < indexes.length - 1) {\n arr.push(childrenColumnName);\n }\n });\n return arr;\n });\n\n const addItem = hooks.useCallbackRef(\n (uid: string, defaultValue: TPlainObject, insertIndex?: number) => {\n const target = dataSourceUidMap.current[uid];\n\n if (target) {\n if (target.level === 1) {\n /** 通过 formListOperation.add 可以使得 Form.List的 rules 生效 */\n formListOperationRef.current?.add(defaultValue, insertIndex);\n return;\n }\n target[childrenColumnName] = target[childrenColumnName] || [];\n if (insertIndex == undefined) {\n target[childrenColumnName].push(defaultValue);\n } else {\n target[childrenColumnName].splice(insertIndex, 0, defaultValue);\n }\n const expandedRowKeysSet = new Set(expandedRowKeys);\n expandedRowKeysSet.add(target[uidFieldKey]);\n setExpandedRowKeys([...Array.from(expandedRowKeysSet)]);\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: [...dataSource],\n },\n ]);\n }\n }\n );\n\n const deleteItem = hooks.useCallbackRef(\n (uid: string | number, index: number) => {\n const target = dataSourceUidMapFt.current[uid];\n if (target.level === 1) {\n /** 通过 formListOperation.remove 可以使得 Form.List的 rules 生效 */\n formListOperationRef.current?.remove(index);\n return;\n }\n const parentUid = target.parentUid;\n if (!parentUid) {\n dataSource.splice(index, 1);\n } else {\n const parentTarget = dataSourceUidMap.current[parentUid];\n parentTarget[childrenColumnName].splice(index, 1);\n if (parentTarget[childrenColumnName].length === 0) {\n delete parentTarget[childrenColumnName];\n }\n }\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: cloneState(dataSource),\n },\n ]);\n }\n );\n\n const moveItem = hooks.useCallbackRef(\n (uid: string | number, fromIndex: number, toIndex: number) => {\n if (fromIndex === toIndex || toIndex < 0) return;\n const target = dataSourceUidMapFt.current[uid];\n const parentUid = target.parentUid;\n if (!parentUid) {\n const result = arrayReorder(dataSource, fromIndex, toIndex);\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: result,\n },\n ]);\n } else {\n const parentTarget = dataSourceUidMap.current[parentUid];\n parentTarget[childrenColumnName] = arrayReorder(\n parentTarget[childrenColumnName],\n fromIndex,\n toIndex\n );\n\n fbaUtils.setFormFieldsAndTriggerValuesChange(form, [\n {\n name: formListCompleteName,\n value: [...dataSource],\n },\n ]);\n }\n }\n );\n\n const setCurrentRowTargetField = hooks.useCallbackRef(\n (\n formItemPrevName: Array<string | number>,\n dataIndexConfigs: {\n name: EditableTableProDataIndex;\n value?: TAny;\n }[]\n ) => {\n fbaUtils.setFormFieldsAndTriggerValuesChange(\n form,\n dataIndexConfigs.map((item) => {\n return {\n name: [\n ...formListCompleteName,\n ...formItemPrevName,\n ...toArray<string | number>(item.name),\n ],\n value: item.value,\n };\n })\n );\n }\n );\n\n const setCurrentRowChildrenValue = hooks.useCallbackRef(\n (formItemPrevName: Array<string | number>, value?: TPlainObject[]) => {\n setCurrentRowTargetField(formItemPrevName, [\n { name: childrenColumnName, value },\n ]);\n }\n );\n\n const validateRowFields = hooks.useCallbackRef(\n async (\n formItemPrevName: Array<string | number>,\n nameList: EditableTableProDataIndex[]\n ) => {\n await form.validateFields(\n nameList.map((item) => [\n ...formItemPrevName,\n ...toArray<string | number>(item),\n ])\n );\n }\n );\n\n const columns = useMemo(() => {\n return props.columns.map((column) => {\n const title = column.title;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string | undefined = title;\n if (column.tipsWrapperProps && support) {\n if (typeof column.tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper\n tipType=\"popover\"\n popoverProps={{ content: column.tipsWrapperProps }}\n >\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = (\n <TipsWrapper {...column.tipsWrapperProps}>{title}</TipsWrapper>\n );\n }\n }\n\n let required = column.required;\n\n if (\n !required &&\n typeof column.formItemProps === 'object' &&\n column.formItemProps.rules?.length\n ) {\n required = !!column.formItemProps.rules.find(\n (item) => !!item['required']\n );\n }\n\n return {\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...column,\n title: required ? (\n <TextSymbolWrapper\n style={{ marginLeft: column.align === 'center' ? undefined : 10 }}\n text={titleRender}\n position=\"before\"\n symbolType=\"required\"\n />\n ) : (\n titleRender\n ),\n render: (value, record, index) => {\n if (isUndefinedOrNull(column.render)) {\n return value;\n }\n const uid = record[uidFieldKey];\n const dataIndex = toArray<string>(column['dataIndex']);\n const formItemPrevName = getFormItemName(record);\n const dataSourceTarget = dataSourceUidMapFt.current[uid];\n\n const editable =\n typeof column?.editable === 'function'\n ? column?.editable(record, index)\n : column?.editable;\n const tableRowFormItemCompleteName = [\n ...formListCompleteName,\n ...formItemPrevName,\n ];\n\n const renderOperationProps: EditableTableProOperation = {\n editable,\n add: addItem.bind(null, uid),\n remove: deleteItem.bind(null, uid),\n move: moveItem.bind(null, uid),\n level: dataSourceTarget.level,\n parentItem: dataSourceTarget.parentUid\n ? dataSourceUidMapFt.current[dataSourceTarget.parentUid]\n : null,\n tableRowFormItemName: formItemPrevName,\n tableRowFormItemCompleteName,\n setCurrentRowTargetField: setCurrentRowTargetField.bind(\n null,\n formItemPrevName\n ),\n setCurrentRowChildrenValue: setCurrentRowChildrenValue.bind(\n null,\n formItemPrevName\n ),\n validateRowFields: validateRowFields.bind(\n null,\n tableRowFormItemCompleteName\n ),\n };\n if (editable === true) {\n let formItemProps =\n typeof column.formItemProps === 'function'\n ? column.formItemProps(\n value,\n record,\n index,\n renderOperationProps\n )\n : column.formItemProps;\n\n if (!formItemProps?.rules?.length && required) {\n formItemProps = {\n ...formItemProps,\n rules: [{ required: true, message: '' }],\n };\n }\n\n return (\n <FormItemWrapper\n {...formItemProps}\n name={[...formItemPrevName, ...dataIndex]}\n style={{ marginBottom: 0, ...formItemProps?.style }}\n >\n {\n column.render?.(\n value,\n record,\n index,\n renderOperationProps\n ) as ReactNode\n }\n </FormItemWrapper>\n );\n }\n return column.render?.(value, record, index, renderOperationProps);\n },\n };\n }) as ColumnsType<TPlainObject>;\n }, [\n props.columns,\n props.tableProps?.cellVerticalAlign,\n uidFieldKey,\n getFormItemName,\n formListCompleteName,\n addItem,\n deleteItem,\n moveItem,\n setCurrentRowTargetField,\n setCurrentRowChildrenValue,\n validateRowFields,\n ]);\n\n const className = classNames(\n 'editable-table-pro',\n { 'editable-table-pro-layout1': expandedIconLayout === 'layout1' },\n props.className\n );\n\n return (\n <div className={className} style={props.style}>\n <Form.List\n name={formListName}\n rules={props.rules}\n initialValue={props.initialValue}\n >\n {(fields, formListOperation, { errors }) => {\n formListOperationRef.current = formListOperation;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length\n ? '1px solid #ff4d4f'\n : '1px solid transparent',\n }}\n >\n {props.tableBeforeAreaRender?.(formListOperation, fields.length)}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n size=\"small\"\n {...props.tableProps}\n locale={{\n emptyText: showEmptyText ? (\n <Space size={5} style={{ color: '#ff4d4f' }}>\n <CloseCircleFilled />\n <span>{showEmptyText}</span>\n </Space>\n ) : undefined,\n }}\n expandable={{\n expandedRowKeys: expandedRowKeys,\n onExpandedRowsChange: (expandedRowKeys) => {\n setExpandedRowKeys(expandedRowKeys as string[]);\n },\n ...props.tableProps?.expandable,\n childrenColumnName: childrenColumnName,\n }}\n columns={columns}\n dataSource={dataSourceFt}\n rowKey={uidFieldKey}\n />\n <ButtonWrapper\n block\n hidden={props.hiddenFooterBtn}\n type=\"dashed\"\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n onClick={() => {\n const defaultValues = props.addRowDefaultValues?.();\n if (!defaultValues?.[uidFieldKey]) {\n void message.error(\n `新增行默认值必须包含唯一值字段【${uidFieldKey}】,通过 addRowDefaultValues 设置`\n );\n return;\n }\n formListOperation.add(defaultValues);\n }}\n >\n 新增\n </ButtonWrapper>\n {props.tableAfterAreaRender?.(formListOperation, fields.length)}\n {errors.length ? (\n <Form.ErrorList\n errors={[\n <div style={{ color: '#ff4d4f', padding: '5px' }} key=\"0\">\n {errors}\n </div>,\n ]}\n />\n ) : null}\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["EditableTablePro","props","_props$tableProps2","form","Form","useFormInstance","_useState","useState","_useState2","_slicedToArray","expandedRowKeys","setExpandedRowKeys","formListName","toArray","dataSourceUidMap","useRef","dataSourceUidMapFt","formListOperationRef","uidFieldKey","childrenColumnName","expandedIconLayout","formListCompleteName","dataSource","useWatch","_useState3","_useState4","showEmptyText","setShowEmptyText","dataSourceFt","useMemo","queryUidErrorFlag","deep","itemList","level","parentUid","index","length","item","console","error","current","_isArray","txt","concat","message","fbaHooks","useEffectCustom","JSON","stringify","getFormItemName","_hooks","useCallbackRef","record","uid","target","indexes","push","undefined","arr","reverse","forEach","addItem","defaultValue","insertIndex","_formListOperationRef","add","splice","expandedRowKeysSet","Set","_toConsumableArray","Array","from","fbaUtils","setFormFieldsAndTriggerValuesChange","name","value","deleteItem","_formListOperationRef2","remove","parentTarget","cloneState","moveItem","fromIndex","toIndex","result","arrayReorder","setCurrentRowTargetField","formItemPrevName","dataIndexConfigs","map","setCurrentRowChildrenValue","validateRowFields","nameList","Promise","$return","$error","resolve","validateFields","then","$await_1","$boundEx","columns","column","_column$formItemProps","title","support","isValidElement","titleRender","tipsWrapperProps","_jsx","TipsWrapper","tipType","popoverProps","content","children","_objectSpread","required","formItemProps","rules","find","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","TextSymbolWrapper","style","marginLeft","align","text","position","symbolType","render","_column$render2","isUndefinedOrNull","dataIndex","dataSourceTarget","editable","tableRowFormItemCompleteName","renderOperationProps","bind","move","parentItem","tableRowFormItemName","_formItemProps","_formItemProps2","_column$render","FormItemWrapper","marginBottom","call","className","_classNames","List","initialValue","fields","formListOperation","_ref","_props$tableBeforeAre","_props$tableProps3","_props$tableAfterArea","errors","_jsxs","borderRadius","border","tableBeforeAreaRender","Table","scroll","x","pagination","size","locale","emptyText","Space","color","_CloseCircleFilled","expandable","onExpandedRowsChange","rowKey","ButtonWrapper","block","hidden","hiddenFooterBtn","type","icon","_PlusOutlined","marginTop","onClick","_props$addRowDefaultV","defaultValues","addRowDefaultValues","tableAfterAreaRender","ErrorList","padding"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-C_Wf256R.js","sources":["@flatbiz/antd/src/ace-editor-mysql/editor.tsx"],"sourcesContent":["import type { CSSProperties, ReactElement } from 'react';\nimport { useRef, useState } from 'react';\nimport type { IAceEditorProps } from 'react-ace';\nimport Ace from 'react-ace';\nimport { format } from 'sql-formatter';\nimport { classNames } from '@dimjs/utils';\nimport { type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-mysql.js';\nimport 'ace-builds/src-noconflict/snippets/mysql.js';\n\nconst formatSql = (sqlContent: string) => {\n return format(sqlContent, { language: 'sql' })\n .replace(/\\$ /g, '$')\n .replace(/\\{ /g, '{')\n .replace(/ \\}/g, '}');\n};\n\nexport type AceEditorMysqlProps = Omit<\n IAceEditorProps,\n 'theme' | 'mode' | 'value' | 'onChange'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string;\n onChange?: (value?: string) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /** 隐藏【美化】按钮 */\n hiddenFormatterBtn?: boolean;\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n /** 底部额外布局 */\n footerExtraRender?: (children: ReactElement) => ReactElement;\n footerStyle?: CSSProperties;\n};\n\nexport const AceEditorMysql = (props: AceEditorMysqlProps) => {\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n const {\n value,\n hiddenFormatterBtn,\n autoCompleterList,\n onChange,\n onLoad,\n ...otherProps\n } = props;\n\n const editorRef = useRef<TAny>();\n\n const handleChange = hooks.useCallbackRef((content: string) => {\n onChange?.(content);\n });\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const footer = (\n <ButtonWrapper\n hidden={hiddenFormatterBtn === true}\n type=\"primary\"\n ghost\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n onChange?.(formatSql(currentValue || ''));\n }}\n >\n 美化\n </ButtonWrapper>\n );\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <div\n key={rootNodekey}\n className={classNames('ace-editor-mysql', props.className)}\n style={props.style}\n >\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n placeholder=\"输入SQL\"\n height=\"250px\"\n width=\"auto\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"mysql\"\n onLoad={onLoadHandle}\n onChange={handleChange}\n value={value}\n />\n </ErrorBoundaryWrapper>\n <div\n className=\"ace-editor-mysql-footer\"\n style={{ marginTop: 10, ...props.footerStyle }}\n >\n {props.footerExtraRender ? props.footerExtraRender(footer) : footer}\n </div>\n </div>\n );\n};\n"],"names":["formatSql","sqlContent","format","language","replace","AceEditorMysql","props","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","value","hiddenFormatterBtn","autoCompleterList","onChange","onLoad","otherProps","_objectWithoutProperties","_excluded","editorRef","useRef","handleChange","_hooks","useCallbackRef","content","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","footer","_jsx","ButtonWrapper","hidden","type","ghost","onClick","_editorRef$current","currentValue","getValue","children","Element","Ace","_jsxs","className","_classNames","style","ErrorBoundaryWrapper","onRenderReset","undefined","_objectSpread","fontSize","showPrintMargin","showGutter","highlightActiveLine","placeholder","height","width","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","marginTop","footerStyle","footerExtraRender"],"mappings":";;;;;;;;;;;;;;;;AAcA,IAAMA,SAAS,GAAG,SAAZA,SAASA,CAAIC,UAAkB,EAAK;EACxC,OAAOC,MAAM,CAACD,UAAU,EAAE;AAAEE,IAAAA,QAAQ,EAAE;GAAO,CAAC,CAC3CC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACzB,CAAC;IA2BYC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAA0B,EAAK;EAC5D,IAAAC,SAAA,GAAsCC,QAAQ,CAACC,IAAI,CAACC,GAAG,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAL,SAAA,EAAA,CAAA,CAAA;AAAnDM,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA;AAClC,EAAA,IACEI,KAAK,GAMHT,KAAK,CANPS,KAAK;IACLC,kBAAkB,GAKhBV,KAAK,CALPU,kBAAkB;IAClBC,iBAAiB,GAIfX,KAAK,CAJPW,iBAAiB;IACjBC,QAAQ,GAGNZ,KAAK,CAHPY,QAAQ;IACRC,MAAM,GAEJb,KAAK,CAFPa,MAAM;AACHC,IAAAA,UAAU,GAAAC,wBAAA,CACXf,KAAK,EAAAgB,SAAA,CAAA;AAET,EAAA,IAAMC,SAAS,GAAGC,MAAM,EAAQ;EAEhC,IAAMC,YAAY,GAAGC,KAAA,CAAMC,cAAc,CAAC,UAACC,OAAe,EAAK;AAC7DV,IAAAA,QAAQ,aAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAGU,OAAO,CAAC;AACrB,
|
|
1
|
+
{"version":3,"file":"editor-C_Wf256R.js","sources":["@flatbiz/antd/src/ace-editor-mysql/editor.tsx"],"sourcesContent":["import type { CSSProperties, ReactElement } from 'react';\nimport { useRef, useState } from 'react';\nimport type { IAceEditorProps } from 'react-ace';\nimport Ace from 'react-ace';\nimport { format } from 'sql-formatter';\nimport { classNames } from '@dimjs/utils';\nimport { type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-mysql.js';\nimport 'ace-builds/src-noconflict/snippets/mysql.js';\n\nconst formatSql = (sqlContent: string) => {\n return format(sqlContent, { language: 'sql' })\n .replace(/\\$ /g, '$')\n .replace(/\\{ /g, '{')\n .replace(/ \\}/g, '}');\n};\n\nexport type AceEditorMysqlProps = Omit<\n IAceEditorProps,\n 'theme' | 'mode' | 'value' | 'onChange'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string;\n onChange?: (value?: string) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /** 隐藏【美化】按钮 */\n hiddenFormatterBtn?: boolean;\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n /** 底部额外布局 */\n footerExtraRender?: (children: ReactElement) => ReactElement;\n footerStyle?: CSSProperties;\n};\n\nexport const AceEditorMysql = (props: AceEditorMysqlProps) => {\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n const {\n value,\n hiddenFormatterBtn,\n autoCompleterList,\n onChange,\n onLoad,\n ...otherProps\n } = props;\n\n const editorRef = useRef<TAny>();\n\n const handleChange = hooks.useCallbackRef((content: string) => {\n onChange?.(content);\n });\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const footer = (\n <ButtonWrapper\n hidden={hiddenFormatterBtn === true}\n type=\"primary\"\n ghost\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n onChange?.(formatSql(currentValue || ''));\n }}\n >\n 美化\n </ButtonWrapper>\n );\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <div\n key={rootNodekey}\n className={classNames('ace-editor-mysql', props.className)}\n style={props.style}\n >\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n placeholder=\"输入SQL\"\n height=\"250px\"\n width=\"auto\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"mysql\"\n onLoad={onLoadHandle}\n onChange={handleChange}\n value={value}\n />\n </ErrorBoundaryWrapper>\n <div\n className=\"ace-editor-mysql-footer\"\n style={{ marginTop: 10, ...props.footerStyle }}\n >\n {props.footerExtraRender ? props.footerExtraRender(footer) : footer}\n </div>\n </div>\n );\n};\n"],"names":["formatSql","sqlContent","format","language","replace","AceEditorMysql","props","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","value","hiddenFormatterBtn","autoCompleterList","onChange","onLoad","otherProps","_objectWithoutProperties","_excluded","editorRef","useRef","handleChange","_hooks","useCallbackRef","content","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","footer","_jsx","ButtonWrapper","hidden","type","ghost","onClick","_editorRef$current","currentValue","getValue","children","Element","Ace","_jsxs","className","_classNames","style","ErrorBoundaryWrapper","onRenderReset","undefined","_objectSpread","fontSize","showPrintMargin","showGutter","highlightActiveLine","placeholder","height","width","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","marginTop","footerStyle","footerExtraRender"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-CncecOdy.js","sources":["@flatbiz/antd/src/ace-editor-json/editor.tsx"],"sourcesContent":["import type { CSSProperties, ReactElement } from 'react';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { isObject } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n jsonStringToJsonObject,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport { FlexLayout } from '../flex-layout/flex-layout.jsx';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-json.js';\nimport 'ace-builds/src-noconflict/snippets/json.js';\n\nexport type AceEditorJsonProps = Omit<\n IAceEditorProps,\n 'mode' | 'value' | 'onChange' | 'theme'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /** 是否隐藏【验证数据】按钮 */\n hiddenVerifyBtn?: boolean;\n /** 是否隐藏内部验证异常文案 */\n hiddenErrorMsg?: boolean;\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n /** 底部额外布局 */\n footerExtraRender?: (children: ReactElement) => ReactElement;\n footerStyle?: CSSProperties;\n};\n\n/**\n * Json编辑器\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 hiddenVerifyBtn 配置隐藏底部操作按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const AceEditorJson = (props: AceEditorJsonProps) => {\n const {\n value,\n onChange,\n height,\n hiddenVerifyBtn,\n autoCompleterList,\n onLoad,\n hiddenErrorMsg,\n ...otherProps\n } = props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n const [errorMsg, setErrorMsg] = useState<string>();\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const handleChange = hooks.useCallbackRef((content: string) => {\n if (errorMsg) {\n setErrorMsg(undefined);\n }\n onChange?.(content);\n });\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const inputValueVerify = (inputValue: string) => {\n try {\n const result = jsonStringToJsonObject(inputValue);\n onChange?.(result);\n } catch (_error: TAny) {\n setErrorMsg('数据解析异常,正确格式:{\"name\":\"张三\", \"age\": 20}');\n }\n };\n const footer = (\n <Fragment>\n <ButtonWrapper\n hidden={hiddenVerifyBtn === true}\n type=\"primary\"\n block={false}\n ghost\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n if (!currentValue) {\n onChange?.(currentValue);\n return;\n }\n inputValueVerify(currentValue);\n }}\n >\n 验证&格式化数据\n </ButtonWrapper>\n {!hiddenErrorMsg && errorMsg ? (\n <span style={{ color: 'red', marginLeft: 10 }}>{errorMsg}</span>\n ) : null}\n </Fragment>\n );\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <FlexLayout\n fullIndex={0}\n className={classNames('ace-editor-json', props.className)}\n style={{ height: heightFt, ...props.style }}\n key={rootNodekey}\n >\n <div className=\"aej-content\">\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n placeholder=\"请输入\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"json\"\n onLoad={onLoadHandle}\n onChange={handleChange}\n onBlur={(_event, editor) => {\n const value = editor?.getValue();\n if (value) {\n inputValueVerify(value);\n }\n }}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n <div\n className=\"ace-editor-json-footer\"\n style={{ marginTop: 10, ...props.footerStyle }}\n >\n {props.footerExtraRender ? (\n props.footerExtraRender(footer)\n ) : (\n <Fragment>{footer}</Fragment>\n )}\n </div>\n </FlexLayout>\n );\n};\n"],"names":["AceEditorJson","props","value","onChange","height","hiddenVerifyBtn","autoCompleterList","onLoad","hiddenErrorMsg","otherProps","_objectWithoutProperties","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","_useState3","_useState4","errorMsg","setErrorMsg","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","handleChange","_hooks","useCallbackRef","content","undefined","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","inputValueVerify","inputValue","result","jsonStringToJsonObject","_error","footer","_jsxs","Fragment","children","_jsx","ButtonWrapper","hidden","type","block","ghost","onClick","_editorRef$current","currentValue","getValue","style","color","marginLeft","Element","Ace","FlexLayout","fullIndex","className","_classNames","_objectSpread","ErrorBoundaryWrapper","onRenderReset","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","placeholder","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","onBlur","_event","marginTop","footerStyle","footerExtraRender"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor-CncecOdy.js","sources":["@flatbiz/antd/src/ace-editor-json/editor.tsx"],"sourcesContent":["import type { CSSProperties, ReactElement } from 'react';\nimport { Fragment, useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { isObject } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n jsonStringToJsonObject,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport { FlexLayout } from '../flex-layout/flex-layout.jsx';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-json.js';\nimport 'ace-builds/src-noconflict/snippets/json.js';\n\nexport type AceEditorJsonProps = Omit<\n IAceEditorProps,\n 'mode' | 'value' | 'onChange' | 'theme'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /** 是否隐藏【验证数据】按钮 */\n hiddenVerifyBtn?: boolean;\n /** 是否隐藏内部验证异常文案 */\n hiddenErrorMsg?: boolean;\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n /** 底部额外布局 */\n footerExtraRender?: (children: ReactElement) => ReactElement;\n footerStyle?: CSSProperties;\n};\n\n/**\n * Json编辑器\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 hiddenVerifyBtn 配置隐藏底部操作按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const AceEditorJson = (props: AceEditorJsonProps) => {\n const {\n value,\n onChange,\n height,\n hiddenVerifyBtn,\n autoCompleterList,\n onLoad,\n hiddenErrorMsg,\n ...otherProps\n } = props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n const [errorMsg, setErrorMsg] = useState<string>();\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const handleChange = hooks.useCallbackRef((content: string) => {\n if (errorMsg) {\n setErrorMsg(undefined);\n }\n onChange?.(content);\n });\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const inputValueVerify = (inputValue: string) => {\n try {\n const result = jsonStringToJsonObject(inputValue);\n onChange?.(result);\n } catch (_error: TAny) {\n setErrorMsg('数据解析异常,正确格式:{\"name\":\"张三\", \"age\": 20}');\n }\n };\n const footer = (\n <Fragment>\n <ButtonWrapper\n hidden={hiddenVerifyBtn === true}\n type=\"primary\"\n block={false}\n ghost\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n if (!currentValue) {\n onChange?.(currentValue);\n return;\n }\n inputValueVerify(currentValue);\n }}\n >\n 验证&格式化数据\n </ButtonWrapper>\n {!hiddenErrorMsg && errorMsg ? (\n <span style={{ color: 'red', marginLeft: 10 }}>{errorMsg}</span>\n ) : null}\n </Fragment>\n );\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <FlexLayout\n fullIndex={0}\n className={classNames('ace-editor-json', props.className)}\n style={{ height: heightFt, ...props.style }}\n key={rootNodekey}\n >\n <div className=\"aej-content\">\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n placeholder=\"请输入\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"json\"\n onLoad={onLoadHandle}\n onChange={handleChange}\n onBlur={(_event, editor) => {\n const value = editor?.getValue();\n if (value) {\n inputValueVerify(value);\n }\n }}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n <div\n className=\"ace-editor-json-footer\"\n style={{ marginTop: 10, ...props.footerStyle }}\n >\n {props.footerExtraRender ? (\n props.footerExtraRender(footer)\n ) : (\n <Fragment>{footer}</Fragment>\n )}\n </div>\n </FlexLayout>\n );\n};\n"],"names":["AceEditorJson","props","value","onChange","height","hiddenVerifyBtn","autoCompleterList","onLoad","hiddenErrorMsg","otherProps","_objectWithoutProperties","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","_useState3","_useState4","errorMsg","setErrorMsg","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","handleChange","_hooks","useCallbackRef","content","undefined","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","inputValueVerify","inputValue","result","jsonStringToJsonObject","_error","footer","_jsxs","Fragment","children","_jsx","ButtonWrapper","hidden","type","block","ghost","onClick","_editorRef$current","currentValue","getValue","style","color","marginLeft","Element","Ace","FlexLayout","fullIndex","className","_classNames","_objectSpread","ErrorBoundaryWrapper","onRenderReset","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","placeholder","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","onBlur","_event","marginTop","footerStyle","footerExtraRender"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-CxXSgnLP.js","sources":["@flatbiz/antd/src/ace-editor-groovy/editor.tsx"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { isObject } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-groovy.js';\nimport 'ace-builds/src-noconflict/snippets/groovy.js';\n\nexport type AceEditorGroovyProps = Omit<\n IAceEditorProps,\n 'mode' | 'value' | 'onChange' | 'theme'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n};\n\n/**\n * groovy编辑器\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 hiddenVerifyBtn、hiddenFormatterBtn可隐藏底部操作按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const AceEditorGroovy = (props: AceEditorGroovyProps) => {\n const { value, onChange, height, autoCompleterList, onLoad, ...otherProps } =\n props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <div\n key={rootNodekey}\n className={classNames('ace-editor-groovy', props.className)}\n style={{ height: heightFt, ...props.style }}\n >\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n placeholder=\"请输入\"\n // theme={'github'}\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"groovy\"\n onLoad={onLoadHandle}\n onChange={onChange}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n );\n};\n"],"names":["AceEditorGroovy","props","value","onChange","height","autoCompleterList","onLoad","otherProps","_objectWithoutProperties","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","getCompletions","_hooks","useCallbackRef","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","Element","Ace","_jsx","className","_classNames","style","_objectSpread","children","ErrorBoundaryWrapper","onRenderReset","undefined","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","placeholder","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode"],"mappings":";;;;;;;;;;;;;;;;AAmCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaA,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAA2B,EAAK;AAC9D,EAAA,IAAQC,KAAK,GACXD,KAAK,CADCC,KAAK;IAAEC,QAAQ,GACrBF,KAAK,CADQE,QAAQ;IAAEC,MAAM,GAC7BH,KAAK,CADkBG,MAAM;IAAEC,iBAAiB,GAChDJ,KAAK,CAD0BI,iBAAiB;IAAEC,MAAM,GACxDL,KAAK,CAD6CK,MAAM;AAAKC,IAAAA,UAAU,GAAAC,wBAAA,CACvEP,KAAK,EAAAQ,SAAA,CAAA;EACP,IAAMC,QAAQ,GAAGC,iBAAiB,CAACP,MAAM,CAAC,GAAG,MAAM,GAAGA,MAAM;EAE5D,IAAAQ,SAAA,GAAsCC,QAAQ,CAACC,IAAI,CAACC,GAAG,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAL,SAAA,EAAA,CAAA,CAAA;AAAnDM,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA;AAElC,EAAA,IAAMI,SAAS,GAAGC,MAAM,EAAQ;AAEhC,EAAA,IAAMC,QAAQ,GAAGC,OAAO,CAAC,YAAM;AAC7B,IAAA,IAAIC,QAAA,CAAStB,KAAK,CAAC,EAAE;MACnB,OAAOuB,IAAI,CAACC,SAAS,CAACxB,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC;AACA,IAAA,OAAOA,KAAK;AACd,
|
|
1
|
+
{"version":3,"file":"editor-CxXSgnLP.js","sources":["@flatbiz/antd/src/ace-editor-groovy/editor.tsx"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { isObject } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-groovy.js';\nimport 'ace-builds/src-noconflict/snippets/groovy.js';\n\nexport type AceEditorGroovyProps = Omit<\n IAceEditorProps,\n 'mode' | 'value' | 'onChange' | 'theme'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n};\n\n/**\n * groovy编辑器\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 hiddenVerifyBtn、hiddenFormatterBtn可隐藏底部操作按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const AceEditorGroovy = (props: AceEditorGroovyProps) => {\n const { value, onChange, height, autoCompleterList, onLoad, ...otherProps } =\n props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <div\n key={rootNodekey}\n className={classNames('ace-editor-groovy', props.className)}\n style={{ height: heightFt, ...props.style }}\n >\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n placeholder=\"请输入\"\n // theme={'github'}\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"groovy\"\n onLoad={onLoadHandle}\n onChange={onChange}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n );\n};\n"],"names":["AceEditorGroovy","props","value","onChange","height","autoCompleterList","onLoad","otherProps","_objectWithoutProperties","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","getCompletions","_hooks","useCallbackRef","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","Element","Ace","_jsx","className","_classNames","style","_objectSpread","children","ErrorBoundaryWrapper","onRenderReset","undefined","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","placeholder","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-Dhs7idH7.js","sources":["@flatbiz/antd/src/ace-editor-java/editor.tsx"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { isObject } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-java.js';\nimport 'ace-builds/src-noconflict/snippets/java.js';\n\nexport type AceEditorJavaProps = Omit<\n IAceEditorProps,\n 'mode' | 'value' | 'onChange' | 'theme'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n};\n\n/**\n * java编辑器\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 hiddenVerifyBtn、hiddenFormatterBtn可隐藏底部操作按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const AceEditorJava = (props: AceEditorJavaProps) => {\n const { value, onChange, height, autoCompleterList, onLoad, ...otherProps } =\n props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <div\n key={rootNodekey}\n className={classNames('ace-editor-java', props.className)}\n style={{ height: heightFt, ...props.style }}\n >\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n placeholder=\"请输入\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"java\"\n onLoad={onLoadHandle}\n onChange={onChange}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n );\n};\n"],"names":["AceEditorJava","props","value","onChange","height","autoCompleterList","onLoad","otherProps","_objectWithoutProperties","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","getCompletions","_hooks","useCallbackRef","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","Element","Ace","_jsx","className","_classNames","style","_objectSpread","children","ErrorBoundaryWrapper","onRenderReset","undefined","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","placeholder","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode"],"mappings":";;;;;;;;;;;;;;;;AAmCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAyB,EAAK;AAC1D,EAAA,IAAQC,KAAK,GACXD,KAAK,CADCC,KAAK;IAAEC,QAAQ,GACrBF,KAAK,CADQE,QAAQ;IAAEC,MAAM,GAC7BH,KAAK,CADkBG,MAAM;IAAEC,iBAAiB,GAChDJ,KAAK,CAD0BI,iBAAiB;IAAEC,MAAM,GACxDL,KAAK,CAD6CK,MAAM;AAAKC,IAAAA,UAAU,GAAAC,wBAAA,CACvEP,KAAK,EAAAQ,SAAA,CAAA;EACP,IAAMC,QAAQ,GAAGC,iBAAiB,CAACP,MAAM,CAAC,GAAG,MAAM,GAAGA,MAAM;EAE5D,IAAAQ,SAAA,GAAsCC,QAAQ,CAACC,IAAI,CAACC,GAAG,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAL,SAAA,EAAA,CAAA,CAAA;AAAnDM,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA;AAElC,EAAA,IAAMI,SAAS,GAAGC,MAAM,EAAQ;AAEhC,EAAA,IAAMC,QAAQ,GAAGC,OAAO,CAAC,YAAM;AAC7B,IAAA,IAAIC,QAAA,CAAStB,KAAK,CAAC,EAAE;MACnB,OAAOuB,IAAI,CAACC,SAAS,CAACxB,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC;AACA,IAAA,OAAOA,KAAK;AACd,
|
|
1
|
+
{"version":3,"file":"editor-Dhs7idH7.js","sources":["@flatbiz/antd/src/ace-editor-java/editor.tsx"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { isObject } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport {\n isUndefinedOrNull,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-java.js';\nimport 'ace-builds/src-noconflict/snippets/java.js';\n\nexport type AceEditorJavaProps = Omit<\n IAceEditorProps,\n 'mode' | 'value' | 'onChange' | 'theme'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n};\n\n/**\n * java编辑器\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 hiddenVerifyBtn、hiddenFormatterBtn可隐藏底部操作按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const AceEditorJava = (props: AceEditorJavaProps) => {\n const { value, onChange, height, autoCompleterList, onLoad, ...otherProps } =\n props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <div\n key={rootNodekey}\n className={classNames('ace-editor-java', props.className)}\n style={{ height: heightFt, ...props.style }}\n >\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n placeholder=\"请输入\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"java\"\n onLoad={onLoadHandle}\n onChange={onChange}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n );\n};\n"],"names":["AceEditorJava","props","value","onChange","height","autoCompleterList","onLoad","otherProps","_objectWithoutProperties","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","getCompletions","_hooks","useCallbackRef","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","Element","Ace","_jsx","className","_classNames","style","_objectSpread","children","ErrorBoundaryWrapper","onRenderReset","undefined","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","placeholder","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode"],"mappings":";;;;;;;;;;;;;;;;AAmCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAyB,EAAK;AAC1D,EAAA,IAAQC,KAAK,GACXD,KAAK,CADCC,KAAK;IAAEC,QAAQ,GACrBF,KAAK,CADQE,QAAQ;IAAEC,MAAM,GAC7BH,KAAK,CADkBG,MAAM;IAAEC,iBAAiB,GAChDJ,KAAK,CAD0BI,iBAAiB;IAAEC,MAAM,GACxDL,KAAK,CAD6CK,MAAM;AAAKC,IAAAA,UAAU,GAAAC,wBAAA,CACvEP,KAAK,EAAAQ,SAAA,CAAA;EACP,IAAMC,QAAQ,GAAGC,iBAAiB,CAACP,MAAM,CAAC,GAAG,MAAM,GAAGA,MAAM;EAE5D,IAAAQ,SAAA,GAAsCC,QAAQ,CAACC,IAAI,CAACC,GAAG,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAL,SAAA,EAAA,CAAA,CAAA;AAAnDM,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,cAAc,GAAAH,UAAA,CAAA,CAAA,CAAA;AAElC,EAAA,IAAMI,SAAS,GAAGC,MAAM,EAAQ;AAEhC,EAAA,IAAMC,QAAQ,GAAGC,OAAO,CAAC,YAAM;AAC7B,IAAA,IAAIC,QAAA,CAAStB,KAAK,CAAC,EAAE;MACnB,OAAOuB,IAAI,CAACC,SAAS,CAACxB,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,IAAA;AACA,IAAA,OAAOA,KAAK;AACd,EAAA,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;AAEX,EAAA,IAAMyB,cAAc,GAAGC,KAAA,CAAMC,cAAc,CAAC,UAACC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,QAAQ,EAAK;AACxEA,IAAAA,QAAQ,CACN,IAAI,EACJ7B,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAA,MAAA,GAAA,MAAA,GAAjBA,iBAAiB,CAAE8B,GAAG,CAAC,UAACC,IAAI,EAAA;MAAA,OAAM;QAChCC,IAAI,EAAED,IAAI,CAACC,IAAI;QACfnC,KAAK,EAAEkC,IAAI,CAACC,IAAI;AAChB;QACAC,IAAI,EAAEF,IAAI,CAACG;OACZ;AAAA,IAAA,CAAC,CACJ,CAAC;AACH,EAAA,CAAC,CAAC;AAEF,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAAM,EAAK;IAC/BrB,SAAS,CAACsB,OAAO,GAAGD,MAAM;AAC1B;IACA,IAAME,SAAS,GAAGF,MAAM,CAACG,UAAU,CAACD,SAAS,CAC3C,UAACP,IAAI,EAAA;AAAA,MAAA,OAAKA,IAAI,CAACS,EAAE,KAAK,QAAQ;AAAA,IAAA,CAChC,CAAC;IACD,IAAIF,SAAS,IAAI,CAAC,EAAE;AAClBF,MAAAA,MAAM,CAACG,UAAU,CAACD,SAAS,CAAC,GAAG;AAAEhB,QAAAA,cAAc,EAAdA,cAAc;AAAEkB,QAAAA,EAAE,EAAE;OAAU;AACjE,IAAA,CAAC,MAAM;AACLJ,MAAAA,MAAM,CAACG,UAAU,CAACE,IAAI,CAAC;AAAEnB,QAAAA,cAAc,EAAdA,cAAc;AAAEkB,QAAAA,EAAE,EAAE;AAAS,OAAC,CAAC;AAC1D,IAAA;AACAvC,IAAAA,MAAM,aAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAGmC,MAAM,CAAC;EAClB,CAAC;AAED,EAAA,IAAMM,OAAO,GAAI,CAACC,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,MAAA,GAAA,MAAA,GAAHA,GAAG,CAAW,SAAS,CAAC,KAAKA,GAAmB;AAElE,EAAA,oBACEC,GAAA,CAAA,KAAA,EAAA;IAEEC,SAAS,EAAEC,UAAA,CAAW,iBAAiB,EAAElD,KAAK,CAACiD,SAAS,CAAE;AAC1DE,IAAAA,KAAK,EAAAC,cAAA,CAAA;AAAIjD,MAAAA,MAAM,EAAEM;KAAQ,EAAKT,KAAK,CAACmD,KAAK,CAAG;IAAAE,QAAA,eAE5CL,GAAA,CAACM,oBAAoB,EAAA;AACnBC,MAAAA,aAAa,EAAE,SAAfA,aAAaA,GAAQ;AACnBrD,QAAAA,QAAQ,aAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAGsD,SAAS,CAAC;AACrBtC,QAAAA,cAAc,CAACL,IAAI,CAACC,GAAG,EAAE,CAAC;MAC5B,CAAE;AAAAuC,MAAAA,QAAA,eAEFL,GAAA,CAACF,OAAO,EAAAM,cAAA,CAAAA,cAAA,CAAA;AACNK,QAAAA,QAAQ,EAAE,EAAG;AACbC,QAAAA,eAAe,EAAE,IAAK;AACtBC,QAAAA,UAAU,EAAE,IAAK;AACjBC,QAAAA,mBAAmB,EAAE,IAAK;AAC1BzD,QAAAA,MAAM,EAAC,MAAM;AACb0D,QAAAA,KAAK,EAAC,MAAM;AACZC,QAAAA,WAAW,EAAC;AAAK,OAAA,EACbxD,UAAU,CAAA,EAAA,EAAA,EAAA;AACdyD,QAAAA,UAAU,EAAAX,cAAA,CAAA;AACRY,UAAAA,SAAS,EAAE,KAAK;AAChBC,UAAAA,yBAAyB,EAAE,KAAK;AAChCC,UAAAA,wBAAwB,EAAE,IAAI;AAC9BC,UAAAA,cAAc,EAAE,KAAK;AACrBC,UAAAA,eAAe,EAAE,IAAI;AACrBC,UAAAA,OAAO,EAAE;SAAC,EACP/D,UAAU,CAACyD,UAAU,CACxB;AACFO,QAAAA,IAAI,EAAC,MAAM;AACXjE,QAAAA,MAAM,EAAEkC,YAAa;AACrBrC,QAAAA,QAAQ,EAAEA,QAAS;AACnBD,QAAAA,KAAK,EAAEoB;OAAS,CACjB;KACmB;AAAC,GAAA,EAjClBJ,WAkCF,CAAC;AAEV;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-i79rPG9r.js","sources":["@flatbiz/antd/src/ace-editor-xml/validate-xml.ts","@flatbiz/antd/src/ace-editor-xml/editor.tsx"],"sourcesContent":["/**\n * 验证xml格式的正确性\n * ```\n * result / true 验证通过\n * result / false 验证不通过,message为失败描述(使用富文本渲染)\n * ```\n */\nexport const validateXML = (xmlContent: string) => {\n // errorCode 0是xml正确,1是xml错误,2是无法验证\n let errorCode = 0;\n let errorMessage;\n // code for IE\n if (window['ActiveXObject']) {\n const xmlDoc = new window['ActiveXObject']('Microsoft.XMLDOM');\n xmlDoc.async = 'false';\n xmlDoc.loadXML(xmlContent);\n\n if (xmlDoc.parseError.errorCode != 0) {\n errorMessage = `错误code: ${xmlDoc.parseError.errorCode} \\n`;\n errorMessage = `${errorMessage} 错误原因: ${xmlDoc.parseError.reason} \\n`;\n errorMessage = `${errorMessage} 错误位置: ${xmlDoc.parseError.line}`;\n errorCode = 1;\n } else {\n errorMessage = '格式正确';\n }\n }\n // code for Mozilla, Firefox, Opera, chrome, safari,etc.\n else if (document.implementation['createDocument']) {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xmlContent, 'text/xml');\n const error = xmlDoc.getElementsByTagName('parsererror');\n if (error.length > 0) {\n if (xmlDoc.documentElement.nodeName == 'parsererror') {\n errorCode = 1;\n errorMessage = xmlDoc.documentElement.childNodes[0].nodeValue;\n } else {\n errorCode = 1;\n errorMessage = xmlDoc.getElementsByTagName('parsererror')[0].innerHTML;\n }\n } else {\n errorMessage = '格式正确';\n }\n } else {\n errorCode = 2;\n errorMessage = '浏览器不支持验证,无法验证xml正确性';\n }\n return {\n message: errorMessage,\n result: errorCode == 0 ? true : false,\n };\n};\n","import type { CSSProperties, ReactElement } from 'react';\nimport { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { Space } from 'antd';\nimport xmlFormat from 'xml-formatter';\nimport { isObject } from '@dimjs/lang';\nimport {\n isUndefinedOrNull,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport { FlexLayout } from '../flex-layout/flex-layout.jsx';\nimport { validateXML } from './validate-xml.js';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-xml.js';\nimport 'ace-builds/src-noconflict/snippets/xml.js';\n\nexport type AceEditorXmlProps = Omit<\n IAceEditorProps,\n 'mode' | 'value' | 'onChange' | 'theme'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /** 隐藏【验证数据】按钮 */\n hiddenVerifyBtn?: boolean;\n /** 是否隐藏内部验证异常文案 */\n hiddenErrorMsg?: boolean;\n /** 隐藏【美化】按钮 */\n hiddenFormatterBtn?: boolean;\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n /** 底部额外布局 */\n footerExtraRender?: (children: ReactElement) => ReactElement;\n footerStyle?: CSSProperties;\n};\n\n/**\n * xml编辑器\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 hiddenVerifyBtn、hiddenFormatterBtn可隐藏底部操作按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const AceEditorXml = (props: AceEditorXmlProps) => {\n const {\n value,\n onChange,\n height,\n hiddenVerifyBtn,\n hiddenFormatterBtn,\n autoCompleterList,\n onLoad,\n hiddenErrorMsg,\n ...otherProps\n } = props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n const [errorMsg, setErrorMsg] = useState<string>();\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const handleChange = hooks.useCallbackRef((content: string) => {\n if (errorMsg) {\n setErrorMsg(undefined);\n }\n onChange?.(content);\n });\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const inputValueVerify = (inputValue: string) => {\n const result = validateXML(inputValue);\n if (result.result) {\n onChange?.(inputValue);\n } else {\n setErrorMsg(result.message);\n }\n };\n\n const footer = (\n <Space style={{ alignItems: 'flex-start' }}>\n <ButtonWrapper\n hidden={hiddenFormatterBtn === true}\n type=\"primary\"\n ghost\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n const result = xmlFormat as any;\n onChange?.(result(currentValue || ''));\n }}\n >\n 美化\n </ButtonWrapper>\n <ButtonWrapper\n hidden={hiddenVerifyBtn === true}\n type=\"primary\"\n ghost\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n if (!currentValue) {\n onChange?.(currentValue);\n return;\n }\n inputValueVerify(currentValue);\n }}\n >\n 验证&格式化数据\n </ButtonWrapper>\n {!hiddenErrorMsg && errorMsg ? (\n <span\n style={{ color: 'red' }}\n dangerouslySetInnerHTML={{ __html: errorMsg }}\n ></span>\n ) : null}\n </Space>\n );\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <FlexLayout\n fullIndex={0}\n className=\"ace-editor-xml\"\n key={rootNodekey}\n style={{ height: heightFt }}\n >\n <div className=\"aex-content\">\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n placeholder=\"请输入\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"xml\"\n onLoad={onLoadHandle}\n onChange={handleChange}\n onBlur={(_event, editor) => {\n const value = editor?.getValue();\n if (value) {\n inputValueVerify(value);\n }\n }}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n <div\n className=\"ace-editor-xml-footer\"\n style={{ marginTop: 10, ...props.footerStyle }}\n >\n {props.footerExtraRender ? props.footerExtraRender(footer) : footer}\n </div>\n </FlexLayout>\n );\n};\n"],"names":["validateXML","xmlContent","errorCode","errorMessage","window","xmlDoc","async","loadXML","parseError","concat","reason","line","document","implementation","parser","DOMParser","parseFromString","error","getElementsByTagName","length","documentElement","nodeName","childNodes","nodeValue","innerHTML","message","result","AceEditorXml","props","value","onChange","height","hiddenVerifyBtn","hiddenFormatterBtn","autoCompleterList","onLoad","hiddenErrorMsg","otherProps","_objectWithoutProperties","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","_useState3","_useState4","errorMsg","setErrorMsg","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","handleChange","_hooks","useCallbackRef","content","undefined","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","inputValueVerify","inputValue","footer","_jsxs","Space","style","alignItems","children","_jsx","ButtonWrapper","hidden","type","ghost","onClick","_editorRef$current","currentValue","getValue","xmlFormat","_editorRef$current2","color","dangerouslySetInnerHTML","__html","Element","Ace","FlexLayout","fullIndex","className","ErrorBoundaryWrapper","onRenderReset","_objectSpread","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","placeholder","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","onBlur","_event","marginTop","footerStyle","footerExtraRender"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor-i79rPG9r.js","sources":["@flatbiz/antd/src/ace-editor-xml/validate-xml.ts","@flatbiz/antd/src/ace-editor-xml/editor.tsx"],"sourcesContent":["/**\n * 验证xml格式的正确性\n * ```\n * result / true 验证通过\n * result / false 验证不通过,message为失败描述(使用富文本渲染)\n * ```\n */\nexport const validateXML = (xmlContent: string) => {\n // errorCode 0是xml正确,1是xml错误,2是无法验证\n let errorCode = 0;\n let errorMessage;\n // code for IE\n if (window['ActiveXObject']) {\n const xmlDoc = new window['ActiveXObject']('Microsoft.XMLDOM');\n xmlDoc.async = 'false';\n xmlDoc.loadXML(xmlContent);\n\n if (xmlDoc.parseError.errorCode != 0) {\n errorMessage = `错误code: ${xmlDoc.parseError.errorCode} \\n`;\n errorMessage = `${errorMessage} 错误原因: ${xmlDoc.parseError.reason} \\n`;\n errorMessage = `${errorMessage} 错误位置: ${xmlDoc.parseError.line}`;\n errorCode = 1;\n } else {\n errorMessage = '格式正确';\n }\n }\n // code for Mozilla, Firefox, Opera, chrome, safari,etc.\n else if (document.implementation['createDocument']) {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xmlContent, 'text/xml');\n const error = xmlDoc.getElementsByTagName('parsererror');\n if (error.length > 0) {\n if (xmlDoc.documentElement.nodeName == 'parsererror') {\n errorCode = 1;\n errorMessage = xmlDoc.documentElement.childNodes[0].nodeValue;\n } else {\n errorCode = 1;\n errorMessage = xmlDoc.getElementsByTagName('parsererror')[0].innerHTML;\n }\n } else {\n errorMessage = '格式正确';\n }\n } else {\n errorCode = 2;\n errorMessage = '浏览器不支持验证,无法验证xml正确性';\n }\n return {\n message: errorMessage,\n result: errorCode == 0 ? true : false,\n };\n};\n","import type { CSSProperties, ReactElement } from 'react';\nimport { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { Space } from 'antd';\nimport xmlFormat from 'xml-formatter';\nimport { isObject } from '@dimjs/lang';\nimport {\n isUndefinedOrNull,\n type TAny,\n type TPlainObject,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { ButtonWrapper } from '../button-wrapper/button-wrapper.jsx';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper/error-boundary.jsx';\nimport { FlexLayout } from '../flex-layout/flex-layout.jsx';\nimport { validateXML } from './validate-xml.js';\nimport 'ace-builds/src-noconflict/ext-language_tools.js';\nimport 'ace-builds/src-noconflict/mode-xml.js';\nimport 'ace-builds/src-noconflict/snippets/xml.js';\n\nexport type AceEditorXmlProps = Omit<\n IAceEditorProps,\n 'mode' | 'value' | 'onChange' | 'theme'\n> & {\n /** 编辑器高度,默认值:100%,可输入值例如 300px、100% */\n height?: string;\n value?: string | TPlainObject | TPlainObject[];\n onChange?: (value?: string | TPlainObject | TPlainObject[]) => void;\n /** 配置输入自动提示关键字 */\n autoCompleterList?: { name: string; desc?: string }[];\n /** 隐藏【验证数据】按钮 */\n hiddenVerifyBtn?: boolean;\n /** 是否隐藏内部验证异常文案 */\n hiddenErrorMsg?: boolean;\n /** 隐藏【美化】按钮 */\n hiddenFormatterBtn?: boolean;\n /**\n * 编辑器主题配置,例如:github、terminal、xcode\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n /** 底部额外布局 */\n footerExtraRender?: (children: ReactElement) => ReactElement;\n footerStyle?: CSSProperties;\n};\n\n/**\n * xml编辑器\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 hiddenVerifyBtn、hiddenFormatterBtn可隐藏底部操作按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const AceEditorXml = (props: AceEditorXmlProps) => {\n const {\n value,\n onChange,\n height,\n hiddenVerifyBtn,\n hiddenFormatterBtn,\n autoCompleterList,\n onLoad,\n hiddenErrorMsg,\n ...otherProps\n } = props;\n const heightFt = isUndefinedOrNull(height) ? '100%' : height;\n\n const [rootNodekey, setRootNodekey] = useState(Date.now());\n const [errorMsg, setErrorMsg] = useState<string>();\n\n const editorRef = useRef<TAny>();\n\n const valueNew = useMemo(() => {\n if (isObject(value)) {\n return JSON.stringify(value, null, 2);\n }\n return value as string | undefined;\n }, [value]);\n\n const handleChange = hooks.useCallbackRef((content: string) => {\n if (errorMsg) {\n setErrorMsg(undefined);\n }\n onChange?.(content);\n });\n\n const getCompletions = hooks.useCallbackRef((_a, _b, _c, _d, callback) => {\n callback(\n null,\n autoCompleterList?.map((item) => ({\n name: item.name,\n value: item.name,\n // score: 100,\n meta: item.desc,\n }))\n );\n });\n\n const onLoadHandle = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex(\n (item) => item.id === 'custom'\n );\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\n onLoad?.(editor);\n };\n\n const inputValueVerify = (inputValue: string) => {\n const result = validateXML(inputValue);\n if (result.result) {\n onChange?.(inputValue);\n } else {\n setErrorMsg(result.message);\n }\n };\n\n const footer = (\n <Space style={{ alignItems: 'flex-start' }}>\n <ButtonWrapper\n hidden={hiddenFormatterBtn === true}\n type=\"primary\"\n ghost\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n const result = xmlFormat as any;\n onChange?.(result(currentValue || ''));\n }}\n >\n 美化\n </ButtonWrapper>\n <ButtonWrapper\n hidden={hiddenVerifyBtn === true}\n type=\"primary\"\n ghost\n onClick={() => {\n const currentValue = editorRef.current?.getValue();\n if (!currentValue) {\n onChange?.(currentValue);\n return;\n }\n inputValueVerify(currentValue);\n }}\n >\n 验证&格式化数据\n </ButtonWrapper>\n {!hiddenErrorMsg && errorMsg ? (\n <span\n style={{ color: 'red' }}\n dangerouslySetInnerHTML={{ __html: errorMsg }}\n ></span>\n ) : null}\n </Space>\n );\n\n const Element = ((Ace as any)?.['default'] || (Ace as any)) as any;\n\n return (\n <FlexLayout\n fullIndex={0}\n className=\"ace-editor-xml\"\n key={rootNodekey}\n style={{ height: heightFt }}\n >\n <div className=\"aex-content\">\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Element\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\n width=\"auto\"\n placeholder=\"请输入\"\n {...otherProps}\n setOptions={{\n useWorker: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: true,\n enableSnippets: false,\n showLineNumbers: true,\n tabSize: 2,\n ...otherProps.setOptions,\n }}\n mode=\"xml\"\n onLoad={onLoadHandle}\n onChange={handleChange}\n onBlur={(_event, editor) => {\n const value = editor?.getValue();\n if (value) {\n inputValueVerify(value);\n }\n }}\n value={valueNew}\n />\n </ErrorBoundaryWrapper>\n </div>\n <div\n className=\"ace-editor-xml-footer\"\n style={{ marginTop: 10, ...props.footerStyle }}\n >\n {props.footerExtraRender ? props.footerExtraRender(footer) : footer}\n </div>\n </FlexLayout>\n );\n};\n"],"names":["validateXML","xmlContent","errorCode","errorMessage","window","xmlDoc","async","loadXML","parseError","concat","reason","line","document","implementation","parser","DOMParser","parseFromString","error","getElementsByTagName","length","documentElement","nodeName","childNodes","nodeValue","innerHTML","message","result","AceEditorXml","props","value","onChange","height","hiddenVerifyBtn","hiddenFormatterBtn","autoCompleterList","onLoad","hiddenErrorMsg","otherProps","_objectWithoutProperties","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","_useState2","_slicedToArray","rootNodekey","setRootNodekey","_useState3","_useState4","errorMsg","setErrorMsg","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","handleChange","_hooks","useCallbackRef","content","undefined","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoadHandle","editor","current","findIndex","completers","id","push","inputValueVerify","inputValue","footer","_jsxs","Space","style","alignItems","children","_jsx","ButtonWrapper","hidden","type","ghost","onClick","_editorRef$current","currentValue","getValue","xmlFormat","_editorRef$current2","color","dangerouslySetInnerHTML","__html","Element","Ace","FlexLayout","fullIndex","className","ErrorBoundaryWrapper","onRenderReset","_objectSpread","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","placeholder","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","onBlur","_event","marginTop","footerStyle","footerExtraRender"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-boundary-D6RX4EQZ.js","sources":["@flatbiz/antd/src/error-boundary-wrapper/error-boundary.tsx"],"sourcesContent":["import { Component, Fragment, type ReactNode } from 'react';\nimport { Alert, Button } from 'antd';\nimport { isUndefinedOrNull, type TNoopDefine } from '@flatbiz/utils';\nimport { FlexLayout } from '../flex-layout/flex-layout.jsx';\n\ninterface ErrorBoundaryProps {\n message?: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n onRenderReset?: TNoopDefine;\n /** 栈消息最大高度,默认值200 */\n stackMaxHeight?: number | 'auto';\n}\n\ninterface ErrorBoundaryStates {\n error?: Error | null;\n info?: {\n componentStack?: string;\n };\n}\n\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryStates> {\n state = {\n error: undefined,\n info: {\n componentStack: '',\n },\n };\n\n componentDidCatch(error: Error | null, info: object) {\n this.setState({ error, info });\n }\n\n render() {\n const { message, description, children, onRenderReset } = this.props;\n const { error, info } = this.state;\n const componentStack =\n info && info.componentStack ? info.componentStack : null;\n const errorMessage =\n typeof message === 'undefined' ? (error || '').toString() : message;\n const errorDescription =\n typeof description === 'undefined' ? componentStack : description;\n const stackMaxHeight = isUndefinedOrNull(this.props.stackMaxHeight)\n ? 200\n : this.props.stackMaxHeight;\n if (error) {\n return (\n <Alert\n type=\"error\"\n message={\n <FlexLayout fullIndex={0} direction=\"horizontal\">\n <span>{errorMessage}</span>\n <Button type=\"primary\" ghost size=\"small\" onClick={onRenderReset}>\n 重置\n </Button>\n </FlexLayout>\n }\n description={\n <Fragment>\n <div style={{ maxHeight: stackMaxHeight, overflow: 'auto' }}>\n <pre style={{ fontSize: '0.9em' }}>{errorDescription}</pre>\n </div>\n </Fragment>\n }\n />\n );\n }\n return children;\n }\n}\n\n/**\n * react 异常拦截\n */\nexport const ErrorBoundaryWrapper = ErrorBoundary;\n"],"names":["ErrorBoundary","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","error","undefined","info","componentStack","_inherits","_createClass","key","value","componentDidCatch","setState","render","_this$props","props","message","description","children","onRenderReset","_this$state","state","errorMessage","toString","errorDescription","stackMaxHeight","isUndefinedOrNull","_jsx","Alert","type","_jsxs","FlexLayout","fullIndex","direction","Button","ghost","size","onClick","Fragment","style","maxHeight","overflow","fontSize","Component","ErrorBoundaryWrapper"],"mappings":";;;;;;;;;AAG4D,IAkBtDA,aAAa,0BAAAC,UAAA,EAAA;AAAA,EAAA,SAAAD,
|
|
1
|
+
{"version":3,"file":"error-boundary-D6RX4EQZ.js","sources":["@flatbiz/antd/src/error-boundary-wrapper/error-boundary.tsx"],"sourcesContent":["import { Component, Fragment, type ReactNode } from 'react';\nimport { Alert, Button } from 'antd';\nimport { isUndefinedOrNull, type TNoopDefine } from '@flatbiz/utils';\nimport { FlexLayout } from '../flex-layout/flex-layout.jsx';\n\ninterface ErrorBoundaryProps {\n message?: ReactNode;\n description?: ReactNode;\n children?: ReactNode;\n onRenderReset?: TNoopDefine;\n /** 栈消息最大高度,默认值200 */\n stackMaxHeight?: number | 'auto';\n}\n\ninterface ErrorBoundaryStates {\n error?: Error | null;\n info?: {\n componentStack?: string;\n };\n}\n\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryStates> {\n state = {\n error: undefined,\n info: {\n componentStack: '',\n },\n };\n\n componentDidCatch(error: Error | null, info: object) {\n this.setState({ error, info });\n }\n\n render() {\n const { message, description, children, onRenderReset } = this.props;\n const { error, info } = this.state;\n const componentStack =\n info && info.componentStack ? info.componentStack : null;\n const errorMessage =\n typeof message === 'undefined' ? (error || '').toString() : message;\n const errorDescription =\n typeof description === 'undefined' ? componentStack : description;\n const stackMaxHeight = isUndefinedOrNull(this.props.stackMaxHeight)\n ? 200\n : this.props.stackMaxHeight;\n if (error) {\n return (\n <Alert\n type=\"error\"\n message={\n <FlexLayout fullIndex={0} direction=\"horizontal\">\n <span>{errorMessage}</span>\n <Button type=\"primary\" ghost size=\"small\" onClick={onRenderReset}>\n 重置\n </Button>\n </FlexLayout>\n }\n description={\n <Fragment>\n <div style={{ maxHeight: stackMaxHeight, overflow: 'auto' }}>\n <pre style={{ fontSize: '0.9em' }}>{errorDescription}</pre>\n </div>\n </Fragment>\n }\n />\n );\n }\n return children;\n }\n}\n\n/**\n * react 异常拦截\n */\nexport const ErrorBoundaryWrapper = ErrorBoundary;\n"],"names":["ErrorBoundary","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","error","undefined","info","componentStack","_inherits","_createClass","key","value","componentDidCatch","setState","render","_this$props","props","message","description","children","onRenderReset","_this$state","state","errorMessage","toString","errorDescription","stackMaxHeight","isUndefinedOrNull","_jsx","Alert","type","_jsxs","FlexLayout","fullIndex","direction","Button","ghost","size","onClick","Fragment","style","maxHeight","overflow","fontSize","Component","ErrorBoundaryWrapper"],"mappings":"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"}
|