@plait/mind 0.27.0-next.0 → 0.27.0-next.10
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/base/emoji-base.component.d.ts +2 -2
- package/base/index.d.ts +0 -1
- package/constants/default.d.ts +1 -0
- package/constants/node-topic-style.d.ts +4 -0
- package/drawer/{node-active.drawer.d.ts → node-active.generator.d.ts} +2 -2
- package/drawer/node-shape.generator.d.ts +10 -0
- package/esm2022/base/emoji-base.component.mjs +46 -0
- package/{esm2020 → esm2022}/base/index.mjs +1 -2
- package/{esm2020 → esm2022}/constants/abstract-node.mjs +1 -1
- package/{esm2020 → esm2022}/constants/default.mjs +2 -1
- package/{esm2020 → esm2022}/constants/index.mjs +1 -1
- package/esm2022/constants/node-topic-style.mjs +12 -0
- package/esm2022/drawer/node-active.generator.mjs +42 -0
- package/esm2022/drawer/node-shape.generator.mjs +19 -0
- package/esm2022/interfaces/element-data.mjs +2 -0
- package/esm2022/interfaces/element.mjs +118 -0
- package/{esm2020 → esm2022}/interfaces/index.mjs +2 -1
- package/esm2022/interfaces/options.mjs +2 -0
- package/{esm2020 → esm2022}/interfaces/theme-color.mjs +1 -1
- package/esm2022/mind-node.component.mjs +235 -0
- package/esm2022/mind.component.mjs +52 -0
- package/esm2022/plugins/with-abstract-resize.mjs +112 -0
- package/esm2022/plugins/with-mind-create.mjs +112 -0
- package/esm2022/plugins/with-mind-fragment.mjs +90 -0
- package/esm2022/plugins/with-mind-hotkey.mjs +67 -0
- package/esm2022/plugins/with-mind.mjs +91 -0
- package/esm2022/plugins/with-node-dnd.mjs +180 -0
- package/esm2022/plugins/with-node-image-resize.mjs +48 -0
- package/esm2022/plugins/with-node-image.mjs +98 -0
- package/esm2022/plugins/with-node-resize.mjs +133 -0
- package/{esm2020 → esm2022}/public-api.mjs +2 -3
- package/{esm2020 → esm2022}/transforms/image.mjs +1 -1
- package/esm2022/transforms/index.mjs +23 -0
- package/esm2022/transforms/node.mjs +66 -0
- package/{esm2020 → esm2022}/utils/abstract/common.mjs +2 -2
- package/{esm2020 → esm2022}/utils/abstract/resize.mjs +3 -3
- package/{esm2020 → esm2022}/utils/clipboard.mjs +3 -3
- package/{esm2020 → esm2022}/utils/dnd/common.mjs +1 -1
- package/esm2022/utils/draw/abstract-outline.mjs +117 -0
- package/esm2022/utils/draw/node-dnd.mjs +159 -0
- package/{esm2020 → esm2022}/utils/draw/node-shape.mjs +4 -3
- package/esm2022/utils/index.mjs +15 -0
- package/{esm2020 → esm2022}/utils/node/common.mjs +1 -1
- package/esm2022/utils/node/create-node.mjs +55 -0
- package/esm2022/utils/node/dynamic-width.mjs +19 -0
- package/esm2022/utils/node/image.mjs +23 -0
- package/esm2022/utils/position/image.mjs +36 -0
- package/esm2022/utils/position/node.mjs +36 -0
- package/esm2022/utils/position/topic.mjs +16 -0
- package/{esm2020 → esm2022}/utils/space/index.mjs +1 -1
- package/esm2022/utils/space/layout-options.mjs +69 -0
- package/esm2022/utils/space/node-space.mjs +137 -0
- package/{fesm2020 → fesm2022}/plait-mind.mjs +1383 -1569
- package/fesm2022/plait-mind.mjs.map +1 -0
- package/interfaces/element-data.d.ts +5 -9
- package/interfaces/element.d.ts +1 -0
- package/interfaces/index.d.ts +1 -0
- package/interfaces/options.d.ts +2 -4
- package/{node.component.d.ts → mind-node.component.d.ts} +11 -10
- package/mind.component.d.ts +2 -2
- package/package.json +7 -13
- package/plugins/with-mind-fragment.d.ts +5 -0
- package/plugins/with-mind-hotkey.d.ts +0 -6
- package/public-api.d.ts +1 -2
- package/styles/styles.scss +7 -3
- package/transforms/image.d.ts +3 -2
- package/transforms/index.d.ts +1 -2
- package/transforms/node.d.ts +0 -1
- package/utils/abstract/common.d.ts +2 -2
- package/utils/index.d.ts +0 -1
- package/utils/node/create-node.d.ts +2 -2
- package/utils/node/image.d.ts +0 -2
- package/utils/position/image.d.ts +1 -1
- package/utils/position/node.d.ts +1 -1
- package/utils/space/layout-options.d.ts +2 -2
- package/utils/space/node-space.d.ts +1 -5
- package/base/image-base.component.d.ts +0 -27
- package/constants/image.d.ts +0 -3
- package/drawer/node-image.drawer.d.ts +0 -15
- package/esm2020/base/emoji-base.component.mjs +0 -46
- package/esm2020/base/image-base.component.mjs +0 -67
- package/esm2020/constants/image.mjs +0 -4
- package/esm2020/constants/node-topic-style.mjs +0 -8
- package/esm2020/drawer/node-active.drawer.mjs +0 -44
- package/esm2020/drawer/node-image.drawer.mjs +0 -59
- package/esm2020/interfaces/element-data.mjs +0 -2
- package/esm2020/interfaces/element.mjs +0 -111
- package/esm2020/interfaces/options.mjs +0 -2
- package/esm2020/mind.component.mjs +0 -51
- package/esm2020/mind.module.mjs +0 -21
- package/esm2020/node.component.mjs +0 -248
- package/esm2020/plugins/with-abstract-resize.mjs +0 -112
- package/esm2020/plugins/with-mind-create.mjs +0 -109
- package/esm2020/plugins/with-mind-hotkey.mjs +0 -122
- package/esm2020/plugins/with-mind.mjs +0 -114
- package/esm2020/plugins/with-node-dnd.mjs +0 -180
- package/esm2020/plugins/with-node-image-resize.mjs +0 -48
- package/esm2020/plugins/with-node-image.mjs +0 -96
- package/esm2020/plugins/with-node-resize.mjs +0 -133
- package/esm2020/transforms/index.mjs +0 -24
- package/esm2020/transforms/node.mjs +0 -82
- package/esm2020/utils/draw/abstract-outline.mjs +0 -117
- package/esm2020/utils/draw/node-dnd.mjs +0 -159
- package/esm2020/utils/index.mjs +0 -16
- package/esm2020/utils/is-virtual-key.mjs +0 -13
- package/esm2020/utils/node/create-node.mjs +0 -52
- package/esm2020/utils/node/dynamic-width.mjs +0 -22
- package/esm2020/utils/node/image.mjs +0 -63
- package/esm2020/utils/position/image.mjs +0 -36
- package/esm2020/utils/position/node.mjs +0 -34
- package/esm2020/utils/position/topic.mjs +0 -17
- package/esm2020/utils/space/layout-options.mjs +0 -72
- package/esm2020/utils/space/node-space.mjs +0 -142
- package/fesm2015/plait-mind.mjs +0 -4402
- package/fesm2015/plait-mind.mjs.map +0 -1
- package/fesm2020/plait-mind.mjs.map +0 -1
- package/mind.module.d.ts +0 -11
- package/utils/is-virtual-key.d.ts +0 -1
- /package/{esm2020 → esm2022}/base/base.drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/node-style.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/theme.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/node-collapse.drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/node-emojis.drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/node-insert.drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/layout.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/node.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/pointer.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/types.mjs +0 -0
- /package/{esm2020 → esm2022}/plait-mind.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/with-abstract-resize.board.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/with-mind-extend.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/with-mind.board.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/with-node-hover-detect.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-available-sublayouts-by-element.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-branch-layouts.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-correct-layout-by-element.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-layout-by-element.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/index.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/abstract-node.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/emoji.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/layout.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dnd/detector.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/draw/node-link/abstract-link.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/draw/node-link/draw-link.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/draw/node-link/indented-link.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/draw/node-link/logic-link.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/layout.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/mind.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node/adjust-node.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node/right-node-count.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-hover/extend.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-style/branch.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-style/common.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-style/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/node-style/shape.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/path.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/point-placement.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/position/emoji.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/position/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/space/emoji.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/weak-maps.mjs +0 -0
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CommonImageItem } from '@plait/common';
|
|
2
|
+
import { ParagraphElement } from '@plait/text';
|
|
2
3
|
export interface EmojiItem {
|
|
3
4
|
name: string;
|
|
4
5
|
}
|
|
5
|
-
export interface ImageItem {
|
|
6
|
-
url: string;
|
|
7
|
-
width: number;
|
|
8
|
-
height: number;
|
|
9
|
-
}
|
|
10
6
|
export interface BaseData {
|
|
11
|
-
topic:
|
|
7
|
+
topic: ParagraphElement;
|
|
12
8
|
emojis?: EmojiItem[];
|
|
13
|
-
image?:
|
|
9
|
+
image?: CommonImageItem;
|
|
14
10
|
}
|
|
15
11
|
export interface EmojiData extends BaseData {
|
|
16
12
|
emojis: EmojiItem[];
|
|
17
13
|
}
|
|
18
14
|
export interface ImageData extends BaseData {
|
|
19
|
-
image:
|
|
15
|
+
image: CommonImageItem;
|
|
20
16
|
}
|
package/interfaces/element.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ export declare const MindElement: {
|
|
|
43
43
|
getEmojis(element: MindElement<EmojiData>): import("./element-data").EmojiItem[];
|
|
44
44
|
hasMounted(element: MindElement): boolean;
|
|
45
45
|
getTextEditor(element: MindElement): import("slate").BaseEditor & import("slate-angular").AngularEditor & import("slate-history").HistoryEditor;
|
|
46
|
+
getTextManage(element: MindElement): import("@plait/text").TextManage;
|
|
46
47
|
};
|
|
47
48
|
export declare enum MindElementShape {
|
|
48
49
|
roundRectangle = "round-rectangle",
|
package/interfaces/index.d.ts
CHANGED
package/interfaces/options.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
+
import { ImageBaseComponent } from '@plait/common';
|
|
1
2
|
import { ComponentType, WithPluginOptions } from '@plait/core';
|
|
2
|
-
import { TextPlugin } from '@plait/text';
|
|
3
|
-
import { MindImageBaseComponent } from '../base';
|
|
4
3
|
export interface WithMindOptions extends WithPluginOptions {
|
|
5
4
|
emojiPadding: number;
|
|
6
5
|
spaceBetweenEmojis: number;
|
|
7
|
-
|
|
8
|
-
imageComponentType?: ComponentType<MindImageBaseComponent>;
|
|
6
|
+
imageComponentType?: ComponentType<ImageBaseComponent>;
|
|
9
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectorRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { PlaitPluginElementContext, OnContextChanged } from '@plait/core';
|
|
3
3
|
import { TextManage } from '@plait/text';
|
|
4
4
|
import { RoughSVG } from 'roughjs/bin/svg';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
@@ -8,11 +8,13 @@ import { MindNode } from './interfaces/node';
|
|
|
8
8
|
import { NodeEmojisDrawer } from './drawer/node-emojis.drawer';
|
|
9
9
|
import { NodeInsertDrawer } from './drawer/node-insert.drawer';
|
|
10
10
|
import { PlaitMindBoard } from './plugins/with-mind.board';
|
|
11
|
-
import {
|
|
11
|
+
import { NodeActiveGenerator } from './drawer/node-active.generator';
|
|
12
12
|
import { CollapseDrawer } from './drawer/node-collapse.drawer';
|
|
13
|
-
import {
|
|
13
|
+
import { CommonPluginElement, ImageGenerator } from '@plait/common';
|
|
14
|
+
import { NodeShapeGenerator } from './drawer/node-shape.generator';
|
|
15
|
+
import { ImageData } from './interfaces';
|
|
14
16
|
import * as i0 from "@angular/core";
|
|
15
|
-
export declare class MindNodeComponent extends
|
|
17
|
+
export declare class MindNodeComponent extends CommonPluginElement<MindElement, PlaitMindBoard> implements OnInit, OnDestroy, OnContextChanged<MindElement, PlaitMindBoard> {
|
|
16
18
|
private viewContainerRef;
|
|
17
19
|
protected cdr: ChangeDetectorRef;
|
|
18
20
|
roughSVG: RoughSVG;
|
|
@@ -24,18 +26,17 @@ export declare class MindNodeComponent extends PlaitPluginElementComponent<MindE
|
|
|
24
26
|
extendG?: SVGGElement;
|
|
25
27
|
destroy$: Subject<void>;
|
|
26
28
|
nodeEmojisDrawer: NodeEmojisDrawer;
|
|
29
|
+
nodeShapeGenerator: NodeShapeGenerator;
|
|
27
30
|
nodeInsertDrawer: NodeInsertDrawer;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
activeDrawer: NodeActiveDrawer;
|
|
31
|
+
imageGenerator: ImageGenerator<MindElement<ImageData>>;
|
|
32
|
+
activeGenerator: NodeActiveGenerator;
|
|
31
33
|
collapseDrawer: CollapseDrawer;
|
|
34
|
+
get textManage(): TextManage;
|
|
32
35
|
constructor(viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef);
|
|
33
36
|
initializeDrawer(): void;
|
|
34
37
|
ngOnInit(): void;
|
|
35
38
|
onContextChanged(value: PlaitPluginElementContext<MindElement, PlaitMindBoard>, previous: PlaitPluginElementContext<MindElement, PlaitMindBoard>): void;
|
|
36
39
|
drawEmojis(): void;
|
|
37
|
-
drawShape(): void;
|
|
38
|
-
destroyShape(): void;
|
|
39
40
|
drawLink(): void;
|
|
40
41
|
destroyLine(): void;
|
|
41
42
|
drawExtend(): void;
|
|
@@ -46,5 +47,5 @@ export declare class MindNodeComponent extends PlaitPluginElementComponent<MindE
|
|
|
46
47
|
trackBy: (index: number, node: MindNode) => string;
|
|
47
48
|
ngOnDestroy(): void;
|
|
48
49
|
static ɵfac: i0.ɵɵFactoryDeclaration<MindNodeComponent, never>;
|
|
49
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MindNodeComponent, "plait-mind-node", never, {}, {}, never, never,
|
|
50
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MindNodeComponent, "plait-mind-node", never, {}, {}, never, never, true, never>;
|
|
50
51
|
}
|
package/mind.component.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { OnInit } from '@angular/core';
|
|
|
2
2
|
import { PlaitMind } from './interfaces/element';
|
|
3
3
|
import { MindNode } from './interfaces/node';
|
|
4
4
|
import { BeforeContextChange, PlaitPluginElementContext } from '@plait/core';
|
|
5
|
-
import { MindNodeComponent } from './node.component';
|
|
5
|
+
import { MindNodeComponent } from './mind-node.component';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class PlaitMindComponent extends MindNodeComponent implements OnInit, BeforeContextChange<PlaitMind> {
|
|
8
8
|
root: MindNode;
|
|
@@ -12,5 +12,5 @@ export declare class PlaitMindComponent extends MindNodeComponent implements OnI
|
|
|
12
12
|
updateMindLayout(element?: import("./interfaces/element").MindElement<import("@plait/mind").BaseData>): void;
|
|
13
13
|
updateMindNodeLocation(element: PlaitMind): void;
|
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<PlaitMindComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PlaitMindComponent, "plait-mind", never, {}, {}, never, never,
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PlaitMindComponent, "plait-mind", never, {}, {}, never, never, true, never>;
|
|
16
16
|
}
|
package/package.json
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plait/mind",
|
|
3
|
-
"version": "0.27.0-next.
|
|
3
|
+
"version": "0.27.0-next.10",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
5
|
+
"@angular/common": "^16.0.0",
|
|
6
|
+
"@angular/core": "^16.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0"
|
|
10
10
|
},
|
|
11
|
-
"module": "
|
|
12
|
-
"es2020": "fesm2020/plait-mind.mjs",
|
|
13
|
-
"esm2020": "esm2020/plait-mind.mjs",
|
|
14
|
-
"fesm2020": "fesm2020/plait-mind.mjs",
|
|
15
|
-
"fesm2015": "fesm2015/plait-mind.mjs",
|
|
11
|
+
"module": "fesm2022/plait-mind.mjs",
|
|
16
12
|
"typings": "index.d.ts",
|
|
17
13
|
"exports": {
|
|
18
14
|
"./package.json": {
|
|
@@ -20,11 +16,9 @@
|
|
|
20
16
|
},
|
|
21
17
|
".": {
|
|
22
18
|
"types": "./index.d.ts",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"node": "./fesm2015/plait-mind.mjs",
|
|
27
|
-
"default": "./fesm2020/plait-mind.mjs"
|
|
19
|
+
"esm2022": "./esm2022/plait-mind.mjs",
|
|
20
|
+
"esm": "./esm2022/plait-mind.mjs",
|
|
21
|
+
"default": "./fesm2022/plait-mind.mjs"
|
|
28
22
|
}
|
|
29
23
|
},
|
|
30
24
|
"sideEffects": false
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PlaitBoard } from '@plait/core';
|
|
2
|
+
import { MindElement } from '../interfaces';
|
|
3
|
+
import { PlaitMindBoard } from './with-mind.board';
|
|
4
|
+
export declare const withMindFragment: (baseBoard: PlaitBoard) => PlaitBoard & PlaitMindBoard;
|
|
5
|
+
export declare const getNextSelectedElement: (board: PlaitBoard, firstLevelElements: MindElement[]) => MindElement<import("../interfaces").BaseData> | undefined;
|
|
@@ -1,9 +1,3 @@
|
|
|
1
1
|
import { PlaitBoard } from '@plait/core';
|
|
2
|
-
import { MindElement } from '../interfaces';
|
|
3
2
|
import { PlaitMindBoard } from './with-mind.board';
|
|
4
3
|
export declare const withMindHotkey: (baseBoard: PlaitBoard) => PlaitBoard & PlaitMindBoard;
|
|
5
|
-
export declare const getNextSelectedElement: (board: PlaitBoard, firstLevelElements: MindElement[]) => MindElement<import("../interfaces").BaseData> | undefined;
|
|
6
|
-
export declare const isExpandHotkey: (event: KeyboardEvent) => boolean;
|
|
7
|
-
export declare const isTabHotkey: (event: KeyboardEvent) => boolean;
|
|
8
|
-
export declare const isEnterHotkey: (event: KeyboardEvent) => boolean;
|
|
9
|
-
export declare const isSpaceHotkey: (event: KeyboardEvent) => boolean;
|
package/public-api.d.ts
CHANGED
package/styles/styles.scss
CHANGED
|
@@ -22,9 +22,6 @@ $primary: #4e8afa;
|
|
|
22
22
|
}
|
|
23
23
|
.slate-editable-container {
|
|
24
24
|
min-width: 5px;
|
|
25
|
-
&.editing {
|
|
26
|
-
max-width: 34em;
|
|
27
|
-
}
|
|
28
25
|
}
|
|
29
26
|
|
|
30
27
|
.extend {
|
|
@@ -73,6 +70,13 @@ $primary: #4e8afa;
|
|
|
73
70
|
}
|
|
74
71
|
}
|
|
75
72
|
|
|
73
|
+
&.pointer-mind
|
|
74
|
+
{
|
|
75
|
+
.board-host-svg {
|
|
76
|
+
cursor: default !important;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
76
80
|
&.readonly {
|
|
77
81
|
.collapsed {
|
|
78
82
|
.extend:hover {
|
package/transforms/image.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PlaitBoard } from '@plait/core';
|
|
2
|
-
import { ImageData,
|
|
2
|
+
import { ImageData, MindElement } from '../interfaces';
|
|
3
|
+
import { CommonImageItem } from '@plait/common';
|
|
3
4
|
export declare const removeImage: (board: PlaitBoard, element: MindElement<ImageData>) => void;
|
|
4
|
-
export declare const setImage: (board: PlaitBoard, element: MindElement, imageItem:
|
|
5
|
+
export declare const setImage: (board: PlaitBoard, element: MindElement, imageItem: CommonImageItem) => void;
|
package/transforms/index.d.ts
CHANGED
|
@@ -9,10 +9,9 @@ export declare const MindTransforms: {
|
|
|
9
9
|
insertAbstract: (board: import("@plait/core").PlaitBoard, elements: import("@plait/core").PlaitElement[]) => void;
|
|
10
10
|
setAbstractsByRefs: (board: import("@plait/core").PlaitBoard, abstractRefs: import("@plait/mind").AbstractRefs) => void;
|
|
11
11
|
setAbstractByStandardLayout: (board: import("@plait/core").PlaitBoard, element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>) => void;
|
|
12
|
-
removeElements: (board: import("@plait/core").PlaitBoard, elements: import("@plait/mind").MindElement<import("@plait/mind").BaseData>[]) => void;
|
|
13
12
|
insertNodes: (board: import("@plait/core").PlaitBoard, elements: import("@plait/mind").MindElement<import("@plait/mind").BaseData>[], path: import("slate").Path) => void;
|
|
14
13
|
insertAbstractNodes: (board: import("@plait/core").PlaitBoard, validAbstractRefs: import("@plait/mind").AbstractRef[], elements: import("@plait/mind").MindElement<import("@plait/mind").BaseData>[], path: import("slate").Path) => void;
|
|
15
14
|
setRightNodeCountByRefs: (board: import("@plait/core").PlaitBoard, refs: import("@plait/mind").RightNodeCountRef[]) => void;
|
|
16
15
|
removeImage: (board: import("@plait/core").PlaitBoard, element: import("@plait/mind").MindElement<import("@plait/mind").ImageData>) => void;
|
|
17
|
-
setImage: (board: import("@plait/core").PlaitBoard, element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>, imageItem: import("@plait/
|
|
16
|
+
setImage: (board: import("@plait/core").PlaitBoard, element: import("@plait/mind").MindElement<import("@plait/mind").BaseData>, imageItem: import("@plait/common").CommonImageItem) => void;
|
|
18
17
|
};
|
package/transforms/node.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ import { PlaitMindBoard } from '../plugins/with-mind.board';
|
|
|
7
7
|
export declare const setTopic: (board: PlaitMindBoard, element: MindElement, topic: Element, width: number, height: number) => void;
|
|
8
8
|
export declare const setNodeManualWidth: (board: PlaitMindBoard, element: MindElement, width: number, height: number) => void;
|
|
9
9
|
export declare const setTopicSize: (board: PlaitMindBoard, element: MindElement, width: number, height: number) => void;
|
|
10
|
-
export declare const removeElements: (board: PlaitBoard, elements: MindElement[]) => void;
|
|
11
10
|
export declare const insertNodes: (board: PlaitBoard, elements: MindElement[], path: Path) => void;
|
|
12
11
|
export declare const insertAbstractNodes: (board: PlaitBoard, validAbstractRefs: AbstractRef[], elements: MindElement[], path: Path) => void;
|
|
13
12
|
export declare const setRightNodeCountByRefs: (board: PlaitBoard, refs: RightNodeCountRef[]) => void;
|
|
@@ -25,6 +25,6 @@ export declare function getRelativeStartEndByAbstractRef(abstractRef: AbstractRe
|
|
|
25
25
|
start: number;
|
|
26
26
|
end: number;
|
|
27
27
|
};
|
|
28
|
-
export declare const insertElementHandleAbstract: (board: PlaitBoard, path: Path, step?: number, isExtendPreviousNode?: boolean, effectedAbstracts?: Map<MindElement<import("@plait/mind").BaseData>, Pick<AbstractNode, "
|
|
29
|
-
export declare const deleteElementHandleAbstract: (board: PlaitBoard, deletableElements: MindElement[], effectedAbstracts?: Map<MindElement<import("@plait/mind").BaseData>, Pick<AbstractNode, "
|
|
28
|
+
export declare const insertElementHandleAbstract: (board: PlaitBoard, path: Path, step?: number, isExtendPreviousNode?: boolean, effectedAbstracts?: Map<MindElement<import("@plait/mind").BaseData>, Pick<AbstractNode, "start" | "end">>) => Map<MindElement<import("@plait/mind").BaseData>, Pick<AbstractNode, "start" | "end">>;
|
|
29
|
+
export declare const deleteElementHandleAbstract: (board: PlaitBoard, deletableElements: MindElement[], effectedAbstracts?: Map<MindElement<import("@plait/mind").BaseData>, Pick<AbstractNode, "start" | "end">>) => Map<MindElement<import("@plait/mind").BaseData>, Pick<AbstractNode, "start" | "end">>;
|
|
30
30
|
export declare const isChildOfAbstract: (board: PlaitBoard, element: MindElement) => boolean;
|
package/utils/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Point } from '@plait/core';
|
|
1
|
+
import { PlaitBoard, Point } from '@plait/core';
|
|
2
2
|
import { MindLayoutType } from '@plait/layouts';
|
|
3
3
|
import { BranchShape, MindElement, MindElementShape } from '../../interfaces/element';
|
|
4
4
|
import { Element } from 'slate';
|
|
5
|
-
export declare const createEmptyMind: (point: Point) => MindElement<import("@plait/mind").BaseData>;
|
|
5
|
+
export declare const createEmptyMind: (board: PlaitBoard, point: Point) => MindElement<import("@plait/mind").BaseData>;
|
|
6
6
|
export declare const createDefaultMind: (point: Point, rightNodeCount: number, layout: MindLayoutType) => MindElement<import("@plait/mind").BaseData>;
|
|
7
7
|
export declare const createMindElement: (text: string | Element, width: number, height: number, options: InheritAttribute) => MindElement<import("@plait/mind").BaseData>;
|
|
8
8
|
export interface InheritAttribute {
|
package/utils/node/image.d.ts
CHANGED
|
@@ -5,5 +5,3 @@ export declare const getSelectedImageElement: (board: PlaitBoard) => MindElement
|
|
|
5
5
|
export declare const addSelectedImageElement: (board: PlaitBoard, element: MindElement<ImageData>) => void;
|
|
6
6
|
export declare const removeSelectedImageElement: (board: PlaitBoard) => void;
|
|
7
7
|
export declare const setImageFocus: (board: PlaitBoard, element: MindElement<ImageData>, isFocus: boolean) => void;
|
|
8
|
-
export declare const selectImage: (board: PlaitBoard, element: MindElement, acceptImageTypes?: string[]) => void;
|
|
9
|
-
export declare const buildImage: (board: PlaitBoard, element: MindElement, imageFile: File) => Promise<void>;
|
|
@@ -11,6 +11,6 @@ export declare const getHitImageResizeHandleDirection: (board: PlaitBoard, eleme
|
|
|
11
11
|
width: number;
|
|
12
12
|
height: number;
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
handle: import("@plait/common").ResizeHandle;
|
|
15
15
|
cursorClass: import("@plait/common").ResizeCursorClass;
|
|
16
16
|
} | undefined;
|
package/utils/position/node.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { MindNode } from '../../interfaces/node';
|
|
|
3
3
|
import { MindElement } from '../../interfaces/element';
|
|
4
4
|
import { PlaitMindBoard } from '../../plugins/with-mind.board';
|
|
5
5
|
export declare function getRectangleByNode(node: MindNode): RectangleClient;
|
|
6
|
-
export declare function getRectangleByElement(board: PlaitMindBoard,
|
|
6
|
+
export declare function getRectangleByElement(board: PlaitMindBoard, element: MindElement): {
|
|
7
7
|
x: number;
|
|
8
8
|
y: number;
|
|
9
9
|
width: number;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { LayoutOptions } from
|
|
2
|
-
import { PlaitMindBoard } from
|
|
1
|
+
import { LayoutOptions } from '@plait/layouts';
|
|
2
|
+
import { PlaitMindBoard } from '../../plugins/with-mind.board';
|
|
3
3
|
export declare const getLayoutOptions: (board: PlaitMindBoard) => LayoutOptions;
|
|
@@ -7,11 +7,7 @@ export declare const NodeSpace: {
|
|
|
7
7
|
getNodeHeight(board: PlaitMindBoard, element: MindElement): number;
|
|
8
8
|
getNodeDynamicWidth(board: PlaitMindBoard, element: MindElement): number;
|
|
9
9
|
/**
|
|
10
|
-
* use
|
|
11
|
-
* @param board
|
|
12
|
-
* @param element
|
|
13
|
-
* @param imageWidth
|
|
14
|
-
* @returns
|
|
10
|
+
* use it when upload image first or resize image
|
|
15
11
|
*/
|
|
16
12
|
getNodeNewDynamicWidth(board: PlaitMindBoard, element: MindElement, imageWidth: number): number;
|
|
17
13
|
getNodeResizableMinWidth(board: PlaitMindBoard, element: MindElement): number;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ElementRef, OnInit } from '@angular/core';
|
|
2
|
-
import { ImageItem, ImageData } from '../interfaces/element-data';
|
|
3
|
-
import { PlaitBoard } from '@plait/core';
|
|
4
|
-
import { MindElement } from '../interfaces';
|
|
5
|
-
import { ActiveGenerator } from '@plait/common';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare abstract class MindImageBaseComponent implements OnInit {
|
|
8
|
-
protected elementRef: ElementRef<HTMLElement>;
|
|
9
|
-
cdr: ChangeDetectorRef;
|
|
10
|
-
_imageItem: ImageItem;
|
|
11
|
-
_isFocus: boolean;
|
|
12
|
-
initialized: boolean;
|
|
13
|
-
activeGenerator: ActiveGenerator<MindElement>;
|
|
14
|
-
set imageItem(value: ImageItem);
|
|
15
|
-
get imageItem(): ImageItem;
|
|
16
|
-
board: PlaitBoard;
|
|
17
|
-
element: MindElement<ImageData>;
|
|
18
|
-
set isFocus(value: boolean);
|
|
19
|
-
get isFocus(): boolean;
|
|
20
|
-
get nativeElement(): HTMLElement;
|
|
21
|
-
abstract afterImageItemChange(previous: ImageItem, current: ImageItem): void;
|
|
22
|
-
constructor(elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
|
|
23
|
-
ngOnInit(): void;
|
|
24
|
-
drawFocus(): void;
|
|
25
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MindImageBaseComponent, never>;
|
|
26
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MindImageBaseComponent, never, never, { "imageItem": "imageItem"; "board": "board"; "element": "element"; "isFocus": "isFocus"; }, {}, never, never, false, never>;
|
|
27
|
-
}
|
package/constants/image.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { MindElement } from '../interfaces';
|
|
2
|
-
import { PlaitMindBoard } from '../plugins/with-mind.board';
|
|
3
|
-
import { ComponentRef, ViewContainerRef } from '@angular/core';
|
|
4
|
-
import { MindImageBaseComponent } from '../base/image-base.component';
|
|
5
|
-
export declare class NodeImageDrawer {
|
|
6
|
-
private board;
|
|
7
|
-
private viewContainerRef;
|
|
8
|
-
componentRef: ComponentRef<MindImageBaseComponent> | null;
|
|
9
|
-
g?: SVGGElement;
|
|
10
|
-
foreignObject: SVGForeignObjectElement;
|
|
11
|
-
constructor(board: PlaitMindBoard, viewContainerRef: ViewContainerRef);
|
|
12
|
-
drawImage(nodeG: SVGGElement, element: MindElement): void;
|
|
13
|
-
updateImage(nodeG: SVGGElement, previous: MindElement, current: MindElement): void;
|
|
14
|
-
destroy(): void;
|
|
15
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
-
import { PlaitPluginKey } from '@plait/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class MindEmojiBaseComponent {
|
|
5
|
-
get nativeElement() {
|
|
6
|
-
return this.elementRef.nativeElement;
|
|
7
|
-
}
|
|
8
|
-
handleClick() {
|
|
9
|
-
const currentOptions = this.board.getPluginOptions(PlaitPluginKey.withSelection);
|
|
10
|
-
this.board.setPluginOptions(PlaitPluginKey.withSelection, {
|
|
11
|
-
isDisabledSelect: true
|
|
12
|
-
});
|
|
13
|
-
setTimeout(() => {
|
|
14
|
-
this.board.setPluginOptions(PlaitPluginKey.withSelection, { ...currentOptions });
|
|
15
|
-
}, 0);
|
|
16
|
-
}
|
|
17
|
-
constructor(elementRef) {
|
|
18
|
-
this.elementRef = elementRef;
|
|
19
|
-
this.fontSize = 14;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
this.elementRef.nativeElement.style.fontSize = `${this.fontSize}px`;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
MindEmojiBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MindEmojiBaseComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
-
MindEmojiBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: MindEmojiBaseComponent, inputs: { fontSize: "fontSize", emojiItem: "emojiItem", board: "board", element: "element" }, host: { listeners: { "mousedown": "handleClick()" }, classAttribute: "mind-node-emoji" }, ngImport: i0 });
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MindEmojiBaseComponent, decorators: [{
|
|
28
|
-
type: Directive,
|
|
29
|
-
args: [{
|
|
30
|
-
host: {
|
|
31
|
-
class: 'mind-node-emoji'
|
|
32
|
-
}
|
|
33
|
-
}]
|
|
34
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fontSize: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}], emojiItem: [{
|
|
37
|
-
type: Input
|
|
38
|
-
}], board: [{
|
|
39
|
-
type: Input
|
|
40
|
-
}], element: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}], handleClick: [{
|
|
43
|
-
type: HostListener,
|
|
44
|
-
args: ['mousedown']
|
|
45
|
-
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9iYXNlL2Vtb2ppLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQWlDLGNBQWMsRUFBcUIsTUFBTSxhQUFhLENBQUM7O0FBUS9GLE1BQU0sT0FBTyxzQkFBc0I7SUFhL0IsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBR0QsV0FBVztRQUNQLE1BQU0sY0FBYyxHQUFJLElBQUksQ0FBQyxLQUEyQixDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsS0FBMkIsQ0FBQyxnQkFBZ0IsQ0FBb0IsY0FBYyxDQUFDLGFBQWEsRUFBRTtZQUNoRyxnQkFBZ0IsRUFBRSxJQUFJO1NBQ3pCLENBQUMsQ0FBQztRQUNILFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsS0FBMkIsQ0FBQyxnQkFBZ0IsQ0FBb0IsY0FBYyxDQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMvSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsWUFBc0IsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUExQnpELGFBQVEsR0FBVyxFQUFFLENBQUM7SUEwQnNDLENBQUM7SUFFN0QsUUFBUTtRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUM7SUFDeEUsQ0FBQzs7bUhBaENRLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1AsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxpQkFBaUI7cUJBQzNCO2lCQUNKO2lHQUdHLFFBQVE7c0JBRFAsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFRTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbW9qaURhdGEsIEVtb2ppSXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0T3B0aW9uc0JvYXJkLCBQbGFpdFBsdWdpbktleSwgV2l0aFBsdWdpbk9wdGlvbnMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWluZC1ub2RlLWVtb2ppJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTWluZEVtb2ppQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBmb250U2l6ZTogbnVtYmVyID0gMTQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGVtb2ppSXRlbSE6IEVtb2ppSXRlbTtcblxuICAgIEBJbnB1dCgpXG4gICAgYm9hcmQhOiBQbGFpdEJvYXJkO1xuXG4gICAgQElucHV0KClcbiAgICBlbGVtZW50ITogTWluZEVsZW1lbnQ8RW1vamlEYXRhPjtcblxuICAgIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJylcbiAgICBoYW5kbGVDbGljaygpIHtcbiAgICAgICAgY29uc3QgY3VycmVudE9wdGlvbnMgPSAodGhpcy5ib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCkuZ2V0UGx1Z2luT3B0aW9ucyhQbGFpdFBsdWdpbktleS53aXRoU2VsZWN0aW9uKTtcbiAgICAgICAgKHRoaXMuYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLnNldFBsdWdpbk9wdGlvbnM8V2l0aFBsdWdpbk9wdGlvbnM+KFBsYWl0UGx1Z2luS2V5LndpdGhTZWxlY3Rpb24sIHtcbiAgICAgICAgICAgIGlzRGlzYWJsZWRTZWxlY3Q6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgKHRoaXMuYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLnNldFBsdWdpbk9wdGlvbnM8V2l0aFBsdWdpbk9wdGlvbnM+KFBsYWl0UGx1Z2luS2V5LndpdGhTZWxlY3Rpb24sIHsgLi4uY3VycmVudE9wdGlvbnMgfSk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5mb250U2l6ZSA9IGAke3RoaXMuZm9udFNpemV9cHhgO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import { PlaitElement } from '@plait/core';
|
|
3
|
-
import { ActiveGenerator } from '@plait/common';
|
|
4
|
-
import { getImageForeignRectangle } from '../utils/position/image';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class MindImageBaseComponent {
|
|
7
|
-
set imageItem(value) {
|
|
8
|
-
this.afterImageItemChange(this._imageItem, value);
|
|
9
|
-
this._imageItem = value;
|
|
10
|
-
this.drawFocus();
|
|
11
|
-
}
|
|
12
|
-
get imageItem() {
|
|
13
|
-
return this._imageItem;
|
|
14
|
-
}
|
|
15
|
-
set isFocus(value) {
|
|
16
|
-
this._isFocus = value;
|
|
17
|
-
this.drawFocus();
|
|
18
|
-
}
|
|
19
|
-
get isFocus() {
|
|
20
|
-
return this._isFocus;
|
|
21
|
-
}
|
|
22
|
-
get nativeElement() {
|
|
23
|
-
return this.elementRef.nativeElement;
|
|
24
|
-
}
|
|
25
|
-
constructor(elementRef, cdr) {
|
|
26
|
-
this.elementRef = elementRef;
|
|
27
|
-
this.cdr = cdr;
|
|
28
|
-
this.initialized = false;
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
this.activeGenerator = new ActiveGenerator(this.board, {
|
|
32
|
-
activeStrokeWidth: 1,
|
|
33
|
-
getRectangle: (element) => {
|
|
34
|
-
return getImageForeignRectangle(this.board, this.element);
|
|
35
|
-
},
|
|
36
|
-
getStrokeWidthByElement: () => {
|
|
37
|
-
return 0;
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
this.initialized = true;
|
|
41
|
-
}
|
|
42
|
-
drawFocus() {
|
|
43
|
-
if (this.initialized) {
|
|
44
|
-
const com = PlaitElement.getComponent(this.element);
|
|
45
|
-
this.activeGenerator.draw(this.element, com.g, { selected: this._isFocus });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
MindImageBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MindImageBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
50
|
-
MindImageBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: MindImageBaseComponent, inputs: { imageItem: "imageItem", board: "board", element: "element", isFocus: "isFocus" }, host: { classAttribute: "mind-node-image" }, ngImport: i0 });
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: MindImageBaseComponent, decorators: [{
|
|
52
|
-
type: Directive,
|
|
53
|
-
args: [{
|
|
54
|
-
host: {
|
|
55
|
-
class: 'mind-node-image'
|
|
56
|
-
}
|
|
57
|
-
}]
|
|
58
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { imageItem: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], board: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}], element: [{
|
|
63
|
-
type: Input
|
|
64
|
-
}], isFocus: [{
|
|
65
|
-
type: Input
|
|
66
|
-
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9iYXNlL2ltYWdlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBUW5FLE1BQU0sT0FBZ0Isc0JBQXNCO0lBT3hDLElBQ0ksU0FBUyxDQUFDLEtBQWdCO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFRRCxJQUNJLE9BQU8sQ0FBQyxLQUFjO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3pDLENBQUM7SUFJRCxZQUFzQixVQUFtQyxFQUFTLEdBQXNCO1FBQWxFLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQVMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFyQ3hGLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBcUN1RSxDQUFDO0lBRTVGLFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFjLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDaEUsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixZQUFZLEVBQUUsQ0FBQyxPQUFvQixFQUFFLEVBQUU7Z0JBQ25DLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQXVCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hGLENBQUM7WUFDRCx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUMvRTtJQUNMLENBQUM7O21IQTVEaUIsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFMM0MsU0FBUzttQkFBQztvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGlCQUFpQjtxQkFDM0I7aUJBQ0o7aUlBU08sU0FBUztzQkFEWixLQUFLO2dCQVlOLEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VJdGVtLCBJbWFnZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQtZGF0YSc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWN0aXZlR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBnZXRJbWFnZUZvcmVpZ25SZWN0YW5nbGUgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9pbWFnZSc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcblxuQERpcmVjdGl2ZSh7XG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21pbmQtbm9kZS1pbWFnZSdcbiAgICB9XG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1pbmRJbWFnZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIF9pbWFnZUl0ZW0hOiBJbWFnZUl0ZW07XG4gICAgX2lzRm9jdXMhOiBib29sZWFuO1xuICAgIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBBY3RpdmVHZW5lcmF0b3I8TWluZEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgaW1hZ2VJdGVtKHZhbHVlOiBJbWFnZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5hZnRlckltYWdlSXRlbUNoYW5nZSh0aGlzLl9pbWFnZUl0ZW0sIHZhbHVlKTtcbiAgICAgICAgdGhpcy5faW1hZ2VJdGVtID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZHJhd0ZvY3VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlSXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltYWdlSXRlbTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIEBJbnB1dCgpXG4gICAgZWxlbWVudCE6IE1pbmRFbGVtZW50PEltYWdlRGF0YT47XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBpc0ZvY3VzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzRm9jdXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5kcmF3Rm9jdXMoKTtcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRm9jdXM7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBhZnRlckltYWdlSXRlbUNoYW5nZShwcmV2aW91czogSW1hZ2VJdGVtLCBjdXJyZW50OiBJbWFnZUl0ZW0pOiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3I8TWluZEVsZW1lbnQ+KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGFjdGl2ZVN0cm9rZVdpZHRoOiAxLFxuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0SW1hZ2VGb3JlaWduUmVjdGFuZ2xlKHRoaXMuYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGRyYXdGb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbSA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQodGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLmRyYXcodGhpcy5lbGVtZW50LCBjb20uZywgeyBzZWxlY3RlZDogdGhpcy5faXNGb2N1cyB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export const PICTURE_ACCEPTED_UPLOAD_SIZE = 20;
|
|
2
|
-
export const acceptImageTypes = ['png', 'jpeg', 'gif', 'bmp'];
|
|
3
|
-
export const DEFAULT_IMAGE_WIDTH = 240;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy9jb25zdGFudHMvaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsRUFBRSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFBJQ1RVUkVfQUNDRVBURURfVVBMT0FEX1NJWkUgPSAyMDtcblxuZXhwb3J0IGNvbnN0IGFjY2VwdEltYWdlVHlwZXMgPSBbJ3BuZycsICdqcGVnJywgJ2dpZicsICdibXAnXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU1BR0VfV0lEVEggPSAyNDA7XG4iXX0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export const TOPIC_COLOR = '#333';
|
|
2
|
-
export const TOPIC_FONT_SIZE = 14;
|
|
3
|
-
export const ROOT_TOPIC_FONT_SIZE = 18;
|
|
4
|
-
export const ROOT_TOPIC_HEIGHT = 25;
|
|
5
|
-
export const TOPIC_DEFAULT_MAX_WORD_COUNT = 34;
|
|
6
|
-
export const DEFAULT_FONT_FAMILY = 'PingFangSC-Regular, "PingFang SC"';
|
|
7
|
-
export const BRANCH_FONT_FAMILY = 'PingFangSC-Medium, "PingFang SC"';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10b3BpYy1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2NvbnN0YW50cy9ub2RlLXRvcGljLXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEVBQUUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxtQ0FBbUMsQ0FBQztBQUN2RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUT1BJQ19DT0xPUiA9ICcjMzMzJztcbmV4cG9ydCBjb25zdCBUT1BJQ19GT05UX1NJWkUgPSAxNDtcblxuZXhwb3J0IGNvbnN0IFJPT1RfVE9QSUNfRk9OVF9TSVpFID0gMTg7XG5cbmV4cG9ydCBjb25zdCBST09UX1RPUElDX0hFSUdIVCA9IDI1O1xuXG5leHBvcnQgY29uc3QgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCA9IDM0O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT05UX0ZBTUlMWSA9ICdQaW5nRmFuZ1NDLVJlZ3VsYXIsIFwiUGluZ0ZhbmcgU0NcIic7XG5leHBvcnQgY29uc3QgQlJBTkNIX0ZPTlRfRkFNSUxZID0gJ1BpbmdGYW5nU0MtTWVkaXVtLCBcIlBpbmdGYW5nIFNDXCInOyJdfQ==
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, createG, drawRoundRectangle } from '@plait/core';
|
|
2
|
-
import { MindElement } from '../interfaces';
|
|
3
|
-
import { BaseDrawer } from '../base/base.drawer';
|
|
4
|
-
import { getRectangleByNode } from '../utils/position/node';
|
|
5
|
-
import { PRIMARY_COLOR } from '../constants/default';
|
|
6
|
-
import { AbstractNode } from '@plait/layouts';
|
|
7
|
-
import { drawAbstractIncludedOutline } from '../utils/draw/abstract-outline';
|
|
8
|
-
import { DefaultNodeStyle } from '../constants/node-style';
|
|
9
|
-
import { getStrokeWidthByElement } from '../utils/node-style/shape';
|
|
10
|
-
export class NodeActiveDrawer extends BaseDrawer {
|
|
11
|
-
canDraw(element, data) {
|
|
12
|
-
if (data.selected) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
baseDraw(element, data) {
|
|
20
|
-
const activeG = createG();
|
|
21
|
-
this.g = activeG;
|
|
22
|
-
if (AbstractNode.isAbstract(element)) {
|
|
23
|
-
this.abstractOutlineG = drawAbstractIncludedOutline(this.board, PlaitBoard.getRoughSVG(this.board), element);
|
|
24
|
-
activeG.append(this.abstractOutlineG);
|
|
25
|
-
}
|
|
26
|
-
const node = MindElement.getNode(element);
|
|
27
|
-
const rectangle = getRectangleByNode(node);
|
|
28
|
-
const activeStrokeWidth = 2;
|
|
29
|
-
// add 0.1 to avoid white gap
|
|
30
|
-
const offset = (getStrokeWidthByElement(this.board, element) + activeStrokeWidth) / 2 - 0.1;
|
|
31
|
-
const activeRectangle = RectangleClient.getOutlineRectangle(rectangle, -offset);
|
|
32
|
-
const strokeG = drawRoundRectangle(PlaitBoard.getRoughSVG(this.board), activeRectangle.x, activeRectangle.y, activeRectangle.x + activeRectangle.width, activeRectangle.y + activeRectangle.height, { stroke: PRIMARY_COLOR, strokeWidth: activeStrokeWidth, fill: '' }, true, DefaultNodeStyle.shape.rectangleRadius + offset);
|
|
33
|
-
this.g.appendChild(strokeG);
|
|
34
|
-
return activeG;
|
|
35
|
-
}
|
|
36
|
-
updateAbstractOutline(element, activeHandlePosition, resizingLocation) {
|
|
37
|
-
if (this.abstractOutlineG) {
|
|
38
|
-
this.abstractOutlineG.remove();
|
|
39
|
-
}
|
|
40
|
-
this.abstractOutlineG = drawAbstractIncludedOutline(this.board, PlaitBoard.getRoughSVG(this.board), element, activeHandlePosition, resizingLocation);
|
|
41
|
-
this.g.append(this.abstractOutlineG);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3RpdmUuZHJhd2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvZHJhd2VyL25vZGUtYWN0aXZlLmRyYXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU9wRSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsVUFBc0I7SUFHeEQsT0FBTyxDQUFDLE9BQThCLEVBQUUsSUFBZ0I7UUFDcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDZjthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQThCLEVBQUUsSUFBZ0I7UUFDckQsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7UUFFakIsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDekM7UUFDRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLDZCQUE2QjtRQUM3QixNQUFNLE1BQU0sR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzVGLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRixNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FDOUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQ2xDLGVBQWUsQ0FBQyxDQUFDLEVBQ2pCLGVBQWUsQ0FBQyxDQUFDLEVBQ2pCLGVBQWUsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLEtBQUssRUFDekMsZUFBZSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxFQUMxQyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFDbkUsSUFBSSxFQUNKLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUNsRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsb0JBQTZDLEVBQUUsZ0JBQXlCO1FBQ2hILElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRywyQkFBMkIsQ0FDL0MsSUFBSSxDQUFDLEtBQUssRUFDVixVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDbEMsT0FBTyxFQUNQLG9CQUFvQixFQUNwQixnQkFBZ0IsQ0FDbkIsQ0FBQztRQUNGLElBQUksQ0FBQyxDQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCwgY3JlYXRlRywgZHJhd1JvdW5kUmVjdGFuZ2xlIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQsIEJhc2VEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYXNlRHJhd2VyIH0gZnJvbSAnLi4vYmFzZS9iYXNlLmRyYXdlcic7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9ub2RlJztcbmltcG9ydCB7IFBSSU1BUllfQ09MT1IgfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBBYnN0cmFjdE5vZGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBkcmF3QWJzdHJhY3RJbmNsdWRlZE91dGxpbmUgfSBmcm9tICcuLi91dGlscy9kcmF3L2Fic3RyYWN0LW91dGxpbmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1hYnN0cmFjdC1yZXNpemUuYm9hcmQnO1xuaW1wb3J0IHsgRGVmYXVsdE5vZGVTdHlsZSB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcbmltcG9ydCB7IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbm9kZS1zdHlsZS9zaGFwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlRGF0YSB7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgaXNFZGl0aW5nOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTm9kZUFjdGl2ZURyYXdlciBleHRlbmRzIEJhc2VEcmF3ZXI8QWN0aXZlRGF0YT4ge1xuICAgIGFic3RyYWN0T3V0bGluZUc/OiBTVkdHRWxlbWVudDtcblxuICAgIGNhbkRyYXcoZWxlbWVudDogTWluZEVsZW1lbnQ8QmFzZURhdGE+LCBkYXRhOiBBY3RpdmVEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJhc2VEcmF3KGVsZW1lbnQ6IE1pbmRFbGVtZW50PEJhc2VEYXRhPiwgZGF0YTogQWN0aXZlRGF0YSk6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgY29uc3QgYWN0aXZlRyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgdGhpcy5nID0gYWN0aXZlRztcblxuICAgICAgICBpZiAoQWJzdHJhY3ROb2RlLmlzQWJzdHJhY3QoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWJzdHJhY3RPdXRsaW5lRyA9IGRyYXdBYnN0cmFjdEluY2x1ZGVkT3V0bGluZSh0aGlzLmJvYXJkLCBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLCBlbGVtZW50KTtcbiAgICAgICAgICAgIGFjdGl2ZUcuYXBwZW5kKHRoaXMuYWJzdHJhY3RPdXRsaW5lRyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgbm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShub2RlKTtcbiAgICAgICAgY29uc3QgYWN0aXZlU3Ryb2tlV2lkdGggPSAyO1xuICAgICAgICAvLyBhZGQgMC4xIHRvIGF2b2lkIHdoaXRlIGdhcFxuICAgICAgICBjb25zdCBvZmZzZXQgPSAoZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCkgKyBhY3RpdmVTdHJva2VXaWR0aCkgLyAyIC0gMC4xO1xuICAgICAgICBjb25zdCBhY3RpdmVSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0T3V0bGluZVJlY3RhbmdsZShyZWN0YW5nbGUsIC1vZmZzZXQpO1xuICAgICAgICBjb25zdCBzdHJva2VHID0gZHJhd1JvdW5kUmVjdGFuZ2xlKFxuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyh0aGlzLmJvYXJkKSxcbiAgICAgICAgICAgIGFjdGl2ZVJlY3RhbmdsZS54LFxuICAgICAgICAgICAgYWN0aXZlUmVjdGFuZ2xlLnksXG4gICAgICAgICAgICBhY3RpdmVSZWN0YW5nbGUueCArIGFjdGl2ZVJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgIGFjdGl2ZVJlY3RhbmdsZS55ICsgYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCxcbiAgICAgICAgICAgIHsgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLCBzdHJva2VXaWR0aDogYWN0aXZlU3Ryb2tlV2lkdGgsIGZpbGw6ICcnIH0sXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgRGVmYXVsdE5vZGVTdHlsZS5zaGFwZS5yZWN0YW5nbGVSYWRpdXMgKyBvZmZzZXRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5nLmFwcGVuZENoaWxkKHN0cm9rZUcpO1xuICAgICAgICByZXR1cm4gYWN0aXZlRztcbiAgICB9XG5cbiAgICB1cGRhdGVBYnN0cmFjdE91dGxpbmUoZWxlbWVudDogTWluZEVsZW1lbnQsIGFjdGl2ZUhhbmRsZVBvc2l0aW9uPzogQWJzdHJhY3RIYW5kbGVQb3NpdGlvbiwgcmVzaXppbmdMb2NhdGlvbj86IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5hYnN0cmFjdE91dGxpbmVHKSB7XG4gICAgICAgICAgICB0aGlzLmFic3RyYWN0T3V0bGluZUcucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hYnN0cmFjdE91dGxpbmVHID0gZHJhd0Fic3RyYWN0SW5jbHVkZWRPdXRsaW5lKFxuICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCksXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgYWN0aXZlSGFuZGxlUG9zaXRpb24sXG4gICAgICAgICAgICByZXNpemluZ0xvY2F0aW9uXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZyEuYXBwZW5kKHRoaXMuYWJzdHJhY3RPdXRsaW5lRyk7XG4gICAgfVxufVxuIl19
|