slate-angular 16.1.0-next.2 → 16.1.0-next.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/components/children/children-outlet.component.d.ts +9 -0
  2. package/components/editable/editable.component.d.ts +1 -1
  3. package/components/string/default-string.component.d.ts +1 -1
  4. package/components/text/void-text.component.d.ts +0 -1
  5. package/esm2022/components/block-card/block-card.component.mjs +2 -2
  6. package/esm2022/components/children/children-outlet.component.mjs +22 -0
  7. package/esm2022/components/children/children.component.mjs +2 -4
  8. package/esm2022/components/editable/editable.component.mjs +36 -20
  9. package/esm2022/components/leaf/token.mjs +1 -1
  10. package/esm2022/components/string/default-string.component.mjs +1 -1
  11. package/esm2022/components/string/string.component.mjs +1 -1
  12. package/esm2022/components/text/token.mjs +1 -1
  13. package/esm2022/components/text/void-text.component.mjs +2 -6
  14. package/esm2022/module.mjs +7 -16
  15. package/esm2022/plugins/angular-editor.mjs +61 -17
  16. package/esm2022/plugins/with-angular.mjs +5 -4
  17. package/esm2022/public-api.mjs +3 -2
  18. package/esm2022/utils/constants.mjs +2 -0
  19. package/esm2022/utils/index.mjs +2 -1
  20. package/esm2022/utils/throttle.mjs +1 -1
  21. package/esm2022/view/base.mjs +59 -22
  22. package/esm2022/view/container.mjs +1 -1
  23. package/esm2022/view/context-change.mjs +13 -0
  24. package/esm2022/view/context.mjs +1 -1
  25. package/esm2022/view/render/leaves-render.mjs +8 -6
  26. package/esm2022/view/render/list-render.mjs +57 -15
  27. package/esm2022/view/render/utils.mjs +25 -14
  28. package/fesm2022/slate-angular.mjs +294 -111
  29. package/fesm2022/slate-angular.mjs.map +1 -1
  30. package/module.d.ts +2 -1
  31. package/package.json +7 -7
  32. package/plugins/angular-editor.d.ts +17 -6
  33. package/public-api.d.ts +2 -1
  34. package/utils/constants.d.ts +1 -0
  35. package/utils/index.d.ts +1 -0
  36. package/view/base.d.ts +11 -7
  37. package/view/{before-context-change.d.ts → context-change.d.ts} +4 -0
  38. package/view/context.d.ts +2 -3
  39. package/view/render/leaves-render.d.ts +2 -1
  40. package/view/render/list-render.d.ts +7 -3
  41. package/view/render/utils.d.ts +3 -3
  42. package/esm2022/view/before-context-change.mjs +0 -7
package/module.d.ts CHANGED
@@ -12,8 +12,9 @@ import * as i10 from "./components/block-card/block-card.component";
12
12
  import * as i11 from "./components/leaves/leaves.component";
13
13
  import * as i12 from "./components/leaf/default-leaf.component";
14
14
  import * as i13 from "./components/string/default-string.component";
15
+ import * as i14 from "./components/children/children-outlet.component";
15
16
  export declare class SlateModule {
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<SlateModule, never>;
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]>;
18
+ 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 i14.SlateChildrenOutlet], [typeof i2.SlateEditable, typeof i9.SlateChildren, typeof i14.SlateChildrenOutlet, typeof i4.SlateElement, typeof i11.SlateLeaves, typeof i7.SlateString, typeof i13.SlateDefaultString]>;
18
19
  static ɵinj: i0.ɵɵInjectorDeclaration<SlateModule>;
19
20
  }
package/package.json CHANGED
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "slate-angular",
3
- "version": "16.1.0-next.2",
3
+ "version": "16.1.0-next.20",
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",
7
7
  "license": "MIT",
8
8
  "peerDependencies": {
9
- "slate": ">= 0.63.0",
10
- "slate-history": "^0.66.0",
9
+ "slate": ">= 0.101.5",
10
+ "slate-history": "^0.100.0",
11
11
  "debug": "^4.1.1",
12
12
  "direction": "^2.0.1",
13
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",
17
+ "slate": "^0.101.5",
18
+ "slate-history": "^0.100.0",
19
19
  "direction": "^2.0.1",
20
20
  "is-hotkey": "^0.2.0",
21
- "scroll-into-view-if-needed": "^2.2.20",
22
- "tslib": "^2.5.0"
21
+ "scroll-into-view-if-needed": "^3.1.0",
22
+ "tslib": "^2.6.2"
23
23
  },
24
24
  "exports": {
25
25
  ".": {
@@ -1,4 +1,4 @@
1
- import { Node, Path, Point, Range, BaseEditor } from 'slate';
1
+ import { Node, Path, Point, Range, Element, BaseEditor } from 'slate';
2
2
  import { DOMElement, DOMNode, DOMPoint, DOMRange, DOMSelection, DOMStaticRange } from '../utils/dom';
3
3
  import { Injector } from '@angular/core';
4
4
  import { NodeEntry } from 'slate';
@@ -17,6 +17,7 @@ export interface AngularEditor extends BaseEditor {
17
17
  onClick: (event: MouseEvent) => void;
18
18
  injector: Injector;
19
19
  isBlockCard: (node: Node) => boolean;
20
+ isExpanded: (node: Element) => boolean;
20
21
  onError: (errorData: SlateError) => void;
21
22
  hasRange: (editor: AngularEditor, range: Range) => boolean;
22
23
  }
@@ -112,27 +113,37 @@ export declare const AngularEditor: {
112
113
  /**
113
114
  * Find a Slate node from a native DOM `element`.
114
115
  */
115
- toSlateNode(editor: AngularEditor, domNode: DOMNode): Node;
116
+ toSlateNode<T extends boolean>(editor: AngularEditor, domNode: DOMNode, options?: {
117
+ suppressThrow: T;
118
+ }): T extends true ? Node : Node;
116
119
  /**
117
120
  * Get the target range from a DOM `event`.
118
121
  */
119
122
  findEventRange(editor: AngularEditor, event: any): Range;
120
- isLeafInEditor(editor: AngularEditor, leafNode: DOMElement): boolean;
123
+ isLeafInEditor(editor: AngularEditor, leafNode: DOMElement, options: {
124
+ suppressThrow: boolean;
125
+ }): boolean;
121
126
  /**
122
127
  * Find a Slate point from a DOM selection's `domNode` and `domOffset`.
123
128
  */
124
- toSlatePoint(editor: AngularEditor, domPoint: DOMPoint): Point;
129
+ toSlatePoint<T_1 extends boolean>(editor: AngularEditor, domPoint: DOMPoint, options: {
130
+ exactMatch?: boolean;
131
+ suppressThrow: T_1;
132
+ }): T_1 extends true ? import("slate").BasePoint : import("slate").BasePoint;
125
133
  /**
126
134
  * Find a Slate range from a DOM range or selection.
127
135
  */
128
- toSlateRange(editor: AngularEditor, domRange: DOMRange | DOMStaticRange | DOMSelection): Range;
136
+ toSlateRange<T_2 extends boolean>(editor: AngularEditor, domRange: DOMRange | DOMStaticRange | DOMSelection, options?: {
137
+ exactMatch?: boolean;
138
+ suppressThrow: T_2;
139
+ }): T_2 extends true ? import("slate").BaseRange : import("slate").BaseRange;
129
140
  isLeafBlock(editor: AngularEditor, node: Node): boolean;
130
141
  isBlockCardLeftCursor(editor: AngularEditor): boolean;
131
142
  isBlockCardRightCursor(editor: AngularEditor): boolean;
132
143
  getCardCursorNode(editor: AngularEditor, blockCardNode: Node, options: {
133
144
  direction: 'left' | 'right' | 'center';
134
145
  }): ChildNode;
135
- toSlateCardEntry(editor: AngularEditor, node: DOMNode): NodeEntry<Node>;
146
+ toSlateCardEntry(editor: AngularEditor, node: DOMNode): NodeEntry;
136
147
  /**
137
148
  * move native selection to card-left or card-right
138
149
  * @param editor
package/public-api.d.ts CHANGED
@@ -5,11 +5,12 @@ export * from './components/element/element.component';
5
5
  export * from './components/string/string.component';
6
6
  export * from './components/string/default-string.component';
7
7
  export * from './components/children/children.component';
8
+ export * from './components/children/children-outlet.component';
8
9
  export * from './components/leaves/leaves.component';
9
10
  export * from './module';
10
11
  export * from './types/error';
11
12
  export * from './view/base';
12
13
  export * from './view/context';
13
- export * from './view/before-context-change';
14
+ export * from './view/context-change';
14
15
  export * from './utils';
15
16
  export * from './types';
@@ -0,0 +1 @@
1
+ export declare const TRIPLE_CLICK = 3;
package/utils/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export * from './key';
7
7
  export * from './range-list';
8
8
  export * from './block-card';
9
9
  export * from './global-normalize';
10
+ export * from './throttle';
package/view/base.d.ts CHANGED
@@ -1,10 +1,11 @@
1
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, Path, Range, Text } from 'slate';
4
+ import { Descendant, Element, Range, Text } from 'slate';
5
5
  import { SlateChildrenContext } from './context';
6
6
  import { ListRender } from './render/list-render';
7
7
  import { LeavesRender } from './render/leaves-render';
8
+ import { SlateChildrenOutlet } from '../components/children/children-outlet.component';
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * base class for template
@@ -19,6 +20,7 @@ export interface BaseEmbeddedView<T, K extends AngularEditor = AngularEditor> {
19
20
  export declare abstract class BaseComponent<T = SlateTextContext | SlateLeafContext | SlateElementContext, K extends AngularEditor = AngularEditor> {
20
21
  elementRef: ElementRef;
21
22
  cdr: ChangeDetectorRef;
23
+ initialized: boolean;
22
24
  protected _context: T;
23
25
  set context(value: T);
24
26
  get context(): T;
@@ -34,7 +36,6 @@ export declare abstract class BaseComponent<T = SlateTextContext | SlateLeafCont
34
36
  * base class for custom leaf component
35
37
  */
36
38
  export declare class BaseLeafComponent extends BaseComponent<SlateLeafContext> implements OnInit {
37
- initialized: boolean;
38
39
  placeholderElement: HTMLSpanElement;
39
40
  isSlateLeaf: boolean;
40
41
  get text(): Text;
@@ -53,22 +54,24 @@ export declare class BaseLeafComponent extends BaseComponent<SlateLeafContext> i
53
54
  */
54
55
  export declare class BaseElementComponent<T extends Element = Element, K extends AngularEditor = AngularEditor> extends BaseComponent<SlateElementContext<T>, K> implements OnInit, OnDestroy {
55
56
  viewContainerRef: ViewContainerRef;
56
- initialized: boolean;
57
57
  childrenContext: SlateChildrenContext;
58
+ childrenOutletInstance?: SlateChildrenOutlet;
58
59
  get element(): T;
59
60
  get selection(): Range;
60
- get path(): Path;
61
61
  get decorations(): Range[];
62
62
  get children(): Descendant[];
63
63
  get isCollapsed(): boolean;
64
64
  get isCollapsedAndNonReadonly(): boolean;
65
65
  get readonly(): boolean;
66
- getOutletElement: () => any;
66
+ getOutletParent: () => any;
67
+ getOutletElement: () => HTMLElement;
67
68
  listRender: ListRender;
68
69
  ngOnInit(): void;
70
+ afterViewInit(): void;
69
71
  updateWeakMap(): void;
70
72
  ngOnDestroy(): void;
71
73
  onContextChange(): void;
74
+ updateChildrenView(): void;
72
75
  getChildrenContext(): SlateChildrenContext;
73
76
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseElementComponent<any, any>, never>;
74
77
  static ɵdir: i0.ɵɵDirectiveDeclaration<BaseElementComponent<any, any>, never, never, {}, {}, never, never, false, never>;
@@ -77,11 +80,12 @@ export declare class BaseElementComponent<T extends Element = Element, K extends
77
80
  * base class for custom text component
78
81
  */
79
82
  export declare class BaseTextComponent<T extends Text = Text> extends BaseComponent<SlateTextContext<T>> implements OnInit, OnDestroy {
80
- initialized: boolean;
81
83
  viewContainerRef: ViewContainerRef;
82
84
  get text(): T;
83
85
  leavesRender: LeavesRender;
84
- getOutletElement: () => any;
86
+ childrenOutletInstance?: SlateChildrenOutlet;
87
+ getOutletParent: () => any;
88
+ getOutletElement: () => HTMLElement;
85
89
  ngOnInit(): void;
86
90
  updateWeakMap(): void;
87
91
  ngOnDestroy(): void;
@@ -1,4 +1,8 @@
1
1
  export interface BeforeContextChange<T> {
2
2
  beforeContextChange: (value: T) => void;
3
3
  }
4
+ export interface AfterContextChange {
5
+ afterContextChange: () => void;
6
+ }
4
7
  export declare function hasBeforeContextChange<T>(value: any): value is BeforeContextChange<T>;
8
+ export declare function hasAfterContextChange<T>(value: any): value is AfterContextChange;
package/view/context.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { NodeEntry, Range, Element, Ancestor, Text, Path } from 'slate';
1
+ import { NodeEntry, Range, Element, Ancestor, Text } from 'slate';
2
2
  import { SlateStringTemplate } from '../components/string/template.component';
3
3
  import { AngularEditor } from '../plugins/angular-editor';
4
4
  import { ComponentType, ViewType } from '../types/view';
@@ -26,9 +26,9 @@ export interface SlateChildrenContext {
26
26
  export interface SlateElementContext<T extends Element = Element> {
27
27
  element: T;
28
28
  selection: Range | null;
29
- path: Path;
30
29
  decorations: Range[];
31
30
  attributes: SlateElementAttributes;
31
+ contentEditable?: boolean;
32
32
  decorate: (entry: NodeEntry) => Range[];
33
33
  readonly: boolean;
34
34
  }
@@ -49,7 +49,6 @@ export interface SlateElementAttributes {
49
49
  'data-slate-node': 'element';
50
50
  'data-slate-void'?: boolean;
51
51
  'data-slate-inline'?: boolean;
52
- contenteditable?: boolean;
53
52
  'data-slate-key'?: string;
54
53
  dir?: 'rtl';
55
54
  }
@@ -4,13 +4,14 @@ import { SlateLeafContext, SlateTextContext, SlateViewContext } from '../context
4
4
  export declare class LeavesRender {
5
5
  private viewContext;
6
6
  private viewContainerRef;
7
+ private getOutletParent;
7
8
  private getOutletElement;
8
9
  private leaves;
9
10
  private views;
10
11
  private contexts;
11
12
  private viewTypes;
12
13
  private differ;
13
- constructor(viewContext: SlateViewContext, viewContainerRef: ViewContainerRef, getOutletElement: () => HTMLElement);
14
+ constructor(viewContext: SlateViewContext, viewContainerRef: ViewContainerRef, getOutletParent: () => HTMLElement, getOutletElement: () => HTMLElement);
14
15
  initialize(context: SlateTextContext): void;
15
16
  update(context: SlateTextContext): void;
16
17
  private getLeaves;
@@ -6,17 +6,21 @@ import { SlateBlockCard } from '../../components/block-card/block-card.component
6
6
  export declare class ListRender {
7
7
  private viewContext;
8
8
  private viewContainerRef;
9
+ private getOutletParent;
9
10
  private getOutletElement;
10
11
  private children;
11
12
  private views;
13
+ private addedViews;
12
14
  private blockCards;
13
15
  private contexts;
14
16
  private viewTypes;
15
17
  private differ;
16
18
  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;
19
+ constructor(viewContext: SlateViewContext, viewContainerRef: ViewContainerRef, getOutletParent: () => HTMLElement, getOutletElement: () => HTMLElement | null);
20
+ initialize(children: Descendant[], parent: Ancestor, childrenContext: SlateChildrenContext): void;
21
+ update(children: Descendant[], parent: Ancestor, childrenContext: SlateChildrenContext): void;
22
+ afterViewInit(): void;
23
+ destroy(): void;
20
24
  }
21
25
  export declare function getContext(index: number, item: Descendant, parentPath: Path, childrenContext: SlateChildrenContext, viewContext: SlateViewContext): SlateElementContext | SlateTextContext;
22
26
  export declare function getCommonContext(index: number, item: Descendant, parentPath: Path, viewContext: SlateViewContext, childrenContext: SlateChildrenContext): {
@@ -4,8 +4,8 @@ import { ViewType } from '../../types/view';
4
4
  import { SlateElementContext, SlateLeafContext, SlateTextContext, SlateViewContext } from '../context';
5
5
  import { SlateBlockCard } from '../../components/block-card/block-card.component';
6
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;
7
+ export declare function executeAfterViewInit(view: EmbeddedViewRef<any> | ComponentRef<any>): void;
8
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;
9
+ export declare function mount(views: (EmbeddedViewRef<any> | ComponentRef<any>)[], blockCards: (ComponentRef<SlateBlockCard> | null)[] | null, outletParent: HTMLElement, outletElement: HTMLElement | null): void;
10
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;
11
+ export declare function mountOnItemChange(index: number, item: Descendant, views: (EmbeddedViewRef<any> | ComponentRef<any>)[], blockCards: (ComponentRef<SlateBlockCard> | null)[] | null, outletParent: HTMLElement, firstRootNode: HTMLElement | null, viewContext: SlateViewContext): void;
@@ -1,7 +0,0 @@
1
- export function hasBeforeContextChange(value) {
2
- if (value.beforeContextChange) {
3
- return true;
4
- }
5
- return false;
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWNvbnRleHQtY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3ZpZXcvYmVmb3JlLWNvbnRleHQtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxzQkFBc0IsQ0FBSSxLQUFLO0lBQzNDLElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+IHtcbiAgICBiZWZvcmVDb250ZXh0Q2hhbmdlOiAodmFsdWU6IFQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+KHZhbHVlKTogdmFsdWUgaXMgQmVmb3JlQ29udGV4dENoYW5nZTxUPiB7XG4gICAgaWYgKHZhbHVlLmJlZm9yZUNvbnRleHRDaGFuZ2UpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==