@worktile/theia 17.0.1 → 17.1.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.
Files changed (107) hide show
  1. package/components/contextmenu/contextmenu.component.d.ts +3 -2
  2. package/esm2022/components/contextmenu/contextmenu.component.mjs +6 -5
  3. package/esm2022/components/element/element.component.mjs +4 -6
  4. package/esm2022/components/text/text.component.mjs +3 -3
  5. package/esm2022/components/toolbar/toolbar.component.mjs +1 -4
  6. package/esm2022/core/with-theia.mjs +2 -1
  7. package/esm2022/editor.component.mjs +8 -23
  8. package/esm2022/interfaces/editor.mjs +1 -1
  9. package/esm2022/plugins/align/align.plugin.mjs +3 -3
  10. package/esm2022/plugins/autoformat/autoformat.plugin.mjs +3 -3
  11. package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +3 -3
  12. package/esm2022/plugins/blockquote/blockquote.component.mjs +4 -6
  13. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +4 -4
  14. package/esm2022/plugins/code/code.component.mjs +11 -10
  15. package/esm2022/plugins/code/code.editor.mjs +3 -3
  16. package/esm2022/plugins/common/block-card.plugin.mjs +41 -8
  17. package/esm2022/plugins/common/move-selection.plugin.mjs +6 -4
  18. package/esm2022/plugins/common/remove-empty.plugin.mjs +9 -8
  19. package/esm2022/plugins/common/remove-void.plugin.mjs +7 -4
  20. package/esm2022/plugins/hr/hr.component.mjs +6 -6
  21. package/esm2022/plugins/image/image.component.mjs +10 -10
  22. package/esm2022/plugins/image/image.plugin.mjs +19 -2
  23. package/esm2022/plugins/index.mjs +1 -3
  24. package/esm2022/plugins/inline-code/inline-code.component.mjs +6 -6
  25. package/esm2022/plugins/link/link.component.mjs +17 -14
  26. package/esm2022/plugins/list/components/bulleted-list.component.mjs +4 -6
  27. package/esm2022/plugins/list/components/list-item.component.mjs +4 -6
  28. package/esm2022/plugins/list/components/numbered-list.component.mjs +4 -6
  29. package/esm2022/plugins/list/list.editor.mjs +5 -3
  30. package/esm2022/plugins/list/list.plugin.mjs +4 -4
  31. package/esm2022/plugins/normalizers/insert-paragraph-nodes.mjs +1 -1
  32. package/esm2022/plugins/normalizers/trailing-node.plugin.mjs +3 -3
  33. package/esm2022/plugins/soft-break/soft-break.plugin.mjs +1 -1
  34. package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +9 -8
  35. package/esm2022/plugins/table/components/row/row.component.mjs +52 -30
  36. package/esm2022/plugins/table/components/table.component.mjs +320 -297
  37. package/esm2022/plugins/table/components/td/td.component.mjs +46 -46
  38. package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +3 -4
  39. package/esm2022/plugins/table/table.editor.mjs +17 -13
  40. package/esm2022/plugins/table/table.pipe.mjs +32 -19
  41. package/esm2022/plugins/table/table.plugin.mjs +5 -5
  42. package/esm2022/plugins/table/table.service.mjs +10 -35
  43. package/esm2022/plugins/table/table.store.mjs +28 -27
  44. package/esm2022/plugins/table/table.types.mjs +2 -1
  45. package/esm2022/plugins/table/utils/calculate-table.mjs +17 -10
  46. package/esm2022/plugins/table/utils/cell-position.mjs +1 -4
  47. package/esm2022/plugins/table/utils/get-grid-columns.mjs +11 -54
  48. package/esm2022/plugins/table/utils/is-header-row.mjs +3 -2
  49. package/esm2022/plugins/table/utils/is-legal-table.mjs +11 -1
  50. package/esm2022/plugins/table/utils/merge-cell.mjs +21 -19
  51. package/esm2022/plugins/table/utils/remove-row-column.mjs +3 -4
  52. package/esm2022/plugins/table/utils/table-position.mjs +11 -1
  53. package/esm2022/plugins/todo-item/todo-item.component.mjs +17 -15
  54. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +1 -2
  55. package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +2 -2
  56. package/esm2022/queries/anchor-block-entry.mjs +3 -3
  57. package/esm2022/queries/anchor-inline-entry.mjs +3 -3
  58. package/esm2022/queries/find-descendant.mjs +3 -3
  59. package/esm2022/queries/find-node.mjs +3 -3
  60. package/esm2022/queries/get-anchor-block-entry.mjs +3 -3
  61. package/esm2022/queries/get-block-above.mjs +3 -3
  62. package/esm2022/queries/get-insert-elements-path.mjs +5 -3
  63. package/esm2022/queries/index.mjs +4 -2
  64. package/esm2022/queries/is-root-path.mjs +2 -0
  65. package/esm2022/services/context.service.mjs +10 -6
  66. package/esm2022/services/table-contextmenu.service.mjs +8 -1
  67. package/esm2022/transforms/handle-continual-insert-break.mjs +3 -3
  68. package/esm2022/transforms/move-children.mjs +3 -3
  69. package/esm2022/utils/fragment.mjs +11 -3
  70. package/esm2022/utils/insert-data-by-invalid-type.mjs +14 -6
  71. package/esm2022/utils/match.mjs +3 -3
  72. package/fesm2022/worktile-theia.mjs +844 -761
  73. package/fesm2022/worktile-theia.mjs.map +1 -1
  74. package/interfaces/editor.d.ts +16 -5
  75. package/package.json +3 -3
  76. package/plugins/code/code.component.d.ts +2 -3
  77. package/plugins/image/image.component.d.ts +3 -4
  78. package/plugins/image/image.component.scss +2 -2
  79. package/plugins/link/link.component.d.ts +4 -3
  80. package/plugins/normalizers/insert-paragraph-nodes.d.ts +1 -2
  81. package/plugins/normalizers/trailing-node.plugin.d.ts +1 -2
  82. package/plugins/soft-break/soft-break.plugin.d.ts +1 -2
  83. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +1 -0
  84. package/plugins/table/components/row/row.component.d.ts +11 -6
  85. package/plugins/table/components/table.component.d.ts +28 -15
  86. package/plugins/table/components/table.component.scss +37 -24
  87. package/plugins/table/components/td/td.component.d.ts +4 -7
  88. package/plugins/table/table.editor.d.ts +2 -2
  89. package/plugins/table/table.pipe.d.ts +8 -3
  90. package/plugins/table/table.service.d.ts +0 -2
  91. package/plugins/table/table.store.d.ts +10 -11
  92. package/plugins/table/table.types.d.ts +1 -0
  93. package/plugins/table/utils/calculate-table.d.ts +1 -0
  94. package/plugins/table/utils/get-grid-columns.d.ts +3 -22
  95. package/plugins/table/utils/is-header-row.d.ts +1 -1
  96. package/plugins/table/utils/is-legal-table.d.ts +2 -0
  97. package/plugins/table/utils/table-position.d.ts +3 -1
  98. package/plugins/todo-item/todo-item.component.d.ts +3 -3
  99. package/plugins/vertical-align/toolbar-item.component.d.ts +0 -1
  100. package/plugins/vertical-align/vertical-align.scss +11 -0
  101. package/queries/index.d.ts +2 -1
  102. package/queries/is-range-across-blocks.d.ts +1 -1
  103. package/queries/is-root-path.d.ts +2 -0
  104. package/transforms/index.d.ts +1 -1
  105. package/utils/insert-data-by-invalid-type.d.ts +2 -1
  106. package/esm2022/plugins/common/transforms.plugin.mjs +0 -18
  107. package/plugins/common/transforms.plugin.d.ts +0 -8
@@ -19,6 +19,7 @@ export interface TheEditor extends AngularEditor, HistoryEditor {
19
19
  nestedStructureByKey: NestedStructureByKey;
20
20
  extraElementOptions: ElementOptionsInfo[];
21
21
  globalMousedown: (event: MouseEvent) => void;
22
+ mousedown: (event: MouseEvent) => void;
22
23
  renderElement: (element: Element) => ViewType;
23
24
  renderLeaf: (text: Text) => ViewType;
24
25
  isContainer: (element: Element) => boolean;
@@ -49,16 +50,26 @@ export declare const TheEditor: {
49
50
  toDOMNode(editor: AngularEditor, node: Node): HTMLElement;
50
51
  toDOMPoint(editor: AngularEditor, point: import("slate").BasePoint): import("slate-angular").DOMPoint;
51
52
  toDOMRange(editor: AngularEditor, range: import("slate").BaseRange): globalThis.Range;
52
- toSlateNode(editor: AngularEditor, domNode: globalThis.Node): Node;
53
+ toSlateNode<T extends boolean>(editor: AngularEditor, domNode: globalThis.Node, options?: {
54
+ suppressThrow: T;
55
+ }): T extends true ? Node : Node;
53
56
  findEventRange(editor: AngularEditor, event: any): import("slate").BaseRange;
54
- isLeafInEditor(editor: AngularEditor, leafNode: globalThis.Element): boolean;
55
- toSlatePoint(editor: AngularEditor, domPoint: import("slate-angular").DOMPoint): import("slate").BasePoint;
56
- toSlateRange(editor: AngularEditor, domRange: Selection | globalThis.Range | StaticRange): import("slate").BaseRange;
57
+ isLeafInEditor(editor: AngularEditor, leafNode: globalThis.Element, options: {
58
+ suppressThrow: boolean;
59
+ }): boolean;
60
+ toSlatePoint<T_1 extends boolean>(editor: AngularEditor, domPoint: import("slate-angular").DOMPoint, options: {
61
+ exactMatch?: boolean;
62
+ suppressThrow: T_1;
63
+ }): T_1 extends true ? import("slate").BasePoint : import("slate").BasePoint;
64
+ toSlateRange<T_2 extends boolean>(editor: AngularEditor, domRange: globalThis.Range | StaticRange | Selection, options?: {
65
+ exactMatch?: boolean;
66
+ suppressThrow: T_2;
67
+ }): T_2 extends true ? import("slate").BaseRange : import("slate").BaseRange;
57
68
  isLeafBlock(editor: AngularEditor, node: Node): boolean;
58
69
  isBlockCardLeftCursor(editor: AngularEditor): boolean;
59
70
  isBlockCardRightCursor(editor: AngularEditor): boolean;
60
71
  getCardCursorNode(editor: AngularEditor, blockCardNode: Node, options: {
61
- direction: "left" | "right" | "center";
72
+ direction: "center" | "left" | "right";
62
73
  }): ChildNode;
63
74
  toSlateCardEntry(editor: AngularEditor, node: globalThis.Node): NodeEntry;
64
75
  moveBlockCard(editor: AngularEditor, blockCardNode: Node, options: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@worktile/theia",
3
- "version": "17.0.1",
3
+ "version": "17.1.0",
4
4
  "description": "theia editor",
5
5
  "author": "YanDong <nanianqiumo@foxmail.com>",
6
6
  "homepage": "https://github.com/atinc/theia#readme",
@@ -38,8 +38,8 @@
38
38
  "peerDependencies": {
39
39
  "@angular/core": "^17.2.4",
40
40
  "date-fns": ">= 2.6.0",
41
- "slate-angular": "17.0.0",
42
- "slate": ">= 0.72.8",
41
+ "slate-angular": "17.1.0",
42
+ "slate": ">= 0.101.5",
43
43
  "ngx-tethys": "^17.0.0",
44
44
  "ng-codemirror": "^17.0.0",
45
45
  "lodash": "3.10.1",
@@ -1,5 +1,5 @@
1
1
  import { Overlay } from '@angular/cdk/overlay';
2
- import { AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit, TemplateRef } from '@angular/core';
3
3
  import { CodeMirrorComponent } from 'ng-codemirror';
4
4
  import { ThyNotifyService } from 'ngx-tethys/notify';
5
5
  import { ThyPopover, ThyPopoverRef } from 'ngx-tethys/popover';
@@ -19,7 +19,6 @@ export declare class TheCode extends TheBaseElement<CodeElement, Editor> impleme
19
19
  private contextService;
20
20
  private ngZone;
21
21
  private thyPopover;
22
- private viewContainerRef;
23
22
  private overlay;
24
23
  startRenderCodemirror: boolean;
25
24
  dropdownMode: typeof DropdownMode;
@@ -48,7 +47,7 @@ export declare class TheCode extends TheBaseElement<CodeElement, Editor> impleme
48
47
  toolbarDropdown: TheToolbarDropdown;
49
48
  get code(): string;
50
49
  get isToolbarOpen(): boolean;
51
- constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, thyNotifyService: ThyNotifyService, contextService: TheContextService, ngZone: NgZone, thyPopover: ThyPopover, viewContainerRef: ViewContainerRef, overlay: Overlay);
50
+ constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, thyNotifyService: ThyNotifyService, contextService: TheContextService, ngZone: NgZone, thyPopover: ThyPopover, overlay: Overlay);
52
51
  onContextChange(): void;
53
52
  ngOnInit(): void;
54
53
  ngAfterViewInit(): void;
@@ -1,5 +1,5 @@
1
1
  import { Overlay } from '@angular/cdk/overlay';
2
- import { AfterViewInit, ChangeDetectorRef, DestroyRef, ElementRef, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { AfterViewInit, ChangeDetectorRef, DestroyRef, ElementRef, OnDestroy, OnInit, TemplateRef } from '@angular/core';
3
3
  import { ThyImageDirective, ThyImageGroup } from 'ngx-tethys/image';
4
4
  import { ThyPopover } from 'ngx-tethys/popover';
5
5
  import { Editor } from 'slate';
@@ -12,12 +12,11 @@ import * as i0 from "@angular/core";
12
12
  export declare class TheImage extends TheBaseElement<ImageElement, Editor> implements OnInit, OnDestroy, AfterViewInit, BeforeContextChange<SlateElementContext> {
13
13
  elementRef: ElementRef;
14
14
  cdr: ChangeDetectorRef;
15
- imageGroupComponent: ThyImageGroup;
15
+ imageGroup: ThyImageGroup;
16
16
  private imageUploaderService;
17
17
  private theContextService;
18
18
  private thyPopover;
19
19
  private overlay;
20
- private viewContainerRef;
21
20
  private destroyRef;
22
21
  naturalWidth: number;
23
22
  naturalHeight: number;
@@ -43,7 +42,7 @@ export declare class TheImage extends TheBaseElement<ImageElement, Editor> imple
43
42
  img: ElementRef;
44
43
  layoutToolbar: TemplateRef<any>;
45
44
  imageDirective: ThyImageDirective;
46
- constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, imageGroupComponent: ThyImageGroup, imageUploaderService: TheImageUploaderService, theContextService: TheContextService, thyPopover: ThyPopover, overlay: Overlay, viewContainerRef: ViewContainerRef, destroyRef: DestroyRef);
45
+ constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, imageGroup: ThyImageGroup, imageUploaderService: TheImageUploaderService, theContextService: TheContextService, thyPopover: ThyPopover, overlay: Overlay, destroyRef: DestroyRef);
47
46
  beforeContextChange: (value: SlateElementContext<ImageElement>) => void;
48
47
  ngOnInit(): void;
49
48
  ngAfterViewInit(): void;
@@ -3,7 +3,7 @@
3
3
  .slate-element-image {
4
4
  display: block;
5
5
 
6
- .image-container {
6
+ .the-image-container {
7
7
  .image-content {
8
8
  position: relative;
9
9
  display: inline-block;
@@ -206,7 +206,7 @@
206
206
  }
207
207
  }
208
208
 
209
- .image-container:hover .layer {
209
+ .the-image-container:hover .layer {
210
210
  display: block;
211
211
 
212
212
  &.readonly {
@@ -1,5 +1,5 @@
1
1
  import { Overlay } from '@angular/cdk/overlay';
2
- import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
2
+ import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
3
3
  import { ThyPopover, ThyPopoverRef } from 'ngx-tethys/popover';
4
4
  import { Editor } from 'slate';
5
5
  import { SlateElementContext } from 'slate-angular';
@@ -12,12 +12,11 @@ export declare class TheBaseLink extends TheBaseElement<LinkElement, Editor> imp
12
12
  cdr: ChangeDetectorRef;
13
13
  private thyPopover;
14
14
  private overlay;
15
- private viewContainerRef;
16
15
  thyPopoverHoverRef: ThyPopoverRef<any>;
17
16
  thyPopoverEditRef: ThyPopoverRef<any>;
18
17
  get linkHoverOpened(): boolean;
19
18
  get linkEditOpened(): boolean;
20
- constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, thyPopover: ThyPopover, overlay: Overlay, viewContainerRef: ViewContainerRef);
19
+ constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, thyPopover: ThyPopover, overlay: Overlay);
21
20
  ngOnInit(): void;
22
21
  closeHoverPopover(): void;
23
22
  beforeContextChange: (value: SlateElementContext) => void;
@@ -33,6 +32,8 @@ export declare class TheBaseLink extends TheBaseElement<LinkElement, Editor> imp
33
32
  static ɵcmp: i0.ɵɵComponentDeclaration<TheBaseLink, "ng-component", never, {}, {}, never, never, false, never>;
34
33
  }
35
34
  export declare class TheLink extends TheBaseLink {
35
+ outletParent: ElementRef;
36
+ getOutletParent: () => any;
36
37
  inlineChromiumBugfix: string;
37
38
  static ɵfac: i0.ɵɵFactoryDeclaration<TheLink, never>;
38
39
  static ɵcmp: i0.ɵɵComponentDeclaration<TheLink, "a[theLink]", never, {}, {}, never, never, true, never>;
@@ -1,7 +1,6 @@
1
1
  import { CustomElementKinds } from '../../custom-types';
2
- import { TransformEditor } from '../common/transforms.plugin';
3
2
  export interface InsertParagraphNodesOptions {
4
3
  types: CustomElementKinds[];
5
4
  }
6
- export declare const withInsertParagraphNodes: <T extends import("../../interfaces").TheEditor & TransformEditor>(editor: T) => T;
5
+ export declare const withInsertParagraphNodes: <T extends import("../../interfaces").TheEditor>(editor: T) => T;
7
6
  export declare const createInsertParagraphNodesPlugin: <T = {}>(override?: Partial<import("../../interfaces").ThePlugin<T, InsertParagraphNodesOptions>>, overrideByKey?: import("../../interfaces").OverrideByKey) => import("../../interfaces").ThePlugin<T, InsertParagraphNodesOptions>;
@@ -1,9 +1,8 @@
1
1
  import { QueryOptions } from '../../interfaces';
2
- import { TransformEditor } from '../common/transforms.plugin';
3
2
  import { CustomElementKinds } from '../../custom-types';
4
3
  export interface WithTrailingNode extends QueryOptions {
5
4
  type?: CustomElementKinds;
6
5
  level?: number;
7
6
  }
8
- export declare const withTrailingNode: <T extends import("../../interfaces").TheEditor & TransformEditor>(editor: T) => T;
7
+ export declare const withTrailingNode: <T extends import("../../interfaces").TheEditor>(editor: T) => T;
9
8
  export declare const createTrailingNodePlugin: <T = {}>(override?: Partial<import("../../interfaces").ThePlugin<T, {}>>, overrideByKey?: import("../../interfaces").OverrideByKey) => import("../../interfaces").ThePlugin<T, {}>;
@@ -1,5 +1,4 @@
1
1
  import { TheEditor } from '../../interfaces';
2
- import { TransformEditor } from '../common/transforms.plugin';
3
2
  import { SoftBreakOnKeyDownOptions } from './soft-break.types';
4
- export declare const withSoftBreak: <T extends TheEditor & TransformEditor>(editor: T) => T;
3
+ export declare const withSoftBreak: <T extends TheEditor>(editor: T) => T;
5
4
  export declare const createSoftBreakPlugin: <T = {}>(override?: Partial<import("../../interfaces").ThePlugin<T, SoftBreakOnKeyDownOptions>>, overrideByKey?: import("../../interfaces").OverrideByKey) => import("../../interfaces").ThePlugin<T, SoftBreakOnKeyDownOptions>;
@@ -19,6 +19,7 @@ export declare class TheInsertMark implements OnInit, OnDestroy {
19
19
  constructor(cdr: ChangeDetectorRef, renderer2: Renderer2);
20
20
  ngOnInit(): void;
21
21
  ngOnDestroy(): void;
22
+ preventDefault(event: MouseEvent): void;
22
23
  insert(event: MouseEvent): void;
23
24
  onMouseEnter(event: MouseEvent): void;
24
25
  onMouseLeave(event: MouseEvent): void;
@@ -1,20 +1,25 @@
1
- import { ChangeDetectorRef, ElementRef, OnInit, Renderer2 } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, OnInit, Renderer2 } from '@angular/core';
2
+ import { AfterContextChange } from 'slate-angular';
2
3
  import { TableRowElement } from '../../../../custom-types';
3
- import { TheBaseElement } from '../../../../interfaces/';
4
- import { TablePosition } from '../../utils';
4
+ import { TheBaseElement } from '../../../../interfaces/view-base';
5
5
  import * as i0 from "@angular/core";
6
- export declare class TheTableRow extends TheBaseElement<TableRowElement> implements OnInit {
6
+ export declare class TheTableRow extends TheBaseElement<TableRowElement> implements OnInit, AfterViewInit, AfterContextChange {
7
7
  elementRef: ElementRef<HTMLElement>;
8
8
  cdr: ChangeDetectorRef;
9
9
  private renderer;
10
10
  height: string;
11
11
  numberedColumn: boolean;
12
12
  rowNumber: number | string;
13
+ numberedColumnRef: ElementRef<HTMLElement>;
13
14
  constructor(elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef, renderer: Renderer2);
14
15
  onContextChange(): void;
16
+ afterContextChange(): void;
15
17
  ngOnInit(): void;
16
- useHeight(): void;
17
- setNumberColumn(ps: TablePosition, rowIndex: number): void;
18
+ ngAfterViewInit(): void;
19
+ setHeight(): void;
20
+ setStickyRowClass(rowIndex: number): void;
21
+ setNumberColumn(rowIndex: number): void;
22
+ updateNumberedColumnPosition(): void;
18
23
  static ɵfac: i0.ɵɵFactoryDeclaration<TheTableRow, never>;
19
24
  static ɵcmp: i0.ɵɵComponentDeclaration<TheTableRow, "tr[theTableRow]", never, {}, {}, never, never, true, never>;
20
25
  }
@@ -35,15 +35,18 @@ export declare class TheTable extends TheBaseElement<TableElement, Editor> imple
35
35
  isInTable: boolean;
36
36
  tablePluginOptions: ThePluginOption<ThePluginTableOption>;
37
37
  isStickyTop: boolean;
38
- isScrollX: boolean;
38
+ isScrolledXOfScrollContainer: boolean;
39
39
  scrollContainerTop: number;
40
- tableRectLeft: number;
41
40
  isRightShadow: boolean;
42
41
  isLeftShadow: boolean;
43
42
  previousScrollContainer: string;
44
43
  columns: TheTableColumn[];
45
44
  isMobileMode: boolean;
46
45
  selectedCells: TableCellElement[];
46
+ tableWrapperWidth: number;
47
+ tableWrapperLeft: number;
48
+ isFreezeRow: boolean;
49
+ isFreezeColumn: boolean;
47
50
  get nativeElement(): HTMLElement;
48
51
  get tbodyNativeElement(): HTMLElement;
49
52
  tableWrapper: ElementRef<HTMLElement>;
@@ -57,35 +60,44 @@ export declare class TheTable extends TheBaseElement<TableElement, Editor> imple
57
60
  headerRowRightShadow: ElementRef<HTMLElement>;
58
61
  colgroup: ElementRef<HTMLElement>;
59
62
  rowControlsButtonWrapper: QueryList<ElementRef<HTMLElement>>;
60
- handleMousedown(event: MouseEvent): void;
63
+ getOutletParent: () => any;
61
64
  onContextChange(): void;
65
+ afterChildrenViewUpdate(): void;
66
+ afterRowControlsUpdate(): void;
62
67
  constructor(elementRef: ElementRef<HTMLElement>, eventDispatcher: TableCellEventDispatcher, resizeNotifier: ColumnResizeNotifierSource, tableStore: TableStore, cdr: ChangeDetectorRef, ngZone: NgZone, tableService: TableService, theTableContextMenuService: TheTableContextMenuService, freezeColumnPipe: TableFreezeColumnPipe, freezeRowPipe: TableFreezeRowPipe, renderer: Renderer2, contextService: TheContextService, config: TheModeConfig);
63
68
  ngOnInit(): void;
64
- getWrapperWidth(): number;
69
+ getWrapperWidthAndLeft(): void;
65
70
  ngAfterViewInit(): void;
66
- getColumnGroups(): void;
67
71
  setHeaderRowShadow(): void;
68
72
  calcHeaderRowShadow(): {
69
- height: any;
73
+ height: number;
70
74
  top: number;
71
75
  };
72
- subscribeScrollContainerScroll(): void;
73
- setHeaderCellStyle(): void;
74
- removeHeaderCellStyle(cells: TableCellElement[]): void;
75
- setHeaderColumnAndControlStyle(cells: TableCellElement[]): void;
76
+ subscribeScrollContainerScroll(tableWrapperLeft: number): void;
77
+ applyHeaderCellClass(isHeaderCell: boolean, cell: TableCellElement, className: string): void;
78
+ setTableHeaderStyle(): void;
79
+ setHeaderCellClass(): void;
80
+ setHeaderColumnStickyCellClass(): void;
76
81
  setHeaderRowStyle(): void;
77
82
  setGridColumnsStyle(): void;
83
+ getStickRowElements(): {
84
+ firstHeaderRow: Element;
85
+ columnControlsWrapper: HTMLElement;
86
+ tableCornerControl: HTMLElement;
87
+ rowControlInner: HTMLElement;
88
+ firstRowControlButton: HTMLElement;
89
+ };
78
90
  setStickyRowStyle(): void;
79
- setRowControlButtonStyle(rowControlButton: HTMLElement): void;
80
- bindTableScrollingShadow(): void;
91
+ setTableScrollingShadow(): void;
92
+ setTableLeftShadow(scrollLeft?: number): void;
93
+ setTableRightShadow(scrollLeft?: number): void;
81
94
  subscribeCellPositionChange(): void;
82
95
  subscribeCellsChange(): void;
83
96
  useRowControls(): void;
84
97
  detectChanges(): void;
85
- resolveImage(): Promise<boolean> | Promise<any[]>;
98
+ resolveImage(): Promise<any[]> | Promise<boolean>;
86
99
  getColControls(): void;
87
100
  getIsInTable(): void;
88
- getDefaultCellWidth(): number[];
89
101
  initializeColumns(): void;
90
102
  initializeRows(): void;
91
103
  transformRowHeight(): void;
@@ -98,9 +110,10 @@ export declare class TheTable extends TheBaseElement<TableElement, Editor> imple
98
110
  listenKeydownEvent(): void;
99
111
  listenKeyupEvent(): void;
100
112
  private listenSelectstartEvent;
113
+ setStickyRowPointerEvents(pointerEventsStyle: string): void;
101
114
  listenTableWrapperScroll(): void;
102
115
  updateStickyRowScrollLeft(): void;
103
- setHeaderRowLeftStyle(): void;
116
+ setStickyElementLeftStyle(): void;
104
117
  getColControlButtonWidth: () => number;
105
118
  trackByFnRowControls(index: number): number;
106
119
  trackByFnColControls(index: number): number;
@@ -6,7 +6,7 @@
6
6
  $expand-size: 12px;
7
7
  $controls-border: 1px solid variables.$gray-300;
8
8
  $table-scroll-wrap-padding-top: 31px;
9
- $dot-zIndex: 20;
9
+ $dot-z-index: 20;
10
10
  $dot-size: 19px;
11
11
  $dot-padding-top: 5px;
12
12
  $dot-shadow-top: math.div($dot-size - 1, 2);
@@ -16,6 +16,10 @@ $control-corner-width: 12px;
16
16
  $header-cell-bg-color: #f3f3f3;
17
17
  $top-cell-z-index: 13;
18
18
 
19
+ .slate-block-card-table {
20
+ z-index: 0;
21
+ }
22
+
19
23
  .slate-element-table {
20
24
  display: block;
21
25
  width: calc(100% - 2px);
@@ -95,6 +99,10 @@ $top-cell-z-index: 13;
95
99
  border: 1px solid variables.$danger;
96
100
  }
97
101
  }
102
+
103
+ &.slate-element-table-cell {
104
+ margin: 0;
105
+ }
98
106
  }
99
107
 
100
108
  .focused-cell,
@@ -103,7 +111,6 @@ $top-cell-z-index: 13;
103
111
  }
104
112
 
105
113
  .the-header-cell {
106
- margin-bottom: 0;
107
114
  background: $header-cell-bg-color;
108
115
  }
109
116
 
@@ -131,7 +138,6 @@ $top-cell-z-index: 13;
131
138
  margin: 0 auto 16px;
132
139
  .the-table-wrapper {
133
140
  position: relative;
134
- z-index: 0;
135
141
  margin-top: -10px;
136
142
  padding-top: 10px;
137
143
  overflow: auto;
@@ -219,8 +225,8 @@ $top-cell-z-index: 13;
219
225
  top: 1px;
220
226
  left: 1px;
221
227
  }
222
- .the-sticky-corner-controls,
223
- .the-table-row-controls-button-wrap {
228
+ .the-table-corner-controls,
229
+ .the-table-row-control-button-wrap {
224
230
  width: 44px;
225
231
  }
226
232
  }
@@ -233,7 +239,7 @@ $top-cell-z-index: 13;
233
239
  }
234
240
  }
235
241
  }
236
- .the-table-row-controls-button-wrap {
242
+ .the-table-row-control-button-wrap {
237
243
  &:first-child {
238
244
  width: 74px; // width + insert-mask: 55px + 19px
239
245
  }
@@ -241,7 +247,7 @@ $top-cell-z-index: 13;
241
247
  }
242
248
 
243
249
  .the-table-row-controls-inner {
244
- .the-table-row-controls-button-wrap {
250
+ .the-table-row-control-button-wrap {
245
251
  &:first-child {
246
252
  position: fixed;
247
253
  z-index: $top-cell-z-index;
@@ -250,11 +256,11 @@ $top-cell-z-index: 13;
250
256
  }
251
257
  }
252
258
  }
253
- .the-sticky-corner-controls {
259
+ .the-table-corner-controls {
254
260
  position: fixed;
255
- z-index: 12;
256
261
  width: 11px;
257
262
  height: 11px;
263
+ z-index: $top-cell-z-index;
258
264
  .the-table-corner-button {
259
265
  height: 11px;
260
266
  }
@@ -273,7 +279,7 @@ $top-cell-z-index: 13;
273
279
  }
274
280
  .the-table-row-controls-inner {
275
281
  z-index: 4;
276
- .the-table-row-controls-button-wrap {
282
+ .the-table-row-control-button-wrap {
277
283
  &:first-child {
278
284
  padding-left: 19px; // insert-mask width: 19px
279
285
  margin-left: -19px;
@@ -310,7 +316,7 @@ $top-cell-z-index: 13;
310
316
  .the-table-controls-insert-wrapper {
311
317
  display: block;
312
318
  }
313
- .the-sticky-corner-controls {
319
+ .the-table-corner-controls {
314
320
  .the-table-corner-button {
315
321
  position: unset;
316
322
  }
@@ -323,7 +329,7 @@ $top-cell-z-index: 13;
323
329
  }
324
330
  }
325
331
 
326
- .the-table-col-controls-wrapper .the-table-col-controls {
332
+ .the-table-col-controls-wrapper .the-table-col-control {
327
333
  background: variables.$gray-100;
328
334
  background-clip: padding-box;
329
335
  border-top: $controls-border;
@@ -469,7 +475,7 @@ $top-cell-z-index: 13;
469
475
  padding-top: 0;
470
476
  }
471
477
  .the-table-row-controls-inner {
472
- .the-table-row-controls-button-wrap {
478
+ .the-table-row-control-button-wrap {
473
479
  &:first-child {
474
480
  margin-top: 36px;
475
481
  }
@@ -479,8 +485,8 @@ $top-cell-z-index: 13;
479
485
  .the-table-row-controls {
480
486
  left: 0;
481
487
  }
482
- .the-sticky-corner-controls,
483
- .the-table-row-controls-button-wrap {
488
+ .the-table-corner-controls,
489
+ .the-table-row-control-button-wrap {
484
490
  width: 55px;
485
491
  }
486
492
  }
@@ -488,7 +494,7 @@ $top-cell-z-index: 13;
488
494
  display: grid;
489
495
  }
490
496
  .the-table-col-controls-wrapper.the-sticky-row,
491
- .the-sticky-corner-controls {
497
+ .the-table-corner-controls {
492
498
  padding-top: 25px;
493
499
  background: variables.$white;
494
500
  border: none;
@@ -502,6 +508,7 @@ $top-cell-z-index: 13;
502
508
  width: 100%;
503
509
  height: $control-corner-width;
504
510
  visibility: hidden;
511
+ z-index: 11;
505
512
 
506
513
  .the-table-corner-button {
507
514
  position: absolute;
@@ -573,7 +580,10 @@ $top-cell-z-index: 13;
573
580
  height: $dot-size;
574
581
  background-color: #d8d8d8;
575
582
  border-radius: math.div($dot-size + 1, 2);
576
- box-shadow: inset $dot-padding-top 0 0 0 #d8d8d8, inset (-$dot-padding-top) 0 0 0 #d8d8d8, inset 0 (-$dot-shadow-top) 0 0 #d8d8d8,
583
+ box-shadow:
584
+ inset $dot-padding-top 0 0 0 #d8d8d8,
585
+ inset (-$dot-padding-top) 0 0 0 #d8d8d8,
586
+ inset 0 (-$dot-shadow-top) 0 0 #d8d8d8,
577
587
  inset 0 $dot-shadow-top 0 0 #d8d8d8;
578
588
  }
579
589
 
@@ -586,8 +596,11 @@ $top-cell-z-index: 13;
586
596
 
587
597
  &:hover:after {
588
598
  border-radius: 4px;
589
- box-shadow: inset $dot-padding-top 0 0 0 variables.$primary, inset (-$dot-padding-top) 0 0 0 variables.$primary,
590
- inset 0 (-$dot-shadow-top) 0 0 variables.$primary, inset 0 $dot-shadow-top 0 0 variables.$primary !important;
599
+ box-shadow:
600
+ inset $dot-padding-top 0 0 0 variables.$primary,
601
+ inset (-$dot-padding-top) 0 0 0 variables.$primary,
602
+ inset 0 (-$dot-shadow-top) 0 0 variables.$primary,
603
+ inset 0 $dot-shadow-top 0 0 variables.$primary !important;
591
604
  }
592
605
 
593
606
  &:hover:before {
@@ -597,7 +610,7 @@ $top-cell-z-index: 13;
597
610
 
598
611
  .the-table-controls-insert-line {
599
612
  position: absolute;
600
- z-index: $dot-zIndex;
613
+ z-index: $dot-z-index;
601
614
  background-color: variables.$primary;
602
615
 
603
616
  &[data-dot-type='column'] {
@@ -616,17 +629,17 @@ $top-cell-z-index: 13;
616
629
 
617
630
  .the-table-row-controls {
618
631
  position: relative;
619
- z-index: 11;
620
632
  display: none;
621
633
  box-sizing: border-box;
622
634
  width: $control-width;
635
+ z-index: 11;
623
636
 
624
637
  .the-table-row-controls-inner {
625
638
  display: flex;
626
639
  flex-direction: column;
627
640
  }
628
641
 
629
- .the-table-row-controls-button-wrap {
642
+ .the-table-row-control-button-wrap {
630
643
  position: relative;
631
644
  margin-top: -1px;
632
645
 
@@ -674,7 +687,7 @@ $top-cell-z-index: 13;
674
687
  height: $control-width;
675
688
  line-height: $control-width;
676
689
 
677
- .the-table-col-controls {
690
+ .the-table-col-control {
678
691
  position: relative;
679
692
  margin: 0;
680
693
  padding: 0;
@@ -725,7 +738,7 @@ $top-cell-z-index: 13;
725
738
 
726
739
  .the-editor-readonly {
727
740
  .the-table-row-controls,
728
- .the-table-col-controls {
741
+ .the-table-col-control {
729
742
  cursor: default;
730
743
  }
731
744
 
@@ -1,5 +1,5 @@
1
1
  import { ConnectedPosition, Overlay, OverlayRef, ScrollDispatcher } from '@angular/cdk/overlay';
2
- import { AfterViewInit, ChangeDetectorRef, ElementRef, Injector, NgZone, OnDestroy, OnInit, Renderer2, ViewContainerRef } from '@angular/core';
2
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, Injector, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';
3
3
  import { Subject } from 'rxjs';
4
4
  import { Editor } from 'slate';
5
5
  import { ColumnResizeNotifierSource } from '../../../../components/column-resize/column-resize-notifier';
@@ -8,7 +8,6 @@ import { ResizeRef } from '../../../../components/column-resize/resize-ref';
8
8
  import { ColumnResizingStore } from '../../../../components/column-resize/resizing.store';
9
9
  import { TableCellElement } from '../../../../custom-types';
10
10
  import { TheBaseElement } from '../../../../interfaces';
11
- import { TableFreezeColumnPipe } from '../../table.pipe';
12
11
  import { TableOptions } from '../../table.types';
13
12
  import { TablePosition } from '../../utils';
14
13
  import { TheTable } from '../table.component';
@@ -20,13 +19,11 @@ export declare class TheTd extends TheBaseElement<TableCellElement, Editor> impl
20
19
  elementRef: ElementRef;
21
20
  cdr: ChangeDetectorRef;
22
21
  private renderer;
23
- private viewContainerRef;
24
22
  private ngZone;
25
23
  injector: Injector;
26
24
  overlay: Overlay;
27
25
  resizingStore: ColumnResizingStore;
28
26
  scrollDispatcher: ScrollDispatcher;
29
- freezeColumnPipe: TableFreezeColumnPipe;
30
27
  destroy$: Subject<void>;
31
28
  tablePosition: TablePosition;
32
29
  tableComponent: TheTable;
@@ -34,6 +31,7 @@ export declare class TheTd extends TheBaseElement<TableCellElement, Editor> impl
34
31
  hoveredDirection: Position | null;
35
32
  tableOptions: TableOptions;
36
33
  cellInnerMinHeight: number;
34
+ cellInner: ElementRef;
37
35
  get tableStore(): import("../../table.store").TableStore;
38
36
  get tableService(): import("../../table.service").TableService;
39
37
  get eventDispatcher(): TableCellEventDispatcher;
@@ -52,15 +50,14 @@ export declare class TheTd extends TheBaseElement<TableCellElement, Editor> impl
52
50
  rowspan: number;
53
51
  display: string;
54
52
  onContextChange(): void;
55
- constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, renderer: Renderer2, viewContainerRef: ViewContainerRef, ngZone: NgZone, injector: Injector, overlay: Overlay, resizingStore: ColumnResizingStore, scrollDispatcher: ScrollDispatcher, freezeColumnPipe: TableFreezeColumnPipe);
53
+ getOutletParent: () => any;
54
+ constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, renderer: Renderer2, ngZone: NgZone, injector: Injector, overlay: Overlay, resizingStore: ColumnResizingStore, scrollDispatcher: ScrollDispatcher);
56
55
  ngOnInit(): void;
57
56
  ngAfterViewInit(): void;
58
57
  getInjectionService(): void;
59
58
  subscribeSelectedCellsChange(): void;
60
59
  subscribeDangerousCellsChange(): void;
61
- subscribeTableChange(): void;
62
60
  useState(): void;
63
- useTablePosition(): void;
64
61
  useBackground(): void;
65
62
  useSpan(): void;
66
63
  useDisplay(): void;
@@ -1,4 +1,4 @@
1
- import { Editor, Location, NodeEntry, Path, Range } from 'slate';
1
+ import { Editor, Location, NodeEntry, Path, Point, Range } from 'slate';
2
2
  import { Alignment, Indents, MarkTypes, VerticalAlignment } from '../../constants';
3
3
  import { CustomElement, TableCellElement, TableElement } from '../../custom-types';
4
4
  import { TheEditor } from '../../interfaces';
@@ -19,7 +19,7 @@ export declare const TableEditor: {
19
19
  clearCellsContent(editor: Editor, cells?: TableCellElement[]): void;
20
20
  isActive(editor: Editor): boolean;
21
21
  getSelectedCellPositions(editor: Editor): import("./table.types").CellPosition[];
22
- getSelectedCells(editor: Editor): TableCellElement[];
22
+ getSelectedCells(editor: Editor, location?: Point): TableCellElement[];
23
23
  setAlign(editor: Editor, alignment: Alignment, cells?: TableCellElement[]): boolean;
24
24
  setVerticalAlign(editor: TheEditor, alignment: VerticalAlignment, cells?: TableCellElement[]): boolean;
25
25
  isVerticalAlignActive(editor: TheEditor, alignment: VerticalAlignment): boolean;
@@ -1,14 +1,19 @@
1
1
  import { PipeTransform } from '@angular/core';
2
- import { ThePluginTableOption } from './table.types';
3
2
  import { TableElement } from '../../custom-types';
3
+ import { ThePluginTableOption } from './table.types';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class TableFreezeColumnPipe implements PipeTransform {
6
- transform(table: TableElement, tablePluginOptions: ThePluginTableOption): boolean;
6
+ transform(table: TableElement, tablePluginOptions: ThePluginTableOption, tableWrapperWidth: number): boolean;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<TableFreezeColumnPipe, never>;
8
8
  static ɵpipe: i0.ɵɵPipeDeclaration<TableFreezeColumnPipe, "freezeColumn", true>;
9
9
  }
10
10
  export declare class TableFreezeRowPipe implements PipeTransform {
11
- transform(table: TableElement, headerRow: boolean, tablePluginOptions: ThePluginTableOption): boolean;
11
+ transform(table: TableElement, tablePluginOptions: ThePluginTableOption): boolean;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<TableFreezeRowPipe, never>;
13
13
  static ɵpipe: i0.ɵɵPipeDeclaration<TableFreezeRowPipe, "freezeRow", true>;
14
14
  }
15
+ export declare class TableHasHeaderRowPipe implements PipeTransform {
16
+ transform(table: TableElement): boolean;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableHasHeaderRowPipe, never>;
18
+ static ɵpipe: i0.ɵɵPipeDeclaration<TableHasHeaderRowPipe, "hasHeaderRow", true>;
19
+ }
@@ -34,8 +34,6 @@ export declare class TableService {
34
34
  * @param tbody tbody元素
35
35
  */
36
36
  handleKeydownForAreaSelection(e: KeyboardEvent, tbody: HTMLElement): void;
37
- cancelPointerSelection(): void;
38
- cancelAreaSelection(): void;
39
37
  /**
40
38
  * 进行区域选择时,阻止默认的选区事件
41
39
  * @param e 事件对象