amis 1.9.0-beta.12 → 1.9.0-beta.15
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/lib/Schema.d.ts +4 -2
- package/lib/Schema.js.map +1 -1
- package/lib/SchemaRenderer.d.ts +2 -2
- package/lib/SchemaRenderer.js +3 -3
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/actions/Action.d.ts +8 -6
- package/lib/actions/Action.js.map +2 -2
- package/lib/actions/AjaxAction.d.ts +10 -7
- package/lib/actions/AjaxAction.js +27 -21
- package/lib/actions/AjaxAction.js.map +2 -2
- package/lib/actions/BreakAction.d.ts +2 -2
- package/lib/actions/BreakAction.js.map +1 -1
- package/lib/actions/BroadcastAction.d.ts +3 -3
- package/lib/actions/BroadcastAction.js +3 -2
- package/lib/actions/BroadcastAction.js.map +2 -2
- package/lib/actions/CmptAction.d.ts +2 -2
- package/lib/actions/CmptAction.js +7 -9
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/actions/ContinueAction.d.ts +2 -2
- package/lib/actions/ContinueAction.js.map +1 -1
- package/lib/actions/CopyAction.d.ts +7 -4
- package/lib/actions/CopyAction.js +8 -6
- package/lib/actions/CopyAction.js.map +2 -2
- package/lib/actions/CustomAction.d.ts +2 -2
- package/lib/actions/CustomAction.js.map +1 -1
- package/lib/actions/DialogAction.d.ts +14 -8
- package/lib/actions/DialogAction.js +6 -6
- package/lib/actions/DialogAction.js.map +2 -2
- package/lib/actions/DrawerAction.d.ts +3 -3
- package/lib/actions/DrawerAction.js.map +1 -1
- package/lib/actions/EmailAction.d.ts +10 -7
- package/lib/actions/EmailAction.js +4 -5
- package/lib/actions/EmailAction.js.map +2 -2
- package/lib/actions/LinkAction.d.ts +19 -11
- package/lib/actions/LinkAction.js +6 -5
- package/lib/actions/LinkAction.js.map +2 -2
- package/lib/actions/LoopAction.d.ts +6 -3
- package/lib/actions/LoopAction.js +22 -20
- package/lib/actions/LoopAction.js.map +2 -2
- package/lib/actions/PageAction.d.ts +8 -5
- package/lib/actions/PageAction.js +3 -2
- package/lib/actions/PageAction.js.map +2 -2
- package/lib/actions/ParallelAction.d.ts +2 -2
- package/lib/actions/ParallelAction.js.map +1 -1
- package/lib/actions/SwitchAction.d.ts +2 -2
- package/lib/actions/SwitchAction.js.map +1 -1
- package/lib/actions/ToastAction.d.ts +2 -2
- package/lib/actions/ToastAction.js +6 -4
- package/lib/actions/ToastAction.js.map +2 -2
- package/lib/components/Editor.d.ts +84 -84
- package/lib/components/InputBox.js +1 -1
- package/lib/components/InputBox.js.map +2 -2
- package/lib/components/Pagination.d.ts +1175 -0
- package/lib/components/Pagination.js +274 -0
- package/lib/components/Pagination.js.map +13 -0
- package/lib/components/PickerContainer.d.ts +1 -0
- package/lib/components/PickerContainer.js +3 -2
- package/lib/components/PickerContainer.js.map +2 -2
- package/lib/components/Rating.js +11 -9
- package/lib/components/Rating.js.map +2 -2
- package/lib/components/Select.js +3 -3
- package/lib/components/Select.js.map +2 -2
- package/lib/components/Tag.d.ts +148 -0
- package/lib/components/Tag.js +96 -0
- package/lib/components/Tag.js.map +13 -0
- package/lib/components/TooltipWrapper.d.ts +25 -21
- package/lib/components/TooltipWrapper.js +11 -1
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/TransferDropDown.d.ts +85 -84
- package/lib/components/TransferDropDown.js +2 -2
- package/lib/components/TransferDropDown.js.map +2 -2
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/formula/VariableList.d.ts +1 -0
- package/lib/components/formula/VariableList.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +4 -1
- package/lib/components/index.js +7 -1
- package/lib/components/index.js.map +2 -2
- package/lib/components/schema-editor/Array.d.ts +11 -0
- package/lib/components/schema-editor/Array.js +66 -0
- package/lib/components/schema-editor/Array.js.map +13 -0
- package/lib/components/schema-editor/Common.d.ts +29 -0
- package/lib/components/schema-editor/Common.js +69 -0
- package/lib/components/schema-editor/Common.js.map +13 -0
- package/lib/components/schema-editor/Item.d.ts +9 -0
- package/lib/components/schema-editor/Item.js +31 -0
- package/lib/components/schema-editor/Item.js.map +13 -0
- package/lib/components/schema-editor/Object.d.ts +44 -0
- package/lib/components/schema-editor/Object.js +191 -0
- package/lib/components/schema-editor/Object.js.map +13 -0
- package/lib/components/schema-editor/SchemaVariableList.d.ts +316 -0
- package/lib/components/schema-editor/SchemaVariableList.js +74 -0
- package/lib/components/schema-editor/SchemaVariableList.js.map +13 -0
- package/lib/components/schema-editor/SchemaVariableListPicker.d.ts +305 -0
- package/lib/components/schema-editor/SchemaVariableListPicker.js +32 -0
- package/lib/components/schema-editor/SchemaVariableListPicker.js.map +13 -0
- package/lib/components/schema-editor/index.d.ts +520 -0
- package/lib/components/schema-editor/index.js +118 -0
- package/lib/components/schema-editor/index.js.map +13 -0
- package/lib/components/table/Cell.d.ts +930 -0
- package/lib/components/table/Cell.js +36 -0
- package/lib/components/table/Cell.js.map +13 -0
- package/lib/components/table/HeadCellDropDown.d.ts +514 -0
- package/lib/components/table/HeadCellDropDown.js +52 -0
- package/lib/components/table/HeadCellDropDown.js.map +13 -0
- package/lib/components/table/HeadCellFilter.d.ts +771 -0
- package/lib/components/table/HeadCellFilter.js +106 -0
- package/lib/components/table/HeadCellFilter.js.map +13 -0
- package/lib/components/table/HeadCellSelect.d.ts +672 -0
- package/lib/components/table/HeadCellSelect.js +46 -0
- package/lib/components/table/HeadCellSelect.js.map +13 -0
- package/lib/components/table/HeadCellSort.d.ts +498 -0
- package/lib/components/table/HeadCellSort.js +67 -0
- package/lib/components/table/HeadCellSort.js.map +13 -0
- package/lib/components/table/index.d.ts +1355 -0
- package/lib/components/table/index.js +1095 -0
- package/lib/components/table/index.js.map +13 -0
- package/lib/env.d.ts +2 -4
- package/lib/env.js.map +2 -2
- package/lib/factory.js +0 -95
- package/lib/factory.js.map +2 -2
- package/lib/icons/dot.js +11 -0
- package/lib/index.d.ts +6 -1
- package/lib/index.js +9 -2
- package/lib/index.js.map +2 -2
- package/lib/locale/de-DE.js +18 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +18 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +20 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.js +0 -2
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Carousel.d.ts +5 -1
- package/lib/renderers/Carousel.js +18 -5
- package/lib/renderers/Carousel.js.map +2 -2
- package/lib/renderers/Form/ButtonGroupSelect.d.ts +2 -0
- package/lib/renderers/Form/ButtonGroupSelect.js +7 -0
- package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
- package/lib/renderers/Form/Checkbox.js +3 -4
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Checkboxes.d.ts +2 -1
- package/lib/renderers/Form/Checkboxes.js +19 -14
- package/lib/renderers/Form/Checkboxes.js.map +2 -2
- package/lib/renderers/Form/Combo.js +23 -4
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +126 -18
- package/lib/renderers/Form/Editor.d.ts +412 -112
- package/lib/renderers/Form/Editor.js +10 -1
- package/lib/renderers/Form/Editor.js.map +2 -2
- package/lib/renderers/Form/InputExcel.js +6 -1
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +1 -2
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputTree.js +1 -1
- package/lib/renderers/Form/InputTree.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +0 -6
- package/lib/renderers/Form/JSONSchemaEditor.d.ts +41 -0
- package/lib/renderers/Form/JSONSchemaEditor.js +33 -0
- package/lib/renderers/Form/JSONSchemaEditor.js.map +13 -0
- package/lib/renderers/Form/ListSelect.d.ts +2 -0
- package/lib/renderers/Form/ListSelect.js +7 -0
- package/lib/renderers/Form/ListSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +1 -0
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.js +12 -1
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TabsTransfer.d.ts +1 -1
- package/lib/renderers/Form/TabsTransfer.js +2 -2
- package/lib/renderers/Form/TabsTransfer.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +4 -0
- package/lib/renderers/Form/TreeSelect.js +2 -2
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +10 -5
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Pagination.d.ts +49 -30
- package/lib/renderers/Pagination.js +3 -132
- package/lib/renderers/Pagination.js.map +2 -2
- package/lib/renderers/Table/HeadCellSearchDropdown.js +0 -1
- package/lib/renderers/Table/HeadCellSearchDropdown.js.map +2 -2
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.d.ts +29 -0
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +158 -0
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.js.map +13 -0
- package/lib/renderers/Table-v2/TableCell.d.ts +6 -0
- package/lib/renderers/Table-v2/TableCell.js +28 -0
- package/lib/renderers/Table-v2/TableCell.js.map +13 -0
- package/lib/renderers/Table-v2/index.d.ts +256 -0
- package/lib/renderers/Table-v2/index.js +548 -0
- package/lib/renderers/Table-v2/index.js.map +13 -0
- package/lib/renderers/Tabs.js +1 -1
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/Tag.d.ts +66 -0
- package/lib/renderers/Tag.js +53 -0
- package/lib/renderers/Tag.js.map +13 -0
- package/lib/renderers/Wizard.js +3 -3
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/schemaExtend.js +24 -30
- package/lib/schemaExtend.js.map +2 -2
- package/lib/store/combo.d.ts +140 -20
- package/lib/store/form.d.ts +56 -8
- package/lib/store/formItem.d.ts +3 -1
- package/lib/store/formItem.js +3 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/index.js +2 -0
- package/lib/store/index.js.map +2 -2
- package/lib/store/table-v2.d.ts +308 -0
- package/lib/store/table-v2.js +452 -0
- package/lib/store/table-v2.js.map +13 -0
- package/lib/store/table.d.ts +112 -16
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +1686 -120
- package/lib/themes/ang.css +1807 -208
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +1667 -101
- package/lib/themes/antd.css +1789 -201
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1662 -97
- package/lib/themes/cxd.css +1983 -394
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +1667 -101
- package/lib/themes/dark.css +1789 -201
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +1662 -97
- package/lib/themes/default.css +1983 -394
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/DataSchema.d.ts +25 -0
- package/lib/utils/DataSchema.js +104 -0
- package/lib/utils/DataSchema.js.map +13 -0
- package/lib/utils/DataScope.d.ts +23 -0
- package/lib/utils/DataScope.js +140 -0
- package/lib/utils/DataScope.js.map +13 -0
- package/lib/utils/handleAction.js +1 -1
- package/lib/utils/handleAction.js.map +2 -2
- package/lib/utils/renderer-event.d.ts +8 -2
- package/lib/utils/renderer-event.js +102 -1
- package/lib/utils/renderer-event.js.map +2 -2
- package/package.json +3 -2
- package/schema.json +1476 -469
- package/scss/_properties.scss +69 -0
- package/scss/components/_button.scss +37 -39
- package/scss/components/_context-menu.scss +3 -18
- package/scss/components/_json-schema-editor.scss +126 -0
- package/scss/components/_pagination.scss +104 -23
- package/scss/components/_result-box.scss +2 -2
- package/scss/components/_table-v2.scss +912 -0
- package/scss/components/_tag.scss +177 -0
- package/scss/components/form/_selection.scss +1 -14
- package/scss/components/form/_text.scss +1 -1
- package/scss/themes/_antd-variables.scss +0 -13
- package/scss/themes/_common.scss +3 -0
- package/scss/themes/_cxd-variables.scss +7 -17
- package/scss/themes/_dark-variables.scss +0 -13
- package/scss/themes/cxd.scss +1 -1
- package/sdk/ang-ie11.css +2240 -227
- package/sdk/ang.css +2905 -859
- package/sdk/antd-ie11.css +2233 -220
- package/sdk/antd.css +2905 -870
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +2223 -211
- package/sdk/cxd.css +2911 -875
- package/sdk/dark-ie11.css +2233 -220
- package/sdk/dark.css +2905 -870
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +18 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +2223 -211
- package/sdk/sdk.css +2911 -875
- package/sdk/sdk.js +1326 -1270
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +7 -0
- package/src/SchemaRenderer.tsx +4 -5
- package/src/actions/Action.ts +7 -6
- package/src/actions/AjaxAction.ts +33 -24
- package/src/actions/BreakAction.ts +2 -2
- package/src/actions/BroadcastAction.ts +6 -5
- package/src/actions/CmptAction.ts +5 -6
- package/src/actions/ContinueAction.ts +2 -2
- package/src/actions/CopyAction.ts +14 -8
- package/src/actions/CustomAction.ts +2 -2
- package/src/actions/DialogAction.ts +16 -10
- package/src/actions/DrawerAction.ts +3 -3
- package/src/actions/EmailAction.ts +12 -12
- package/src/actions/LinkAction.ts +34 -14
- package/src/actions/LoopAction.ts +13 -8
- package/src/actions/PageAction.ts +9 -6
- package/src/actions/ParallelAction.ts +2 -2
- package/src/actions/SwitchAction.ts +2 -2
- package/src/actions/ToastAction.ts +9 -5
- package/src/components/InputBox.tsx +1 -0
- package/src/components/Pagination.tsx +446 -0
- package/src/components/PickerContainer.tsx +8 -5
- package/src/components/Rating.tsx +16 -9
- package/src/components/Select.tsx +3 -3
- package/src/components/Tag.tsx +179 -0
- package/src/components/TooltipWrapper.tsx +14 -1
- package/src/components/TransferDropDown.tsx +3 -0
- package/src/components/formula/VariableList.tsx +1 -0
- package/src/components/icons.tsx +2 -0
- package/src/components/index.tsx +7 -1
- package/src/components/schema-editor/Array.tsx +95 -0
- package/src/components/schema-editor/Common.tsx +138 -0
- package/src/components/schema-editor/Item.tsx +36 -0
- package/src/components/schema-editor/Object.tsx +299 -0
- package/src/components/schema-editor/SchemaVariableList.tsx +97 -0
- package/src/components/schema-editor/SchemaVariableListPicker.tsx +66 -0
- package/src/components/schema-editor/index.tsx +211 -0
- package/src/components/table/Cell.tsx +70 -0
- package/src/components/table/HeadCellDropDown.tsx +115 -0
- package/src/components/table/HeadCellFilter.tsx +193 -0
- package/src/components/table/HeadCellSelect.tsx +86 -0
- package/src/components/table/HeadCellSort.tsx +102 -0
- package/src/components/table/index.tsx +1681 -0
- package/src/env.tsx +7 -14
- package/src/factory.tsx +3 -106
- package/src/icons/dot.svg +11 -0
- package/src/index.tsx +8 -1
- package/src/locale/de-DE.ts +18 -1
- package/src/locale/en-US.ts +18 -1
- package/src/locale/zh-CN.ts +20 -1
- package/src/renderers/Action.tsx +1 -1
- package/src/renderers/Carousel.tsx +21 -6
- package/src/renderers/Form/ButtonGroupSelect.tsx +10 -1
- package/src/renderers/Form/Checkbox.tsx +4 -4
- package/src/renderers/Form/Checkboxes.tsx +31 -25
- package/src/renderers/Form/Combo.tsx +20 -4
- package/src/renderers/Form/Editor.tsx +15 -1
- package/src/renderers/Form/InputExcel.tsx +6 -1
- package/src/renderers/Form/InputFile.tsx +1 -2
- package/src/renderers/Form/InputTree.tsx +1 -1
- package/src/renderers/Form/JSONSchemaEditor.tsx +67 -0
- package/src/renderers/Form/ListSelect.tsx +9 -1
- package/src/renderers/Form/Options.tsx +1 -1
- package/src/renderers/Form/Select.tsx +7 -0
- package/src/renderers/Form/TabsTransfer.tsx +2 -2
- package/src/renderers/Form/TreeSelect.tsx +8 -1
- package/src/renderers/Form/wrapControl.tsx +11 -5
- package/src/renderers/Pagination.tsx +65 -253
- package/src/renderers/Table/HeadCellSearchDropdown.tsx +0 -1
- package/src/renderers/Table-v2/HeadCellSearchDropdown.tsx +244 -0
- package/src/renderers/Table-v2/TableCell.tsx +19 -0
- package/src/renderers/Table-v2/index.tsx +1140 -0
- package/src/renderers/Tabs.tsx +1 -1
- package/src/renderers/Tag.tsx +128 -0
- package/src/renderers/Wizard.tsx +3 -3
- package/src/schemaExtend.ts +24 -28
- package/src/store/formItem.ts +5 -1
- package/src/store/index.ts +2 -0
- package/src/store/table-v2.ts +646 -0
- package/src/store/table.ts +1 -1
- package/src/utils/DataSchema.ts +131 -0
- package/src/utils/DataScope.ts +190 -0
- package/src/utils/handleAction.ts +1 -1
- package/src/utils/renderer-event.ts +113 -2
package/src/env.tsx
CHANGED
@@ -6,12 +6,8 @@ import {RendererConfig} from './factory';
|
|
6
6
|
import {ThemeInstance} from './theme';
|
7
7
|
import {Action, Api, Payload, Schema} from './types';
|
8
8
|
import hoistNonReactStatic from 'hoist-non-react-statics';
|
9
|
-
import {
|
10
|
-
RendererEvent,
|
11
|
-
RendererEventListener,
|
12
|
-
EventListeners
|
13
|
-
} from './utils/renderer-event';
|
14
9
|
import {IScopedContext} from './Scoped';
|
10
|
+
import {RendererEvent} from './utils/renderer-event';
|
15
11
|
|
16
12
|
export interface RendererEnv {
|
17
13
|
fetcher: (api: Api, data?: any, options?: object) => Promise<Payload>;
|
@@ -69,8 +65,11 @@ export interface RendererEnv {
|
|
69
65
|
) => Promise<React.ReactType> | React.ReactType | JSX.Element | void;
|
70
66
|
loadChartExtends?: () => void | Promise<void>;
|
71
67
|
useMobileUI?: boolean;
|
72
|
-
|
73
|
-
|
68
|
+
/**
|
69
|
+
* 过滤 html 标签,可用来添加 xss 保护逻辑
|
70
|
+
*/
|
71
|
+
filterHtml: (input: string) => string;
|
72
|
+
beforeDispatchEvent: (
|
74
73
|
e:
|
75
74
|
| string
|
76
75
|
| React.ClipboardEvent<any>
|
@@ -86,13 +85,7 @@ export interface RendererEnv {
|
|
86
85
|
scoped: IScopedContext,
|
87
86
|
data: any,
|
88
87
|
broadcast?: RendererEvent<any>
|
89
|
-
) =>
|
90
|
-
rendererEventListeners: RendererEventListener[];
|
91
|
-
|
92
|
-
/**
|
93
|
-
* 过滤 html 标签,可用来添加 xss 保护逻辑
|
94
|
-
*/
|
95
|
-
filterHtml: (input: string) => string;
|
88
|
+
) => void;
|
96
89
|
[propName: string]: any;
|
97
90
|
}
|
98
91
|
|
package/src/factory.tsx
CHANGED
@@ -4,7 +4,6 @@ import {getEnv, destroy} from 'mobx-state-tree';
|
|
4
4
|
import {wrapFetcher} from './utils/api';
|
5
5
|
import {normalizeLink} from './utils/normalizeLink';
|
6
6
|
import {
|
7
|
-
createObject,
|
8
7
|
findIndex,
|
9
8
|
isObject,
|
10
9
|
JSONTraverse,
|
@@ -13,9 +12,7 @@ import {
|
|
13
12
|
string2regExp
|
14
13
|
} from './utils/helper';
|
15
14
|
import {
|
16
|
-
Api,
|
17
15
|
fetcherResult,
|
18
|
-
Payload,
|
19
16
|
SchemaNode,
|
20
17
|
Schema,
|
21
18
|
Action,
|
@@ -23,8 +20,8 @@ import {
|
|
23
20
|
PlainObject
|
24
21
|
} from './types';
|
25
22
|
import {observer} from 'mobx-react';
|
26
|
-
import Scoped
|
27
|
-
import {getTheme,
|
23
|
+
import Scoped from './Scoped';
|
24
|
+
import {getTheme, ThemeProps} from './theme';
|
28
25
|
import find from 'lodash/find';
|
29
26
|
import Alert from './components/Alert2';
|
30
27
|
import {toast} from './components/Toast';
|
@@ -34,14 +31,7 @@ import ScopedRootRenderer, {RootRenderProps} from './Root';
|
|
34
31
|
import {HocStoreFactory} from './WithStore';
|
35
32
|
import {EnvContext, RendererEnv} from './env';
|
36
33
|
import {envOverwrite} from './envOverwrite';
|
37
|
-
import {
|
38
|
-
EventListeners,
|
39
|
-
createRendererEvent,
|
40
|
-
RendererEventListener,
|
41
|
-
OnEventProps,
|
42
|
-
RendererEvent
|
43
|
-
} from './utils/renderer-event';
|
44
|
-
import {runActions} from './actions/Action';
|
34
|
+
import {OnEventProps} from './utils/renderer-event';
|
45
35
|
import {enableDebug} from './utils/debug';
|
46
36
|
|
47
37
|
export interface TestFunc {
|
@@ -283,7 +273,6 @@ const defaultOptions: RenderOptions = {
|
|
283
273
|
location.search.indexOf('amisDebug=1') !== -1 ??
|
284
274
|
false,
|
285
275
|
loadRenderer,
|
286
|
-
rendererEventListeners: [],
|
287
276
|
fetcher() {
|
288
277
|
return Promise.reject('fetcher is required');
|
289
278
|
},
|
@@ -384,98 +373,6 @@ const defaultOptions: RenderOptions = {
|
|
384
373
|
},
|
385
374
|
// 用于跟踪用户在界面中的各种操作
|
386
375
|
tracker(eventTrack: EventTrack, props: PlainObject) {},
|
387
|
-
// 返回解绑函数
|
388
|
-
bindEvent(renderer: any) {
|
389
|
-
if (!renderer) {
|
390
|
-
return undefined;
|
391
|
-
}
|
392
|
-
const listeners: EventListeners = renderer.props.$schema.onEvent;
|
393
|
-
if (listeners) {
|
394
|
-
// 暂存
|
395
|
-
for (let key of Object.keys(listeners)) {
|
396
|
-
const listener = this.rendererEventListeners.some(
|
397
|
-
(item: RendererEventListener) =>
|
398
|
-
item.renderer === renderer && item.type === key
|
399
|
-
);
|
400
|
-
if (!listener) {
|
401
|
-
this.rendererEventListeners.push({
|
402
|
-
renderer,
|
403
|
-
type: key,
|
404
|
-
weight: listeners[key].weight || 0,
|
405
|
-
actions: listeners[key].actions
|
406
|
-
});
|
407
|
-
}
|
408
|
-
}
|
409
|
-
|
410
|
-
return () => {
|
411
|
-
this.rendererEventListeners = this.rendererEventListeners.filter(
|
412
|
-
(item: RendererEventListener) => item.renderer !== renderer
|
413
|
-
);
|
414
|
-
};
|
415
|
-
}
|
416
|
-
|
417
|
-
return undefined;
|
418
|
-
},
|
419
|
-
async dispatchEvent(
|
420
|
-
e: string | React.MouseEvent<any>,
|
421
|
-
renderer: React.Component<RendererProps>,
|
422
|
-
scoped: IScopedContext,
|
423
|
-
data: any,
|
424
|
-
broadcast?: RendererEvent<any>
|
425
|
-
) {
|
426
|
-
let unbindEvent = null;
|
427
|
-
const eventName = typeof e === 'string' ? e : e.type;
|
428
|
-
|
429
|
-
if (!broadcast) {
|
430
|
-
const eventConfig = renderer?.props?.onEvent?.[eventName];
|
431
|
-
|
432
|
-
if (!eventConfig) {
|
433
|
-
// 没命中也没关系
|
434
|
-
return Promise.resolve(undefined);
|
435
|
-
}
|
436
|
-
|
437
|
-
unbindEvent = this.bindEvent(renderer);
|
438
|
-
}
|
439
|
-
|
440
|
-
// 没有可处理的监听
|
441
|
-
if (!this.rendererEventListeners.length) {
|
442
|
-
return Promise.resolve();
|
443
|
-
}
|
444
|
-
// 如果是广播动作,就直接复用
|
445
|
-
const rendererEvent =
|
446
|
-
broadcast ||
|
447
|
-
createRendererEvent(eventName, {
|
448
|
-
env: this,
|
449
|
-
nativeEvent: e,
|
450
|
-
data,
|
451
|
-
scoped
|
452
|
-
});
|
453
|
-
|
454
|
-
// 过滤&排序
|
455
|
-
const listeners = this.rendererEventListeners
|
456
|
-
.filter(
|
457
|
-
(item: RendererEventListener) =>
|
458
|
-
item.type === eventName &&
|
459
|
-
(broadcast ? true : item.renderer === renderer)
|
460
|
-
)
|
461
|
-
.sort(
|
462
|
-
(prev: RendererEventListener, next: RendererEventListener) =>
|
463
|
-
next.weight - prev.weight
|
464
|
-
);
|
465
|
-
|
466
|
-
for (let listener of listeners) {
|
467
|
-
await runActions(listener.actions, listener.renderer, rendererEvent);
|
468
|
-
|
469
|
-
// 停止后续监听器执行
|
470
|
-
if (rendererEvent.stoped) {
|
471
|
-
break;
|
472
|
-
}
|
473
|
-
}
|
474
|
-
|
475
|
-
unbindEvent?.();
|
476
|
-
|
477
|
-
return rendererEvent;
|
478
|
-
},
|
479
376
|
rendererResolver: resolveRenderer,
|
480
377
|
replaceTextIgnoreKeys: [
|
481
378
|
'type',
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
3
|
+
<title>状态圆</title>
|
4
|
+
<g id="状态圆" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
5
|
+
<circle id="dot" fill="currentColor" cx="8" cy="8" r="6"></circle>
|
6
|
+
<circle id="dotWave" cx="8" cy="8" r="6" fill="currentColor" opacity="0.5">
|
7
|
+
<animate attributeName="r" begin="0" values="6;8;6" dur="1.5" repeatCount="indefinite"></animate>
|
8
|
+
</circle>
|
9
|
+
</g>
|
10
|
+
</svg>
|
11
|
+
|
package/src/index.tsx
CHANGED
@@ -87,6 +87,7 @@ import './renderers/Form/ChartRadios';
|
|
87
87
|
import './renderers/Form/InputRating';
|
88
88
|
import './renderers/Form/Switch';
|
89
89
|
import './renderers/Form/Radios';
|
90
|
+
import './renderers/Form/JSONSchemaEditor';
|
90
91
|
import './renderers/Form/ListSelect';
|
91
92
|
import './renderers/Form/LocationPicker';
|
92
93
|
import './renderers/Form/Select';
|
@@ -177,6 +178,8 @@ import './renderers/Code';
|
|
177
178
|
import './renderers/WebComponent';
|
178
179
|
import './renderers/GridNav';
|
179
180
|
import './renderers/TooltipWrapper';
|
181
|
+
import './renderers/Tag';
|
182
|
+
import './renderers/Table-v2';
|
180
183
|
|
181
184
|
import Scoped, {ScopedContext} from './Scoped';
|
182
185
|
|
@@ -219,6 +222,8 @@ import {
|
|
219
222
|
const classPrefix = getClassPrefix();
|
220
223
|
|
221
224
|
import './actions';
|
225
|
+
import {DataScope} from './utils/DataScope';
|
226
|
+
import {DataSchema} from './utils/DataSchema';
|
222
227
|
|
223
228
|
export * from './components/index';
|
224
229
|
|
@@ -276,5 +281,7 @@ export {
|
|
276
281
|
setDefaultLocale,
|
277
282
|
registerLocale,
|
278
283
|
makeTranslator,
|
279
|
-
animation
|
284
|
+
animation,
|
285
|
+
DataSchema,
|
286
|
+
DataScope
|
280
287
|
};
|
package/src/locale/de-DE.ts
CHANGED
@@ -46,6 +46,11 @@ register('de-DE', {
|
|
46
46
|
'CRUD.paginationGoText': 'Wechseln zu',
|
47
47
|
'CRUD.paginationPageText': 'Seite',
|
48
48
|
'PaginationWrapper.placeholder': 'Textkörper konfigurieren',
|
49
|
+
'Pagination.select': '{{count}} items/page',
|
50
|
+
'Pagination.goto': 'goto',
|
51
|
+
'Pagination.go': 'GO',
|
52
|
+
'Pagination.totalPage': 'total {{lastPage}} pages',
|
53
|
+
'Pagination.totalCount': 'total {{total}} items',
|
49
54
|
'Date.titleYear': '',
|
50
55
|
'Date.titleMonth': '',
|
51
56
|
'Date.titleDate': '',
|
@@ -300,5 +305,17 @@ register('de-DE', {
|
|
300
305
|
'pullRefresh.loosingText': 'Zum Aktualisieren freigeben...',
|
301
306
|
'pullRefresh.loadingText': 'Laden...',
|
302
307
|
'pullRefresh.successText': 'Laden erfolgreich',
|
303
|
-
'Picker.placeholder': 'Klicken Sie rechts auf das Symbol'
|
308
|
+
'Picker.placeholder': 'Klicken Sie rechts auf das Symbol',
|
309
|
+
'SchemaType.string': 'String',
|
310
|
+
'SchemaType.number': 'Number',
|
311
|
+
'SchemaType.interger': 'Interger',
|
312
|
+
'SchemaType.object': 'Object',
|
313
|
+
'SchemaType.array': 'Array',
|
314
|
+
'SchemaType.boolean': 'Boolean',
|
315
|
+
'SchemaType.null': 'Null',
|
316
|
+
'SchemaType.any': 'Any',
|
317
|
+
'JSONSchema.title': 'Title',
|
318
|
+
'JSONSchema.description': 'Description',
|
319
|
+
'JSONSchema.key': 'Key',
|
320
|
+
'JSONSchema.array_items': 'Items'
|
304
321
|
});
|
package/src/locale/en-US.ts
CHANGED
@@ -43,6 +43,11 @@ register('en-US', {
|
|
43
43
|
'CRUD.paginationGoText': 'Go to',
|
44
44
|
'CRUD.paginationPageText': 'page',
|
45
45
|
'PaginationWrapper.placeholder': 'please config body',
|
46
|
+
'Pagination.select': '{{count}} items/page',
|
47
|
+
'Pagination.goto': 'goto',
|
48
|
+
'Pagination.go': 'GO',
|
49
|
+
'Pagination.totalPage': 'total {{lastPage}} pages',
|
50
|
+
'Pagination.totalCount': 'total {{total}} items',
|
46
51
|
'Date.titleYear': 'select year',
|
47
52
|
'Date.titleMonth': 'select month and year',
|
48
53
|
'Date.titleDate': 'select month, year and day',
|
@@ -302,5 +307,17 @@ register('en-US', {
|
|
302
307
|
'pullRefresh.loosingText': 'Release to refresh...',
|
303
308
|
'pullRefresh.loadingText': 'Loading...',
|
304
309
|
'pullRefresh.successText': 'Loading success',
|
305
|
-
'Picker.placeholder': 'Click icon on the right'
|
310
|
+
'Picker.placeholder': 'Click icon on the right',
|
311
|
+
'SchemaType.string': 'String',
|
312
|
+
'SchemaType.number': 'Number',
|
313
|
+
'SchemaType.interger': 'Interger',
|
314
|
+
'SchemaType.object': 'Object',
|
315
|
+
'SchemaType.array': 'Array',
|
316
|
+
'SchemaType.boolean': 'Boolean',
|
317
|
+
'SchemaType.any': 'Any',
|
318
|
+
'SchemaType.null': 'Null',
|
319
|
+
'JSONSchema.title': 'Title',
|
320
|
+
'JSONSchema.description': 'Description',
|
321
|
+
'JSONSchema.key': 'Key',
|
322
|
+
'JSONSchema.array_items': 'Items'
|
306
323
|
});
|
package/src/locale/zh-CN.ts
CHANGED
@@ -46,6 +46,11 @@ register('zh-CN', {
|
|
46
46
|
'CRUD.paginationGoText': '前往',
|
47
47
|
'CRUD.paginationPageText': '页',
|
48
48
|
'PaginationWrapper.placeholder': '请配置内容',
|
49
|
+
'Pagination.select': '{{count}} 条/页',
|
50
|
+
'Pagination.goto': '跳转至',
|
51
|
+
'Pagination.go': 'GO',
|
52
|
+
'Pagination.totalPage': '共 {{lastPage}} 页',
|
53
|
+
'Pagination.totalCount': '共 {{total}} 条',
|
49
54
|
'Date.titleYear': '选择年',
|
50
55
|
'Date.titleMonth': '选择年月',
|
51
56
|
'Date.titleDate': '选择年月日',
|
@@ -309,5 +314,19 @@ register('zh-CN', {
|
|
309
314
|
'pullRefresh.loosingText': '释放即可刷新...',
|
310
315
|
'pullRefresh.loadingText': '加载中...',
|
311
316
|
'pullRefresh.successText': '加载成功',
|
312
|
-
'Picker.placeholder': '请点击右侧的图标'
|
317
|
+
'Picker.placeholder': '请点击右侧的图标',
|
318
|
+
'SchemaType.string': '字符串',
|
319
|
+
'SchemaType.number': '数字',
|
320
|
+
'SchemaType.interger': '整数',
|
321
|
+
'SchemaType.object': '对象',
|
322
|
+
'SchemaType.array': '数组',
|
323
|
+
'SchemaType.boolean': '布尔',
|
324
|
+
'SchemaType.null': 'Null',
|
325
|
+
'SchemaType.any': '任意',
|
326
|
+
'JSONSchema.title': '名称',
|
327
|
+
'JSONSchema.key': '字段名',
|
328
|
+
'JSONSchema.description': '描述',
|
329
|
+
'JSONSchema.add_prop': '添加属性',
|
330
|
+
'JSONSchema.array_items': '成员类型',
|
331
|
+
'Required': '必填'
|
313
332
|
});
|
package/src/renderers/Action.tsx
CHANGED
@@ -614,7 +614,7 @@ export class Action extends React.Component<ActionProps, ActionState> {
|
|
614
614
|
const {onAction, disabled, countDown, env} = this.props;
|
615
615
|
|
616
616
|
// https://reactjs.org/docs/legacy-event-pooling.html
|
617
|
-
e.persist();
|
617
|
+
// e.persist(); // react 17之后去掉 event pooling 了,这个应该没用了
|
618
618
|
let onClick = this.props.onClick;
|
619
619
|
|
620
620
|
if (typeof onClick === 'string') {
|
@@ -18,6 +18,7 @@ import {Icon} from '../components/icons';
|
|
18
18
|
import {BaseSchema, SchemaCollection, SchemaName, SchemaTpl} from '../Schema';
|
19
19
|
import Html from '../components/Html';
|
20
20
|
import Image from '../renderers/Image';
|
21
|
+
import {ScopedContext, IScopedContext} from '../Scoped';
|
21
22
|
|
22
23
|
/**
|
23
24
|
* Carousel 轮播图渲染器。
|
@@ -192,14 +193,13 @@ export class Carousel extends React.Component<CarouselProps, CarouselState> {
|
|
192
193
|
this.clearAutoTimeout();
|
193
194
|
}
|
194
195
|
|
195
|
-
doAction(action: Action,
|
196
|
+
doAction(action: Action, args: object, throwErrors: boolean): any {
|
196
197
|
const actionType = action?.actionType as string;
|
197
|
-
|
198
|
+
|
198
199
|
if (!!~['next', 'prev'].indexOf(actionType)) {
|
199
200
|
this.autoSlide(actionType);
|
200
|
-
}
|
201
|
-
|
202
|
-
this.changeSlide((data as any).activeIndex);
|
201
|
+
} else if (actionType === 'goto-image') {
|
202
|
+
this.changeSlide((args as any).activeIndex);
|
203
203
|
}
|
204
204
|
}
|
205
205
|
|
@@ -480,4 +480,19 @@ export class Carousel extends React.Component<CarouselProps, CarouselState> {
|
|
480
480
|
@Renderer({
|
481
481
|
type: 'carousel'
|
482
482
|
})
|
483
|
-
export class CarouselRenderer extends Carousel {
|
483
|
+
export class CarouselRenderer extends Carousel {
|
484
|
+
static contextType = ScopedContext;
|
485
|
+
|
486
|
+
constructor(props: CarouselProps, context: IScopedContext) {
|
487
|
+
super(props);
|
488
|
+
|
489
|
+
const scoped = context;
|
490
|
+
scoped.registerComponent(this);
|
491
|
+
}
|
492
|
+
|
493
|
+
componentWillUnmount() {
|
494
|
+
super.componentWillUnmount?.();
|
495
|
+
const scoped = this.context as IScopedContext;
|
496
|
+
scoped.unRegisterComponent(this);
|
497
|
+
}
|
498
|
+
}
|
@@ -6,7 +6,7 @@ import {
|
|
6
6
|
Option,
|
7
7
|
FormOptionsControl
|
8
8
|
} from './Options';
|
9
|
-
import {Button} from '../../types';
|
9
|
+
import {Action, Button} from '../../types';
|
10
10
|
import {getLevelFromClassName, autobind, isEmpty} from '../../utils/helper';
|
11
11
|
import {dataMapping} from '../../utils/tpl-builtin';
|
12
12
|
import {ButtonGroupSchema} from '../ButtonGroup';
|
@@ -48,6 +48,15 @@ export default class ButtonGroupControl extends React.Component<
|
|
48
48
|
vertical: false
|
49
49
|
};
|
50
50
|
|
51
|
+
doAction(action: Action, data: object, throwErrors: boolean) {
|
52
|
+
const {resetValue, onChange} = this.props;
|
53
|
+
const actionType = action?.actionType as string;
|
54
|
+
|
55
|
+
if (!!~['clear', 'reset'].indexOf(actionType)) {
|
56
|
+
onChange(resetValue ?? '');
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
51
60
|
@autobind
|
52
61
|
handleToggle(option: Option) {
|
53
62
|
const {onToggle, multiple, autoFill, onBulkChange} = this.props;
|
@@ -71,10 +71,10 @@ export default class CheckboxControl extends React.Component<
|
|
71
71
|
const rendererEvent = await dispatchEvent(
|
72
72
|
'change',
|
73
73
|
createObject(data, {
|
74
|
-
value: eventData
|
74
|
+
value: eventData
|
75
75
|
})
|
76
76
|
);
|
77
|
-
|
77
|
+
|
78
78
|
if (rendererEvent?.prevented) {
|
79
79
|
return;
|
80
80
|
}
|
@@ -118,10 +118,10 @@ export default class CheckboxControl extends React.Component<
|
|
118
118
|
}
|
119
119
|
}
|
120
120
|
|
121
|
+
// @ts-ignore
|
122
|
+
@withBadge
|
121
123
|
@FormItem({
|
122
124
|
type: 'checkbox',
|
123
125
|
sizeMutable: false
|
124
126
|
})
|
125
|
-
// @ts-ignore
|
126
|
-
@withBadge
|
127
127
|
export class CheckboxControlRenderer extends CheckboxControl {}
|
@@ -9,7 +9,7 @@ import cx from 'classnames';
|
|
9
9
|
import Checkbox from '../../components/Checkbox';
|
10
10
|
|
11
11
|
import {Icon} from '../../components/icons';
|
12
|
-
import {Api} from '../../types';
|
12
|
+
import {Action, Api} from '../../types';
|
13
13
|
import {autobind, hasAbility} from '../../utils/helper';
|
14
14
|
import {columnsSplit} from '../../utils/columnsSplit';
|
15
15
|
|
@@ -56,7 +56,7 @@ export interface CheckboxesProps
|
|
56
56
|
createBtnLabel: string;
|
57
57
|
editable?: boolean;
|
58
58
|
removable?: boolean;
|
59
|
-
optionType?: 'default' | 'button'
|
59
|
+
optionType?: 'default' | 'button';
|
60
60
|
}
|
61
61
|
|
62
62
|
export default class CheckboxesControl extends React.Component<
|
@@ -73,6 +73,14 @@ export default class CheckboxesControl extends React.Component<
|
|
73
73
|
optionType: 'default'
|
74
74
|
};
|
75
75
|
|
76
|
+
doAction(action: Action, data: object, throwErrors: boolean) {
|
77
|
+
const {resetValue, onChange} = this.props;
|
78
|
+
const actionType = action?.actionType as string;
|
79
|
+
if (!!~['clear', 'reset'].indexOf(actionType)) {
|
80
|
+
onChange(resetValue ?? '');
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
76
84
|
reload() {
|
77
85
|
const reload = this.props.reloadOptions;
|
78
86
|
reload && reload();
|
@@ -117,27 +125,27 @@ export default class CheckboxesControl extends React.Component<
|
|
117
125
|
const wrapDom = this.refs.checkboxRef as HTMLElement;
|
118
126
|
const wrapWidth = wrapDom.clientWidth;
|
119
127
|
const childs = Array.from(wrapDom.children) as HTMLElement[];
|
120
|
-
|
128
|
+
|
121
129
|
childs.forEach(child => {
|
122
130
|
child.style.borderRadius = '0';
|
123
131
|
child.style.borderLeftWidth = '1px';
|
124
132
|
child.style.borderTopWidth = '1px';
|
125
133
|
});
|
126
|
-
const childTotalWidth = childs.reduce(
|
127
|
-
|
134
|
+
const childTotalWidth = childs.reduce(
|
135
|
+
(pre, next) => pre + next.clientWidth,
|
136
|
+
0
|
137
|
+
);
|
128
138
|
if (childTotalWidth <= wrapWidth) {
|
129
139
|
if (childs.length === 1) {
|
130
|
-
childs[0].style.borderRadius =
|
131
|
-
}
|
132
|
-
|
133
|
-
childs[
|
134
|
-
childs[childs.length - 1].style.borderRadius = "0 4px 4px 0";
|
140
|
+
childs[0].style.borderRadius = '4px';
|
141
|
+
} else {
|
142
|
+
childs[0].style.borderRadius = '4px 0 0 4px';
|
143
|
+
childs[childs.length - 1].style.borderRadius = '0 4px 4px 0';
|
135
144
|
childs.forEach((child, idx) => {
|
136
145
|
idx !== 0 && (child.style.borderLeftWidth = '0');
|
137
146
|
});
|
138
147
|
}
|
139
|
-
}
|
140
|
-
else {
|
148
|
+
} else {
|
141
149
|
let curRowWidth = 0;
|
142
150
|
let curRow = 0;
|
143
151
|
const rowNum = Math.floor(childTotalWidth / wrapWidth);
|
@@ -157,34 +165,32 @@ export default class CheckboxesControl extends React.Component<
|
|
157
165
|
}
|
158
166
|
rowColArr[curRow].push(child);
|
159
167
|
});
|
160
|
-
|
168
|
+
|
161
169
|
rowColArr.forEach((row: HTMLElement[], rowIdx: number) => {
|
162
170
|
if (rowIdx === 0) {
|
163
171
|
row.forEach((r: HTMLElement, colIdx: number) => {
|
164
172
|
r.style.borderRadius = '0';
|
165
173
|
colIdx !== 0 && (r.style.borderLeftWidth = '0');
|
166
|
-
row.length > rowColArr[rowIdx + 1].length
|
167
|
-
|
174
|
+
row.length > rowColArr[rowIdx + 1].length &&
|
175
|
+
(row[row.length - 1].style.borderBottomRightRadius = '4px');
|
168
176
|
});
|
169
|
-
row[0].style.borderTopLeftRadius =
|
170
|
-
row[row.length - 1].style.borderTopRightRadius =
|
171
|
-
}
|
172
|
-
else if (rowIdx === rowNum) {
|
177
|
+
row[0].style.borderTopLeftRadius = '4px';
|
178
|
+
row[row.length - 1].style.borderTopRightRadius = '4px';
|
179
|
+
} else if (rowIdx === rowNum) {
|
173
180
|
row.forEach((r: HTMLElement, colIdx: number) => {
|
174
181
|
r.style.borderRadius = '0';
|
175
182
|
colIdx !== 0 && (r.style.borderLeftWidth = '0');
|
176
183
|
r.style.borderTopWidth = '0';
|
177
|
-
row[0].style.borderBottomLeftRadius =
|
178
|
-
row[row.length - 1].style.borderBottomRightRadius =
|
184
|
+
row[0].style.borderBottomLeftRadius = '4px';
|
185
|
+
row[row.length - 1].style.borderBottomRightRadius = '4px';
|
179
186
|
});
|
180
|
-
}
|
181
|
-
else {
|
187
|
+
} else {
|
182
188
|
row.forEach((r: HTMLElement, colIdx: number) => {
|
183
189
|
r.style.borderRadius = '0';
|
184
190
|
colIdx !== 0 && (r.style.borderLeftWidth = '0');
|
185
191
|
r.style.borderTopWidth = '0';
|
186
|
-
row.length > rowColArr[rowIdx + 1].length
|
187
|
-
|
192
|
+
row.length > rowColArr[rowIdx + 1].length &&
|
193
|
+
(row[row.length - 1].style.borderBottomRightRadius = '4px');
|
188
194
|
});
|
189
195
|
}
|
190
196
|
});
|
@@ -434,7 +434,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
434
434
|
}
|
435
435
|
|
436
436
|
getValueAsArray(props = this.props) {
|
437
|
-
const {flat, joinValues, delimiter} = props;
|
437
|
+
const {flat, joinValues, delimiter, type} = props;
|
438
438
|
let value = props.value;
|
439
439
|
|
440
440
|
if (joinValues && flat && typeof value === 'string') {
|
@@ -581,7 +581,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
581
581
|
}
|
582
582
|
|
583
583
|
handleChange(values: any, diff: any, {index}: any) {
|
584
|
-
const {flat, store, joinValues, delimiter, disabled, submitOnChange} =
|
584
|
+
const {flat, store, joinValues, delimiter, disabled, submitOnChange, type} =
|
585
585
|
this.props;
|
586
586
|
|
587
587
|
if (disabled) {
|
@@ -595,7 +595,23 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
595
595
|
value = value.join(delimiter || ',');
|
596
596
|
}
|
597
597
|
|
598
|
-
|
598
|
+
if (type === 'input-kv') {
|
599
|
+
let hasDuplicateKey = false;
|
600
|
+
const keys: {[key: string]: boolean} = {};
|
601
|
+
for (const item of value) {
|
602
|
+
if (keys[item.key]) {
|
603
|
+
hasDuplicateKey = true;
|
604
|
+
} else {
|
605
|
+
keys[item.key] = true;
|
606
|
+
}
|
607
|
+
}
|
608
|
+
// 有重复值就不触发修改,因为 KV 模式下无法支持重复值
|
609
|
+
if (!hasDuplicateKey) {
|
610
|
+
this.props.onChange(value, submitOnChange, true);
|
611
|
+
}
|
612
|
+
} else {
|
613
|
+
this.props.onChange(value, submitOnChange, true);
|
614
|
+
}
|
599
615
|
|
600
616
|
store.forms.forEach(
|
601
617
|
form =>
|
@@ -1246,7 +1262,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1246
1262
|
closeOnClick: true
|
1247
1263
|
},
|
1248
1264
|
{
|
1249
|
-
buttons: conditions
|
1265
|
+
buttons: conditions?.map(item => ({
|
1250
1266
|
label: item.label,
|
1251
1267
|
onClick: (e: any) => {
|
1252
1268
|
this.addItemWith(item);
|
@@ -112,6 +112,11 @@ export interface EditorControlSchema extends Omit<FormBaseControl, 'size'> {
|
|
112
112
|
* 是否展示全屏模式开关
|
113
113
|
*/
|
114
114
|
allowFullscreen?: boolean;
|
115
|
+
|
116
|
+
/**
|
117
|
+
* 获取编辑器底层实例
|
118
|
+
*/
|
119
|
+
editorDidMount?: string;
|
115
120
|
}
|
116
121
|
|
117
122
|
export type EditorRendererEvent = 'blur' | 'focus';
|
@@ -195,7 +200,16 @@ export default class EditorControl extends React.Component<EditorProps, any> {
|
|
195
200
|
); // folding
|
196
201
|
}).dispose
|
197
202
|
);
|
198
|
-
|
203
|
+
if (this.props.editorDidMount) {
|
204
|
+
let editorDidMount = this.props.editorDidMount;
|
205
|
+
if (typeof editorDidMount === 'string') {
|
206
|
+
editorDidMount = new Function('editor', 'monaco');
|
207
|
+
}
|
208
|
+
const dispose = editorDidMount(editor, monaco);
|
209
|
+
if (typeof dispose === 'function') {
|
210
|
+
this.toDispose.push(dispose);
|
211
|
+
}
|
212
|
+
}
|
199
213
|
}
|
200
214
|
|
201
215
|
prevHeight = 0;
|
@@ -115,7 +115,7 @@ export default class ExcelControl extends React.PureComponent<
|
|
115
115
|
*/
|
116
116
|
readWorksheet(worksheet: any) {
|
117
117
|
const result: any[] = [];
|
118
|
-
const {parseMode, plainText} = this.props;
|
118
|
+
const {parseMode, plainText, includeEmpty} = this.props;
|
119
119
|
|
120
120
|
if (parseMode === 'array') {
|
121
121
|
worksheet.eachRow((row: any, rowNumber: number) => {
|
@@ -132,6 +132,11 @@ export default class ExcelControl extends React.PureComponent<
|
|
132
132
|
firstRowValues = row.values;
|
133
133
|
} else {
|
134
134
|
const data: any = {};
|
135
|
+
if (includeEmpty) {
|
136
|
+
firstRowValues.forEach((item: any) => {
|
137
|
+
data[item] = '';
|
138
|
+
});
|
139
|
+
}
|
135
140
|
row.eachCell((cell: any, colNumber: any) => {
|
136
141
|
if (firstRowValues[colNumber]) {
|
137
142
|
let value = cell.value;
|
@@ -1356,8 +1356,7 @@ export default class FileControl extends React.Component<FileProps, FileState> {
|
|
1356
1356
|
<Button
|
1357
1357
|
level="default"
|
1358
1358
|
disabled={disabled}
|
1359
|
-
className={cx('FileControl-selectBtn', {
|
1360
|
-
btnClassName,
|
1359
|
+
className={cx('FileControl-selectBtn', btnClassName, {
|
1361
1360
|
'is-disabled':
|
1362
1361
|
multiple && !!maxLength && files.length >= maxLength
|
1363
1362
|
})}
|