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.
- package/dist/component/Breadcrumb.d.ts +23 -2
- package/dist/component/ClassNameControl.d.ts +1 -1
- package/dist/component/Control/APIControl.d.ts +2 -2
- package/dist/component/Control/OptionControl.d.ts +3 -3
- package/dist/component/Control/PopoverEdit.d.ts +4 -4
- package/dist/component/Control/ValidationControl.d.ts +1 -1
- package/dist/component/Editor.d.ts +20 -1
- package/dist/component/IFramePreview.d.ts +2 -1
- package/dist/component/NodeWrapper.d.ts +1 -1
- package/dist/component/Panel/RenderersPanel.d.ts +1 -2
- package/dist/component/Preview.d.ts +3 -1
- package/dist/component/RegionWrapper.d.ts +4 -0
- package/dist/component/VRenderer.d.ts +4 -0
- package/dist/component/base/InputComponentName.d.ts +1 -1
- package/dist/component/base/SearchCustomRendererPanel.d.ts +15 -0
- package/dist/component/base/SearchPanel.d.ts +83 -0
- package/dist/component/base/SearchRendererPanel.d.ts +2 -42
- package/dist/env.d.ts +1 -1
- package/dist/exports.min.js +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.min.js +1 -1
- package/dist/manager.d.ts +16 -4
- package/dist/plugin/Alert.d.ts +1 -1
- package/dist/plugin/Button.d.ts +1 -1
- package/dist/plugin/Card.d.ts +1 -0
- package/dist/plugin/Cards.d.ts +2 -1
- package/dist/plugin/Carousel.d.ts +1 -0
- package/dist/plugin/Chart.d.ts +1 -0
- package/dist/plugin/Collapse.d.ts +1 -0
- package/dist/plugin/Custom.d.ts +3 -0
- package/dist/plugin/CustomRegion.d.ts +40 -0
- package/dist/plugin/Dialog.d.ts +1 -1
- package/dist/plugin/Drawer.d.ts +1 -1
- package/dist/plugin/DropDownButton.d.ts +1 -1
- package/dist/plugin/Each.d.ts +1 -1
- package/dist/plugin/Flex.d.ts +1 -0
- package/dist/plugin/Form/Control.d.ts +1 -0
- package/dist/plugin/Form/Form.d.ts +19 -3
- package/dist/plugin/Form/Formula.d.ts +3 -3
- package/dist/plugin/Form/InputURL.d.ts +1 -0
- package/dist/plugin/Form/Switch.d.ts +2 -0
- package/dist/plugin/Grid.d.ts +1 -0
- package/dist/plugin/HBox.d.ts +1 -0
- package/dist/plugin/IFrame.d.ts +3 -3
- package/dist/plugin/Json.d.ts +1 -0
- package/dist/plugin/List.d.ts +2 -1
- package/dist/plugin/Mapping.d.ts +1 -0
- package/dist/plugin/Markdown.d.ts +1 -0
- package/dist/plugin/Nav.d.ts +1 -0
- package/dist/plugin/Page.d.ts +1 -1
- package/dist/plugin/Panel/Outline.d.ts +8 -0
- package/dist/plugin/Progress.d.ts +1 -0
- package/dist/plugin/QRCode.d.ts +1 -0
- package/dist/plugin/Reset.d.ts +0 -1
- package/dist/plugin/Service.d.ts +1 -0
- package/dist/plugin/Sparkline.d.ts +1 -0
- package/dist/plugin/Status.d.ts +1 -0
- package/dist/plugin/Steps.d.ts +1 -0
- package/dist/plugin/Submit.d.ts +0 -1
- package/dist/plugin/Table.d.ts +1 -1
- package/dist/plugin/TableView.d.ts +1 -0
- package/dist/plugin/Tasks.d.ts +1 -0
- package/dist/plugin/TooltipWrapper.d.ts +1 -0
- package/dist/plugin/Video.d.ts +1 -0
- package/dist/plugin/WebComponent.d.ts +1 -0
- package/dist/plugin/Wizard.d.ts +11 -2
- package/dist/plugin/Wrapper.d.ts +1 -0
- package/dist/plugin.d.ts +8 -7
- package/dist/store/editor.d.ts +47 -11
- package/dist/store/node.d.ts +6 -0
- package/dist/style.css +1 -1
- package/dist/util.d.ts +1 -1
- package/package.json +10 -3
- package/src/component/schemaTpl.tsx +2157 -0
- package/src/plugin/Alert.tsx +87 -0
- package/src/plugin/AnchorNav.tsx +233 -0
- package/src/plugin/Audio.tsx +154 -0
- package/src/plugin/Avatar.tsx +77 -0
- package/src/plugin/Breadcrumb.tsx +107 -0
- package/src/plugin/Button.tsx +281 -0
- package/src/plugin/ButtonGroup.tsx +85 -0
- package/src/plugin/ButtonToolbar.tsx +87 -0
- package/src/plugin/CRUD.tsx +1835 -0
- package/src/plugin/Card.tsx +290 -0
- package/src/plugin/Cards.tsx +318 -0
- package/src/plugin/Carousel.tsx +377 -0
- package/src/plugin/Chart.tsx +218 -0
- package/src/plugin/CodeView.tsx +60 -0
- package/src/plugin/Collapse.tsx +136 -0
- package/src/plugin/CollapseGroup.tsx +167 -0
- package/src/plugin/Container.tsx +40 -0
- package/src/plugin/Custom.tsx +128 -0
- package/src/plugin/CustomRegion.tsx +156 -0
- package/src/plugin/Date.tsx +74 -0
- package/src/plugin/Datetime.tsx +68 -0
- package/src/plugin/Dialog.tsx +176 -0
- package/src/plugin/Divider.tsx +36 -0
- package/src/plugin/Drawer.tsx +214 -0
- package/src/plugin/DropDownButton.tsx +235 -0
- package/src/plugin/Each.tsx +150 -0
- package/src/plugin/ErrorRenderer.tsx +15 -0
- package/src/plugin/Flex.tsx +151 -0
- package/src/plugin/Form/ButtonGroupSelect.tsx +75 -0
- package/src/plugin/Form/ButtonToolbar.tsx +110 -0
- package/src/plugin/Form/ChainedSelect.tsx +70 -0
- package/src/plugin/Form/Checkbox.tsx +87 -0
- package/src/plugin/Form/Checkboxes.tsx +167 -0
- package/src/plugin/Form/CodeEditor.tsx +81 -0
- package/src/plugin/Form/Combo.tsx +582 -0
- package/src/plugin/Form/ConditionBuilder.tsx +315 -0
- package/src/plugin/Form/Control.tsx +139 -0
- package/src/plugin/Form/DiffEditor.tsx +111 -0
- package/src/plugin/Form/FieldSet.tsx +163 -0
- package/src/plugin/Form/Form.tsx +687 -0
- package/src/plugin/Form/Formula.tsx +79 -0
- package/src/plugin/Form/Group.tsx +295 -0
- package/src/plugin/Form/Hidden.tsx +44 -0
- package/src/plugin/Form/InputArray.tsx +228 -0
- package/src/plugin/Form/InputCity.tsx +93 -0
- package/src/plugin/Form/InputColor.tsx +123 -0
- package/src/plugin/Form/InputDate.tsx +175 -0
- package/src/plugin/Form/InputDateRange.tsx +225 -0
- package/src/plugin/Form/InputDateTime.tsx +183 -0
- package/src/plugin/Form/InputDateTimeRange.tsx +221 -0
- package/src/plugin/Form/InputEmail.tsx +33 -0
- package/src/plugin/Form/InputExcel.tsx +85 -0
- package/src/plugin/Form/InputFile.tsx +221 -0
- package/src/plugin/Form/InputGroup.tsx +96 -0
- package/src/plugin/Form/InputImage.tsx +266 -0
- package/src/plugin/Form/InputKV.tsx +72 -0
- package/src/plugin/Form/InputMonth.tsx +35 -0
- package/src/plugin/Form/InputMonthRange.tsx +195 -0
- package/src/plugin/Form/InputNumber.tsx +89 -0
- package/src/plugin/Form/InputPassword.tsx +33 -0
- package/src/plugin/Form/InputQuarter.tsx +35 -0
- package/src/plugin/Form/InputQuarterRange.tsx +195 -0
- package/src/plugin/Form/InputRange.tsx +121 -0
- package/src/plugin/Form/InputRating.tsx +78 -0
- package/src/plugin/Form/InputRepeat.tsx +57 -0
- package/src/plugin/Form/InputRichText.tsx +186 -0
- package/src/plugin/Form/InputSubForm.tsx +189 -0
- package/src/plugin/Form/InputTable.tsx +434 -0
- package/src/plugin/Form/InputTag.tsx +70 -0
- package/src/plugin/Form/InputText.tsx +186 -0
- package/src/plugin/Form/InputTime.tsx +85 -0
- package/src/plugin/Form/InputTree.tsx +229 -0
- package/src/plugin/Form/InputURL.tsx +34 -0
- package/src/plugin/Form/InputYear.tsx +35 -0
- package/src/plugin/Form/Item.tsx +327 -0
- package/src/plugin/Form/ListSelect.tsx +73 -0
- package/src/plugin/Form/LocationPicker.tsx +62 -0
- package/src/plugin/Form/MatrixCheckboxes.tsx +136 -0
- package/src/plugin/Form/NestedSelect.tsx +211 -0
- package/src/plugin/Form/Picker.tsx +209 -0
- package/src/plugin/Form/Radios.tsx +119 -0
- package/src/plugin/Form/Select.tsx +233 -0
- package/src/plugin/Form/Static.tsx +322 -0
- package/src/plugin/Form/Switch.tsx +107 -0
- package/src/plugin/Form/TabsTransfer.tsx +259 -0
- package/src/plugin/Form/Textarea.tsx +83 -0
- package/src/plugin/Form/Transfer.tsx +368 -0
- package/src/plugin/Form/TreeSelect.tsx +263 -0
- package/src/plugin/Form/UUID.tsx +48 -0
- package/src/plugin/Grid.tsx +798 -0
- package/src/plugin/HBox.tsx +727 -0
- package/src/plugin/IFrame.tsx +70 -0
- package/src/plugin/Image.tsx +314 -0
- package/src/plugin/Images.tsx +231 -0
- package/src/plugin/Json.tsx +69 -0
- package/src/plugin/Link.tsx +93 -0
- package/src/plugin/List.tsx +278 -0
- package/src/plugin/ListItem.tsx +229 -0
- package/src/plugin/Log.tsx +52 -0
- package/src/plugin/Mapping.tsx +149 -0
- package/src/plugin/Markdown.tsx +47 -0
- package/src/plugin/Nav.tsx +184 -0
- package/src/plugin/Operation.tsx +95 -0
- package/src/plugin/Others/Action.tsx +426 -0
- package/src/plugin/Others/BasicToolbar.tsx +585 -0
- package/src/plugin/Others/DataDebug.tsx +134 -0
- package/src/plugin/Others/TableCell.tsx +480 -0
- package/src/plugin/Others/Unknown.tsx +37 -0
- package/src/plugin/Page.tsx +306 -0
- package/src/plugin/Panel/AvailableRenderers.tsx +41 -0
- package/src/plugin/Panel/Code.tsx +44 -0
- package/src/plugin/Panel/Name.tsx +26 -0
- package/src/plugin/Panel/Outline.tsx +40 -0
- package/src/plugin/Panel.tsx +243 -0
- package/src/plugin/Plain.tsx +84 -0
- package/src/plugin/Progress.tsx +125 -0
- package/src/plugin/Property.tsx +139 -0
- package/src/plugin/QRCode.tsx +96 -0
- package/src/plugin/Reset.tsx +23 -0
- package/src/plugin/Service.tsx +162 -0
- package/src/plugin/Sparkline.tsx +40 -0
- package/src/plugin/Status.tsx +76 -0
- package/src/plugin/Steps.tsx +128 -0
- package/src/plugin/Submit.tsx +23 -0
- package/src/plugin/Table.tsx +428 -0
- package/src/plugin/TableView.tsx +709 -0
- package/src/plugin/Tabs.tsx +362 -0
- package/src/plugin/Tasks.tsx +274 -0
- package/src/plugin/Time.tsx +68 -0
- package/src/plugin/TooltipWrapper.tsx +193 -0
- package/src/plugin/Tpl.tsx +158 -0
- package/src/plugin/Video.tsx +158 -0
- package/src/plugin/WebComponent.tsx +53 -0
- package/src/plugin/Wizard.tsx +740 -0
- package/src/plugin/Wrapper.tsx +107 -0
- package/src/plugin.ts +1050 -0
- package/dist/150a58f3318ca7541ed9.png +0 -0
- package/dist/471adb97c322b226e589.png +0 -0
- package/dist/4de5f42360bc5946c3c2.png +0 -0
- package/dist/4e9968bba3855f088fed.png +0 -0
- package/dist/7f09c38ebc687fea847a.png +0 -0
- package/dist/c94073576487510314ea.png +0 -0
@@ -5,8 +5,29 @@ export interface BreadcrumbProps {
|
|
5
5
|
store: EditorStoreType;
|
6
6
|
manager: EditorManager;
|
7
7
|
}
|
8
|
-
|
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
|
31
|
+
render(): JSX.Element;
|
12
32
|
}
|
33
|
+
export {};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import {
|
3
|
-
import type {
|
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
|
8
|
-
import type { OptionValue } from 'amis
|
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").
|
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
|
7
|
-
import type {
|
8
|
-
import type {
|
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
|
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
|
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 {
|
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,8 +1,9 @@
|
|
1
1
|
import React, { Component } from 'react';
|
2
|
-
import {
|
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;
|
@@ -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
|
-
|
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
|
-
|
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