amis-editor-core 6.2.2 → 6.3.0

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/manager.d.ts CHANGED
@@ -853,7 +853,7 @@ export declare class EditorManager {
853
853
  * @param rendererIdOrSchema
854
854
  * 备注:可以根据渲染器ID添加新元素,也可以根据现有schema片段添加新元素
855
855
  */
856
- addElem(rendererIdOrSchema: string | any, reGenerateId?: boolean): Promise<void>;
856
+ addElem(rendererIdOrSchema: string | any, reGenerateId?: boolean, activeChild?: boolean): Promise<void>;
857
857
  /**
858
858
  * 判断当前节点是否可以添加同级节点
859
859
  */
@@ -908,7 +908,7 @@ export declare class EditorManager {
908
908
  * @param value
909
909
  * @param diff
910
910
  */
911
- panelChangeValue(value: any, diff?: any): void;
911
+ panelChangeValue(value: any, diff?: any, changeFilter?: (schema: any, value: any, id: string, diff?: any) => any, id?: string): void;
912
912
  /**
913
913
  * 打开子编辑器,比如弹框什么的,没办法直接编辑器,靠弹窗个新的编辑器来编辑。
914
914
  * @param config
package/esm/plugin.d.ts CHANGED
@@ -676,7 +676,7 @@ export interface RendererPluginAction {
676
676
  schema?: any;
677
677
  supportComponents?: string[] | string;
678
678
  innerArgs?: string[];
679
- descDetail?: (info: any) => string | JSX.Element;
679
+ descDetail?: (info: any, context: any, props: any) => string | JSX.Element;
680
680
  outputVarDataSchema?: any | any[];
681
681
  actions?: SubRendererPluginAction[];
682
682
  children?: RendererPluginAction[];
@@ -3,6 +3,8 @@ import { Instance } from 'mobx-state-tree';
3
3
  import { InsertEventContext, PluginEvent, RendererInfo, SubRendererInfo, ToolbarItem, PanelItem, MoveEventContext, ScaffoldForm, PopOverForm } from '../plugin';
4
4
  import type { Schema } from 'amis';
5
5
  import { EditorNodeType } from './node';
6
+ import type { DialogSchema } from '../../../amis/src/renderers/Dialog';
7
+ import type { DrawerSchema } from '../../../amis/src/renderers/Drawer';
6
8
  export interface SchemaHistory {
7
9
  versionId: number;
8
10
  schema: any;
@@ -57,6 +59,11 @@ export interface TargetName {
57
59
  name: string;
58
60
  editorId: string;
59
61
  }
62
+ export type EditorModalBody = (DialogSchema | DrawerSchema) & {
63
+ $$id?: string;
64
+ $$ref?: string;
65
+ actionType?: string;
66
+ };
60
67
  export declare const MainStore: import("mobx-state-tree").IModelType<{
61
68
  isMobile: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
62
69
  isSubEditor: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
@@ -415,7 +422,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
415
422
  removeChild(child: any): void;
416
423
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
417
424
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
418
- updateSchema(value: any): void;
425
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
419
426
  updateSchemaStyle(value: any): void;
420
427
  setComponent(value: any): void;
421
428
  getComponent(): any;
@@ -429,8 +436,6 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
429
436
  hoverId: import("mobx-state-tree").IType<string | undefined, string, string>;
430
437
  hoverRegion: import("mobx-state-tree").IType<string | undefined, string, string>;
431
438
  activeId: import("mobx-state-tree").IType<string | undefined, string, string>;
432
- previewDialogId: import("mobx-state-tree").IType<string | undefined, string, string>;
433
- activeDialogPath: import("mobx-state-tree").IType<string | undefined, string, string>;
434
439
  activeRegion: import("mobx-state-tree").IType<string | undefined, string, string>;
435
440
  mouseMoveRegion: import("mobx-state-tree").IType<string | undefined, string, string>;
436
441
  selections: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<string[], string[], string[]>, [undefined]>;
@@ -853,7 +858,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
853
858
  removeChild(child: any): void;
854
859
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
855
860
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
856
- updateSchema(value: any): void;
861
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
857
862
  updateSchemaStyle(value: any): void;
858
863
  setComponent(value: any): void;
859
864
  getComponent(): any;
@@ -1216,7 +1221,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
1216
1221
  removeChild(child: any): void;
1217
1222
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
1218
1223
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
1219
- updateSchema(value: any): void;
1224
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
1220
1225
  updateSchemaStyle(value: any): void;
1221
1226
  setComponent(value: any): void;
1222
1227
  getComponent(): any;
@@ -1601,7 +1606,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
1601
1606
  removeChild(child: any): void;
1602
1607
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
1603
1608
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
1604
- updateSchema(value: any): void;
1609
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
1605
1610
  updateSchemaStyle(value: any): void;
1606
1611
  setComponent(value: any): void;
1607
1612
  getComponent(): any;
@@ -1964,7 +1969,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
1964
1969
  removeChild(child: any): void;
1965
1970
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
1966
1971
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
1967
- updateSchema(value: any): void;
1972
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
1968
1973
  updateSchemaStyle(value: any): void;
1969
1974
  setComponent(value: any): void;
1970
1975
  getComponent(): any;
@@ -2328,7 +2333,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
2328
2333
  removeChild(child: any): void;
2329
2334
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
2330
2335
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
2331
- updateSchema(value: any): void;
2336
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
2332
2337
  updateSchemaStyle(value: any): void;
2333
2338
  setComponent(value: any): void;
2334
2339
  getComponent(): any;
@@ -2691,7 +2696,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
2691
2696
  removeChild(child: any): void;
2692
2697
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
2693
2698
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
2694
- updateSchema(value: any): void;
2699
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
2695
2700
  updateSchemaStyle(value: any): void;
2696
2701
  setComponent(value: any): void;
2697
2702
  getComponent(): any;
@@ -3055,7 +3060,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
3055
3060
  removeChild(child: any): void;
3056
3061
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
3057
3062
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
3058
- updateSchema(value: any): void;
3063
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
3059
3064
  updateSchemaStyle(value: any): void;
3060
3065
  setComponent(value: any): void;
3061
3066
  getComponent(): any;
@@ -3418,7 +3423,7 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
3418
3423
  removeChild(child: any): void;
3419
3424
  toggleFold(e: import("react").MouseEvent<HTMLAnchorElement, MouseEvent>): void;
3420
3425
  patch(store: any, force?: boolean, setPatchInfo?: ((id: string, value: any) => void) | undefined): void;
3421
- updateSchema(value: any): void;
3426
+ updateSchema(value: any): void; /** 根据关键字过滤组件 */
3422
3427
  updateSchemaStyle(value: any): void;
3423
3428
  setComponent(value: any): void;
3424
3429
  getComponent(): any;
@@ -3483,7 +3488,13 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
3483
3488
  readonly getSuperEditorData: any;
3484
3489
  getComponentTreeSource(): any;
3485
3490
  readonly scaffoldData: any;
3486
- readonly dialogOutlineList: any[];
3491
+ readonly modals: any[];
3492
+ readonly modalOptions: {
3493
+ label: string;
3494
+ tip: string;
3495
+ value: any;
3496
+ $$ref: any;
3497
+ }[];
3487
3498
  } & {
3488
3499
  setLayer(value: any): void;
3489
3500
  getLayer(): HTMLElement | undefined;
@@ -3500,8 +3511,6 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
3500
3511
  insertSchema(event: PluginEvent<InsertEventContext>): any;
3501
3512
  moveSchema(event: PluginEvent<MoveEventContext>): void;
3502
3513
  setActiveId(id: string, region?: string, selections?: Array<string>): void;
3503
- setActiveDialogPath(path: string): void;
3504
- setPreviewDialogId(id?: string): void;
3505
3514
  setSelections(ids: Array<string>): void;
3506
3515
  clearSelection(): void;
3507
3516
  setHoverId(id: string, region?: string): void;
@@ -3527,9 +3536,9 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
3527
3536
  changeOutlineTabsKey(key: string): void;
3528
3537
  changeLeftPanelOpenStatus(isOpenStatus: boolean): void;
3529
3538
  showRendererPanel(tag?: string, msg?: string): void;
3530
- changeValue(value: Schema, diff?: any): void;
3539
+ changeValue(value: Schema, diff?: any, changeFilter?: ((schema: any, value: any, id: string, diff?: any) => any) | undefined, id?: string): void;
3531
3540
  definitionOnchangeValue(value: Schema, diff?: any): void;
3532
- changeValueById(id: string, value: Schema, diff?: any, replace?: boolean, noTrace?: boolean): void;
3541
+ changeValueById(id: string, value: Schema, diff?: any, replace?: boolean, noTrace?: boolean, changeFilter?: ((schema: any, value: any, id: string, diff?: any) => any) | undefined): void;
3533
3542
  batchChangeValue(list: Array<{
3534
3543
  id: string;
3535
3544
  value: Schema;
@@ -3555,6 +3564,16 @@ export declare const MainStore: import("mobx-state-tree").IModelType<{
3555
3564
  setInsertTag(tag: string): void;
3556
3565
  setInsertSelected(id: string): void;
3557
3566
  setJSONSchemaUri(schemaUri: string): void;
3567
+ addModal(modal?: DialogSchema | DrawerSchema, definitions?: any): void;
3568
+ /**
3569
+ * 计算具有指定ID的模态动作引用的数量
3570
+ *
3571
+ * @param id 模态动作的ID
3572
+ * @returns 返回模态动作引用的数量
3573
+ */
3574
+ countModalActionRefs(id: string): number;
3575
+ removeModal(id: string): void;
3576
+ updateModal(id: string, modal: DialogSchema | DrawerSchema, definitions?: any): void;
3558
3577
  openSubEditor(context: SubEditorContext): void;
3559
3578
  confirmSubEditor([valueRaw]: any): void;
3560
3579
  closeSubEditor(): void;
package/esm/util.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /// <reference types="lodash" />
2
2
  import type { Schema } from 'amis';
3
3
  import { Diff } from 'deep-diff';
4
+ import { EditorModalBody } from './store/editor';
4
5
  declare const guid: any, omitControls: any, isObjectShallowModified: any, cloneObject: any, anyChanged: any, noop: any, makeHorizontalDeeper: any, isEmpty: any, eachTree: any, createObject: any;
5
6
  export { guid, isObjectShallowModified, anyChanged, noop, makeHorizontalDeeper, omitControls, isEmpty, cloneObject, eachTree, createObject };
6
7
  export declare let themeConfig: any;
@@ -159,16 +160,23 @@ export declare const updateComponentContext: (variables: any[]) => any[];
159
160
  * @param selector dom 选择器
160
161
  */
161
162
  export declare const scrollToActive: import("lodash").DebouncedFunc<(selector: string) => void>;
163
+ export declare function addModal(schema: any, modal: any, definitions?: any): any[];
162
164
  /**
163
- * 获取弹窗事件
164
- * @param schema 遍历的schema
165
- * @param listType 列表形式,弹窗list或label value形式的数据源
166
- * @param filterId 要过滤弹窗的id
165
+ * 弹窗转成 definitions 定义
166
+ * 这样打开子弹窗的时候,可以把父级的弹窗列表透传到子弹窗里面去
167
+ *
168
+ * 这样子弹窗里面打开弹窗才能选到外面的弹窗
169
+ * @param modals
170
+ * @param definitions
171
+ * @returns
167
172
  */
168
- export declare const getDialogActions: (schema: Schema, listType: 'list' | 'source', filterId?: string) => any[];
173
+ export declare function modalsToDefinitions(modals: Array<EditorModalBody>, definitions?: any): any;
169
174
  /**
170
- * 获取弹窗的类型,来源于事件或definitions,由于历史数据可能没有type: dialog,在这里兼容一下
171
- * @param json
172
- * @param previewDialogId
175
+ * 从子弹窗的 definitions 合并回来到主弹窗的 definitions
176
+ *
177
+ * @param originSchema
178
+ * @param definitions
179
+ * @param modal
180
+ * @returns
173
181
  */
174
- export declare const getFixDialogType: (json: Schema, dialogId: string) => any;
182
+ export declare function mergeDefinitions(originSchema: any, definitions: any, modal: any): any;
@@ -103,7 +103,7 @@ export default class Editor extends Component<EditorProps> {
103
103
  componentWillUnmount(): void;
104
104
  handleKeyDown(e: KeyboardEvent): void;
105
105
  handleMessage(event: any): void;
106
- handleContextMenu(e: React.MouseEvent<HTMLElement>): void;
106
+ handleContextMenu(e: React.MouseEvent<HTMLElement>): Promise<void>;
107
107
  canUndo(): boolean;
108
108
  canRedo(): boolean;
109
109
  undo(): void;
@@ -13,19 +13,5 @@ export interface HighlightBoxProps {
13
13
  manager: EditorManager;
14
14
  children?: React.ReactNode;
15
15
  }
16
- export default class HighlightBox extends React.Component<HighlightBoxProps> {
17
- mainRef: React.RefObject<HTMLDivElement>;
18
- handleWResizerMouseDown(e: MouseEvent): void;
19
- handleHResizerMouseDown(e: MouseEvent): void;
20
- handleResizerMouseDown(e: MouseEvent): void;
21
- startResize(e: MouseEvent, direction?: 'horizontal' | 'vertical' | 'both'): void;
22
- wResizerDom: HTMLElement;
23
- wResizerRef(ref: any): void;
24
- hResizerDom: HTMLElement;
25
- hResizerRef(ref: any): void;
26
- resizerDom: HTMLElement;
27
- resizerRef(ref: any): void;
28
- handleMouseEnter(): void;
29
- handleDragStart(e: React.DragEvent): void;
30
- render(): React.JSX.Element;
31
- }
16
+ declare const _default: ({ className, store, id, title, children, node, toolbarContainer, onSwitch, manager }: HighlightBoxProps) => React.JSX.Element;
17
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import { ClassNamesFn } from 'amis-core';
2
+ import React from 'react';
3
+ import { EditorStoreType } from '../../store/editor';
4
+ export interface DialogListProps {
5
+ classnames: ClassNamesFn;
6
+ store: EditorStoreType;
7
+ }
8
+ declare const _default: ({ classnames: cx, store }: DialogListProps) => React.JSX.Element;
9
+ export default _default;
@@ -19,6 +19,6 @@ export declare class OutlinePanel extends React.Component<PanelProps> {
19
19
  renderItem(option: EditorNodeType, index: number, type?: 'dialog' | 'dialogView'): React.JSX.Element | null;
20
20
  getDialogNodeLabel(option: EditorNodeType, type?: 'dialog' | 'dialogView'): string;
21
21
  getDialogLabel(option: any, isNode: boolean, title?: 'title' | 'dialogTitle'): string;
22
- renderDialogItem(option: any, index: number): React.JSX.Element | null;
22
+ renderDialogItem(option: any, index: number): React.JSX.Element;
23
23
  render(): React.JSX.Element;
24
24
  }
@@ -1,3 +1,4 @@
1
+ import { TestIdBuilder } from 'amis';
1
2
  import React from 'react';
2
3
  import { EditorStoreType } from '../../store/editor';
3
4
  import { EditorManager } from '../../manager';
@@ -10,6 +11,7 @@ type PanelProps = {
10
11
  };
11
12
  searchRendererType: string;
12
13
  className?: string;
14
+ testIdBuilder?: TestIdBuilder;
13
15
  };
14
16
  type PanelStates = {
15
17
  toggleCollapseFolderStatus: boolean;
@@ -14,7 +14,5 @@ export interface HighlightBoxProps {
14
14
  manager: EditorManager;
15
15
  isOnlyChildRegion: boolean;
16
16
  }
17
- export default class RegionHighlightBox extends React.Component<HighlightBoxProps> {
18
- handleClick(): void;
19
- render(): React.JSX.Element;
20
- }
17
+ declare const _default: (props: HighlightBoxProps) => React.JSX.Element;
18
+ export default _default;
@@ -16,7 +16,7 @@ export default class BackTop extends React.Component<BackTopProps, BackTopStates
16
16
  constructor(props: any);
17
17
  componentDidMount(): void;
18
18
  componentWillUnmount(): void;
19
- getDefaultTarget(): Document | (Window & typeof globalThis);
19
+ getDefaultTarget(): (Window & typeof globalThis) | Document;
20
20
  handleScroll(e: React.UIEvent<HTMLElement> | {
21
21
  target: any;
22
22
  }): void;
@@ -0,0 +1,24 @@
1
+ import { EditorNodeType } from '../../store/node';
2
+ import { EditorManager } from '../../manager';
3
+ export declare function SchemaFrom({ propKey, body, definitions, controls, onChange, value, env, api, popOverContainer, submitOnChange, node, manager, justify, ctx, pipeIn, pipeOut }: {
4
+ propKey?: string;
5
+ env: any;
6
+ body?: Array<any>;
7
+ /**
8
+ * @deprecated 用 body 代替
9
+ */
10
+ controls?: Array<any>;
11
+ definitions?: any;
12
+ value: any;
13
+ api?: any;
14
+ onChange: (value: any, diff: any, filter: (schema: any, value: any, id: string, diff?: any) => any) => void;
15
+ popOverContainer?: () => HTMLElement | void;
16
+ submitOnChange?: boolean;
17
+ node?: EditorNodeType;
18
+ manager: EditorManager;
19
+ panelById?: string;
20
+ justify?: boolean;
21
+ ctx?: any;
22
+ pipeIn?: (value: any) => any;
23
+ pipeOut?: (value: any, oldValue: any) => any;
24
+ }): any;
package/lib/editor.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-editor-core v6.2.2
2
+ * amis-editor-core v6.3.0
3
3
  * Copyright 2018-2024 @fex
4
4
  */
5
5
 
package/lib/index.d.ts CHANGED
@@ -33,6 +33,7 @@ import type { EditorStoreType } from './store/editor';
33
33
  import { AvailableRenderersPlugin } from './plugin/AvailableRenderers';
34
34
  import ShortcutKey from './component/base/ShortcutKey';
35
35
  import WidthDraggableContainer from './component/base/WidthDraggableContainer';
36
+ import { SchemaFrom } from './component/base/SchemaForm';
36
37
  export declare const version = "__buildVersion";
37
38
  export default Editor;
38
- export { Editor, MiniEditor, utils, mapReactElement, RendererEditor, BasicEditor, CodeEditor, VRenderer, RegionWrapper, IFramePreview as IFrameEditor, SearchPanel, EditorNodeType, EditorNodeSnapshot, EditorStoreType, ContainerWrapper, AvailableRenderersPlugin, ShortcutKey, WidthDraggableContainer };
39
+ export { Editor, MiniEditor, utils, mapReactElement, RendererEditor, BasicEditor, CodeEditor, VRenderer, RegionWrapper, IFramePreview as IFrameEditor, SearchPanel, EditorNodeType, EditorNodeSnapshot, EditorStoreType, ContainerWrapper, AvailableRenderersPlugin, ShortcutKey, SchemaFrom, WidthDraggableContainer };