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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) 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/VRenderer.d.ts +4 -0
  14. package/dist/component/base/InputComponentName.d.ts +1 -1
  15. package/dist/component/base/SearchCustomRendererPanel.d.ts +15 -0
  16. package/dist/component/base/SearchPanel.d.ts +83 -0
  17. package/dist/component/base/SearchRendererPanel.d.ts +2 -42
  18. package/dist/env.d.ts +1 -1
  19. package/dist/exports.min.js +1 -1
  20. package/dist/index.d.ts +4 -1
  21. package/dist/index.min.js +1 -1
  22. package/dist/manager.d.ts +16 -4
  23. package/dist/plugin/Alert.d.ts +1 -1
  24. package/dist/plugin/Button.d.ts +1 -1
  25. package/dist/plugin/Card.d.ts +1 -0
  26. package/dist/plugin/Cards.d.ts +2 -1
  27. package/dist/plugin/Carousel.d.ts +1 -0
  28. package/dist/plugin/Chart.d.ts +1 -0
  29. package/dist/plugin/Collapse.d.ts +1 -0
  30. package/dist/plugin/Custom.d.ts +3 -0
  31. package/dist/plugin/CustomRegion.d.ts +40 -0
  32. package/dist/plugin/Dialog.d.ts +1 -1
  33. package/dist/plugin/Drawer.d.ts +1 -1
  34. package/dist/plugin/DropDownButton.d.ts +1 -1
  35. package/dist/plugin/Each.d.ts +1 -1
  36. package/dist/plugin/Flex.d.ts +1 -0
  37. package/dist/plugin/Form/Control.d.ts +1 -0
  38. package/dist/plugin/Form/Form.d.ts +19 -3
  39. package/dist/plugin/Form/Formula.d.ts +3 -3
  40. package/dist/plugin/Form/InputURL.d.ts +1 -0
  41. package/dist/plugin/Form/Switch.d.ts +2 -0
  42. package/dist/plugin/Grid.d.ts +1 -0
  43. package/dist/plugin/HBox.d.ts +1 -0
  44. package/dist/plugin/IFrame.d.ts +3 -3
  45. package/dist/plugin/Json.d.ts +1 -0
  46. package/dist/plugin/List.d.ts +2 -1
  47. package/dist/plugin/Mapping.d.ts +1 -0
  48. package/dist/plugin/Markdown.d.ts +1 -0
  49. package/dist/plugin/Nav.d.ts +1 -0
  50. package/dist/plugin/Page.d.ts +1 -1
  51. package/dist/plugin/Panel/Outline.d.ts +8 -0
  52. package/dist/plugin/Progress.d.ts +1 -0
  53. package/dist/plugin/QRCode.d.ts +1 -0
  54. package/dist/plugin/Reset.d.ts +0 -1
  55. package/dist/plugin/Service.d.ts +1 -0
  56. package/dist/plugin/Sparkline.d.ts +1 -0
  57. package/dist/plugin/Status.d.ts +1 -0
  58. package/dist/plugin/Steps.d.ts +1 -0
  59. package/dist/plugin/Submit.d.ts +0 -1
  60. package/dist/plugin/Table.d.ts +1 -1
  61. package/dist/plugin/TableView.d.ts +1 -0
  62. package/dist/plugin/Tasks.d.ts +1 -0
  63. package/dist/plugin/TooltipWrapper.d.ts +1 -0
  64. package/dist/plugin/Video.d.ts +1 -0
  65. package/dist/plugin/WebComponent.d.ts +1 -0
  66. package/dist/plugin/Wizard.d.ts +11 -2
  67. package/dist/plugin/Wrapper.d.ts +1 -0
  68. package/dist/plugin.d.ts +8 -7
  69. package/dist/store/editor.d.ts +47 -11
  70. package/dist/store/node.d.ts +6 -0
  71. package/dist/style.css +1 -1
  72. package/dist/util.d.ts +1 -1
  73. package/package.json +10 -3
  74. package/src/component/schemaTpl.tsx +2157 -0
  75. package/src/plugin/Alert.tsx +87 -0
  76. package/src/plugin/AnchorNav.tsx +233 -0
  77. package/src/plugin/Audio.tsx +154 -0
  78. package/src/plugin/Avatar.tsx +77 -0
  79. package/src/plugin/Breadcrumb.tsx +107 -0
  80. package/src/plugin/Button.tsx +281 -0
  81. package/src/plugin/ButtonGroup.tsx +85 -0
  82. package/src/plugin/ButtonToolbar.tsx +87 -0
  83. package/src/plugin/CRUD.tsx +1835 -0
  84. package/src/plugin/Card.tsx +290 -0
  85. package/src/plugin/Cards.tsx +318 -0
  86. package/src/plugin/Carousel.tsx +377 -0
  87. package/src/plugin/Chart.tsx +218 -0
  88. package/src/plugin/CodeView.tsx +60 -0
  89. package/src/plugin/Collapse.tsx +136 -0
  90. package/src/plugin/CollapseGroup.tsx +167 -0
  91. package/src/plugin/Container.tsx +40 -0
  92. package/src/plugin/Custom.tsx +128 -0
  93. package/src/plugin/CustomRegion.tsx +156 -0
  94. package/src/plugin/Date.tsx +74 -0
  95. package/src/plugin/Datetime.tsx +68 -0
  96. package/src/plugin/Dialog.tsx +176 -0
  97. package/src/plugin/Divider.tsx +36 -0
  98. package/src/plugin/Drawer.tsx +214 -0
  99. package/src/plugin/DropDownButton.tsx +235 -0
  100. package/src/plugin/Each.tsx +150 -0
  101. package/src/plugin/ErrorRenderer.tsx +15 -0
  102. package/src/plugin/Flex.tsx +151 -0
  103. package/src/plugin/Form/ButtonGroupSelect.tsx +75 -0
  104. package/src/plugin/Form/ButtonToolbar.tsx +110 -0
  105. package/src/plugin/Form/ChainedSelect.tsx +70 -0
  106. package/src/plugin/Form/Checkbox.tsx +87 -0
  107. package/src/plugin/Form/Checkboxes.tsx +167 -0
  108. package/src/plugin/Form/CodeEditor.tsx +81 -0
  109. package/src/plugin/Form/Combo.tsx +582 -0
  110. package/src/plugin/Form/ConditionBuilder.tsx +315 -0
  111. package/src/plugin/Form/Control.tsx +139 -0
  112. package/src/plugin/Form/DiffEditor.tsx +111 -0
  113. package/src/plugin/Form/FieldSet.tsx +163 -0
  114. package/src/plugin/Form/Form.tsx +687 -0
  115. package/src/plugin/Form/Formula.tsx +79 -0
  116. package/src/plugin/Form/Group.tsx +295 -0
  117. package/src/plugin/Form/Hidden.tsx +44 -0
  118. package/src/plugin/Form/InputArray.tsx +228 -0
  119. package/src/plugin/Form/InputCity.tsx +93 -0
  120. package/src/plugin/Form/InputColor.tsx +123 -0
  121. package/src/plugin/Form/InputDate.tsx +175 -0
  122. package/src/plugin/Form/InputDateRange.tsx +225 -0
  123. package/src/plugin/Form/InputDateTime.tsx +183 -0
  124. package/src/plugin/Form/InputDateTimeRange.tsx +221 -0
  125. package/src/plugin/Form/InputEmail.tsx +33 -0
  126. package/src/plugin/Form/InputExcel.tsx +85 -0
  127. package/src/plugin/Form/InputFile.tsx +221 -0
  128. package/src/plugin/Form/InputGroup.tsx +96 -0
  129. package/src/plugin/Form/InputImage.tsx +266 -0
  130. package/src/plugin/Form/InputKV.tsx +72 -0
  131. package/src/plugin/Form/InputMonth.tsx +35 -0
  132. package/src/plugin/Form/InputMonthRange.tsx +195 -0
  133. package/src/plugin/Form/InputNumber.tsx +89 -0
  134. package/src/plugin/Form/InputPassword.tsx +33 -0
  135. package/src/plugin/Form/InputQuarter.tsx +35 -0
  136. package/src/plugin/Form/InputQuarterRange.tsx +195 -0
  137. package/src/plugin/Form/InputRange.tsx +121 -0
  138. package/src/plugin/Form/InputRating.tsx +78 -0
  139. package/src/plugin/Form/InputRepeat.tsx +57 -0
  140. package/src/plugin/Form/InputRichText.tsx +186 -0
  141. package/src/plugin/Form/InputSubForm.tsx +189 -0
  142. package/src/plugin/Form/InputTable.tsx +434 -0
  143. package/src/plugin/Form/InputTag.tsx +70 -0
  144. package/src/plugin/Form/InputText.tsx +186 -0
  145. package/src/plugin/Form/InputTime.tsx +85 -0
  146. package/src/plugin/Form/InputTree.tsx +229 -0
  147. package/src/plugin/Form/InputURL.tsx +34 -0
  148. package/src/plugin/Form/InputYear.tsx +35 -0
  149. package/src/plugin/Form/Item.tsx +327 -0
  150. package/src/plugin/Form/ListSelect.tsx +73 -0
  151. package/src/plugin/Form/LocationPicker.tsx +62 -0
  152. package/src/plugin/Form/MatrixCheckboxes.tsx +136 -0
  153. package/src/plugin/Form/NestedSelect.tsx +211 -0
  154. package/src/plugin/Form/Picker.tsx +209 -0
  155. package/src/plugin/Form/Radios.tsx +119 -0
  156. package/src/plugin/Form/Select.tsx +233 -0
  157. package/src/plugin/Form/Static.tsx +322 -0
  158. package/src/plugin/Form/Switch.tsx +107 -0
  159. package/src/plugin/Form/TabsTransfer.tsx +259 -0
  160. package/src/plugin/Form/Textarea.tsx +83 -0
  161. package/src/plugin/Form/Transfer.tsx +368 -0
  162. package/src/plugin/Form/TreeSelect.tsx +263 -0
  163. package/src/plugin/Form/UUID.tsx +48 -0
  164. package/src/plugin/Grid.tsx +798 -0
  165. package/src/plugin/HBox.tsx +727 -0
  166. package/src/plugin/IFrame.tsx +70 -0
  167. package/src/plugin/Image.tsx +314 -0
  168. package/src/plugin/Images.tsx +231 -0
  169. package/src/plugin/Json.tsx +69 -0
  170. package/src/plugin/Link.tsx +93 -0
  171. package/src/plugin/List.tsx +278 -0
  172. package/src/plugin/ListItem.tsx +229 -0
  173. package/src/plugin/Log.tsx +52 -0
  174. package/src/plugin/Mapping.tsx +149 -0
  175. package/src/plugin/Markdown.tsx +47 -0
  176. package/src/plugin/Nav.tsx +184 -0
  177. package/src/plugin/Operation.tsx +95 -0
  178. package/src/plugin/Others/Action.tsx +426 -0
  179. package/src/plugin/Others/BasicToolbar.tsx +585 -0
  180. package/src/plugin/Others/DataDebug.tsx +134 -0
  181. package/src/plugin/Others/TableCell.tsx +480 -0
  182. package/src/plugin/Others/Unknown.tsx +37 -0
  183. package/src/plugin/Page.tsx +306 -0
  184. package/src/plugin/Panel/AvailableRenderers.tsx +41 -0
  185. package/src/plugin/Panel/Code.tsx +44 -0
  186. package/src/plugin/Panel/Name.tsx +26 -0
  187. package/src/plugin/Panel/Outline.tsx +40 -0
  188. package/src/plugin/Panel.tsx +243 -0
  189. package/src/plugin/Plain.tsx +84 -0
  190. package/src/plugin/Progress.tsx +125 -0
  191. package/src/plugin/Property.tsx +139 -0
  192. package/src/plugin/QRCode.tsx +96 -0
  193. package/src/plugin/Reset.tsx +23 -0
  194. package/src/plugin/Service.tsx +162 -0
  195. package/src/plugin/Sparkline.tsx +40 -0
  196. package/src/plugin/Status.tsx +76 -0
  197. package/src/plugin/Steps.tsx +128 -0
  198. package/src/plugin/Submit.tsx +23 -0
  199. package/src/plugin/Table.tsx +428 -0
  200. package/src/plugin/TableView.tsx +709 -0
  201. package/src/plugin/Tabs.tsx +362 -0
  202. package/src/plugin/Tasks.tsx +274 -0
  203. package/src/plugin/Time.tsx +68 -0
  204. package/src/plugin/TooltipWrapper.tsx +193 -0
  205. package/src/plugin/Tpl.tsx +158 -0
  206. package/src/plugin/Video.tsx +158 -0
  207. package/src/plugin/WebComponent.tsx +53 -0
  208. package/src/plugin/Wizard.tsx +740 -0
  209. package/src/plugin/Wrapper.tsx +107 -0
  210. package/src/plugin.ts +1050 -0
  211. package/dist/150a58f3318ca7541ed9.png +0 -0
  212. package/dist/471adb97c322b226e589.png +0 -0
  213. package/dist/4de5f42360bc5946c3c2.png +0 -0
  214. package/dist/4e9968bba3855f088fed.png +0 -0
  215. package/dist/7f09c38ebc687fea847a.png +0 -0
  216. 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-ui/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;
@@ -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 {};
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;