slate-angular 20.2.19 → 20.2.21

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.
@@ -1149,7 +1149,7 @@ const buildHeightsAndAccumulatedHeights = (editor, visibleStates) => {
1149
1149
  }
1150
1150
  return { heights, accumulatedHeights };
1151
1151
  };
1152
- const calculateVirtualTopHeight = (editor, startIndex, visibleStates) => {
1152
+ const calculateAccumulatedTopHeight = (editor, startIndex, visibleStates) => {
1153
1153
  const { accumulatedHeights } = buildHeightsAndAccumulatedHeights(editor, visibleStates);
1154
1154
  const virtualTopHeight = roundTo(accumulatedHeights[startIndex] ?? 0, 1);
1155
1155
  return virtualTopHeight;
@@ -2975,23 +2975,22 @@ const createText = (text) => {
2975
2975
 
2976
2976
  const PRE_RENDERING_ELEMENT_ON_TOP_CLASS = 'pre-rendering-element-on-top';
2977
2977
  const setPreRenderingElementStyle = (editor, rootNode, isClear = false) => {
2978
- if (isClear) {
2979
- rootNode.style.top = '';
2980
- rootNode.style.width = '';
2981
- rootNode.style.position = '';
2982
- rootNode.classList.remove(PRE_RENDERING_ELEMENT_ON_TOP_CLASS);
2983
- return;
2984
- }
2985
- const preRenderingWidth = EDITOR_TO_ROOT_NODE_WIDTH.get(editor) ?? 0;
2986
- rootNode.style.top = '-100%';
2987
- if (preRenderingWidth) {
2988
- rootNode.style.width = `${preRenderingWidth}px`;
2989
- }
2990
- else {
2991
- rootNode.style.width = '100%';
2992
- }
2993
- rootNode.style.position = 'absolute';
2994
- rootNode.classList.add(PRE_RENDERING_ELEMENT_ON_TOP_CLASS);
2978
+ // if (isClear) {
2979
+ // rootNode.style.top = '';
2980
+ // rootNode.style.width = '';
2981
+ // rootNode.style.position = '';
2982
+ // rootNode.classList.remove(PRE_RENDERING_ELEMENT_ON_TOP_CLASS);
2983
+ // return;
2984
+ // }
2985
+ // const preRenderingWidth = EDITOR_TO_ROOT_NODE_WIDTH.get(editor) ?? 0;
2986
+ // rootNode.style.top = '-100%';
2987
+ // if (preRenderingWidth) {
2988
+ // rootNode.style.width = `${preRenderingWidth}px`;
2989
+ // } else {
2990
+ // rootNode.style.width = '100%';
2991
+ // }
2992
+ // rootNode.style.position = 'absolute';
2993
+ // rootNode.classList.add(PRE_RENDERING_ELEMENT_ON_TOP_CLASS);
2995
2994
  };
2996
2995
  const updatePreRenderingElementWidth = (editor) => {
2997
2996
  const editorDom = AngularEditor.toDOMNode(editor, editor);
@@ -3020,6 +3019,7 @@ class ListRender {
3020
3019
  this.differ = null;
3021
3020
  this.initialized = false;
3022
3021
  this.preRenderingHTMLElement = [];
3022
+ this.virtualTopHeightElement = null;
3023
3023
  }
3024
3024
  initialize(children, parent, childrenContext, preRenderingCount = 0, childrenIndics) {
3025
3025
  this.initialized = true;
@@ -3065,21 +3065,28 @@ class ListRender {
3065
3065
  const outletParent = this.getOutletParent();
3066
3066
  if (this.preRenderingHTMLElement.length > 0) {
3067
3067
  const preRenderingElement = [...this.preRenderingHTMLElement];
3068
+ let previousRootNode = this.virtualTopHeightElement;
3068
3069
  preRenderingElement.forEach((rootNodes, index) => {
3069
- const slateElement = this.children[index];
3070
- if (slateElement && children.indexOf(slateElement) >= 0) {
3071
- rootNodes.forEach(rootNode => {
3072
- setPreRenderingElementStyle(this.viewContext.editor, rootNode, true);
3073
- });
3074
- if (isDebug) {
3075
- debugLog('log', 'preRenderingHTMLElement index: ', this.viewContext.editor.children.indexOf(this.children[index]), 'is clear true');
3076
- }
3077
- }
3078
- else {
3079
- if (isDebug) {
3080
- debugLog('log', 'preRenderingHTMLElement index: ', this.viewContext.editor.children.indexOf(this.children[index]), 'do not clear since it would be removed soon');
3081
- }
3070
+ // const slateElement = this.children[index];
3071
+ // if (slateElement && children.indexOf(slateElement) >= 0) {
3072
+ rootNodes.forEach(rootNode => {
3073
+ setPreRenderingElementStyle(this.viewContext.editor, rootNode, true);
3074
+ previousRootNode.insertAdjacentElement('afterend', rootNode);
3075
+ previousRootNode = rootNode;
3076
+ });
3077
+ if (isDebug) {
3078
+ debugLog('log', 'preRenderingHTMLElement index: ', this.viewContext.editor.children.indexOf(this.children[index]), 'is clear true');
3082
3079
  }
3080
+ // } else {
3081
+ // if (isDebug) {
3082
+ // debugLog(
3083
+ // 'log',
3084
+ // 'preRenderingHTMLElement index: ',
3085
+ // this.viewContext.editor.children.indexOf(this.children[index]),
3086
+ // 'do not clear since it would be removed soon'
3087
+ // );
3088
+ // }
3089
+ // }
3083
3090
  });
3084
3091
  this.preRenderingHTMLElement = [];
3085
3092
  }
@@ -3194,6 +3201,10 @@ class ListRender {
3194
3201
  setPreRenderingElementStyle(this.viewContext.editor, rootNode);
3195
3202
  });
3196
3203
  this.preRenderingHTMLElement.push(rootNodes);
3204
+ if (!this.virtualTopHeightElement) {
3205
+ this.virtualTopHeightElement = rootNodes[0].parentElement.querySelector(`.${VIRTUAL_TOP_HEIGHT_CLASS_NAME}`);
3206
+ }
3207
+ this.virtualTopHeightElement.append(...rootNodes);
3197
3208
  if (isDebug) {
3198
3209
  debugLog('log', 'preRenderingHTMLElement index: ', this.viewContext.editor.children.indexOf(children[i]));
3199
3210
  }
@@ -3366,6 +3377,8 @@ function executeAfterViewInit(editor) {
3366
3377
 
3367
3378
  // not correctly clipboardData on beforeinput
3368
3379
  const forceOnDOMPaste = IS_SAFARI;
3380
+ class RemeasureConfig {
3381
+ }
3369
3382
  class SlateEditable {
3370
3383
  set virtualScroll(config) {
3371
3384
  this.virtualScrollConfig = config;
@@ -3428,7 +3441,7 @@ class SlateEditable {
3428
3441
  this.inViewportChildren = [];
3429
3442
  this.inViewportIndics = [];
3430
3443
  this.keyHeightMap = new Map();
3431
- this.indicsOfNeedBeMeasured$ = new Subject();
3444
+ this.indicsOfNeedRemeasured$ = new Subject();
3432
3445
  this.virtualScrollInitialized = false;
3433
3446
  }
3434
3447
  ngOnInit() {
@@ -3499,12 +3512,12 @@ class SlateEditable {
3499
3512
  this.listRender.initialize(childrenForRender, this.editor, this.context, 0, virtualView.inViewportIndics);
3500
3513
  }
3501
3514
  else {
3502
- const { preRenderingCount, childrenWithPreRendering, childrenWithPreRenderingIndics } = this.handlePreRendering(visibleStates);
3515
+ const { preRenderingCount, childrenWithPreRendering, childrenWithPreRenderingIndics } = this.appendPreRenderingToViewport(visibleStates);
3503
3516
  this.listRender.update(childrenWithPreRendering, this.editor, this.context, preRenderingCount, childrenWithPreRenderingIndics);
3504
3517
  }
3505
3518
  const remeasureIndics = this.getChangedIndics(previousInViewportChildren);
3506
3519
  if (remeasureIndics.length) {
3507
- this.indicsOfNeedBeMeasured$.next(remeasureIndics);
3520
+ this.indicsOfNeedRemeasured$.next({ indics: remeasureIndics, tryUpdateViewport: true });
3508
3521
  }
3509
3522
  }
3510
3523
  else {
@@ -3597,20 +3610,22 @@ class SlateEditable {
3597
3610
  this.editorScrollContainerResizeObserver.observe(this.virtualScrollConfig.scrollContainer);
3598
3611
  }
3599
3612
  let pendingRemeasureIndics = [];
3600
- this.indicsOfNeedBeMeasured$
3613
+ this.indicsOfNeedRemeasured$
3601
3614
  .pipe(tap((previousValue) => {
3602
- previousValue.forEach((index) => {
3615
+ previousValue.indics.forEach((index) => {
3603
3616
  if (!pendingRemeasureIndics.includes(index)) {
3604
3617
  pendingRemeasureIndics.push(index);
3605
3618
  }
3606
3619
  });
3607
3620
  }), debounceTime(500), filter(() => pendingRemeasureIndics.length > 0))
3608
- .subscribe(() => {
3621
+ .subscribe((previousValue) => {
3609
3622
  const changed = measureHeightByIndics(this.editor, pendingRemeasureIndics, true);
3610
3623
  if (changed) {
3611
- this.tryUpdateVirtualViewport();
3612
- if (isDebug) {
3613
- debugLog('log', 'exist pendingRemeasureIndics: ', pendingRemeasureIndics, 'will try to update virtual viewport');
3624
+ if (previousValue.tryUpdateViewport) {
3625
+ this.tryUpdateVirtualViewport();
3626
+ if (isDebug) {
3627
+ debugLog('log', 'exist pendingRemeasureIndics: ', pendingRemeasureIndics, 'will try to update virtual viewport');
3628
+ }
3614
3629
  }
3615
3630
  }
3616
3631
  pendingRemeasureIndics = [];
@@ -3641,7 +3656,7 @@ class SlateEditable {
3641
3656
  }
3642
3657
  return parseFloat(this.virtualTopHeightElement.style.height.replace('px', ''));
3643
3658
  }
3644
- handlePreRendering(visibleStates) {
3659
+ appendPreRenderingToViewport(visibleStates) {
3645
3660
  let preRenderingCount = 0;
3646
3661
  const childrenWithPreRendering = [...this.inViewportChildren];
3647
3662
  const childrenWithPreRenderingIndics = [...this.inViewportIndics];
@@ -3666,20 +3681,41 @@ class SlateEditable {
3666
3681
  }
3667
3682
  return { preRenderingCount, childrenWithPreRendering, childrenWithPreRenderingIndics };
3668
3683
  }
3684
+ calculateIndicsStartAndEndBySelection() {
3685
+ if (!this.editor.selection || Range.isCollapsed(this.editor.selection)) {
3686
+ return;
3687
+ }
3688
+ const isBackward = Range.isBackward(this.editor.selection);
3689
+ const anchorIndex = this.editor.selection.anchor.path[0];
3690
+ const focusIndex = this.editor.selection.focus.path[0];
3691
+ let minStartIndex = anchorIndex;
3692
+ let minEndIndex = focusIndex;
3693
+ if (isBackward) {
3694
+ minStartIndex = focusIndex;
3695
+ minEndIndex = anchorIndex;
3696
+ }
3697
+ if (minStartIndex < this.inViewportIndics[0]) {
3698
+ minStartIndex = this.inViewportIndics[0];
3699
+ }
3700
+ if (minEndIndex > this.inViewportIndics[this.inViewportIndics.length - 1]) {
3701
+ minEndIndex = this.inViewportIndics[this.inViewportIndics.length - 1];
3702
+ }
3703
+ return { minStartIndex, minEndIndex };
3704
+ }
3669
3705
  tryUpdateVirtualViewport() {
3670
3706
  if (isDebug) {
3671
3707
  debugLog('log', 'tryUpdateVirtualViewport');
3672
3708
  }
3673
3709
  const isFromScrollTo = EDITOR_TO_IS_FROM_SCROLL_TO.get(this.editor);
3674
3710
  if (this.inViewportIndics.length > 0 && !isFromScrollTo) {
3675
- const topHeight = this.getActualVirtualTopHeight();
3711
+ const realTopHeight = this.getActualVirtualTopHeight();
3676
3712
  const visibleStates = this.editor.getAllVisibleStates();
3677
- const refreshVirtualTopHeight = calculateVirtualTopHeight(this.editor, this.inViewportIndics[0], visibleStates);
3678
- if (topHeight !== refreshVirtualTopHeight) {
3713
+ const accumulateTopHeigh = calculateAccumulatedTopHeight(this.editor, this.inViewportIndics[0], visibleStates);
3714
+ if (realTopHeight !== accumulateTopHeigh) {
3679
3715
  if (isDebug) {
3680
- debugLog('log', 'update top height since dirty state,增加高度: ', refreshVirtualTopHeight - topHeight);
3716
+ debugLog('log', 'update top height since dirty state,增加高度: ', accumulateTopHeigh - realTopHeight);
3681
3717
  }
3682
- this.setVirtualSpaceHeight(refreshVirtualTopHeight);
3718
+ this.setVirtualSpaceHeight(accumulateTopHeigh);
3683
3719
  return;
3684
3720
  }
3685
3721
  }
@@ -3702,7 +3738,7 @@ class SlateEditable {
3702
3738
  if (diff.isDifferent) {
3703
3739
  this.applyVirtualView(virtualView);
3704
3740
  if (this.listRender.initialized) {
3705
- const { preRenderingCount, childrenWithPreRendering, childrenWithPreRenderingIndics } = this.handlePreRendering(visibleStates);
3741
+ const { preRenderingCount, childrenWithPreRendering, childrenWithPreRenderingIndics } = this.appendPreRenderingToViewport(visibleStates);
3706
3742
  this.listRender.update(childrenWithPreRendering, this.editor, this.context, preRenderingCount, childrenWithPreRenderingIndics);
3707
3743
  if (diff.needAddOnTop && !isFromScrollTo) {
3708
3744
  const remeasureAddedIndics = diff.changedIndexesOfTop;
@@ -3760,10 +3796,13 @@ class SlateEditable {
3760
3796
  endPosition = startPosition + viewportHeight - (businessTop - scrollTop);
3761
3797
  }
3762
3798
  let accumulatedOffset = 0;
3763
- let inViewportStartIndex = -1;
3764
- const visible = [];
3799
+ const inViewportChildren = [];
3765
3800
  const inViewportIndics = [];
3766
- for (let i = 0; i < elementLength && accumulatedOffset < endPosition; i++) {
3801
+ const indicsBySelection = this.calculateIndicsStartAndEndBySelection();
3802
+ if (isDebug) {
3803
+ debugLog('log', 'indicsBySelection: ', indicsBySelection);
3804
+ }
3805
+ for (let i = 0; i < elementLength; i++) {
3767
3806
  const currentHeight = heights[i];
3768
3807
  const nextOffset = accumulatedOffset + currentHeight;
3769
3808
  const isVisible = visibleStates[i];
@@ -3771,20 +3810,30 @@ class SlateEditable {
3771
3810
  accumulatedOffset = nextOffset;
3772
3811
  continue;
3773
3812
  }
3774
- // 可视区域有交集,加入渲染
3775
- if (nextOffset > startPosition && accumulatedOffset < endPosition) {
3776
- if (inViewportStartIndex === -1)
3777
- inViewportStartIndex = i; // 第一个相交起始位置
3778
- visible.push(children[i]);
3779
- inViewportIndics.push(i);
3813
+ if ((indicsBySelection && i > indicsBySelection.minEndIndex && accumulatedOffset >= endPosition) ||
3814
+ (!indicsBySelection && accumulatedOffset >= endPosition)) {
3815
+ break;
3816
+ }
3817
+ if ((indicsBySelection && i < indicsBySelection.minStartIndex && nextOffset <= startPosition) ||
3818
+ (!indicsBySelection && nextOffset <= startPosition)) {
3819
+ accumulatedOffset = nextOffset;
3820
+ continue;
3780
3821
  }
3822
+ inViewportChildren.push(children[i]);
3823
+ inViewportIndics.push(i);
3781
3824
  accumulatedOffset = nextOffset;
3782
3825
  }
3783
- const inViewportEndIndex = inViewportStartIndex === -1 ? elementLength - 1 : (inViewportIndics[inViewportIndics.length - 1] ?? inViewportStartIndex);
3784
- const top = inViewportStartIndex === -1 ? 0 : accumulatedHeights[inViewportStartIndex];
3826
+ if (inViewportIndics.length === 0) {
3827
+ inViewportChildren.push(...children);
3828
+ inViewportIndics.push(...Array.from({ length: elementLength }, (_, i) => i));
3829
+ }
3830
+ const inViewportStartIndex = inViewportIndics[0];
3831
+ const inViewportEndIndex = inViewportIndics[inViewportIndics.length - 1];
3832
+ const top = accumulatedHeights[inViewportStartIndex];
3833
+ // todo: toggleHeight: toggleHeight 逻辑需要优化
3785
3834
  const bottom = totalHeight - accumulatedHeights[inViewportEndIndex + 1];
3786
3835
  return {
3787
- inViewportChildren: visible.length ? visible : children,
3836
+ inViewportChildren,
3788
3837
  inViewportIndics,
3789
3838
  top,
3790
3839
  bottom,
@@ -4179,11 +4228,11 @@ class SlateEditable {
4179
4228
  }
4180
4229
  this.applyVirtualView(virtualView);
4181
4230
  }
4182
- const { preRenderingCount, childrenWithPreRendering, childrenWithPreRenderingIndics } = this.handlePreRendering(visibleStates);
4231
+ const { preRenderingCount, childrenWithPreRendering, childrenWithPreRenderingIndics } = this.appendPreRenderingToViewport(visibleStates);
4183
4232
  this.listRender.update(childrenWithPreRendering, this.editor, this.context, preRenderingCount, childrenWithPreRenderingIndics);
4184
4233
  const remeasureIndics = this.getChangedIndics(previousInViewportChildren);
4185
4234
  if (remeasureIndics.length) {
4186
- this.indicsOfNeedBeMeasured$.next(remeasureIndics);
4235
+ this.indicsOfNeedRemeasured$.next({ indics: remeasureIndics, tryUpdateViewport: true });
4187
4236
  }
4188
4237
  }
4189
4238
  updateContext() {
@@ -4536,7 +4585,9 @@ class SlateEditable {
4536
4585
  this.forceRender();
4537
4586
  }
4538
4587
  }
4539
- if (AngularEditor.hasEditableTarget(this.editor, event.target) && !this.isDOMEventHandled(event, this.compositionStart)) {
4588
+ if (AngularEditor.hasEditableTarget(this.editor, event.target) &&
4589
+ !isSelectionInsideVoid(this.editor) &&
4590
+ !this.isDOMEventHandled(event, this.compositionStart)) {
4540
4591
  this.isComposing = true;
4541
4592
  }
4542
4593
  this.render();
@@ -4548,7 +4599,9 @@ class SlateEditable {
4548
4599
  if (!event.data && !Range.isCollapsed(this.editor.selection)) {
4549
4600
  Transforms.delete(this.editor);
4550
4601
  }
4551
- if (AngularEditor.hasEditableTarget(this.editor, event.target) && !this.isDOMEventHandled(event, this.compositionEnd)) {
4602
+ if (AngularEditor.hasEditableTarget(this.editor, event.target) &&
4603
+ !isSelectionInsideVoid(this.editor) &&
4604
+ !this.isDOMEventHandled(event, this.compositionEnd)) {
4552
4605
  // COMPAT: In Chrome/Firefox, `beforeinput` events for compositions
4553
4606
  // aren't correct and never fire the "insertFromComposition"
4554
4607
  // type that we need. So instead, insert whenever a composition
@@ -4558,7 +4611,7 @@ class SlateEditable {
4558
4611
  Editor.insertText(this.editor, event.data);
4559
4612
  }
4560
4613
  // COMPAT: In Firefox 87.0 CompositionEnd fire twice
4561
- // so we need avoid repeat isnertText by isComposing === true,
4614
+ // so we need avoid repeat insertText by isComposing === true,
4562
4615
  this.isComposing = false;
4563
4616
  }
4564
4617
  this.render();
@@ -5077,6 +5130,14 @@ const isTargetInsideVoid = (editor, target) => {
5077
5130
  catch (error) { }
5078
5131
  return slateNode && Element.isElement(slateNode) && Editor.isVoid(editor, slateNode);
5079
5132
  };
5133
+ const isSelectionInsideVoid = (editor) => {
5134
+ const selection = editor.selection;
5135
+ if (selection && Range.isCollapsed(selection)) {
5136
+ const currentNode = Node.parent(editor, selection.anchor.path);
5137
+ return Element.isElement(currentNode) && Editor.isVoid(editor, currentNode);
5138
+ }
5139
+ return false;
5140
+ };
5080
5141
  const hasStringTarget = (domSelection) => {
5081
5142
  return ((domSelection.anchorNode.parentElement.hasAttribute('data-slate-string') ||
5082
5143
  domSelection.anchorNode.parentElement.hasAttribute('data-slate-zero-width')) &&
@@ -5459,5 +5520,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
5459
5520
  * Generated bundle index. Do not edit.
5460
5521
  */
5461
5522
 
5462
- export { AngularEditor, BaseComponent, BaseElementComponent, BaseElementFlavour, BaseFlavour, BaseLeafComponent, BaseLeafFlavour, BaseTextComponent, BaseTextFlavour, BlockCardRef, DEFAULT_ELEMENT_HEIGHT, DefaultTextFlavour, EDITOR_TO_AFTER_VIEW_INIT_QUEUE, EDITOR_TO_BUSINESS_TOP, EDITOR_TO_IS_FROM_SCROLL_TO, EDITOR_TO_ROOT_NODE_WIDTH, EDITOR_TO_VIEWPORT_HEIGHT, EDITOR_TO_VIRTUAL_SCROLL_CONFIG, EDITOR_TO_VIRTUAL_SCROLL_SELECTION, ELEMENT_KEY_TO_HEIGHTS, ELEMENT_TO_COMPONENT, FAKE_LEFT_BLOCK_CARD_OFFSET, FAKE_RIGHT_BLOCK_CARD_OFFSET, FlavourRef, HAS_BEFORE_INPUT_SUPPORT, IS_ANDROID, IS_APPLE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_FIREFOX_LEGACY, IS_IOS, IS_QQBROWSER, IS_SAFARI, IS_UC_MOBILE, IS_WECHATBROWSER, PLACEHOLDER_SYMBOL, SLATE_BLOCK_CARD_CLASS_NAME, SLATE_DEBUG_KEY, SLATE_DEBUG_KEY_SCROLL_TOP, SlateBlockCard, SlateChildrenOutlet, SlateEditable, SlateErrorCode, SlateFragmentAttributeKey, SlateModule, SlateString, VIRTUAL_BOTTOM_HEIGHT_CLASS_NAME, VIRTUAL_CENTER_OUTLET_CLASS_NAME, VIRTUAL_SCROLL_DEFAULT_BLOCK_HEIGHT, VIRTUAL_TOP_HEIGHT_CLASS_NAME, VoidTextFlavour, blobAsString, buildHTMLText, buildHeightsAndAccumulatedHeights, cacheHeightByElement, calcBusinessTop, calcHeightByElement, calculateVirtualTopHeight, check, clearMinHeightByElement, completeTable, createClipboardData, createText, createThrottleRAF, debugLog, defaultScrollSelectionIntoView, fallbackCopyText, getBlockCardByNativeElement, getBusinessTop, getCachedHeightByElement, getCardTargetAttribute, getClipboardData, getClipboardFromHTMLText, getContentHeight, getDataTransferClipboard, getDataTransferClipboardText, getNavigatorClipboard, getPlainText, getScrollContainer, getSelection, getSlateFragmentAttribute, getViewportHeight, getZeroTextNode, hasAfterContextChange, hasBeforeContextChange, hasBlockCard, hasBlockCardWithNode, hotkeys, isCardCenterByTargetAttr, isCardLeft, isCardLeftByTargetAttr, isCardRightByTargetAttr, isClipboardFile, isClipboardReadSupported, isClipboardWriteSupported, isClipboardWriteTextSupported, isComponentType, isDOMText, isDebug, isDebugScrollTop, isDecoratorRangeListEqual, isFlavourType, isInvalidTable, isTemplateRef, isValid, isValidNumber, measureHeightByIndics, normalize, roundTo, scrollToElement, setClipboardData, setDataTransferClipboard, setDataTransferClipboardText, setMinHeightByElement, setNavigatorClipboard, shallowCompare, stripHtml, withAngular };
5523
+ export { AngularEditor, BaseComponent, BaseElementComponent, BaseElementFlavour, BaseFlavour, BaseLeafComponent, BaseLeafFlavour, BaseTextComponent, BaseTextFlavour, BlockCardRef, DEFAULT_ELEMENT_HEIGHT, DefaultTextFlavour, EDITOR_TO_AFTER_VIEW_INIT_QUEUE, EDITOR_TO_BUSINESS_TOP, EDITOR_TO_IS_FROM_SCROLL_TO, EDITOR_TO_ROOT_NODE_WIDTH, EDITOR_TO_VIEWPORT_HEIGHT, EDITOR_TO_VIRTUAL_SCROLL_CONFIG, EDITOR_TO_VIRTUAL_SCROLL_SELECTION, ELEMENT_KEY_TO_HEIGHTS, ELEMENT_TO_COMPONENT, FAKE_LEFT_BLOCK_CARD_OFFSET, FAKE_RIGHT_BLOCK_CARD_OFFSET, FlavourRef, HAS_BEFORE_INPUT_SUPPORT, IS_ANDROID, IS_APPLE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_FIREFOX_LEGACY, IS_IOS, IS_QQBROWSER, IS_SAFARI, IS_UC_MOBILE, IS_WECHATBROWSER, PLACEHOLDER_SYMBOL, SLATE_BLOCK_CARD_CLASS_NAME, SLATE_DEBUG_KEY, SLATE_DEBUG_KEY_SCROLL_TOP, SlateBlockCard, SlateChildrenOutlet, SlateEditable, SlateErrorCode, SlateFragmentAttributeKey, SlateModule, SlateString, VIRTUAL_BOTTOM_HEIGHT_CLASS_NAME, VIRTUAL_CENTER_OUTLET_CLASS_NAME, VIRTUAL_SCROLL_DEFAULT_BLOCK_HEIGHT, VIRTUAL_TOP_HEIGHT_CLASS_NAME, VoidTextFlavour, blobAsString, buildHTMLText, buildHeightsAndAccumulatedHeights, cacheHeightByElement, calcBusinessTop, calcHeightByElement, calculateAccumulatedTopHeight, check, clearMinHeightByElement, completeTable, createClipboardData, createText, createThrottleRAF, debugLog, defaultScrollSelectionIntoView, fallbackCopyText, getBlockCardByNativeElement, getBusinessTop, getCachedHeightByElement, getCardTargetAttribute, getClipboardData, getClipboardFromHTMLText, getContentHeight, getDataTransferClipboard, getDataTransferClipboardText, getNavigatorClipboard, getPlainText, getScrollContainer, getSelection, getSlateFragmentAttribute, getViewportHeight, getZeroTextNode, hasAfterContextChange, hasBeforeContextChange, hasBlockCard, hasBlockCardWithNode, hotkeys, isCardCenterByTargetAttr, isCardLeft, isCardLeftByTargetAttr, isCardRightByTargetAttr, isClipboardFile, isClipboardReadSupported, isClipboardWriteSupported, isClipboardWriteTextSupported, isComponentType, isDOMText, isDebug, isDebugScrollTop, isDecoratorRangeListEqual, isFlavourType, isInvalidTable, isSelectionInsideVoid, isTemplateRef, isValid, isValidNumber, measureHeightByIndics, normalize, roundTo, scrollToElement, setClipboardData, setDataTransferClipboard, setDataTransferClipboardText, setMinHeightByElement, setNavigatorClipboard, shallowCompare, stripHtml, withAngular };
5463
5524
  //# sourceMappingURL=slate-angular.mjs.map