slate-angular 16.0.0 → 16.1.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/block-card/block-card.component.d.ts +3 -3
- package/components/children/children.component.d.ts +3 -8
- package/components/editable/editable.component.d.ts +21 -10
- package/components/element/default-element.component.d.ts +3 -3
- package/components/element/element.component.d.ts +3 -3
- package/components/leaf/default-leaf.component.d.ts +3 -3
- package/components/leaf/token.d.ts +4 -0
- package/components/leaves/leaves.component.d.ts +3 -16
- package/components/string/default-string.component.d.ts +3 -3
- package/components/string/string.component.d.ts +13 -5
- package/components/string/template.component.d.ts +3 -3
- package/components/text/default-text.component.d.ts +3 -3
- package/components/text/token.d.ts +5 -0
- package/components/text/void-text.component.d.ts +3 -3
- package/esm2022/components/block-card/block-card.component.mjs +6 -6
- package/esm2022/components/children/children.component.mjs +11 -36
- package/esm2022/components/editable/editable.component.mjs +129 -46
- package/esm2022/components/element/default-element.component.mjs +10 -8
- package/esm2022/components/element/element.component.mjs +10 -8
- package/esm2022/components/leaf/default-leaf.component.mjs +9 -7
- package/esm2022/components/leaf/token.mjs +3 -0
- package/esm2022/components/leaves/leaves.component.mjs +11 -55
- package/esm2022/components/string/default-string.component.mjs +7 -6
- package/esm2022/components/string/string.component.mjs +25 -14
- package/esm2022/components/string/template.component.mjs +6 -6
- package/esm2022/components/text/default-text.component.mjs +10 -8
- package/esm2022/components/text/token.mjs +4 -0
- package/esm2022/components/text/void-text.component.mjs +10 -8
- package/esm2022/module.mjs +53 -58
- package/esm2022/utils/throttle.mjs +18 -0
- package/esm2022/view/base.mjs +26 -9
- package/esm2022/view/container-item.mjs +1 -1
- package/esm2022/view/container.mjs +2 -82
- package/esm2022/view/context.mjs +1 -1
- package/esm2022/view/render/leaves-render.mjs +105 -0
- package/esm2022/view/render/list-render.mjs +250 -0
- package/esm2022/view/render/utils.mjs +104 -0
- package/fesm2022/slate-angular.mjs +905 -675
- package/fesm2022/slate-angular.mjs.map +1 -1
- package/module.d.ts +12 -14
- package/package.json +8 -3
- package/utils/throttle.d.ts +2 -0
- package/view/base.d.ts +11 -2
- package/view/container-item.d.ts +2 -2
- package/view/container.d.ts +3 -7
- package/view/context.d.ts +10 -4
- package/view/render/leaves-render.d.ts +20 -0
- package/view/render/list-render.d.ts +31 -0
- package/view/render/utils.d.ts +11 -0
- package/components/descendant/descendant.component.d.ts +0 -35
- package/components/leaf/leaf.component.d.ts +0 -16
- package/esm2022/components/descendant/descendant.component.mjs +0 -185
- package/esm2022/components/leaf/leaf.component.mjs +0 -37
package/module.d.ts
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "
|
|
3
|
-
import * as i2 from "./components/
|
|
4
|
-
import * as i3 from "./components/element/element.component";
|
|
5
|
-
import * as i4 from "./components/
|
|
6
|
-
import * as i5 from "./components/text/
|
|
7
|
-
import * as i6 from "./components/
|
|
8
|
-
import * as i7 from "./components/string/
|
|
9
|
-
import * as i8 from "./components/
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
import * as i2 from "./components/editable/editable.component";
|
|
4
|
+
import * as i3 from "./components/element/default-element.component";
|
|
5
|
+
import * as i4 from "./components/element/element.component";
|
|
6
|
+
import * as i5 from "./components/text/void-text.component";
|
|
7
|
+
import * as i6 from "./components/text/default-text.component";
|
|
8
|
+
import * as i7 from "./components/string/string.component";
|
|
9
|
+
import * as i8 from "./components/string/template.component";
|
|
10
10
|
import * as i9 from "./components/children/children.component";
|
|
11
11
|
import * as i10 from "./components/block-card/block-card.component";
|
|
12
|
-
import * as i11 from "./components/
|
|
13
|
-
import * as i12 from "./components/
|
|
14
|
-
import * as i13 from "./components/
|
|
15
|
-
import * as i14 from "./components/string/default-string.component";
|
|
16
|
-
import * as i15 from "@angular/common";
|
|
12
|
+
import * as i11 from "./components/leaves/leaves.component";
|
|
13
|
+
import * as i12 from "./components/leaf/default-leaf.component";
|
|
14
|
+
import * as i13 from "./components/string/default-string.component";
|
|
17
15
|
export declare class SlateModule {
|
|
18
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<SlateModule, never>;
|
|
19
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SlateModule, [typeof i1.
|
|
17
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SlateModule, never, [typeof i1.CommonModule, typeof i2.SlateEditable, typeof i3.SlateDefaultElement, typeof i4.SlateElement, typeof i5.SlateVoidText, typeof i6.SlateDefaultText, typeof i7.SlateString, typeof i8.SlateStringTemplate, typeof i9.SlateChildren, typeof i10.SlateBlockCard, typeof i11.SlateLeaves, typeof i12.SlateDefaultLeaf, typeof i13.SlateDefaultString], [typeof i2.SlateEditable, typeof i9.SlateChildren, typeof i4.SlateElement, typeof i11.SlateLeaves, typeof i7.SlateString, typeof i13.SlateDefaultString]>;
|
|
20
18
|
static ɵinj: i0.ɵɵInjectorDeclaration<SlateModule>;
|
|
21
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "slate-angular",
|
|
3
|
-
"version": "16.0.0",
|
|
3
|
+
"version": "16.1.0-next.0",
|
|
4
4
|
"description": "Angular view layer for Slate",
|
|
5
5
|
"author": "pubuzhixing <pubuzhixing@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/worktile/slate-angular#readme",
|
|
@@ -9,11 +9,16 @@
|
|
|
9
9
|
"slate": ">= 0.63.0",
|
|
10
10
|
"slate-history": "^0.66.0",
|
|
11
11
|
"debug": "^4.1.1",
|
|
12
|
-
"direction": "^
|
|
13
|
-
"is-hotkey": "^0.
|
|
12
|
+
"direction": "^2.0.1",
|
|
13
|
+
"is-hotkey": "^0.2.0",
|
|
14
14
|
"scroll-into-view-if-needed": "^2.2.20"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
+
"slate": "^0.72.8",
|
|
18
|
+
"slate-history": "^0.66.0",
|
|
19
|
+
"direction": "^2.0.1",
|
|
20
|
+
"is-hotkey": "^0.2.0",
|
|
21
|
+
"scroll-into-view-if-needed": "^2.2.20",
|
|
17
22
|
"tslib": "^2.5.0"
|
|
18
23
|
},
|
|
19
24
|
"exports": {
|
package/view/base.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { AngularEditor } from '../plugins/angular-editor';
|
|
3
3
|
import { SlateViewContext, SlateElementContext, SlateTextContext, SlateLeafContext } from './context';
|
|
4
|
-
import { Descendant, Element, Range, Text } from 'slate';
|
|
4
|
+
import { Descendant, Element, Path, Range, Text } from 'slate';
|
|
5
5
|
import { SlateChildrenContext } from './context';
|
|
6
|
+
import { ListRender } from './render/list-render';
|
|
7
|
+
import { LeavesRender } from './render/leaves-render';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
9
|
/**
|
|
8
10
|
* base class for template
|
|
@@ -50,15 +52,19 @@ export declare class BaseLeafComponent extends BaseComponent<SlateLeafContext> i
|
|
|
50
52
|
* base class for custom element component
|
|
51
53
|
*/
|
|
52
54
|
export declare class BaseElementComponent<T extends Element = Element, K extends AngularEditor = AngularEditor> extends BaseComponent<SlateElementContext<T>, K> implements OnInit, OnDestroy {
|
|
55
|
+
viewContainerRef: ViewContainerRef;
|
|
53
56
|
initialized: boolean;
|
|
54
57
|
childrenContext: SlateChildrenContext;
|
|
55
58
|
get element(): T;
|
|
56
59
|
get selection(): Range;
|
|
60
|
+
get path(): Path;
|
|
57
61
|
get decorations(): Range[];
|
|
58
62
|
get children(): Descendant[];
|
|
59
63
|
get isCollapsed(): boolean;
|
|
60
64
|
get isCollapsedAndNonReadonly(): boolean;
|
|
61
65
|
get readonly(): boolean;
|
|
66
|
+
getOutletElement: () => any;
|
|
67
|
+
listRender: ListRender;
|
|
62
68
|
ngOnInit(): void;
|
|
63
69
|
updateWeakMap(): void;
|
|
64
70
|
ngOnDestroy(): void;
|
|
@@ -72,7 +78,10 @@ export declare class BaseElementComponent<T extends Element = Element, K extends
|
|
|
72
78
|
*/
|
|
73
79
|
export declare class BaseTextComponent<T extends Text = Text> extends BaseComponent<SlateTextContext<T>> implements OnInit, OnDestroy {
|
|
74
80
|
initialized: boolean;
|
|
81
|
+
viewContainerRef: ViewContainerRef;
|
|
75
82
|
get text(): T;
|
|
83
|
+
leavesRender: LeavesRender;
|
|
84
|
+
getOutletElement: () => any;
|
|
76
85
|
ngOnInit(): void;
|
|
77
86
|
updateWeakMap(): void;
|
|
78
87
|
ngOnDestroy(): void;
|
package/view/container-item.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentRef, EmbeddedViewRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { SlateBlockCard } from '../components/block-card/block-card.component';
|
|
3
3
|
import { ViewType } from '../types/view';
|
|
4
4
|
import { BaseComponent, BaseEmbeddedView } from './base';
|
|
5
5
|
import { SlateElementContext, SlateLeafContext, SlateStringContext, SlateTextContext, SlateViewContext } from './context';
|
|
@@ -14,7 +14,7 @@ export declare abstract class ViewContainerItem<T = SlateElementContext | SlateT
|
|
|
14
14
|
initialized: boolean;
|
|
15
15
|
embeddedViewRef: EmbeddedViewRef<BaseEmbeddedView<T>>;
|
|
16
16
|
embeddedViewContext: BaseEmbeddedView<T>;
|
|
17
|
-
blockCardComponentRef: ComponentRef<
|
|
17
|
+
blockCardComponentRef: ComponentRef<SlateBlockCard>;
|
|
18
18
|
componentRef: ComponentRef<K>;
|
|
19
19
|
viewType: ViewType;
|
|
20
20
|
viewContext: SlateViewContext;
|
package/view/container.d.ts
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ElementRef, IterableDiffers } from '@angular/core';
|
|
2
2
|
import { SlateViewContext } from './context';
|
|
3
3
|
import { ViewContainerItem } from './container-item';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
/**
|
|
6
|
+
* @deprecated
|
|
6
7
|
* the special container for angular template
|
|
7
8
|
* Add the rootNodes of each child component to the parentElement
|
|
8
9
|
* Remove useless DOM elements, eg: comment...
|
|
9
10
|
*/
|
|
10
|
-
export declare abstract class ViewContainer<T extends ViewContainerItem>
|
|
11
|
+
export declare abstract class ViewContainer<T extends ViewContainerItem> {
|
|
11
12
|
protected elementRef: ElementRef<any>;
|
|
12
13
|
protected differs: IterableDiffers;
|
|
13
|
-
abstract childrenComponent: QueryList<T>;
|
|
14
14
|
viewContext: SlateViewContext;
|
|
15
15
|
constructor(elementRef: ElementRef<any>, differs: IterableDiffers);
|
|
16
|
-
ngAfterViewInit(): void;
|
|
17
|
-
getPreviousRootNode(currentIndex: any): any;
|
|
18
|
-
createFragment(): DocumentFragment;
|
|
19
|
-
handleContainerItemChange(record: IterableChangeRecord<T>, parentElement: HTMLElement): void;
|
|
20
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<ViewContainer<any>, never>;
|
|
21
17
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ViewContainer<any>, never, never, { "viewContext": { "alias": "viewContext"; "required": false; }; }, {}, never, never, false, never>;
|
|
22
18
|
}
|
package/view/context.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import { NodeEntry, Range, Element, Ancestor, Text } from 'slate';
|
|
2
|
-
import {
|
|
1
|
+
import { NodeEntry, Range, Element, Ancestor, Text, Path } from 'slate';
|
|
2
|
+
import { SlateStringTemplate } from '../components/string/template.component';
|
|
3
3
|
import { AngularEditor } from '../plugins/angular-editor';
|
|
4
|
-
import { ViewType } from '../types/view';
|
|
4
|
+
import { ComponentType, ViewType } from '../types/view';
|
|
5
|
+
import { BaseElementComponent, BaseLeafComponent, BaseTextComponent } from './base';
|
|
5
6
|
export interface SlateViewContext<T extends AngularEditor = AngularEditor> {
|
|
6
7
|
editor: T;
|
|
7
|
-
templateComponent:
|
|
8
|
+
templateComponent: SlateStringTemplate;
|
|
9
|
+
defaultElement: ComponentType<BaseElementComponent>;
|
|
10
|
+
defaultText: ComponentType<BaseTextComponent>;
|
|
11
|
+
defaultVoidText: ComponentType<BaseTextComponent>;
|
|
12
|
+
defaultLeaf: ComponentType<BaseLeafComponent>;
|
|
8
13
|
trackBy: (element: Element) => any;
|
|
9
14
|
renderElement?: (element: Element) => ViewType;
|
|
10
15
|
renderLeaf?: (text: Text) => ViewType;
|
|
@@ -21,6 +26,7 @@ export interface SlateChildrenContext {
|
|
|
21
26
|
export interface SlateElementContext<T extends Element = Element> {
|
|
22
27
|
element: T;
|
|
23
28
|
selection: Range | null;
|
|
29
|
+
path: Path;
|
|
24
30
|
decorations: Range[];
|
|
25
31
|
attributes: SlateElementAttributes;
|
|
26
32
|
decorate: (entry: NodeEntry) => Range[];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { ViewType } from '../../types/view';
|
|
3
|
+
import { SlateLeafContext, SlateTextContext, SlateViewContext } from '../context';
|
|
4
|
+
export declare class LeavesRender {
|
|
5
|
+
private viewContext;
|
|
6
|
+
private viewContainerRef;
|
|
7
|
+
private getOutletElement;
|
|
8
|
+
private leaves;
|
|
9
|
+
private views;
|
|
10
|
+
private contexts;
|
|
11
|
+
private viewTypes;
|
|
12
|
+
private differ;
|
|
13
|
+
constructor(viewContext: SlateViewContext, viewContainerRef: ViewContainerRef, getOutletElement: () => HTMLElement);
|
|
14
|
+
initialize(context: SlateTextContext): void;
|
|
15
|
+
update(context: SlateTextContext): void;
|
|
16
|
+
private getLeaves;
|
|
17
|
+
}
|
|
18
|
+
export declare function getContext(index: number, leafContexts: SlateLeafContext[]): SlateLeafContext;
|
|
19
|
+
export declare function getViewType(leafContext: SlateLeafContext, viewContext: SlateViewContext): ViewType;
|
|
20
|
+
export declare function trackBy(viewContext: SlateViewContext): (index: any, node: any) => any;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Ancestor, Descendant, Range, Path } from 'slate';
|
|
2
|
+
import { ComponentRef, EmbeddedViewRef, ViewContainerRef } from '@angular/core';
|
|
3
|
+
import { ViewType } from '../../types/view';
|
|
4
|
+
import { SlateChildrenContext, SlateElementContext, SlateTextContext, SlateViewContext } from '../context';
|
|
5
|
+
import { SlateBlockCard } from '../../components/block-card/block-card.component';
|
|
6
|
+
export declare class ListRender {
|
|
7
|
+
private viewContext;
|
|
8
|
+
private viewContainerRef;
|
|
9
|
+
private getOutletElement;
|
|
10
|
+
private children;
|
|
11
|
+
private views;
|
|
12
|
+
private blockCards;
|
|
13
|
+
private contexts;
|
|
14
|
+
private viewTypes;
|
|
15
|
+
private differ;
|
|
16
|
+
initialized: boolean;
|
|
17
|
+
constructor(viewContext: SlateViewContext, viewContainerRef: ViewContainerRef, getOutletElement: () => HTMLElement);
|
|
18
|
+
initialize(children: Descendant[], parent: Ancestor, parentPath: Path, childrenContext: SlateChildrenContext): void;
|
|
19
|
+
update(children: Descendant[], parent: Ancestor, parentPath: Path, childrenContext: SlateChildrenContext): void;
|
|
20
|
+
}
|
|
21
|
+
export declare function getContext(index: number, item: Descendant, parentPath: Path, childrenContext: SlateChildrenContext, viewContext: SlateViewContext): SlateElementContext | SlateTextContext;
|
|
22
|
+
export declare function getCommonContext(index: number, item: Descendant, parentPath: Path, viewContext: SlateViewContext, childrenContext: SlateChildrenContext): {
|
|
23
|
+
selection: Range;
|
|
24
|
+
decorations: Range[];
|
|
25
|
+
};
|
|
26
|
+
export declare function getViewType(item: Descendant, parent: Ancestor, viewContext: SlateViewContext): ViewType;
|
|
27
|
+
export declare function createBlockCard(item: Descendant, view: EmbeddedViewRef<any> | ComponentRef<any>, viewContainerRef: ViewContainerRef, viewContext: SlateViewContext): ComponentRef<SlateBlockCard>;
|
|
28
|
+
export declare function trackBy(viewContext: SlateViewContext): (index: any, node: any) => any;
|
|
29
|
+
export declare function memoizedContext(viewContext: SlateViewContext, descendant: Descendant, prev: SlateElementContext | SlateTextContext, next: SlateElementContext | SlateTextContext): boolean;
|
|
30
|
+
export declare function memoizedElementContext(viewContext: SlateViewContext, prev: SlateElementContext, next: SlateElementContext): boolean;
|
|
31
|
+
export declare function memoizedTextContext(prev: SlateTextContext, next: SlateTextContext): boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Descendant } from 'slate';
|
|
2
|
+
import { ComponentRef, EmbeddedViewRef, ViewContainerRef } from '@angular/core';
|
|
3
|
+
import { ViewType } from '../../types/view';
|
|
4
|
+
import { SlateElementContext, SlateLeafContext, SlateTextContext, SlateViewContext } from '../context';
|
|
5
|
+
import { SlateBlockCard } from '../../components/block-card/block-card.component';
|
|
6
|
+
export declare function createEmbeddedViewOrComponent(viewType: ViewType, context: any, viewContext: SlateViewContext, viewContainerRef: ViewContainerRef): EmbeddedViewRef<any> | ComponentRef<any>;
|
|
7
|
+
export declare function renderView(view: EmbeddedViewRef<any> | ComponentRef<any>): void;
|
|
8
|
+
export declare function updateContext(view: EmbeddedViewRef<any> | ComponentRef<any>, newContext: SlateElementContext | SlateTextContext | SlateLeafContext, viewContext: SlateViewContext): void;
|
|
9
|
+
export declare function mount(views: (EmbeddedViewRef<any> | ComponentRef<any>)[], blockCards: (ComponentRef<SlateBlockCard> | null)[] | null, outletElement: HTMLElement): void;
|
|
10
|
+
export declare function getRootNodes(ref: EmbeddedViewRef<any> | ComponentRef<any>, blockCard?: ComponentRef<SlateBlockCard>): HTMLElement[];
|
|
11
|
+
export declare function mountOnItemChange(index: number, item: Descendant, views: (EmbeddedViewRef<any> | ComponentRef<any>)[], blockCards: (ComponentRef<SlateBlockCard> | null)[] | null, outletElement: HTMLElement, viewContext: SlateViewContext): void;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { OnChanges, OnInit, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { ViewContainerItem } from '../../view/container-item';
|
|
3
|
-
import { Descendant, Range } from 'slate';
|
|
4
|
-
import { SlateChildrenContext, SlateElementContext, SlateTextContext, SlateViewContext } from '../../view/context';
|
|
5
|
-
import { BaseElementComponent, BaseTextComponent } from '../../view/base';
|
|
6
|
-
import { ComponentType, ViewType } from '../../types/view';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class SlateDescendantComponent extends ViewContainerItem<SlateElementContext | SlateTextContext, BaseElementComponent | BaseTextComponent> implements OnInit, OnChanges {
|
|
9
|
-
protected viewContainerRef: ViewContainerRef;
|
|
10
|
-
defaultElementComponentType: ComponentType<BaseElementComponent>;
|
|
11
|
-
descendant: Descendant;
|
|
12
|
-
context: SlateChildrenContext;
|
|
13
|
-
viewContext: SlateViewContext;
|
|
14
|
-
index: number;
|
|
15
|
-
get rootNodes(): HTMLElement[];
|
|
16
|
-
get isBlockCard(): boolean;
|
|
17
|
-
constructor(viewContainerRef: ViewContainerRef, defaultElementComponentType: ComponentType<BaseElementComponent>);
|
|
18
|
-
ngOnInit(): void;
|
|
19
|
-
destroyView(): void;
|
|
20
|
-
ngOnChanges(): void;
|
|
21
|
-
destroyBlockCard(): void;
|
|
22
|
-
createBlockCard(): void;
|
|
23
|
-
updateBlockCard(): void;
|
|
24
|
-
getCommonContext(): {
|
|
25
|
-
selection: Range;
|
|
26
|
-
decorations: Range[];
|
|
27
|
-
};
|
|
28
|
-
getContext(): SlateElementContext | SlateTextContext;
|
|
29
|
-
getViewType(): ViewType;
|
|
30
|
-
memoizedElementContext(prev: SlateElementContext, next: SlateElementContext): boolean;
|
|
31
|
-
memoizedTextContext(prev: SlateTextContext, next: SlateTextContext): boolean;
|
|
32
|
-
memoizedContext(prev: SlateElementContext | SlateTextContext, next: SlateElementContext | SlateTextContext): boolean;
|
|
33
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SlateDescendantComponent, never>;
|
|
34
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SlateDescendantComponent, "slate-descendant", never, { "descendant": { "alias": "descendant"; "required": false; }; "context": { "alias": "context"; "required": false; }; "viewContext": { "alias": "viewContext"; "required": false; }; "index": { "alias": "index"; "required": false; }; }, {}, never, never, false, never>;
|
|
35
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { ViewContainerItem } from '../../view/container-item';
|
|
3
|
-
import { SlateLeafContext } from '../../view/context';
|
|
4
|
-
import { BaseLeafComponent } from '../../view/base';
|
|
5
|
-
import { ViewType } from '../../types/view';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class SlateLeafComponent extends ViewContainerItem<SlateLeafContext, BaseLeafComponent> implements OnInit, OnChanges {
|
|
8
|
-
context: SlateLeafContext;
|
|
9
|
-
ngOnInit(): void;
|
|
10
|
-
getContext(): SlateLeafContext;
|
|
11
|
-
getViewType(): ViewType;
|
|
12
|
-
memoizedContext(prev: SlateLeafContext, next: SlateLeafContext): boolean;
|
|
13
|
-
ngOnChanges(simpleChanges: SimpleChanges): void;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SlateLeafComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SlateLeafComponent, "slate-leaf", never, { "context": { "alias": "context"; "required": false; }; }, {}, never, never, false, never>;
|
|
16
|
-
}
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject, Input } from '@angular/core';
|
|
2
|
-
import { SlateBlockCardComponent } from '../block-card/block-card.component';
|
|
3
|
-
import { ViewContainerItem } from '../../view/container-item';
|
|
4
|
-
import { Editor, Range, Element } from 'slate';
|
|
5
|
-
import { AngularEditor } from '../../plugins/angular-editor';
|
|
6
|
-
import { NODE_TO_INDEX, NODE_TO_PARENT } from '../../utils/weak-maps';
|
|
7
|
-
import { SlateDefaultTextComponent } from '../text/default-text.component';
|
|
8
|
-
import { SlateVoidTextComponent } from '../text/void-text.component';
|
|
9
|
-
import { isDecoratorRangeListEqual } from '../../utils';
|
|
10
|
-
import { SlateErrorCode } from '../../types';
|
|
11
|
-
import { SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN } from '../element/default-element.component.token';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
export class SlateDescendantComponent extends ViewContainerItem {
|
|
14
|
-
get rootNodes() {
|
|
15
|
-
if (this.blockCardComponentRef) {
|
|
16
|
-
return [this.blockCardComponentRef.instance.nativeElement];
|
|
17
|
-
}
|
|
18
|
-
return super.getRootNodes();
|
|
19
|
-
}
|
|
20
|
-
get isBlockCard() {
|
|
21
|
-
return this.viewContext.editor.isBlockCard(this.descendant);
|
|
22
|
-
}
|
|
23
|
-
constructor(viewContainerRef, defaultElementComponentType) {
|
|
24
|
-
super(viewContainerRef);
|
|
25
|
-
this.viewContainerRef = viewContainerRef;
|
|
26
|
-
this.defaultElementComponentType = defaultElementComponentType;
|
|
27
|
-
}
|
|
28
|
-
ngOnInit() {
|
|
29
|
-
NODE_TO_INDEX.set(this.descendant, this.index);
|
|
30
|
-
NODE_TO_PARENT.set(this.descendant, this.context.parent);
|
|
31
|
-
this.createView();
|
|
32
|
-
if (this.isBlockCard) {
|
|
33
|
-
this.createBlockCard();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
destroyView() {
|
|
37
|
-
super.destroyView();
|
|
38
|
-
this.destroyBlockCard();
|
|
39
|
-
}
|
|
40
|
-
ngOnChanges() {
|
|
41
|
-
if (!this.initialized) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
NODE_TO_INDEX.set(this.descendant, this.index);
|
|
45
|
-
NODE_TO_PARENT.set(this.descendant, this.context.parent);
|
|
46
|
-
this.updateView();
|
|
47
|
-
if (this.isBlockCard) {
|
|
48
|
-
this.updateBlockCard();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
destroyBlockCard() {
|
|
52
|
-
if (this.blockCardComponentRef) {
|
|
53
|
-
this.blockCardComponentRef.destroy();
|
|
54
|
-
this.blockCardComponentRef = null;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
createBlockCard() {
|
|
58
|
-
const rootNodes = this.rootNodes;
|
|
59
|
-
this.blockCardComponentRef = this.viewContainerRef.createComponent(SlateBlockCardComponent);
|
|
60
|
-
this.blockCardComponentRef.instance.initializeCenter(rootNodes);
|
|
61
|
-
}
|
|
62
|
-
updateBlockCard() {
|
|
63
|
-
if (this.blockCardComponentRef) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const rootNodes = this.rootNodes;
|
|
67
|
-
this.createBlockCard();
|
|
68
|
-
const firstRootNode = rootNodes[0];
|
|
69
|
-
firstRootNode.replaceWith(this.blockCardComponentRef.instance.nativeElement);
|
|
70
|
-
}
|
|
71
|
-
getCommonContext() {
|
|
72
|
-
const path = AngularEditor.findPath(this.viewContext.editor, this.context.parent);
|
|
73
|
-
const p = path.concat(this.index);
|
|
74
|
-
try {
|
|
75
|
-
const range = Editor.range(this.viewContext.editor, p);
|
|
76
|
-
const sel = this.context.selection && Range.intersection(range, this.context.selection);
|
|
77
|
-
const ds = this.context.decorate([this.descendant, p]);
|
|
78
|
-
for (const dec of this.context.decorations) {
|
|
79
|
-
const d = Range.intersection(dec, range);
|
|
80
|
-
if (d) {
|
|
81
|
-
ds.push(d);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return { selection: sel, decorations: ds };
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
this.viewContext.editor.onError({
|
|
88
|
-
code: SlateErrorCode.GetStartPointError,
|
|
89
|
-
nativeError: error
|
|
90
|
-
});
|
|
91
|
-
return { selection: null, decorations: [] };
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
getContext() {
|
|
95
|
-
if (Element.isElement(this.descendant)) {
|
|
96
|
-
const computedContext = this.getCommonContext();
|
|
97
|
-
const key = AngularEditor.findKey(this.viewContext.editor, this.descendant);
|
|
98
|
-
const isInline = this.viewContext.editor.isInline(this.descendant);
|
|
99
|
-
const isVoid = this.viewContext.editor.isVoid(this.descendant);
|
|
100
|
-
const elementContext = {
|
|
101
|
-
element: this.descendant,
|
|
102
|
-
...computedContext,
|
|
103
|
-
attributes: {
|
|
104
|
-
'data-slate-node': 'element',
|
|
105
|
-
'data-slate-key': key.id
|
|
106
|
-
},
|
|
107
|
-
decorate: this.context.decorate,
|
|
108
|
-
readonly: this.context.readonly
|
|
109
|
-
};
|
|
110
|
-
if (isInline) {
|
|
111
|
-
elementContext.attributes['data-slate-inline'] = true;
|
|
112
|
-
}
|
|
113
|
-
if (isVoid) {
|
|
114
|
-
elementContext.attributes['data-slate-void'] = true;
|
|
115
|
-
elementContext.attributes.contenteditable = false;
|
|
116
|
-
}
|
|
117
|
-
return elementContext;
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
const computedContext = this.getCommonContext();
|
|
121
|
-
const isLeafBlock = AngularEditor.isLeafBlock(this.viewContext.editor, this.context.parent);
|
|
122
|
-
const textContext = {
|
|
123
|
-
decorations: computedContext.decorations,
|
|
124
|
-
isLast: isLeafBlock && this.index === this.context.parent.children.length - 1,
|
|
125
|
-
parent: this.context.parent,
|
|
126
|
-
text: this.descendant
|
|
127
|
-
};
|
|
128
|
-
return textContext;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
getViewType() {
|
|
132
|
-
if (Element.isElement(this.descendant)) {
|
|
133
|
-
return (this.viewContext.renderElement && this.viewContext.renderElement(this.descendant)) || this.defaultElementComponentType;
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
const isVoid = this.viewContext.editor.isVoid(this.context.parent);
|
|
137
|
-
return isVoid
|
|
138
|
-
? SlateVoidTextComponent
|
|
139
|
-
: (this.viewContext.renderText && this.viewContext.renderText(this.descendant)) || SlateDefaultTextComponent;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
memoizedElementContext(prev, next) {
|
|
143
|
-
return (prev.element === next.element &&
|
|
144
|
-
(!this.viewContext.isStrictDecorate || prev.decorate === next.decorate) &&
|
|
145
|
-
prev.readonly === next.readonly &&
|
|
146
|
-
isDecoratorRangeListEqual(prev.decorations, next.decorations) &&
|
|
147
|
-
(prev.selection === next.selection || (!!prev.selection && !!next.selection && Range.equals(prev.selection, next.selection))));
|
|
148
|
-
}
|
|
149
|
-
memoizedTextContext(prev, next) {
|
|
150
|
-
return (next.parent === prev.parent &&
|
|
151
|
-
next.isLast === prev.isLast &&
|
|
152
|
-
next.text === prev.text &&
|
|
153
|
-
isDecoratorRangeListEqual(next.decorations, prev.decorations));
|
|
154
|
-
}
|
|
155
|
-
memoizedContext(prev, next) {
|
|
156
|
-
if (Element.isElement(this.descendant)) {
|
|
157
|
-
return this.memoizedElementContext(prev, next);
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
return this.memoizedTextContext(prev, next);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateDescendantComponent, deps: [{ token: i0.ViewContainerRef }, { token: SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
164
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SlateDescendantComponent, selector: "slate-descendant", inputs: { descendant: "descendant", context: "context", viewContext: "viewContext", index: "index" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
165
|
-
}
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateDescendantComponent, decorators: [{
|
|
167
|
-
type: Component,
|
|
168
|
-
args: [{
|
|
169
|
-
selector: 'slate-descendant',
|
|
170
|
-
template: '',
|
|
171
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
172
|
-
}]
|
|
173
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
174
|
-
type: Inject,
|
|
175
|
-
args: [SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN]
|
|
176
|
-
}] }]; }, propDecorators: { descendant: [{
|
|
177
|
-
type: Input
|
|
178
|
-
}], context: [{
|
|
179
|
-
type: Input
|
|
180
|
-
}], viewContext: [{
|
|
181
|
-
type: Input
|
|
182
|
-
}], index: [{
|
|
183
|
-
type: Input
|
|
184
|
-
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY2VuZGFudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9kZXNjZW5kYW50L2Rlc2NlbmRhbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQU9uRyxNQUFNLE9BQU8sd0JBQ1QsU0FBUSxpQkFBbUc7SUFXM0csSUFBSSxTQUFTO1FBQ1QsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDOUQ7UUFDRCxPQUFPLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNo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MEJRLE1BQU07MkJBQUMscUNBQXFDOzRDQXJCeEMsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2xhdGVCbG9ja0NhcmRDb21wb25lbnQgfSBmcm9tICcuLi9ibG9jay1jYXJkL2Jsb2NrLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdDb250YWluZXJJdGVtIH0gZnJvbSAnLi4vLi4vdmlldy9jb250YWluZXItaXRlbSc7XG5pbXBvcnQgeyBEZXNjZW5kYW50LCBFZGl0b3IsIFJhbmdlLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgU2xhdGVDaGlsZHJlbkNvbnRleHQsIFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlVmlld0NvbnRleHQgfSBmcm9tICcuLi8uLi92aWV3L2NvbnRleHQnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJy4uLy4uL3BsdWdpbnMvYW5ndWxhci1lZGl0b3InO1xuaW1wb3J0IHsgTk9ERV9UT19JTkRFWCwgTk9ERV9UT19QQVJFTlQgfSBmcm9tICcuLi8uLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgQmFzZUVsZW1lbnRDb21wb25lbnQsIEJhc2VUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlldy9iYXNlJztcbmltcG9ydCB7IFNsYXRlRGVmYXVsdFRleHRDb21wb25lbnQgfSBmcm9tICcuLi90ZXh0L2RlZmF1bHQtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVWb2lkVGV4dENvbXBvbmVudCB9IGZyb20gJy4uL3RleHQvdm9pZC10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc0RlY29yYXRvclJhbmdlTGlzdEVxdWFsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSwgVmlld1R5cGUgfSBmcm9tICcuLi8uLi90eXBlcy92aWV3JztcbmltcG9ydCB7IFNsYXRlRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgU0xBVEVfREVGQVVMVF9FTEVNRU5UX0NPTVBPTkVOVF9UT0tFTiB9IGZyb20gJy4uL2VsZW1lbnQvZGVmYXVsdC1lbGVtZW50LmNvbXBvbmVudC50b2tlbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2xhdGUtZGVzY2VuZGFudCcsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNsYXRlRGVzY2VuZGFudENvbXBvbmVudFxuICAgIGV4dGVuZHMgVmlld0NvbnRhaW5lckl0ZW08U2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHQsIEJhc2VFbGVtZW50Q29tcG9uZW50IHwgQmFzZVRleHRDb21wb25lbnQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICAgIEBJbnB1dCgpIGRlc2NlbmRhbnQ6IERlc2NlbmRhbnQ7XG5cbiAgICBASW5wdXQoKSBjb250ZXh0OiBTbGF0ZUNoaWxkcmVuQ29udGV4dDtcblxuICAgIEBJbnB1dCgpIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0O1xuXG4gICAgQElucHV0KCkgaW5kZXg6IG51bWJlcjtcblxuICAgIGdldCByb290Tm9kZXMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ2FyZENvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIFt0aGlzLmJsb2NrQ2FyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5uYXRpdmVFbGVtZW50XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0Um9vdE5vZGVzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzQmxvY2tDYXJkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dC5lZGl0b3IuaXNCbG9ja0NhcmQodGhpcy5kZXNjZW5kYW50KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoU0xBVEVfREVGQVVMVF9FTEVNRU5UX0NPTVBPTkVOVF9UT0tFTilcbiAgICAgICAgcHVibGljIGRlZmF1bHRFbGVtZW50Q29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxCYXNlRWxlbWVudENvbXBvbmVudD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIodmlld0NvbnRhaW5lclJlZik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIE5PREVfVE9fSU5ERVguc2V0KHRoaXMuZGVzY2VuZGFudCwgdGhpcy5pbmRleCk7XG4gICAgICAgIE5PREVfVE9fUEFSRU5ULnNldCh0aGlzLmRlc2NlbmRhbnQsIHRoaXMuY29udGV4dC5wYXJlbnQpO1xuICAgICAgICB0aGlzLmNyZWF0ZVZpZXcoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNCbG9ja0NhcmQpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQmxvY2tDYXJkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXN0cm95VmlldygpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveVZpZXcoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95QmxvY2tDYXJkKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE5PREVfVE9fSU5ERVguc2V0KHRoaXMuZGVzY2VuZGFudCwgdGhpcy5pbmRleCk7XG4gICAgICAgIE5PREVfVE9fUEFSRU5ULnNldCh0aGlzLmRlc2NlbmRhbnQsIHRoaXMuY29udGV4dC5wYXJlbnQpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNCbG9ja0NhcmQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQmxvY2tDYXJkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXN0cm95QmxvY2tDYXJkKCkge1xuICAgICAgICBpZiAodGhpcy5ibG9ja0NhcmRDb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuYmxvY2tDYXJkQ29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuYmxvY2tDYXJkQ29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUJsb2NrQ2FyZCgpIHtcbiAgICAgICAgY29uc3Qgcm9vdE5vZGVzID0gdGhpcy5yb290Tm9kZXM7XG4gICAgICAgIHRoaXMuYmxvY2tDYXJkQ29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxTbGF0ZUJsb2NrQ2FyZENvbXBvbmVudD4oU2xhdGVCbG9ja0NhcmRDb21wb25lbnQpO1xuICAgICAgICB0aGlzLmJsb2NrQ2FyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5pbml0aWFsaXplQ2VudGVyKHJvb3ROb2Rlcyk7XG4gICAgfVxuXG4gICAgdXBkYXRlQmxvY2tDYXJkKCkge1xuICAgICAgICBpZiAodGhpcy5ibG9ja0NhcmRDb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb290Tm9kZXMgPSB0aGlzLnJvb3ROb2RlcztcbiAgICAgICAgdGhpcy5jcmVhdGVCbG9ja0NhcmQoKTtcbiAgICAgICAgY29uc3QgZmlyc3RSb290Tm9kZSA9IHJvb3ROb2Rlc1swXTtcbiAgICAgICAgZmlyc3RSb290Tm9kZS5yZXBsYWNlV2l0aCh0aGlzLmJsb2NrQ2FyZENvbXBvbmVudFJlZi5pbnN0YW5jZS5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXRDb21tb25Db250ZXh0KCk6IHsgc2VsZWN0aW9uOiBSYW5nZTsgZGVjb3JhdGlvbnM6IFJhbmdlW10gfSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMudmlld0NvbnRleHQuZWRpdG9yLCB0aGlzLmNvbnRleHQucGFyZW50KTtcbiAgICAgICAgY29uc3QgcCA9IHBhdGguY29uY2F0KHRoaXMuaW5kZXgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBFZGl0b3IucmFuZ2UodGhpcy52aWV3Q29udGV4dC5lZGl0b3IsIHApO1xuICAgICAgICAgICAgY29uc3Qgc2VsID0gdGhpcy5jb250ZXh0LnNlbGVjdGlvbiAmJiBSYW5nZS5pbnRlcnNlY3Rpb24ocmFuZ2UsIHRoaXMuY29udGV4dC5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgY29uc3QgZHMgPSB0aGlzLmNvbnRleHQuZGVjb3JhdGUoW3RoaXMuZGVzY2VuZGFudCwgcF0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZWMgb2YgdGhpcy5jb250ZXh0LmRlY29yYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IFJhbmdlLmludGVyc2VjdGlvbihkZWMsIHJhbmdlKTtcbiAgICAgICAgICAgICAgICBpZiAoZCkge1xuICAgICAgICAgICAgICAgICAgICBkcy5wdXNoKGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IHNlbGVjdGlvbjogc2VsLCBkZWNvcmF0aW9uczogZHMgfTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHQuZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6IFNsYXRlRXJyb3JDb2RlLkdldFN0YXJ0UG9pbnRFcnJvcixcbiAgICAgICAgICAgICAgICBuYXRpdmVFcnJvcjogZXJyb3JcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHsgc2VsZWN0aW9uOiBudWxsLCBkZWNvcmF0aW9uczogW10gfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbnRleHQoKTogU2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHQge1xuICAgICAgICBpZiAoRWxlbWVudC5pc0VsZW1lbnQodGhpcy5kZXNjZW5kYW50KSkge1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWRDb250ZXh0ID0gdGhpcy5nZXRDb21tb25Db250ZXh0KCk7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBBbmd1bGFyRWRpdG9yLmZpbmRLZXkodGhpcy52aWV3Q29udGV4dC5lZGl0b3IsIHRoaXMuZGVzY2VuZGFudCk7XG4gICAgICAgICAgICBjb25zdCBpc0lubGluZSA9IHRoaXMudmlld0NvbnRleHQuZWRpdG9yLmlzSW5saW5lKHRoaXMuZGVzY2VuZGFudCk7XG4gICAgICAgICAgICBjb25zdCBpc1ZvaWQgPSB0aGlzLnZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQodGhpcy5kZXNjZW5kYW50KTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRDb250ZXh0OiBTbGF0ZUVsZW1lbnRDb250ZXh0ID0ge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMuZGVzY2VuZGFudCxcbiAgICAgICAgICAgICAgICAuLi5jb21wdXRlZENvbnRleHQsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnLFxuICAgICAgICAgICAgICAgICAgICAnZGF0YS1zbGF0ZS1rZXknOiBrZXkuaWRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRlY29yYXRlOiB0aGlzLmNvbnRleHQuZGVjb3JhdGUsXG4gICAgICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMuY29udGV4dC5yZWFkb25seVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChpc0lubGluZSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRDb250ZXh0LmF0dHJpYnV0ZXNbJ2RhdGEtc2xhdGUtaW5saW5lJ10gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzVm9pZCkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRDb250ZXh0LmF0dHJpYnV0ZXNbJ2RhdGEtc2xhdGUtdm9pZCddID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGV4dC5hdHRyaWJ1dGVzLmNvbnRlbnRlZGl0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRDb250ZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWRDb250ZXh0ID0gdGhpcy5nZXRDb21tb25Db250ZXh0KCk7XG4gICAgICAgICAgICBjb25zdCBpc0xlYWZCbG9jayA9IEFuZ3VsYXJFZGl0b3IuaXNMZWFmQmxvY2sodGhpcy52aWV3Q29udGV4dC5lZGl0b3IsIHRoaXMuY29udGV4dC5wYXJlbnQpO1xuICAgICAgICAgICAgY29uc3QgdGV4dENvbnRleHQ6IFNsYXRlVGV4dENvbnRleHQgPSB7XG4gICAgICAgICAgICAgICAgZGVjb3JhdGlvbnM6IGNvbXB1dGVkQ29udGV4dC5kZWNvcmF0aW9ucyxcbiAgICAgICAgICAgICAgICBpc0xhc3Q6IGlzTGVhZkJsb2NrICYmIHRoaXMuaW5kZXggPT09IHRoaXMuY29udGV4dC5wYXJlbnQuY2hpbGRyZW4ubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IHRoaXMuY29udGV4dC5wYXJlbnQgYXMgRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLmRlc2NlbmRhbnRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gdGV4dENvbnRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRWaWV3VHlwZSgpOiBWaWV3VHlwZSB7XG4gICAgICAgIGlmIChFbGVtZW50LmlzRWxlbWVudCh0aGlzLmRlc2NlbmRhbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMudmlld0NvbnRleHQucmVuZGVyRWxlbWVudCAmJiB0aGlzLnZpZXdDb250ZXh0LnJlbmRlckVsZW1lbnQodGhpcy5kZXNjZW5kYW50KSkgfHwgdGhpcy5kZWZhdWx0RWxlbWVudENvbXBvbmVudFR5cGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpc1ZvaWQgPSB0aGlzLnZpZXdDb250ZXh0LmVkaXRvci5pc1ZvaWQodGhpcy5jb250ZXh0LnBhcmVudCBhcyBFbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybiBpc1ZvaWRcbiAgICAgICAgICAgICAgICA/IFNsYXRlVm9pZFRleHRDb21wb25lbnRcbiAgICAgICAgICAgICAgICA6ICh0aGlzLnZpZXdDb250ZXh0LnJlbmRlclRleHQgJiYgdGhpcy52aWV3Q29udGV4dC5yZW5kZXJUZXh0KHRoaXMuZGVzY2VuZGFudCkpIHx8IFNsYXRlRGVmYXVsdFRleHRDb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtZW1vaXplZEVsZW1lbnRDb250ZXh0KHByZXY6IFNsYXRlRWxlbWVudENvbnRleHQsIG5leHQ6IFNsYXRlRWxlbWVudENvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHByZXYuZWxlbWVudCA9PT0gbmV4dC5lbGVtZW50ICYmXG4gICAgICAgICAgICAoIXRoaXMudmlld0NvbnRleHQuaXNTdHJpY3REZWNvcmF0ZSB8fCBwcmV2LmRlY29yYXRlID09PSBuZXh0LmRlY29yYXRlKSAmJlxuICAgICAgICAgICAgcHJldi5yZWFkb25seSA9PT0gbmV4dC5yZWFkb25seSAmJlxuICAgICAgICAgICAgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbChwcmV2LmRlY29yYXRpb25zLCBuZXh0LmRlY29yYXRpb25zKSAmJlxuICAgICAgICAgICAgKHByZXYuc2VsZWN0aW9uID09PSBuZXh0LnNlbGVjdGlvbiB8fCAoISFwcmV2LnNlbGVjdGlvbiAmJiAhIW5leHQuc2VsZWN0aW9uICYmIFJhbmdlLmVxdWFscyhwcmV2LnNlbGVjdGlvbiwgbmV4dC5zZWxlY3Rpb24pKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBtZW1vaXplZFRleHRDb250ZXh0KHByZXY6IFNsYXRlVGV4dENvbnRleHQsIG5leHQ6IFNsYXRlVGV4dENvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG5leHQucGFyZW50ID09PSBwcmV2LnBhcmVudCAmJlxuICAgICAgICAgICAgbmV4dC5pc0xhc3QgPT09IHByZXYuaXNMYXN0ICYmXG4gICAgICAgICAgICBuZXh0LnRleHQgPT09IHByZXYudGV4dCAmJlxuICAgICAgICAgICAgaXNEZWNvcmF0b3JSYW5nZUxpc3RFcXVhbChuZXh0LmRlY29yYXRpb25zLCBwcmV2LmRlY29yYXRpb25zKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG1lbW9pemVkQ29udGV4dChwcmV2OiBTbGF0ZUVsZW1lbnRDb250ZXh0IHwgU2xhdGVUZXh0Q29udGV4dCwgbmV4dDogU2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KHRoaXMuZGVzY2VuZGFudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1lbW9pemVkRWxlbWVudENvbnRleHQocHJldiBhcyBTbGF0ZUVsZW1lbnRDb250ZXh0LCBuZXh0IGFzIFNsYXRlRWxlbWVudENvbnRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVtb2l6ZWRUZXh0Q29udGV4dChwcmV2IGFzIFNsYXRlVGV4dENvbnRleHQsIG5leHQgYXMgU2xhdGVUZXh0Q29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { ViewContainerItem } from '../../view/container-item';
|
|
3
|
-
import { SlateDefaultLeafComponent } from './default-leaf.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class SlateLeafComponent extends ViewContainerItem {
|
|
6
|
-
ngOnInit() {
|
|
7
|
-
this.createView();
|
|
8
|
-
}
|
|
9
|
-
getContext() {
|
|
10
|
-
return this.context;
|
|
11
|
-
}
|
|
12
|
-
getViewType() {
|
|
13
|
-
return (this.viewContext.renderLeaf && this.viewContext.renderLeaf(this.context.leaf)) || SlateDefaultLeafComponent;
|
|
14
|
-
}
|
|
15
|
-
memoizedContext(prev, next) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
ngOnChanges(simpleChanges) {
|
|
19
|
-
if (!this.initialized) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
this.updateView();
|
|
23
|
-
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateLeafComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SlateLeafComponent, selector: "slate-leaf", inputs: { context: "context" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateLeafComponent, decorators: [{
|
|
28
|
-
type: Component,
|
|
29
|
-
args: [{
|
|
30
|
-
selector: 'slate-leaf',
|
|
31
|
-
template: '',
|
|
32
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
33
|
-
}]
|
|
34
|
-
}], propDecorators: { context: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9sZWFmL2xlYWYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFRckUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFzRDtJQUcxRixRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSx5QkFBeUIsQ0FBQztJQUN4SCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQXNCLEVBQUUsSUFBc0I7UUFDMUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVcsQ0FBQyxhQUE0QjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0F4QlEsa0JBQWtCO2tHQUFsQixrQkFBa0IsOEhBSGpCLEVBQUU7OzJGQUdILGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzhCQUVZLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld0NvbnRhaW5lckl0ZW0gfSBmcm9tICcuLi8uLi92aWV3L2NvbnRhaW5lci1pdGVtJztcbmltcG9ydCB7IFNsYXRlTGVhZkNvbnRleHQgfSBmcm9tICcuLi8uLi92aWV3L2NvbnRleHQnO1xuaW1wb3J0IHsgQmFzZUxlYWZDb21wb25lbnQgfSBmcm9tICcuLi8uLi92aWV3L2Jhc2UnO1xuaW1wb3J0IHsgU2xhdGVEZWZhdWx0TGVhZkNvbXBvbmVudCB9IGZyb20gJy4vZGVmYXVsdC1sZWFmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL3ZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NsYXRlLWxlYWYnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTbGF0ZUxlYWZDb21wb25lbnQgZXh0ZW5kcyBWaWV3Q29udGFpbmVySXRlbTxTbGF0ZUxlYWZDb250ZXh0LCBCYXNlTGVhZkNvbXBvbmVudD4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgY29udGV4dDogU2xhdGVMZWFmQ29udGV4dDtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNyZWF0ZVZpZXcoKTtcbiAgICB9XG5cbiAgICBnZXRDb250ZXh0KCk6IFNsYXRlTGVhZkNvbnRleHQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICAgIH1cblxuICAgIGdldFZpZXdUeXBlKCk6IFZpZXdUeXBlIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZpZXdDb250ZXh0LnJlbmRlckxlYWYgJiYgdGhpcy52aWV3Q29udGV4dC5yZW5kZXJMZWFmKHRoaXMuY29udGV4dC5sZWFmKSkgfHwgU2xhdGVEZWZhdWx0TGVhZkNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBtZW1vaXplZENvbnRleHQocHJldjogU2xhdGVMZWFmQ29udGV4dCwgbmV4dDogU2xhdGVMZWFmQ29udGV4dCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcbiAgICB9XG59XG4iXX0=
|