@flatbiz/antd 4.5.22 → 4.5.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/ace-editor-json/index.js +1 -1
- package/esm/ace-editor-json/index.js.map +1 -1
- package/esm/ace-editor-mysql/index.js +1 -1
- package/esm/ace-editor-mysql/index.js.map +1 -1
- package/esm/ace-editor-xml/index.js +1 -1
- package/esm/ace-editor-xml/index.js.map +1 -1
- package/esm/bootstrap/index.js +1 -1
- package/esm/bootstrap/index.js.map +1 -1
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate/index.js.map +1 -1
- package/esm/button-wrapper/index.js +1 -1
- package/esm/button-wrapper/index.js.map +1 -1
- package/esm/check-list/index.js +1 -1
- package/esm/check-list/index.js.map +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js +3 -1
- package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/dialog-alert/index.js +1 -1
- package/esm/dialog-alert/index.js.map +1 -1
- package/esm/dialog-confirm/index.js +1 -1
- package/esm/dialog-confirm/index.js.map +1 -1
- package/esm/dialog-drawer/index.js +1 -1
- package/esm/dialog-drawer/index.js.map +1 -1
- package/esm/dialog-drawer-content/index.js +1 -1
- package/esm/dialog-drawer-content/index.js.map +1 -1
- package/esm/dialog-modal/index.js +1 -1
- package/esm/dialog-modal/index.js.map +1 -1
- package/esm/drag-collapse/index.js +1 -1
- package/esm/drag-collapse/index.js.map +1 -1
- package/esm/drag-collapse-form-list/index.js +1 -1
- package/esm/drag-collapse-form-list/index.js.map +1 -1
- package/esm/drag-editable-table/index.js +1 -1
- package/esm/drag-editable-table/index.js.map +1 -1
- package/esm/drag-editable-table-pro/index.js +1 -1
- package/esm/drag-editable-table-pro/index.js.map +1 -1
- package/esm/drag-form-list/index.js +1 -1
- package/esm/drag-form-list/index.js.map +1 -1
- package/esm/dropdown-menu-wrapper/index.js +1 -1
- package/esm/dropdown-menu-wrapper/index.js.map +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/editable-table-pro/index.js +1 -1
- package/esm/editable-table-pro/index.js.map +1 -1
- package/esm/fba-app/index.js +1 -1
- package/esm/fba-app/index.js.map +1 -1
- package/esm/fba-utils/index.js +1 -1
- package/esm/fba-utils/index.js.map +1 -1
- package/esm/form-item-wrapper/index.js +1 -1
- package/esm/form-item-wrapper/index.js.map +1 -1
- package/esm/form-list-wrapper/index.js +1 -1
- package/esm/form-list-wrapper/index.js.map +1 -1
- package/esm/form-wrapper/index.js +1 -1
- package/esm/form-wrapper/index.js.map +1 -1
- package/esm/index.js +1 -1
- package/esm/json-editor/index.js +1 -1
- package/esm/json-editor/index.js.map +1 -1
- package/esm/local-loading/index.js +1 -1
- package/esm/local-loading/index.js.map +1 -1
- package/esm/pdf/index.js +1 -1
- package/esm/pdf/index.js.map +1 -1
- package/esm/permission/index.js +1 -1
- package/esm/permission/index.js.map +1 -1
- package/esm/search-form/index.js +1 -1
- package/esm/search-form/index.js.map +1 -1
- package/esm/table-cell-render/index.js +1 -1
- package/esm/table-cell-render/index.js.map +1 -1
- package/esm/text-overflow-render/index.js +1 -1
- package/esm/text-overflow-render/index.js.map +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js +5 -2
- package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
- package/index.d.ts +94 -20
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-list-wrapper/form-list-wrapper.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid, toArray } from '@flatbiz/utils';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useRef, type ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormItemGroup } from '../form-item-group';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport './style.less';\nimport { type FormListWrapperProps } from './types';\n\ntype FormListChildrenWrapperProps = {\n wrapper?: FormListWrapperProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\nconst FormListTitleRender = (props: {\n formListItemTitleList: FormListWrapperProps['formListItemTitleList'];\n formListItemTitleHProps?: FormListWrapperProps['formListItemTitleHorizontalUnionProps'];\n}) => {\n return (\n <FormItemGroup.HorizontalUnion\n {...props.formListItemTitleHProps}\n style={{ marginBottom: 10, ...props.formListItemTitleHProps?.style }}\n groupConfigList={\n props.formListItemTitleList?.map((item) => {\n if (item.required) {\n return {\n width: item.width,\n mainItem: (\n <div style={{ textAlign: 'center' }}>\n <TextSymbolWrapper text={item.title} symbolType=\"required\" />\n </div>\n ),\n };\n }\n return {\n width: item.width,\n mainItem: <div style={{ textAlign: 'center' }}>{item.title}</div>,\n };\n }) || []\n }\n />\n );\n};\n\n/**\n * Form.List 包装组件,使用更简单\n * ```\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. 通过 itemGap 设置FormList Item 之间间隙\n * ```\n */\nexport const FormListWrapper = (props: FormListWrapperProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n const uidFieldName = props.uidFieldName || 'uid';\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n const gapHalf = props.itemGap ? props.itemGap / 2 : 8;\n\n return (\n <div className={classNames('form-list-wrapper', props.className)} style={props.style}>\n <Form.List name={props.name} rules={props.rules}>\n {(fields, operation, { errors }) => {\n formListOperationRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.formListItemTitleList?.length ? (\n <FormListTitleRender\n formListItemTitleList={props.formListItemTitleList}\n formListItemTitleHProps={props.formListItemTitleHorizontalUnionProps}\n />\n ) : null}\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <Fragment>\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n {fields.map((field, index) => {\n const formStageCompleteName = [...stageCompleteName, field.name];\n return (\n <div\n key={field.key}\n className=\"form-list-item-content\"\n style={{ padding: `${gapHalf}px 0 ${gapHalf}px 0` }}\n >\n {props.children({\n formListFieldData: field,\n operation: operation,\n formStageCompleteName,\n prevCompleteName: stageCompleteName,\n index,\n getInsideFormItemName: (key) => {\n const keys = toArray<string>(key);\n return [field.name, ...keys];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(formStageCompleteName);\n },\n uidKey: uidFieldName,\n })}\n </div>\n );\n })}\n </Fragment>\n </FormListChildrenWrapper>\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({\n [uidFieldName]: getUuid(),\n ...props.getAddRowDefaultValues?.(),\n })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n\n <Form.ErrorList\n errors={\n errors?.length\n ? [\n <div\n key=\"0\"\n style={{\n color: '#ff4d4f',\n padding: '5px',\n }}\n >\n {errors}\n </div>,\n ]\n : undefined\n }\n />\n </Fragment>\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["FormListChildrenWrapper","props","wrapper","children","FormListTitleRender","_props$formListItemTi","_props$formListItemTi2","_jsx","FormItemGroup","HorizontalUnion","_extends","formListItemTitleHProps","style","marginBottom","groupConfigList","formListItemTitleList","map","item","required","width","mainItem","textAlign","TextSymbolWrapper","text","title","symbolType","FormListWrapper","stageCompleteName","concat","prevCompleteName","toArray","name","form","Form","useFormInstance","formListOperationRef","useRef","uidFieldName","formListValue","useWatch","gapHalf","itemGap","className","_classNames","List","rules","fields","operation","_ref","_props$formListItemTi3","errors","current","_jsxs","borderRadius","border","length","formListItemTitleHorizontalUnionProps","hiddenEmptyRender","Empty","image","PRESENTED_IMAGE_SIMPLE","margin","Fragment","formListChildrenWrapper","field","index","formStageCompleteName","padding","formListFieldData","getInsideFormItemName","key","keys","getInsideFormItemData","getFieldValue","uidKey","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","getUuid","getAddRowDefaultValues","ErrorList","color","undefined"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-list-wrapper/form-list-wrapper.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid, toArray } from '@flatbiz/utils';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useRef, type ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormItemGroup } from '../form-item-group';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport './style.less';\nimport { type FormListWrapperProps } from './types';\n\ntype FormListChildrenWrapperProps = {\n wrapper?: FormListWrapperProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\nconst FormListTitleRender = (props: {\n formListItemTitleList: FormListWrapperProps['formListItemTitleList'];\n formListItemTitleHProps?: FormListWrapperProps['formListItemTitleHorizontalUnionProps'];\n}) => {\n return (\n <FormItemGroup.HorizontalUnion\n {...props.formListItemTitleHProps}\n style={{ marginBottom: 10, ...props.formListItemTitleHProps?.style }}\n groupConfigList={\n props.formListItemTitleList?.map((item) => {\n if (item.required) {\n return {\n width: item.width,\n mainItem: (\n <div style={{ textAlign: 'center' }}>\n <TextSymbolWrapper text={item.title} symbolType=\"required\" />\n </div>\n ),\n };\n }\n return {\n width: item.width,\n mainItem: <div style={{ textAlign: 'center' }}>{item.title}</div>,\n };\n }) || []\n }\n />\n );\n};\n\n/**\n * Form.List 包装组件,使用更简单\n * ```\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. 通过 itemGap 设置FormList Item 之间间隙\n * ```\n */\nexport const FormListWrapper = (props: FormListWrapperProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n const uidFieldName = props.uidFieldName || 'uid';\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n const gapHalf = props.itemGap ? props.itemGap / 2 : 8;\n\n return (\n <div className={classNames('form-list-wrapper', props.className)} style={props.style}>\n <Form.List name={props.name} rules={props.rules}>\n {(fields, operation, { errors }) => {\n formListOperationRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.formListItemTitleList?.length ? (\n <FormListTitleRender\n formListItemTitleList={props.formListItemTitleList}\n formListItemTitleHProps={props.formListItemTitleHorizontalUnionProps}\n />\n ) : null}\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <Fragment>\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n {fields.map((field, index) => {\n const formStageCompleteName = [...stageCompleteName, field.name];\n return (\n <div\n key={field.key}\n className=\"form-list-item-content\"\n style={{ padding: `${gapHalf}px 0 ${gapHalf}px 0` }}\n >\n {props.children({\n formListFieldData: field,\n operation: operation,\n formStageCompleteName,\n prevCompleteName: stageCompleteName,\n index,\n getInsideFormItemName: (key) => {\n const keys = toArray<string>(key);\n return [field.name, ...keys];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(formStageCompleteName);\n },\n uidKey: uidFieldName,\n })}\n </div>\n );\n })}\n </Fragment>\n </FormListChildrenWrapper>\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({\n [uidFieldName]: getUuid(),\n ...props.getAddRowDefaultValues?.(),\n })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n\n <Form.ErrorList\n errors={\n errors?.length\n ? [\n <div\n key=\"0\"\n style={{\n color: '#ff4d4f',\n padding: '5px',\n }}\n >\n {errors}\n </div>,\n ]\n : undefined\n }\n />\n </Fragment>\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["FormListChildrenWrapper","props","wrapper","children","FormListTitleRender","_props$formListItemTi","_props$formListItemTi2","_jsx","FormItemGroup","HorizontalUnion","_extends","formListItemTitleHProps","style","marginBottom","groupConfigList","formListItemTitleList","map","item","required","width","mainItem","textAlign","TextSymbolWrapper","text","title","symbolType","FormListWrapper","stageCompleteName","concat","prevCompleteName","toArray","name","form","Form","useFormInstance","formListOperationRef","useRef","uidFieldName","formListValue","useWatch","gapHalf","itemGap","className","_classNames","List","rules","fields","operation","_ref","_props$formListItemTi3","errors","current","_jsxs","borderRadius","border","length","formListItemTitleHorizontalUnionProps","hiddenEmptyRender","Empty","image","PRESENTED_IMAGE_SIMPLE","margin","Fragment","formListChildrenWrapper","field","index","formStageCompleteName","padding","formListFieldData","getInsideFormItemName","key","keys","getInsideFormItemData","getFieldValue","uidKey","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","getUuid","getAddRowDefaultValues","ErrorList","color","undefined"],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../pre-defined-class-name/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{a,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{Form as l}from"antd";import{useMemo as r}from"react";import{preDefinedClassName as m}from"../pre-defined-class-name/index.js";import{jsx as t}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";var s=["labelWidth","labelItemVertical","labelAlign","formItemGap","className"];var i=function i(o){var n=o.labelWidth,c=o.labelItemVertical,p=o.labelAlign,f=o.formItemGap,b=o.className,u=a(o,s);var d=r((function(){return m.getFormLayoutClassName({labelWidth:n,labelItemVertical:c,labelAlign:p,formItemGap:f,className:b})}),[n,c,p,f]);return t(l,e({},u,{className:d}))};export{i as FormWrapper};
|
|
5
|
+
import{a,_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{Form as l}from"antd";import{useMemo as r}from"react";import{preDefinedClassName as m}from"../pre-defined-class-name/index.js";import{jsx as t}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";var s=["labelWidth","labelItemVertical","labelAlign","formItemGap","className"];var i=function i(o){var n=o.labelWidth,c=o.labelItemVertical,p=o.labelAlign,f=o.formItemGap,b=o.className,u=a(o,s);var d=r((function(){return m.getFormLayoutClassName({labelWidth:n,labelItemVertical:c,labelAlign:p,formItemGap:f,className:b})}),[n,c,p,f,b]);return t(l,e({},u,{className:d}))};export{i as FormWrapper};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-wrapper/form-wrapper.tsx"],"sourcesContent":["import { Form, FormProps } from 'antd';\nimport { ReactNode, useMemo } from 'react';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormWrapperProps<Values = any> = TFormLayoutPreClassNameProps &\n FormProps<Values> & {\n children: ReactNode;\n };\n\n/**\n * Form 包装组件,添加对formItem的布局控制\n * ```\n * 1. 内置布局样式使用 preDefinedClassName.form\n * ```\n */\nexport const FormWrapper = (props: FormWrapperProps) => {\n const { labelWidth, labelItemVertical, labelAlign, formItemGap, className, ...rest } = props;\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n formItemGap,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign, formItemGap]);\n\n return <Form {...rest} className={innerClassName}></Form>;\n};\n"],"names":["FormWrapper","props","labelWidth","labelItemVertical","labelAlign","formItemGap","className","rest","_objectWithoutPropertiesLoose","_excluded","innerClassName","useMemo","preDefinedClassName","getFormLayoutClassName","_jsx","Form","_extends"],"mappings":";qWAgBaA,EAAc,SAAdA,EAAeC,GAC1B,IAAQC,EAA+ED,EAA/EC,WAAYC,EAAmEF,EAAnEE,kBAAmBC,EAAgDH,EAAhDG,WAAYC,EAAoCJ,EAApCI,YAAaC,EAAuBL,EAAvBK,UAAcC,EAAIC,EAAKP,EAAKQ,GAE5F,IAAMC,EAAiBC,GAAQ,WAC7B,OAAOC,EAAoBC,uBAAuB,CAChDX,WAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,UAAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-wrapper/form-wrapper.tsx"],"sourcesContent":["import { Form, FormProps } from 'antd';\nimport { ReactNode, useMemo } from 'react';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormWrapperProps<Values = any> = TFormLayoutPreClassNameProps &\n FormProps<Values> & {\n children: ReactNode;\n };\n\n/**\n * Form 包装组件,添加对formItem的布局控制\n * ```\n * 1. 内置布局样式使用 preDefinedClassName.form\n * ```\n */\nexport const FormWrapper = (props: FormWrapperProps) => {\n const { labelWidth, labelItemVertical, labelAlign, formItemGap, className, ...rest } = props;\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n formItemGap,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign, formItemGap, className]);\n\n return <Form {...rest} className={innerClassName}></Form>;\n};\n"],"names":["FormWrapper","props","labelWidth","labelItemVertical","labelAlign","formItemGap","className","rest","_objectWithoutPropertiesLoose","_excluded","innerClassName","useMemo","preDefinedClassName","getFormLayoutClassName","_jsx","Form","_extends"],"mappings":";qWAgBaA,EAAc,SAAdA,EAAeC,GAC1B,IAAQC,EAA+ED,EAA/EC,WAAYC,EAAmEF,EAAnEE,kBAAmBC,EAAgDH,EAAhDG,WAAYC,EAAoCJ,EAApCI,YAAaC,EAAuBL,EAAvBK,UAAcC,EAAIC,EAAKP,EAAKQ,GAE5F,IAAMC,EAAiBC,GAAQ,WAC7B,OAAOC,EAAoBC,uBAAuB,CAChDX,WAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,UAAAA,GAEJ,GAAG,CAACJ,EAAYC,EAAmBC,EAAYC,EAAaC,IAE5D,OAAOQ,EAACC,EAAIC,KAAKT,EAAI,CAAED,UAAWI,IACpC"}
|
package/esm/index.js
CHANGED
|
@@ -39,6 +39,7 @@ import './data-render/index.css';
|
|
|
39
39
|
import './date-picker-wrapper/index.css';
|
|
40
40
|
import './date-range-picker-wrapper/index.css';
|
|
41
41
|
import './date-range-picker-wrapper-form-item/index.css';
|
|
42
|
+
import './form-item-hidden/index.css';
|
|
42
43
|
import './form-item-wrapper/index.css';
|
|
43
44
|
import './pre-defined-class-name/index.css';
|
|
44
45
|
import './delete-node/index.css';
|
|
@@ -51,7 +52,6 @@ import './drag-collapse-form-list/index.css';
|
|
|
51
52
|
import './drag-editable-table/index.css';
|
|
52
53
|
import './editable-table/index.css';
|
|
53
54
|
import './text-symbol-wrapper/index.css';
|
|
54
|
-
import './form-item-hidden/index.css';
|
|
55
55
|
import './selector-wrapper/index.css';
|
|
56
56
|
import './switch-wrapper/index.css';
|
|
57
57
|
import './upload-wrapper/index.css';
|
package/esm/json-editor/index.js
CHANGED
|
@@ -8,5 +8,5 @@ import './../error-boundary-wrapper/index.css';
|
|
|
8
8
|
import './../flex-layout/index.css';
|
|
9
9
|
import './index.css';
|
|
10
10
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
11
|
-
import{a as e,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{isObject as o}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as n,jsonStringToJsonObject as r}from"@flatbiz/utils";import"ace-builds/src-noconflict/ext-language_tools";import"ace-builds/src-noconflict/mode-json";import{useState as a,useRef as s,useMemo as l}from"react";import
|
|
11
|
+
import{a as e,_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{isObject as o}from"@dimjs/lang/cjs/is-object";import{isUndefinedOrNull as n,jsonStringToJsonObject as r}from"@flatbiz/utils";import"ace-builds/src-noconflict/ext-language_tools";import"ace-builds/src-noconflict/mode-json";import{useState as a,useRef as s,useMemo as l}from"react";import m from"react-ace";import{ButtonWrapper as u}from"../button-wrapper/index.js";import{ErrorBoundaryWrapper as c}from"../error-boundary-wrapper/index.js";import{FlexLayout as d}from"../flex-layout/index.js";import{jsxs as p,jsx as f}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@dimjs/utils/cjs/class-names";import"antd";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";var j=["value","onChange","theme","height","showVerifyBtn","autoCompleterList"];var h=function h(v){var g=v.value,y=v.onChange,b=v.theme,w=v.height,x=v.showVerifyBtn,C=v.autoCompleterList,k=e(v,j);var L=n(w)?"100%":w;var N=a(Date.now()),z=N[0],B=N[1];var O=a(),S=O[0],_=O[1];var R=s();var V=l((function(){if(o(g)){return JSON.stringify(g,null,2)}return g}),[g]);var A=t.useCallbackRef((function(e){if(S){if(!e){_(undefined)}else{try{var i=r(e);_(i?undefined:undefined)}catch(e){}}}y==null?void 0:y(e)}));var D=t.useCallbackRef((function(e,i,t,o,n){n(null,C==null?void 0:C.map((function(e){return{name:e.name,value:e.name,meta:e.desc}})))}));var P=function e(i){R.current=i;var t=i.completers.findIndex((function(e){return e.id==="custom"}));if(t>=0){i.completers[t]={getCompletions:D,id:"custom"}}else{i.completers.push({getCompletions:D,id:"custom"})}};var F=function e(i){try{var t=r(i);y==null?void 0:y(t)}catch(e){_('数据解析异常,正确格式:{"name":"张三", "age": 20}')}};return p(d,{fullIndex:0,className:"json-editor",style:{height:L},children:[f("div",{className:"json-editor-ace",children:f(c,{onRenderReset:function e(){y==null?void 0:y(undefined);B(Date.now())},children:f(m,i({fontSize:14,showPrintMargin:true,showGutter:true,highlightActiveLine:true,height:"100%",width:"auto"},k,{setOptions:i({useWorker:false,enableBasicAutocompletion:false,enableLiveAutocompletion:true,enableSnippets:false,showLineNumbers:true,tabSize:2},k.setOptions),theme:b,mode:"json",onLoad:P,onChange:A,onBlur:function e(i,t){var o=t==null?void 0:t.getValue();if(o){F(o)}},value:V}))})}),p("div",{className:"json-editor-erify",children:[x!==false?f(u,{style:{marginTop:10},block:false,onClick:function e(){var i;var t=(i=R.current)==null?void 0:i.getValue();if(!t){y==null?void 0:y(t);return}F(t)},children:"验证数据"}):null,S?f("span",{style:{color:"red",marginLeft:10},children:S}):null]})]},z)};export{h as JsonEditor};
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/json-editor/editor.tsx"],"sourcesContent":["import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, jsonStringToJsonObject, TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport 'ace-builds/src-noconflict/ext-language_tools';\nimport 'ace-builds/src-noconflict/mode-json';\nimport { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper';\nimport { FlexLayout } from '../flex-layout';\n\nexport type JsonEditorProps = Omit<IAceEditorProps, 'onLoad' | 'mode' | 'value' | 'onChange'> & {\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 /** 是否显示【验证数据】按钮,默认值:true */\n showVerifyBtn?: boolean;\n /**\n * 编辑器主题配置\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n};\n\n/**\n * Json编辑器\n * @deprecated 已过期,请使用 AceEditorJson 组件\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 showVerifyBtn配置是否显示【验证数据】按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const JsonEditor = (props: JsonEditorProps) => {\n const { value, onChange, theme, height, showVerifyBtn, autoCompleterList, ...otherProps } = 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 if (!content) {\n setErrorMsg(undefined);\n } else {\n try {\n const result = jsonStringToJsonObject(content);\n setErrorMsg(result ? undefined : undefined);\n } catch (error: TAny) {\n // 异常不处理\n }\n }\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 onLoad = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex((item) => item.id === 'custom');\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\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\n return (\n <FlexLayout fullIndex={0} className=\"json-editor\" key={rootNodekey} style={{ height: heightFt }}>\n <div className=\"json-editor-ace\">\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Ace\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\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 theme={theme}\n mode=\"json\"\n onLoad={onLoad}\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 className=\"json-editor-erify\">\n {showVerifyBtn !== false ? (\n <ButtonWrapper\n style={{ marginTop: 10 }}\n block={false}\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 ) : null}\n {errorMsg ? <span style={{ color: 'red', marginLeft: 10 }}>{errorMsg}</span> : null}\n </div>\n </FlexLayout>\n );\n};\n"],"names":["JsonEditor","props","value","onChange","theme","height","showVerifyBtn","autoCompleterList","otherProps","_objectWithoutPropertiesLoose","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","rootNodekey","setRootNodekey","_useState2","errorMsg","setErrorMsg","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","handleChange","_hooks","useCallbackRef","content","undefined","result","jsonStringToJsonObject","error","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoad","editor","current","findIndex","completers","id","push","inputValueVerify","inputValue","_jsxs","FlexLayout","fullIndex","className","style","children","_jsx","ErrorBoundaryWrapper","onRenderReset","Ace","_extends","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","onBlur","_event","getValue","ButtonWrapper","marginTop","block","onClick","_editorRef$current","currentValue","color","marginLeft"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/json-editor/editor.tsx"],"sourcesContent":["import { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, jsonStringToJsonObject, TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport 'ace-builds/src-noconflict/ext-language_tools';\nimport 'ace-builds/src-noconflict/mode-json';\nimport { useMemo, useRef, useState } from 'react';\nimport Ace, { type IAceEditorProps } from 'react-ace';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { ErrorBoundaryWrapper } from '../error-boundary-wrapper';\nimport { FlexLayout } from '../flex-layout';\n\nexport type JsonEditorProps = Omit<IAceEditorProps, 'onLoad' | 'mode' | 'value' | 'onChange'> & {\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 /** 是否显示【验证数据】按钮,默认值:true */\n showVerifyBtn?: boolean;\n /**\n * 编辑器主题配置\n * ```\n * 1. 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 2. 配置 theme = xxxx\n * ```\n */\n theme?: string;\n};\n\n/**\n * Json编辑器\n * @deprecated 已过期,请使用 AceEditorJson 组件\n * ```\n * 1. 受控组件,需要使用value、onChange配合显示数据\n * 2. heigth 默认为100%,如果外层无高度,需要自定义设置height属性\n * 3. 通过 autoCompleterList 配置自动提示关键字\n * 4. 通过 showVerifyBtn配置是否显示【验证数据】按钮\n * 5. 通过 theme 配置编辑器主题,例如:\n * 5.1 顶部引入 import 'ace-builds/src-noconflict/theme-xxxx';\n * 5.2 配置 theme = xxxx\n * ```\n */\nexport const JsonEditor = (props: JsonEditorProps) => {\n const { value, onChange, theme, height, showVerifyBtn, autoCompleterList, ...otherProps } = 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 if (!content) {\n setErrorMsg(undefined);\n } else {\n try {\n const result = jsonStringToJsonObject(content);\n setErrorMsg(result ? undefined : undefined);\n } catch (error: TAny) {\n // 异常不处理\n }\n }\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 onLoad = (editor) => {\n editorRef.current = editor;\n /** 向编辑器中添加自动补全列表 */\n const findIndex = editor.completers.findIndex((item) => item.id === 'custom');\n if (findIndex >= 0) {\n editor.completers[findIndex] = { getCompletions, id: 'custom' };\n } else {\n editor.completers.push({ getCompletions, id: 'custom' });\n }\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\n return (\n <FlexLayout fullIndex={0} className=\"json-editor\" key={rootNodekey} style={{ height: heightFt }}>\n <div className=\"json-editor-ace\">\n <ErrorBoundaryWrapper\n onRenderReset={() => {\n onChange?.(undefined);\n setRootNodekey(Date.now());\n }}\n >\n <Ace\n fontSize={14}\n showPrintMargin={true}\n showGutter={true}\n highlightActiveLine={true}\n height=\"100%\"\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 theme={theme}\n mode=\"json\"\n onLoad={onLoad}\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 className=\"json-editor-erify\">\n {showVerifyBtn !== false ? (\n <ButtonWrapper\n style={{ marginTop: 10 }}\n block={false}\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 ) : null}\n {errorMsg ? <span style={{ color: 'red', marginLeft: 10 }}>{errorMsg}</span> : null}\n </div>\n </FlexLayout>\n );\n};\n"],"names":["JsonEditor","props","value","onChange","theme","height","showVerifyBtn","autoCompleterList","otherProps","_objectWithoutPropertiesLoose","_excluded","heightFt","isUndefinedOrNull","_useState","useState","Date","now","rootNodekey","setRootNodekey","_useState2","errorMsg","setErrorMsg","editorRef","useRef","valueNew","useMemo","_isObject","JSON","stringify","handleChange","_hooks","useCallbackRef","content","undefined","result","jsonStringToJsonObject","error","getCompletions","_a","_b","_c","_d","callback","map","item","name","meta","desc","onLoad","editor","current","findIndex","completers","id","push","inputValueVerify","inputValue","_jsxs","FlexLayout","fullIndex","className","style","children","_jsx","ErrorBoundaryWrapper","onRenderReset","Ace","_extends","fontSize","showPrintMargin","showGutter","highlightActiveLine","width","setOptions","useWorker","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","showLineNumbers","tabSize","mode","onBlur","_event","getValue","ButtonWrapper","marginTop","block","onClick","_editorRef$current","currentValue","color","marginLeft"],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ import './../fba-utils/index.css';
|
|
|
3
3
|
import './../fba-hooks/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import{fbaUtils as r}from"../fba-utils/index.js";import{createCtx as e}from"@wove/react/cjs/create-ctx";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as n}from"@dimjs/lang/cjs/is-deep-equal";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as a}from"@flatbiz/utils";import{Result as
|
|
6
|
+
import{fbaUtils as r}from"../fba-utils/index.js";import{createCtx as e}from"@wove/react/cjs/create-ctx";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as n}from"@dimjs/lang/cjs/is-deep-equal";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as a}from"@flatbiz/utils";import{Result as o,Button as s,Spin as l}from"antd";import{forwardRef as c,useState as u,useRef as m,useMemo as f,useImperativeHandle as d}from"react";import{fbaHooks as v}from"../fba-hooks/index.js";import{jsx as p,jsxs as h}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var g=e(),y=g[0],j=g[1];var b=c((function(r,e){var c=r.serviceConfig,g=r.isAsync,y=r.children,b=r.errorRender;var x=u("init"),C=x[0],N=x[1];var P=u(),R=P[0],q=P[1];var k=r.loadingHeight===undefined?100:r.loadingHeight;var w=m(null);var E=u(true),H=E[0],z=E[1];var A=m();var I=v.usePrevious(c.params);var K=f((function(){var r;if(!c.params||a(c.invalidParamKey).length===0){return c.params}var e=i({},c.params);(r=c.invalidParamKey)==null?void 0:r.forEach((function(r){e[r]=undefined}));return e}),[c]);var L=function r(e){return new Promise((function(r,t){var n=function(r){return function(e){try{z(false);return r&&r.call(this,e)}catch(r){return t(r)}}.bind(this)}.bind(this);var a;var o=function(){try{return r()}catch(r){return t(r)}};var s=function(r){try{console.error(r);N("error");A.current=r.message;return n(o)()}catch(r){return n(t)(r)}};try{z(true);return Promise.resolve(c.onRequest(i({},K,e))).then((function(r){try{a=r;N("success");q(a);return n(o)()}catch(r){return s(r)}}),s)}catch(r){s(r)}}))};v.useEffectCustomAsync(L,[]);v.useEffectCustom((function(){if(I){if(!n(c.params,I)){void L()}}}),[I,c.params]);d(e,(function(){return{onRefresh:L}}));if(C==="error"){if(b){return b({message:A.current})}return p(j,{value:{onRequest:L},children:h("div",{className:t("local-loading-error",r.className),children:[p("div",{className:"local-loading-area",ref:w}),p(o,{status:"error",subTitle:A.current||"数据处理异常",extra:[p(s,{type:"primary",ghost:true,size:"small",onClick:function r(){N("init");void L()},children:"重新获取"},"console")]})]})})}if(C!=="success"&&!g){return p("div",{className:t("fba-local-loading-process",r.className),style:{height:k,display:"flex",justifyContent:"center",position:"relative",backgroundColor:"var(--block-bg-color)"},children:p(l,{spinning:H,style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",height:"100%",width:"100%"}})})}return p(j,{value:{onRequest:L},children:h("div",{className:t("fba-local-loading",r.className),style:r.style,children:[H?p(l,{spinning:true,style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",height:"100%",width:"100%"}}):null,p("div",{className:"local-loading-content",style:r.contentStyle,children:y(R)})]})})}));var x=r.attachPropertiesToComponent(b,{useLocalLoading:function r(){var e=y();return{onRequest:function r(t){e.onRequest(t)}}}});export{x as LocalLoading};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { LocalLoadingCtxProvider } from './context';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TAny>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number | string;\n className?: string;\n style?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoadingInner = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const [loading, setLoading] = useState<boolean>(true);\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig.params || toArray(serviceConfig.invalidParamKey).length === 0) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const onInitRequest = async (params?: TPlainObject) => {\n try {\n setLoading(true);\n const respData = await serviceConfig.onRequest({\n ...serviceParams,\n ...params,\n });\n setStatus('success');\n setRespData(respData);\n } catch (error: TAny) {\n console.error(error);\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInitRequest();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n useImperativeHandle(ref, () => {\n return { onRefresh: onInitRequest };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender({ message: errorRef.current });\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('local-loading-error', props.className)}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n size=\"small\"\n onClick={() => {\n setStatus('init');\n void onInitRequest();\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className={classNames('fba-local-loading-process', props.className)}\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: 'var(--block-bg-color)',\n }}\n >\n <Spin\n spinning={loading}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n height: '100%',\n width: '100%',\n }}\n />\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('fba-local-loading', props.className)} style={props.style}>\n {loading ? (\n <Spin\n spinning={true}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n height: '100%',\n width: '100%',\n }}\n />\n ) : null}\n <div className=\"local-loading-content\" style={props.contentStyle}>\n {children(respData)}\n </div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils';\nimport { useLocalLoadingCtx } from './context';\nimport { LocalLoadingInner } from './local-loading';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(LocalLoadingInner, {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n});\n"],"names":["_createCtx","_createCtx2","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","_useState3","loading","setLoading","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","console","current","message","resolve","onRequest","then","$await_2","useEffectCustomAsync","useEffectCustom","_isDeepEqual","useImperativeHandle","onRefresh","_jsx","value","_jsxs","className","_classNames","Result","subTitle","extra","Button","type","ghost","size","onClick","style","height","display","justifyContent","position","backgroundColor","Spin","spinning","alignItems","width","contentStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { LocalLoadingCtxProvider } from './context';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TAny>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number | string;\n className?: string;\n style?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoadingInner = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const [loading, setLoading] = useState<boolean>(true);\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig.params || toArray(serviceConfig.invalidParamKey).length === 0) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const onInitRequest = async (params?: TPlainObject) => {\n try {\n setLoading(true);\n const respData = await serviceConfig.onRequest({\n ...serviceParams,\n ...params,\n });\n setStatus('success');\n setRespData(respData);\n } catch (error: TAny) {\n console.error(error);\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInitRequest();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n useImperativeHandle(ref, () => {\n return { onRefresh: onInitRequest };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender({ message: errorRef.current });\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('local-loading-error', props.className)}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n size=\"small\"\n onClick={() => {\n setStatus('init');\n void onInitRequest();\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className={classNames('fba-local-loading-process', props.className)}\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: 'var(--block-bg-color)',\n }}\n >\n <Spin\n spinning={loading}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n height: '100%',\n width: '100%',\n }}\n />\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('fba-local-loading', props.className)} style={props.style}>\n {loading ? (\n <Spin\n spinning={true}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n height: '100%',\n width: '100%',\n }}\n />\n ) : null}\n <div className=\"local-loading-content\" style={props.contentStyle}>\n {children(respData)}\n </div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils';\nimport { useLocalLoadingCtx } from './context';\nimport { LocalLoadingInner } from './local-loading';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(LocalLoadingInner, {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n});\n"],"names":["_createCtx","_createCtx2","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","_useState3","loading","setLoading","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","console","current","message","resolve","onRequest","then","$await_2","useEffectCustomAsync","useEffectCustom","_isDeepEqual","useImperativeHandle","onRefresh","_jsx","value","_jsxs","className","_classNames","Result","subTitle","extra","Button","type","ghost","size","onClick","style","height","display","justifyContent","position","backgroundColor","Spin","spinning","alignItems","width","contentStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":";8rBAGO,IAAAA,EAAsDC,IAA/CC,EAAkBF,EAAA,GAAEG,EAAuBH,EAAA,GCyDlD,IAAMI,EAAoBC,GAAkD,SAACC,EAAOC,GACzF,IAAQC,EAAkDF,EAAlDE,cAAeC,EAAmCH,EAAnCG,QAASC,EAA0BJ,EAA1BI,SAAUC,EAAgBL,EAAhBK,YAC1C,IAAAC,EAA4BC,EAAuC,QAA5DC,EAAMF,EAAA,GAAEG,EAASH,EAAA,GACxB,IAAAI,EAAgCH,IAAzBI,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5B,IAAMG,EAAgBb,EAAMa,gBAAkBC,UAAY,IAAMd,EAAMa,cACtE,IAAME,EAAUC,EAAuB,MACvC,IAAAC,EAA8BV,EAAkB,MAAzCW,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAMG,EAAWJ,IAEjB,IAAMK,EAAaC,EAASC,YAAYrB,EAAcsB,QAGtD,IAAMC,EAAgBC,GAAQ,WAAM,IAAAC,EAClC,IAAKzB,EAAcsB,QAAUI,EAAQ1B,EAAc2B,iBAAiBC,SAAW,EAAG,CAChF,OAAO5B,EAAcsB,MACvB,CACA,IAAMO,EAASC,KAAQ9B,EAAcsB,SACrCG,EAAAzB,EAAc2B,kBAAe,UAAA,EAA7BF,EAA+BM,SAAQ,SAACC,GACtCH,EAAUG,GAAOpB,SACnB,IACA,OAAOiB,CACT,GAAG,CAAC7B,IAEJ,IAAMiC,EAAgB,SAAhBA,EAAuBX,GAAP,OAAA,IAAAY,SAAA,SAAAC,EAAAC,GAAA,IAAAC,EAnFxB,SAAAC,GAAA,OAAC,SAAAC,GAAD,IAiGMtB,EAAW,OAjG8F,OAAOqB,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAON,EAAAM,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAK,IAsFDG,EAtFZ,IAAIC,aAAJ,IAAI,OAAAV,GAAK,CAAC,MAAAO,GAAW,OAAON,EAAAM,EAAM,GAAlC,IAAII,EAAA,SA4FSC,GA5Fb,IA6FMC,QAAQD,MAAMA,GACdxC,EAAU,SACVW,EAAS+B,QAAUF,EAAMG,QA/F/B,OAAOb,EAAAQ,EAAAR,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAD,EAAAC,CAAAK,EAAM,GAoF9B,IACEzB,EAAW,MACM,OAAAiB,QAAAiB,QAAMnD,EAAcoD,UAAStB,EACzCP,CAAAA,EAAAA,EACAD,KAFY+B,eAGfC,GAzFR,IAsFY7C,EAAW6C,EAIjB/C,EAAU,WACVG,EAAYD,GA3FlB,OAAO4B,EAAAQ,EAAAR,EAAE,CAAC,MAAAK,GAAW,OAAOI,EAAAJ,EAAM,CAAC,GAAAI,EA4F9B,CAAC,MAAOC,GAAaD,EAAbC,EAIT,CAEC,GACF,EAED3B,EAASmC,qBAAqBtB,EAAe,IAE7Cb,EAASoC,iBAAgB,WACvB,GAAIrC,EAAY,CACd,IAAKsC,EAAYzD,EAAcsB,OAAQH,GAAa,MAC7Cc,GACP,CACF,CACD,GAAE,CAACd,EAAYnB,EAAcsB,SAE9BoC,EAAoB3D,GAAK,WACvB,MAAO,CAAE4D,UAAW1B,EACtB,IAEA,GAAI3B,IAAW,QAAS,CACtB,GAAIH,EAAa,CACf,OAAOA,EAAY,CAAE+C,QAAShC,EAAS+B,SACzC,CACA,OACEW,EAACjE,EAAuB,CAACkE,MAAO,CAAET,UAAWnB,GAAgB/B,SAC3D4D,EAAA,MAAA,CAAKC,UAAWC,EAAW,sBAAuBlE,EAAMiE,WAAW7D,UACjE0D,EAAA,MAAA,CAAKG,UAAU,qBAAqBhE,IAAKc,IACzC+C,EAACK,EAAM,CACL3D,OAAO,QACP4D,SAAUhD,EAAS+B,SAAW,SAC9BkB,MAAO,CACLP,EAACQ,EAAM,CACLC,KAAK,UACLC,MAAK,KAELC,KAAK,QACLC,QAAS,SAAAA,IACPjE,EAAU,aACL0B,GACL,EAAA/B,SACH,QANK,kBAclB,CAEA,GAAII,IAAW,YAAcL,EAAS,CACpC,OACE2D,EAAA,MAAA,CACEG,UAAWC,EAAW,4BAA6BlE,EAAMiE,WACzDU,MAAO,CACLC,OAAQ/D,EACRgE,QAAS,OACTC,eAAgB,SAChBC,SAAU,WACVC,gBAAiB,yBACjB5E,SAEF0D,EAACmB,EAAI,CACHC,SAAUhE,EACVyD,MAAO,CACLE,QAAS,OACTM,WAAY,SACZL,eAAgB,SAChBC,SAAU,WACVH,OAAQ,OACRQ,MAAO,WAKjB,CAEA,OACEtB,EAACjE,EAAuB,CAACkE,MAAO,CAAET,UAAWnB,GAAgB/B,SAC3D4D,EAAA,MAAA,CAAKC,UAAWC,EAAW,oBAAqBlE,EAAMiE,WAAYU,MAAO3E,EAAM2E,MAAMvE,SAClFc,CAAAA,EACC4C,EAACmB,EAAI,CACHC,SAAU,KACVP,MAAO,CACLE,QAAS,OACTM,WAAY,SACZL,eAAgB,SAChBC,SAAU,WACVH,OAAQ,OACRQ,MAAO,UAGT,KACJtB,EAAA,MAAA,CAAKG,UAAU,wBAAwBU,MAAO3E,EAAMqF,aAAajF,SAC9DA,EAASO,SAKpB,ICpLO,IAAM2E,EAAeC,EAASC,4BAA4B1F,EAAmB,CAClF2F,gBAAiB,SAAAA,IACf,IAAMC,EAAM9F,IACZ,MAAO,CACL0D,UAAW,SAAAA,EAAC9B,GACVkE,EAAIpC,UAAU9B,EAChB,EAEJ"}
|
package/esm/pdf/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{classNames as r}from"@dimjs/utils/cjs/class-names";import{Result as e,Spin as t}from"antd";import{useState as n}from"react";import{fbaHooks as o}from"../fba-hooks/index.js";import{createCtx as a}from"@wove/react/cjs/create-ctx";import{jsx as i,jsxs as
|
|
5
|
+
import{classNames as r}from"@dimjs/utils/cjs/class-names";import{Result as e,Spin as t}from"antd";import{useState as n}from"react";import{fbaHooks as o}from"../fba-hooks/index.js";import{createCtx as a}from"@wove/react/cjs/create-ctx";import{jsx as i,jsxs as c}from"react/jsx-runtime";import{_ as s}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as l}from"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";import"../use-responsive-point-21b8c601.js";var u=a(),d=u[0],f=u[1];var m=function a(c){var s=n(),l=s[0],u=s[1];var d=n(),m=d[0],p=d[1];o.useEffectCustomAsync((function(){return new Promise((function(r,e){var t,n,o,a;t=globalThis,n=t.pdfjsLib;n.GlobalWorkerOptions.workerSrc="//file.40017.cn/tcsk/react/pdf@3.2.146/pdf.worker.min.js";var i=function(){try{return r()}catch(r){return e(r)}};var s=function(r){try{console.error(r);c.onLoadError==null?void 0:c.onLoadError(r);p(r);return i()}catch(r){return e(r)}};try{o=n.getDocument({url:c.pdfUrl,cMapUrl:"https://file.40017.cn/tcsk/react/pdf@3.2.146/bcmaps/",cMapPacked:true});return Promise.resolve(o.promise).then((function(r){try{a=r;u(a);c.onLoadSuccess==null?void 0:c.onLoadSuccess(a);return i()}catch(r){return s(r)}}),s)}catch(r){s(r)}}))}),[c.pdfUrl]);var v=function r(){return l};if(m){if(c.error){return typeof c.error==="function"?c.error(m):c.error}return i(e,{status:"error",title:"PDF加载异常",subTitle:m==null?void 0:m.message})}if(l){return i(f,{value:{getPdfInstance:v},children:i("div",{className:r("v-pdf-document",c.className),children:c.children})})}return i("div",{className:"v-pdf-document-init-loading",children:i(t,{})})};var p=function e(a){var u=d();var f=u.getPdfInstance();var m=l.useId(undefined,"v-pdf-page-"+a.pageNumber);var p=n(true),v=p[0],h=p[1];var g=f.numPages;o.useEffectCustom((function(){f.getPage(a.pageNumber).then((function(r){var e=a.scale||1;var t=r.getViewport({scale:e});var n=a.width;var o=document.getElementById(m);var i=o.getContext("2d");if(n&&!a.scale){var c=n/t.width;t=r.getViewport({scale:c})}var s=window.devicePixelRatio;s=s<=1?96/72:s;o.width=Math.floor(t.width*s);o.height=Math.floor(t.height*s);o.style.width=t.width+"px";o.style.height=t.height+"px";var l={transform:[s,0,0,s,0,0],canvasContext:i,viewport:t};var u=r.render(l);u.promise.then((function(){a.onRenderSuccess==null?void 0:a.onRenderSuccess({width:t.width,height:t.height,scale:e,pageNumber:a.pageNumber,page:r},f);h(false)})).catch((function(r){console.error(r==null?void 0:r.message);a.onRenderError==null?void 0:a.onRenderError(r,f);h(false)}))}))}),[f,a.scale,a.pageNumber]);var w=typeof a.gap==="undefined"?10:a.gap;var b=g!==a.pageNumber?{marginBottom:w}:{};return c("div",{className:r("v-pdf-page",a.className),style:s({},b,a.style),onClick:a.onClick,children:[i(t,{spinning:v,children:i("canvas",{id:m})}),a.children]})};var v={Document:m,Page:p};export{v as Pdf};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/esm/pdf/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/pdf/context.ts","@flatbiz/antd/src/pdf/document.tsx","@flatbiz/antd/src/pdf/page.tsx","@flatbiz/antd/src/pdf/index.ts"],"sourcesContent":["import { createCtx } from '@wove/react';\n\ntype CtxProps = {\n getPdfInstance: () => any;\n};\n\nexport const [getCtx, CtxProvider] = createCtx<CtxProps>();\n","import { classNames } from '@dimjs/utils';\nimport { Result, Spin } from 'antd';\nimport { ReactElement, ReactNode, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { CtxProvider } from './context';\nimport './style.less';\n\ntype PdfProps = {\n pdfUrl: string;\n onLoadError?: (error: any) => void;\n onLoadSuccess?: (pdfInstance: any) => void;\n children: ReactNode;\n error?: ReactElement | ((error) => ReactElement);\n className?: string;\n};\n\nexport const PdfDocument = (props: PdfProps) => {\n const [pdfInstance, setPdfInstance] = useState<any>();\n const [errorInst, setErrorInst] = useState<any>();\n\n fbaHooks.useEffectCustomAsync(async () => {\n var { pdfjsLib } = globalThis as any;\n pdfjsLib.GlobalWorkerOptions.workerSrc = '//file.40017.cn/tcsk/react/pdf@3.2.146/pdf.worker.min.js';\n try {\n var loadingTask = pdfjsLib.getDocument(props.pdfUrl);\n const pdfInstance = await loadingTask.promise;\n setPdfInstance(pdfInstance);\n props.onLoadSuccess?.(pdfInstance);\n } catch (error: any) {\n console.error(error);\n props.onLoadError?.(error);\n setErrorInst(error);\n }\n }, [props.pdfUrl]);\n\n const getPdfInstance = () => {\n return pdfInstance;\n };\n\n if (errorInst) {\n if (props.error) {\n return typeof props.error === 'function' ? props.error(errorInst) : props.error;\n }\n return <Result status=\"error\" title=\"PDF加载异常\" subTitle={errorInst?.message}></Result>;\n }\n\n if (pdfInstance) {\n return (\n <CtxProvider value={{ getPdfInstance }}>\n <div className={classNames('v-pdf-document', props.className)}>{props.children}</div>\n </CtxProvider>\n );\n }\n\n return (\n <div className=\"v-pdf-document-init-loading\">\n <Spin />\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Spin } from 'antd';\nimport { CSSProperties, ReactNode, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { getCtx } from './context';\nimport './style.less';\n\ntype PdfProps = {\n onRenderSuccess?: (pageInstance: any, pdfInstance: any) => void;\n onRenderError?: (error: any, pdfInstance: any) => void;\n /** pdf page宽度,高度根据比例适配 */\n width?: number;\n /** 缩放比例,默认值:1,配置此参数后 width 属性失效,例如:1、0.6、0.8 */\n scale?: number;\n /** pdf页面上下之间的间隙,默认值10 */\n gap?: number;\n /** 页码 */\n pageNumber: number;\n children?: ReactNode;\n onClick?: (e) => void;\n className?: string;\n style?: CSSProperties;\n};\n\nexport const PdfPage = (props: PdfProps) => {\n const ctx = getCtx();\n const pdfInstance = ctx.getPdfInstance();\n const id = hooks.useId(undefined, `v-pdf-page-${props.pageNumber}`);\n const [spinning, setSpinning] = useState(true);\n\n const numPages = pdfInstance.numPages as number;\n\n fbaHooks.useEffectCustom(() => {\n pdfInstance.getPage(props.pageNumber).then(function (page) {\n const scale = props.scale || 1;\n let viewport = page.getViewport({ scale: scale });\n const customWidth = props.width;\n\n const canvas = document.getElementById(id) as any;\n const context = canvas.getContext('2d');\n\n if (customWidth && !props.scale) {\n const ratio = customWidth / viewport.width;\n viewport = page.getViewport({ scale: ratio });\n }\n let cssUnits = window.devicePixelRatio;\n cssUnits = cssUnits <= 1 ? 96 / 72 : cssUnits;\n canvas.width = Math.floor(viewport.width * cssUnits);\n canvas.height = Math.floor(viewport.height * cssUnits);\n\n canvas.style.width = viewport.width + 'px';\n canvas.style.height = viewport.height + 'px';\n\n const renderContext = {\n transform: [cssUnits, 0, 0, cssUnits, 0, 0],\n canvasContext: context,\n viewport: viewport,\n };\n const renderTask = page.render(renderContext);\n renderTask.promise\n .then(function () {\n props.onRenderSuccess?.(\n {\n width: viewport.width,\n height: viewport.height,\n scale: scale,\n pageNumber: props.pageNumber,\n page,\n },\n pdfInstance,\n );\n setSpinning(false);\n })\n .catch((error: any) => {\n console.error(error?.message);\n props.onRenderError?.(error, pdfInstance);\n setSpinning(false);\n });\n });\n }, [pdfInstance, props.scale, props.pageNumber]);\n\n const gap = typeof props.gap === 'undefined' ? 10 : props.gap;\n\n const style = numPages !== props.pageNumber ? { marginBottom: gap } : {};\n\n return (\n <div\n className={classNames('v-pdf-page', props.className)}\n style={{\n ...style,\n ...props.style,\n }}\n onClick={props.onClick}\n >\n <Spin spinning={spinning}>\n <canvas id={id}></canvas>\n </Spin>\n {props.children}\n </div>\n );\n};\n","import { PdfDocument } from './document';\nimport { PdfPage } from './page';\n\n/**\n * pdf预览\n * ```\n * 使用方式:在cdn.ts中引入 '//file.40017.cn/tcsk/react/pdf@3.2.146/pdf.min.js'\n * Git: https://github.com/mozilla/pdfjs-dist/tree/master\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/file/pdf\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/file/pdf-seal\n * ```\n */\nexport const Pdf = {\n Document: PdfDocument,\n Page: PdfPage,\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","PdfDocument","props","_useState","useState","pdfInstance","setPdfInstance","_useState2","errorInst","setErrorInst","fbaHooks","useEffectCustomAsync","Promise","$return","$error","_ref","pdfjsLib","loadingTask","_pdfInstance","globalThis","GlobalWorkerOptions","workerSrc","$Try_1_Post","$boundEx","$Try_1_Catch","error","console","onLoadError","getDocument","pdfUrl","resolve","promise","then","$await_2","onLoadSuccess","getPdfInstance","_jsx","Result","status","title","subTitle","message","value","children","className","_classNames","Spin","PdfPage","ctx","id","_hooks","useId","undefined","pageNumber","spinning","setSpinning","numPages","useEffectCustom","getPage","page","scale","viewport","getViewport","customWidth","width","canvas","document","getElementById","context","getContext","ratio","cssUnits","window","devicePixelRatio","Math","floor","height","style","renderContext","transform","canvasContext","renderTask","render","onRenderSuccess","catch","onRenderError","gap","marginBottom","_jsxs","_extends","onClick","Pdf","Document","Page"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/pdf/context.ts","@flatbiz/antd/src/pdf/document.tsx","@flatbiz/antd/src/pdf/page.tsx","@flatbiz/antd/src/pdf/index.ts"],"sourcesContent":["import { createCtx } from '@wove/react';\n\ntype CtxProps = {\n getPdfInstance: () => any;\n};\n\nexport const [getCtx, CtxProvider] = createCtx<CtxProps>();\n","import { classNames } from '@dimjs/utils';\nimport { Result, Spin } from 'antd';\nimport { ReactElement, ReactNode, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { CtxProvider } from './context';\nimport './style.less';\n\ntype PdfProps = {\n pdfUrl: string;\n onLoadError?: (error: any) => void;\n onLoadSuccess?: (pdfInstance: any) => void;\n children: ReactNode;\n error?: ReactElement | ((error) => ReactElement);\n className?: string;\n};\n\nexport const PdfDocument = (props: PdfProps) => {\n const [pdfInstance, setPdfInstance] = useState<any>();\n const [errorInst, setErrorInst] = useState<any>();\n\n fbaHooks.useEffectCustomAsync(async () => {\n const { pdfjsLib } = globalThis as any;\n pdfjsLib.GlobalWorkerOptions.workerSrc = '//file.40017.cn/tcsk/react/pdf@3.2.146/pdf.worker.min.js';\n try {\n const loadingTask = pdfjsLib.getDocument({\n url: props.pdfUrl,\n // 避免服务端动态填充的字体不展示\n cMapUrl: 'https://file.40017.cn/tcsk/react/pdf@3.2.146/bcmaps/',\n cMapPacked: true,\n });\n const pdfInstance = await loadingTask.promise;\n setPdfInstance(pdfInstance);\n props.onLoadSuccess?.(pdfInstance);\n } catch (error: any) {\n console.error(error);\n props.onLoadError?.(error);\n setErrorInst(error);\n }\n }, [props.pdfUrl]);\n\n const getPdfInstance = () => {\n return pdfInstance;\n };\n\n if (errorInst) {\n if (props.error) {\n return typeof props.error === 'function' ? props.error(errorInst) : props.error;\n }\n return <Result status=\"error\" title=\"PDF加载异常\" subTitle={errorInst?.message}></Result>;\n }\n\n if (pdfInstance) {\n return (\n <CtxProvider value={{ getPdfInstance }}>\n <div className={classNames('v-pdf-document', props.className)}>{props.children}</div>\n </CtxProvider>\n );\n }\n\n return (\n <div className=\"v-pdf-document-init-loading\">\n <Spin />\n </div>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Spin } from 'antd';\nimport { CSSProperties, ReactNode, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { getCtx } from './context';\nimport './style.less';\n\ntype PdfProps = {\n onRenderSuccess?: (pageInstance: any, pdfInstance: any) => void;\n onRenderError?: (error: any, pdfInstance: any) => void;\n /** pdf page宽度,高度根据比例适配 */\n width?: number;\n /** 缩放比例,默认值:1,配置此参数后 width 属性失效,例如:1、0.6、0.8 */\n scale?: number;\n /** pdf页面上下之间的间隙,默认值10 */\n gap?: number;\n /** 页码 */\n pageNumber: number;\n children?: ReactNode;\n onClick?: (e) => void;\n className?: string;\n style?: CSSProperties;\n};\n\nexport const PdfPage = (props: PdfProps) => {\n const ctx = getCtx();\n const pdfInstance = ctx.getPdfInstance();\n const id = hooks.useId(undefined, `v-pdf-page-${props.pageNumber}`);\n const [spinning, setSpinning] = useState(true);\n\n const numPages = pdfInstance.numPages as number;\n\n fbaHooks.useEffectCustom(() => {\n pdfInstance.getPage(props.pageNumber).then(function (page) {\n const scale = props.scale || 1;\n let viewport = page.getViewport({ scale: scale });\n const customWidth = props.width;\n\n const canvas = document.getElementById(id) as any;\n const context = canvas.getContext('2d');\n\n if (customWidth && !props.scale) {\n const ratio = customWidth / viewport.width;\n viewport = page.getViewport({ scale: ratio });\n }\n let cssUnits = window.devicePixelRatio;\n cssUnits = cssUnits <= 1 ? 96 / 72 : cssUnits;\n canvas.width = Math.floor(viewport.width * cssUnits);\n canvas.height = Math.floor(viewport.height * cssUnits);\n\n canvas.style.width = viewport.width + 'px';\n canvas.style.height = viewport.height + 'px';\n\n const renderContext = {\n transform: [cssUnits, 0, 0, cssUnits, 0, 0],\n canvasContext: context,\n viewport: viewport,\n };\n const renderTask = page.render(renderContext);\n renderTask.promise\n .then(function () {\n props.onRenderSuccess?.(\n {\n width: viewport.width,\n height: viewport.height,\n scale: scale,\n pageNumber: props.pageNumber,\n page,\n },\n pdfInstance,\n );\n setSpinning(false);\n })\n .catch((error: any) => {\n console.error(error?.message);\n props.onRenderError?.(error, pdfInstance);\n setSpinning(false);\n });\n });\n }, [pdfInstance, props.scale, props.pageNumber]);\n\n const gap = typeof props.gap === 'undefined' ? 10 : props.gap;\n\n const style = numPages !== props.pageNumber ? { marginBottom: gap } : {};\n\n return (\n <div\n className={classNames('v-pdf-page', props.className)}\n style={{\n ...style,\n ...props.style,\n }}\n onClick={props.onClick}\n >\n <Spin spinning={spinning}>\n <canvas id={id}></canvas>\n </Spin>\n {props.children}\n </div>\n );\n};\n","import { PdfDocument } from './document';\nimport { PdfPage } from './page';\n\n/**\n * pdf预览\n * ```\n * 使用方式:在cdn.ts中引入 '//file.40017.cn/tcsk/react/pdf@3.2.146/pdf.min.js'\n * Git: https://github.com/mozilla/pdfjs-dist/tree/master\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/file/pdf\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/file/pdf-seal\n * ```\n */\nexport const Pdf = {\n Document: PdfDocument,\n Page: PdfPage,\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","PdfDocument","props","_useState","useState","pdfInstance","setPdfInstance","_useState2","errorInst","setErrorInst","fbaHooks","useEffectCustomAsync","Promise","$return","$error","_ref","pdfjsLib","loadingTask","_pdfInstance","globalThis","GlobalWorkerOptions","workerSrc","$Try_1_Post","$boundEx","$Try_1_Catch","error","console","onLoadError","getDocument","url","pdfUrl","cMapUrl","cMapPacked","resolve","promise","then","$await_2","onLoadSuccess","getPdfInstance","_jsx","Result","status","title","subTitle","message","value","children","className","_classNames","Spin","PdfPage","ctx","id","_hooks","useId","undefined","pageNumber","spinning","setSpinning","numPages","useEffectCustom","getPage","page","scale","viewport","getViewport","customWidth","width","canvas","document","getElementById","context","getContext","ratio","cssUnits","window","devicePixelRatio","Math","floor","height","style","renderContext","transform","canvasContext","renderTask","render","onRenderSuccess","catch","onRenderError","gap","marginBottom","_jsxs","_extends","onClick","Pdf","Document","Page"],"mappings":";4eAMO,IAAAA,EAA8BC,IAAvBC,EAAMF,EAAA,GAAEG,EAAWH,EAAA,GCU1B,IAAMI,EAAc,SAAdA,EAAeC,GAC1B,IAAAC,EAAsCC,IAA/BC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAClC,IAAAI,EAAkCH,IAA3BI,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAE9BG,EAASC,sBAAqB,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,EAIpBC,EAMAC,EATRH,EAAqBI,WAAbH,EAAQD,EAARC,SACRA,EAASI,oBAAoBC,UAAY,2DAtB7C,IAAIC,aAAJ,IAAI,OAAAT,GAAK,CAAC,MAAAU,GAAW,OAAOT,EAAAS,EAAM,GAAlC,IAAIC,EAAA,SAiCSC,GAjCb,IAkCMC,QAAQD,MAAMA,GACdvB,EAAMyB,aAANzB,UAAAA,EAAAA,EAAMyB,YAAcF,GACpBhB,EAAagB,GApCnB,OAAOH,GAAE,CAAC,MAAAC,GAAW,OAAOT,EAAAS,EAAM,GAuB9B,IACQN,EAAcD,EAASY,YAAY,CACvCC,IAAK3B,EAAM4B,OAEXC,QAAS,uDACTC,WAAY,OAEM,OAAApB,QAAAqB,QAAMhB,EAAYiB,SAAlBC,MAAyB,SAAAC,GA9BnD,IA8BY/B,EAAc+B,EACpB9B,EAAeD,GACfH,EAAMmC,eAANnC,UAAAA,EAAAA,EAAMmC,cAAgBhC,GAhC5B,OAAOiB,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAiC9B,CAAC,MAAOC,GAAYD,EAAZC,EAIT,CAAC,GACF,GAAE,CAACvB,EAAM4B,SAEV,IAAMQ,EAAiB,SAAjBA,IACJ,OAAOjC,GAGT,GAAIG,EAAW,CACb,GAAIN,EAAMuB,MAAO,CACf,cAAcvB,EAAMuB,QAAU,WAAavB,EAAMuB,MAAMjB,GAAaN,EAAMuB,KAC5E,CACA,OAAOc,EAACC,EAAM,CAACC,OAAO,QAAQC,MAAM,UAAUC,SAAUnC,GAAAA,UAAAA,EAAAA,EAAWoC,SACrE,CAEA,GAAIvC,EAAa,CACf,OACEkC,EAACvC,EAAW,CAAC6C,MAAO,CAAEP,eAAAA,GAAiBQ,SACrCP,EAAA,MAAA,CAAKQ,UAAWC,EAAW,iBAAkB9C,EAAM6C,WAAWD,SAAE5C,EAAM4C,YAG5E,CAEA,OACEP,EAAA,MAAA,CAAKQ,UAAU,8BAA6BD,SAC1CP,EAACU,EAAM,KAGb,ECvCO,IAAMC,EAAU,SAAVA,EAAWhD,GACtB,IAAMiD,EAAMpD,IACZ,IAAMM,EAAc8C,EAAIb,iBACxB,IAAMc,EAAKC,EAAMC,MAAMC,UAAyBrD,cAAAA,EAAMsD,YACtD,IAAArD,EAAgCC,EAAS,MAAlCqD,EAAQtD,EAAA,GAAEuD,EAAWvD,EAAA,GAE5B,IAAMwD,EAAWtD,EAAYsD,SAE7BjD,EAASkD,iBAAgB,WACvBvD,EAAYwD,QAAQ3D,EAAMsD,YAAYrB,MAAK,SAAU2B,GACnD,IAAMC,EAAQ7D,EAAM6D,OAAS,EAC7B,IAAIC,EAAWF,EAAKG,YAAY,CAAEF,MAAOA,IACzC,IAAMG,EAAchE,EAAMiE,MAE1B,IAAMC,EAASC,SAASC,eAAelB,GACvC,IAAMmB,EAAUH,EAAOI,WAAW,MAElC,GAAIN,IAAgBhE,EAAM6D,MAAO,CAC/B,IAAMU,EAAQP,EAAcF,EAASG,MACrCH,EAAWF,EAAKG,YAAY,CAAEF,MAAOU,GACvC,CACA,IAAIC,EAAWC,OAAOC,iBACtBF,EAAWA,GAAY,EAAI,GAAK,GAAKA,EACrCN,EAAOD,MAAQU,KAAKC,MAAMd,EAASG,MAAQO,GAC3CN,EAAOW,OAASF,KAAKC,MAAMd,EAASe,OAASL,GAE7CN,EAAOY,MAAMb,MAAQH,EAASG,MAAQ,KACtCC,EAAOY,MAAMD,OAASf,EAASe,OAAS,KAExC,IAAME,EAAgB,CACpBC,UAAW,CAACR,EAAU,EAAG,EAAGA,EAAU,EAAG,GACzCS,cAAeZ,EACfP,SAAUA,GAEZ,IAAMoB,EAAatB,EAAKuB,OAAOJ,GAC/BG,EAAWlD,QACRC,MAAK,WACJjC,EAAMoF,iBAAe,UAAA,EAArBpF,EAAMoF,gBACJ,CACEnB,MAAOH,EAASG,MAChBY,OAAQf,EAASe,OACjBhB,MAAOA,EACPP,WAAYtD,EAAMsD,WAClBM,KAAAA,GAEFzD,GAEFqD,EAAY,MACd,IACC6B,OAAM,SAAC9D,GACNC,QAAQD,MAAMA,eAAAA,EAAOmB,SACrB1C,EAAMsF,eAAa,UAAA,EAAnBtF,EAAMsF,cAAgB/D,EAAOpB,GAC7BqD,EAAY,MACd,GACJ,GACF,GAAG,CAACrD,EAAaH,EAAM6D,MAAO7D,EAAMsD,aAEpC,IAAMiC,SAAavF,EAAMuF,MAAQ,YAAc,GAAKvF,EAAMuF,IAE1D,IAAMT,EAAQrB,IAAazD,EAAMsD,WAAa,CAAEkC,aAAcD,GAAQ,GAEtE,OACEE,EAAA,MAAA,CACE5C,UAAWC,EAAW,aAAc9C,EAAM6C,WAC1CiC,MAAKY,EACAZ,CAAAA,EAAAA,EACA9E,EAAM8E,OAEXa,QAAS3F,EAAM2F,QAAQ/C,SAAA,CAEvBP,EAACU,EAAI,CAACQ,SAAUA,EAASX,SACvBP,EAAA,SAAA,CAAQa,GAAIA,MAEblD,EAAM4C,WAGb,ECzFO,IAAMgD,EAAM,CACjBC,SAAU9F,EACV+F,KAAM9C"}
|
package/esm/permission/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-utils/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
import{Fragment as r}from"react";import{fbaUtils as i}from"../fba-utils/index.js";import{jsx as t}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@flatbiz/utils";var
|
|
5
|
+
import{Fragment as r}from"react";import{fbaUtils as i}from"../fba-utils/index.js";import{jsx as t}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"@flatbiz/utils";var m=function m(e){var n=i.getPermissionList();if(!e.name||n.includes(e.name)){return t(r,{children:e.children})}return null};export{m as Permission};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/permission/permission.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react';\nimport { fbaUtils } from '../fba-utils';\n\nexport interface PermissionProps {\n name?: string;\n children?: ReactNode | ReactNode[];\n}\nexport const Permission = (props: PermissionProps) => {\n const permissionList = fbaUtils.getPermissionList();\n if (!props.name || permissionList.includes(props.name)) {\n return <Fragment>{props.children}</Fragment>;\n }\n return null;\n};\n"],"names":["Permission","props","permissionList","fbaUtils","getPermissionList","name","includes","_jsx","Fragment","children"],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/permission/permission.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react';\nimport { fbaUtils } from '../fba-utils';\n\nexport interface PermissionProps {\n name?: string;\n children?: ReactNode | ReactNode[];\n}\nexport const Permission = (props: PermissionProps) => {\n const permissionList = fbaUtils.getPermissionList();\n if (!props.name || permissionList.includes(props.name)) {\n return <Fragment>{props.children}</Fragment>;\n }\n return null;\n};\n"],"names":["Permission","props","permissionList","fbaUtils","getPermissionList","name","includes","_jsx","Fragment","children"],"mappings":";2MAOaA,EAAa,SAAbA,EAAcC,GACzB,IAAMC,EAAiBC,EAASC,oBAChC,IAAKH,EAAMI,MAAQH,EAAeI,SAASL,EAAMI,MAAO,CACtD,OAAOE,EAACC,EAAQ,CAAAC,SAAER,EAAMQ,UAC1B,CACA,OAAO,IACT"}
|
package/esm/search-form/index.js
CHANGED
|
@@ -9,5 +9,5 @@ import './../form-wrapper/index.css';
|
|
|
9
9
|
import './../pre-defined-class-name/index.css';
|
|
10
10
|
import './index.css';
|
|
11
11
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
12
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import i from"@ant-design/icons/es/icons/DownOutlined";import n from"@ant-design/icons/es/icons/UpOutlined";import{_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{Form as o}from"antd";import{forwardRef as l,useMemo as a,Children as s,useImperativeHandle as u}from"react";import{isFragment as d}from"react-is";import{ButtonWrapper as f}from"../button-wrapper/index.js";import{fbaHooks as m}from"../fba-hooks/index.js";import{FormGrid as p}from"../form-grid/index.js";import{FormWrapper as c}from"../form-wrapper/index.js";import{preDefinedClassName as h}from"../pre-defined-class-name/index.js";import{Model as v}from"@dimjs/model-react";import{jsx as y,jsxs as g}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var j={queryCondition:{},isInit:true,openFold:false};var C={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=r({},e.queryCondition,i)}},resetFilterCondition:function e(i){return function(e){e.queryCondition=r({},j.queryCondition,i)}},updateInitStatus:function e(){return function(e){e.isInit=false}},onChangeOpenFold:function e(i){return function(e){e.openFold=i}}},state:j};var F={};var b=function e(i){if(!F[i]){F[i]=v(C)}return F[i]};var I=l((function(l,v){var j=t.useId(undefined,"search-form-key");var C=a((function(){return l.cacheSwitch===false?j:location.pathname}),[j,l.cacheSwitch]);var F=b(C).useStore(),I=F[0],k=F[1];var x=o.useForm(l.form),w=x[0];var S=l.queryButtonProps,q=l.resetButtonProps,L=l.searchOperate,O=l.formClassName,A=l.rightOperateAreaAppendType,P=l.onQuery,_=l.onReset,z=l.initRequest,B=l.onFormFinish,R=l.defaultResetButtonTriggerRequest;var T=typeof l.children==="function"?l.children(w):l.children;var V=A||"cover";var G=a((function(){if(d(T)){return s.toArray(T.props.children)}else{return s.toArray(T)}}),[T]);var N=function e(i){Object.keys(i).forEach((function(e){if(e.startsWith("__#invalid_date_")){delete i[e]}}));void k.updateFilterCondition(i);void(P==null?void 0:P(i||{}))};var K=t.useCallbackRef((function(){return new Promise((function(e,i){return Promise.resolve(k.resetFilterCondition()).then((function(n){try{setTimeout((function(){w.resetFields()}),200);_==null?void 0:_();if(R===false){return e()}void N({});return e()}catch(e){return i(e)}}),i)}))}));var W=function e(i){if(B){B(i);return}void N(i)};var D=a((function(){var e;var t=[!(S!=null&&S.hidden)?y(f,r({type:"primary",htmlType:"submit",loadingPosition:"center"},S,{children:(S==null?void 0:S.text)||"查询"}),"1"):null,!(q!=null&&q.hidden)?y(f,r({onClick:K},q,{children:(q==null?void 0:q.text)||"重置"}),"2"):null].filter(Boolean);var o=L==null?void 0:L(w);var a=o==null?void 0:o.rightList;var s=(o==null?void 0:o.leftList)||[];var u=t;if(a){if(V==="afterAppend"){u=[].concat(t,a)}else if(V==="beforeAppend"){u=[].concat(a,t)}else{u=a}}if((e=l.foldKeys)!=null&&e.length){var d=y(f,{type:"link",style:{padding:"0"},onClick:function e(){void k.onChangeOpenFold(!I.openFold)},children:I.openFold?g("span",{children:["收起",y(n,{style:{marginLeft:3,fontSize:12}})]}):g("span",{children:["展开",y(i,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(u.length>0||s.length===0){u.push(d)}else if((s==null?void 0:s.length)>0){s.push(d)}}return G.map((function(e,i){var n;if(!I.openFold&&(n=l.foldKeys)!=null&&n.find((function(i){return".$"+i===e.key}))){return null}if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return y(p.Col,{children:e},i)})).filter(Boolean).concat(y(p.OperateCol,r({},o,{leftList:s,rightList:u}),999))}),[S,q,K,L,w,l.foldKeys,G,V,I.openFold,k]);m.useEffectCustom((function(){if(z===false&&!I.isInit||z!==false){void(P==null?void 0:P(r({},l.formInitialValues,I.queryCondition)))}void k.updateInitStatus()}),[]);u(v,(function(){return{onQuery:N,form:w}}));return y(c,{form:w,autoComplete:"off",onFinish:W,initialValues:r({},l.formInitialValues,I.queryCondition),className:e("search-form",h.form.formItemGap8,O),style:l.formStyle,labelWidth:l.formLabelWidth,labelAlign:l.formLabelAlign,formItemGap:l.formFormItemGap,labelItemVertical:l.formLabelItemVertical,children:l.isPure?T:y(p.Row,{gutter:[15,0],gridSize:l.formGridSize,children:D})})}));export{I as SearchForm};
|
|
12
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import i from"@ant-design/icons/es/icons/DownOutlined";import n from"@ant-design/icons/es/icons/UpOutlined";import{_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as t}from"@wove/react/cjs/hooks";import{Form as o}from"antd";import{forwardRef as l,useMemo as a,Children as s,useImperativeHandle as u}from"react";import{isFragment as d}from"react-is";import{ButtonWrapper as f}from"../button-wrapper/index.js";import{fbaHooks as m}from"../fba-hooks/index.js";import{FormGrid as p}from"../form-grid/index.js";import{FormWrapper as c}from"../form-wrapper/index.js";import{preDefinedClassName as h}from"../pre-defined-class-name/index.js";import{Model as v}from"@dimjs/model-react";import{jsx as y,jsxs as g}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@flatbiz/utils";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/lang/cjs/is-array";import"@dimjs/model";import"../use-responsive-point-21b8c601.js";var j={queryCondition:{},isInit:true,openFold:false};var C={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=r({},e.queryCondition,i)}},resetFilterCondition:function e(i){return function(e){e.queryCondition=r({},j.queryCondition,i)}},updateInitStatus:function e(){return function(e){e.isInit=false}},onChangeOpenFold:function e(i){return function(e){e.openFold=i}}},state:j};var F={};var b=function e(i){if(!F[i]){F[i]=v(C)}return F[i]};var I=l((function(l,v){var j=t.useId(undefined,"search-form-key");var C=a((function(){return l.cacheSwitch===false?j:location.pathname}),[j,l.cacheSwitch]);var F=b(C).useStore(),I=F[0],k=F[1];var x=o.useForm(l.form),w=x[0];var S=l.queryButtonProps,q=l.resetButtonProps,L=l.searchOperate,O=l.formClassName,A=l.rightOperateAreaAppendType,P=l.onQuery,_=l.onReset,z=l.initRequest,B=l.onFormFinish,R=l.defaultResetButtonTriggerRequest;var T=typeof l.children==="function"?l.children(w):l.children;var V=A||"cover";var G=a((function(){if(d(T)){return s.toArray(T.props.children)}else{return s.toArray(T)}}),[T]);var N=function e(i){Object.keys(i).forEach((function(e){if(e.startsWith("__#invalid_date_")){delete i[e]}}));void k.updateFilterCondition(i);void(P==null?void 0:P(i||{}))};var K=t.useCallbackRef((function(){return new Promise((function(e,i){return Promise.resolve(k.resetFilterCondition()).then((function(n){try{setTimeout((function(){w.resetFields()}),200);_==null?void 0:_();if(R===false){return e()}void N({});return e()}catch(e){return i(e)}}),i)}))}));var W=function e(i){if(B){B(i);return}void N(i)};var D=a((function(){var e;var t=[!(S!=null&&S.hidden)?y(f,r({type:"primary",htmlType:"submit",loadingPosition:"center"},S,{children:(S==null?void 0:S.text)||"查询"}),"1"):null,!(q!=null&&q.hidden)?y(f,r({onClick:K},q,{children:(q==null?void 0:q.text)||"重置"}),"2"):null].filter(Boolean);var o=L==null?void 0:L(w);var a=o==null?void 0:o.rightList;var s=(o==null?void 0:o.leftList)||[];var u=t;if(a){if(V==="afterAppend"){u=[].concat(t,a)}else if(V==="beforeAppend"){u=[].concat(a,t)}else{u=a}}if((e=l.foldKeys)!=null&&e.length){var d=y(f,{type:"link",style:{padding:"0"},onClick:function e(){void k.onChangeOpenFold(!I.openFold)},children:I.openFold?g("span",{children:["收起",y(n,{style:{marginLeft:3,fontSize:12}})]}):g("span",{children:["展开",y(i,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(u.length>0||s.length===0){u.push(d)}else if((s==null?void 0:s.length)>0){s.push(d)}}return G.map((function(e,i){var n;if(!I.openFold&&(n=l.foldKeys)!=null&&n.find((function(i){return".$"+i===e.key}))){return null}if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return y(p.Col,{children:e},i)})).filter(Boolean).concat(y(p.OperateCol,r({},o,{leftList:s,rightList:u}),999))}),[S,q,K,L,w,l.foldKeys,G,V,I.openFold,k]);m.useEffectCustom((function(){if(z===false&&!I.isInit||z!==false){void(P==null?void 0:P(r({},l.formInitialValues,I.queryCondition)))}void k.updateInitStatus()}),[]);u(v,(function(){return{onQuery:N,form:w}}));return y(c,{form:w,autoComplete:"off",onFinish:W,initialValues:r({},l.formInitialValues,I.queryCondition),className:e("search-form",h.form.formItemGap8,O),style:l.formStyle,labelWidth:l.formLabelWidth,labelAlign:l.formLabelAlign,formItemGap:l.formFormItemGap,labelItemVertical:l.formLabelItemVertical,children:l.isPure?T:y(p.Row,{gutter:[15,0],gridSize:l.formGridSize,children:D})})}));export{I as SearchForm};
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-form/model.ts","@flatbiz/antd/src/search-form/search.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n openFold: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n onChangeOpenFold: boolean;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n openFold: false,\n};\n\nconst SearchFormModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n onChangeOpenFold: (boo) => {\n return (state) => {\n state.openFold = boo;\n };\n },\n },\n state: defaultState,\n};\n\nconst searchFormModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const searchFormModel = (key: string) => {\n if (!searchFormModels[key]) {\n searchFormModels[key] = Model(SearchFormModel);\n }\n return searchFormModels[key];\n};\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\n\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, forwardRef, ReactElement, useImperativeHandle, useMemo } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { searchFormModel } from './model';\nimport './style.less';\n\nexport type SearchFormProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n searchOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** form 初始值 */\n formInitialValues?: TPlainObject;\n /** label宽度,Form内部所有FormItem label都生效 */\n formLabelWidth?: FormWrapperProps['labelWidth'];\n /** labelItem 竖直布局 */\n formLabelItemVertical?: FormWrapperProps['labelItemVertical'];\n /** label 对齐方式 */\n formLabelAlign?: FormWrapperProps['labelAlign'];\n /** formItem之间竖直间距,默认值:24 */\n formFormItemGap?: FormWrapperProps['formItemGap'];\n /**\n * 自定义 searchOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /**\n * 展开、收起key值列表(内容当前组件子组件key值)\n */\n foldKeys?: string[];\n /**\n * 按钮提交事件\n * 如果需要自定义回车提交事件,需要自定义提交按钮\n */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 重置按钮 */\n onReset?: () => void;\n /** 查询按钮 */\n onQuery?: (values: TPlainObject) => void;\n /**\n * 是否缓存查询数据,默认值:true\n * ```\n * 1. 一般首页可缓存,二级、三级等页面不能缓存\n * ```\n */\n cacheSwitch?: boolean;\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n form?: FormInstance;\n};\n\nexport type SearchFormRefApi = {\n onQuery: (values?: TPlainObject) => void;\n form: FormInstance;\n};\n\n/**\n * 搜索表单\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <SearchForm>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </SearchForm>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <SearchForm>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </SearchForm>\n *\n * -- children 可为 function\n * <SearchForm>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </SearchForm>\n *\n * 2. 用户2(自定义布局)\n * SearchForm设置 isPure = true,FormItem无布局规则\n * 3. SearchForm中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 searchOperate 设置操作按钮\n * 5. SearchForm 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n * 8. 可设置 cacheSwitch 来控制是否缓存查询数据(一般一级页面可缓存,二级、三级等不能缓存),\n * 缓存数据存储在内存中,react路由跳转可正常读取缓存,浏览器刷新后缓存丢失\n *```\n */\nexport const SearchForm = forwardRef<SearchFormRefApi, SearchFormProps>((props, ref) => {\n const searchFormId = hooks.useId(undefined, 'search-form-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch === false ? searchFormId : location.pathname;\n }, [searchFormId, props.cacheSwitch]);\n\n const [state, actions] = searchFormModel(modelKey).useStore();\n const [form] = Form.useForm(props.form);\n const {\n queryButtonProps,\n resetButtonProps,\n searchOperate,\n formClassName,\n rightOperateAreaAppendType,\n onQuery,\n onReset,\n initRequest,\n onFormFinish,\n defaultResetButtonTriggerRequest,\n } = props;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const onInnerQuery = (values) => {\n Object.keys(values).forEach((key) => {\n if (key.startsWith('__#invalid_date_')) {\n delete values[key];\n }\n });\n void actions.updateFilterCondition(values);\n void onQuery?.(values || {});\n };\n\n const onInnerReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n setTimeout(() => {\n form.resetFields();\n }, 200);\n onReset?.();\n if (defaultResetButtonTriggerRequest === false) {\n return;\n }\n void onInnerQuery({});\n });\n\n const onInnerFormFinish = (values) => {\n if (onFormFinish) {\n onFormFinish(values);\n return;\n }\n void onInnerQuery(values);\n };\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n htmlType={'submit'}\n loadingPosition=\"center\"\n {...queryButtonProps}\n >\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onInnerReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = searchOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (props.foldKeys?.length) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n void actions.onChangeOpenFold(!state.openFold);\n }}\n >\n {state.openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!state.openFold && props.foldKeys?.find((keyItem) => `.$${keyItem}` === item.key)) {\n return null;\n }\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n queryButtonProps,\n resetButtonProps,\n onInnerReset,\n searchOperate,\n form,\n props.foldKeys,\n childrens,\n rightOperateAreaAppendTypeFt,\n state.openFold,\n actions,\n ]);\n\n fbaHooks.useEffectCustom(() => {\n if ((initRequest === false && !state.isInit) || initRequest !== false) {\n void onQuery?.({\n ...props.formInitialValues,\n ...state.queryCondition,\n });\n }\n void actions.updateInitStatus();\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n onQuery: onInnerQuery,\n form,\n };\n });\n\n return (\n <FormWrapper\n form={form}\n autoComplete=\"off\"\n onFinish={onInnerFormFinish}\n initialValues={{\n ...props.formInitialValues,\n ...state.queryCondition,\n }}\n className={classNames('search-form', preDefinedClassName.form.formItemGap8, formClassName)}\n style={props.formStyle}\n labelWidth={props.formLabelWidth}\n labelAlign={props.formLabelAlign}\n formItemGap={props.formFormItemGap}\n labelItemVertical={props.formLabelItemVertical}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </FormWrapper>\n );\n});\n"],"names":["defaultState","queryCondition","isInit","openFold","SearchFormModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","onChangeOpenFold","boo","searchFormModels","searchFormModel","key","Model","SearchForm","forwardRef","props","ref","searchFormId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_searchFormModel$useS","useStore","_Form$useForm","Form","useForm","form","queryButtonProps","resetButtonProps","searchOperate","formClassName","rightOperateAreaAppendType","onQuery","onReset","initRequest","onFormFinish","defaultResetButtonTriggerRequest","children","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","onInnerQuery","values","Object","keys","forEach","startsWith","onInnerReset","useCallbackRef","Promise","$return","$error","resolve","then","$await_1","setTimeout","resetFields","$boundEx","onInnerFormFinish","formRowChildren","_props$foldKeys","defaultRightList","hidden","_jsx","ButtonWrapper","type","htmlType","loadingPosition","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","foldKeys","length","changeFolditem","style","padding","_jsxs","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","_props$foldKeys2","find","keyItem","FormGrid","Col","OperateCol","fbaHooks","useEffectCustom","formInitialValues","useImperativeHandle","FormWrapper","autoComplete","onFinish","initialValues","className","_classNames","preDefinedClassName","formItemGap8","formStyle","labelWidth","formLabelWidth","labelAlign","formLabelAlign","formItemGap","formFormItemGap","labelItemVertical","formLabelItemVertical","isPure","Row","gutter","gridSize","formGridSize"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-form/model.ts","@flatbiz/antd/src/search-form/search.tsx"],"sourcesContent":["import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n openFold: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n onChangeOpenFold: boolean;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n openFold: false,\n};\n\nconst SearchFormModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n onChangeOpenFold: (boo) => {\n return (state) => {\n state.openFold = boo;\n };\n },\n },\n state: defaultState,\n};\n\nconst searchFormModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const searchFormModel = (key: string) => {\n if (!searchFormModels[key]) {\n searchFormModels[key] = Model(SearchFormModel);\n }\n return searchFormModels[key];\n};\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\n\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, forwardRef, ReactElement, useImperativeHandle, useMemo } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { FormWrapper, FormWrapperProps } from '../form-wrapper';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { searchFormModel } from './model';\nimport './style.less';\n\nexport type SearchFormProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n searchOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** form 初始值 */\n formInitialValues?: TPlainObject;\n /** label宽度,Form内部所有FormItem label都生效 */\n formLabelWidth?: FormWrapperProps['labelWidth'];\n /** labelItem 竖直布局 */\n formLabelItemVertical?: FormWrapperProps['labelItemVertical'];\n /** label 对齐方式 */\n formLabelAlign?: FormWrapperProps['labelAlign'];\n /** formItem之间竖直间距,默认值:24 */\n formFormItemGap?: FormWrapperProps['formItemGap'];\n /**\n * 自定义 searchOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /**\n * 展开、收起key值列表(内容当前组件子组件key值)\n */\n foldKeys?: string[];\n /**\n * 按钮提交事件\n * 如果需要自定义回车提交事件,需要自定义提交按钮\n */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 重置按钮 */\n onReset?: () => void;\n /** 查询按钮 */\n onQuery?: (values: TPlainObject) => void;\n /**\n * 是否缓存查询数据,默认值:true\n * ```\n * 1. 一般首页可缓存,二级、三级等页面不能缓存\n * ```\n */\n cacheSwitch?: boolean;\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n form?: FormInstance;\n};\n\nexport type SearchFormRefApi = {\n onQuery: (values?: TPlainObject) => void;\n form: FormInstance;\n};\n\n/**\n * 搜索表单\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <SearchForm>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </SearchForm>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <SearchForm>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </SearchForm>\n *\n * -- children 可为 function\n * <SearchForm>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </SearchForm>\n *\n * 2. 用户2(自定义布局)\n * SearchForm设置 isPure = true,FormItem无布局规则\n * 3. SearchForm中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 searchOperate 设置操作按钮\n * 5. SearchForm 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n * 8. 可设置 cacheSwitch 来控制是否缓存查询数据(一般一级页面可缓存,二级、三级等不能缓存),\n * 缓存数据存储在内存中,react路由跳转可正常读取缓存,浏览器刷新后缓存丢失\n *```\n */\nexport const SearchForm = forwardRef<SearchFormRefApi, SearchFormProps>((props, ref) => {\n const searchFormId = hooks.useId(undefined, 'search-form-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch === false ? searchFormId : location.pathname;\n }, [searchFormId, props.cacheSwitch]);\n\n const [state, actions] = searchFormModel(modelKey).useStore();\n const [form] = Form.useForm(props.form);\n const {\n queryButtonProps,\n resetButtonProps,\n searchOperate,\n formClassName,\n rightOperateAreaAppendType,\n onQuery,\n onReset,\n initRequest,\n onFormFinish,\n defaultResetButtonTriggerRequest,\n } = props;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const onInnerQuery = (values) => {\n Object.keys(values).forEach((key) => {\n if (key.startsWith('__#invalid_date_')) {\n delete values[key];\n }\n });\n void actions.updateFilterCondition(values);\n void onQuery?.(values || {});\n };\n\n const onInnerReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n setTimeout(() => {\n form.resetFields();\n }, 200);\n onReset?.();\n if (defaultResetButtonTriggerRequest === false) {\n return;\n }\n void onInnerQuery({});\n });\n\n const onInnerFormFinish = (values) => {\n if (onFormFinish) {\n onFormFinish(values);\n return;\n }\n void onInnerQuery(values);\n };\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper\n key=\"1\"\n type=\"primary\"\n htmlType={'submit'}\n loadingPosition=\"center\"\n {...queryButtonProps}\n >\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onInnerReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = searchOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (props.foldKeys?.length) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n void actions.onChangeOpenFold(!state.openFold);\n }}\n >\n {state.openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!state.openFold && props.foldKeys?.find((keyItem) => `.$${keyItem}` === item.key)) {\n return null;\n }\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n queryButtonProps,\n resetButtonProps,\n onInnerReset,\n searchOperate,\n form,\n props.foldKeys,\n childrens,\n rightOperateAreaAppendTypeFt,\n state.openFold,\n actions,\n ]);\n\n fbaHooks.useEffectCustom(() => {\n if ((initRequest === false && !state.isInit) || initRequest !== false) {\n void onQuery?.({\n ...props.formInitialValues,\n ...state.queryCondition,\n });\n }\n void actions.updateInitStatus();\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n onQuery: onInnerQuery,\n form,\n };\n });\n\n return (\n <FormWrapper\n form={form}\n autoComplete=\"off\"\n onFinish={onInnerFormFinish}\n initialValues={{\n ...props.formInitialValues,\n ...state.queryCondition,\n }}\n className={classNames('search-form', preDefinedClassName.form.formItemGap8, formClassName)}\n style={props.formStyle}\n labelWidth={props.formLabelWidth}\n labelAlign={props.formLabelAlign}\n formItemGap={props.formFormItemGap}\n labelItemVertical={props.formLabelItemVertical}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </FormWrapper>\n );\n});\n"],"names":["defaultState","queryCondition","isInit","openFold","SearchFormModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","onChangeOpenFold","boo","searchFormModels","searchFormModel","key","Model","SearchForm","forwardRef","props","ref","searchFormId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_searchFormModel$useS","useStore","_Form$useForm","Form","useForm","form","queryButtonProps","resetButtonProps","searchOperate","formClassName","rightOperateAreaAppendType","onQuery","onReset","initRequest","onFormFinish","defaultResetButtonTriggerRequest","children","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","onInnerQuery","values","Object","keys","forEach","startsWith","onInnerReset","useCallbackRef","Promise","$return","$error","resolve","then","$await_1","setTimeout","resetFields","$boundEx","onInnerFormFinish","formRowChildren","_props$foldKeys","defaultRightList","hidden","_jsx","ButtonWrapper","type","htmlType","loadingPosition","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","foldKeys","length","changeFolditem","style","padding","_jsxs","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","_props$foldKeys2","find","keyItem","FormGrid","Col","OperateCol","fbaHooks","useEffectCustom","formInitialValues","useImperativeHandle","FormWrapper","autoComplete","onFinish","initialValues","className","_classNames","preDefinedClassName","formItemGap8","formStyle","labelWidth","formLabelWidth","labelAlign","formLabelAlign","formItemGap","formFormItemGap","labelItemVertical","formLabelItemVertical","isPure","Row","gutter","gridSize","formGridSize"],"mappings":"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"}
|
|
@@ -13,5 +13,5 @@ import './../tag-list-render/index.css';
|
|
|
13
13
|
import './../tag-list-select/index.css';
|
|
14
14
|
import './index.css';
|
|
15
15
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
16
|
-
import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as e}from"@dimjs/lang/cjs/is-object";import{get as n}from"@dimjs/utils/cjs/get";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isEmpty as o}from"@dimjs/lang/cjs/is-empty";import{isNumber as a,isUndefinedOrNull as l,getStrByteLen as u,cutString as s,flatbizDate as d,flatbizPrice as c}from"@flatbiz/utils";import{Tooltip as f,Space as m,Badge as p}from"antd";import{Fragment as v}from"react";import{ButtonOperate as j}from"../button-operate/index.js";import{TagListRender as g}from"../tag-list-render/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";var x=function r(e,n){return function(r){if(o(r)||r==="")return n;if(a(r))return r;var t=r.toString();var i=l(e)?10:e;var d=u(t);if(d<=i*2){return t}return h(f,{placement:"topLeft",title:t,children:s(t,i*2)})}};var C=function r(e){return function(r,n,t){var o=e(n,t);return h(j,i({},o))}};var w=function r(e,n){return function(r){if(o(r)||r==="")return n;try{return d.format(new Date(r),e)}catch(e){return r||n}}};var b=function r(e,n){return function(r,t,i){if(n&&e){return(e-1)*n+i+1}return i+1}};var y=function r(e){return function(r,n,t){var i=(e==null?void 0:e())||{},o=i.pageNo,a=i.pageSize;if(a&&o){return(o-1)*a+t+1}return t+1}};var k=function r(e,n,t){return function(r){if(l(r))return null;return h(g,i({dataList:e,colorMap:n,value:r,forceMatch:false},t))}};var N=function r(i,o){return function(r){if(t(r)){var a=n(r,i,o);if(!a)return"";if(e(a))return JSON.stringify(a);return a}return r||o}};var V=function r(e){var n=e!=null&&e.hideBgColor?"":"table-fen-color";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2yuan(r);return h("span",{className:n,children:c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false})})}};var O=function r(e){var n=(e==null?void 0:e.showBgColor)===true?"table-wan-color":"";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2wan(r);var i=e!=null&&e.removeTailZero?c.removeTailZero(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false}):c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false});return h("span",{className:n,children:i})}};var S=function e(n){return function(e,t){var i=n==null?void 0:n(t);if(!i)return h(v,{children:e});var o=l(i.showData)?true:i.showData;var a=l(i.notOverflowShowExtra)?true:i.notOverflowShowExtra;var u=l(i.showMaxNumber)?10:i.showMaxNumber;var d=i.extraPosition?i.extraPosition:"after";var c=r(e)?s(e,u*2):e;if(i.extra&&o){if(c===e&&!a){return e}var f=[h("span",{children:c},"1"),h(v,{children:i.extra},"2")];var p=d==="before"?f.reverse():f;return h(m,{onClick:i.onClick,style:{cursor:i.onClick?"pointer":undefined},size:5,children:p.map((function(r,e){return h(v,{children:r},e)}))})}return h("span",{onClick:i.onClick,children:i.extra})}};var z=function r(e,n){return function(r){if(!r)return null;var t=e.find((function(e){return e.value===r}));if(t)return h(p,{color:(t==null?void 0:t.color)||(n==null?void 0:n[r])||"rgba(0, 0, 0, 0.25)",text:t==null?void 0:t.label});return r}};var M=function r(e,n){return function(r,t){if(!r)return n;return h("a",{onClick:e.bind(null,t),children:r})}};var D={extraContentRender:S,indexCell:b,serialNumberCell:y,dateCell:w,operateCell:C,tooltipCell:x,selectorCell:k,objectCell:N,fen2yuanCell:V,fen2wanCell:O,badgeCell:z,clickCell:M};export{D as tableCellRender};
|
|
16
|
+
import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as e}from"@dimjs/lang/cjs/is-object";import{get as n}from"@dimjs/utils/cjs/get";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{_ as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{isEmpty as o}from"@dimjs/lang/cjs/is-empty";import{isNumber as a,isUndefinedOrNull as l,getStrByteLen as u,cutString as s,flatbizDate as d,flatbizPrice as c}from"@flatbiz/utils";import{Tooltip as f,Space as m,Badge as p}from"antd";import{Fragment as v}from"react";import{ButtonOperate as j}from"../button-operate/index.js";import{TagListRender as g}from"../tag-list-render/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"@dimjs/model";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";var x=function r(e,n){return function(r){if(o(r)||r==="")return n;if(a(r))return r;var t=r.toString();var i=l(e)?10:e;var d=u(t);if(d<=i*2){return t}return h(f,{placement:"topLeft",title:t,children:s(t,i*2)})}};var C=function r(e){return function(r,n,t){var o=e(n,t);return h(j,i({},o))}};var w=function r(e,n){return function(r){if(o(r)||r==="")return n;try{return d.format(new Date(r),e)}catch(e){return r||n}}};var b=function r(e,n){return function(r,t,i){if(n&&e){return(e-1)*n+i+1}return i+1}};var y=function r(e){return function(r,n,t){var i=(e==null?void 0:e())||{},o=i.pageNo,a=i.pageSize;if(a&&o){return(o-1)*a+t+1}return t+1}};var k=function r(e,n,t){return function(r){if(l(r))return null;return h(g,i({dataList:e,colorMap:n,value:r,forceMatch:false},t))}};var N=function r(i,o){return function(r){if(t(r)){var a=n(r,i,o);if(!a)return"";if(e(a))return JSON.stringify(a);return a}return r||o}};var V=function r(e){var n=e!=null&&e.hideBgColor?"":"table-fen-color";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2yuan(r);return h("span",{className:n,children:c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false})})}};var O=function r(e){var n=(e==null?void 0:e.showBgColor)===true?"table-wan-color":"";return function(r){if(l(r)||r===""){if(l(e==null?void 0:e.defaultValue))return undefined;if(a(e==null?void 0:e.defaultValue)){return h("span",{className:n,children:c.format(e==null?void 0:e.defaultValue)})}return h("span",{className:n,children:e==null?void 0:e.defaultValue})}if(!a(r))return r;var t=c.fen2wan(r);var i=e!=null&&e.removeTailZero?c.removeTailZero(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false}):c.format(t,e==null?void 0:e.defaultValue,{separator:(e==null?void 0:e.separator)||false});return h("span",{className:n,children:i})}};var S=function e(n){return function(e,t){var i=n==null?void 0:n(t);if(!i)return h(v,{children:e});var o=l(i.showData)?true:i.showData;var a=l(i.notOverflowShowExtra)?true:i.notOverflowShowExtra;var u=l(i.showMaxNumber)?10:i.showMaxNumber;var d=i.extraPosition?i.extraPosition:"after";var c=r(e)?s(e,u*2):e;if(i.extra&&o){if(c===e&&!a){return e}var f=[h("span",{children:c},"1"),h(v,{children:i.extra},"2")];var p=d==="before"?f.reverse():f;return h(m,{onClick:i.onClick,style:{cursor:i.onClick?"pointer":undefined},size:5,children:p.map((function(r,e){return h(v,{children:r},e)}))})}return h("span",{onClick:i.onClick,children:i.extra})}};var z=function r(e,n){return function(r){if(!r)return null;var t=e.find((function(e){return e.value===r}));if(t)return h(p,{color:(t==null?void 0:t.color)||(n==null?void 0:n[r])||"rgba(0, 0, 0, 0.25)",text:t==null?void 0:t.label});return r}};var M=function r(e,n){return function(r,t){if(!r)return n;return h("a",{onClick:e.bind(null,t),children:r})}};var D={extraContentRender:S,indexCell:b,serialNumberCell:y,dateCell:w,operateCell:C,tooltipCell:x,selectorCell:k,objectCell:N,fen2yuanCell:V,fen2wanCell:O,badgeCell:z,clickCell:M};export{D as tableCellRender};
|
|
17
17
|
//# sourceMappingURL=index.js.map
|