@worktile/theia 15.0.11 → 15.0.13

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.
@@ -25,12 +25,10 @@ import * as i8 from 'ngx-tethys/tooltip';
25
25
  import { ThyTooltipModule } from 'ngx-tethys/tooltip';
26
26
  import * as i8$1 from 'ngx-tethys/divider';
27
27
  import { ThyDividerComponent, ThyDividerModule } from 'ngx-tethys/divider';
28
- import * as i2$2 from '@angular/cdk/scrolling';
29
- import { CdkScrollable, ScrollingModule } from '@angular/cdk/scrolling';
30
28
  import { mixinUnsubscribe, MixinBase, ScrollToService } from 'ngx-tethys/core';
31
29
  import { isKeyHotkey, isHotkey } from 'is-hotkey';
32
30
  import { Subject, fromEvent, timer, combineLatest, Observable, BehaviorSubject, merge, ReplaySubject } from 'rxjs';
33
- import { takeUntil, debounceTime, take, delay, map as map$1, skip, filter, startWith, distinctUntilChanged, share, mapTo, pairwise } from 'rxjs/operators';
31
+ import { takeUntil, debounceTime, take, delay, map as map$1, filter, startWith, distinctUntilChanged, skip, share, mapTo, pairwise } from 'rxjs/operators';
34
32
  import * as i5 from 'ngx-tethys/input';
35
33
  import { ThyInputModule } from 'ngx-tethys/input';
36
34
  import * as i10 from 'ngx-tethys/empty';
@@ -63,6 +61,8 @@ import * as i7$1 from 'ngx-tethys/input-number';
63
61
  import { ThyInputNumberModule } from 'ngx-tethys/input-number';
64
62
  import { coerceCssPixelValue } from '@angular/cdk/coercion';
65
63
  import { PortalInjector, ComponentPortal } from '@angular/cdk/portal';
64
+ import * as i2$2 from '@angular/cdk/scrolling';
65
+ import { ScrollingModule } from '@angular/cdk/scrolling';
66
66
  import { ThyAutocompleteModule } from 'ngx-tethys/autocomplete';
67
67
  import { ThyAvatarModule } from 'ngx-tethys/avatar';
68
68
  import { ThyDialogModule } from 'ngx-tethys/dialog';
@@ -215,6 +215,11 @@ var Indents;
215
215
  Indents["indentRight"] = "indent-right";
216
216
  Indents["indentLeft"] = "indent-left";
217
217
  })(Indents || (Indents = {}));
218
+ var ScrollDirection;
219
+ (function (ScrollDirection) {
220
+ ScrollDirection[ScrollDirection["X"] = 0] = "X";
221
+ ScrollDirection[ScrollDirection["Y"] = 1] = "Y";
222
+ })(ScrollDirection || (ScrollDirection = {}));
218
223
  var MarkTypes;
219
224
  (function (MarkTypes) {
220
225
  MarkTypes["bold"] = "bold";
@@ -3156,6 +3161,7 @@ class TheContextService {
3156
3161
  this.containerScrolled$ = new Subject();
3157
3162
  this.uploadingStatus$ = new Subject();
3158
3163
  this.containerResized$ = new Subject();
3164
+ this.windowResized$ = new Subject();
3159
3165
  this.ngZone.runOutsideAngular(() => {
3160
3166
  this.onMouseUp$ = fromEvent(window, `mouseup`).pipe(takeUntil(this.destroy$));
3161
3167
  this.onMouseMove$ = fromEvent(window, `mousemove`).pipe(takeUntil(this.destroy$));
@@ -3166,6 +3172,7 @@ class TheContextService {
3166
3172
  this.options = options;
3167
3173
  this.rebindContainerScroll();
3168
3174
  this.bindContainerResize();
3175
+ this.bindWindowResize();
3169
3176
  }
3170
3177
  rebindContainerScroll() {
3171
3178
  this.scrollSubscription?.unsubscribe();
@@ -3174,16 +3181,33 @@ class TheContextService {
3174
3181
  this.options.nativeElement.querySelector(this.options.theOptions?.scrollContainer);
3175
3182
  if (containerElement) {
3176
3183
  this.ngZone.runOutsideAngular(() => {
3184
+ let previousContainerScroll = { x: 0, y: 0 };
3177
3185
  this.scrollSubscription = fromEvent(containerElement, 'scroll').subscribe(event => {
3178
- this.containerScrolled$.next(event);
3186
+ const entires = { event, direction: ScrollDirection.Y };
3187
+ const target = event.target;
3188
+ const [x, y] = [target.scrollLeft, target.scrollTop];
3189
+ if (x !== previousContainerScroll.x) {
3190
+ entires.direction = ScrollDirection.X;
3191
+ }
3192
+ if (y !== previousContainerScroll.y) {
3193
+ entires.direction = ScrollDirection.Y;
3194
+ }
3195
+ previousContainerScroll = { x, y };
3196
+ this.containerScrolled$.next(entires);
3179
3197
  });
3180
3198
  });
3181
3199
  }
3182
3200
  }
3183
3201
  }
3184
3202
  bindContainerResize() {
3185
- let previousContainerRect = this.options.nativeElement.getBoundingClientRect();
3186
- this.resizeObserver = new ResizeObserver(entires => {
3203
+ this.containerResizeObserver = this.elementResize(this.options.nativeElement, this.containerResized$);
3204
+ }
3205
+ bindWindowResize() {
3206
+ this.windowResizeObserver = this.elementResize(document.documentElement, this.windowResized$);
3207
+ }
3208
+ elementResize(element, subject) {
3209
+ let previousContainerRect = element.getBoundingClientRect();
3210
+ const resizeObserver = new ResizeObserver(entires => {
3187
3211
  const currentRect = entires[0].contentRect;
3188
3212
  const result = { entry: entires[0], widthChanged: false, heightChanged: false };
3189
3213
  if (currentRect.width !== previousContainerRect.width) {
@@ -3193,9 +3217,10 @@ class TheContextService {
3193
3217
  result.heightChanged = true;
3194
3218
  }
3195
3219
  previousContainerRect = currentRect;
3196
- this.containerResized$.next(result);
3220
+ subject.next(result);
3197
3221
  });
3198
- return this.resizeObserver.observe(this.options.nativeElement);
3222
+ resizeObserver.observe(element);
3223
+ return resizeObserver;
3199
3224
  }
3200
3225
  getOptions() {
3201
3226
  if (!this.options.width) {
@@ -3227,7 +3252,9 @@ class TheContextService {
3227
3252
  this.uploadingStatus$.complete();
3228
3253
  this.containerScrolled$?.complete();
3229
3254
  this.containerResized$?.complete();
3230
- this.resizeObserver.disconnect();
3255
+ this.containerResizeObserver?.disconnect();
3256
+ this.windowResized$?.complete();
3257
+ this.windowResizeObserver?.disconnect();
3231
3258
  this.scrollSubscription?.unsubscribe();
3232
3259
  this.destroy$.next();
3233
3260
  this.destroy$.complete();
@@ -3404,7 +3431,7 @@ const TABLE_INSERT_MASK$1 = 19;
3404
3431
  const TABLE_BORDER$1 = 1;
3405
3432
  const TABLE_PADDING$1 = 8;
3406
3433
  const TABLE_CONTROL = 11;
3407
- const TABLE_NUMBER_COLUMN = 45;
3434
+ const TABLE_NUMBER_COLUMN = 44;
3408
3435
  const TableWithStickyRowClass = 'the-table-with-sticky-row';
3409
3436
  var FullscreenState;
3410
3437
  (function (FullscreenState) {
@@ -10710,7 +10737,7 @@ const PaintFormatEditor = {
10710
10737
  const element = EDITOR_TO_ELEMENT.get(editor);
10711
10738
  element.classList.add('pointer-paint');
10712
10739
  contextService.onMouseUp$
10713
- .pipe(skip(1), filter(event => element.contains(event.target)), take(1))
10740
+ .pipe(filter(event => element.contains(event.target)), take(1))
10714
10741
  .subscribe((event) => {
10715
10742
  if (contextService.paintFormatStatus.isActive) {
10716
10743
  PaintFormatEditor.formatBrush(editor);
@@ -12514,10 +12541,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
12514
12541
  }] });
12515
12542
 
12516
12543
  /**
12517
- * 设置标题行网格列
12544
+ * 获取标题行网格列宽值
12518
12545
  * @param editor
12519
12546
  * @param headerRow 标题行
12520
- * @param cellRow
12547
+ * @param cellsWidth
12521
12548
  * @returns string
12522
12549
  */
12523
12550
  const getGridColumns = (headerRow, cellsWidth) => {
@@ -12749,6 +12776,11 @@ class TheTableComponent extends TheBaseElementComponent {
12749
12776
  this.destroy$ = new Subject();
12750
12777
  this.rowControls = [];
12751
12778
  this.colControls = [];
12779
+ this.getColControlButtonWidth = () => {
12780
+ let result = 0;
12781
+ result += this.element.options?.numberedColumn ? TABLE_NUMBER_COLUMN : 0;
12782
+ return result;
12783
+ };
12752
12784
  }
12753
12785
  get columns() {
12754
12786
  return this.element && this.element.columns;
@@ -12779,6 +12811,7 @@ class TheTableComponent extends TheBaseElementComponent {
12779
12811
  this.useRowControls();
12780
12812
  this.setHeaderCellStyle();
12781
12813
  this.setHeaderRowShadow();
12814
+ this.setHeaderRowLeftStyle();
12782
12815
  this.cdr.markForCheck();
12783
12816
  });
12784
12817
  this.getIsInTable();
@@ -12866,32 +12899,42 @@ class TheTableComponent extends TheBaseElementComponent {
12866
12899
  this.cdr.markForCheck();
12867
12900
  }
12868
12901
  this.setHeaderCellStyle();
12902
+ const { left } = this.nativeElement.getBoundingClientRect();
12903
+ this.tableRectLeft = left;
12869
12904
  this.subscribeScrollContainerScroll();
12870
12905
  this.contextService.containerResized$.pipe(takeUntil(this.destroy$)).subscribe(result => {
12871
12906
  if (result.widthChanged) {
12872
- this.setHeaderRowStyle();
12907
+ this.setGridColumnsStyle();
12908
+ this.setStickyRowStyle();
12873
12909
  this.bindTableScrollingShadow();
12874
12910
  }
12875
12911
  });
12912
+ this.contextService.windowResized$.pipe(takeUntil(this.destroy$)).subscribe(result => {
12913
+ if (result.widthChanged) {
12914
+ this.setHeaderRowShadow();
12915
+ this.setHeaderRowLeftStyle();
12916
+ }
12917
+ });
12876
12918
  });
12877
12919
  }
12878
12920
  /* 给标题行的左/右加阴影 */
12879
12921
  setHeaderRowShadow() {
12880
12922
  // 固定标题行遮盖
12881
- this.tableWrapper.nativeElement.style.zIndex = this.isStickyTop ? '3' : '0';
12882
- const headerRowRightShadow = this.headerRowRightShadow.nativeElement;
12883
- const headerRowLeftShadow = this.headerRowLeftShadow.nativeElement;
12923
+ this.renderer.setStyle(this.tableWrapper.nativeElement, 'z-index', this.isStickyTop ? '3' : '0');
12884
12924
  if (this.isLeftShadow || this.isRightShadow) {
12885
12925
  let { height, top } = this.calcHeaderRowShadow();
12886
- let { left, width } = this.tableWrapper.nativeElement.getBoundingClientRect();
12887
- if (this.isRightShadow) {
12888
- headerRowRightShadow.style.height = height + 'px';
12889
- headerRowRightShadow.style.top = top + 'px';
12890
- headerRowRightShadow.style.left = left + width - 8 + 'px';
12926
+ let { left, width } = this.nativeElement.getBoundingClientRect();
12927
+ if (this.isRightShadow && this.headerRowRightShadow) {
12928
+ const headerRowRightShadow = this.headerRowRightShadow.nativeElement;
12929
+ this.renderer.setStyle(headerRowRightShadow, 'height', `${height}px`);
12930
+ this.renderer.setStyle(headerRowRightShadow, 'top', `${top}px`);
12931
+ this.renderer.setStyle(headerRowRightShadow, 'left', `${left + width - 8}px`);
12891
12932
  }
12892
- if (this.isLeftShadow) {
12893
- headerRowLeftShadow.style.height = height + 'px';
12894
- headerRowLeftShadow.style.top = top + 'px';
12933
+ if (this.isLeftShadow && this.headerRowLeftShadow) {
12934
+ const headerRowLeftShadow = this.headerRowLeftShadow.nativeElement;
12935
+ this.renderer.setStyle(headerRowLeftShadow, 'height', `${height}px`);
12936
+ this.renderer.setStyle(headerRowLeftShadow, 'top', `${top}px`);
12937
+ this.renderer.setStyle(headerRowLeftShadow, 'left', `${left + this.getColControlButtonWidth()}px`);
12895
12938
  }
12896
12939
  }
12897
12940
  }
@@ -12910,20 +12953,28 @@ class TheTableComponent extends TheBaseElementComponent {
12910
12953
  subscribeScrollContainerScroll() {
12911
12954
  this.ngZone.runOutsideAngular(() => {
12912
12955
  this.contextService.containerScrolled$
12913
- .pipe(takeUntil(this.destroy$), map$1(event => {
12914
- this.scrollContainerTop = event.target.getBoundingClientRect().top;
12915
- const clientRect = this.theTableElement.nativeElement.getBoundingClientRect();
12916
- const headerTopHeight = this.isInTable ? -19 : 11;
12917
- const headerRowHeight = this.calculateRowControls()[0]?.height;
12918
- const top = clientRect.top + headerTopHeight;
12919
- this.isStickyTop =
12920
- top <= this.scrollContainerTop + 8 &&
12921
- clientRect.bottom - this.scrollContainerTop >= headerRowHeight &&
12922
- this.freezeRowPipe.transform(this.element, this.headerRow, this.tablePluginOptions);
12923
- // 标题行内容超过固定高度时移除冻结
12924
- if (this.isStickyTop) {
12925
- const maxHeaderRowHeight = (24 + 8) * 11; // 超出 11 行,取消冻结
12926
- this.isStickyTop = headerRowHeight <= maxHeaderRowHeight;
12956
+ .pipe(takeUntil(this.destroy$), map$1(entires => {
12957
+ const { event, direction } = entires;
12958
+ if (direction === ScrollDirection.X) {
12959
+ const { left } = this.nativeElement.getBoundingClientRect();
12960
+ this.isScrollX = this.tableRectLeft !== left;
12961
+ this.setHeaderRowLeftStyle();
12962
+ }
12963
+ if (direction === ScrollDirection.Y) {
12964
+ this.scrollContainerTop = event.target.getBoundingClientRect().top;
12965
+ const clientRect = this.theTableElement.nativeElement.getBoundingClientRect();
12966
+ const headerTopHeight = this.isInTable ? -19 : 11;
12967
+ const headerRowHeight = this.calculateRowControls()[0]?.height;
12968
+ const top = clientRect.top + headerTopHeight;
12969
+ this.isStickyTop =
12970
+ top <= this.scrollContainerTop + 8 &&
12971
+ clientRect.bottom - this.scrollContainerTop >= headerRowHeight &&
12972
+ this.freezeRowPipe.transform(this.element, this.headerRow, this.tablePluginOptions);
12973
+ // 标题行内容超过固定高度时移除冻结
12974
+ if (this.isStickyTop) {
12975
+ const maxHeaderRowHeight = (24 + 8) * 11; // 超出 11 行,取消冻结
12976
+ this.isStickyTop = headerRowHeight <= maxHeaderRowHeight;
12977
+ }
12927
12978
  }
12928
12979
  return this.isStickyTop;
12929
12980
  }), distinctUntilChanged())
@@ -12987,6 +13038,7 @@ class TheTableComponent extends TheBaseElementComponent {
12987
13038
  this.setGridColumnsStyle();
12988
13039
  this.setStickyRowStyle();
12989
13040
  this.setHeaderRowShadow();
13041
+ this.setHeaderRowLeftStyle();
12990
13042
  }
12991
13043
  setGridColumnsStyle() {
12992
13044
  const colControl = this.columnControlsWrapper.nativeElement;
@@ -13026,6 +13078,7 @@ class TheTableComponent extends TheBaseElementComponent {
13026
13078
  const tablePaddingTop = headerRowHeight + 11; // 标题行高 + ctrl btn(11px)高度
13027
13079
  this.renderer.setStyle(this.theTableElement.nativeElement, 'padding-top', tablePaddingTop + 'px');
13028
13080
  this.renderer.setStyle(rowControlInner, 'padding-top', tablePaddingTop + 'px');
13081
+ this.renderer.setStyle(this.tableRowControlsWrapper.nativeElement, 'z-index', '4');
13029
13082
  }
13030
13083
  else {
13031
13084
  this.renderer.removeClass(this.nativeElement, TableWithStickyRowClass);
@@ -13034,17 +13087,22 @@ class TheTableComponent extends TheBaseElementComponent {
13034
13087
  });
13035
13088
  this.renderer.setStyle(this.theTableElement.nativeElement, 'padding-top', null);
13036
13089
  this.renderer.setStyle(rowControlInner, 'padding-top', null);
13090
+ this.renderer.setStyle(this.tableRowControlsWrapper.nativeElement, 'z-index', '1');
13037
13091
  }
13038
- // setTimeout: 需要等待 rowControls 在 dom 中渲染完毕后才能获取到 rowControlButton
13039
- if (this.initialized) {
13040
- this.setRowControlButtonStyle(numberedColumn);
13092
+ const rowControlButton = this.rowControlsButtonWrapper.first?.nativeElement;
13093
+ if (this.initialized && rowControlButton) {
13094
+ this.setRowControlButtonStyle(rowControlButton);
13041
13095
  }
13042
13096
  else {
13043
- setTimeout(() => this.setRowControlButtonStyle(numberedColumn));
13097
+ // setTimeout 需要等待 rowControls 在 dom 中渲染完毕后才能获取到 rowControlButton
13098
+ setTimeout(() => this.setRowControlButtonStyle(rowControlButton));
13044
13099
  }
13045
13100
  }
13046
- setRowControlButtonStyle(numberedColumn) {
13047
- const rowControlButton = this.rowControlsButtonWrapper.first?.nativeElement;
13101
+ setRowControlButtonStyle(rowControlButton) {
13102
+ const numberedColumn = this.element.options?.numberedColumn;
13103
+ if (!rowControlButton) {
13104
+ rowControlButton = this.rowControlsButtonWrapper.first?.nativeElement;
13105
+ }
13048
13106
  if (this.isStickyTop) {
13049
13107
  if ((this.isInTable || numberedColumn) && rowControlButton) {
13050
13108
  this.renderer.setStyle(rowControlButton, 'top', this.scrollContainerTop + 'px');
@@ -13239,9 +13297,16 @@ class TheTableComponent extends TheBaseElementComponent {
13239
13297
  }
13240
13298
  getDefaultCellWidth() {
13241
13299
  const tr = this.element.children[0];
13242
- const tableWidth = AngularEditor.toDOMNode(this.editor, tr).getBoundingClientRect().width;
13300
+ let width = this.elementRef.nativeElement.getBoundingClientRect().width;
13301
+ if (this.rowControlsInner) {
13302
+ width -= this.rowControlsInner.nativeElement.getBoundingClientRect().width;
13303
+ if (this.isCollapsedAndNonReadonly) {
13304
+ // 聚焦之后会向左偏移一个 control(-11),见 .the-table-row-controls-wrapper
13305
+ width += TABLE_CONTROL;
13306
+ }
13307
+ }
13243
13308
  return tr.children.map(cell => {
13244
- return Number((tableWidth / tr.children.length).toFixed(2));
13309
+ return Number((width / tr.children.length).toFixed(2));
13245
13310
  });
13246
13311
  }
13247
13312
  initializeColumns() {
@@ -13408,7 +13473,7 @@ class TheTableComponent extends TheBaseElementComponent {
13408
13473
  const stickyRows = this.elementRef.nativeElement.querySelectorAll('.the-sticky-row');
13409
13474
  const setStickyRowPointerEvents = (pointerEventsStyle) => {
13410
13475
  for (const stiRow of stickyRows) {
13411
- stiRow.style.pointerEvents = pointerEventsStyle;
13476
+ this.renderer.setStyle(stiRow, 'pointer-events', pointerEventsStyle);
13412
13477
  }
13413
13478
  };
13414
13479
  let timer;
@@ -13444,6 +13509,27 @@ class TheTableComponent extends TheBaseElementComponent {
13444
13509
  }
13445
13510
  }
13446
13511
  }
13512
+ setHeaderRowLeftStyle() {
13513
+ const stickyRows = this.elementRef.nativeElement.querySelectorAll('.the-sticky-row');
13514
+ const cornerControl = this.cornerControl.nativeElement;
13515
+ const rowControl = this.rowControlsButtonWrapper.first?.nativeElement;
13516
+ const stickyElements = [...stickyRows, cornerControl, rowControl];
13517
+ const { left } = this.nativeElement.getBoundingClientRect();
13518
+ const buffer = this.isInTable ? -TABLE_CONTROL : 0;
13519
+ if (this.isStickyTop && this.isScrollX) {
13520
+ this.setHeaderRowShadow();
13521
+ stickyRows.forEach((element) => {
13522
+ this.renderer.setStyle(element, 'left', `${left + this.getColControlButtonWidth()}px`);
13523
+ });
13524
+ this.renderer.setStyle(cornerControl, 'left', `${left + buffer}px`);
13525
+ rowControl && this.renderer.setStyle(rowControl, 'left', `${left + buffer}px`);
13526
+ }
13527
+ else {
13528
+ stickyElements.forEach((element) => {
13529
+ element && this.renderer.setStyle(element, 'left', null);
13530
+ });
13531
+ }
13532
+ }
13447
13533
  trackByFnRowControls(index) {
13448
13534
  return index;
13449
13535
  }
@@ -13469,7 +13555,7 @@ TheTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
13469
13555
  provide: THE_TABLE_COMPONENT_TOKEN,
13470
13556
  useExisting: TheTableComponent
13471
13557
  }
13472
- ], viewQueries: [{ propertyName: "tableWrapper", first: true, predicate: ["tableWrapper"], descendants: true, read: ElementRef, static: true }, { propertyName: "theTableElement", first: true, predicate: ["theTable"], descendants: true, read: ElementRef, static: true }, { propertyName: "tbodyElement", first: true, predicate: ["tbody"], descendants: true, read: ElementRef, static: true }, { propertyName: "columnControlsWrapper", first: true, predicate: ["columnControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "cornerControl", first: true, predicate: ["cornerControl"], descendants: true, read: ElementRef }, { propertyName: "rowControlsInner", first: true, predicate: ["rowControlsInner"], descendants: true, read: ElementRef }, { propertyName: "headerRowLeftShadow", first: true, predicate: ["headerRowLeftShadow"], descendants: true, read: ElementRef }, { propertyName: "headerRowRightShadow", first: true, predicate: ["headerRowRightShadow"], descendants: true, read: ElementRef }, { propertyName: "colgroup", first: true, predicate: ["colgroup"], descendants: true, read: ElementRef }, { propertyName: "rowControlsButtonWrapper", predicate: ["rowControlsButtonWrapper"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"the-table-container\" theColumnResize>\n <div class=\"the-table-row-controls-wrapper\">\n <div\n class=\"the-table-corner-controls the-sticky-corner-controls\"\n #cornerControl\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (mousedown)=\"onSelectTable($event)\"></div>\n <div class=\"the-table-corner-controls-insert-row-marker\" *ngIf=\"!headerRow\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n <div class=\"the-table-corner-controls-insert-column-marker\" *ngIf=\"!element.options?.headerColumn\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n <div\n class=\"the-table-row-controls-button-wrap\"\n #rowControlsButtonWrapper\n *ngFor=\"let control of rowControls; let i = index; trackBy: trackByFnRowControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n <ng-container *ngIf=\"!readonly && (isInTable || tableStore.isRightClicking) && !element?.options?.numberedColumn\">\n <button\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"element?.options?.numberedColumn\">\n <div\n [contentEditable]=\"false\"\n contenteditable=\"false\"\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">{{ headerRow && i === 0 ? '' : headerRow ? i : i + 1 }}</p>\n </div>\n </ng-container>\n <the-table-insert-mark type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\"> </the-table-insert-mark>\n </div>\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup *ngIf=\"columns\">\n <col *ngFor=\"let col of columns\" [ngStyle]=\"{ width: col.width + 'px' }\" />\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n <th\n #colControl\n class=\"the-table-col-controls\"\n *ngFor=\"let control of colControls; let i = index; trackBy: trackByFnColControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0\n }\"\n (mousedown)=\"onColMousedown($event, i)\"\n >\n <the-table-insert-mark\n *ngIf=\"isInTable || tableStore.isRightClicking\"\n type=\"column\"\n [at]=\"i + 1\"\n [tableStore]=\"tableStore\"\n [parentElement]=\"colControl\"\n >\n </the-table-insert-mark>\n </th>\n </tr>\n </thead>\n <tbody #tbody>\n <slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"> </slate-children>\n </tbody>\n <div class=\"header-row-shadow header-row-left-shadow\" #headerRowLeftShadow contenteditable=\"false\"></div>\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.SlateChildrenComponent, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { kind: "directive", type: TheColumnResizeDirective, selector: "div[theColumnResize]" }, { kind: "component", type: TheInsertMarkComponent, selector: "the-table-insert-mark", inputs: ["type", "at", "tableStore", "parentElement"] }] });
13558
+ ], viewQueries: [{ propertyName: "tableWrapper", first: true, predicate: ["tableWrapper"], descendants: true, read: ElementRef, static: true }, { propertyName: "theTableElement", first: true, predicate: ["theTable"], descendants: true, read: ElementRef, static: true }, { propertyName: "tbodyElement", first: true, predicate: ["tbody"], descendants: true, read: ElementRef, static: true }, { propertyName: "tableRowControlsWrapper", first: true, predicate: ["tableRowControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "columnControlsWrapper", first: true, predicate: ["columnControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "cornerControl", first: true, predicate: ["cornerControl"], descendants: true, read: ElementRef }, { propertyName: "rowControlsInner", first: true, predicate: ["rowControlsInner"], descendants: true, read: ElementRef }, { propertyName: "headerRowLeftShadow", first: true, predicate: ["headerRowLeftShadow"], descendants: true, read: ElementRef }, { propertyName: "headerRowRightShadow", first: true, predicate: ["headerRowRightShadow"], descendants: true, read: ElementRef }, { propertyName: "colgroup", first: true, predicate: ["colgroup"], descendants: true, read: ElementRef }, { propertyName: "rowControlsButtonWrapper", predicate: ["rowControlsButtonWrapper"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"the-table-container\" theColumnResize>\n <div class=\"the-table-row-controls-wrapper\" #tableRowControlsWrapper>\n <div\n class=\"the-table-corner-controls the-sticky-corner-controls\"\n #cornerControl\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (mousedown)=\"onSelectTable($event)\"></div>\n <div class=\"the-table-corner-controls-insert-row-marker\" *ngIf=\"!headerRow\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n <div class=\"the-table-corner-controls-insert-column-marker\" *ngIf=\"!element.options?.headerColumn\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n <div\n class=\"the-table-row-controls-button-wrap\"\n #rowControlsButtonWrapper\n *ngFor=\"let control of rowControls; let i = index; trackBy: trackByFnRowControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n <ng-container *ngIf=\"!readonly && (isInTable || tableStore.isRightClicking) && !element?.options?.numberedColumn\">\n <button\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"element?.options?.numberedColumn\">\n <div\n [contentEditable]=\"false\"\n contenteditable=\"false\"\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">{{ headerRow && i === 0 ? '' : headerRow ? i : i + 1 }}</p>\n </div>\n </ng-container>\n <the-table-insert-mark type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\"> </the-table-insert-mark>\n </div>\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup *ngIf=\"columns\">\n <col *ngFor=\"let col of columns\" [ngStyle]=\"{ width: col.width + 'px' }\" />\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n <th\n #colControl\n class=\"the-table-col-controls\"\n *ngFor=\"let control of colControls; let i = index; trackBy: trackByFnColControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0\n }\"\n (mousedown)=\"onColMousedown($event, i)\"\n >\n <the-table-insert-mark\n *ngIf=\"isInTable || tableStore.isRightClicking\"\n type=\"column\"\n [at]=\"i + 1\"\n [tableStore]=\"tableStore\"\n [parentElement]=\"colControl\"\n >\n </the-table-insert-mark>\n </th>\n </tr>\n </thead>\n <tbody #tbody>\n <slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"> </slate-children>\n </tbody>\n <div\n class=\"header-row-shadow header-row-left-shadow\"\n #headerRowLeftShadow\n contenteditable=\"false\"\n *ngIf=\"!element.options?.headerColumn\"\n ></div>\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.SlateChildrenComponent, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { kind: "directive", type: TheColumnResizeDirective, selector: "div[theColumnResize]" }, { kind: "component", type: TheInsertMarkComponent, selector: "the-table-insert-mark", inputs: ["type", "at", "tableStore", "parentElement"] }] });
13473
13559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TheTableComponent, decorators: [{
13474
13560
  type: Component,
13475
13561
  args: [{ selector: 'the-table, [theTable]', providers: [
@@ -13489,7 +13575,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
13489
13575
  '[class.the-table-with-sticky-column]': 'freezeColumnPipe.transform(element, tablePluginOptions)',
13490
13576
  '[class.the-numberd-table]': 'element?.options?.numberedColumn',
13491
13577
  '[class.the-table-selection-hide]': 'tableStore.isCellSelecting || tableStore.isRightClicking'
13492
- }, template: "<div class=\"the-table-container\" theColumnResize>\n <div class=\"the-table-row-controls-wrapper\">\n <div\n class=\"the-table-corner-controls the-sticky-corner-controls\"\n #cornerControl\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (mousedown)=\"onSelectTable($event)\"></div>\n <div class=\"the-table-corner-controls-insert-row-marker\" *ngIf=\"!headerRow\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n <div class=\"the-table-corner-controls-insert-column-marker\" *ngIf=\"!element.options?.headerColumn\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n <div\n class=\"the-table-row-controls-button-wrap\"\n #rowControlsButtonWrapper\n *ngFor=\"let control of rowControls; let i = index; trackBy: trackByFnRowControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n <ng-container *ngIf=\"!readonly && (isInTable || tableStore.isRightClicking) && !element?.options?.numberedColumn\">\n <button\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"element?.options?.numberedColumn\">\n <div\n [contentEditable]=\"false\"\n contenteditable=\"false\"\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">{{ headerRow && i === 0 ? '' : headerRow ? i : i + 1 }}</p>\n </div>\n </ng-container>\n <the-table-insert-mark type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\"> </the-table-insert-mark>\n </div>\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup *ngIf=\"columns\">\n <col *ngFor=\"let col of columns\" [ngStyle]=\"{ width: col.width + 'px' }\" />\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n <th\n #colControl\n class=\"the-table-col-controls\"\n *ngFor=\"let control of colControls; let i = index; trackBy: trackByFnColControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0\n }\"\n (mousedown)=\"onColMousedown($event, i)\"\n >\n <the-table-insert-mark\n *ngIf=\"isInTable || tableStore.isRightClicking\"\n type=\"column\"\n [at]=\"i + 1\"\n [tableStore]=\"tableStore\"\n [parentElement]=\"colControl\"\n >\n </the-table-insert-mark>\n </th>\n </tr>\n </thead>\n <tbody #tbody>\n <slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"> </slate-children>\n </tbody>\n <div class=\"header-row-shadow header-row-left-shadow\" #headerRowLeftShadow contenteditable=\"false\"></div>\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n</div>\n" }]
13578
+ }, template: "<div class=\"the-table-container\" theColumnResize>\n <div class=\"the-table-row-controls-wrapper\" #tableRowControlsWrapper>\n <div\n class=\"the-table-corner-controls the-sticky-corner-controls\"\n #cornerControl\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (mousedown)=\"onSelectTable($event)\"></div>\n <div class=\"the-table-corner-controls-insert-row-marker\" *ngIf=\"!headerRow\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n <div class=\"the-table-corner-controls-insert-column-marker\" *ngIf=\"!element.options?.headerColumn\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n <div\n class=\"the-table-row-controls-button-wrap\"\n #rowControlsButtonWrapper\n *ngFor=\"let control of rowControls; let i = index; trackBy: trackByFnRowControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n <ng-container *ngIf=\"!readonly && (isInTable || tableStore.isRightClicking) && !element?.options?.numberedColumn\">\n <button\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"element?.options?.numberedColumn\">\n <div\n [contentEditable]=\"false\"\n contenteditable=\"false\"\n (mousedown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">{{ headerRow && i === 0 ? '' : headerRow ? i : i + 1 }}</p>\n </div>\n </ng-container>\n <the-table-insert-mark type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\"> </the-table-insert-mark>\n </div>\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup *ngIf=\"columns\">\n <col *ngFor=\"let col of columns\" [ngStyle]=\"{ width: col.width + 'px' }\" />\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n <th\n #colControl\n class=\"the-table-col-controls\"\n *ngFor=\"let control of colControls; let i = index; trackBy: trackByFnColControls\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0\n }\"\n (mousedown)=\"onColMousedown($event, i)\"\n >\n <the-table-insert-mark\n *ngIf=\"isInTable || tableStore.isRightClicking\"\n type=\"column\"\n [at]=\"i + 1\"\n [tableStore]=\"tableStore\"\n [parentElement]=\"colControl\"\n >\n </the-table-insert-mark>\n </th>\n </tr>\n </thead>\n <tbody #tbody>\n <slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"> </slate-children>\n </tbody>\n <div\n class=\"header-row-shadow header-row-left-shadow\"\n #headerRowLeftShadow\n contenteditable=\"false\"\n *ngIf=\"!element.options?.headerColumn\"\n ></div>\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n</div>\n" }]
13493
13579
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TableCellEventDispatcher }, { type: ColumnResizeNotifierSource }, { type: TableStore }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: TableService }, { type: TheTableContextMenuService }, { type: TableFreezeColumnPipe }, { type: TableFreezeRowPipe }, { type: i0.Renderer2 }, { type: TheContextService }]; }, propDecorators: { tableWrapper: [{
13494
13580
  type: ViewChild,
13495
13581
  args: ['tableWrapper', { read: ElementRef, static: true }]
@@ -13499,6 +13585,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
13499
13585
  }], tbodyElement: [{
13500
13586
  type: ViewChild,
13501
13587
  args: ['tbody', { read: ElementRef, static: true }]
13588
+ }], tableRowControlsWrapper: [{
13589
+ type: ViewChild,
13590
+ args: ['tableRowControlsWrapper', { read: ElementRef, static: false }]
13502
13591
  }], columnControlsWrapper: [{
13503
13592
  type: ViewChild,
13504
13593
  args: ['columnControlsWrapper', { read: ElementRef, static: false }]
@@ -14018,16 +14107,16 @@ class TheTdComponent extends TheBaseElementComponent {
14018
14107
  return this.tableComponent.theTableElement.nativeElement;
14019
14108
  }
14020
14109
  get scrollableElementTop() {
14021
- const cdkscrollable = this.elementRef.nativeElement.closest('[cdkscrollable]');
14022
- if (cdkscrollable) {
14023
- return cdkscrollable.getBoundingClientRect().top;
14110
+ const containerElement = this.elementRef.nativeElement.closest(this.editor.options?.scrollContainer || DEFAULT_SCROLL_CONTAINER);
14111
+ if (containerElement) {
14112
+ return containerElement.getBoundingClientRect().top;
14024
14113
  }
14025
14114
  return -window.scrollY;
14026
14115
  }
14027
14116
  get scrollableElementBottom() {
14028
- const cdkscrollable = this.elementRef.nativeElement.closest('[cdkscrollable]');
14029
- if (cdkscrollable) {
14030
- return cdkscrollable.getBoundingClientRect().bottom;
14117
+ const containerElement = this.elementRef.nativeElement.closest(this.editor.options?.scrollContainer || DEFAULT_SCROLL_CONTAINER);
14118
+ if (containerElement) {
14119
+ return containerElement.getBoundingClientRect().bottom;
14031
14120
  }
14032
14121
  return -window.scrollY;
14033
14122
  }
@@ -15772,7 +15861,6 @@ class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
15772
15861
  }
15773
15862
  ngOnInit() {
15774
15863
  this.initialize();
15775
- this.initCdkScroll();
15776
15864
  initializeDefaultMenuIcons(this.iconRegistry);
15777
15865
  this.theContextService.uploadingStatus$.subscribe(isUploading => {
15778
15866
  if (isUploading) {
@@ -15804,9 +15892,6 @@ class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
15804
15892
  ngOnDestroy() {
15805
15893
  super.ngOnDestroy();
15806
15894
  THE_EDITOR_PREVIOUS_SELECTION.delete(this.editor);
15807
- if (this.cdkScrollable) {
15808
- this.cdkScrollable.ngOnDestroy();
15809
- }
15810
15895
  }
15811
15896
  initialize() {
15812
15897
  const defaultPlugins = internalPlugins();
@@ -15836,13 +15921,6 @@ class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
15836
15921
  this.visibleQuickInsertPlus = false;
15837
15922
  }
15838
15923
  }
15839
- initCdkScroll() {
15840
- if (this.maxHeight) {
15841
- this.cdkScrollable = new CdkScrollable(this.theEditableContainer, this.scrollDispatcher, this.ngZone);
15842
- this.cdkScrollable.ngOnInit();
15843
- this.theEditableContainer.nativeElement.setAttribute('cdkScrollable', '');
15844
- }
15845
- }
15846
15924
  initializeOptions() {
15847
15925
  if (!this.theOptions) {
15848
15926
  this.theOptions = {
@@ -16324,5 +16402,5 @@ const withTestPlugin = (plugins, initValue) => {
16324
16402
  * Generated bundle index. Do not edit.
16325
16403
  */
16326
16404
 
16327
- export { ALIGN_BLOCK_TYPES, A_TAG_REL_ATTR, AlignEditor, Alignment, BLOCK_DELETE_BACKWARD_TYPES, BackgroundColors, BlockquoteEditor, CLIPBOARD_FORMAT_KEY, CODEMIRROR_PADDING_TOP, CODE_MODES, COMPONENTS, CONTAINER_BLOCKS, CONTROL_KEY, CodeEditor, ColorEditor, Colors, ColumnResizeNotifierSource, DEFAULT_LANGUAGE, DEFAULT_SCROLL_CONTAINER, DISABLED_OPERATE_TYPES, DefaultElementOptions, DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DefaultPluginMenu, DropdownMode, ELEMENT_UNIQUE_ID, ElementKinds, ErrorCodes, FontSizeTypes, FontSizes, HEADING_TYPES, HeadingEditor, HoveredCellInfo, HrEditor, IS_MAC, ImageEditor, IndentEditor, Indents, InlineCodeEditor, LINK_DEFAULT_TEXT, LIST_BLOCK_TYPES, LayoutTypes, LinkEditor, ListEditor, MarkEditor, MarkProps, MarkTypes, MentionEditor, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE, PLUGIN_COMPONENTS, PluginKeys, PluginMenuIcons, PluginMenuSvgs, Position, QuickInsertEditor, STANDARD_HEADING_TYPES, SpecialBackgroundColor, SpecialTextColor, TAB_SPACE, THE_EDITOR_CONVERSION_HINT_REF, THE_EDITOR_ORIGIN_ANCHOR, THE_EDITOR_POPOVER_REF, THE_EDITOR_PREVIOUS_SELECTION, THE_EDITOR_UUID, THE_INLINE_TOOLBAR_TYPES, THE_LISTBOX_PARENT_GROUP_TOKEN, THE_LISTBOX_PARENT_OPTION_TOKEN, THE_LISTBOX_TOKEN, THE_MODE_PROVIDER, THE_MODE_TOKEN, THE_PLUGIN_MENU_REF, THE_UPLOAD_SERVICE_TOKEN, TableCellEventDispatcher, TableEditor, TableHeaderBackgroundColor, TheBaseElementComponent, TheBaseSuggestion, TheBaseToolbarDropdown, TheBaseToolbarItem, TheContextService, TheDataMode, TheDefaultElementComponent, TheEditor, TheEditorComponent, TheEditorModule, TheImageComponent, TheListboxDirective, TheListboxGroupDirective, TheListboxOptionDirective, TheMode, TheModeConfig, ThePluginMenu, ThePluginMenuComponent, ThePluginMenuItemType, ThePreventDefaultDirective, index$1 as TheQueries, TheToolbarComponent, TheToolbarDropdownComponent, TheToolbarGroupComponent, TheToolbarGroupToken, TheToolbarItemComponent, TheToolbarService, index as TheTransforms, TodoItemEditor, ToolbarActionTypes, ToolbarAlignment, ToolbarItemType, ToolbarMoreGroup, VOID_BLOCK_TYPES, VerticalAlignEditor, VerticalAlignment, ZERO_WIDTH_CHAR, autoFocus, base64toBlob, buildPluginMenu, buildPluginMenuItemMap, coercePixelsFromCssValue, combinePlugins, copyNode, copyNodeForSafari, createEmptyParagraph, createMentionPlugin, createPluginFactory, createToolbar, createVerticalAlignPlugin, dataDeserialize, dataSerializing, deleteElementKey, extractFragment, filterTextFormat, flattenDeepPlugins, getColsTotalWidth, getEditorUUID, getElementClassByPrefix, getElementHeight, getElementWidth, getEndBlock, getPlugin, getPluginOptions, getPlugins, getRowsTotalHeight, getStartBlock, getToolbarClass, headingOptions, htmlToTheia, idCreator, inValidTypes, initializeDefaultMenuIcons, internalPlugins, isCleanEmptyParagraph, isDirectionKeydown, isPureEmptyParagraph, mergeArray, mergeDeepPlugins, mergeElementOptions, mergeOptions, nestedStructureByKey, plainToTheia, pluginsByKey, reSelection, recursionNodes, refocus, scrollIntoView, setEditorUUID, useElementStyle, withMention, withTestPlugin, withTheia };
16405
+ export { ALIGN_BLOCK_TYPES, A_TAG_REL_ATTR, AlignEditor, Alignment, BLOCK_DELETE_BACKWARD_TYPES, BackgroundColors, BlockquoteEditor, CLIPBOARD_FORMAT_KEY, CODEMIRROR_PADDING_TOP, CODE_MODES, COMPONENTS, CONTAINER_BLOCKS, CONTROL_KEY, CodeEditor, ColorEditor, Colors, ColumnResizeNotifierSource, DEFAULT_LANGUAGE, DEFAULT_SCROLL_CONTAINER, DISABLED_OPERATE_TYPES, DefaultElementOptions, DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DefaultPluginMenu, DropdownMode, ELEMENT_UNIQUE_ID, ElementKinds, ErrorCodes, FontSizeTypes, FontSizes, HEADING_TYPES, HeadingEditor, HoveredCellInfo, HrEditor, IS_MAC, ImageEditor, IndentEditor, Indents, InlineCodeEditor, LINK_DEFAULT_TEXT, LIST_BLOCK_TYPES, LayoutTypes, LinkEditor, ListEditor, MarkEditor, MarkProps, MarkTypes, MentionEditor, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE, PLUGIN_COMPONENTS, PluginKeys, PluginMenuIcons, PluginMenuSvgs, Position, QuickInsertEditor, STANDARD_HEADING_TYPES, ScrollDirection, SpecialBackgroundColor, SpecialTextColor, TAB_SPACE, THE_EDITOR_CONVERSION_HINT_REF, THE_EDITOR_ORIGIN_ANCHOR, THE_EDITOR_POPOVER_REF, THE_EDITOR_PREVIOUS_SELECTION, THE_EDITOR_UUID, THE_INLINE_TOOLBAR_TYPES, THE_LISTBOX_PARENT_GROUP_TOKEN, THE_LISTBOX_PARENT_OPTION_TOKEN, THE_LISTBOX_TOKEN, THE_MODE_PROVIDER, THE_MODE_TOKEN, THE_PLUGIN_MENU_REF, THE_UPLOAD_SERVICE_TOKEN, TableCellEventDispatcher, TableEditor, TableHeaderBackgroundColor, TheBaseElementComponent, TheBaseSuggestion, TheBaseToolbarDropdown, TheBaseToolbarItem, TheContextService, TheDataMode, TheDefaultElementComponent, TheEditor, TheEditorComponent, TheEditorModule, TheImageComponent, TheListboxDirective, TheListboxGroupDirective, TheListboxOptionDirective, TheMode, TheModeConfig, ThePluginMenu, ThePluginMenuComponent, ThePluginMenuItemType, ThePreventDefaultDirective, index$1 as TheQueries, TheToolbarComponent, TheToolbarDropdownComponent, TheToolbarGroupComponent, TheToolbarGroupToken, TheToolbarItemComponent, TheToolbarService, index as TheTransforms, TodoItemEditor, ToolbarActionTypes, ToolbarAlignment, ToolbarItemType, ToolbarMoreGroup, VOID_BLOCK_TYPES, VerticalAlignEditor, VerticalAlignment, ZERO_WIDTH_CHAR, autoFocus, base64toBlob, buildPluginMenu, buildPluginMenuItemMap, coercePixelsFromCssValue, combinePlugins, copyNode, copyNodeForSafari, createEmptyParagraph, createMentionPlugin, createPluginFactory, createToolbar, createVerticalAlignPlugin, dataDeserialize, dataSerializing, deleteElementKey, extractFragment, filterTextFormat, flattenDeepPlugins, getColsTotalWidth, getEditorUUID, getElementClassByPrefix, getElementHeight, getElementWidth, getEndBlock, getPlugin, getPluginOptions, getPlugins, getRowsTotalHeight, getStartBlock, getToolbarClass, headingOptions, htmlToTheia, idCreator, inValidTypes, initializeDefaultMenuIcons, internalPlugins, isCleanEmptyParagraph, isDirectionKeydown, isPureEmptyParagraph, mergeArray, mergeDeepPlugins, mergeElementOptions, mergeOptions, nestedStructureByKey, plainToTheia, pluginsByKey, reSelection, recursionNodes, refocus, scrollIntoView, setEditorUUID, useElementStyle, withMention, withTestPlugin, withTheia };
16328
16406
  //# sourceMappingURL=worktile-theia.mjs.map