@univerjs/core 0.2.12 → 0.2.14

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 (35) hide show
  1. package/lib/cjs/index.js +5 -5
  2. package/lib/es/index.js +438 -20
  3. package/lib/types/docs/data-model/document-data-model.d.ts +4 -4
  4. package/lib/types/docs/data-model/index.d.ts +1 -0
  5. package/lib/types/docs/data-model/text-x/build-utils/__test__/custom-range.spec.d.ts +16 -0
  6. package/lib/types/docs/data-model/text-x/build-utils/custom-range.d.ts +14 -0
  7. package/lib/types/docs/data-model/text-x/build-utils/index.d.ts +28 -0
  8. package/lib/types/docs/data-model/text-x/build-utils/selection.d.ts +29 -0
  9. package/lib/types/docs/data-model/text-x/build-utils/text-x-utils.d.ts +38 -0
  10. package/lib/types/docs/data-model/text-x/utils.d.ts +1 -1
  11. package/lib/types/services/__tests__/index.d.ts +6 -6
  12. package/lib/types/services/authz-io/type.d.ts +1 -1
  13. package/lib/types/services/command/command.service.d.ts +3 -3
  14. package/lib/types/services/config/config.service.d.ts +1 -1
  15. package/lib/types/services/context/context.service.d.ts +1 -1
  16. package/lib/types/services/instance/instance.service.d.ts +1 -1
  17. package/lib/types/services/local-storage/local-storage.service.d.ts +1 -1
  18. package/lib/types/services/log/log.service.d.ts +1 -1
  19. package/lib/types/services/permission/type.d.ts +1 -1
  20. package/lib/types/services/resource-loader/type.d.ts +1 -1
  21. package/lib/types/services/resource-manager/type.d.ts +1 -1
  22. package/lib/types/services/undoredo/undoredo.service.d.ts +1 -1
  23. package/lib/types/shared/common.d.ts +3 -2
  24. package/lib/types/sheets/row-manager.d.ts +2 -2
  25. package/lib/types/sheets/typedef.d.ts +25 -5
  26. package/lib/types/sheets/view-model.d.ts +1 -1
  27. package/lib/types/sheets/worksheet.d.ts +13 -7
  28. package/lib/types/slides/slide-model.d.ts +3 -3
  29. package/lib/types/types/const/const.d.ts +0 -4
  30. package/lib/types/types/enum/delete-direction.d.ts +19 -0
  31. package/lib/types/types/enum/index.d.ts +1 -0
  32. package/lib/types/types/interfaces/i-need-check-disposable.d.ts +4 -0
  33. package/lib/types/types/interfaces/index.d.ts +1 -0
  34. package/lib/umd/index.js +5 -5
  35. package/package.json +5 -5
package/lib/es/index.js CHANGED
@@ -4,7 +4,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
5
  import { Subject, BehaviorSubject, Observable, filter, merge, timer, map, distinctUntilChanged, skip, of, combineLatest } from "rxjs";
6
6
  import { filter as filter$1, debounceTime, first, map as map$1 } from "rxjs/operators";
7
- import { Tools as Tools$1, normalizeTextRuns as normalizeTextRuns$1 } from "@univerjs/core";
7
+ import { Tools as Tools$1, normalizeTextRuns as normalizeTextRuns$1, generateRandomId as generateRandomId$1, DataStreamTreeTokenType as DataStreamTreeTokenType$1 } from "@univerjs/core";
8
8
  import * as React from "react";
9
9
  import React__default, { useState, useEffect, useRef, useMemo, createContext, useCallback, useContext } from "react";
10
10
  function _mergeNamespaces(n, m) {
@@ -110,7 +110,7 @@ function getReverseDirection(direction) {
110
110
  }
111
111
  }
112
112
  __name(getReverseDirection, "getReverseDirection");
113
- var FormatType = /* @__PURE__ */ ((FormatType2) => (FormatType2[FormatType2.NUMBER_FORMAT_TYPE_UNSPECIFIED = 0] = "NUMBER_FORMAT_TYPE_UNSPECIFIED", FormatType2[FormatType2.TEXT = 1] = "TEXT", FormatType2[FormatType2.NUMBER = 2] = "NUMBER", FormatType2[FormatType2.PERCENT = 3] = "PERCENT", FormatType2[FormatType2.CURRENCY = 4] = "CURRENCY", FormatType2[FormatType2.DATE = 5] = "DATE", FormatType2[FormatType2.TIME = 6] = "TIME", FormatType2[FormatType2.DATE_TIME = 7] = "DATE_TIME", FormatType2[FormatType2.SCIENTIFIC = 8] = "SCIENTIFIC", FormatType2))(FormatType || {}), InterpolationPointType = /* @__PURE__ */ ((InterpolationPointType2) => (InterpolationPointType2[InterpolationPointType2.INTERPOLATION_POINT_TYPE_UNSPECIFIED = 0] = "INTERPOLATION_POINT_TYPE_UNSPECIFIED", InterpolationPointType2[InterpolationPointType2.MIN = 1] = "MIN", InterpolationPointType2[InterpolationPointType2.MAX = 2] = "MAX", InterpolationPointType2[InterpolationPointType2.NUMBER = 3] = "NUMBER", InterpolationPointType2[InterpolationPointType2.PERCENT = 4] = "PERCENT", InterpolationPointType2[InterpolationPointType2.PERCENTILE = 5] = "PERCENTILE", InterpolationPointType2))(InterpolationPointType || {}), LocaleType = /* @__PURE__ */ ((LocaleType2) => (LocaleType2.EN_US = "enUS", LocaleType2.ZH_CN = "zhCN", LocaleType2.RU_RU = "ruRU", LocaleType2.ZH_TW = "zhTW", LocaleType2.VI_VN = "viVN", LocaleType2))(LocaleType || {}), ProtectionType = /* @__PURE__ */ ((ProtectionType2) => (ProtectionType2[ProtectionType2.RANGE = 0] = "RANGE", ProtectionType2[ProtectionType2.SHEET = 1] = "SHEET", ProtectionType2))(ProtectionType || {}), RelativeDate = /* @__PURE__ */ ((RelativeDate2) => (RelativeDate2[RelativeDate2.RELATIVE_DATE_UNSPECIFIED = 0] = "RELATIVE_DATE_UNSPECIFIED", RelativeDate2[RelativeDate2.PAST_YEAR = 1] = "PAST_YEAR", RelativeDate2[RelativeDate2.PAST_MONTH = 2] = "PAST_MONTH", RelativeDate2[RelativeDate2.PAST_WEEK = 3] = "PAST_WEEK", RelativeDate2[RelativeDate2.YESTERDAY = 4] = "YESTERDAY", RelativeDate2[RelativeDate2.TODAY = 5] = "TODAY", RelativeDate2[RelativeDate2.TOMORROW = 6] = "TOMORROW", RelativeDate2))(RelativeDate || {}), SheetTypes = /* @__PURE__ */ ((SheetTypes2) => (SheetTypes2[SheetTypes2.GRID = 0] = "GRID", SheetTypes2[SheetTypes2.KANBAN = 1] = "KANBAN", SheetTypes2[SheetTypes2.GANTT = 2] = "GANTT", SheetTypes2))(SheetTypes || {}), TextDirection = /* @__PURE__ */ ((TextDirection2) => (TextDirection2[TextDirection2.UNSPECIFIED = 0] = "UNSPECIFIED", TextDirection2[TextDirection2.LEFT_TO_RIGHT = 1] = "LEFT_TO_RIGHT", TextDirection2[TextDirection2.RIGHT_TO_LEFT = 2] = "RIGHT_TO_LEFT", TextDirection2))(TextDirection || {}), TextDecoration = /* @__PURE__ */ ((TextDecoration2) => (TextDecoration2[TextDecoration2.DASH = 0] = "DASH", TextDecoration2[TextDecoration2.DASH_DOT_DOT_HEAVY = 1] = "DASH_DOT_DOT_HEAVY", TextDecoration2[TextDecoration2.DASH_DOT_HEAVY = 2] = "DASH_DOT_HEAVY", TextDecoration2[TextDecoration2.DASHED_HEAVY = 3] = "DASHED_HEAVY", TextDecoration2[TextDecoration2.DASH_LONG = 4] = "DASH_LONG", TextDecoration2[TextDecoration2.DASH_LONG_HEAVY = 5] = "DASH_LONG_HEAVY", TextDecoration2[TextDecoration2.DOT_DASH = 6] = "DOT_DASH", TextDecoration2[TextDecoration2.DOT_DOT_DASH = 7] = "DOT_DOT_DASH", TextDecoration2[TextDecoration2.DOTTED = 8] = "DOTTED", TextDecoration2[TextDecoration2.DOTTED_HEAVY = 9] = "DOTTED_HEAVY", TextDecoration2[TextDecoration2.DOUBLE = 10] = "DOUBLE", TextDecoration2[TextDecoration2.NONE = 11] = "NONE", TextDecoration2[TextDecoration2.SINGLE = 12] = "SINGLE", TextDecoration2[TextDecoration2.THICK = 13] = "THICK", TextDecoration2[TextDecoration2.WAVE = 14] = "WAVE", TextDecoration2[TextDecoration2.WAVY_DOUBLE = 15] = "WAVY_DOUBLE", TextDecoration2[TextDecoration2.WAVY_HEAVY = 16] = "WAVY_HEAVY", TextDecoration2[TextDecoration2.WORDS = 17] = "WORDS", TextDecoration2))(TextDecoration || {}), HorizontalAlign = /* @__PURE__ */ ((HorizontalAlign2) => (HorizontalAlign2[HorizontalAlign2.UNSPECIFIED = 0] = "UNSPECIFIED", HorizontalAlign2[HorizontalAlign2.LEFT = 1] = "LEFT", HorizontalAlign2[HorizontalAlign2.CENTER = 2] = "CENTER", HorizontalAlign2[HorizontalAlign2.RIGHT = 3] = "RIGHT", HorizontalAlign2[HorizontalAlign2.JUSTIFIED = 4] = "JUSTIFIED", HorizontalAlign2[HorizontalAlign2.BOTH = 5] = "BOTH", HorizontalAlign2[HorizontalAlign2.DISTRIBUTED = 6] = "DISTRIBUTED", HorizontalAlign2))(HorizontalAlign || {}), VerticalAlign = /* @__PURE__ */ ((VerticalAlign2) => (VerticalAlign2[VerticalAlign2.UNSPECIFIED = 0] = "UNSPECIFIED", VerticalAlign2[VerticalAlign2.TOP = 1] = "TOP", VerticalAlign2[VerticalAlign2.MIDDLE = 2] = "MIDDLE", VerticalAlign2[VerticalAlign2.BOTTOM = 3] = "BOTTOM", VerticalAlign2))(VerticalAlign || {}), WrapStrategy = /* @__PURE__ */ ((WrapStrategy2) => (WrapStrategy2[WrapStrategy2.UNSPECIFIED = 0] = "UNSPECIFIED", WrapStrategy2[WrapStrategy2.OVERFLOW = 1] = "OVERFLOW", WrapStrategy2[WrapStrategy2.CLIP = 2] = "CLIP", WrapStrategy2[WrapStrategy2.WRAP = 3] = "WRAP", WrapStrategy2))(WrapStrategy || {}), FontItalic = /* @__PURE__ */ ((FontItalic2) => (FontItalic2[FontItalic2.NORMAL = 0] = "NORMAL", FontItalic2[FontItalic2.ITALIC = 1] = "ITALIC", FontItalic2))(FontItalic || {}), FontWeight = /* @__PURE__ */ ((FontWeight2) => (FontWeight2[FontWeight2.NORMAL = 0] = "NORMAL", FontWeight2[FontWeight2.BOLD = 1] = "BOLD", FontWeight2))(FontWeight || {}), BaselineOffset = /* @__PURE__ */ ((BaselineOffset2) => (BaselineOffset2[BaselineOffset2.NORMAL = 1] = "NORMAL", BaselineOffset2[BaselineOffset2.SUBSCRIPT = 2] = "SUBSCRIPT", BaselineOffset2[BaselineOffset2.SUPERSCRIPT = 3] = "SUPERSCRIPT", BaselineOffset2))(BaselineOffset || {}), BooleanNumber = /* @__PURE__ */ ((BooleanNumber2) => (BooleanNumber2[BooleanNumber2.FALSE = 0] = "FALSE", BooleanNumber2[BooleanNumber2.TRUE = 1] = "TRUE", BooleanNumber2))(BooleanNumber || {}), CellValueType = /* @__PURE__ */ ((CellValueType2) => (CellValueType2[CellValueType2.STRING = 1] = "STRING", CellValueType2[CellValueType2.NUMBER = 2] = "NUMBER", CellValueType2[CellValueType2.BOOLEAN = 3] = "BOOLEAN", CellValueType2[CellValueType2.FORCE_STRING = 4] = "FORCE_STRING", CellValueType2))(CellValueType || {}), ThemeColorType = /* @__PURE__ */ ((ThemeColorType2) => (ThemeColorType2[ThemeColorType2.DARK1 = 0] = "DARK1", ThemeColorType2[ThemeColorType2.LIGHT1 = 1] = "LIGHT1", ThemeColorType2[ThemeColorType2.DARK2 = 2] = "DARK2", ThemeColorType2[ThemeColorType2.LIGHT2 = 3] = "LIGHT2", ThemeColorType2[ThemeColorType2.ACCENT1 = 4] = "ACCENT1", ThemeColorType2[ThemeColorType2.ACCENT2 = 5] = "ACCENT2", ThemeColorType2[ThemeColorType2.ACCENT3 = 6] = "ACCENT3", ThemeColorType2[ThemeColorType2.ACCENT4 = 7] = "ACCENT4", ThemeColorType2[ThemeColorType2.ACCENT5 = 8] = "ACCENT5", ThemeColorType2[ThemeColorType2.ACCENT6 = 9] = "ACCENT6", ThemeColorType2[ThemeColorType2.HYPERLINK = 10] = "HYPERLINK", ThemeColorType2[ThemeColorType2.FOLLOWED_HYPERLINK = 11] = "FOLLOWED_HYPERLINK", ThemeColorType2))(ThemeColorType || {}), ThemeColors = /* @__PURE__ */ ((ThemeColors2) => (ThemeColors2.OFFICE = "Office", ThemeColors2.OFFICE_2007_2010 = "Office 2007-2010", ThemeColors2.GRAYSCALE = "Grayscale", ThemeColors2.BLUE_WARM = "Blue Warm", ThemeColors2.BLUE = "Blue", ThemeColors2.BLUE_II = "Blue II", ThemeColors2.BLUE_GREEN = "Blue Green", ThemeColors2.GREEN = "Green", ThemeColors2.GREEN_YELLOW = "Green Yellow", ThemeColors2.YELLOW = "Yellow", ThemeColors2.YELLOW_ORANGE = "Yellow Orange", ThemeColors2.ORANGE = "Orange", ThemeColors2.ORANGE_RED = "Orange Red", ThemeColors2.RED_ORANGE = "Red Orange", ThemeColors2.RED = "Red", ThemeColors2.RED_VIOLET = "Red Violet", ThemeColors2.VIOLET = "Violet", ThemeColors2.VIOLET_II = "Violet II", ThemeColors2.MEDIAN = "Median", ThemeColors2.PAPER = "Paper", ThemeColors2.MARQUEE = "Marquee", ThemeColors2.SLIPSTREAM = "Slipstream", ThemeColors2.Aspect = "Aspect", ThemeColors2))(ThemeColors || {}), BasicShapes = /* @__PURE__ */ ((BasicShapes2) => (BasicShapes2.Line = "line", BasicShapes2.LineInv = "lineInv", BasicShapes2.Triangle = "triangle", BasicShapes2.RtTriangle = "rtTriangle", BasicShapes2.Rect = "rect", BasicShapes2.Diamond = "diamond", BasicShapes2.Parallelogram = "parallelogram", BasicShapes2.Trapezoid = "trapezoid", BasicShapes2.NonIsocelesTrapezoid = "nonIsocelesTrapezoid", BasicShapes2.Pentagon = "pentagon", BasicShapes2.Hexagon = "hexagon", BasicShapes2.Heptagon = "heptagon", BasicShapes2.Octagon = "octagon", BasicShapes2.Decagon = "decagon", BasicShapes2.Dodecagon = "dodecagon", BasicShapes2.Star4 = "star4", BasicShapes2.Star5 = "star5", BasicShapes2.Star6 = "star6", BasicShapes2.Star7 = "star7", BasicShapes2.Star8 = "star8", BasicShapes2.Star10 = "star10", BasicShapes2.Star12 = "star12", BasicShapes2.Star16 = "star16", BasicShapes2.Star24 = "star24", BasicShapes2.Star32 = "star32", BasicShapes2.RoundRect = "roundRect", BasicShapes2.Round1Rect = "round1Rect", BasicShapes2.Round2SameRect = "round2SameRect", BasicShapes2.Round2DiagRect = "round2DiagRect", BasicShapes2.Ellipse = "ellipse", BasicShapes2))(BasicShapes || {}), ArrowsAndMarkersShapes = /* @__PURE__ */ ((ArrowsAndMarkersShapes2) => (ArrowsAndMarkersShapes2.RightArrow = "rightArrow", ArrowsAndMarkersShapes2.LeftArrow = "leftArrow", ArrowsAndMarkersShapes2.UpArrow = "upArrow", ArrowsAndMarkersShapes2.DownArrow = "downArrow", ArrowsAndMarkersShapes2.LeftRightArrow = "leftRightArrow", ArrowsAndMarkersShapes2.UpDownArrow = "upDownArrow", ArrowsAndMarkersShapes2.QuadArrow = "quadArrow", ArrowsAndMarkersShapes2.LeftRightUpArrow = "leftRightUpArrow", ArrowsAndMarkersShapes2.BentArrow = "bentArrow", ArrowsAndMarkersShapes2.UturnArrow = "uturnArrow", ArrowsAndMarkersShapes2.CircularArrow = "circularArrow", ArrowsAndMarkersShapes2.NotchedRightArrow = "notchedRightArrow", ArrowsAndMarkersShapes2.HomePlate = "homePlate", ArrowsAndMarkersShapes2.Chevron = "chevron", ArrowsAndMarkersShapes2.LeftCircularArrow = "leftCircularArrow", ArrowsAndMarkersShapes2.LeftRightCircularArrow = "leftRightCircularArrow", ArrowsAndMarkersShapes2))(ArrowsAndMarkersShapes || {}), OtherShapes = /* @__PURE__ */ ((OtherShapes2) => (OtherShapes2.Plaque = "plaque", OtherShapes2.Can = "can", OtherShapes2.Cube = "cube", OtherShapes2.Bevel = "bevel", OtherShapes2.Donut = "donut", OtherShapes2.NoSmoking = "noSmoking", OtherShapes2.BlockArc = "blockArc", OtherShapes2.FoldedCorner = "foldedCorner", OtherShapes2))(OtherShapes || {}), SpecialShapes = /* @__PURE__ */ ((SpecialShapes2) => (SpecialShapes2.SmileyFace = "smileyFace", SpecialShapes2.Heart = "heart", SpecialShapes2.LightningBolt = "lightningBolt", SpecialShapes2.Sun = "sun", SpecialShapes2.Moon = "moon", SpecialShapes2.Cloud = "cloud", SpecialShapes2.Arc = "arc", SpecialShapes2.Backpack = "backpack", SpecialShapes2.Frame = "frame", SpecialShapes2.HalfFrame = "halfFrame", SpecialShapes2.Corner = "corner", SpecialShapes2.Chord = "chord", SpecialShapes2.Pie = "pie", SpecialShapes2.Teardrop = "teardrop", SpecialShapes2.WedgeRectCallout = "wedgeRectCallout", SpecialShapes2.WedgeRRectCallout = "wedgeRRectCallout", SpecialShapes2.WedgeEllipseCallout = "wedgeEllipseCallout", SpecialShapes2.CloudCallout = "cloudCallout", SpecialShapes2.BorderCallout1 = "borderCallout1", SpecialShapes2.BorderCallout2 = "borderCallout2", SpecialShapes2.BorderCallout3 = "borderCallout3", SpecialShapes2.AccentCallout1 = "accentCallout1", SpecialShapes2.AccentCallout2 = "accentCallout2", SpecialShapes2.AccentCallout3 = "accentCallout3", SpecialShapes2.Callout1 = "callout1", SpecialShapes2.Callout2 = "callout2", SpecialShapes2.Callout3 = "callout3", SpecialShapes2.ActionButtonBackPrevious = "actionButtonBackPrevious", SpecialShapes2.ActionButtonEnd = "actionButtonEnd", SpecialShapes2.ActionButtonForwardNext = "actionButtonForwardNext", SpecialShapes2.ActionButtonHelp = "actionButtonHelp", SpecialShapes2.ActionButtonHome = "actionButtonHome", SpecialShapes2.ActionButtonInformation = "actionButtonInformation", SpecialShapes2.ActionButtonMovie = "actionButtonMovie", SpecialShapes2.ActionButtonReturn = "actionButtonReturn", SpecialShapes2.ActionButtonSound = "actionButtonSound", SpecialShapes2))(SpecialShapes || {});
113
+ var FormatType = /* @__PURE__ */ ((FormatType2) => (FormatType2[FormatType2.NUMBER_FORMAT_TYPE_UNSPECIFIED = 0] = "NUMBER_FORMAT_TYPE_UNSPECIFIED", FormatType2[FormatType2.TEXT = 1] = "TEXT", FormatType2[FormatType2.NUMBER = 2] = "NUMBER", FormatType2[FormatType2.PERCENT = 3] = "PERCENT", FormatType2[FormatType2.CURRENCY = 4] = "CURRENCY", FormatType2[FormatType2.DATE = 5] = "DATE", FormatType2[FormatType2.TIME = 6] = "TIME", FormatType2[FormatType2.DATE_TIME = 7] = "DATE_TIME", FormatType2[FormatType2.SCIENTIFIC = 8] = "SCIENTIFIC", FormatType2))(FormatType || {}), InterpolationPointType = /* @__PURE__ */ ((InterpolationPointType2) => (InterpolationPointType2[InterpolationPointType2.INTERPOLATION_POINT_TYPE_UNSPECIFIED = 0] = "INTERPOLATION_POINT_TYPE_UNSPECIFIED", InterpolationPointType2[InterpolationPointType2.MIN = 1] = "MIN", InterpolationPointType2[InterpolationPointType2.MAX = 2] = "MAX", InterpolationPointType2[InterpolationPointType2.NUMBER = 3] = "NUMBER", InterpolationPointType2[InterpolationPointType2.PERCENT = 4] = "PERCENT", InterpolationPointType2[InterpolationPointType2.PERCENTILE = 5] = "PERCENTILE", InterpolationPointType2))(InterpolationPointType || {}), LocaleType = /* @__PURE__ */ ((LocaleType2) => (LocaleType2.EN_US = "enUS", LocaleType2.ZH_CN = "zhCN", LocaleType2.RU_RU = "ruRU", LocaleType2.ZH_TW = "zhTW", LocaleType2.VI_VN = "viVN", LocaleType2))(LocaleType || {}), ProtectionType = /* @__PURE__ */ ((ProtectionType2) => (ProtectionType2[ProtectionType2.RANGE = 0] = "RANGE", ProtectionType2[ProtectionType2.SHEET = 1] = "SHEET", ProtectionType2))(ProtectionType || {}), RelativeDate = /* @__PURE__ */ ((RelativeDate2) => (RelativeDate2[RelativeDate2.RELATIVE_DATE_UNSPECIFIED = 0] = "RELATIVE_DATE_UNSPECIFIED", RelativeDate2[RelativeDate2.PAST_YEAR = 1] = "PAST_YEAR", RelativeDate2[RelativeDate2.PAST_MONTH = 2] = "PAST_MONTH", RelativeDate2[RelativeDate2.PAST_WEEK = 3] = "PAST_WEEK", RelativeDate2[RelativeDate2.YESTERDAY = 4] = "YESTERDAY", RelativeDate2[RelativeDate2.TODAY = 5] = "TODAY", RelativeDate2[RelativeDate2.TOMORROW = 6] = "TOMORROW", RelativeDate2))(RelativeDate || {}), SheetTypes = /* @__PURE__ */ ((SheetTypes2) => (SheetTypes2[SheetTypes2.GRID = 0] = "GRID", SheetTypes2[SheetTypes2.KANBAN = 1] = "KANBAN", SheetTypes2[SheetTypes2.GANTT = 2] = "GANTT", SheetTypes2))(SheetTypes || {}), TextDirection = /* @__PURE__ */ ((TextDirection2) => (TextDirection2[TextDirection2.UNSPECIFIED = 0] = "UNSPECIFIED", TextDirection2[TextDirection2.LEFT_TO_RIGHT = 1] = "LEFT_TO_RIGHT", TextDirection2[TextDirection2.RIGHT_TO_LEFT = 2] = "RIGHT_TO_LEFT", TextDirection2))(TextDirection || {}), TextDecoration = /* @__PURE__ */ ((TextDecoration2) => (TextDecoration2[TextDecoration2.DASH = 0] = "DASH", TextDecoration2[TextDecoration2.DASH_DOT_DOT_HEAVY = 1] = "DASH_DOT_DOT_HEAVY", TextDecoration2[TextDecoration2.DASH_DOT_HEAVY = 2] = "DASH_DOT_HEAVY", TextDecoration2[TextDecoration2.DASHED_HEAVY = 3] = "DASHED_HEAVY", TextDecoration2[TextDecoration2.DASH_LONG = 4] = "DASH_LONG", TextDecoration2[TextDecoration2.DASH_LONG_HEAVY = 5] = "DASH_LONG_HEAVY", TextDecoration2[TextDecoration2.DOT_DASH = 6] = "DOT_DASH", TextDecoration2[TextDecoration2.DOT_DOT_DASH = 7] = "DOT_DOT_DASH", TextDecoration2[TextDecoration2.DOTTED = 8] = "DOTTED", TextDecoration2[TextDecoration2.DOTTED_HEAVY = 9] = "DOTTED_HEAVY", TextDecoration2[TextDecoration2.DOUBLE = 10] = "DOUBLE", TextDecoration2[TextDecoration2.NONE = 11] = "NONE", TextDecoration2[TextDecoration2.SINGLE = 12] = "SINGLE", TextDecoration2[TextDecoration2.THICK = 13] = "THICK", TextDecoration2[TextDecoration2.WAVE = 14] = "WAVE", TextDecoration2[TextDecoration2.WAVY_DOUBLE = 15] = "WAVY_DOUBLE", TextDecoration2[TextDecoration2.WAVY_HEAVY = 16] = "WAVY_HEAVY", TextDecoration2[TextDecoration2.WORDS = 17] = "WORDS", TextDecoration2))(TextDecoration || {}), HorizontalAlign = /* @__PURE__ */ ((HorizontalAlign2) => (HorizontalAlign2[HorizontalAlign2.UNSPECIFIED = 0] = "UNSPECIFIED", HorizontalAlign2[HorizontalAlign2.LEFT = 1] = "LEFT", HorizontalAlign2[HorizontalAlign2.CENTER = 2] = "CENTER", HorizontalAlign2[HorizontalAlign2.RIGHT = 3] = "RIGHT", HorizontalAlign2[HorizontalAlign2.JUSTIFIED = 4] = "JUSTIFIED", HorizontalAlign2[HorizontalAlign2.BOTH = 5] = "BOTH", HorizontalAlign2[HorizontalAlign2.DISTRIBUTED = 6] = "DISTRIBUTED", HorizontalAlign2))(HorizontalAlign || {}), VerticalAlign = /* @__PURE__ */ ((VerticalAlign2) => (VerticalAlign2[VerticalAlign2.UNSPECIFIED = 0] = "UNSPECIFIED", VerticalAlign2[VerticalAlign2.TOP = 1] = "TOP", VerticalAlign2[VerticalAlign2.MIDDLE = 2] = "MIDDLE", VerticalAlign2[VerticalAlign2.BOTTOM = 3] = "BOTTOM", VerticalAlign2))(VerticalAlign || {}), WrapStrategy = /* @__PURE__ */ ((WrapStrategy2) => (WrapStrategy2[WrapStrategy2.UNSPECIFIED = 0] = "UNSPECIFIED", WrapStrategy2[WrapStrategy2.OVERFLOW = 1] = "OVERFLOW", WrapStrategy2[WrapStrategy2.CLIP = 2] = "CLIP", WrapStrategy2[WrapStrategy2.WRAP = 3] = "WRAP", WrapStrategy2))(WrapStrategy || {}), FontItalic = /* @__PURE__ */ ((FontItalic2) => (FontItalic2[FontItalic2.NORMAL = 0] = "NORMAL", FontItalic2[FontItalic2.ITALIC = 1] = "ITALIC", FontItalic2))(FontItalic || {}), FontWeight = /* @__PURE__ */ ((FontWeight2) => (FontWeight2[FontWeight2.NORMAL = 0] = "NORMAL", FontWeight2[FontWeight2.BOLD = 1] = "BOLD", FontWeight2))(FontWeight || {}), BaselineOffset = /* @__PURE__ */ ((BaselineOffset2) => (BaselineOffset2[BaselineOffset2.NORMAL = 1] = "NORMAL", BaselineOffset2[BaselineOffset2.SUBSCRIPT = 2] = "SUBSCRIPT", BaselineOffset2[BaselineOffset2.SUPERSCRIPT = 3] = "SUPERSCRIPT", BaselineOffset2))(BaselineOffset || {}), BooleanNumber = /* @__PURE__ */ ((BooleanNumber2) => (BooleanNumber2[BooleanNumber2.FALSE = 0] = "FALSE", BooleanNumber2[BooleanNumber2.TRUE = 1] = "TRUE", BooleanNumber2))(BooleanNumber || {}), CellValueType = /* @__PURE__ */ ((CellValueType2) => (CellValueType2[CellValueType2.STRING = 1] = "STRING", CellValueType2[CellValueType2.NUMBER = 2] = "NUMBER", CellValueType2[CellValueType2.BOOLEAN = 3] = "BOOLEAN", CellValueType2[CellValueType2.FORCE_STRING = 4] = "FORCE_STRING", CellValueType2))(CellValueType || {}), ThemeColorType = /* @__PURE__ */ ((ThemeColorType2) => (ThemeColorType2[ThemeColorType2.DARK1 = 0] = "DARK1", ThemeColorType2[ThemeColorType2.LIGHT1 = 1] = "LIGHT1", ThemeColorType2[ThemeColorType2.DARK2 = 2] = "DARK2", ThemeColorType2[ThemeColorType2.LIGHT2 = 3] = "LIGHT2", ThemeColorType2[ThemeColorType2.ACCENT1 = 4] = "ACCENT1", ThemeColorType2[ThemeColorType2.ACCENT2 = 5] = "ACCENT2", ThemeColorType2[ThemeColorType2.ACCENT3 = 6] = "ACCENT3", ThemeColorType2[ThemeColorType2.ACCENT4 = 7] = "ACCENT4", ThemeColorType2[ThemeColorType2.ACCENT5 = 8] = "ACCENT5", ThemeColorType2[ThemeColorType2.ACCENT6 = 9] = "ACCENT6", ThemeColorType2[ThemeColorType2.HYPERLINK = 10] = "HYPERLINK", ThemeColorType2[ThemeColorType2.FOLLOWED_HYPERLINK = 11] = "FOLLOWED_HYPERLINK", ThemeColorType2))(ThemeColorType || {}), ThemeColors = /* @__PURE__ */ ((ThemeColors2) => (ThemeColors2.OFFICE = "Office", ThemeColors2.OFFICE_2007_2010 = "Office 2007-2010", ThemeColors2.GRAYSCALE = "Grayscale", ThemeColors2.BLUE_WARM = "Blue Warm", ThemeColors2.BLUE = "Blue", ThemeColors2.BLUE_II = "Blue II", ThemeColors2.BLUE_GREEN = "Blue Green", ThemeColors2.GREEN = "Green", ThemeColors2.GREEN_YELLOW = "Green Yellow", ThemeColors2.YELLOW = "Yellow", ThemeColors2.YELLOW_ORANGE = "Yellow Orange", ThemeColors2.ORANGE = "Orange", ThemeColors2.ORANGE_RED = "Orange Red", ThemeColors2.RED_ORANGE = "Red Orange", ThemeColors2.RED = "Red", ThemeColors2.RED_VIOLET = "Red Violet", ThemeColors2.VIOLET = "Violet", ThemeColors2.VIOLET_II = "Violet II", ThemeColors2.MEDIAN = "Median", ThemeColors2.PAPER = "Paper", ThemeColors2.MARQUEE = "Marquee", ThemeColors2.SLIPSTREAM = "Slipstream", ThemeColors2.Aspect = "Aspect", ThemeColors2))(ThemeColors || {}), BasicShapes = /* @__PURE__ */ ((BasicShapes2) => (BasicShapes2.Line = "line", BasicShapes2.LineInv = "lineInv", BasicShapes2.Triangle = "triangle", BasicShapes2.RtTriangle = "rtTriangle", BasicShapes2.Rect = "rect", BasicShapes2.Diamond = "diamond", BasicShapes2.Parallelogram = "parallelogram", BasicShapes2.Trapezoid = "trapezoid", BasicShapes2.NonIsocelesTrapezoid = "nonIsocelesTrapezoid", BasicShapes2.Pentagon = "pentagon", BasicShapes2.Hexagon = "hexagon", BasicShapes2.Heptagon = "heptagon", BasicShapes2.Octagon = "octagon", BasicShapes2.Decagon = "decagon", BasicShapes2.Dodecagon = "dodecagon", BasicShapes2.Star4 = "star4", BasicShapes2.Star5 = "star5", BasicShapes2.Star6 = "star6", BasicShapes2.Star7 = "star7", BasicShapes2.Star8 = "star8", BasicShapes2.Star10 = "star10", BasicShapes2.Star12 = "star12", BasicShapes2.Star16 = "star16", BasicShapes2.Star24 = "star24", BasicShapes2.Star32 = "star32", BasicShapes2.RoundRect = "roundRect", BasicShapes2.Round1Rect = "round1Rect", BasicShapes2.Round2SameRect = "round2SameRect", BasicShapes2.Round2DiagRect = "round2DiagRect", BasicShapes2.Ellipse = "ellipse", BasicShapes2))(BasicShapes || {}), ArrowsAndMarkersShapes = /* @__PURE__ */ ((ArrowsAndMarkersShapes2) => (ArrowsAndMarkersShapes2.RightArrow = "rightArrow", ArrowsAndMarkersShapes2.LeftArrow = "leftArrow", ArrowsAndMarkersShapes2.UpArrow = "upArrow", ArrowsAndMarkersShapes2.DownArrow = "downArrow", ArrowsAndMarkersShapes2.LeftRightArrow = "leftRightArrow", ArrowsAndMarkersShapes2.UpDownArrow = "upDownArrow", ArrowsAndMarkersShapes2.QuadArrow = "quadArrow", ArrowsAndMarkersShapes2.LeftRightUpArrow = "leftRightUpArrow", ArrowsAndMarkersShapes2.BentArrow = "bentArrow", ArrowsAndMarkersShapes2.UturnArrow = "uturnArrow", ArrowsAndMarkersShapes2.CircularArrow = "circularArrow", ArrowsAndMarkersShapes2.NotchedRightArrow = "notchedRightArrow", ArrowsAndMarkersShapes2.HomePlate = "homePlate", ArrowsAndMarkersShapes2.Chevron = "chevron", ArrowsAndMarkersShapes2.LeftCircularArrow = "leftCircularArrow", ArrowsAndMarkersShapes2.LeftRightCircularArrow = "leftRightCircularArrow", ArrowsAndMarkersShapes2))(ArrowsAndMarkersShapes || {}), OtherShapes = /* @__PURE__ */ ((OtherShapes2) => (OtherShapes2.Plaque = "plaque", OtherShapes2.Can = "can", OtherShapes2.Cube = "cube", OtherShapes2.Bevel = "bevel", OtherShapes2.Donut = "donut", OtherShapes2.NoSmoking = "noSmoking", OtherShapes2.BlockArc = "blockArc", OtherShapes2.FoldedCorner = "foldedCorner", OtherShapes2))(OtherShapes || {}), SpecialShapes = /* @__PURE__ */ ((SpecialShapes2) => (SpecialShapes2.SmileyFace = "smileyFace", SpecialShapes2.Heart = "heart", SpecialShapes2.LightningBolt = "lightningBolt", SpecialShapes2.Sun = "sun", SpecialShapes2.Moon = "moon", SpecialShapes2.Cloud = "cloud", SpecialShapes2.Arc = "arc", SpecialShapes2.Backpack = "backpack", SpecialShapes2.Frame = "frame", SpecialShapes2.HalfFrame = "halfFrame", SpecialShapes2.Corner = "corner", SpecialShapes2.Chord = "chord", SpecialShapes2.Pie = "pie", SpecialShapes2.Teardrop = "teardrop", SpecialShapes2.WedgeRectCallout = "wedgeRectCallout", SpecialShapes2.WedgeRRectCallout = "wedgeRRectCallout", SpecialShapes2.WedgeEllipseCallout = "wedgeEllipseCallout", SpecialShapes2.CloudCallout = "cloudCallout", SpecialShapes2.BorderCallout1 = "borderCallout1", SpecialShapes2.BorderCallout2 = "borderCallout2", SpecialShapes2.BorderCallout3 = "borderCallout3", SpecialShapes2.AccentCallout1 = "accentCallout1", SpecialShapes2.AccentCallout2 = "accentCallout2", SpecialShapes2.AccentCallout3 = "accentCallout3", SpecialShapes2.Callout1 = "callout1", SpecialShapes2.Callout2 = "callout2", SpecialShapes2.Callout3 = "callout3", SpecialShapes2.ActionButtonBackPrevious = "actionButtonBackPrevious", SpecialShapes2.ActionButtonEnd = "actionButtonEnd", SpecialShapes2.ActionButtonForwardNext = "actionButtonForwardNext", SpecialShapes2.ActionButtonHelp = "actionButtonHelp", SpecialShapes2.ActionButtonHome = "actionButtonHome", SpecialShapes2.ActionButtonInformation = "actionButtonInformation", SpecialShapes2.ActionButtonMovie = "actionButtonMovie", SpecialShapes2.ActionButtonReturn = "actionButtonReturn", SpecialShapes2.ActionButtonSound = "actionButtonSound", SpecialShapes2))(SpecialShapes || {}), DeleteDirection = /* @__PURE__ */ ((DeleteDirection2) => (DeleteDirection2[DeleteDirection2.LEFT = 0] = "LEFT", DeleteDirection2[DeleteDirection2.RIGHT = 1] = "RIGHT", DeleteDirection2))(DeleteDirection || {});
114
114
  const THEME_COLORS = {
115
115
  [ThemeColors.OFFICE]: {
116
116
  [ThemeColorType.ACCENT1]: "#4472C4",
@@ -821,7 +821,7 @@ function isWhiteColor(color) {
821
821
  __name(isWhiteColor, "isWhiteColor");
822
822
  var UpdateDocsAttributeType = /* @__PURE__ */ ((UpdateDocsAttributeType2) => (UpdateDocsAttributeType2[UpdateDocsAttributeType2.COVER = 0] = "COVER", UpdateDocsAttributeType2[UpdateDocsAttributeType2.REPLACE = 1] = "REPLACE", UpdateDocsAttributeType2[UpdateDocsAttributeType2.INTERSECTION = 2] = "INTERSECTION", UpdateDocsAttributeType2))(UpdateDocsAttributeType || {});
823
823
  function isICellData(value) {
824
- return value && (value.s !== void 0 || value.p !== void 0 || value.v !== void 0 || value.t !== void 0 || value.f !== void 0 || value.si !== void 0);
824
+ return value && (value.s !== void 0 || value.p !== void 0 || value.v !== void 0 || value.t !== void 0 || value.f !== void 0 || value.si !== void 0 || value.custom !== void 0);
825
825
  }
826
826
  __name(isICellData, "isICellData");
827
827
  function getCellValueType(cell) {
@@ -851,6 +851,7 @@ function selectionToArray(range) {
851
851
  return [range.startRow, range.startColumn, range.endRow, range.endColumn];
852
852
  }
853
853
  __name(selectionToArray, "selectionToArray");
854
+ var RANGE_DIRECTION = /* @__PURE__ */ ((RANGE_DIRECTION2) => (RANGE_DIRECTION2.NONE = "none", RANGE_DIRECTION2.BACKWARD = "backward", RANGE_DIRECTION2.FORWARD = "forward", RANGE_DIRECTION2))(RANGE_DIRECTION || {}), DOC_RANGE_TYPE = /* @__PURE__ */ ((DOC_RANGE_TYPE2) => (DOC_RANGE_TYPE2.RECT = "RECT", DOC_RANGE_TYPE2.TEXT = "TEXT", DOC_RANGE_TYPE2))(DOC_RANGE_TYPE || {});
854
855
  function getCellInfoInMergeData(row, column, mergeData) {
855
856
  let isMerged = !1, isMergedMainCell = !1, newEndRow = row, newEndColumn = column, mergeRow = row, mergeColumn = column;
856
857
  if (mergeData == null)
@@ -2458,9 +2459,16 @@ function getDocsUpdateBody(model, segmentId) {
2458
2459
  return body;
2459
2460
  }
2460
2461
  __name(getDocsUpdateBody, "getDocsUpdateBody");
2461
- function isValidRange(range) {
2462
+ function isValidRange(range, worksheet) {
2462
2463
  const { startRow, endRow, startColumn, endColumn, rangeType } = range;
2463
- return !(startRow < 0 || startColumn < 0 || endRow < 0 || endColumn < 0 || !(Number.isNaN(startRow) && Number.isNaN(endRow)) && rangeType === RANGE_TYPE.COLUMN || !(Number.isNaN(startColumn) && Number.isNaN(endColumn)) && rangeType === RANGE_TYPE.ROW || rangeType !== RANGE_TYPE.ROW && rangeType !== RANGE_TYPE.COLUMN && (Number.isNaN(startColumn) || Number.isNaN(startRow) || Number.isNaN(endColumn) || Number.isNaN(endRow)));
2464
+ if (startRow < 0 || startColumn < 0 || endRow < 0 || endColumn < 0 || !(Number.isNaN(startRow) && Number.isNaN(endRow)) && rangeType === RANGE_TYPE.COLUMN || !(Number.isNaN(startColumn) && Number.isNaN(endColumn)) && rangeType === RANGE_TYPE.ROW || rangeType !== RANGE_TYPE.ROW && rangeType !== RANGE_TYPE.COLUMN && (Number.isNaN(startColumn) || Number.isNaN(startRow) || Number.isNaN(endColumn) || Number.isNaN(endRow)))
2465
+ return !1;
2466
+ if (worksheet) {
2467
+ const rowCount = worksheet.getRowCount(), colCount = worksheet.getColumnCount();
2468
+ if (endRow >= rowCount || endColumn >= colCount)
2469
+ return !1;
2470
+ }
2471
+ return !0;
2464
2472
  }
2465
2473
  __name(isValidRange, "isValidRange");
2466
2474
  function cellToRange(row, col) {
@@ -3304,7 +3312,7 @@ const _ObjectMatrix = class _ObjectMatrix {
3304
3312
  toFullArray() {
3305
3313
  const range = this.getRange(), { endColumn, endRow } = range, array = [];
3306
3314
  for (let i = 0; i <= endRow; i++) {
3307
- const subArr = Array(endColumn + 1).fill(void 0);
3315
+ const subArr = new Array(endColumn + 1).fill(void 0);
3308
3316
  array.push(subArr);
3309
3317
  }
3310
3318
  return this.forValue((row, col, value) => {
@@ -4627,7 +4635,7 @@ const _numfmt = /* @__PURE__ */ getDefaultExportFromCjs(numfmt$1), numfmt = _num
4627
4635
  width: 300,
4628
4636
  height: 300
4629
4637
  }
4630
- }, UNIVER_INTERNAL = "__univer_internal__";
4638
+ };
4631
4639
  var EXTENSION_NAMES = /* @__PURE__ */ ((EXTENSION_NAMES2) => (EXTENSION_NAMES2.ARRAY_CONVERTOR = "ARRAY_CONVERTOR", EXTENSION_NAMES2.MATRIX_CONVERTOR = "MATRIX_CONVERTOR", EXTENSION_NAMES2))(EXTENSION_NAMES || {});
4632
4640
  function isAllFormatInTextRuns(key, body) {
4633
4641
  const { textRuns = [] } = body;
@@ -6648,7 +6656,7 @@ const orderListSymbolMap = {
6648
6656
  hanging: { v: 21 },
6649
6657
  indentStart: { v: 21 * (i + 1) }
6650
6658
  }
6651
- })), "orderListFactory"), checkListFactory = /* @__PURE__ */ __name((symbol, textStyle) => Array(9).fill(0).map((_, i) => ({
6659
+ })), "orderListFactory"), checkListFactory = /* @__PURE__ */ __name((symbol, textStyle) => new Array(9).fill(0).map((_, i) => ({
6652
6660
  glyphFormat: ` %${i + 1}`,
6653
6661
  glyphSymbol: symbol,
6654
6662
  bulletAlignment: BulletAlignment.START,
@@ -9942,6 +9950,405 @@ const _Styles = class _Styles {
9942
9950
  };
9943
9951
  __name(_Styles, "Styles");
9944
9952
  let Styles = _Styles;
9953
+ function isCustomRangeSplitSymbol(text) {
9954
+ return text === DataStreamTreeTokenType$1.CUSTOM_RANGE_END || text === DataStreamTreeTokenType$1.CUSTOM_RANGE_START;
9955
+ }
9956
+ __name(isCustomRangeSplitSymbol, "isCustomRangeSplitSymbol");
9957
+ function isIntersecting(line1Start, line1End, line2Start, line2End) {
9958
+ return line1Start <= line2Start && line1End >= line2Start || line1Start >= line2Start && line1Start <= line2End;
9959
+ }
9960
+ __name(isIntersecting, "isIntersecting");
9961
+ function shouldDeleteCustomRange(deleteStart, deleteLen, customRange, dataStream) {
9962
+ const dataStreamSlice = dataStream.slice(customRange.startIndex + 1, customRange.endIndex), start = Math.max(deleteStart - (customRange.startIndex + 1), 0), end = deleteStart + deleteLen - 1 - (customRange.startIndex + 1);
9963
+ if (end < 0)
9964
+ return !1;
9965
+ if (start === 0 && end >= dataStreamSlice.length)
9966
+ return !0;
9967
+ const result = dataStreamSlice.slice(0, start) + dataStreamSlice.slice(start + deleteLen);
9968
+ for (let i = 0, len = result.length; i < len; i++) {
9969
+ const letter = result[i];
9970
+ if (!isCustomRangeSplitSymbol(letter))
9971
+ return !1;
9972
+ }
9973
+ return !0;
9974
+ }
9975
+ __name(shouldDeleteCustomRange, "shouldDeleteCustomRange");
9976
+ function getCustomRangesInterestsWithRange(range, customRanges) {
9977
+ const result = [];
9978
+ for (let i = 0, len = customRanges.length; i < len; i++) {
9979
+ const customRange = customRanges[i];
9980
+ range.collapsed ? customRange.startIndex < range.startOffset && range.startOffset <= customRange.endIndex && result.push(customRange) : isIntersecting(range.startOffset, range.endOffset, customRange.startIndex, customRange.endIndex) && result.push(customRange);
9981
+ }
9982
+ return result;
9983
+ }
9984
+ __name(getCustomRangesInterestsWithRange, "getCustomRangesInterestsWithRange");
9985
+ function copyCustomRange(range) {
9986
+ return {
9987
+ ...Tools$1.deepClone(range),
9988
+ rangeId: generateRandomId$1()
9989
+ };
9990
+ }
9991
+ __name(copyCustomRange, "copyCustomRange");
9992
+ function excludePointsFromRange(range, points) {
9993
+ const newRanges = [];
9994
+ let start = range[0];
9995
+ for (const point of points)
9996
+ point < range[0] || point > range[1] || (start < point && newRanges.push([start, point - 1]), start = point + 1);
9997
+ return start <= range[1] && newRanges.push([start, range[1]]), newRanges;
9998
+ }
9999
+ __name(excludePointsFromRange, "excludePointsFromRange");
10000
+ function makeSelection(startOffset, endOffset) {
10001
+ if (typeof endOffset > "u")
10002
+ return { startOffset, endOffset: startOffset, collapsed: !0 };
10003
+ if (endOffset < startOffset)
10004
+ throw new Error(`Cannot make a doc selection when endOffset ${endOffset} is less than startOffset ${startOffset}.`);
10005
+ return { startOffset, endOffset, collapsed: startOffset === endOffset };
10006
+ }
10007
+ __name(makeSelection, "makeSelection");
10008
+ function normalizeSelection(selection) {
10009
+ const { startOffset, endOffset, collapsed } = selection, start = Math.min(startOffset, endOffset), end = Math.max(startOffset, endOffset);
10010
+ return {
10011
+ startOffset: start,
10012
+ endOffset: end,
10013
+ collapsed
10014
+ };
10015
+ }
10016
+ __name(normalizeSelection, "normalizeSelection");
10017
+ function getSelectionWithSymbolMax(selection, body) {
10018
+ let { startOffset, endOffset } = normalizeSelection(selection);
10019
+ for (; body.dataStream[startOffset - 1] === DataStreamTreeTokenType.CUSTOM_RANGE_START; )
10020
+ startOffset -= 1;
10021
+ for (; body.dataStream[endOffset] === DataStreamTreeTokenType.CUSTOM_RANGE_END; )
10022
+ endOffset += 1;
10023
+ return {
10024
+ startOffset,
10025
+ endOffset
10026
+ };
10027
+ }
10028
+ __name(getSelectionWithSymbolMax, "getSelectionWithSymbolMax");
10029
+ function getSelectionWithNoSymbolSide(selection, body) {
10030
+ let { startOffset, endOffset } = normalizeSelection(selection);
10031
+ for (; isCustomRangeSplitSymbol(body.dataStream[startOffset]); )
10032
+ startOffset += 1;
10033
+ for (; isCustomRangeSplitSymbol(body.dataStream[endOffset - 1]); )
10034
+ endOffset -= 1;
10035
+ return {
10036
+ startOffset,
10037
+ endOffset
10038
+ };
10039
+ }
10040
+ __name(getSelectionWithNoSymbolSide, "getSelectionWithNoSymbolSide");
10041
+ function getDeleteSelection(selection, body, direction = DeleteDirection.LEFT) {
10042
+ var _a13;
10043
+ let { startOffset, endOffset, collapsed } = normalizeSelection(selection);
10044
+ if (collapsed)
10045
+ if (direction === DeleteDirection.LEFT)
10046
+ for (; isCustomRangeSplitSymbol(body.dataStream[startOffset - 1]); )
10047
+ endOffset -= 1, startOffset -= 1;
10048
+ else
10049
+ for (; isCustomRangeSplitSymbol(body.dataStream[startOffset]); )
10050
+ endOffset += 1, startOffset += 1;
10051
+ else {
10052
+ const selectionWithSymbolMax = getSelectionWithSymbolMax(selection, body);
10053
+ startOffset = selectionWithSymbolMax.startOffset, endOffset = selectionWithSymbolMax.endOffset;
10054
+ }
10055
+ collapsed = startOffset === endOffset;
10056
+ const customRanges = (_a13 = body.customRanges) == null ? void 0 : _a13.filter((range) => !range.wholeEntity || startOffset <= range.startIndex && endOffset > range.endIndex ? !1 : isSegmentIntersects(startOffset, collapsed ? endOffset : endOffset - 1, range.startIndex, range.endIndex));
10057
+ return customRanges != null && customRanges.length && customRanges.forEach((range) => {
10058
+ startOffset = Math.min(range.startIndex, startOffset), endOffset = Math.max(range.endIndex + 1, endOffset);
10059
+ }), {
10060
+ ...selection,
10061
+ startOffset,
10062
+ endOffset,
10063
+ collapsed: startOffset === endOffset
10064
+ };
10065
+ }
10066
+ __name(getDeleteSelection, "getDeleteSelection");
10067
+ function getInsertSelection(selection, body) {
10068
+ let { startOffset, endOffset, collapsed } = normalizeSelection(selection);
10069
+ if (collapsed) {
10070
+ for (; body.dataStream[endOffset] === DataStreamTreeTokenType.CUSTOM_RANGE_END; )
10071
+ endOffset += 1, startOffset += 1;
10072
+ for (; body.dataStream[endOffset - 1] === DataStreamTreeTokenType.CUSTOM_RANGE_START; )
10073
+ endOffset -= 1, startOffset -= 1;
10074
+ return {
10075
+ ...selection,
10076
+ startOffset,
10077
+ endOffset,
10078
+ collapsed
10079
+ };
10080
+ } else
10081
+ return {
10082
+ ...selection,
10083
+ ...getSelectionWithSymbolMax(selection, body),
10084
+ collapsed: !1
10085
+ };
10086
+ }
10087
+ __name(getInsertSelection, "getInsertSelection");
10088
+ function getSelectionForAddCustomRange(selection, body) {
10089
+ if (selection.startOffset === selection.endOffset)
10090
+ return null;
10091
+ const customRanges = body.customRanges;
10092
+ if (!customRanges)
10093
+ return normalizeSelection(selection);
10094
+ let { startOffset, endOffset } = getSelectionWithSymbolMax(selection, body);
10095
+ for (; isCustomRangeSplitSymbol(body.dataStream[startOffset]); ) {
10096
+ if (body.dataStream[startOffset] === DataStreamTreeTokenType.CUSTOM_RANGE_START) {
10097
+ const customRange = customRanges.find((range) => range.startIndex === startOffset);
10098
+ if (!customRange)
10099
+ throw new Error("No custom-range matched");
10100
+ if (customRange.endIndex === endOffset - 1)
10101
+ return {
10102
+ startOffset,
10103
+ endOffset,
10104
+ collapsed: !1
10105
+ };
10106
+ if (customRange.endIndex < endOffset - 1)
10107
+ break;
10108
+ }
10109
+ startOffset += 1;
10110
+ }
10111
+ for (; isCustomRangeSplitSymbol(body.dataStream[endOffset - 1]); ) {
10112
+ if (body.dataStream[startOffset] === DataStreamTreeTokenType.CUSTOM_RANGE_END) {
10113
+ const customRange = customRanges.find((range) => range.endIndex === endOffset - 1);
10114
+ if (!customRange)
10115
+ throw new Error("No custom-range matched");
10116
+ if (customRange.startIndex === startOffset)
10117
+ return {
10118
+ startOffset,
10119
+ endOffset,
10120
+ collapsed: !1
10121
+ };
10122
+ if (customRange.startIndex > startOffset)
10123
+ break;
10124
+ }
10125
+ endOffset -= 1;
10126
+ }
10127
+ return endOffset <= startOffset ? null : {
10128
+ startOffset,
10129
+ endOffset,
10130
+ collapsed: !1
10131
+ };
10132
+ }
10133
+ __name(getSelectionForAddCustomRange, "getSelectionForAddCustomRange");
10134
+ function isSegmentIntersects(start, end, start2, end2) {
10135
+ return Math.max(start, start2) <= Math.min(end, end2);
10136
+ }
10137
+ __name(isSegmentIntersects, "isSegmentIntersects");
10138
+ function getRetainAndDeleteFromReplace(range, segmentId = "", memoryCursor, body) {
10139
+ var _a13;
10140
+ const { startOffset, endOffset } = range, dos = [], textStart = startOffset - memoryCursor, textEnd = endOffset - memoryCursor, dataStream = body.dataStream, relativeCustomRanges = (_a13 = body.customRanges) == null ? void 0 : _a13.filter((customRange) => isIntersecting(customRange.startIndex, customRange.endIndex, startOffset, endOffset)), toDeleteRanges = new Set(relativeCustomRanges == null ? void 0 : relativeCustomRanges.filter((customRange) => shouldDeleteCustomRange(startOffset, endOffset - startOffset, customRange, dataStream))), retainPoints = /* @__PURE__ */ new Set();
10141
+ relativeCustomRanges == null || relativeCustomRanges.forEach((range2) => {
10142
+ toDeleteRanges.has(range2) || (range2.startIndex - memoryCursor >= textStart && range2.startIndex - memoryCursor <= textEnd && range2.endIndex - memoryCursor > textEnd && retainPoints.add(range2.startIndex), range2.endIndex - memoryCursor >= textStart && range2.endIndex - memoryCursor <= textEnd && range2.startIndex < textStart && retainPoints.add(range2.endIndex));
10143
+ }), textStart > 0 && dos.push({
10144
+ t: TextXActionType.RETAIN,
10145
+ len: textStart,
10146
+ segmentId
10147
+ });
10148
+ const sortedRetains = [...retainPoints].sort((pre, aft) => pre - aft);
10149
+ let cursor2 = textStart;
10150
+ return sortedRetains.forEach((pos) => {
10151
+ const len = pos - cursor2;
10152
+ len > 0 && dos.push({
10153
+ t: TextXActionType.DELETE,
10154
+ len,
10155
+ line: 0,
10156
+ segmentId
10157
+ }), dos.push({
10158
+ t: TextXActionType.RETAIN,
10159
+ len: 1,
10160
+ segmentId
10161
+ }), cursor2 = pos + 1;
10162
+ }), cursor2 < textEnd && (dos.push({
10163
+ t: TextXActionType.DELETE,
10164
+ len: textEnd - cursor2,
10165
+ line: 0,
10166
+ segmentId
10167
+ }), cursor2 = textEnd + 1), {
10168
+ dos,
10169
+ cursor: cursor2,
10170
+ retain: retainPoints.size
10171
+ };
10172
+ }
10173
+ __name(getRetainAndDeleteFromReplace, "getRetainAndDeleteFromReplace");
10174
+ function deleteCustomRangeTextX(accessor, params) {
10175
+ var _a13, _b2;
10176
+ const { rangeId, segmentId, documentDataModel, insert } = params, range = (_b2 = (_a13 = documentDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a13.customRanges) == null ? void 0 : _b2.find((r) => r.rangeId === rangeId);
10177
+ if (!range)
10178
+ return !1;
10179
+ const { startIndex, endIndex } = range, textX = new TextX(), len = endIndex - startIndex + 1;
10180
+ return startIndex > 0 && textX.push({
10181
+ t: TextXActionType.RETAIN,
10182
+ len: startIndex,
10183
+ segmentId
10184
+ }), textX.push({
10185
+ t: TextXActionType.DELETE,
10186
+ len: 1,
10187
+ segmentId,
10188
+ line: 0
10189
+ }), len - 2 > 0 && textX.push({
10190
+ t: TextXActionType.RETAIN,
10191
+ len: len - 2,
10192
+ segmentId
10193
+ }), textX.push({
10194
+ t: TextXActionType.DELETE,
10195
+ len: 1,
10196
+ segmentId,
10197
+ line: 0
10198
+ }), insert && textX.push({
10199
+ body: insert,
10200
+ t: TextXActionType.INSERT,
10201
+ len: insert.dataStream.length,
10202
+ segmentId,
10203
+ line: 1
10204
+ }), textX;
10205
+ }
10206
+ __name(deleteCustomRangeTextX, "deleteCustomRangeTextX");
10207
+ function addCustomRangeTextX(param) {
10208
+ var _a13, _b2;
10209
+ const { range, rangeId, rangeType, segmentId, wholeEntity, properties, body } = param, actualRange = getSelectionForAddCustomRange(range, body);
10210
+ if (!actualRange || !body)
10211
+ return !1;
10212
+ const { startOffset, endOffset } = actualRange, customRanges = (_a13 = body.customRanges) != null ? _a13 : [];
10213
+ let cursor2 = 0;
10214
+ const textX = new TextX(), addCustomRange = /* @__PURE__ */ __name((startIndex, endIndex, index2) => {
10215
+ const relativeCustomRanges = [];
10216
+ for (let i = 0, len = customRanges.length; i < len; i++) {
10217
+ const customRange = customRanges[i];
10218
+ if (customRange.rangeType === rangeType && Math.max(customRange.startIndex, startIndex) <= Math.min(customRange.endIndex, endIndex) && relativeCustomRanges.push({ ...customRange }), customRange.startIndex > endIndex)
10219
+ break;
10220
+ }
10221
+ const deletes = relativeCustomRanges.map((i) => [i.startIndex, i.endIndex]).flat().sort((pre, aft) => pre - aft), range2 = deletes.length ? {
10222
+ startOffset: Math.min(deletes[0], startIndex),
10223
+ endOffset: Math.max(deletes[deletes.length - 1] + 1, endIndex + 1)
10224
+ } : {
10225
+ startOffset: startIndex,
10226
+ endOffset: endIndex + 1
10227
+ };
10228
+ range2.startOffset !== cursor2 && (textX.push({
10229
+ t: TextXActionType.RETAIN,
10230
+ len: range2.startOffset - cursor2,
10231
+ segmentId
10232
+ }), cursor2 = range2.startOffset), textX.push({
10233
+ t: TextXActionType.INSERT,
10234
+ body: {
10235
+ dataStream: DataStreamTreeTokenType.CUSTOM_RANGE_START
10236
+ },
10237
+ len: 1,
10238
+ line: 0,
10239
+ segmentId
10240
+ }), deletes.forEach((index22) => {
10241
+ index22 !== cursor2 && (textX.push({
10242
+ t: TextXActionType.RETAIN,
10243
+ len: index22 - cursor2,
10244
+ segmentId
10245
+ }), cursor2 = index22), textX.push({
10246
+ t: TextXActionType.DELETE,
10247
+ len: 1,
10248
+ line: 0,
10249
+ segmentId
10250
+ }), cursor2++;
10251
+ }), cursor2 !== range2.endOffset && (textX.push({
10252
+ t: TextXActionType.RETAIN,
10253
+ len: range2.endOffset - cursor2,
10254
+ segmentId
10255
+ }), cursor2 = range2.endOffset), textX.push({
10256
+ t: TextXActionType.INSERT,
10257
+ body: {
10258
+ dataStream: DataStreamTreeTokenType.CUSTOM_RANGE_END,
10259
+ customRanges: [
10260
+ {
10261
+ rangeId: index2 ? `${rangeId}-${index2}` : rangeId,
10262
+ rangeType,
10263
+ startIndex: -(range2.endOffset - range2.startOffset - deletes.length + 1),
10264
+ endIndex: 0,
10265
+ wholeEntity,
10266
+ properties: {
10267
+ ...properties
10268
+ }
10269
+ }
10270
+ ]
10271
+ },
10272
+ len: 1,
10273
+ line: 0,
10274
+ segmentId
10275
+ });
10276
+ }, "addCustomRange"), relativeParagraphs = ((_b2 = body.paragraphs) != null ? _b2 : []).filter((p) => p.startIndex < endOffset && p.startIndex > startOffset);
10277
+ return excludePointsFromRange([startOffset, endOffset - 1], relativeParagraphs.map((p) => p.startIndex)).forEach(([start, end], i) => addCustomRange(start, end, i)), textX;
10278
+ }
10279
+ __name(addCustomRangeTextX, "addCustomRangeTextX");
10280
+ function getRetainAndDeleteAndExcludeLineBreak(selection, body, segmentId = "", memoryCursor = 0, preserveLineBreak = !0) {
10281
+ var _a13;
10282
+ const { startOffset, endOffset } = getDeleteSelection(selection, body), dos = [], { paragraphs = [], dataStream } = body, textStart = startOffset - memoryCursor, textEnd = endOffset - memoryCursor, paragraphInRange = paragraphs == null ? void 0 : paragraphs.find(
10283
+ (p) => p.startIndex - memoryCursor >= textStart && p.startIndex - memoryCursor < textEnd
10284
+ ), relativeCustomRanges = (_a13 = body.customRanges) == null ? void 0 : _a13.filter((customRange) => isIntersecting(customRange.startIndex, customRange.endIndex, startOffset, endOffset)), toDeleteRanges = new Set(relativeCustomRanges == null ? void 0 : relativeCustomRanges.filter((customRange) => shouldDeleteCustomRange(startOffset, endOffset - startOffset, customRange, dataStream))), retainPoints = /* @__PURE__ */ new Set();
10285
+ if (relativeCustomRanges == null || relativeCustomRanges.forEach((range) => {
10286
+ toDeleteRanges.has(range) || (range.startIndex - memoryCursor >= textStart && range.startIndex - memoryCursor <= textEnd && range.endIndex - memoryCursor > textEnd && retainPoints.add(range.startIndex), range.endIndex - memoryCursor >= textStart && range.endIndex - memoryCursor <= textEnd && range.startIndex < textStart && retainPoints.add(range.endIndex));
10287
+ }), textStart > 0 && dos.push({
10288
+ t: TextXActionType.RETAIN,
10289
+ len: textStart,
10290
+ segmentId
10291
+ }), preserveLineBreak && paragraphInRange && paragraphInRange.startIndex - memoryCursor > textStart) {
10292
+ const paragraphIndex = paragraphInRange.startIndex - memoryCursor;
10293
+ retainPoints.add(paragraphIndex);
10294
+ }
10295
+ const sortedRetains = [...retainPoints].sort((pre, aft) => pre - aft);
10296
+ let cursor2 = textStart;
10297
+ return sortedRetains.forEach((pos) => {
10298
+ const len = pos - cursor2;
10299
+ len > 0 && dos.push({
10300
+ t: TextXActionType.DELETE,
10301
+ len,
10302
+ line: 0,
10303
+ segmentId
10304
+ }), dos.push({
10305
+ t: TextXActionType.RETAIN,
10306
+ len: 1,
10307
+ segmentId
10308
+ }), cursor2 = pos + 1;
10309
+ }), cursor2 < textEnd && dos.push({
10310
+ t: TextXActionType.DELETE,
10311
+ len: textEnd - cursor2,
10312
+ line: 0,
10313
+ segmentId
10314
+ }), dos;
10315
+ }
10316
+ __name(getRetainAndDeleteAndExcludeLineBreak, "getRetainAndDeleteAndExcludeLineBreak");
10317
+ const replaceSelectionTextX = /* @__PURE__ */ __name((params) => {
10318
+ var _a13;
10319
+ const { selection, body: insertBody, doc } = params, segmentId = selection.segmentId, body = (_a13 = doc.getSelfOrHeaderFooterModel(segmentId)) == null ? void 0 : _a13.getBody();
10320
+ if (!body) return !1;
10321
+ const textX = new TextX(), deleteActions = getRetainAndDeleteAndExcludeLineBreak(selection, body, segmentId);
10322
+ return deleteActions.length && textX.push(...deleteActions), textX.push({
10323
+ t: TextXActionType.INSERT,
10324
+ body: insertBody,
10325
+ len: insertBody.dataStream.length,
10326
+ line: 0,
10327
+ segmentId
10328
+ }), textX;
10329
+ }, "replaceSelectionTextX"), _BuildTextUtils = class _BuildTextUtils {
10330
+ };
10331
+ __name(_BuildTextUtils, "BuildTextUtils"), __publicField(_BuildTextUtils, "customRange", {
10332
+ add: addCustomRangeTextX,
10333
+ delete: deleteCustomRangeTextX,
10334
+ copyCustomRange,
10335
+ getCustomRangesInterestsWithRange,
10336
+ shouldDeleteCustomRange,
10337
+ isIntersecting
10338
+ }), __publicField(_BuildTextUtils, "selection", {
10339
+ replace: replaceSelectionTextX,
10340
+ makeSelection,
10341
+ normalizeSelection,
10342
+ getSelectionWithSymbolMax,
10343
+ getSelectionWithNoSymbolSide,
10344
+ getDeleteSelection,
10345
+ getInsertSelection,
10346
+ getDeleteActions: getRetainAndDeleteFromReplace,
10347
+ getDeleteExculdeLastLineBreakActions: getRetainAndDeleteAndExcludeLineBreak
10348
+ }), __publicField(_BuildTextUtils, "range", {
10349
+ isIntersects: isSegmentIntersects
10350
+ });
10351
+ let BuildTextUtils = _BuildTextUtils;
9945
10352
  const _ColumnManager = class _ColumnManager {
9946
10353
  constructor(_config, data) {
9947
10354
  __publicField(this, "_columnData", {});
@@ -10105,7 +10512,7 @@ const _RowManager = class _RowManager {
10105
10512
  /**
10106
10513
  * Get row data of given row
10107
10514
  * @param rowPos row index
10108
- * @returns
10515
+ * @returns {Nullable<Partial<IRowData>>} rowData
10109
10516
  */
10110
10517
  getRow(rowPos) {
10111
10518
  return this._rowData[rowPos];
@@ -10518,15 +10925,23 @@ const _Worksheet = class _Worksheet {
10518
10925
  return this._viewModel.getRowFiltered(row) ? 0 : this.getRowManager().getRowHeight(row);
10519
10926
  }
10520
10927
  /**
10521
- * Get if the row in visible. It may be affected by features like filter and view.
10928
+ * Row is filtered out, that means this row is invisible.
10929
+ * @param row
10930
+ * @returns {boolean} is row hidden by filter
10931
+ */
10932
+ isRowFiltered(row) {
10933
+ return this._viewModel.getRowFiltered(row);
10934
+ }
10935
+ /**
10936
+ * Get if the row is visible. It may be affected by features like filter and view.
10522
10937
  * @param row the row index
10523
- * @returns if the row in visible to the user
10938
+ * @returns {boolean} if the row in visible to the user
10524
10939
  */
10525
10940
  getRowVisible(row) {
10526
- return this._viewModel.getRowFiltered(row) ? !1 : this.getRowRawVisible(row);
10941
+ return !this.isRowFiltered(row) && this.getRowRawVisible(row);
10527
10942
  }
10528
10943
  /**
10529
- * Get if the row does not have `hidden` property.
10944
+ * Get if the row does not have `hidden` property. This value won't affected by features like filter and view.
10530
10945
  * @param row the row index
10531
10946
  * @returns if the row does not have `hidden` property
10532
10947
  */
@@ -10545,7 +10960,7 @@ const _Worksheet = class _Worksheet {
10545
10960
  return ranges.forEach((range) => range.endRow = lastRow), ranges;
10546
10961
  }
10547
10962
  /**
10548
- * Get all visible rows in the sheet.
10963
+ * Get all visible rows in the sheet.(not include filter & view, like getRawVisibleRows)
10549
10964
  * @returns Visible rows range list
10550
10965
  */
10551
10966
  getVisibleRows() {
@@ -10553,7 +10968,7 @@ const _Worksheet = class _Worksheet {
10553
10968
  return this._rowManager.getVisibleRows(0, rowCount - 1);
10554
10969
  }
10555
10970
  /**
10556
- * Get all visible columns in the sheet.
10971
+ * Get all visible columns in the sheet.(not include filter & view)
10557
10972
  * @returns Visible columns range list
10558
10973
  */
10559
10974
  getVisibleCols() {
@@ -10687,12 +11102,12 @@ function extractPureTextFromCell(cell) {
10687
11102
  return "";
10688
11103
  const richTextValue = (_b2 = (_a13 = cell.p) == null ? void 0 : _a13.body) == null ? void 0 : _b2.dataStream;
10689
11104
  if (richTextValue)
10690
- return richTextValue;
11105
+ return richTextValue.replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_START, "").replaceAll(DataStreamTreeTokenType.CUSTOM_RANGE_END, "");
10691
11106
  const rawValue = cell.v;
10692
11107
  return typeof rawValue == "string" ? cell.t === CellValueType.BOOLEAN ? rawValue.toUpperCase() : rawValue.replace(/[\r\n]/g, "") : typeof rawValue == "number" ? cell.t === CellValueType.BOOLEAN ? rawValue ? "TRUE" : "FALSE" : rawValue.toString() : typeof rawValue == "boolean" ? rawValue ? "TRUE" : "FALSE" : "";
10693
11108
  }
10694
11109
  __name(extractPureTextFromCell, "extractPureTextFromCell");
10695
- const version = "0.2.12";
11110
+ const version = "0.2.14";
10696
11111
  function getEmptySnapshot(unitID = "", locale = LocaleType.ZH_CN, name = "") {
10697
11112
  return {
10698
11113
  id: unitID,
@@ -11933,14 +12348,14 @@ let PluginHolder = (_a10 = class extends Disposable {
11933
12348
  const NotRegistered = dependents.find((d) => !this._checkPluginRegistered(d));
11934
12349
  return NotRegistered ? (this._logService.debug(
11935
12350
  "[PluginService]",
11936
- `plugin "${plugin.pluginName}" depends on "${NotRegistered.pluginName}" which is not registered. Univer will automatically register it with default configuration.`
12351
+ `Plugin "${plugin.pluginName}" depends on "${NotRegistered.pluginName}" which is not registered. Univer will automatically register it with default configuration.`
11937
12352
  ), this._registerPlugin(NotRegistered, void 0), !0) : !1;
11938
12353
  }, "exhaustUnregisteredDependents");
11939
12354
  for (; exhaustUnregisteredDependents(); )
11940
12355
  ;
11941
12356
  }
11942
12357
  const pluginInstance = this._injector.createInstance(plugin, options);
11943
- return this._pluginStore.addPlugin(pluginInstance), pluginInstance;
12358
+ return this._pluginStore.addPlugin(pluginInstance), this._logService.debug("[PluginService]", `Plugin "${pluginInstance.getPluginName()}" registered.`), pluginInstance;
11944
12359
  }
11945
12360
  // Here we should be careful with the sequence of which plugin should run first. We should manually add a queue here.
11946
12361
  // Because lately registered plugins may get executed first.
@@ -12552,6 +12967,7 @@ export {
12552
12967
  BooleanNumber,
12553
12968
  BorderStyleTypes,
12554
12969
  BorderType,
12970
+ BuildTextUtils,
12555
12971
  BulletAlignment,
12556
12972
  COLORS,
12557
12973
  CellValueType,
@@ -12593,6 +13009,7 @@ export {
12593
13009
  DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,
12594
13010
  DOCS_NORMAL_EDITOR_UNIT_ID_KEY,
12595
13011
  DOCS_ZEN_EDITOR_UNIT_ID_KEY,
13012
+ DOC_RANGE_TYPE,
12596
13013
  DashStyleType,
12597
13014
  DataStreamTreeNodeType,
12598
13015
  DataStreamTreeTokenType,
@@ -12602,6 +13019,7 @@ export {
12602
13019
  DataValidationRenderMode,
12603
13020
  DataValidationStatus,
12604
13021
  DataValidationType,
13022
+ DeleteDirection,
12605
13023
  DependentOn,
12606
13024
  DesktopLogService,
12607
13025
  DeveloperMetadataVisibility,
@@ -12696,6 +13114,7 @@ export {
12696
13114
  Quantity,
12697
13115
  QuickListType,
12698
13116
  QuickListTypeMap,
13117
+ RANGE_DIRECTION,
12699
13118
  RANGE_TYPE,
12700
13119
  RCDisposable,
12701
13120
  RGBA_PAREN,
@@ -12744,7 +13163,6 @@ export {
12744
13163
  ThemeColors,
12745
13164
  ThemeService,
12746
13165
  Tools,
12747
- UNIVER_INTERNAL,
12748
13166
  UndoCommand,
12749
13167
  UndoCommandId,
12750
13168
  UnitModel,