amis-editor 4.1.0-beta.4 → 4.2.0-beta.3

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.
Files changed (218) hide show
  1. package/dist/component/Breadcrumb.d.ts +23 -2
  2. package/dist/component/ClassNameControl.d.ts +1 -1
  3. package/dist/component/Control/APIControl.d.ts +2 -2
  4. package/dist/component/Control/OptionControl.d.ts +3 -3
  5. package/dist/component/Control/PopoverEdit.d.ts +4 -4
  6. package/dist/component/Control/ValidationControl.d.ts +1 -1
  7. package/dist/component/Editor.d.ts +20 -1
  8. package/dist/component/IFramePreview.d.ts +2 -1
  9. package/dist/component/NodeWrapper.d.ts +1 -1
  10. package/dist/component/Panel/RenderersPanel.d.ts +1 -2
  11. package/dist/component/Preview.d.ts +3 -1
  12. package/dist/component/RegionWrapper.d.ts +4 -0
  13. package/dist/component/ScaffoldModal.d.ts +1 -1
  14. package/dist/component/VRenderer.d.ts +4 -0
  15. package/dist/component/base/InputComponentName.d.ts +1 -1
  16. package/dist/component/base/SearchCustomRendererPanel.d.ts +15 -0
  17. package/dist/component/base/SearchPanel.d.ts +83 -0
  18. package/dist/component/base/SearchRendererPanel.d.ts +2 -42
  19. package/dist/component/base/ShortcutKey.d.ts +23 -0
  20. package/dist/env.d.ts +1 -1
  21. package/dist/exports.min.js +1 -1
  22. package/dist/index.d.ts +5 -1
  23. package/dist/index.min.js +1 -1
  24. package/dist/manager.d.ts +16 -4
  25. package/dist/plugin/Alert.d.ts +1 -1
  26. package/dist/plugin/Button.d.ts +1 -1
  27. package/dist/plugin/Card.d.ts +1 -0
  28. package/dist/plugin/Cards.d.ts +2 -1
  29. package/dist/plugin/Carousel.d.ts +1 -0
  30. package/dist/plugin/Chart.d.ts +1 -0
  31. package/dist/plugin/Collapse.d.ts +1 -0
  32. package/dist/plugin/Custom.d.ts +3 -0
  33. package/dist/plugin/CustomRegion.d.ts +40 -0
  34. package/dist/plugin/Dialog.d.ts +1 -1
  35. package/dist/plugin/Drawer.d.ts +1 -1
  36. package/dist/plugin/DropDownButton.d.ts +1 -1
  37. package/dist/plugin/Each.d.ts +1 -1
  38. package/dist/plugin/Flex.d.ts +1 -0
  39. package/dist/plugin/Form/Control.d.ts +1 -0
  40. package/dist/plugin/Form/Form.d.ts +19 -3
  41. package/dist/plugin/Form/Formula.d.ts +3 -3
  42. package/dist/plugin/Form/InputURL.d.ts +1 -0
  43. package/dist/plugin/Form/Switch.d.ts +2 -0
  44. package/dist/plugin/Grid.d.ts +1 -0
  45. package/dist/plugin/HBox.d.ts +1 -0
  46. package/dist/plugin/IFrame.d.ts +3 -3
  47. package/dist/plugin/Json.d.ts +1 -0
  48. package/dist/plugin/List.d.ts +2 -1
  49. package/dist/plugin/Mapping.d.ts +1 -0
  50. package/dist/plugin/Markdown.d.ts +1 -0
  51. package/dist/plugin/Nav.d.ts +1 -0
  52. package/dist/plugin/Page.d.ts +1 -1
  53. package/dist/plugin/Panel/Outline.d.ts +8 -0
  54. package/dist/plugin/Progress.d.ts +1 -0
  55. package/dist/plugin/QRCode.d.ts +1 -0
  56. package/dist/plugin/Reset.d.ts +0 -1
  57. package/dist/plugin/Service.d.ts +1 -0
  58. package/dist/plugin/Sparkline.d.ts +1 -0
  59. package/dist/plugin/Status.d.ts +1 -0
  60. package/dist/plugin/Steps.d.ts +1 -0
  61. package/dist/plugin/Submit.d.ts +0 -1
  62. package/dist/plugin/Table.d.ts +1 -1
  63. package/dist/plugin/TableView.d.ts +1 -0
  64. package/dist/plugin/Tasks.d.ts +1 -0
  65. package/dist/plugin/TooltipWrapper.d.ts +1 -0
  66. package/dist/plugin/Video.d.ts +1 -0
  67. package/dist/plugin/WebComponent.d.ts +1 -0
  68. package/dist/plugin/Wizard.d.ts +11 -2
  69. package/dist/plugin/Wrapper.d.ts +1 -0
  70. package/dist/plugin.d.ts +8 -7
  71. package/dist/store/editor.d.ts +58 -22
  72. package/dist/store/node.d.ts +6 -0
  73. package/dist/style.css +1 -1
  74. package/dist/util.d.ts +1 -1
  75. package/package.json +9 -3
  76. package/src/component/schemaTpl.tsx +2157 -0
  77. package/src/plugin/Alert.tsx +87 -0
  78. package/src/plugin/AnchorNav.tsx +233 -0
  79. package/src/plugin/Audio.tsx +154 -0
  80. package/src/plugin/Avatar.tsx +77 -0
  81. package/src/plugin/Breadcrumb.tsx +107 -0
  82. package/src/plugin/Button.tsx +281 -0
  83. package/src/plugin/ButtonGroup.tsx +85 -0
  84. package/src/plugin/ButtonToolbar.tsx +87 -0
  85. package/src/plugin/CRUD.tsx +1835 -0
  86. package/src/plugin/Card.tsx +290 -0
  87. package/src/plugin/Cards.tsx +318 -0
  88. package/src/plugin/Carousel.tsx +377 -0
  89. package/src/plugin/Chart.tsx +218 -0
  90. package/src/plugin/CodeView.tsx +60 -0
  91. package/src/plugin/Collapse.tsx +136 -0
  92. package/src/plugin/CollapseGroup.tsx +167 -0
  93. package/src/plugin/Container.tsx +40 -0
  94. package/src/plugin/Custom.tsx +128 -0
  95. package/src/plugin/CustomRegion.tsx +156 -0
  96. package/src/plugin/Date.tsx +74 -0
  97. package/src/plugin/Datetime.tsx +68 -0
  98. package/src/plugin/Dialog.tsx +176 -0
  99. package/src/plugin/Divider.tsx +36 -0
  100. package/src/plugin/Drawer.tsx +214 -0
  101. package/src/plugin/DropDownButton.tsx +235 -0
  102. package/src/plugin/Each.tsx +150 -0
  103. package/src/plugin/ErrorRenderer.tsx +15 -0
  104. package/src/plugin/Flex.tsx +151 -0
  105. package/src/plugin/Form/ButtonGroupSelect.tsx +75 -0
  106. package/src/plugin/Form/ButtonToolbar.tsx +110 -0
  107. package/src/plugin/Form/ChainedSelect.tsx +70 -0
  108. package/src/plugin/Form/Checkbox.tsx +87 -0
  109. package/src/plugin/Form/Checkboxes.tsx +167 -0
  110. package/src/plugin/Form/CodeEditor.tsx +81 -0
  111. package/src/plugin/Form/Combo.tsx +582 -0
  112. package/src/plugin/Form/ConditionBuilder.tsx +315 -0
  113. package/src/plugin/Form/Control.tsx +139 -0
  114. package/src/plugin/Form/DiffEditor.tsx +111 -0
  115. package/src/plugin/Form/FieldSet.tsx +163 -0
  116. package/src/plugin/Form/Form.tsx +687 -0
  117. package/src/plugin/Form/Formula.tsx +79 -0
  118. package/src/plugin/Form/Group.tsx +295 -0
  119. package/src/plugin/Form/Hidden.tsx +44 -0
  120. package/src/plugin/Form/InputArray.tsx +228 -0
  121. package/src/plugin/Form/InputCity.tsx +93 -0
  122. package/src/plugin/Form/InputColor.tsx +123 -0
  123. package/src/plugin/Form/InputDate.tsx +175 -0
  124. package/src/plugin/Form/InputDateRange.tsx +225 -0
  125. package/src/plugin/Form/InputDateTime.tsx +183 -0
  126. package/src/plugin/Form/InputDateTimeRange.tsx +221 -0
  127. package/src/plugin/Form/InputEmail.tsx +33 -0
  128. package/src/plugin/Form/InputExcel.tsx +85 -0
  129. package/src/plugin/Form/InputFile.tsx +221 -0
  130. package/src/plugin/Form/InputGroup.tsx +96 -0
  131. package/src/plugin/Form/InputImage.tsx +266 -0
  132. package/src/plugin/Form/InputKV.tsx +72 -0
  133. package/src/plugin/Form/InputMonth.tsx +35 -0
  134. package/src/plugin/Form/InputMonthRange.tsx +195 -0
  135. package/src/plugin/Form/InputNumber.tsx +89 -0
  136. package/src/plugin/Form/InputPassword.tsx +33 -0
  137. package/src/plugin/Form/InputQuarter.tsx +35 -0
  138. package/src/plugin/Form/InputQuarterRange.tsx +195 -0
  139. package/src/plugin/Form/InputRange.tsx +121 -0
  140. package/src/plugin/Form/InputRating.tsx +78 -0
  141. package/src/plugin/Form/InputRepeat.tsx +57 -0
  142. package/src/plugin/Form/InputRichText.tsx +186 -0
  143. package/src/plugin/Form/InputSubForm.tsx +189 -0
  144. package/src/plugin/Form/InputTable.tsx +434 -0
  145. package/src/plugin/Form/InputTag.tsx +70 -0
  146. package/src/plugin/Form/InputText.tsx +186 -0
  147. package/src/plugin/Form/InputTime.tsx +85 -0
  148. package/src/plugin/Form/InputTree.tsx +229 -0
  149. package/src/plugin/Form/InputURL.tsx +34 -0
  150. package/src/plugin/Form/InputYear.tsx +35 -0
  151. package/src/plugin/Form/Item.tsx +327 -0
  152. package/src/plugin/Form/ListSelect.tsx +73 -0
  153. package/src/plugin/Form/LocationPicker.tsx +62 -0
  154. package/src/plugin/Form/MatrixCheckboxes.tsx +136 -0
  155. package/src/plugin/Form/NestedSelect.tsx +211 -0
  156. package/src/plugin/Form/Picker.tsx +209 -0
  157. package/src/plugin/Form/Radios.tsx +119 -0
  158. package/src/plugin/Form/Select.tsx +233 -0
  159. package/src/plugin/Form/Static.tsx +322 -0
  160. package/src/plugin/Form/Switch.tsx +107 -0
  161. package/src/plugin/Form/TabsTransfer.tsx +259 -0
  162. package/src/plugin/Form/Textarea.tsx +83 -0
  163. package/src/plugin/Form/Transfer.tsx +368 -0
  164. package/src/plugin/Form/TreeSelect.tsx +263 -0
  165. package/src/plugin/Form/UUID.tsx +48 -0
  166. package/src/plugin/Grid.tsx +798 -0
  167. package/src/plugin/HBox.tsx +727 -0
  168. package/src/plugin/IFrame.tsx +70 -0
  169. package/src/plugin/Image.tsx +314 -0
  170. package/src/plugin/Images.tsx +231 -0
  171. package/src/plugin/Json.tsx +69 -0
  172. package/src/plugin/Link.tsx +93 -0
  173. package/src/plugin/List.tsx +278 -0
  174. package/src/plugin/ListItem.tsx +229 -0
  175. package/src/plugin/Log.tsx +52 -0
  176. package/src/plugin/Mapping.tsx +149 -0
  177. package/src/plugin/Markdown.tsx +47 -0
  178. package/src/plugin/Nav.tsx +184 -0
  179. package/src/plugin/Operation.tsx +95 -0
  180. package/src/plugin/Others/Action.tsx +426 -0
  181. package/src/plugin/Others/BasicToolbar.tsx +585 -0
  182. package/src/plugin/Others/DataDebug.tsx +134 -0
  183. package/src/plugin/Others/TableCell.tsx +480 -0
  184. package/src/plugin/Others/Unknown.tsx +37 -0
  185. package/src/plugin/Page.tsx +306 -0
  186. package/src/plugin/Panel/AvailableRenderers.tsx +41 -0
  187. package/src/plugin/Panel/Code.tsx +44 -0
  188. package/src/plugin/Panel/Name.tsx +26 -0
  189. package/src/plugin/Panel/Outline.tsx +40 -0
  190. package/src/plugin/Panel.tsx +243 -0
  191. package/src/plugin/Plain.tsx +84 -0
  192. package/src/plugin/Progress.tsx +125 -0
  193. package/src/plugin/Property.tsx +139 -0
  194. package/src/plugin/QRCode.tsx +96 -0
  195. package/src/plugin/Reset.tsx +23 -0
  196. package/src/plugin/Service.tsx +162 -0
  197. package/src/plugin/Sparkline.tsx +40 -0
  198. package/src/plugin/Status.tsx +76 -0
  199. package/src/plugin/Steps.tsx +128 -0
  200. package/src/plugin/Submit.tsx +23 -0
  201. package/src/plugin/Table.tsx +428 -0
  202. package/src/plugin/TableView.tsx +709 -0
  203. package/src/plugin/Tabs.tsx +362 -0
  204. package/src/plugin/Tasks.tsx +274 -0
  205. package/src/plugin/Time.tsx +68 -0
  206. package/src/plugin/TooltipWrapper.tsx +193 -0
  207. package/src/plugin/Tpl.tsx +158 -0
  208. package/src/plugin/Video.tsx +158 -0
  209. package/src/plugin/WebComponent.tsx +53 -0
  210. package/src/plugin/Wizard.tsx +740 -0
  211. package/src/plugin/Wrapper.tsx +107 -0
  212. package/src/plugin.ts +1050 -0
  213. package/dist/150a58f3318ca7541ed9.png +0 -0
  214. package/dist/471adb97c322b226e589.png +0 -0
  215. package/dist/4de5f42360bc5946c3c2.png +0 -0
  216. package/dist/4e9968bba3855f088fed.png +0 -0
  217. package/dist/7f09c38ebc687fea847a.png +0 -0
  218. package/dist/c94073576487510314ea.png +0 -0
@@ -5,8 +5,29 @@ export interface BreadcrumbProps {
5
5
  store: EditorStoreType;
6
6
  manager: EditorManager;
7
7
  }
8
- export default class Breadcrumb extends React.Component<BreadcrumbProps> {
8
+ interface BreadcrumbStates {
9
+ showLeftScrollBtn: boolean;
10
+ showRightScrollBtn: boolean;
11
+ }
12
+ export default class Breadcrumb extends React.Component<BreadcrumbProps, BreadcrumbStates> {
13
+ readonly breadcrumbRef: React.RefObject<HTMLDivElement>;
14
+ readonly bcnContentRef: React.RefObject<HTMLDivElement>;
15
+ currentBreadcrumb: HTMLElement;
16
+ unReaction: () => void;
17
+ unSensor?: () => void;
18
+ constructor(props: any);
19
+ componentDidMount(): void;
20
+ componentWillUnmount(): void;
21
+ refreshHandleScroll(resetScroll?: boolean): void;
22
+ getCurBreadcrumb(): HTMLDivElement | null;
23
+ getBreadcrumbContainer(): HTMLDivElement | null;
24
+ getScrollLeft(): string;
25
+ toNumber(pxStr: string): number;
26
+ HandleScroll(resetScroll?: boolean): void;
27
+ handleScrollToLeft(): void;
28
+ handleScrollToRight(): void;
9
29
  handleClick(e: React.MouseEvent<HTMLAnchorElement>): void;
10
30
  handleMouseEnter(e: React.MouseEvent<HTMLAnchorElement>): void;
11
- render(): JSX.Element | null;
31
+ render(): JSX.Element;
12
32
  }
33
+ export {};
@@ -1,5 +1,5 @@
1
+ import { RendererProps } from 'amis';
1
2
  import React from 'react';
2
- import { RendererProps } from 'amis/lib/factory';
3
3
  import { Schema } from 'amis/lib/types';
4
4
  interface ClassNameControlProps extends RendererProps {
5
5
  schema: Schema;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { SchemaApi } from 'amis';
3
- import type { FormControlProps } from 'amis/lib/renderers/Form/Item';
2
+ import type { FormControlProps } from 'amis-core';
3
+ import type { SchemaApi } from 'amis/lib/Schema';
4
4
  export interface APIControlProps extends FormControlProps {
5
5
  name?: string;
6
6
  label?: string;
@@ -4,8 +4,8 @@
4
4
  import React from 'react';
5
5
  import Sortable from 'sortablejs';
6
6
  import type { Option } from 'amis';
7
- import type { FormControlProps } from 'amis/lib/renderers/Form/Item';
8
- import type { OptionValue } from 'amis/lib/components/Select';
7
+ import type { FormControlProps } from 'amis-core';
8
+ import type { OptionValue } from 'amis-core';
9
9
  export declare type valueType = 'text' | 'boolean' | 'number';
10
10
  export interface PopoverForm {
11
11
  optionLabel: string;
@@ -58,7 +58,7 @@ export declare class OptionControl extends React.Component<OptionControlProps, O
58
58
  hidden?: boolean | undefined;
59
59
  description?: string | undefined;
60
60
  defer?: boolean | undefined;
61
- deferApi?: import("amis").SchemaApi | undefined;
61
+ deferApi?: string | import("amis").BaseApiObject | undefined;
62
62
  loading?: boolean | undefined;
63
63
  loaded?: boolean | undefined;
64
64
  }[];
@@ -3,10 +3,10 @@
3
3
  */
4
4
  import React from 'react';
5
5
  import type { Action } from 'amis/lib/types';
6
- import type { IScopedContext } from 'amis/lib/Scoped';
7
- import type { FormSchema } from 'amis/lib/renderers/Form';
8
- import type { FormControlProps } from 'amis/lib/renderers/Form/Item';
9
- import type { Offset } from 'amis/lib/components/PopOver';
6
+ import type { IScopedContext } from 'amis-core';
7
+ import type { FormControlProps } from 'amis-core';
8
+ import type { FormSchema } from 'amis/lib/Schema';
9
+ import type { Offset } from 'amis-core/lib/components/PopOver';
10
10
  export interface PopoverEditProps extends FormControlProps {
11
11
  className?: string;
12
12
  popOverclassName?: string;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  /// <reference types="lodash" />
5
5
  import React from 'react';
6
- import type { FormControlProps } from 'amis/lib/renderers/Form/Item';
6
+ import type { FormControlProps } from 'amis-core';
7
7
  export interface ValidationControlProps extends FormControlProps {
8
8
  }
9
9
  interface Rule {
@@ -2,7 +2,7 @@ import React, { Component } from 'react';
2
2
  import { EditorStoreType } from '../store/editor';
3
3
  import { SchemaObject } from 'amis/lib/Schema';
4
4
  import { EditorManager, PluginClass } from '../manager';
5
- import { RenderOptions } from 'amis/lib/factory';
5
+ import { RenderOptions } from 'amis';
6
6
  import { PluginEventListener } from '../plugin';
7
7
  export interface EditorProps extends PluginEventListener {
8
8
  value: SchemaObject;
@@ -38,6 +38,10 @@ export interface EditorProps extends PluginEventListener {
38
38
  previewProps?: any;
39
39
  iframeUrl?: string;
40
40
  isHiddenProps?: (key: string) => boolean;
41
+ onUndo?: () => void;
42
+ onRedo?: () => void;
43
+ onSave?: () => void;
44
+ onPreview?: (preview: boolean) => void;
41
45
  }
42
46
  export default class Editor extends Component<EditorProps> {
43
47
  readonly store: EditorStoreType;
@@ -45,6 +49,7 @@ export default class Editor extends Component<EditorProps> {
45
49
  readonly mainRef: React.RefObject<HTMLDivElement>;
46
50
  unReaction: () => void;
47
51
  lastResult: any;
52
+ curCopySchemaData: any;
48
53
  static defaultProps: {
49
54
  autoFocus: boolean;
50
55
  };
@@ -52,11 +57,25 @@ export default class Editor extends Component<EditorProps> {
52
57
  constructor(props: EditorProps);
53
58
  componentDidUpdate(prevProps: EditorProps): void;
54
59
  componentWillUnmount(): void;
60
+ handleKeyDown(e: KeyboardEvent): void;
55
61
  handleContextMenu(e: React.MouseEvent<HTMLElement>): void;
56
62
  canUndo(): boolean;
57
63
  canRedo(): boolean;
58
64
  undo(): void;
59
65
  redo(): void;
66
+ save(): void;
67
+ preview(): void;
68
+ /**
69
+ * 复制的内容以变量的形式存放
70
+ * 备注1: 系统的复制&粘贴需要开启https服务才有效,所有这里改用内存形式实现
71
+ * 备注2: 此方法不鞥实现跨页面复制&粘贴能力
72
+ * 备注3: 后续需要支持下跨页面跨浏览器复制&粘贴能力
73
+ */
74
+ copy(): void;
75
+ /**
76
+ * 粘贴上一次复制的内容
77
+ */
78
+ paste(): void;
60
79
  getToolbarContainer(): HTMLDivElement | null;
61
80
  render(): JSX.Element;
62
81
  }
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
2
  import { EditorManager } from '../manager';
3
3
  import { EditorStoreType } from '../store/editor';
4
- import { RendererConfig, RenderOptions } from 'amis/lib/factory';
4
+ import { RenderOptions } from 'amis-core';
5
5
  import { Schema } from 'amis/lib/types';
6
+ import { RendererConfig } from 'amis-core/lib/factory';
6
7
  export interface IFramePreviewProps {
7
8
  className: string;
8
9
  editable?: boolean;
@@ -1,4 +1,4 @@
1
- import { RendererProps } from 'amis/lib/factory';
1
+ import { RendererProps } from 'amis-core';
2
2
  import React from 'react';
3
3
  import { RendererInfo } from '../plugin';
4
4
  import { EditorNodeType } from '../store/node';
@@ -8,8 +8,7 @@ declare type PanelProps = {
8
8
  groupedRenderers: {
9
9
  [propName: string]: Array<SubRendererInfo>;
10
10
  };
11
- renderersPanelUUID: string;
12
- isShowSearchRenderer?: boolean;
11
+ searchRendererType: string;
13
12
  className?: string;
14
13
  };
15
14
  declare type PanelStates = {
@@ -1,8 +1,9 @@
1
1
  import React, { Component } from 'react';
2
- import { RendererConfig, RenderOptions } from 'amis/lib/factory';
2
+ import { RenderOptions } from 'amis-core';
3
3
  import { Schema } from 'amis/lib/types';
4
4
  import { EditorStoreType } from '../store/editor';
5
5
  import { EditorManager } from '../manager';
6
+ import { RendererConfig } from 'amis-core/lib/factory';
6
7
  export interface PreviewProps {
7
8
  theme?: string;
8
9
  amisEnv?: any;
@@ -62,4 +63,5 @@ export interface SmartPreviewProps {
62
63
  store: EditorStoreType;
63
64
  env: any;
64
65
  data?: any;
66
+ manager: EditorManager;
65
67
  }
@@ -52,6 +52,8 @@ export declare class RegionWrapper extends React.Component<RegionWrapperProps> {
52
52
  readonly clickable: boolean;
53
53
  readonly draggable: boolean;
54
54
  readonly moveable: boolean;
55
+ readonly canMoveUp: boolean;
56
+ readonly canMoveDown: boolean;
55
57
  readonly removable: boolean;
56
58
  readonly duplicatable: boolean;
57
59
  readonly replaceable: boolean;
@@ -130,6 +132,8 @@ export declare class RegionWrapper extends React.Component<RegionWrapperProps> {
130
132
  readonly clickable: boolean;
131
133
  readonly draggable: boolean;
132
134
  readonly moveable: boolean;
135
+ readonly canMoveUp: boolean;
136
+ readonly canMoveDown: boolean;
133
137
  readonly removable: boolean;
134
138
  readonly duplicatable: boolean;
135
139
  readonly replaceable: boolean;
@@ -14,7 +14,7 @@ export declare class ScaffoldModal extends React.Component<SubEditorProps> {
14
14
  wrapWithPanel: boolean;
15
15
  initApi: any;
16
16
  api: any;
17
- mode: "normal" | "horizontal" | "inline";
17
+ mode: "horizontal" | "inline" | "normal";
18
18
  wrapperComponent: string;
19
19
  };
20
20
  amisScope: any;
@@ -38,6 +38,8 @@ export declare class VRenderer extends React.Component<VRendererProps> {
38
38
  readonly clickable: boolean;
39
39
  readonly draggable: boolean;
40
40
  readonly moveable: boolean;
41
+ readonly canMoveUp: boolean;
42
+ readonly canMoveDown: boolean;
41
43
  readonly removable: boolean;
42
44
  readonly duplicatable: boolean;
43
45
  readonly replaceable: boolean;
@@ -116,6 +118,8 @@ export declare class VRenderer extends React.Component<VRendererProps> {
116
118
  readonly clickable: boolean;
117
119
  readonly draggable: boolean;
118
120
  readonly moveable: boolean;
121
+ readonly canMoveUp: boolean;
122
+ readonly canMoveDown: boolean;
119
123
  readonly removable: boolean;
120
124
  readonly duplicatable: boolean;
121
125
  readonly replaceable: boolean;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { RendererProps } from 'amis/lib/factory';
2
+ import { RendererProps } from 'amis-core';
3
3
  interface InputComponentNameProps extends RendererProps {
4
4
  value: any;
5
5
  onChange: (value: any) => void;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { EditorStoreType } from '../../store/editor';
3
+ import { SubRendererInfo } from '../../plugin';
4
+ interface SearchCustomRendererProps {
5
+ store: EditorStoreType;
6
+ }
7
+ interface SearchCustomRendererStates {
8
+ customRenderersByOrder: Array<SubRendererInfo>;
9
+ }
10
+ export default class SearchCustomRendererPanel extends React.Component<SearchCustomRendererProps, SearchCustomRendererStates> {
11
+ localStorageKey: string;
12
+ constructor(props: any);
13
+ render(): JSX.Element | null;
14
+ }
15
+ export {};
@@ -0,0 +1,83 @@
1
+ import React from 'react';
2
+ /**
3
+ * 通用搜索功能组件,附带以下功能:
4
+ * 1、搜索历史:会自动记录用户搜索过的关键字,方便用户下次使用;
5
+ * 2、自动提示补全:autoComplete 设置为 true 后,每次输入关键字后会展示当前所有含有关键字的信息(并以分类的形式展示);
6
+ * 3、搜索分类:取决于当前搜索数据结构是否带tag,如果不带tag则不展示搜索分类;
7
+ */
8
+ interface SearchProps {
9
+ allResult: Array<any>;
10
+ searchPanelUUID: string;
11
+ closeAutoComplete?: boolean;
12
+ externalKeyword?: string;
13
+ tagKey?: string;
14
+ onChange: (keyword: string) => void;
15
+ onTagChange?: (tag: string) => void;
16
+ immediateChange?: boolean;
17
+ }
18
+ interface SearchStates {
19
+ resultTags: Array<string>;
20
+ resultByTag: {
21
+ [propName: string]: Array<any>;
22
+ };
23
+ curKeyword: string;
24
+ searchResult: Array<any>;
25
+ searchResultByTag: {
26
+ [propName: string]: Array<any>;
27
+ };
28
+ visible: boolean;
29
+ curKeywordSearchHistory: string[];
30
+ toggleTagFolderStatus: boolean;
31
+ }
32
+ export default class SearchPanel extends React.Component<SearchProps, SearchStates> {
33
+ ref: React.RefObject<HTMLDivElement>;
34
+ curInputBox: any;
35
+ localStorageKey: string;
36
+ curTagFolded: {
37
+ [propName: string]: boolean;
38
+ };
39
+ lastSearchTag: string;
40
+ constructor(props: any);
41
+ componentDidMount(): void;
42
+ componentWillUnmount(): void;
43
+ UNSAFE_componentWillReceiveProps(nextProps: any): void;
44
+ getSearchHistory(): any[];
45
+ /**
46
+ * 从搜索数据中获取分类信息,并按分类存放搜索数据,方便后续通过分类直接获取搜索数据
47
+ */
48
+ getResultTags(allResult: Array<any>): {
49
+ curResultTags: string[];
50
+ curResultByTag: {
51
+ [propName: string]: any[];
52
+ };
53
+ };
54
+ /**
55
+ * 根据关键字过滤数据,按分组存放
56
+ */
57
+ groupedResultByKeyword(keywords?: string): void;
58
+ bindFocusEvent(): void;
59
+ bindBlurEvent(): void;
60
+ updateCurKeyword(keywords: string): void;
61
+ changeTagFoldStatus(tagKey: string, event: any): void;
62
+ bindEnterEvent(event: any): void;
63
+ /** 删除搜索关键字 */
64
+ bindClearActionEvent(): void;
65
+ /** 组件分类tag点击事件 */
66
+ bindTagClickEvent(tag: string): void;
67
+ /** 添加搜索历史 */
68
+ addSearchHistory(newKeywords: string): void;
69
+ /** 搜索历史/点击 */
70
+ clickKeywordEvent(keywords: string): void;
71
+ deleteSearchHistory(event: any, newKeywords: string): void;
72
+ clearSearchHistory(event: any): void;
73
+ /** 将搜索记录保存到localStorage */
74
+ updateSearchHistory(): void;
75
+ /** 显示搜索关键字 */
76
+ renderNameByKeyword(rendererName: string, curKeyword: string): string | JSX.Element;
77
+ /** 判断搜索展示内容是否有滚动(交互优化) */
78
+ resultIsHasScroll(searchSubRenderers: {
79
+ [propName: string]: Array<any>;
80
+ }, maxShowLine: number): boolean;
81
+ render(): JSX.Element;
82
+ }
83
+ export {};
@@ -6,54 +6,14 @@ interface SearchRendererProps {
6
6
  }
7
7
  interface SearchRendererStates {
8
8
  subRenderersByOrder: Array<SubRendererInfo>;
9
- groupedSubRenderers: {
10
- [propName: string]: Array<SubRendererInfo>;
11
- };
12
- searchSubRenderers: {
13
- [propName: string]: Array<SubRendererInfo>;
14
- };
15
- visible: boolean;
16
- curKeyword: string;
17
- curKeywordSearchHistory: string[];
18
- toggleTagFolderStatus: boolean;
9
+ defaultKeyword: string;
19
10
  }
20
11
  export default class SearchRendererPanel extends React.Component<SearchRendererProps, SearchRendererStates> {
21
- ref: React.RefObject<HTMLDivElement>;
22
- curInputBox: any;
23
12
  localStorageKey: string;
24
- curTagFolded: {
25
- [propName: string]: boolean;
26
- };
27
13
  lastSubRenderersTag: string;
28
14
  constructor(props: any);
29
- componentDidMount(): void;
30
15
  UNSAFE_componentWillReceiveProps(nextProps: any): void;
31
- componentWillUnmount(): void;
32
- bindFocusEvent(): void;
33
- bindBlurEvent(): void;
34
- updateCurKeyword(keywords: string): void;
35
- searchSubRenderersByKeyword(): void;
36
- changeTagFoldStatus(tagKey: string, event: any): void;
37
- bindEnterEvent(event: any): void;
38
- /** 删除搜索关键字 */
39
- bindClearActionEvent(): void;
40
- /** 组件分类tag点击事件 */
41
- bindTagClickEvent(tag: string): void;
42
- getSearchHistory(): any[];
43
- /** 添加搜索历史 */
44
- addSearchHistory(newKeywords: string): void;
45
- /** 搜索历史/点击 */
46
- clickKeywordEvent(keywords: string): void;
47
- deleteSearchHistory(event: any, newKeywords: string): void;
48
- clearSearchHistory(event: any): void;
49
- /** 将搜索记录保存到localStorage */
50
- updateSearchHistory(): void;
51
- /** 显示搜索关键字 */
52
- renderNameByKeyword(rendererName: string, curKeyword: string): string | JSX.Element;
53
- /** 判断搜索展示内容是否有滚动(交互优化) */
54
- resultIsHasScroll(searchSubRenderers: {
55
- [propName: string]: Array<SubRendererInfo>;
56
- }, maxShowLine: number): boolean;
16
+ changeSubRenderersTag(curTag: string): void;
57
17
  render(): JSX.Element;
58
18
  }
59
19
  export {};
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ export interface ShortcutKeyProps {
3
+ title?: string;
4
+ size?: string;
5
+ closeOnEsc?: boolean;
6
+ closeOnOutside?: boolean;
7
+ ShortcutKeyList?: Array<ShortcutKeyItem>;
8
+ }
9
+ interface ShortcutKeyItem {
10
+ title: string;
11
+ letters: Array<string>;
12
+ tooltip?: string;
13
+ }
14
+ export interface ShortcutKeyStates {
15
+ visible: boolean;
16
+ }
17
+ export default class ShortcutKey extends React.Component<ShortcutKeyProps, ShortcutKeyStates> {
18
+ constructor(props: any);
19
+ closeShortcutKeyModal(): void;
20
+ showShortcutKeyModal(): void;
21
+ render(): JSX.Element;
22
+ }
23
+ export {};
package/dist/env.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * 传给 amis 渲染器的默认 env
3
3
  */
4
- import { RenderOptions } from 'amis/lib/factory';
4
+ import { RenderOptions } from 'amis-core';
5
5
  export declare const env: RenderOptions;