@univerjs/sheets-ui 0.21.1 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -21
- package/lib/cjs/index.js +444 -409
- package/lib/es/index.js +445 -410
- package/lib/index.js +445 -410
- package/lib/types/config/config.d.ts +21 -0
- package/lib/types/controllers/shortcuts/utils.d.ts +8 -0
- package/lib/types/services/clipboard/html-to-usm/converter.d.ts +11 -0
- package/lib/types/services/clipboard/type.d.ts +1 -0
- package/lib/types/services/editor/cell-editor-manager.service.d.ts +1 -1
- package/lib/types/services/editor/formula-editor-manager.service.d.ts +6 -4
- package/lib/types/services/editor-bridge.service.d.ts +2 -2
- package/lib/types/services/status-bar.service.d.ts +1 -1
- package/lib/umd/index.js +11 -11
- package/package.json +23 -19
package/lib/cjs/index.js
CHANGED
|
@@ -70,6 +70,16 @@ function whenSheetFocused(contextService) {
|
|
|
70
70
|
function whenSheetEditorFocused(contextService) {
|
|
71
71
|
return contextService.getContextValue(_univerjs_core.FOCUSING_SHEET) && contextService.getContextValue(_univerjs_core.FOCUSING_UNIVER_EDITOR) && !contextService.getContextValue(_univerjs_core.EDITOR_ACTIVATED) && !contextService.getContextValue(_univerjs_core.FOCUSING_COMMON_DRAWINGS);
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Requires the currently focused unit to be Workbook, regardless of whether the cell editor is activated.
|
|
75
|
+
* Used by inline-format shortcuts (bold/italic/underline/strikethrough) so they can also fire
|
|
76
|
+
* inside the cell editor — the corresponding command will route to the docs inline-format command
|
|
77
|
+
* when EDITOR_ACTIVATED is true.
|
|
78
|
+
* @param contextService
|
|
79
|
+
*/
|
|
80
|
+
function whenSheetFocusedInlineFormat(contextService) {
|
|
81
|
+
return contextService.getContextValue(_univerjs_core.FOCUSING_SHEET) && contextService.getContextValue(_univerjs_core.FOCUSING_UNIVER_EDITOR) && !contextService.getContextValue(_univerjs_core.FOCUSING_COMMON_DRAWINGS);
|
|
82
|
+
}
|
|
73
83
|
function whenSheetEditorFocusedAndFxNotFocused(contextService) {
|
|
74
84
|
return contextService.getContextValue(_univerjs_core.FOCUSING_SHEET) && contextService.getContextValue(_univerjs_core.FOCUSING_UNIVER_EDITOR) && !contextService.getContextValue(_univerjs_core.EDITOR_ACTIVATED) && !contextService.getContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR) && !contextService.getContextValue(_univerjs_core.FOCUSING_COMMON_DRAWINGS);
|
|
75
85
|
}
|
|
@@ -204,7 +214,7 @@ let SHEET_VIEW_KEY = /* @__PURE__ */ function(SHEET_VIEW_KEY) {
|
|
|
204
214
|
}({});
|
|
205
215
|
|
|
206
216
|
//#endregion
|
|
207
|
-
//#region \0@oxc-project+runtime@0.
|
|
217
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
|
|
208
218
|
function _typeof(o) {
|
|
209
219
|
"@babel/helpers - typeof";
|
|
210
220
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -215,7 +225,7 @@ function _typeof(o) {
|
|
|
215
225
|
}
|
|
216
226
|
|
|
217
227
|
//#endregion
|
|
218
|
-
//#region \0@oxc-project+runtime@0.
|
|
228
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
|
|
219
229
|
function toPrimitive(t, r) {
|
|
220
230
|
if ("object" != _typeof(t) || !t) return t;
|
|
221
231
|
var e = t[Symbol.toPrimitive];
|
|
@@ -228,14 +238,14 @@ function toPrimitive(t, r) {
|
|
|
228
238
|
}
|
|
229
239
|
|
|
230
240
|
//#endregion
|
|
231
|
-
//#region \0@oxc-project+runtime@0.
|
|
241
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
|
|
232
242
|
function toPropertyKey(t) {
|
|
233
243
|
var i = toPrimitive(t, "string");
|
|
234
244
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
235
245
|
}
|
|
236
246
|
|
|
237
247
|
//#endregion
|
|
238
|
-
//#region \0@oxc-project+runtime@0.
|
|
248
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
|
|
239
249
|
function _defineProperty(e, r, t) {
|
|
240
250
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
241
251
|
value: t,
|
|
@@ -376,7 +386,7 @@ const SetRowHeaderWidthCommand = {
|
|
|
376
386
|
if (render) {
|
|
377
387
|
renderManagerSrv.getRenderById(unitId).with(SheetSkeletonManagerService).setRowHeaderSize(render, subUnitId, size);
|
|
378
388
|
const { components } = render;
|
|
379
|
-
const renderComponent = components.get(
|
|
389
|
+
const renderComponent = components.get("__SpreadsheetRowHeader__");
|
|
380
390
|
if (renderComponent) renderComponent.setCustomHeader({ headerStyle: { size } }, subUnitId);
|
|
381
391
|
}
|
|
382
392
|
return true;
|
|
@@ -394,7 +404,7 @@ const SetColumnHeaderHeightCommand = {
|
|
|
394
404
|
if (render) {
|
|
395
405
|
renderManagerSrv.getRenderById(unitId).with(SheetSkeletonManagerService).setColumnHeaderSize(render, subUnitId, size);
|
|
396
406
|
const { components } = render;
|
|
397
|
-
const renderComponent = components.get(
|
|
407
|
+
const renderComponent = components.get("__SpreadsheetColumnHeader__");
|
|
398
408
|
if (renderComponent) renderComponent.setCustomHeader({ headerStyle: { size } }, subUnitId);
|
|
399
409
|
}
|
|
400
410
|
return true;
|
|
@@ -983,7 +993,7 @@ function genSelectionByRange(skeleton, range) {
|
|
|
983
993
|
}
|
|
984
994
|
|
|
985
995
|
//#endregion
|
|
986
|
-
//#region \0@oxc-project+runtime@0.
|
|
996
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
987
997
|
function __decorateParam(paramIndex, decorator) {
|
|
988
998
|
return function(target, key) {
|
|
989
999
|
decorator(target, key, paramIndex);
|
|
@@ -991,7 +1001,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
991
1001
|
}
|
|
992
1002
|
|
|
993
1003
|
//#endregion
|
|
994
|
-
//#region \0@oxc-project+runtime@0.
|
|
1004
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
995
1005
|
function __decorate(decorators, target, key, desc) {
|
|
996
1006
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
997
1007
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1792,41 +1802,6 @@ var SelectionShapeExtension = class {
|
|
|
1792
1802
|
|
|
1793
1803
|
//#endregion
|
|
1794
1804
|
//#region src/services/selection/selection-control.ts
|
|
1795
|
-
let SELECTION_MANAGER_KEY = /* @__PURE__ */ function(SELECTION_MANAGER_KEY) {
|
|
1796
|
-
SELECTION_MANAGER_KEY["Selection"] = "__SpreadsheetSelectionShape__";
|
|
1797
|
-
SELECTION_MANAGER_KEY["top"] = "__SpreadsheetSelectionTopControl__";
|
|
1798
|
-
SELECTION_MANAGER_KEY["bottom"] = "__SpreadsheetSelectionBottomControl__";
|
|
1799
|
-
SELECTION_MANAGER_KEY["left"] = "__SpreadsheetSelectionShapeLeftControl__";
|
|
1800
|
-
SELECTION_MANAGER_KEY["right"] = "__SpreadsheetSelectionShapeRightControl__";
|
|
1801
|
-
SELECTION_MANAGER_KEY["backgroundTop"] = "__SpreadsheetSelectionBackgroundControlTop__";
|
|
1802
|
-
SELECTION_MANAGER_KEY["backgroundMiddleLeft"] = "__SpreadsheetSelectionBackgroundControlMiddleLeft__";
|
|
1803
|
-
SELECTION_MANAGER_KEY["backgroundMiddleRight"] = "__SpreadsheetSelectionBackgroundControlMiddleRight__";
|
|
1804
|
-
SELECTION_MANAGER_KEY["backgroundBottom"] = "__SpreadsheetSelectionBackgroundControlBottom__";
|
|
1805
|
-
SELECTION_MANAGER_KEY["fill"] = "__SpreadsheetSelectionFillControl__";
|
|
1806
|
-
SELECTION_MANAGER_KEY["fillTopLeft"] = "__SpreadsheetSelectionFillControlTopLeft__";
|
|
1807
|
-
SELECTION_MANAGER_KEY["fillBottomRight"] = "__SpreadsheetSelectionFillControlBottomRight__";
|
|
1808
|
-
SELECTION_MANAGER_KEY["fillTopLeftInner"] = "__SpreadsheetSelectionFillControlTopLeftInner__";
|
|
1809
|
-
SELECTION_MANAGER_KEY["fillBottomRightInner"] = "__SpreadsheetSelectionFillControlBottomRightInner__";
|
|
1810
|
-
SELECTION_MANAGER_KEY["lineMain"] = "__SpreadsheetDragLineMainControl__";
|
|
1811
|
-
SELECTION_MANAGER_KEY["lineContent"] = "__SpreadsheetDragLineContentControl__";
|
|
1812
|
-
SELECTION_MANAGER_KEY["line"] = "__SpreadsheetDragLineControl__";
|
|
1813
|
-
SELECTION_MANAGER_KEY["dash"] = "__SpreadsheetDragDashControl__";
|
|
1814
|
-
SELECTION_MANAGER_KEY["rowHeaderBackground"] = "__SpreadSheetSelectionRowHeaderBackground__";
|
|
1815
|
-
SELECTION_MANAGER_KEY["rowHeaderBorder"] = "__SpreadSheetSelectionRowHeaderBorder__";
|
|
1816
|
-
SELECTION_MANAGER_KEY["rowHeaderGroup"] = "__SpreadSheetSelectionRowHeaderGroup__";
|
|
1817
|
-
SELECTION_MANAGER_KEY["columnHeaderBackground"] = "__SpreadSheetSelectionColumnHeaderBackground__";
|
|
1818
|
-
SELECTION_MANAGER_KEY["columnHeaderBorder"] = "__SpreadSheetSelectionColumnHeaderBorder__";
|
|
1819
|
-
SELECTION_MANAGER_KEY["columnHeaderGroup"] = "__SpreadSheetSelectionColumnHeaderGroup__";
|
|
1820
|
-
SELECTION_MANAGER_KEY["topLeftWidget"] = "__SpreadSheetSelectionTopLeftWidget__";
|
|
1821
|
-
SELECTION_MANAGER_KEY["topCenterWidget"] = "__SpreadSheetSelectionTopCenterWidget__";
|
|
1822
|
-
SELECTION_MANAGER_KEY["topRightWidget"] = "__SpreadSheetSelectionTopRightWidget__";
|
|
1823
|
-
SELECTION_MANAGER_KEY["middleLeftWidget"] = "__SpreadSheetSelectionMiddleLeftWidget__";
|
|
1824
|
-
SELECTION_MANAGER_KEY["middleRightWidget"] = "__SpreadSheetSelectionMiddleRightWidget__";
|
|
1825
|
-
SELECTION_MANAGER_KEY["bottomLeftWidget"] = "__SpreadSheetSelectionBottomLeftWidget__";
|
|
1826
|
-
SELECTION_MANAGER_KEY["bottomCenterWidget"] = "__SpreadSheetSelectionBottomCenterWidget__";
|
|
1827
|
-
SELECTION_MANAGER_KEY["bottomRightWidget"] = "__SpreadSheetSelectionBottomRightWidget__";
|
|
1828
|
-
return SELECTION_MANAGER_KEY;
|
|
1829
|
-
}({});
|
|
1830
1805
|
const SELECTION_TITLE_HIGHLIGHT_ALPHA = .3;
|
|
1831
1806
|
/**
|
|
1832
1807
|
* The main selection canvas component, includes leftControl,rightControl,topControl,bottomControl,backgroundControlTop,backgroundControlMiddleLeft,backgroundControlMiddleRight,backgroundControlBottom,fillControl
|
|
@@ -1897,29 +1872,29 @@ var SelectionControl = class extends _univerjs_core.Disposable {
|
|
|
1897
1872
|
this._currentStyle = genNormalSelectionStyle(this._themeService);
|
|
1898
1873
|
this._selectionRenderModel = new SelectionRenderModel();
|
|
1899
1874
|
const zIndex = this._zIndex;
|
|
1900
|
-
this._leftBorder = new _univerjs_engine_render.Rect(
|
|
1901
|
-
this._rightBorder = new _univerjs_engine_render.Rect(
|
|
1902
|
-
this._topBorder = new _univerjs_engine_render.Rect(
|
|
1903
|
-
this._bottomBorder = new _univerjs_engine_render.Rect(
|
|
1904
|
-
this._backgroundControlTop = new _univerjs_engine_render.Rect(
|
|
1875
|
+
this._leftBorder = new _univerjs_engine_render.Rect("__SpreadsheetSelectionShapeLeftControl__" + zIndex, { zIndex });
|
|
1876
|
+
this._rightBorder = new _univerjs_engine_render.Rect("__SpreadsheetSelectionShapeRightControl__" + zIndex, { zIndex });
|
|
1877
|
+
this._topBorder = new _univerjs_engine_render.Rect("__SpreadsheetSelectionTopControl__" + zIndex, { zIndex });
|
|
1878
|
+
this._bottomBorder = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBottomControl__" + zIndex, { zIndex });
|
|
1879
|
+
this._backgroundControlTop = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBackgroundControlTop__" + zIndex, {
|
|
1905
1880
|
zIndex: zIndex - 1,
|
|
1906
1881
|
evented: false
|
|
1907
1882
|
});
|
|
1908
|
-
this._backgroundControlBottom = new _univerjs_engine_render.Rect(
|
|
1883
|
+
this._backgroundControlBottom = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBackgroundControlBottom__" + zIndex, {
|
|
1909
1884
|
zIndex: zIndex - 1,
|
|
1910
1885
|
evented: false
|
|
1911
1886
|
});
|
|
1912
|
-
this._backgroundControlMiddleLeft = new _univerjs_engine_render.Rect(
|
|
1887
|
+
this._backgroundControlMiddleLeft = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBackgroundControlMiddleLeft__" + zIndex, {
|
|
1913
1888
|
zIndex: zIndex - 1,
|
|
1914
1889
|
evented: false
|
|
1915
1890
|
});
|
|
1916
|
-
this._backgroundControlMiddleRight = new _univerjs_engine_render.Rect(
|
|
1891
|
+
this._backgroundControlMiddleRight = new _univerjs_engine_render.Rect("__SpreadsheetSelectionBackgroundControlMiddleRight__" + zIndex, {
|
|
1917
1892
|
zIndex: zIndex - 1,
|
|
1918
1893
|
evented: false
|
|
1919
1894
|
});
|
|
1920
|
-
this._autoFillControl = new _univerjs_engine_render.Rect(
|
|
1895
|
+
this._autoFillControl = new _univerjs_engine_render.Rect("__SpreadsheetSelectionFillControl__" + zIndex, { zIndex: zIndex + 1 });
|
|
1921
1896
|
this._autoFillControl.hide();
|
|
1922
|
-
this._dashedRect = new _univerjs_engine_render.DashedRect(
|
|
1897
|
+
this._dashedRect = new _univerjs_engine_render.DashedRect("__SpreadsheetDragDashControl__" + zIndex, {
|
|
1923
1898
|
zIndex: zIndex + 2,
|
|
1924
1899
|
evented: false,
|
|
1925
1900
|
stroke: "#fff"
|
|
@@ -1937,7 +1912,7 @@ var SelectionControl = class extends _univerjs_core.Disposable {
|
|
|
1937
1912
|
this._dashedRect
|
|
1938
1913
|
];
|
|
1939
1914
|
this._widgetRects = this._initialWidget();
|
|
1940
|
-
this._selectionShapeGroup = new _univerjs_engine_render.Group(
|
|
1915
|
+
this._selectionShapeGroup = new _univerjs_engine_render.Group("__SpreadsheetSelectionShape__" + zIndex, ...shapes, ...this._widgetRects);
|
|
1941
1916
|
this._selectionShapeGroup.hide();
|
|
1942
1917
|
this._selectionShapeGroup.evented = false;
|
|
1943
1918
|
this._selectionShapeGroup.zIndex = zIndex;
|
|
@@ -1951,27 +1926,27 @@ var SelectionControl = class extends _univerjs_core.Disposable {
|
|
|
1951
1926
|
}
|
|
1952
1927
|
_initialHeader() {
|
|
1953
1928
|
const zIndex = this._zIndex;
|
|
1954
|
-
this._rowHeaderBackground = new _univerjs_engine_render.Rect(
|
|
1929
|
+
this._rowHeaderBackground = new _univerjs_engine_render.Rect("__SpreadSheetSelectionRowHeaderBackground__" + zIndex, {
|
|
1955
1930
|
zIndex: zIndex - 1,
|
|
1956
1931
|
evented: false
|
|
1957
1932
|
});
|
|
1958
|
-
this._rowHeaderBorder = new _univerjs_engine_render.Rect(
|
|
1933
|
+
this._rowHeaderBorder = new _univerjs_engine_render.Rect("__SpreadSheetSelectionRowHeaderBorder__" + zIndex, {
|
|
1959
1934
|
zIndex: zIndex - 1,
|
|
1960
1935
|
evented: false
|
|
1961
1936
|
});
|
|
1962
|
-
this._rowHeaderGroup = new _univerjs_engine_render.Group(
|
|
1937
|
+
this._rowHeaderGroup = new _univerjs_engine_render.Group("__SpreadSheetSelectionRowHeaderGroup__" + zIndex, this._rowHeaderBackground, this._rowHeaderBorder);
|
|
1963
1938
|
this._rowHeaderGroup.hide();
|
|
1964
1939
|
this._rowHeaderGroup.evented = false;
|
|
1965
1940
|
this._rowHeaderGroup.zIndex = zIndex;
|
|
1966
|
-
this._columnHeaderBackground = new _univerjs_engine_render.Rect(
|
|
1941
|
+
this._columnHeaderBackground = new _univerjs_engine_render.Rect("__SpreadSheetSelectionColumnHeaderBackground__" + zIndex, {
|
|
1967
1942
|
zIndex: zIndex - 1,
|
|
1968
1943
|
evented: false
|
|
1969
1944
|
});
|
|
1970
|
-
this._columnHeaderBorder = new _univerjs_engine_render.Rect(
|
|
1945
|
+
this._columnHeaderBorder = new _univerjs_engine_render.Rect("__SpreadSheetSelectionColumnHeaderBorder__" + zIndex, {
|
|
1971
1946
|
zIndex: zIndex - 1,
|
|
1972
1947
|
evented: false
|
|
1973
1948
|
});
|
|
1974
|
-
this._columnHeaderGroup = new _univerjs_engine_render.Group(
|
|
1949
|
+
this._columnHeaderGroup = new _univerjs_engine_render.Group("__SpreadSheetSelectionColumnHeaderGroup__" + zIndex, this._columnHeaderBackground, this._columnHeaderBorder);
|
|
1975
1950
|
this._columnHeaderGroup.hide();
|
|
1976
1951
|
this._columnHeaderGroup.evented = false;
|
|
1977
1952
|
this._columnHeaderGroup.zIndex = zIndex;
|
|
@@ -1979,14 +1954,14 @@ var SelectionControl = class extends _univerjs_core.Disposable {
|
|
|
1979
1954
|
}
|
|
1980
1955
|
_initialWidget() {
|
|
1981
1956
|
const zIndex = this._zIndex;
|
|
1982
|
-
this._topLeftWidget = new _univerjs_engine_render.Rect(
|
|
1983
|
-
this._topCenterWidget = new _univerjs_engine_render.Rect(
|
|
1984
|
-
this._topRightWidget = new _univerjs_engine_render.Rect(
|
|
1985
|
-
this._middleLeftWidget = new _univerjs_engine_render.Rect(
|
|
1986
|
-
this._middleRightWidget = new _univerjs_engine_render.Rect(
|
|
1987
|
-
this._bottomLeftWidget = new _univerjs_engine_render.Rect(
|
|
1988
|
-
this._bottomCenterWidget = new _univerjs_engine_render.Rect(
|
|
1989
|
-
this._bottomRightWidget = new _univerjs_engine_render.Rect(
|
|
1957
|
+
this._topLeftWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionTopLeftWidget__" + zIndex, { zIndex: zIndex + 1 });
|
|
1958
|
+
this._topCenterWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionTopCenterWidget__" + zIndex, { zIndex: zIndex + 1 });
|
|
1959
|
+
this._topRightWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionTopRightWidget__" + zIndex, { zIndex: zIndex + 1 });
|
|
1960
|
+
this._middleLeftWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionMiddleLeftWidget__" + zIndex, { zIndex: zIndex + 1 });
|
|
1961
|
+
this._middleRightWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionMiddleRightWidget__" + zIndex, { zIndex: zIndex + 1 });
|
|
1962
|
+
this._bottomLeftWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionBottomLeftWidget__" + zIndex, { zIndex: zIndex + 1 });
|
|
1963
|
+
this._bottomCenterWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionBottomCenterWidget__" + zIndex, { zIndex: zIndex + 1 });
|
|
1964
|
+
this._bottomRightWidget = new _univerjs_engine_render.Rect("__SpreadSheetSelectionBottomRightWidget__" + zIndex, { zIndex: zIndex + 1 });
|
|
1990
1965
|
return [
|
|
1991
1966
|
this._topLeftWidget,
|
|
1992
1967
|
this._topCenterWidget,
|
|
@@ -2620,7 +2595,7 @@ var SelectionControl = class extends _univerjs_core.Disposable {
|
|
|
2620
2595
|
|
|
2621
2596
|
//#endregion
|
|
2622
2597
|
//#region src/services/mark-selection/mark-selection.service.ts
|
|
2623
|
-
const DEFAULT_Z_INDEX =
|
|
2598
|
+
const DEFAULT_Z_INDEX = 1e4;
|
|
2624
2599
|
const IMarkSelectionService = (0, _univerjs_core.createIdentifier)("univer.mark-selection-service");
|
|
2625
2600
|
let MarkSelectionService = class MarkSelectionService extends _univerjs_core.Disposable {
|
|
2626
2601
|
constructor(_currentService, _sheetSkeletonService, _renderManagerService, _themeService) {
|
|
@@ -3000,6 +2975,7 @@ var HtmlToUSMService = class HtmlToUSMService {
|
|
|
3000
2975
|
_defineProperty(this, "_styleRules", []);
|
|
3001
2976
|
_defineProperty(this, "_afterProcessRules", []);
|
|
3002
2977
|
_defineProperty(this, "_dom", null);
|
|
2978
|
+
_defineProperty(this, "_msoNumfmtMap", /* @__PURE__ */ new Map());
|
|
3003
2979
|
_defineProperty(this, "_getCurrentSkeleton", void 0);
|
|
3004
2980
|
this._getCurrentSkeleton = props.getCurrentSkeleton;
|
|
3005
2981
|
}
|
|
@@ -3013,6 +2989,8 @@ var HtmlToUSMService = class HtmlToUSMService {
|
|
|
3013
2989
|
this._dom = parseToDom(html);
|
|
3014
2990
|
const style = this._dom.querySelector("style");
|
|
3015
2991
|
if (style) {
|
|
2992
|
+
var _style$textContent;
|
|
2993
|
+
this._parseMsoNumfmtFromCssText((_style$textContent = style.textContent) !== null && _style$textContent !== void 0 ? _style$textContent : "");
|
|
3016
2994
|
const shadowHost = document.createElement("div");
|
|
3017
2995
|
const shadowRoot = shadowHost.attachShadow({ mode: "open" });
|
|
3018
2996
|
document.body.appendChild(shadowHost);
|
|
@@ -3108,6 +3086,40 @@ var HtmlToUSMService = class HtmlToUSMService {
|
|
|
3108
3086
|
cellMatrix: valueMatrix
|
|
3109
3087
|
};
|
|
3110
3088
|
}
|
|
3089
|
+
/**
|
|
3090
|
+
* Parse mso-number-format from raw CSS text before the browser drops proprietary properties.
|
|
3091
|
+
* Must be called with style.textContent BEFORE the style element is moved into a shadow DOM.
|
|
3092
|
+
*/
|
|
3093
|
+
_parseMsoNumfmtFromCssText(rawCssText) {
|
|
3094
|
+
const ruleRegex = /([^{]+)\{([^}]*)\}/g;
|
|
3095
|
+
let match;
|
|
3096
|
+
while ((match = ruleRegex.exec(rawCssText)) !== null) {
|
|
3097
|
+
const selectors = match[1].trim();
|
|
3098
|
+
const numfmtMatch = match[2].match(/mso-number-format\s*:\s*("(?:[^"\\]|\\.)*"|[^;]+)/i);
|
|
3099
|
+
if (!numfmtMatch) continue;
|
|
3100
|
+
let value = numfmtMatch[1].trim();
|
|
3101
|
+
if (value.startsWith("\"") && value.endsWith("\"")) value = value.slice(1, -1);
|
|
3102
|
+
const decoded = decodeMsoNumberFormat(value);
|
|
3103
|
+
selectors.split(",").forEach((sel) => {
|
|
3104
|
+
this._msoNumfmtMap.set(sel.trim(), decoded);
|
|
3105
|
+
});
|
|
3106
|
+
}
|
|
3107
|
+
}
|
|
3108
|
+
/**
|
|
3109
|
+
* Get the mso-number-format value for a given DOM node,
|
|
3110
|
+
* following the same priority as _getStyle: class > id > tag.
|
|
3111
|
+
*/
|
|
3112
|
+
_getMsoNumfmtForNode(node) {
|
|
3113
|
+
for (const className of node.classList) {
|
|
3114
|
+
const fmt = this._msoNumfmtMap.get(`.${className}`);
|
|
3115
|
+
if (fmt) return fmt;
|
|
3116
|
+
}
|
|
3117
|
+
if (node.id) {
|
|
3118
|
+
const fmt = this._msoNumfmtMap.get(`#${node.id}`);
|
|
3119
|
+
if (fmt) return fmt;
|
|
3120
|
+
}
|
|
3121
|
+
return this._msoNumfmtMap.get(node.nodeName.toLowerCase());
|
|
3122
|
+
}
|
|
3111
3123
|
_getStyleBySelectorText(selectorText, cssText) {
|
|
3112
3124
|
var _this$_styleMap$get;
|
|
3113
3125
|
const css = (_this$_styleMap$get = this._styleMap.get(selectorText)) === null || _this$_styleMap$get === void 0 ? void 0 : _this$_styleMap$get.getPropertyValue(cssText);
|
|
@@ -3190,6 +3202,13 @@ var HtmlToUSMService = class HtmlToUSMService {
|
|
|
3190
3202
|
rowSpan: value.rowSpan,
|
|
3191
3203
|
colSpan: value.colSpan
|
|
3192
3204
|
};
|
|
3205
|
+
if (value.numfmtPattern) {
|
|
3206
|
+
cellValue.s = {
|
|
3207
|
+
...cellValue.s,
|
|
3208
|
+
n: { pattern: value.numfmtPattern }
|
|
3209
|
+
};
|
|
3210
|
+
cellValue.v = Number(cellValue.v);
|
|
3211
|
+
}
|
|
3193
3212
|
valueMatrix.setValue(row, col, cellValue);
|
|
3194
3213
|
});
|
|
3195
3214
|
return {
|
|
@@ -3231,7 +3250,33 @@ var HtmlToUSMService = class HtmlToUSMService {
|
|
|
3231
3250
|
if (borderRight && (0, _univerjs_ui.textTrim)(borderRight.substr(borderRight.indexOf(":") + 1)) !== "none") cellStyle = cellStyle.replace(/border-left:[^;]+;/, "");
|
|
3232
3251
|
}
|
|
3233
3252
|
}
|
|
3234
|
-
|
|
3253
|
+
let cellText = "";
|
|
3254
|
+
let cellRichStyle;
|
|
3255
|
+
let numfmtPattern;
|
|
3256
|
+
const pattern = this._getMsoNumfmtForNode(cell);
|
|
3257
|
+
if (pattern) {
|
|
3258
|
+
cellText = cell.innerHTML;
|
|
3259
|
+
if (cellText.includes("mso-spacerun:yes")) cellText = cleanMsoSpaceRun(cellText);
|
|
3260
|
+
const parseData = (0, _univerjs_core.getNumfmtParseValueFilter)(cellText);
|
|
3261
|
+
if (typeof (parseData === null || parseData === void 0 ? void 0 : parseData.v) === "number" && (parseData.z === pattern || _univerjs_core.numfmt.format(pattern, parseData.v) === cellText)) {
|
|
3262
|
+
cellText = parseData.v.toString();
|
|
3263
|
+
numfmtPattern = pattern;
|
|
3264
|
+
} else if (parseData && parseData.z) {
|
|
3265
|
+
cellText = parseData.v.toString();
|
|
3266
|
+
numfmtPattern = parseData.z;
|
|
3267
|
+
} else if (!parseData) {
|
|
3268
|
+
const extractedNumber = extractNumber(cellText);
|
|
3269
|
+
if (extractedNumber !== null && !Number.isNaN(extractedNumber) && _univerjs_core.numfmt.format(pattern, extractedNumber) === cellText) {
|
|
3270
|
+
cellText = extractedNumber.toString();
|
|
3271
|
+
numfmtPattern = pattern;
|
|
3272
|
+
}
|
|
3273
|
+
}
|
|
3274
|
+
}
|
|
3275
|
+
if (!numfmtPattern) {
|
|
3276
|
+
const cellTextAndRichText = this._getCellTextAndRichText(cell, cellStyle, skeleton);
|
|
3277
|
+
cellText = cellTextAndRichText.cellText;
|
|
3278
|
+
cellRichStyle = cellTextAndRichText.cellRichStyle;
|
|
3279
|
+
}
|
|
3235
3280
|
const cellValue = {
|
|
3236
3281
|
rowSpan,
|
|
3237
3282
|
colSpan,
|
|
@@ -3240,7 +3285,8 @@ var HtmlToUSMService = class HtmlToUSMService {
|
|
|
3240
3285
|
richTextParma: {
|
|
3241
3286
|
p: cellRichStyle,
|
|
3242
3287
|
v: cellText
|
|
3243
|
-
}
|
|
3288
|
+
},
|
|
3289
|
+
numfmtPattern
|
|
3244
3290
|
};
|
|
3245
3291
|
if (cellMatrix.getValue(rowIndex, colSetValueIndex)) {
|
|
3246
3292
|
colSetValueIndex += 1;
|
|
@@ -3298,9 +3344,9 @@ var HtmlToUSMService = class HtmlToUSMService {
|
|
|
3298
3344
|
* "<span style="mso-spacerun:yes"> </span>1,234.57 "
|
|
3299
3345
|
*/
|
|
3300
3346
|
if (cell.innerHTML.includes("mso-spacerun:yes")) {
|
|
3301
|
-
const cellText = cell.innerHTML
|
|
3347
|
+
const cellText = cleanMsoSpaceRun(cell.innerHTML);
|
|
3302
3348
|
const parseInfo = (0, _univerjs_core.getNumfmtParseValueFilter)(cellText);
|
|
3303
|
-
if (parseInfo && parseInfo.z &&
|
|
3349
|
+
if (parseInfo && parseInfo.z && typeof parseInfo.v === "number") return {
|
|
3304
3350
|
cellText,
|
|
3305
3351
|
cellRichStyle: void 0
|
|
3306
3352
|
};
|
|
@@ -3420,6 +3466,7 @@ var HtmlToUSMService = class HtmlToUSMService {
|
|
|
3420
3466
|
this._dom = null;
|
|
3421
3467
|
this._styleCache.clear();
|
|
3422
3468
|
this._styleMap.clear();
|
|
3469
|
+
this._msoNumfmtMap.clear();
|
|
3423
3470
|
}
|
|
3424
3471
|
};
|
|
3425
3472
|
_defineProperty(HtmlToUSMService, "_pluginList", []);
|
|
@@ -3518,11 +3565,38 @@ function setMergedCellStyle(cellMatrix, cellStyle, cellValue, indexParams) {
|
|
|
3518
3565
|
});
|
|
3519
3566
|
else cellMatrix.setValue(i, j, { style: cellStyle });
|
|
3520
3567
|
}
|
|
3568
|
+
/**
|
|
3569
|
+
* Decode mso-number-format value from Excel HTML CSS.
|
|
3570
|
+
* Excel escapes certain characters in CSS with backslash, and uses \0022 for double-quote.
|
|
3571
|
+
* e.g. "_\(* \#\,\#\#0_\)\;_\(* \\\(\#\,\#\#0\\\)\;_\(* \0022-\0022??_\)\;_\(\@_\)"
|
|
3572
|
+
* → "_(* #,##0_);_(* \(#,##0\);_(* \"-\"??_);_(@_)"
|
|
3573
|
+
*/
|
|
3574
|
+
function decodeMsoNumberFormat(value) {
|
|
3575
|
+
let result = value.replace(/\\([0-9a-fA-F]{4})/g, (_, hex) => String.fromCharCode(Number.parseInt(hex, 16)));
|
|
3576
|
+
result = result.replace(/\\\\/g, "\0BACKSLASH\0");
|
|
3577
|
+
result = result.replace(/\\([^\\])/g, "$1");
|
|
3578
|
+
result = result.replace(/\x00BACKSLASH\x00/g, "\\");
|
|
3579
|
+
return result;
|
|
3580
|
+
}
|
|
3581
|
+
function cleanMsoSpaceRun(value) {
|
|
3582
|
+
return value.replace(/<span[^>]*mso-spacerun:yes[^>]*>/gi, "").replace(/<\/span>/gi, "").replace(/\u00A0| /gi, "");
|
|
3583
|
+
}
|
|
3584
|
+
function extractNumber(value) {
|
|
3585
|
+
const match = value.match(/\(?-?\d[\d,]*(\.\d+)?%?\)?/);
|
|
3586
|
+
if (!match) return null;
|
|
3587
|
+
let numStr = match[0];
|
|
3588
|
+
const isPercent = numStr.includes("%");
|
|
3589
|
+
numStr = numStr.replace(/[,%]/g, "");
|
|
3590
|
+
if (/^\(.*\)$/.test(numStr)) numStr = `-${numStr.slice(1, -1)}`;
|
|
3591
|
+
let num = Number(numStr);
|
|
3592
|
+
if (isPercent) num = num / 100;
|
|
3593
|
+
return num;
|
|
3594
|
+
}
|
|
3521
3595
|
|
|
3522
3596
|
//#endregion
|
|
3523
3597
|
//#region src/services/clipboard/html-to-usm/paste-plugins/plugin-lark.ts
|
|
3524
3598
|
const LarkPastePlugin = {
|
|
3525
|
-
name: "univer-
|
|
3599
|
+
name: "univer-sheet-paste-plugin-lark",
|
|
3526
3600
|
checkPasteType(html) {
|
|
3527
3601
|
return /lark-record-clipboard/i.test(html);
|
|
3528
3602
|
},
|
|
@@ -3551,7 +3625,7 @@ const LarkPastePlugin = {
|
|
|
3551
3625
|
//#endregion
|
|
3552
3626
|
//#region src/services/clipboard/html-to-usm/paste-plugins/plugin-univer.ts
|
|
3553
3627
|
const UniverPastePlugin = {
|
|
3554
|
-
name: "univer-
|
|
3628
|
+
name: "univer-sheet-paste-plugin-univer",
|
|
3555
3629
|
checkPasteType(html) {
|
|
3556
3630
|
return /UniverNormal/i.test(html);
|
|
3557
3631
|
},
|
|
@@ -3574,7 +3648,7 @@ const UniverPastePlugin = {
|
|
|
3574
3648
|
//#endregion
|
|
3575
3649
|
//#region src/services/clipboard/html-to-usm/paste-plugins/plugin-word.ts
|
|
3576
3650
|
const WordPastePlugin = {
|
|
3577
|
-
name: "univer-
|
|
3651
|
+
name: "univer-sheet-paste-plugin-word",
|
|
3578
3652
|
checkPasteType(html) {
|
|
3579
3653
|
return /word|mso/i.test(html);
|
|
3580
3654
|
},
|
|
@@ -3973,7 +4047,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
|
|
|
3973
4047
|
return this._copyContentCache;
|
|
3974
4048
|
}
|
|
3975
4049
|
generateCopyContent(workbookId, worksheetId, range, options) {
|
|
3976
|
-
const { copyType =
|
|
4050
|
+
const { copyType = "COPY", copyHookType = PREDEFINED_HOOK_NAME_COPY.DEFAULT_COPY } = options || {};
|
|
3977
4051
|
let hooks = this._clipboardHooks;
|
|
3978
4052
|
if (copyHookType === PREDEFINED_HOOK_NAME_COPY.SPECIAL_COPY_FORMULA_ONLY) hooks = this._clipboardHooks.filter((h) => h.id === copyHookType);
|
|
3979
4053
|
hooks.forEach((h) => {
|
|
@@ -3995,7 +4069,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
|
|
|
3995
4069
|
if (!workbook || !worksheet) return false;
|
|
3996
4070
|
const workbookId = workbook.getUnitId();
|
|
3997
4071
|
const worksheetId = worksheet.getSheetId();
|
|
3998
|
-
const { copyType =
|
|
4072
|
+
const { copyType = "COPY", copyHookType = PREDEFINED_HOOK_NAME_COPY.DEFAULT_COPY } = options || {};
|
|
3999
4073
|
const copyContent = this.generateCopyContent(workbookId, worksheetId, selection.range, {
|
|
4000
4074
|
copyType,
|
|
4001
4075
|
copyHookType
|
|
@@ -4019,7 +4093,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
|
|
|
4019
4093
|
return true;
|
|
4020
4094
|
}
|
|
4021
4095
|
async cut() {
|
|
4022
|
-
return this.copy({ copyType:
|
|
4096
|
+
return this.copy({ copyType: "CUT" });
|
|
4023
4097
|
}
|
|
4024
4098
|
async paste(item, pasteType = PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE) {
|
|
4025
4099
|
const types = item.types;
|
|
@@ -4065,7 +4139,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
|
|
|
4065
4139
|
const undoRedoService = this._injector.get(_univerjs_core.IUndoRedoService);
|
|
4066
4140
|
const element = undoRedoService.pitchTopUndoElement();
|
|
4067
4141
|
if (element) {
|
|
4068
|
-
if ((0, _univerjs_core.sequenceExecute)(element.undoMutations, this._commandService)) undoRedoService.popUndoToRedo();
|
|
4142
|
+
if ((0, _univerjs_core.sequenceExecute)(element.undoMutations, this._commandService).result) undoRedoService.popUndoToRedo();
|
|
4069
4143
|
}
|
|
4070
4144
|
const { cellMatrix, rowProperties = [], colProperties = [], source, target } = pasteOptionsCache;
|
|
4071
4145
|
this._pasteUSM({
|
|
@@ -4309,7 +4383,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
|
|
|
4309
4383
|
range.rows.forEach((j) => {
|
|
4310
4384
|
rowProperties.push({ height: `${rowManager.getRowHeight(j)}` });
|
|
4311
4385
|
});
|
|
4312
|
-
if (cachedData.copyType ===
|
|
4386
|
+
if (cachedData.copyType === "CUT") {
|
|
4313
4387
|
const start = pasteTarget.pastedRange.rows[0];
|
|
4314
4388
|
const end = range.rows[range.rows.length - 1] - range.rows[0] + start;
|
|
4315
4389
|
pasteTarget.pastedRange.rows = Array.from(new Array(end + 1).keys()).slice(start);
|
|
@@ -4325,7 +4399,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
|
|
|
4325
4399
|
copyType: cachedData.copyType,
|
|
4326
4400
|
copyId
|
|
4327
4401
|
});
|
|
4328
|
-
if (cachedData.copyType ===
|
|
4402
|
+
if (cachedData.copyType === "CUT") {
|
|
4329
4403
|
this._copyContentCache.set(copyId, {
|
|
4330
4404
|
...cachedData,
|
|
4331
4405
|
matrix: null
|
|
@@ -4361,7 +4435,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
|
|
|
4361
4435
|
range: source.range
|
|
4362
4436
|
} : null;
|
|
4363
4437
|
const payload = {
|
|
4364
|
-
copyType: (source === null || source === void 0 ? void 0 : source.copyType) ||
|
|
4438
|
+
copyType: (source === null || source === void 0 ? void 0 : source.copyType) || "COPY",
|
|
4365
4439
|
copyId: source === null || source === void 0 ? void 0 : source.copyId,
|
|
4366
4440
|
pasteType
|
|
4367
4441
|
};
|
|
@@ -4398,7 +4472,7 @@ let SheetClipboardService = class SheetClipboardService extends _univerjs_core.D
|
|
|
4398
4472
|
undoMutationsInfo.push(...contentReturn.undos);
|
|
4399
4473
|
}
|
|
4400
4474
|
});
|
|
4401
|
-
if (payload.copyType ===
|
|
4475
|
+
if (payload.copyType === "COPY") {
|
|
4402
4476
|
const setSelectionOperation = this._getSetSelectionOperation(unitId, subUnitId, pastedRange, cellMatrix, pasteType);
|
|
4403
4477
|
if (setSelectionOperation) redoMutationsInfo.push(setSelectionOperation);
|
|
4404
4478
|
}
|
|
@@ -4813,6 +4887,7 @@ function getCellTextForClipboard(cell) {
|
|
|
4813
4887
|
if ((0, _univerjs_core.isNotNullOrUndefined)(cell.displayV)) return cell.displayV;
|
|
4814
4888
|
return (0, _univerjs_core.extractPureTextFromCell)(cell);
|
|
4815
4889
|
}
|
|
4890
|
+
const escapeSpecialCode = (cellStr) => cellStr.replace(/&/g, "&").replace(/\uFEFF/g, "").replace(/</g, "<").replace(/>/g, ">");
|
|
4816
4891
|
function rowAcrossMergedCell(row, startColumn, endColumn, worksheet) {
|
|
4817
4892
|
return worksheet.getMergeData().some((mergedCell) => mergedCell.startRow <= row && row < mergedCell.endRow && startColumn <= mergedCell.startColumn && mergedCell.startColumn <= endColumn);
|
|
4818
4893
|
}
|
|
@@ -6167,7 +6242,7 @@ let FormatPainterService = class FormatPainterService extends _univerjs_core.Dis
|
|
|
6167
6242
|
_defineProperty(this, "_status$", void 0);
|
|
6168
6243
|
_defineProperty(this, "_defaultHook", null);
|
|
6169
6244
|
_defineProperty(this, "_extendHooks", []);
|
|
6170
|
-
this._status$ = new rxjs.BehaviorSubject(
|
|
6245
|
+
this._status$ = new rxjs.BehaviorSubject(0);
|
|
6171
6246
|
this.status$ = this._status$.asObservable();
|
|
6172
6247
|
this._selectionFormat = {
|
|
6173
6248
|
styles: new _univerjs_core.ObjectMatrix(),
|
|
@@ -6238,11 +6313,11 @@ let FormatPainterService = class FormatPainterService extends _univerjs_core.Dis
|
|
|
6238
6313
|
}
|
|
6239
6314
|
_updateRangeMark(status) {
|
|
6240
6315
|
this._markSelectionService.removeAllShapes();
|
|
6241
|
-
if (status !==
|
|
6316
|
+
if (status !== 0) {
|
|
6242
6317
|
const selection = this._selectionManagerService.getCurrentLastSelection();
|
|
6243
6318
|
if (selection) {
|
|
6244
6319
|
const style = createCopyPasteSelectionStyle(this._themeService);
|
|
6245
|
-
if (status ===
|
|
6320
|
+
if (status === 2) this._markId = this._markSelectionService.addShape({
|
|
6246
6321
|
...selection,
|
|
6247
6322
|
style
|
|
6248
6323
|
});
|
|
@@ -6283,8 +6358,8 @@ const SetInfiniteFormatPainterCommand = {
|
|
|
6283
6358
|
handler: async (accessor) => {
|
|
6284
6359
|
const status = accessor.get(IFormatPainterService).getStatus();
|
|
6285
6360
|
let newStatus;
|
|
6286
|
-
if (status !==
|
|
6287
|
-
else newStatus =
|
|
6361
|
+
if (status !== 0) newStatus = 0;
|
|
6362
|
+
else newStatus = 2;
|
|
6288
6363
|
return accessor.get(_univerjs_core.ICommandService).executeCommand(SetFormatPainterOperation.id, { status: newStatus });
|
|
6289
6364
|
}
|
|
6290
6365
|
};
|
|
@@ -6294,8 +6369,8 @@ const SetOnceFormatPainterCommand = {
|
|
|
6294
6369
|
handler: async (accessor) => {
|
|
6295
6370
|
const status = accessor.get(IFormatPainterService).getStatus();
|
|
6296
6371
|
let newStatus;
|
|
6297
|
-
if (status !==
|
|
6298
|
-
else newStatus =
|
|
6372
|
+
if (status !== 0) newStatus = 0;
|
|
6373
|
+
else newStatus = 1;
|
|
6299
6374
|
return accessor.get(_univerjs_core.ICommandService).executeCommand(SetFormatPainterOperation.id, { status: newStatus });
|
|
6300
6375
|
}
|
|
6301
6376
|
};
|
|
@@ -6432,14 +6507,6 @@ SheetScrollManagerService = __decorate([__decorateParam(1, (0, _univerjs_core.In
|
|
|
6432
6507
|
|
|
6433
6508
|
//#endregion
|
|
6434
6509
|
//#region src/commands/commands/set-frozen.command.ts
|
|
6435
|
-
let SetSelectionFrozenType = /* @__PURE__ */ function(SetSelectionFrozenType) {
|
|
6436
|
-
SetSelectionFrozenType[SetSelectionFrozenType["RowColumn"] = 0] = "RowColumn";
|
|
6437
|
-
SetSelectionFrozenType[SetSelectionFrozenType["Row"] = 1] = "Row";
|
|
6438
|
-
SetSelectionFrozenType[SetSelectionFrozenType["Column"] = 2] = "Column";
|
|
6439
|
-
SetSelectionFrozenType[SetSelectionFrozenType["FirstRow"] = 3] = "FirstRow";
|
|
6440
|
-
SetSelectionFrozenType[SetSelectionFrozenType["FirstColumn"] = 4] = "FirstColumn";
|
|
6441
|
-
return SetSelectionFrozenType;
|
|
6442
|
-
}({});
|
|
6443
6510
|
const SetSelectionFrozenCommand = {
|
|
6444
6511
|
type: _univerjs_core.CommandType.COMMAND,
|
|
6445
6512
|
id: "sheet.command.set-selection-frozen",
|
|
@@ -6458,12 +6525,12 @@ const SetSelectionFrozenCommand = {
|
|
|
6458
6525
|
let startColumn;
|
|
6459
6526
|
let freezedRowCount;
|
|
6460
6527
|
let freezedColCount;
|
|
6461
|
-
if (type ===
|
|
6528
|
+
if (type === 3) {
|
|
6462
6529
|
startRow = sheetViewStartRow + 1;
|
|
6463
6530
|
freezedRowCount = 1;
|
|
6464
6531
|
startColumn = -1;
|
|
6465
6532
|
freezedColCount = 0;
|
|
6466
|
-
} else if (type ===
|
|
6533
|
+
} else if (type === 4) {
|
|
6467
6534
|
startRow = -1;
|
|
6468
6535
|
freezedRowCount = 0;
|
|
6469
6536
|
startColumn = sheetViewStartColumn + 1;
|
|
@@ -6476,12 +6543,12 @@ const SetSelectionFrozenCommand = {
|
|
|
6476
6543
|
let selectColumn = (_primary$startColumn = primary === null || primary === void 0 ? void 0 : primary.startColumn) !== null && _primary$startColumn !== void 0 ? _primary$startColumn : range.startColumn;
|
|
6477
6544
|
if (selectColumn === 0) selectColumn = 1;
|
|
6478
6545
|
const rangeType = range.rangeType;
|
|
6479
|
-
if (rangeType === _univerjs_core.RANGE_TYPE.ROW || type ===
|
|
6546
|
+
if (rangeType === _univerjs_core.RANGE_TYPE.ROW || type === 1) {
|
|
6480
6547
|
startRow = selectRow;
|
|
6481
6548
|
freezedRowCount = selectRow - sheetViewStartRow;
|
|
6482
6549
|
startColumn = -1;
|
|
6483
6550
|
freezedColCount = 0;
|
|
6484
|
-
} else if (rangeType === _univerjs_core.RANGE_TYPE.COLUMN || type ===
|
|
6551
|
+
} else if (rangeType === _univerjs_core.RANGE_TYPE.COLUMN || type === 2) {
|
|
6485
6552
|
startRow = -1;
|
|
6486
6553
|
freezedRowCount = 0;
|
|
6487
6554
|
startColumn = selectColumn;
|
|
@@ -6523,7 +6590,7 @@ const SetRowFrozenCommand = {
|
|
|
6523
6590
|
type: _univerjs_core.CommandType.COMMAND,
|
|
6524
6591
|
id: "sheet.command.set-row-frozen",
|
|
6525
6592
|
handler: async (accessor) => {
|
|
6526
|
-
accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type:
|
|
6593
|
+
accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: 1 });
|
|
6527
6594
|
return true;
|
|
6528
6595
|
}
|
|
6529
6596
|
};
|
|
@@ -6531,7 +6598,7 @@ const SetColumnFrozenCommand = {
|
|
|
6531
6598
|
type: _univerjs_core.CommandType.COMMAND,
|
|
6532
6599
|
id: "sheet.command.set-col-frozen",
|
|
6533
6600
|
handler: async (accessor) => {
|
|
6534
|
-
accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type:
|
|
6601
|
+
accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: 2 });
|
|
6535
6602
|
return true;
|
|
6536
6603
|
}
|
|
6537
6604
|
};
|
|
@@ -6539,7 +6606,7 @@ const SetFirstRowFrozenCommand = {
|
|
|
6539
6606
|
type: _univerjs_core.CommandType.COMMAND,
|
|
6540
6607
|
id: "sheet.command.set-first-row-frozen",
|
|
6541
6608
|
handler: async (accessor) => {
|
|
6542
|
-
accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type:
|
|
6609
|
+
accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: 3 });
|
|
6543
6610
|
return true;
|
|
6544
6611
|
}
|
|
6545
6612
|
};
|
|
@@ -6547,7 +6614,7 @@ const SetFirstColumnFrozenCommand = {
|
|
|
6547
6614
|
type: _univerjs_core.CommandType.COMMAND,
|
|
6548
6615
|
id: "sheet.command.set-first-column-frozen",
|
|
6549
6616
|
handler: async (accessor) => {
|
|
6550
|
-
accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type:
|
|
6617
|
+
accessor.get(_univerjs_core.ICommandService).executeCommand(SetSelectionFrozenCommand.id, { type: 4 });
|
|
6551
6618
|
return true;
|
|
6552
6619
|
}
|
|
6553
6620
|
};
|
|
@@ -6645,7 +6712,7 @@ const MoveSelectionCommand = {
|
|
|
6645
6712
|
}
|
|
6646
6713
|
}
|
|
6647
6714
|
const startRange = getStartRange(range, primary, direction);
|
|
6648
|
-
const next = jumpOver ===
|
|
6715
|
+
const next = jumpOver === 1 ? findNextGapRange(startRange, direction, worksheet) : findNextRange(startRange, direction, worksheet);
|
|
6649
6716
|
const destRange = (0, _univerjs_sheets.getCellAtRowCol)(next.startRow, next.startColumn, worksheet);
|
|
6650
6717
|
if (_univerjs_core.Rectangle.equals(destRange, startRange)) return false;
|
|
6651
6718
|
const unitId = workbook.getUnitId();
|
|
@@ -6837,7 +6904,7 @@ const ExpandSelectionCommand = {
|
|
|
6837
6904
|
const destRange = !checkIfShrink({
|
|
6838
6905
|
range: startRange,
|
|
6839
6906
|
primary
|
|
6840
|
-
}, direction, worksheet) ? jumpOver ===
|
|
6907
|
+
}, direction, worksheet) ? jumpOver === 1 ? expandToNextGapRange(startRange, direction, worksheet) : expandToNextCell(startRange, direction, worksheet) : jumpOver === 1 ? shrinkToNextGapRange(startRange, {
|
|
6841
6908
|
..._univerjs_core.Rectangle.clone(primary),
|
|
6842
6909
|
rangeType: _univerjs_core.RANGE_TYPE.NORMAL
|
|
6843
6910
|
}, direction, worksheet) : shrinkToNextCell(startRange, direction, worksheet);
|
|
@@ -6919,8 +6986,7 @@ const SelectAllCommand = {
|
|
|
6919
6986
|
params: { range }
|
|
6920
6987
|
});
|
|
6921
6988
|
if (interceptor.redos.length) redos.push(...interceptor.redos);
|
|
6922
|
-
(0, _univerjs_core.sequenceExecute)(redos, accessor.get(_univerjs_core.ICommandService));
|
|
6923
|
-
return true;
|
|
6989
|
+
return (0, _univerjs_core.sequenceExecute)(redos, accessor.get(_univerjs_core.ICommandService)).result;
|
|
6924
6990
|
}
|
|
6925
6991
|
};
|
|
6926
6992
|
|
|
@@ -6954,9 +7020,9 @@ function getSheetObject(univerInstanceService, renderManagerService) {
|
|
|
6954
7020
|
if (!components || !mainComponent) return null;
|
|
6955
7021
|
return {
|
|
6956
7022
|
spreadsheet: mainComponent,
|
|
6957
|
-
spreadsheetRowHeader: components.get(
|
|
6958
|
-
spreadsheetColumnHeader: components.get(
|
|
6959
|
-
spreadsheetLeftTopPlaceholder: components.get(
|
|
7023
|
+
spreadsheetRowHeader: components.get("__SpreadsheetRowHeader__"),
|
|
7024
|
+
spreadsheetColumnHeader: components.get("__SpreadsheetColumnHeader__"),
|
|
7025
|
+
spreadsheetLeftTopPlaceholder: components.get("__SpreadsheetLeftTopPlaceholder__"),
|
|
6960
7026
|
scene,
|
|
6961
7027
|
engine
|
|
6962
7028
|
};
|
|
@@ -9690,21 +9756,21 @@ let RepeatLastActionService = class RepeatLastActionService extends _univerjs_co
|
|
|
9690
9756
|
_defineProperty(this, "_repeatableCommands", new Set(SHEETS_BASIC_REPEATABLE_COMMANDS));
|
|
9691
9757
|
_defineProperty(this, "_customCommandHandlers", /* @__PURE__ */ new Map());
|
|
9692
9758
|
_defineProperty(this, "_permissionCheckMap", new Map([
|
|
9693
|
-
[
|
|
9759
|
+
["editable", new Set([
|
|
9694
9760
|
_univerjs_sheets.InsertRowCommand.id,
|
|
9695
9761
|
_univerjs_sheets.InsertColCommand.id,
|
|
9696
9762
|
_univerjs_sheets.RemoveRowCommand.id,
|
|
9697
9763
|
_univerjs_sheets.RemoveColCommand.id
|
|
9698
9764
|
])],
|
|
9699
|
-
[
|
|
9765
|
+
["cellStyle", new Set([
|
|
9700
9766
|
_univerjs_sheets.SetStyleCommand.id,
|
|
9701
9767
|
_univerjs_sheets.SetBorderCommand.id,
|
|
9702
9768
|
_univerjs_sheets.ClearSelectionFormatCommand.id,
|
|
9703
9769
|
_univerjs_sheets.ClearSelectionAllCommand.id
|
|
9704
9770
|
])],
|
|
9705
|
-
[
|
|
9706
|
-
[
|
|
9707
|
-
[
|
|
9771
|
+
["cellValue", new Set([_univerjs_sheets.ClearSelectionContentCommand.id, _univerjs_sheets.ClearSelectionAllCommand.id])],
|
|
9772
|
+
["rowStyle", new Set([_univerjs_sheets.SetRowHeightCommand.id])],
|
|
9773
|
+
["columnStyle", new Set([_univerjs_sheets.SetColWidthCommand.id])]
|
|
9708
9774
|
]));
|
|
9709
9775
|
}
|
|
9710
9776
|
dispose() {
|
|
@@ -9725,13 +9791,13 @@ let RepeatLastActionService = class RepeatLastActionService extends _univerjs_co
|
|
|
9725
9791
|
return this._repeatableCommands;
|
|
9726
9792
|
}
|
|
9727
9793
|
getActionPermission() {
|
|
9728
|
-
if (!this._action) return
|
|
9794
|
+
if (!this._action) return "none";
|
|
9729
9795
|
const permissions = [];
|
|
9730
9796
|
for (const [permission, commandSet] of this._permissionCheckMap.entries()) if (commandSet.has(this._action.id)) permissions.push(permission);
|
|
9731
|
-
if (permissions.length === 0) return
|
|
9797
|
+
if (permissions.length === 0) return "none";
|
|
9732
9798
|
return permissions.length === 1 ? permissions[0] : permissions;
|
|
9733
9799
|
}
|
|
9734
|
-
registerRepeatableCommand(commandId, handler, permissionType =
|
|
9800
|
+
registerRepeatableCommand(commandId, handler, permissionType = "none") {
|
|
9735
9801
|
var _this$_permissionChec;
|
|
9736
9802
|
this._repeatableCommands.add(commandId);
|
|
9737
9803
|
this._customCommandHandlers.set(commandId, handler);
|
|
@@ -9801,7 +9867,7 @@ RepeatLastActionService = __decorate([__decorateParam(0, _univerjs_core.ICommand
|
|
|
9801
9867
|
//#endregion
|
|
9802
9868
|
//#region src/commands/commands/repeat-last-action.command.ts
|
|
9803
9869
|
const permissionCheckMap = {
|
|
9804
|
-
[
|
|
9870
|
+
["editable"]: {
|
|
9805
9871
|
permissionTypes: {
|
|
9806
9872
|
workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
|
|
9807
9873
|
worksheetTypes: [_univerjs_sheets.WorksheetEditPermission],
|
|
@@ -9809,7 +9875,7 @@ const permissionCheckMap = {
|
|
|
9809
9875
|
},
|
|
9810
9876
|
errorMessageKey: "permission.dialog.editErr"
|
|
9811
9877
|
},
|
|
9812
|
-
[
|
|
9878
|
+
["cellStyle"]: {
|
|
9813
9879
|
permissionTypes: {
|
|
9814
9880
|
workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
|
|
9815
9881
|
worksheetTypes: [_univerjs_sheets.WorksheetEditPermission, _univerjs_sheets.WorksheetSetCellStylePermission],
|
|
@@ -9817,7 +9883,7 @@ const permissionCheckMap = {
|
|
|
9817
9883
|
},
|
|
9818
9884
|
errorMessageKey: "permission.dialog.setStyleErr"
|
|
9819
9885
|
},
|
|
9820
|
-
[
|
|
9886
|
+
["cellValue"]: {
|
|
9821
9887
|
permissionTypes: {
|
|
9822
9888
|
workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
|
|
9823
9889
|
worksheetTypes: [_univerjs_sheets.WorksheetEditPermission, _univerjs_sheets.WorksheetSetCellValuePermission],
|
|
@@ -9825,7 +9891,7 @@ const permissionCheckMap = {
|
|
|
9825
9891
|
},
|
|
9826
9892
|
errorMessageKey: "permission.dialog.editErr"
|
|
9827
9893
|
},
|
|
9828
|
-
[
|
|
9894
|
+
["rowStyle"]: {
|
|
9829
9895
|
permissionTypes: {
|
|
9830
9896
|
workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
|
|
9831
9897
|
worksheetTypes: [_univerjs_sheets.WorksheetEditPermission, _univerjs_sheets.WorksheetSetRowStylePermission],
|
|
@@ -9833,7 +9899,7 @@ const permissionCheckMap = {
|
|
|
9833
9899
|
},
|
|
9834
9900
|
errorMessageKey: "permission.dialog.setRowColStyleErr"
|
|
9835
9901
|
},
|
|
9836
|
-
[
|
|
9902
|
+
["columnStyle"]: {
|
|
9837
9903
|
permissionTypes: {
|
|
9838
9904
|
workbookTypes: [_univerjs_sheets.WorkbookEditablePermission],
|
|
9839
9905
|
worksheetTypes: [_univerjs_sheets.WorksheetEditPermission, _univerjs_sheets.WorksheetSetColumnStylePermission],
|
|
@@ -9854,14 +9920,14 @@ const RepeatLastActionCommand = {
|
|
|
9854
9920
|
const localeService = accessor.get(_univerjs_core.LocaleService);
|
|
9855
9921
|
const actionPermissionType = repeatLastActionService.getActionPermission();
|
|
9856
9922
|
if (Array.isArray(actionPermissionType)) for (const permissionType of actionPermissionType) {
|
|
9857
|
-
if (permissionType ===
|
|
9923
|
+
if (permissionType === "none") continue;
|
|
9858
9924
|
const permissionConfig = permissionCheckMap[permissionType];
|
|
9859
9925
|
if (!sheetPermissionCheckController.permissionCheckWithRanges(permissionConfig.permissionTypes)) {
|
|
9860
9926
|
sheetPermissionCheckController.blockExecuteWithoutPermission(localeService.t(permissionConfig.errorMessageKey));
|
|
9861
9927
|
return false;
|
|
9862
9928
|
}
|
|
9863
9929
|
}
|
|
9864
|
-
else if (actionPermissionType !==
|
|
9930
|
+
else if (actionPermissionType !== "none") {
|
|
9865
9931
|
const permissionConfig = permissionCheckMap[actionPermissionType];
|
|
9866
9932
|
if (!sheetPermissionCheckController.permissionCheckWithRanges(permissionConfig.permissionTypes)) {
|
|
9867
9933
|
sheetPermissionCheckController.blockExecuteWithoutPermission(localeService.t(permissionConfig.errorMessageKey));
|
|
@@ -10276,12 +10342,6 @@ const isRangeSelector = (unitId) => {
|
|
|
10276
10342
|
//#endregion
|
|
10277
10343
|
//#region src/controllers/editor/editing.render-controller.ts
|
|
10278
10344
|
const HIDDEN_EDITOR_POSITION$1 = -1e3;
|
|
10279
|
-
var CursorChange = /* @__PURE__ */ function(CursorChange) {
|
|
10280
|
-
CursorChange[CursorChange["InitialState"] = 0] = "InitialState";
|
|
10281
|
-
CursorChange[CursorChange["StartEditor"] = 1] = "StartEditor";
|
|
10282
|
-
CursorChange[CursorChange["CursorChange"] = 2] = "CursorChange";
|
|
10283
|
-
return CursorChange;
|
|
10284
|
-
}(CursorChange || {});
|
|
10285
10345
|
let EditingRenderController = class EditingRenderController extends _univerjs_core.Disposable {
|
|
10286
10346
|
constructor(_undoRedoService, _contextService, _renderManagerService, _editorBridgeService, _cellEditorManagerService, _lexerTreeBuilder, _functionService, _textSelectionManagerService, _commandService, _localService, _editorService, _univerInstanceService, _sheetInterceptorService, _sheetCellEditorResizeService, _selectionManagerService, _configService) {
|
|
10287
10347
|
super();
|
|
@@ -10301,7 +10361,7 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
|
|
|
10301
10361
|
this._sheetCellEditorResizeService = _sheetCellEditorResizeService;
|
|
10302
10362
|
this._selectionManagerService = _selectionManagerService;
|
|
10303
10363
|
this._configService = _configService;
|
|
10304
|
-
_defineProperty(this, "_cursorChange",
|
|
10364
|
+
_defineProperty(this, "_cursorChange", 0);
|
|
10305
10365
|
_defineProperty(this, "_editingUnit", "");
|
|
10306
10366
|
_defineProperty(this, "_cursorTimeout", void 0);
|
|
10307
10367
|
this.disposeWithMe(this._init());
|
|
@@ -10477,19 +10537,19 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
|
|
|
10477
10537
|
* the up, down, left, and right keys can no longer switch editing cells,
|
|
10478
10538
|
* but move the cursor within the editor instead.
|
|
10479
10539
|
*/
|
|
10480
|
-
if (keycode != null && (this._cursorChange ===
|
|
10540
|
+
if (keycode != null && (this._cursorChange === 2 || this._contextService.getContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR))) {
|
|
10481
10541
|
this._moveInEditor(keycode, isShift);
|
|
10482
10542
|
return;
|
|
10483
10543
|
}
|
|
10484
10544
|
this._commandService.syncExecuteCommand(SetCellEditVisibleOperation.id, params);
|
|
10485
10545
|
}
|
|
10486
|
-
if (command.id === SetCellEditVisibleWithF2Operation.id) this._cursorChange =
|
|
10546
|
+
if (command.id === SetCellEditVisibleWithF2Operation.id) this._cursorChange = 2;
|
|
10487
10547
|
}));
|
|
10488
10548
|
}
|
|
10489
10549
|
_handleEditorVisible(param) {
|
|
10490
10550
|
var _this$_sheetCellEdito4, _this$_renderManagerS5;
|
|
10491
10551
|
const { eventType, keycode } = param;
|
|
10492
|
-
this._cursorChange = eventType === _univerjs_engine_render.DeviceInputEventType.PointerDown || eventType === _univerjs_engine_render.DeviceInputEventType.Dblclick ?
|
|
10552
|
+
this._cursorChange = eventType === _univerjs_engine_render.DeviceInputEventType.PointerDown || eventType === _univerjs_engine_render.DeviceInputEventType.Dblclick ? 2 : 1;
|
|
10493
10553
|
const editCellState = this._editorBridgeService.getEditLocation();
|
|
10494
10554
|
if (editCellState == null) return;
|
|
10495
10555
|
this._commandService.syncExecuteCommand(ScrollToRangeOperation.id, { range: {
|
|
@@ -10573,7 +10633,7 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
|
|
|
10573
10633
|
const documentDataModel = this._univerInstanceService.getUnit(_univerjs_core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);
|
|
10574
10634
|
const snapshot = _univerjs_core.Tools.deepClone(documentDataModel === null || documentDataModel === void 0 ? void 0 : documentDataModel.getSnapshot());
|
|
10575
10635
|
const { keycode } = param;
|
|
10576
|
-
this._cursorChange =
|
|
10636
|
+
this._cursorChange = 0;
|
|
10577
10637
|
const currentUnitId = (_editCellState$unitId = editCellState === null || editCellState === void 0 ? void 0 : editCellState.unitId) !== null && _editCellState$unitId !== void 0 ? _editCellState$unitId : "";
|
|
10578
10638
|
this._exitInput(param);
|
|
10579
10639
|
if (editCellState == null) return;
|
|
@@ -10721,7 +10781,7 @@ let EditingRenderController = class EditingRenderController extends _univerjs_co
|
|
|
10721
10781
|
if (!(editorObject === null || editorObject === void 0 ? void 0 : editorObject.document)) return;
|
|
10722
10782
|
const { document: documentComponent } = editorObject;
|
|
10723
10783
|
d.add((0, _univerjs_core.toDisposable)(documentComponent.onPointerDown$.subscribeEvent(() => {
|
|
10724
|
-
if (this._cursorChange ===
|
|
10784
|
+
if (this._cursorChange === 1) this._cursorChange = 2;
|
|
10725
10785
|
})));
|
|
10726
10786
|
}
|
|
10727
10787
|
_moveInEditor(keycode, isShift) {
|
|
@@ -10904,7 +10964,7 @@ function cleanCellDataObject(cellData) {
|
|
|
10904
10964
|
function getDefaultOnPasteCellMutations(pasteFrom, pasteTo, data, payload, accessor) {
|
|
10905
10965
|
const redoMutationsInfo = [];
|
|
10906
10966
|
const undoMutationsInfo = [];
|
|
10907
|
-
if (payload.copyType ===
|
|
10967
|
+
if (payload.copyType === "CUT") {
|
|
10908
10968
|
const { undos, redos } = getMoveRangeMutations(pasteFrom, pasteTo, accessor);
|
|
10909
10969
|
redoMutationsInfo.push(...redos);
|
|
10910
10970
|
undoMutationsInfo.push(...undos);
|
|
@@ -11398,7 +11458,13 @@ let SheetClipboardController = class SheetClipboardController extends _univerjs_
|
|
|
11398
11458
|
var _cell$p, _cell$p2;
|
|
11399
11459
|
const cell = currentSheet.getCell(row, col);
|
|
11400
11460
|
if ((cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 ? void 0 : _cell$p.paragraphs) || (cell === null || cell === void 0 || (_cell$p2 = cell.p) === null || _cell$p2 === void 0 || (_cell$p2 = _cell$p2.body) === null || _cell$p2 === void 0 ? void 0 : _cell$p2.textRuns)) return (0, _univerjs_docs_ui.convertBodyToHtml)(cell.p);
|
|
11401
|
-
|
|
11461
|
+
const content = (0, _univerjs_core.extractPureTextFromCell)(cell);
|
|
11462
|
+
if (content.trim() === "") return content;
|
|
11463
|
+
/**
|
|
11464
|
+
* Used for generating the copied HTML, so we need to escape special code to avoid breaking the HTML structure.
|
|
11465
|
+
* For example, if the cell value contains <, > or &, it would break the HTML structure and cause the copied content to be incorrect.
|
|
11466
|
+
*/
|
|
11467
|
+
return escapeSpecialCode(content);
|
|
11402
11468
|
},
|
|
11403
11469
|
onCopyCellStyle: (row, col, rowSpan, colSpan) => {
|
|
11404
11470
|
const properties = {};
|
|
@@ -11932,8 +11998,9 @@ DragRenderController = __decorate([
|
|
|
11932
11998
|
|
|
11933
11999
|
//#endregion
|
|
11934
12000
|
//#region src/services/editor/formula-editor-manager.service.ts
|
|
11935
|
-
var FormulaEditorManagerService = class {
|
|
11936
|
-
constructor() {
|
|
12001
|
+
var FormulaEditorManagerService = class extends _univerjs_core.Disposable {
|
|
12002
|
+
constructor(..._args) {
|
|
12003
|
+
super(..._args);
|
|
11937
12004
|
_defineProperty(this, "_position", null);
|
|
11938
12005
|
_defineProperty(this, "_position$", new rxjs.BehaviorSubject(null));
|
|
11939
12006
|
_defineProperty(this, "position$", this._position$.asObservable());
|
|
@@ -11946,6 +12013,7 @@ var FormulaEditorManagerService = class {
|
|
|
11946
12013
|
_defineProperty(this, "foldBtnStatus$", this._foldBtnStatus$.asObservable());
|
|
11947
12014
|
}
|
|
11948
12015
|
dispose() {
|
|
12016
|
+
super.dispose();
|
|
11949
12017
|
this._position$.complete();
|
|
11950
12018
|
this._focus$.complete();
|
|
11951
12019
|
this._position = null;
|
|
@@ -12531,7 +12599,7 @@ let HoverManagerService = class HoverManagerService extends _univerjs_core.Dispo
|
|
|
12531
12599
|
const cellData = worksheet.getCell(overflowLocation.row, overflowLocation.col);
|
|
12532
12600
|
const { topOffset = 0, leftOffset = 0 } = (_cellData$fontRenderE = cellData === null || cellData === void 0 ? void 0 : cellData.fontRenderExtension) !== null && _cellData$fontRenderE !== void 0 ? _cellData$fontRenderE : {};
|
|
12533
12601
|
if (font === null || font === void 0 ? void 0 : font.documentSkeleton) {
|
|
12534
|
-
const { paddingLeft, paddingTop } = calcPadding(cell, font, (cellData === null || cellData === void 0 ? void 0 : cellData.
|
|
12602
|
+
const { paddingLeft, paddingTop } = calcPadding(cell, font, (cellData === null || cellData === void 0 ? void 0 : cellData.p) ? false : (0, _univerjs_core.isRealNum)(cellData === null || cellData === void 0 ? void 0 : cellData.v) && (!(cellData === null || cellData === void 0 ? void 0 : cellData.t) || cellData.t === _univerjs_core.CellValueType.NUMBER));
|
|
12535
12603
|
const rects = calculateDocSkeletonRects(font.documentSkeleton, paddingLeft, paddingTop);
|
|
12536
12604
|
const innerX = offsetX - position.startX - leftOffset;
|
|
12537
12605
|
const innerY = offsetY - position.startY - topOffset;
|
|
@@ -12763,8 +12831,8 @@ let HoverRenderController = class HoverRenderController extends _univerjs_core.D
|
|
|
12763
12831
|
disposeSet.add(mainComponent.onPointerLeave$.subscribeEvent(() => {
|
|
12764
12832
|
this._active = false;
|
|
12765
12833
|
}));
|
|
12766
|
-
const rowHeader = components.get(
|
|
12767
|
-
const colHeader = components.get(
|
|
12834
|
+
const rowHeader = components.get("__SpreadsheetRowHeader__");
|
|
12835
|
+
const colHeader = components.get("__SpreadsheetColumnHeader__");
|
|
12768
12836
|
if (rowHeader) {
|
|
12769
12837
|
disposeSet.add(rowHeader.onPointerMove$.subscribeEvent((evt) => {
|
|
12770
12838
|
this._hoverManagerService.triggerRowHeaderMouseMove(unitId, evt.offsetX, evt.offsetY);
|
|
@@ -12997,18 +13065,6 @@ SheetPermissionCheckUIController = __decorate([
|
|
|
12997
13065
|
|
|
12998
13066
|
//#endregion
|
|
12999
13067
|
//#region src/controllers/render-controllers/freeze.render-controller.ts
|
|
13000
|
-
var FREEZE_DIRECTION_TYPE = /* @__PURE__ */ function(FREEZE_DIRECTION_TYPE) {
|
|
13001
|
-
FREEZE_DIRECTION_TYPE[FREEZE_DIRECTION_TYPE["ROW"] = 0] = "ROW";
|
|
13002
|
-
FREEZE_DIRECTION_TYPE[FREEZE_DIRECTION_TYPE["COLUMN"] = 1] = "COLUMN";
|
|
13003
|
-
return FREEZE_DIRECTION_TYPE;
|
|
13004
|
-
}(FREEZE_DIRECTION_TYPE || {});
|
|
13005
|
-
var ResetScrollType = /* @__PURE__ */ function(ResetScrollType) {
|
|
13006
|
-
ResetScrollType[ResetScrollType["NONE"] = 0] = "NONE";
|
|
13007
|
-
ResetScrollType[ResetScrollType["X"] = 1] = "X";
|
|
13008
|
-
ResetScrollType[ResetScrollType["Y"] = 2] = "Y";
|
|
13009
|
-
ResetScrollType[ResetScrollType["ALL"] = 3] = "ALL";
|
|
13010
|
-
return ResetScrollType;
|
|
13011
|
-
}(ResetScrollType || {});
|
|
13012
13068
|
const FREEZE_ROW_MAIN_NAME = "__SpreadsheetFreezeRowMainName__";
|
|
13013
13069
|
const FREEZE_ROW_HEADER_NAME = "__SpreadsheetFreezeRowHeaderName__";
|
|
13014
13070
|
const FREEZE_COLUMN_MAIN_NAME = "__SpreadsheetFreezeColumnMainName__";
|
|
@@ -13060,7 +13116,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13060
13116
|
this._bindViewportScroll();
|
|
13061
13117
|
this._zoomRefresh();
|
|
13062
13118
|
}
|
|
13063
|
-
_createFreeze(freezeDirectionType =
|
|
13119
|
+
_createFreeze(freezeDirectionType = 0, freezeConfig) {
|
|
13064
13120
|
var _this$_sheetSkeletonM;
|
|
13065
13121
|
const config = freezeConfig !== null && freezeConfig !== void 0 ? freezeConfig : this._getFreeze();
|
|
13066
13122
|
if (config == null) return null;
|
|
@@ -13077,7 +13133,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13077
13133
|
this._changeToOffsetY = startY;
|
|
13078
13134
|
const scale = Math.max(scene.scaleX, scene.scaleY);
|
|
13079
13135
|
let freezeSize = FREEZE_SIZE_NORMAL / Math.max(1, scale);
|
|
13080
|
-
if (freezeDirectionType ===
|
|
13136
|
+
if (freezeDirectionType === 0) {
|
|
13081
13137
|
if (freezeRow === -1 || freezeRow === 0) freezeSize = freezeSize * 2;
|
|
13082
13138
|
const freezeOffset = freezeSize;
|
|
13083
13139
|
this._rowFreezeHeaderRect = new _univerjs_engine_render.Rect(FREEZE_ROW_HEADER_NAME, {
|
|
@@ -13124,10 +13180,10 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13124
13180
|
}
|
|
13125
13181
|
this._eventBinding(freezeDirectionType);
|
|
13126
13182
|
}
|
|
13127
|
-
_eventBinding(freezeDirectionType =
|
|
13183
|
+
_eventBinding(freezeDirectionType = 0) {
|
|
13128
13184
|
let freezeObjectHeaderRect = this._rowFreezeHeaderRect;
|
|
13129
13185
|
let freezeObjectMainRect = this._rowFreezeMainRect;
|
|
13130
|
-
if (freezeDirectionType ===
|
|
13186
|
+
if (freezeDirectionType === 1) {
|
|
13131
13187
|
freezeObjectHeaderRect = this._columnFreezeHeaderRect;
|
|
13132
13188
|
freezeObjectMainRect = this._columnFreezeMainRect;
|
|
13133
13189
|
}
|
|
@@ -13226,7 +13282,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13226
13282
|
if (!viewports) return null;
|
|
13227
13283
|
return viewports.find((i) => i.isHit(new _univerjs_engine_render.Vector2(evt.offsetX, evt.offsetY))) || null;
|
|
13228
13284
|
}
|
|
13229
|
-
_freezeDown(evt, freezeObjectHeaderRect, freezeObjectMainRect, freezeDirectionType =
|
|
13285
|
+
_freezeDown(evt, freezeObjectHeaderRect, freezeObjectMainRect, freezeDirectionType = 0) {
|
|
13230
13286
|
var _this$_sheetSkeletonM3;
|
|
13231
13287
|
const skeleton = (_this$_sheetSkeletonM3 = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM3 === void 0 ? void 0 : _this$_sheetSkeletonM3.skeleton;
|
|
13232
13288
|
if (skeleton == null) return;
|
|
@@ -13251,7 +13307,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13251
13307
|
if (!this.interceptor.fetchThroughInterceptors(FREEZE_PERMISSION_CHECK)(true, null)) return false;
|
|
13252
13308
|
scene.setCursor(_univerjs_engine_render.CURSOR_TYPE.GRABBING);
|
|
13253
13309
|
const FREEZE_SIZE = FREEZE_SIZE_NORMAL / Math.max(scene.scaleX, scene.scaleY);
|
|
13254
|
-
if (freezeDirectionType ===
|
|
13310
|
+
if (freezeDirectionType === 0) {
|
|
13255
13311
|
var _freezeObjectHeaderRe, _freezeObjectMainRect;
|
|
13256
13312
|
(_freezeObjectHeaderRe = freezeObjectHeaderRect.transformByState({ top: Math.min(startY, lastRowY) - FREEZE_SIZE / 2 })) === null || _freezeObjectHeaderRe === void 0 || _freezeObjectHeaderRe.setProps({ fill: this._freezeActiveColor });
|
|
13257
13313
|
(_freezeObjectMainRect = freezeObjectMainRect.transformByState({ top: Math.min(startY, lastRowY) - FREEZE_SIZE / 2 })) === null || _freezeObjectMainRect === void 0 || _freezeObjectMainRect.setProps({ fill: this._freezeNormalHeaderColor });
|
|
@@ -13273,7 +13329,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13273
13329
|
scene.enableObjectsEvent();
|
|
13274
13330
|
this._clearObserverEvent();
|
|
13275
13331
|
const { rowHeaderWidthAndMarginLeft, columnHeaderHeightAndMarginTop } = skeleton;
|
|
13276
|
-
if (freezeDirectionType ===
|
|
13332
|
+
if (freezeDirectionType === 0 && (this._changeToRow === 0 || this._changeToRow === -1) || freezeDirectionType === 1 && (this._changeToColumn === 0 || this._changeToColumn === -1)) {
|
|
13277
13333
|
freezeObjectHeaderRect.setProps({ fill: this._freezeNormalHeaderColor });
|
|
13278
13334
|
freezeObjectMainRect.setProps({ fill: this._freezeNormalMainColor });
|
|
13279
13335
|
} else {
|
|
@@ -13281,7 +13337,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13281
13337
|
freezeObjectMainRect === null || freezeObjectMainRect === void 0 || freezeObjectMainRect.setProps({ fill: this._freezeNormalHeaderColor });
|
|
13282
13338
|
}
|
|
13283
13339
|
const FREEZE_SIZE = FREEZE_SIZE_NORMAL / Math.max(scene.scaleX, scene.scaleY);
|
|
13284
|
-
if (freezeDirectionType ===
|
|
13340
|
+
if (freezeDirectionType === 0) {
|
|
13285
13341
|
if (this._changeToRow === 0 || this._changeToRow === -1) {
|
|
13286
13342
|
freezeObjectHeaderRect.transformByState({ top: columnHeaderHeightAndMarginTop - FREEZE_SIZE });
|
|
13287
13343
|
freezeObjectMainRect.transformByState({ top: columnHeaderHeightAndMarginTop - FREEZE_SIZE });
|
|
@@ -13302,12 +13358,12 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13302
13358
|
let xSplit = (oldFreeze === null || oldFreeze === void 0 ? void 0 : oldFreeze.xSplit) || 0;
|
|
13303
13359
|
let ySplit = (oldFreeze === null || oldFreeze === void 0 ? void 0 : oldFreeze.ySplit) || 0;
|
|
13304
13360
|
const viewPortKey = (_this$_activeViewport = this._activeViewport) === null || _this$_activeViewport === void 0 ? void 0 : _this$_activeViewport.viewportKey;
|
|
13305
|
-
if (freezeDirectionType ===
|
|
13361
|
+
if (freezeDirectionType === 0) {
|
|
13306
13362
|
if (!viewPortKey || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_ROW_TOP) ySplit = this._changeToRow - (oldFreeze.startRow - oldFreeze.ySplit);
|
|
13307
13363
|
else ySplit = this._changeToRow - sheetViewStartRow;
|
|
13308
13364
|
ySplit = ySplit < 0 ? 0 : ySplit;
|
|
13309
13365
|
}
|
|
13310
|
-
if (freezeDirectionType ===
|
|
13366
|
+
if (freezeDirectionType === 1) {
|
|
13311
13367
|
if (!viewPortKey || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT_TOP || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN_LEFT || viewPortKey === _univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_COLUMN_LEFT) xSplit = this._changeToColumn - (oldFreeze.startColumn - oldFreeze.xSplit);
|
|
13312
13368
|
else xSplit = this._changeToColumn - sheetViewStartColumn;
|
|
13313
13369
|
xSplit = xSplit < 0 ? 0 : xSplit;
|
|
@@ -13373,7 +13429,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13373
13429
|
});
|
|
13374
13430
|
}));
|
|
13375
13431
|
}
|
|
13376
|
-
_updateViewport(row = -1, column = -1, ySplit = 0, xSplit = 0, resetScroll =
|
|
13432
|
+
_updateViewport(row = -1, column = -1, ySplit = 0, xSplit = 0, resetScroll = 3) {
|
|
13377
13433
|
var _this$_sheetSkeletonM4;
|
|
13378
13434
|
const skeleton = (_this$_sheetSkeletonM4 = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM4 === void 0 ? void 0 : _this$_sheetSkeletonM4.skeleton;
|
|
13379
13435
|
if (skeleton == null) return;
|
|
@@ -13468,7 +13524,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13468
13524
|
startX: 0,
|
|
13469
13525
|
endX: 0
|
|
13470
13526
|
});
|
|
13471
|
-
if (resetScroll &
|
|
13527
|
+
if (resetScroll & 2) this._commandService.executeCommand(ScrollCommand.id, {
|
|
13472
13528
|
sheetViewStartRow: 0,
|
|
13473
13529
|
offsetY: 0
|
|
13474
13530
|
});
|
|
@@ -13512,7 +13568,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13512
13568
|
startY: 0,
|
|
13513
13569
|
endY: 0
|
|
13514
13570
|
});
|
|
13515
|
-
if (resetScroll &
|
|
13571
|
+
if (resetScroll & 1) this._commandService.executeCommand(ScrollCommand.id, {
|
|
13516
13572
|
sheetViewStartColumn: 0,
|
|
13517
13573
|
offsetX: 0
|
|
13518
13574
|
});
|
|
@@ -13559,11 +13615,11 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13559
13615
|
endX: endSheetView.startX
|
|
13560
13616
|
});
|
|
13561
13617
|
if (resetScroll) this._commandService.executeCommand(ScrollCommand.id, {
|
|
13562
|
-
...resetScroll &
|
|
13618
|
+
...resetScroll & 1 ? {
|
|
13563
13619
|
sheetViewStartColumn: 0,
|
|
13564
13620
|
offsetX: 0
|
|
13565
13621
|
} : null,
|
|
13566
|
-
...resetScroll &
|
|
13622
|
+
...resetScroll & 2 ? {
|
|
13567
13623
|
sheetViewStartRow: 0,
|
|
13568
13624
|
offsetY: 0
|
|
13569
13625
|
} : null
|
|
@@ -13649,7 +13705,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13649
13705
|
const worksheet = this._context.unit.getActiveSheet();
|
|
13650
13706
|
if (!worksheet) return;
|
|
13651
13707
|
const { startRow = -1, startColumn = -1, ySplit = 0, xSplit = 0 } = worksheet.getConfig().freeze;
|
|
13652
|
-
this._refreshFreeze(startRow, startColumn, ySplit, xSplit,
|
|
13708
|
+
this._refreshFreeze(startRow, startColumn, ySplit, xSplit, 0);
|
|
13653
13709
|
}
|
|
13654
13710
|
_themeChangeListener() {
|
|
13655
13711
|
this._themeChange(this._themeService.getCurrentTheme());
|
|
@@ -13679,7 +13735,7 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13679
13735
|
const worksheet = workbook.getActiveSheet();
|
|
13680
13736
|
if (!worksheet) return empty;
|
|
13681
13737
|
const subUnitId = worksheet.getSheetId();
|
|
13682
|
-
this._refreshFreeze(newFreeze.startRow, newFreeze.startColumn, newFreeze.ySplit, newFreeze.xSplit,
|
|
13738
|
+
this._refreshFreeze(newFreeze.startRow, newFreeze.startColumn, newFreeze.ySplit, newFreeze.xSplit, 0);
|
|
13683
13739
|
const redoMutationParams = {
|
|
13684
13740
|
...newFreeze,
|
|
13685
13741
|
unitId,
|
|
@@ -13815,11 +13871,11 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13815
13871
|
const freeze = worksheet.getConfig().freeze;
|
|
13816
13872
|
this._lastFreeze = freeze;
|
|
13817
13873
|
if (freeze == null) return;
|
|
13818
|
-
let resetScroll =
|
|
13874
|
+
let resetScroll = 0;
|
|
13819
13875
|
const { startRow = -1, startColumn = -1, ySplit = 0, xSplit = 0 } = freeze;
|
|
13820
|
-
if (!lastFreeze || lastFreeze.startRow !== startRow || lastFreeze.ySplit !== ySplit) resetScroll |=
|
|
13821
|
-
if (!lastFreeze || lastFreeze.startColumn !== startColumn || lastFreeze.xSplit !== xSplit) resetScroll |=
|
|
13822
|
-
if (params.resetScroll === false) resetScroll =
|
|
13876
|
+
if (!lastFreeze || lastFreeze.startRow !== startRow || lastFreeze.ySplit !== ySplit) resetScroll |= 2;
|
|
13877
|
+
if (!lastFreeze || lastFreeze.startColumn !== startColumn || lastFreeze.xSplit !== xSplit) resetScroll |= 1;
|
|
13878
|
+
if (params.resetScroll === false) resetScroll = 0;
|
|
13823
13879
|
this._refreshFreeze(startRow, startColumn, ySplit, xSplit, resetScroll);
|
|
13824
13880
|
}
|
|
13825
13881
|
break;
|
|
@@ -13953,8 +14009,8 @@ let HeaderFreezeRenderController = class HeaderFreezeRenderController extends _u
|
|
|
13953
14009
|
xSplit
|
|
13954
14010
|
};
|
|
13955
14011
|
this._clearFreeze();
|
|
13956
|
-
this._createFreeze(
|
|
13957
|
-
this._createFreeze(
|
|
14012
|
+
this._createFreeze(0, newFreeze);
|
|
14013
|
+
this._createFreeze(1, newFreeze);
|
|
13958
14014
|
this._updateViewport(startRow, startColumn, ySplit, xSplit, resetScroll);
|
|
13959
14015
|
(_this$_getSheetObject2 = this._getSheetObject()) === null || _this$_getSheetObject2 === void 0 || _this$_getSheetObject2.spreadsheet.makeForceDirty();
|
|
13960
14016
|
}
|
|
@@ -14095,8 +14151,8 @@ let HeaderMoveRenderController = class HeaderMoveRenderController extends _unive
|
|
|
14095
14151
|
this._initialRowOrColumn(_univerjs_core.RANGE_TYPE.COLUMN);
|
|
14096
14152
|
}
|
|
14097
14153
|
_initialRowOrColumn(initialType = _univerjs_core.RANGE_TYPE.ROW) {
|
|
14098
|
-
const spreadsheetColumnHeader = this._context.components.get(
|
|
14099
|
-
const spreadsheetRowHeader = this._context.components.get(
|
|
14154
|
+
const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
|
|
14155
|
+
const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
|
|
14100
14156
|
const scene = this._context.scene;
|
|
14101
14157
|
const eventBindingObject = initialType === _univerjs_core.RANGE_TYPE.ROW ? spreadsheetRowHeader : spreadsheetColumnHeader;
|
|
14102
14158
|
const pointerMoveHandler = (evt) => {
|
|
@@ -14315,11 +14371,6 @@ HeaderMoveRenderController = __decorate([
|
|
|
14315
14371
|
|
|
14316
14372
|
//#endregion
|
|
14317
14373
|
//#region src/views/header-resize-shape.ts
|
|
14318
|
-
let HEADER_RESIZE_SHAPE_TYPE = /* @__PURE__ */ function(HEADER_RESIZE_SHAPE_TYPE) {
|
|
14319
|
-
HEADER_RESIZE_SHAPE_TYPE[HEADER_RESIZE_SHAPE_TYPE["VERTICAL"] = 0] = "VERTICAL";
|
|
14320
|
-
HEADER_RESIZE_SHAPE_TYPE[HEADER_RESIZE_SHAPE_TYPE["HORIZONTAL"] = 1] = "HORIZONTAL";
|
|
14321
|
-
return HEADER_RESIZE_SHAPE_TYPE;
|
|
14322
|
-
}({});
|
|
14323
14374
|
const HEADER_MENU_SHAPE_RECT_BACKGROUND_FILL = "rgba(120, 120, 120, 0.01)";
|
|
14324
14375
|
const HEADER_MENU_SHAPE_RECT_FILL = "rgb(68, 71, 70)";
|
|
14325
14376
|
const HEADER_MENU_SHAPE_SIZE = 12;
|
|
@@ -14329,7 +14380,7 @@ var HeaderMenuResizeShape = class extends _univerjs_engine_render.Shape {
|
|
|
14329
14380
|
super(key, props);
|
|
14330
14381
|
_defineProperty(this, "_size", 12);
|
|
14331
14382
|
_defineProperty(this, "_color", HEADER_MENU_SHAPE_RECT_FILL);
|
|
14332
|
-
_defineProperty(this, "_mode",
|
|
14383
|
+
_defineProperty(this, "_mode", 0);
|
|
14333
14384
|
this.setShapeProps(props);
|
|
14334
14385
|
}
|
|
14335
14386
|
get size() {
|
|
@@ -14351,7 +14402,7 @@ var HeaderMenuResizeShape = class extends _univerjs_engine_render.Shape {
|
|
|
14351
14402
|
let { width, height } = this;
|
|
14352
14403
|
let left = 0;
|
|
14353
14404
|
let top = 0;
|
|
14354
|
-
if (this.mode ===
|
|
14405
|
+
if (this.mode === 0) {
|
|
14355
14406
|
width = HEADER_MENU_SHAPE_THUMB_SIZE_SCALE;
|
|
14356
14407
|
left = HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE - HEADER_MENU_SHAPE_THUMB_SIZE_SCALE;
|
|
14357
14408
|
} else {
|
|
@@ -14385,7 +14436,7 @@ var HeaderMenuResizeShape = class extends _univerjs_engine_render.Shape {
|
|
|
14385
14436
|
if (props === null || props === void 0 ? void 0 : props.size) this._size = props.size;
|
|
14386
14437
|
if (props === null || props === void 0 ? void 0 : props.mode) this._mode = props.mode;
|
|
14387
14438
|
if (props === null || props === void 0 ? void 0 : props.color) this._color = props.color;
|
|
14388
|
-
if (this.mode ===
|
|
14439
|
+
if (this.mode === 0) this.transformByState({
|
|
14389
14440
|
width: 12,
|
|
14390
14441
|
height: this.size
|
|
14391
14442
|
});
|
|
@@ -14404,11 +14455,6 @@ const HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN = "__SpreadsheetHeaderResizeControll
|
|
|
14404
14455
|
const HEADER_RESIZE_CONTROLLER_SHAPE_HELPER = "__SpreadsheetHeaderResizeControllerShapeHelper__";
|
|
14405
14456
|
const HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR = "rgb(199, 199, 199)";
|
|
14406
14457
|
const MINIMAL_OFFSET$1 = 2;
|
|
14407
|
-
var HEADER_RESIZE_TYPE = /* @__PURE__ */ function(HEADER_RESIZE_TYPE) {
|
|
14408
|
-
HEADER_RESIZE_TYPE[HEADER_RESIZE_TYPE["ROW"] = 0] = "ROW";
|
|
14409
|
-
HEADER_RESIZE_TYPE[HEADER_RESIZE_TYPE["COLUMN"] = 1] = "COLUMN";
|
|
14410
|
-
return HEADER_RESIZE_TYPE;
|
|
14411
|
-
}(HEADER_RESIZE_TYPE || {});
|
|
14412
14458
|
const HEADER_RESIZE_PERMISSION_CHECK = (0, _univerjs_core.createInterceptorKey)("headerResizePermissionCheck");
|
|
14413
14459
|
let HeaderResizeRenderController = class HeaderResizeRenderController extends _univerjs_core.Disposable {
|
|
14414
14460
|
constructor(_context, _sheetSkeletonManagerService, _selectionManagerService, _commandService) {
|
|
@@ -14443,25 +14489,25 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14443
14489
|
const scene = this._context.scene;
|
|
14444
14490
|
this._rowResizeRect = new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_ROW, {
|
|
14445
14491
|
visible: false,
|
|
14446
|
-
mode:
|
|
14492
|
+
mode: 1,
|
|
14447
14493
|
zIndex: 100
|
|
14448
14494
|
});
|
|
14449
14495
|
this._columnResizeRect = new HeaderMenuResizeShape(HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN, {
|
|
14450
14496
|
visible: false,
|
|
14451
|
-
mode:
|
|
14497
|
+
mode: 0,
|
|
14452
14498
|
zIndex: 100
|
|
14453
14499
|
});
|
|
14454
14500
|
scene.addObjects([this._rowResizeRect, this._columnResizeRect], 10);
|
|
14455
|
-
this._initialHover(
|
|
14456
|
-
this._initialHover(
|
|
14457
|
-
this._initialHoverResize(
|
|
14458
|
-
this._initialHoverResize(
|
|
14459
|
-
}
|
|
14460
|
-
_initialHover(initialType =
|
|
14461
|
-
const spreadsheetColumnHeader = this._context.components.get(
|
|
14462
|
-
const spreadsheetRowHeader = this._context.components.get(
|
|
14501
|
+
this._initialHover(0);
|
|
14502
|
+
this._initialHover(1);
|
|
14503
|
+
this._initialHoverResize(0);
|
|
14504
|
+
this._initialHoverResize(1);
|
|
14505
|
+
}
|
|
14506
|
+
_initialHover(initialType = 0) {
|
|
14507
|
+
const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
|
|
14508
|
+
const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
|
|
14463
14509
|
const scene = this._context.scene;
|
|
14464
|
-
const eventBindingObject = initialType ===
|
|
14510
|
+
const eventBindingObject = initialType === 0 ? spreadsheetRowHeader : spreadsheetColumnHeader;
|
|
14465
14511
|
const pointerLeaveEvent = (_evt, _state) => {
|
|
14466
14512
|
var _this$_rowResizeRect2, _this$_columnResizeRe2;
|
|
14467
14513
|
(_this$_rowResizeRect2 = this._rowResizeRect) === null || _this$_rowResizeRect2 === void 0 || _this$_rowResizeRect2.hide();
|
|
@@ -14473,12 +14519,15 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14473
14519
|
if (skeleton == null || this._rowResizeRect == null || this._columnResizeRect == null) return;
|
|
14474
14520
|
const { rowHeaderWidth, columnHeaderHeight } = skeleton;
|
|
14475
14521
|
const { startX, startY, endX, endY, row, column } = getCoordByOffset(evt.offsetX, evt.offsetY, scene, skeleton);
|
|
14522
|
+
const isLastRow = row === skeleton.worksheet.getRowCount() - 1;
|
|
14523
|
+
const isLastColumn = column === skeleton.worksheet.getColumnCount() - 1;
|
|
14476
14524
|
const transformCoord = getTransformCoord(evt.offsetX, evt.offsetY, scene, skeleton);
|
|
14477
14525
|
const { scaleX, scaleY } = scene.getAncestorScale();
|
|
14478
14526
|
const HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE = 12 / Math.max(scaleX, scaleY);
|
|
14479
|
-
if (initialType ===
|
|
14527
|
+
if (initialType === 0) {
|
|
14480
14528
|
let top = startY - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2;
|
|
14481
|
-
if (
|
|
14529
|
+
if (isLastRow && endY - startY <= HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2) this._currentRow = row;
|
|
14530
|
+
else if (transformCoord.y <= startY + HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.y >= startY) this._currentRow = row - 1;
|
|
14482
14531
|
else if (transformCoord.y >= endY - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.y <= endY) {
|
|
14483
14532
|
this._currentRow = row;
|
|
14484
14533
|
top = endY - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2;
|
|
@@ -14497,7 +14546,8 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14497
14546
|
this._rowResizeRect.show();
|
|
14498
14547
|
} else {
|
|
14499
14548
|
let left = startX - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2;
|
|
14500
|
-
if (
|
|
14549
|
+
if (isLastColumn && endX - startX <= HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2) this._currentColumn = column;
|
|
14550
|
+
else if (transformCoord.x <= startX + HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.x >= startX) this._currentColumn = column - 1;
|
|
14501
14551
|
else if (transformCoord.x >= endX - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2 && transformCoord.x <= endX) {
|
|
14502
14552
|
this._currentColumn = column;
|
|
14503
14553
|
left = endX - HEADER_MENU_SHAPE_WIDTH_HEIGHT_SCALE / 2;
|
|
@@ -14520,14 +14570,14 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14520
14570
|
this._headerPointerSubs.add(eventBindingObject === null || eventBindingObject === void 0 ? void 0 : eventBindingObject.onPointerMove$.subscribeEvent(pointerMoveEvent));
|
|
14521
14571
|
this._headerPointerSubs.add(eventBindingObject === null || eventBindingObject === void 0 ? void 0 : eventBindingObject.onPointerLeave$.subscribeEvent(pointerLeaveEvent));
|
|
14522
14572
|
}
|
|
14523
|
-
_initialHoverResize(initialType =
|
|
14573
|
+
_initialHoverResize(initialType = 0) {
|
|
14524
14574
|
const scene = this._context.scene;
|
|
14525
|
-
const eventBindingObject = initialType ===
|
|
14575
|
+
const eventBindingObject = initialType === 0 ? this._rowResizeRect : this._columnResizeRect;
|
|
14526
14576
|
if (eventBindingObject == null) return;
|
|
14527
14577
|
this.disposeWithMe(eventBindingObject.onPointerEnter$.subscribeEvent(() => {
|
|
14528
14578
|
if (eventBindingObject == null) return;
|
|
14529
14579
|
eventBindingObject.show();
|
|
14530
|
-
scene.setCursor(initialType ===
|
|
14580
|
+
scene.setCursor(initialType === 0 ? _univerjs_engine_render.CURSOR_TYPE.ROW_RESIZE : _univerjs_engine_render.CURSOR_TYPE.COLUMN_RESIZE);
|
|
14531
14581
|
}));
|
|
14532
14582
|
this.disposeWithMe(eventBindingObject.onPointerLeave$.subscribeEvent(() => {
|
|
14533
14583
|
if (eventBindingObject == null) return;
|
|
@@ -14559,7 +14609,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14559
14609
|
const shapeWidth = canvasMaxWidth > columnTotalWidth + rowHeaderWidth ? canvasMaxWidth : columnTotalWidth + rowHeaderWidth;
|
|
14560
14610
|
const shapeHeight = canvasMaxHeight > rowTotalHeight + columnHeaderHeight ? canvasMaxHeight : rowTotalHeight + columnHeaderHeight;
|
|
14561
14611
|
const HEADER_MENU_SHAPE_THUMB_SIZE_SCALE = 4 / Math.max(scaleX, scaleY);
|
|
14562
|
-
if (initialType ===
|
|
14612
|
+
if (initialType === 0) this._resizeHelperShape = new _univerjs_engine_render.Rect(HEADER_RESIZE_CONTROLLER_SHAPE_HELPER, {
|
|
14563
14613
|
width: shapeWidth,
|
|
14564
14614
|
height: HEADER_MENU_SHAPE_THUMB_SIZE_SCALE,
|
|
14565
14615
|
fill: HEADER_RESIZE_CONTROLLER_SHAPE_HELPER_COLOR,
|
|
@@ -14585,8 +14635,8 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14585
14635
|
const HEADER_MENU_SHAPE_THUMB_SIZE_SCALE = 4 / Math.max(scaleX, scaleY);
|
|
14586
14636
|
moveChangeX = moveOffsetX - this._startOffsetX - HEADER_MENU_SHAPE_THUMB_SIZE_SCALE / 2;
|
|
14587
14637
|
moveChangeY = moveOffsetY - this._startOffsetY - HEADER_MENU_SHAPE_THUMB_SIZE_SCALE / 2;
|
|
14588
|
-
if (Math.abs(initialType ===
|
|
14589
|
-
if (initialType ===
|
|
14638
|
+
if (Math.abs(initialType === 0 ? moveChangeY : moveChangeX) >= MINIMAL_OFFSET$1) isStartMove = true;
|
|
14639
|
+
if (initialType === 0) {
|
|
14590
14640
|
if (moveChangeY > canvasMaxHeight - scrollBarHorizontalHeight + scrollXY.y - cell.startY) moveChangeY = canvasMaxHeight - scrollBarHorizontalHeight + scrollXY.y - cell.startY;
|
|
14591
14641
|
if (moveChangeY < -(cell.endY - cell.startY) + 2) moveChangeY = -(cell.endY - cell.startY) + 2;
|
|
14592
14642
|
if (isStartMove) {
|
|
@@ -14620,7 +14670,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14620
14670
|
scene.resetCursor();
|
|
14621
14671
|
(_this$_rowResizeRect6 = this._rowResizeRect) === null || _this$_rowResizeRect6 === void 0 || _this$_rowResizeRect6.hide();
|
|
14622
14672
|
(_this$_columnResizeRe6 = this._columnResizeRect) === null || _this$_columnResizeRe6 === void 0 || _this$_columnResizeRe6.hide();
|
|
14623
|
-
if (initialType ===
|
|
14673
|
+
if (initialType === 0) this._commandService.executeCommand(_univerjs_sheets.DeltaRowHeightCommand.id, {
|
|
14624
14674
|
deltaY: moveChangeY,
|
|
14625
14675
|
anchorRow: this._currentRow
|
|
14626
14676
|
});
|
|
@@ -14641,7 +14691,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14641
14691
|
const endRow = sk.worksheet.getRowCount() - 1 || 0;
|
|
14642
14692
|
const endColumn = sk.worksheet.getColumnCount() - 1 || 0;
|
|
14643
14693
|
switch (initialType) {
|
|
14644
|
-
case
|
|
14694
|
+
case 1: {
|
|
14645
14695
|
var _this$_columnResizeRe7;
|
|
14646
14696
|
const curSelections = this._selectionManagerService.getCurrentSelections();
|
|
14647
14697
|
const ranges = [];
|
|
@@ -14664,7 +14714,7 @@ let HeaderResizeRenderController = class HeaderResizeRenderController extends _u
|
|
|
14664
14714
|
(_this$_columnResizeRe7 = this._columnResizeRect) === null || _this$_columnResizeRe7 === void 0 || _this$_columnResizeRe7.hide();
|
|
14665
14715
|
break;
|
|
14666
14716
|
}
|
|
14667
|
-
case
|
|
14717
|
+
case 0:
|
|
14668
14718
|
var _this$_rowResizeRect7;
|
|
14669
14719
|
this._commandService.executeCommand(_univerjs_sheets.SetWorksheetRowIsAutoHeightCommand.id, { ranges: [{
|
|
14670
14720
|
startRow: this._currentRow,
|
|
@@ -14817,11 +14867,11 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
|
|
|
14817
14867
|
_addComponent(workbook) {
|
|
14818
14868
|
const { scene, components } = this._context;
|
|
14819
14869
|
const worksheet = workbook.getActiveSheet();
|
|
14820
|
-
const spreadsheet = new _univerjs_engine_render.Spreadsheet(
|
|
14870
|
+
const spreadsheet = new _univerjs_engine_render.Spreadsheet("__SpreadsheetRender__");
|
|
14821
14871
|
this._addViewport(worksheet);
|
|
14822
|
-
const spreadsheetRowHeader = new _univerjs_engine_render.SpreadsheetRowHeader(
|
|
14823
|
-
const spreadsheetColumnHeader = new _univerjs_engine_render.SpreadsheetColumnHeader(
|
|
14824
|
-
const SpreadsheetLeftTopPlaceholder = new _univerjs_engine_render.Rect(
|
|
14872
|
+
const spreadsheetRowHeader = new _univerjs_engine_render.SpreadsheetRowHeader("__SpreadsheetRowHeader__");
|
|
14873
|
+
const spreadsheetColumnHeader = new _univerjs_engine_render.SpreadsheetColumnHeader("__SpreadsheetColumnHeader__");
|
|
14874
|
+
const SpreadsheetLeftTopPlaceholder = new _univerjs_engine_render.Rect("__SpreadsheetLeftTopPlaceholder__", {
|
|
14825
14875
|
zIndex: 2,
|
|
14826
14876
|
left: -1,
|
|
14827
14877
|
top: -1,
|
|
@@ -14830,10 +14880,10 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
|
|
|
14830
14880
|
strokeWidth: 1
|
|
14831
14881
|
});
|
|
14832
14882
|
this._context.mainComponent = spreadsheet;
|
|
14833
|
-
components.set(
|
|
14834
|
-
components.set(
|
|
14835
|
-
components.set(
|
|
14836
|
-
components.set(
|
|
14883
|
+
components.set("__SpreadsheetRender__", spreadsheet);
|
|
14884
|
+
components.set("__SpreadsheetRowHeader__", spreadsheetRowHeader);
|
|
14885
|
+
components.set("__SpreadsheetColumnHeader__", spreadsheetColumnHeader);
|
|
14886
|
+
components.set("__SpreadsheetLeftTopPlaceholder__", SpreadsheetLeftTopPlaceholder);
|
|
14837
14887
|
scene.addObjects([spreadsheet], 0);
|
|
14838
14888
|
scene.addObjects([
|
|
14839
14889
|
spreadsheetRowHeader,
|
|
@@ -14947,9 +14997,9 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
|
|
|
14947
14997
|
if (workbook == null || worksheet == null) return;
|
|
14948
14998
|
const { mainComponent, components } = this._context;
|
|
14949
14999
|
const spreadsheet = mainComponent;
|
|
14950
|
-
const spreadsheetRowHeader = components.get(
|
|
14951
|
-
const spreadsheetColumnHeader = components.get(
|
|
14952
|
-
const spreadsheetLeftTopPlaceholder = components.get(
|
|
15000
|
+
const spreadsheetRowHeader = components.get("__SpreadsheetRowHeader__");
|
|
15001
|
+
const spreadsheetColumnHeader = components.get("__SpreadsheetColumnHeader__");
|
|
15002
|
+
const spreadsheetLeftTopPlaceholder = components.get("__SpreadsheetLeftTopPlaceholder__");
|
|
14953
15003
|
const { rowHeaderWidth, columnHeaderHeight } = spreadsheetSkeleton;
|
|
14954
15004
|
spreadsheet === null || spreadsheet === void 0 || spreadsheet.updateSkeleton(spreadsheetSkeleton);
|
|
14955
15005
|
spreadsheetRowHeader === null || spreadsheetRowHeader === void 0 || spreadsheetRowHeader.updateSkeleton(spreadsheetSkeleton);
|
|
@@ -16037,15 +16087,20 @@ function getCurrentRangeDisable$(accessor, permissionTypes = {}, supportCellEdit
|
|
|
16037
16087
|
if (!workbook || (visible === null || visible === void 0 ? void 0 : visible.visible) && visible.unitId === workbook.getUnitId() && !supportCellEdit || formulaEditorFocus && !supportCellEdit) return (0, rxjs.of)(true);
|
|
16038
16088
|
return workbook.activeSheet$.pipe((0, rxjs_operators.switchMap)((worksheet) => {
|
|
16039
16089
|
if (!worksheet) return (0, rxjs.of)(true);
|
|
16040
|
-
const
|
|
16090
|
+
const unitId = workbook.getUnitId();
|
|
16091
|
+
const subUnitId = worksheet.getSheetId();
|
|
16041
16092
|
const rangeProtectionRuleModel = accessor.get(_univerjs_sheets.RangeProtectionRuleModel);
|
|
16042
16093
|
const worksheetRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
|
|
16094
|
+
const selectionManagerService = accessor.get(_univerjs_sheets.SheetsSelectionsService);
|
|
16095
|
+
const selectionChanged$ = selectionManagerService.selectionChanged$.pipe((0, rxjs_operators.startWith)(selectionManagerService.getWorkbookSelections(unitId).getSelectionsOfWorksheet(subUnitId)));
|
|
16043
16096
|
const focusedOnDrawing$ = accessor.get(_univerjs_core.IContextService).subscribeContextValue$(_univerjs_core.FOCUSING_COMMON_DRAWINGS).pipe((0, rxjs_operators.startWith)(false));
|
|
16044
|
-
|
|
16097
|
+
const permissionService = accessor.get(_univerjs_core.IPermissionService);
|
|
16098
|
+
return (0, rxjs.combineLatest)([
|
|
16099
|
+
selectionChanged$,
|
|
16100
|
+
focusedOnDrawing$,
|
|
16101
|
+
permissionService.permissionPointUpdate$.pipe((0, rxjs_operators.debounceTime)(100), (0, rxjs_operators.startWith)(null))
|
|
16102
|
+
]).pipe((0, rxjs_operators.switchMap)(([selection, focusOnDrawings]) => {
|
|
16045
16103
|
if (focusOnDrawings && !focusingShapeTextEditor) return (0, rxjs.of)(true);
|
|
16046
|
-
const unitId = workbook.getUnitId();
|
|
16047
|
-
const subUnitId = worksheet.getSheetId();
|
|
16048
|
-
const permissionService = accessor.get(_univerjs_core.IPermissionService);
|
|
16049
16104
|
const { workbookTypes = [_univerjs_sheets.WorkbookEditablePermission], worksheetTypes, rangeTypes } = permissionTypes;
|
|
16050
16105
|
const permissionIds = [];
|
|
16051
16106
|
workbookTypes === null || workbookTypes === void 0 || workbookTypes.forEach((F) => {
|
|
@@ -16185,23 +16240,24 @@ function getCellMenuHidden$(accessor, type) {
|
|
|
16185
16240
|
}
|
|
16186
16241
|
function getWorkbookPermissionDisable$(accessor, workbookPermissionTypes) {
|
|
16187
16242
|
const workbook$ = accessor.get(_univerjs_core.IUniverInstanceService).getCurrentTypeOfUnit$(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
16188
|
-
const worksheetRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
|
|
16189
|
-
const selectionRuleModel = accessor.get(_univerjs_sheets.RangeProtectionRuleModel);
|
|
16190
16243
|
const permissionService = accessor.get(_univerjs_core.IPermissionService);
|
|
16191
16244
|
return (0, rxjs.combineLatest)([accessor.get(_univerjs_core.UserManagerService).currentUser$, workbook$]).pipe((0, rxjs_operators.switchMap)(([_user, workbook]) => {
|
|
16192
16245
|
if (!workbook) return (0, rxjs.of)(true);
|
|
16193
|
-
return workbook.activeSheet$.pipe((0, rxjs_operators.switchMap)((
|
|
16194
|
-
|
|
16246
|
+
return workbook.activeSheet$.pipe((0, rxjs_operators.switchMap)((worksheet) => {
|
|
16247
|
+
var _permissionService$co;
|
|
16248
|
+
if (!worksheet) return (0, rxjs.of)(true);
|
|
16195
16249
|
const unitId = workbook.getUnitId();
|
|
16250
|
+
const subUnitId = worksheet.getSheetId();
|
|
16251
|
+
const selectionProtectionRuleModel = accessor.get(_univerjs_sheets.RangeProtectionRuleModel);
|
|
16252
|
+
const worksheetProtectionRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
|
|
16196
16253
|
const workbookPermissionIds = [];
|
|
16197
16254
|
workbookPermissionTypes.forEach((F) => workbookPermissionIds.push(new F(unitId).id));
|
|
16198
|
-
return permissionService.composePermission$(workbookPermissionIds).pipe((0, rxjs_operators.map)((list) => list.every((item) => item.value === true))).pipe((0, rxjs_operators.map)((
|
|
16199
|
-
|
|
16200
|
-
|
|
16201
|
-
const worksheetRule =
|
|
16202
|
-
|
|
16203
|
-
|
|
16204
|
-
return false;
|
|
16255
|
+
return (0, rxjs.combineLatest)([(_permissionService$co = permissionService.composePermission$(workbookPermissionIds).pipe((0, rxjs_operators.map)((list) => list.every((item) => item.value === true)))) !== null && _permissionService$co !== void 0 ? _permissionService$co : (0, rxjs.of)(false), (0, rxjs.merge)(selectionProtectionRuleModel.ruleChange$, worksheetProtectionRuleModel.ruleChange$).pipe((0, rxjs_operators.startWith)(null))]).pipe((0, rxjs_operators.map)(([permission, _]) => {
|
|
16256
|
+
var _selectionProtectionR;
|
|
16257
|
+
if (!permission) return true;
|
|
16258
|
+
const worksheetRule = worksheetProtectionRuleModel.getRule(unitId, subUnitId);
|
|
16259
|
+
if (worksheetRule === null || worksheetRule === void 0 ? void 0 : worksheetRule.permissionId) return true;
|
|
16260
|
+
return ((_selectionProtectionR = selectionProtectionRuleModel.getSubunitRuleList(unitId, subUnitId)) === null || _selectionProtectionR === void 0 ? void 0 : _selectionProtectionR.filter((item) => item === null || item === void 0 ? void 0 : item.permissionId)).length > 0;
|
|
16205
16261
|
}));
|
|
16206
16262
|
}));
|
|
16207
16263
|
}));
|
|
@@ -16977,7 +17033,7 @@ function FormatPainterMenuItemFactory(accessor) {
|
|
|
16977
17033
|
activated$: new rxjs.Observable((subscriber) => {
|
|
16978
17034
|
let active = false;
|
|
16979
17035
|
const status$ = formatPainterService.status$.subscribe((s) => {
|
|
16980
|
-
active = s !==
|
|
17036
|
+
active = s !== 0;
|
|
16981
17037
|
subscriber.next(active);
|
|
16982
17038
|
});
|
|
16983
17039
|
subscriber.next(active);
|
|
@@ -18223,15 +18279,14 @@ function getRemovePermissionFromSheetBarDisable$(accessor) {
|
|
|
18223
18279
|
return (0, rxjs.combineLatest)([univerInstanceService.getCurrentTypeOfUnit$(_univerjs_core.UniverInstanceType.UNIVER_SHEET), accessor.get(_univerjs_core.UserManagerService).currentUser$]).pipe((0, rxjs.switchMap)(([workbook, _]) => {
|
|
18224
18280
|
if (!workbook) return (0, rxjs.of)(true);
|
|
18225
18281
|
return workbook.activeSheet$.pipe((0, rxjs.switchMap)((worksheet) => {
|
|
18282
|
+
var _permissionService$ge2, _permissionService$ge3;
|
|
18226
18283
|
if (!worksheet) return (0, rxjs.of)(true);
|
|
18227
18284
|
const unitId = workbook.getUnitId();
|
|
18228
18285
|
const subUnitId = worksheet.getSheetId();
|
|
18229
18286
|
const worksheetProtectionRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
|
|
18230
|
-
return worksheetProtectionRuleModel.ruleChange$.pipe((0, rxjs.startWith)(null)).pipe((0, rxjs.map)(() => {
|
|
18231
|
-
|
|
18232
|
-
|
|
18233
|
-
return ((_permissionService$ge2 = permissionService.getPermissionPoint(new _univerjs_sheets.WorksheetDeleteProtectionPermission(unitId, subUnitId).id)) === null || _permissionService$ge2 === void 0 ? void 0 : _permissionService$ge2.value) === false;
|
|
18234
|
-
}
|
|
18287
|
+
return (0, rxjs.combineLatest)([(_permissionService$ge2 = (_permissionService$ge3 = permissionService.getPermissionPoint$(new _univerjs_sheets.WorksheetDeleteProtectionPermission(unitId, subUnitId).id)) === null || _permissionService$ge3 === void 0 ? void 0 : _permissionService$ge3.pipe((0, rxjs.map)((e) => !!e.value))) !== null && _permissionService$ge2 !== void 0 ? _permissionService$ge2 : (0, rxjs.of)(false), worksheetProtectionRuleModel.ruleChange$.pipe((0, rxjs.startWith)(null))]).pipe((0, rxjs.map)(([permission, _]) => {
|
|
18288
|
+
const worksheetRule = worksheetProtectionRuleModel.getRule(unitId, subUnitId);
|
|
18289
|
+
if (worksheetRule === null || worksheetRule === void 0 ? void 0 : worksheetRule.permissionId) return !permission;
|
|
18235
18290
|
return true;
|
|
18236
18291
|
}));
|
|
18237
18292
|
}));
|
|
@@ -18246,19 +18301,15 @@ function getSetPermissionFromSheetBarDisable$(accessor) {
|
|
|
18246
18301
|
var _permissionService$co4;
|
|
18247
18302
|
if (!worksheet) return (0, rxjs.of)(true);
|
|
18248
18303
|
const unitId = workbook.getUnitId();
|
|
18304
|
+
const subUnitId = worksheet.getSheetId();
|
|
18249
18305
|
const selectionProtectionRuleModel = accessor.get(_univerjs_sheets.RangeProtectionRuleModel);
|
|
18250
18306
|
const worksheetProtectionRuleModel = accessor.get(_univerjs_sheets.WorksheetProtectionRuleModel);
|
|
18251
|
-
return (0, rxjs.combineLatest)([
|
|
18252
|
-
|
|
18253
|
-
worksheetProtectionRuleModel.ruleChange$.pipe((0, rxjs.startWith)(null)),
|
|
18254
|
-
selectionProtectionRuleModel.ruleChange$.pipe((0, rxjs.startWith)(null))
|
|
18255
|
-
]).pipe((0, rxjs.map)(([permission, _, __]) => {
|
|
18307
|
+
return (0, rxjs.combineLatest)([(_permissionService$co4 = permissionService.composePermission$([new _univerjs_sheets.WorkbookCreateProtectPermission(unitId).id, new _univerjs_sheets.WorkbookManageCollaboratorPermission(unitId).id]).pipe((0, rxjs.map)((permissions) => permissions.every((permission) => permission.value)))) !== null && _permissionService$co4 !== void 0 ? _permissionService$co4 : (0, rxjs.of)(false), (0, rxjs.merge)(selectionProtectionRuleModel.ruleChange$, worksheetProtectionRuleModel.ruleChange$).pipe((0, rxjs.startWith)(null))]).pipe((0, rxjs.map)(([permission, _]) => {
|
|
18308
|
+
var _selectionProtectionR2;
|
|
18256
18309
|
if (!permission) return true;
|
|
18257
|
-
const subUnitId = worksheet.getSheetId();
|
|
18258
18310
|
const worksheetRule = worksheetProtectionRuleModel.getRule(unitId, subUnitId);
|
|
18259
|
-
|
|
18260
|
-
|
|
18261
|
-
return true;
|
|
18311
|
+
if (worksheetRule === null || worksheetRule === void 0 ? void 0 : worksheetRule.permissionId) return false;
|
|
18312
|
+
return ((_selectionProtectionR2 = selectionProtectionRuleModel.getSubunitRuleList(unitId, subUnitId)) === null || _selectionProtectionR2 === void 0 ? void 0 : _selectionProtectionR2.filter((item) => item === null || item === void 0 ? void 0 : item.permissionId)).length === 0;
|
|
18262
18313
|
}));
|
|
18263
18314
|
}));
|
|
18264
18315
|
}));
|
|
@@ -18283,8 +18334,8 @@ function getRemovePermissionDisable$(accessor) {
|
|
|
18283
18334
|
if ((selectionRange === null || selectionRange === void 0 ? void 0 : selectionRange.rangeType) === _univerjs_core.RANGE_TYPE.ALL || (selectionRange === null || selectionRange === void 0 ? void 0 : selectionRange.rangeType) === _univerjs_core.RANGE_TYPE.COLUMN || (selectionRange === null || selectionRange === void 0 ? void 0 : selectionRange.rangeType) === _univerjs_core.RANGE_TYPE.ROW) return true;
|
|
18284
18335
|
const worksheetRule = worksheetProtectionRuleModel.getRule(unitId, subUnitId);
|
|
18285
18336
|
if (worksheetRule === null || worksheetRule === void 0 ? void 0 : worksheetRule.permissionId) {
|
|
18286
|
-
var _permissionService$
|
|
18287
|
-
return ((_permissionService$
|
|
18337
|
+
var _permissionService$ge4;
|
|
18338
|
+
return ((_permissionService$ge4 = permissionService.getPermissionPoint(new _univerjs_sheets.WorksheetDeleteProtectionPermission(unitId, subUnitId).id)) === null || _permissionService$ge4 === void 0 ? void 0 : _permissionService$ge4.value) === false;
|
|
18288
18339
|
}
|
|
18289
18340
|
if (selectionProtectionRuleModel.getSubunitRuleList(unitId, subUnitId).filter((rule) => {
|
|
18290
18341
|
return rule.ranges.some((range) => {
|
|
@@ -18319,10 +18370,10 @@ function getViewPermissionDisable$(accessor) {
|
|
|
18319
18370
|
]).pipe((0, rxjs.switchMap)(([workbook, _, visible, formulaEditorFocus]) => {
|
|
18320
18371
|
if (!workbook || (visible === null || visible === void 0 ? void 0 : visible.visible) && visible.unitId === workbook.getUnitId() || formulaEditorFocus) return (0, rxjs.of)(true);
|
|
18321
18372
|
return workbook.activeSheet$.pipe((0, rxjs.switchMap)((worksheet) => {
|
|
18322
|
-
var _permissionService$
|
|
18373
|
+
var _permissionService$ge5, _permissionService$ge6;
|
|
18323
18374
|
if (!worksheet) return (0, rxjs.of)(true);
|
|
18324
18375
|
const unitId = workbook.getUnitId();
|
|
18325
|
-
return ((_permissionService$
|
|
18376
|
+
return ((_permissionService$ge5 = (_permissionService$ge6 = permissionService.getPermissionPoint$(new _univerjs_sheets.WorkbookEditablePermission(unitId).id)) === null || _permissionService$ge6 === void 0 ? void 0 : _permissionService$ge6.pipe((0, rxjs.map)((e) => !!e.value))) !== null && _permissionService$ge5 !== void 0 ? _permissionService$ge5 : (0, rxjs.of)(false)).pipe((0, rxjs.map)((permission) => !permission));
|
|
18326
18377
|
}));
|
|
18327
18378
|
}));
|
|
18328
18379
|
}
|
|
@@ -20079,6 +20130,8 @@ const DefinedNameContainer = () => {
|
|
|
20079
20130
|
const localeService = (0, _univerjs_ui.useDependency)(_univerjs_core.LocaleService);
|
|
20080
20131
|
const definedNamesService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.IDefinedNamesService);
|
|
20081
20132
|
const selectionManagerService = (0, _univerjs_ui.useDependency)(_univerjs_sheets.SheetsSelectionsService);
|
|
20133
|
+
const permissionService = (0, _univerjs_ui.useDependency)(_univerjs_core.IPermissionService);
|
|
20134
|
+
const sheetPermissionCheckController = (0, _univerjs_ui.useDependency)(_univerjs_sheets.SheetPermissionCheckController);
|
|
20082
20135
|
const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
20083
20136
|
const unitId = workbook === null || workbook === void 0 ? void 0 : workbook.getUnitId();
|
|
20084
20137
|
const getDefinedNameMap = () => {
|
|
@@ -20091,6 +20144,7 @@ const DefinedNameContainer = () => {
|
|
|
20091
20144
|
const [definedNames, setDefinedNames] = (0, react.useState)([]);
|
|
20092
20145
|
const [editorKey, setEditorKey] = (0, react.useState)(null);
|
|
20093
20146
|
const [deleteConformKey, setDeleteConformKey] = (0, react.useState)();
|
|
20147
|
+
const [permissionCheckVersion, setPermissionCheckVersion] = (0, react.useState)(0);
|
|
20094
20148
|
const listContainerRef = (0, react.useRef)(void 0);
|
|
20095
20149
|
const [virtualDefinedNames, virtualActions] = (0, _univerjs_ui.useVirtualList)(definedNames, {
|
|
20096
20150
|
containerTarget: listContainerRef,
|
|
@@ -20109,7 +20163,21 @@ const DefinedNameContainer = () => {
|
|
|
20109
20163
|
definedNamesSubscription.unsubscribe();
|
|
20110
20164
|
};
|
|
20111
20165
|
}, []);
|
|
20166
|
+
(0, react.useEffect)(() => {
|
|
20167
|
+
const permissionSubscription = permissionService.permissionPointUpdate$.subscribe(() => {
|
|
20168
|
+
setPermissionCheckVersion((v) => v + 1);
|
|
20169
|
+
});
|
|
20170
|
+
return () => {
|
|
20171
|
+
permissionSubscription.unsubscribe();
|
|
20172
|
+
};
|
|
20173
|
+
}, [permissionService]);
|
|
20112
20174
|
if (!workbook || !unitId) return;
|
|
20175
|
+
const checkWorkbookPermission = sheetPermissionCheckController.permissionCheckWithoutRange({ workbookTypes: [_univerjs_sheets.WorkbookEditablePermission] }, unitId);
|
|
20176
|
+
const checkDefinedNamePermission = (definedName) => {
|
|
20177
|
+
const { localSheetId } = definedName;
|
|
20178
|
+
if (!localSheetId || localSheetId === _univerjs_sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME) return checkWorkbookPermission;
|
|
20179
|
+
return sheetPermissionCheckController.permissionCheckWithoutRange({ worksheetTypes: [_univerjs_sheets.WorksheetEditPermission] }, unitId, localSheetId);
|
|
20180
|
+
};
|
|
20113
20181
|
const insertConfirm = (param) => {
|
|
20114
20182
|
const { name, formulaOrRefString, comment, localSheetId, hidden } = param;
|
|
20115
20183
|
let id = param.id;
|
|
@@ -20209,6 +20277,7 @@ const DefinedNameContainer = () => {
|
|
|
20209
20277
|
className: "univer-mb-4",
|
|
20210
20278
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_univerjs_design.Button, {
|
|
20211
20279
|
className: (0, _univerjs_design.clsx)("univer-w-full", { "univer-hidden": editState }),
|
|
20280
|
+
disabled: !checkWorkbookPermission,
|
|
20212
20281
|
onClick: openInsertCloseKeyEditor,
|
|
20213
20282
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.IncreaseIcon, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
20214
20283
|
className: "univer-ml-1",
|
|
@@ -20250,7 +20319,7 @@ const DefinedNameContainer = () => {
|
|
|
20250
20319
|
title: definedName.formulaOrRefString,
|
|
20251
20320
|
children: definedName.formulaOrRefString
|
|
20252
20321
|
})]
|
|
20253
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
20322
|
+
}), checkDefinedNamePermission(definedName) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
20254
20323
|
className: "univer-absolute univer-right-5 univer-top-1/2 univer-hidden -univer-translate-y-1/2 univer-cursor-pointer univer-items-center univer-justify-end univer-gap-7 univer-text-xs univer-text-primary-600 group-hover:univer-flex dark:hover:!univer-bg-gray-600",
|
|
20255
20324
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_design.Tooltip, {
|
|
20256
20325
|
title: localeService.t("definedName.updateButton"),
|
|
@@ -20626,24 +20695,16 @@ const EditorContainer = () => {
|
|
|
20626
20695
|
|
|
20627
20696
|
//#endregion
|
|
20628
20697
|
//#region src/services/utils/defined-name-utils.ts
|
|
20629
|
-
let DefinedNameBoxActionType = /* @__PURE__ */ function(DefinedNameBoxActionType) {
|
|
20630
|
-
DefinedNameBoxActionType["Noop"] = "noop";
|
|
20631
|
-
DefinedNameBoxActionType["FocusDefinedName"] = "focusDefinedName";
|
|
20632
|
-
DefinedNameBoxActionType["FocusSelection"] = "focusSelection";
|
|
20633
|
-
DefinedNameBoxActionType["CreateDefinedName"] = "createDefinedName";
|
|
20634
|
-
DefinedNameBoxActionType["Reset"] = "reset";
|
|
20635
|
-
return DefinedNameBoxActionType;
|
|
20636
|
-
}({});
|
|
20637
20698
|
function resolveDefinedNameBoxAction(params) {
|
|
20638
20699
|
const { inputValue, rangeString, unitId, formulaOrRefString, univerInstanceService, definedNamesService, superTableService, functionService } = params;
|
|
20639
|
-
if (inputValue === rangeString) return { type:
|
|
20700
|
+
if (inputValue === rangeString) return { type: "noop" };
|
|
20640
20701
|
const definedName = definedNamesService.getValueByName(unitId, inputValue);
|
|
20641
20702
|
if (definedName) return {
|
|
20642
|
-
type:
|
|
20703
|
+
type: "focusDefinedName",
|
|
20643
20704
|
definedName
|
|
20644
20705
|
};
|
|
20645
20706
|
if ((0, _univerjs_engine_formula.isReferenceStringWithEffectiveColumn)(inputValue)) return {
|
|
20646
|
-
type:
|
|
20707
|
+
type: "focusSelection",
|
|
20647
20708
|
refString: inputValue
|
|
20648
20709
|
};
|
|
20649
20710
|
if ((0, _univerjs_sheets.validateDefinedName)(inputValue, {
|
|
@@ -20654,10 +20715,10 @@ function resolveDefinedNameBoxAction(params) {
|
|
|
20654
20715
|
superTableService,
|
|
20655
20716
|
functionService
|
|
20656
20717
|
}) === true) return {
|
|
20657
|
-
type:
|
|
20718
|
+
type: "createDefinedName",
|
|
20658
20719
|
name: inputValue
|
|
20659
20720
|
};
|
|
20660
|
-
return { type:
|
|
20721
|
+
return { type: "reset" };
|
|
20661
20722
|
}
|
|
20662
20723
|
function getAbsoluteRefStringFromSelection(workbook, selections, lexerTreeBuilder) {
|
|
20663
20724
|
var _workbook$getActiveSh;
|
|
@@ -20784,6 +20845,7 @@ function DefinedName({ disable }) {
|
|
|
20784
20845
|
const superTableService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.ISuperTableService);
|
|
20785
20846
|
const functionService = (0, _univerjs_ui.useDependency)(_univerjs_engine_formula.IFunctionService);
|
|
20786
20847
|
const layoutService = (0, _univerjs_ui.useDependency)(_univerjs_ui.ILayoutService);
|
|
20848
|
+
const sheetPermissionCheckController = (0, _univerjs_ui.useDependency)(_univerjs_sheets.SheetPermissionCheckController);
|
|
20787
20849
|
const workbook = univerInstanceService.getCurrentUnitOfType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
20788
20850
|
const unitId = workbook === null || workbook === void 0 ? void 0 : workbook.getUnitId();
|
|
20789
20851
|
const themeService = (0, _univerjs_ui.useDependency)(_univerjs_core.ThemeService);
|
|
@@ -20872,19 +20934,19 @@ function DefinedName({ disable }) {
|
|
|
20872
20934
|
functionService
|
|
20873
20935
|
});
|
|
20874
20936
|
switch (action.type) {
|
|
20875
|
-
case
|
|
20876
|
-
case
|
|
20937
|
+
case "noop": return true;
|
|
20938
|
+
case "focusDefinedName":
|
|
20877
20939
|
setRangeString(action.definedName.name);
|
|
20878
20940
|
setInputValue(action.definedName.name);
|
|
20879
20941
|
focusDefinedName(action.definedName);
|
|
20880
20942
|
return true;
|
|
20881
|
-
case
|
|
20943
|
+
case "focusSelection":
|
|
20882
20944
|
setRangeString(action.refString);
|
|
20883
20945
|
setInputValue(action.refString);
|
|
20884
20946
|
focusSelection(action.refString);
|
|
20885
20947
|
return true;
|
|
20886
|
-
case
|
|
20887
|
-
if (!formulaOrRefString) {
|
|
20948
|
+
case "createDefinedName": {
|
|
20949
|
+
if (!formulaOrRefString || !sheetPermissionCheckController.permissionCheckWithoutRange({ workbookTypes: [_univerjs_sheets.WorkbookEditablePermission] }, unitId)) {
|
|
20888
20950
|
resetValue();
|
|
20889
20951
|
return false;
|
|
20890
20952
|
}
|
|
@@ -20901,7 +20963,7 @@ function DefinedName({ disable }) {
|
|
|
20901
20963
|
} else resetValue();
|
|
20902
20964
|
return !!result;
|
|
20903
20965
|
}
|
|
20904
|
-
case
|
|
20966
|
+
case "reset":
|
|
20905
20967
|
resetValue();
|
|
20906
20968
|
return false;
|
|
20907
20969
|
}
|
|
@@ -20973,16 +21035,11 @@ function DefinedName({ disable }) {
|
|
|
20973
21035
|
|
|
20974
21036
|
//#endregion
|
|
20975
21037
|
//#region src/views/formula-bar/FormulaBar.tsx
|
|
20976
|
-
var ArrowDirection = /* @__PURE__ */ function(ArrowDirection) {
|
|
20977
|
-
ArrowDirection[ArrowDirection["Down"] = 0] = "Down";
|
|
20978
|
-
ArrowDirection[ArrowDirection["Up"] = 1] = "Up";
|
|
20979
|
-
return ArrowDirection;
|
|
20980
|
-
}(ArrowDirection || {});
|
|
20981
21038
|
function FormulaBar(props) {
|
|
20982
21039
|
var _editState$documentLa, _editState$documentLa2;
|
|
20983
21040
|
const { className, disableDefinedName } = props;
|
|
20984
21041
|
const [iconActivated, setIconActivated] = (0, react.useState)(false);
|
|
20985
|
-
const [arrowDirection, setArrowDirection] = (0, react.useState)(
|
|
21042
|
+
const [arrowDirection, setArrowDirection] = (0, react.useState)(0);
|
|
20986
21043
|
const formulaEditorManagerService = (0, _univerjs_ui.useDependency)(IFormulaEditorManagerService);
|
|
20987
21044
|
const editorBridgeService = (0, _univerjs_ui.useDependency)(IEditorBridgeService);
|
|
20988
21045
|
const worksheetProtectionRuleModel = (0, _univerjs_ui.useDependency)(_univerjs_sheets.WorksheetProtectionRuleModel);
|
|
@@ -21003,7 +21060,7 @@ function FormulaBar(props) {
|
|
|
21003
21060
|
const editState = (0, _univerjs_ui.useObservable)(editorBridgeService.currentEditCellState$);
|
|
21004
21061
|
const keyCodeConfig = useKeyEventConfig(isRefSelecting, editState === null || editState === void 0 ? void 0 : editState.unitId);
|
|
21005
21062
|
const FormulaEditor = componentManager.get(EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY);
|
|
21006
|
-
const formulaAuxUIParts = (0, _univerjs_ui.useComponentsOfPart)(
|
|
21063
|
+
const formulaAuxUIParts = (0, _univerjs_ui.useComponentsOfPart)("formula-aux");
|
|
21007
21064
|
const contextService = (0, _univerjs_ui.useDependency)(_univerjs_core.IContextService);
|
|
21008
21065
|
(0, _univerjs_ui.useObservable)((0, react.useMemo)(() => contextService.subscribeContextValue$(_univerjs_core.FOCUSING_FX_BAR_EDITOR), [contextService]));
|
|
21009
21066
|
const isFocusFxBar = contextService.getContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR);
|
|
@@ -21083,9 +21140,9 @@ function FormulaBar(props) {
|
|
|
21083
21140
|
}
|
|
21084
21141
|
}, [formulaEditorManagerService]);
|
|
21085
21142
|
function handleArrowClick() {
|
|
21086
|
-
setArrowDirection(arrowDirection ===
|
|
21143
|
+
setArrowDirection(arrowDirection === 0 ? 1 : 0);
|
|
21087
21144
|
setTimeout(() => {
|
|
21088
|
-
formulaEditorManagerService.handleFoldBtnClick(arrowDirection ===
|
|
21145
|
+
formulaEditorManagerService.handleFoldBtnClick(arrowDirection === 1);
|
|
21089
21146
|
}, 150);
|
|
21090
21147
|
}
|
|
21091
21148
|
function handleCloseBtnClick() {
|
|
@@ -21138,8 +21195,8 @@ function FormulaBar(props) {
|
|
|
21138
21195
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
21139
21196
|
"data-u-comp": "formula-bar",
|
|
21140
21197
|
className: (0, _univerjs_design.clsx)("univer-box-border univer-flex univer-bg-white univer-transition-[height] univer-ease-linear dark:!univer-bg-gray-900", _univerjs_design.borderBottomClassName, className, {
|
|
21141
|
-
"univer-h-7": arrowDirection ===
|
|
21142
|
-
"univer-h-20": arrowDirection ===
|
|
21198
|
+
"univer-h-7": arrowDirection === 0,
|
|
21199
|
+
"univer-h-20": arrowDirection === 1,
|
|
21143
21200
|
"univer-pointer-events-none": editDisable
|
|
21144
21201
|
}),
|
|
21145
21202
|
children: [
|
|
@@ -21204,7 +21261,7 @@ function FormulaBar(props) {
|
|
|
21204
21261
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
21205
21262
|
className: (0, _univerjs_design.clsx)("univer-flex univer-h-full univer-w-5 univer-cursor-pointer univer-items-center univer-justify-center univer-text-xs univer-text-gray-700 dark:!univer-text-gray-200", { "univer-cursor-not-allowed univer-text-gray-200 dark:!univer-text-gray-700": editDisable }),
|
|
21206
21263
|
onClick: handleArrowClick,
|
|
21207
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.DropdownIcon, { className: (0, _univerjs_design.clsx)({ "univer-rotate-180": arrowDirection ===
|
|
21264
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.DropdownIcon, { className: (0, _univerjs_design.clsx)({ "univer-rotate-180": arrowDirection === 1 }) })
|
|
21208
21265
|
})]
|
|
21209
21266
|
})]
|
|
21210
21267
|
}),
|
|
@@ -21433,15 +21490,10 @@ const CONFIG = {
|
|
|
21433
21490
|
cancel(v) {},
|
|
21434
21491
|
complete(v) {}
|
|
21435
21492
|
};
|
|
21436
|
-
let AnimateStatus = /* @__PURE__ */ function(AnimateStatus) {
|
|
21437
|
-
AnimateStatus[AnimateStatus["Request"] = 0] = "Request";
|
|
21438
|
-
AnimateStatus[AnimateStatus["Cancel"] = 1] = "Cancel";
|
|
21439
|
-
return AnimateStatus;
|
|
21440
|
-
}({});
|
|
21441
21493
|
var Animate = class {
|
|
21442
21494
|
constructor(config) {
|
|
21443
21495
|
_defineProperty(this, "_config", void 0);
|
|
21444
|
-
_defineProperty(this, "_status",
|
|
21496
|
+
_defineProperty(this, "_status", 0);
|
|
21445
21497
|
_defineProperty(this, "_start", 0);
|
|
21446
21498
|
_defineProperty(this, "_handle", 0);
|
|
21447
21499
|
_defineProperty(this, "_delayHandle", null);
|
|
@@ -21474,20 +21526,20 @@ var Animate = class {
|
|
|
21474
21526
|
}
|
|
21475
21527
|
request() {
|
|
21476
21528
|
if (this._config.delay === 0) {
|
|
21477
|
-
this._status =
|
|
21529
|
+
this._status = 0;
|
|
21478
21530
|
this._start = Date.now();
|
|
21479
21531
|
this._fakeHandle();
|
|
21480
21532
|
} else {
|
|
21481
21533
|
this._delayHandle && clearTimeout(this._delayHandle);
|
|
21482
21534
|
this._delayHandle = setTimeout(() => {
|
|
21483
|
-
this._status =
|
|
21535
|
+
this._status = 0;
|
|
21484
21536
|
this._start = Date.now();
|
|
21485
21537
|
this._fakeHandle();
|
|
21486
21538
|
}, this._config.delay);
|
|
21487
21539
|
}
|
|
21488
21540
|
}
|
|
21489
21541
|
cancel() {
|
|
21490
|
-
this._status =
|
|
21542
|
+
this._status = 1;
|
|
21491
21543
|
this._delayHandle && clearTimeout(this._delayHandle);
|
|
21492
21544
|
cancelAnimationFrame(this._handle);
|
|
21493
21545
|
}
|
|
@@ -21496,7 +21548,7 @@ var Animate = class {
|
|
|
21496
21548
|
times = times >= this._config.duration ? this._config.duration : times;
|
|
21497
21549
|
const fix = Tween[this._config.type](times, this._config.begin, this._config.end - this._config.begin, this._config.duration, .7).toFixed(2);
|
|
21498
21550
|
this._config.receive(fix);
|
|
21499
|
-
if (this._status ===
|
|
21551
|
+
if (this._status === 1) {
|
|
21500
21552
|
this._config.cancel(fix);
|
|
21501
21553
|
this._config.complete(fix);
|
|
21502
21554
|
return;
|
|
@@ -21786,7 +21838,8 @@ var SlideScrollbar = class {
|
|
|
21786
21838
|
constructor(slideTabBar) {
|
|
21787
21839
|
_defineProperty(this, "_slideTabBar", void 0);
|
|
21788
21840
|
_defineProperty(this, "_scrollX", void 0);
|
|
21789
|
-
|
|
21841
|
+
const primeval = slideTabBar.primeval();
|
|
21842
|
+
this._scrollX = primeval.scrollLeft;
|
|
21790
21843
|
this._slideTabBar = slideTabBar;
|
|
21791
21844
|
}
|
|
21792
21845
|
scrollX(x) {
|
|
@@ -22679,6 +22732,8 @@ const SheetBar = () => {
|
|
|
22679
22732
|
const unitId = useActiveWorkbook().getUnitId();
|
|
22680
22733
|
const workbookEditablePermission = (0, _univerjs_ui.useObservable)(permissionService.getPermissionPoint$((_WorkbookEditablePerm = new _univerjs_sheets.WorkbookEditablePermission(unitId)) === null || _WorkbookEditablePerm === void 0 ? void 0 : _WorkbookEditablePerm.id));
|
|
22681
22734
|
const workbookCreateSheetPermission = (0, _univerjs_ui.useObservable)(permissionService.getPermissionPoint$((_WorkbookCreateSheetP = new _univerjs_sheets.WorkbookCreateSheetPermission(unitId)) === null || _WorkbookCreateSheetP === void 0 ? void 0 : _WorkbookCreateSheetP.id));
|
|
22735
|
+
const config = (0, _univerjs_ui.useConfigValue)(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
22736
|
+
const { show: addSheetButtonShow = true, defaultRowCount = _univerjs_core.DEFAULT_WORKSHEET_ROW_COUNT, defaultColumnCount = _univerjs_core.DEFAULT_WORKSHEET_COLUMN_COUNT } = ((config === null || config === void 0 ? void 0 : config.footer) || {}).addSheetButtonConfig || {};
|
|
22682
22737
|
const updateScrollButtonState = (state) => {
|
|
22683
22738
|
const { leftEnd, rightEnd } = state;
|
|
22684
22739
|
setLeftScrollState(leftEnd);
|
|
@@ -22693,7 +22748,10 @@ const SheetBar = () => {
|
|
|
22693
22748
|
};
|
|
22694
22749
|
}, []);
|
|
22695
22750
|
const addSheet = () => {
|
|
22696
|
-
commandService.executeCommand(_univerjs_sheets.InsertSheetCommand.id
|
|
22751
|
+
commandService.executeCommand(_univerjs_sheets.InsertSheetCommand.id, { sheet: {
|
|
22752
|
+
rowCount: defaultRowCount,
|
|
22753
|
+
columnCount: defaultColumnCount
|
|
22754
|
+
} });
|
|
22697
22755
|
setTimeout(() => {
|
|
22698
22756
|
sheetBarService.setAddSheet(0);
|
|
22699
22757
|
}, 0);
|
|
@@ -22709,7 +22767,7 @@ const SheetBar = () => {
|
|
|
22709
22767
|
children: [
|
|
22710
22768
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
22711
22769
|
className: "univer-flex univer-items-center",
|
|
22712
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SheetBarButton, {
|
|
22770
|
+
children: [addSheetButtonShow && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SheetBarButton, {
|
|
22713
22771
|
className: "univer-mr-2",
|
|
22714
22772
|
onClick: addSheet,
|
|
22715
22773
|
disabled: !((workbookCreateSheetPermission === null || workbookCreateSheetPermission === void 0 ? void 0 : workbookCreateSheetPermission.value) && (workbookEditablePermission === null || workbookEditablePermission === void 0 ? void 0 : workbookEditablePermission.value)),
|
|
@@ -23211,7 +23269,7 @@ const MoveSelectionEndDownShortcutItem = {
|
|
|
23211
23269
|
preconditions: whenSheetEditorFocused,
|
|
23212
23270
|
staticParameters: {
|
|
23213
23271
|
direction: _univerjs_core.Direction.DOWN,
|
|
23214
|
-
jumpOver:
|
|
23272
|
+
jumpOver: 1
|
|
23215
23273
|
}
|
|
23216
23274
|
};
|
|
23217
23275
|
const MoveSelectionEndUpShortcutItem = {
|
|
@@ -23222,7 +23280,7 @@ const MoveSelectionEndUpShortcutItem = {
|
|
|
23222
23280
|
preconditions: whenSheetEditorFocused,
|
|
23223
23281
|
staticParameters: {
|
|
23224
23282
|
direction: _univerjs_core.Direction.UP,
|
|
23225
|
-
jumpOver:
|
|
23283
|
+
jumpOver: 1
|
|
23226
23284
|
}
|
|
23227
23285
|
};
|
|
23228
23286
|
const MoveSelectionEndLeftShortcutItem = {
|
|
@@ -23233,7 +23291,7 @@ const MoveSelectionEndLeftShortcutItem = {
|
|
|
23233
23291
|
preconditions: whenSheetEditorFocused,
|
|
23234
23292
|
staticParameters: {
|
|
23235
23293
|
direction: _univerjs_core.Direction.LEFT,
|
|
23236
|
-
jumpOver:
|
|
23294
|
+
jumpOver: 1
|
|
23237
23295
|
}
|
|
23238
23296
|
};
|
|
23239
23297
|
const MoveSelectionEndRightShortcutItem = {
|
|
@@ -23244,7 +23302,7 @@ const MoveSelectionEndRightShortcutItem = {
|
|
|
23244
23302
|
preconditions: whenSheetEditorFocused,
|
|
23245
23303
|
staticParameters: {
|
|
23246
23304
|
direction: _univerjs_core.Direction.RIGHT,
|
|
23247
|
-
jumpOver:
|
|
23305
|
+
jumpOver: 1
|
|
23248
23306
|
}
|
|
23249
23307
|
};
|
|
23250
23308
|
const ExpandSelectionDownShortcutItem = {
|
|
@@ -23287,7 +23345,7 @@ const ExpandSelectionEndDownShortcutItem = {
|
|
|
23287
23345
|
preconditions: whenSheetEditorFocused,
|
|
23288
23346
|
staticParameters: {
|
|
23289
23347
|
direction: _univerjs_core.Direction.DOWN,
|
|
23290
|
-
jumpOver:
|
|
23348
|
+
jumpOver: 1
|
|
23291
23349
|
}
|
|
23292
23350
|
};
|
|
23293
23351
|
const ExpandSelectionEndUpShortcutItem = {
|
|
@@ -23298,7 +23356,7 @@ const ExpandSelectionEndUpShortcutItem = {
|
|
|
23298
23356
|
preconditions: whenSheetEditorFocused,
|
|
23299
23357
|
staticParameters: {
|
|
23300
23358
|
direction: _univerjs_core.Direction.UP,
|
|
23301
|
-
jumpOver:
|
|
23359
|
+
jumpOver: 1
|
|
23302
23360
|
}
|
|
23303
23361
|
};
|
|
23304
23362
|
const ExpandSelectionEndLeftShortcutItem = {
|
|
@@ -23309,7 +23367,7 @@ const ExpandSelectionEndLeftShortcutItem = {
|
|
|
23309
23367
|
preconditions: whenSheetEditorFocused,
|
|
23310
23368
|
staticParameters: {
|
|
23311
23369
|
direction: _univerjs_core.Direction.LEFT,
|
|
23312
|
-
jumpOver:
|
|
23370
|
+
jumpOver: 1
|
|
23313
23371
|
}
|
|
23314
23372
|
};
|
|
23315
23373
|
const ExpandSelectionEndRightShortcutItem = {
|
|
@@ -23320,7 +23378,7 @@ const ExpandSelectionEndRightShortcutItem = {
|
|
|
23320
23378
|
preconditions: whenSheetEditorFocused,
|
|
23321
23379
|
staticParameters: {
|
|
23322
23380
|
direction: _univerjs_core.Direction.RIGHT,
|
|
23323
|
-
jumpOver:
|
|
23381
|
+
jumpOver: 1
|
|
23324
23382
|
}
|
|
23325
23383
|
};
|
|
23326
23384
|
const SelectAllShortcutItem = {
|
|
@@ -23341,28 +23399,28 @@ const SetBoldShortcutItem = {
|
|
|
23341
23399
|
id: SetRangeBoldCommand.id,
|
|
23342
23400
|
description: "shortcut.sheet.set-bold",
|
|
23343
23401
|
group: "4_sheet-edit",
|
|
23344
|
-
preconditions: (contextService) =>
|
|
23402
|
+
preconditions: (contextService) => whenSheetFocusedInlineFormat(contextService),
|
|
23345
23403
|
binding: _univerjs_ui.KeyCode.B | _univerjs_ui.MetaKeys.CTRL_COMMAND
|
|
23346
23404
|
};
|
|
23347
23405
|
const SetItalicShortcutItem = {
|
|
23348
23406
|
id: SetRangeItalicCommand.id,
|
|
23349
23407
|
description: "shortcut.sheet.set-italic",
|
|
23350
23408
|
group: "4_sheet-edit",
|
|
23351
|
-
preconditions: (contextService) =>
|
|
23409
|
+
preconditions: (contextService) => whenSheetFocusedInlineFormat(contextService),
|
|
23352
23410
|
binding: _univerjs_ui.KeyCode.I | _univerjs_ui.MetaKeys.CTRL_COMMAND
|
|
23353
23411
|
};
|
|
23354
23412
|
const SetUnderlineShortcutItem = {
|
|
23355
23413
|
id: SetRangeUnderlineCommand.id,
|
|
23356
23414
|
description: "shortcut.sheet.set-underline",
|
|
23357
23415
|
group: "4_sheet-edit",
|
|
23358
|
-
preconditions: (contextService) =>
|
|
23416
|
+
preconditions: (contextService) => whenSheetFocusedInlineFormat(contextService),
|
|
23359
23417
|
binding: _univerjs_ui.KeyCode.U | _univerjs_ui.MetaKeys.CTRL_COMMAND
|
|
23360
23418
|
};
|
|
23361
23419
|
const SetStrikeThroughShortcutItem = {
|
|
23362
23420
|
id: SetRangeStrickThroughCommand.id,
|
|
23363
23421
|
description: "shortcut.sheet.set-strike-through",
|
|
23364
23422
|
group: "4_sheet-edit",
|
|
23365
|
-
preconditions: (contextService) =>
|
|
23423
|
+
preconditions: (contextService) => whenSheetFocusedInlineFormat(contextService),
|
|
23366
23424
|
binding: _univerjs_ui.KeyCode.X | _univerjs_ui.MetaKeys.SHIFT | _univerjs_ui.MetaKeys.CTRL_COMMAND
|
|
23367
23425
|
};
|
|
23368
23426
|
|
|
@@ -23921,7 +23979,7 @@ const useHighlightRange = (ranges = []) => {
|
|
|
23921
23979
|
//#endregion
|
|
23922
23980
|
//#region package.json
|
|
23923
23981
|
var name = "@univerjs/sheets-ui";
|
|
23924
|
-
var version = "0.
|
|
23982
|
+
var version = "0.22.0";
|
|
23925
23983
|
|
|
23926
23984
|
//#endregion
|
|
23927
23985
|
//#region src/services/cell-alert-manager.service.ts
|
|
@@ -24011,9 +24069,9 @@ function CellAlert({ popup }) {
|
|
|
24011
24069
|
if (!alert) return null;
|
|
24012
24070
|
const { type, title, message } = alert;
|
|
24013
24071
|
const iconMap = {
|
|
24014
|
-
[
|
|
24015
|
-
[
|
|
24016
|
-
[
|
|
24072
|
+
[2]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.ErrorIcon, { className: "univer-mr-1.5 univer-text-red-500" }),
|
|
24073
|
+
[0]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.InfoIcon, { className: "univer-mr-1.5 univer-text-blue-500" }),
|
|
24074
|
+
[1]: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_univerjs_icons.WarningIcon, { className: "univer-mr-1.5 univer-text-yellow-500" })
|
|
24017
24075
|
};
|
|
24018
24076
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
24019
24077
|
className: "univer-z-[100] univer-box-border univer-w-[156px] univer-rounded-lg univer-bg-white univer-px-2 univer-py-1 univer-text-gray-900 univer-shadow dark:!univer-bg-black dark:!univer-text-white",
|
|
@@ -24467,7 +24525,7 @@ let ForceStringAlertRenderController = class ForceStringAlertRenderController ex
|
|
|
24467
24525
|
return;
|
|
24468
24526
|
}
|
|
24469
24527
|
this._cellAlertManagerService.showAlert({
|
|
24470
|
-
type:
|
|
24528
|
+
type: 2,
|
|
24471
24529
|
title: this._localeService.t("info.error"),
|
|
24472
24530
|
message: this._localeService.t("info.forceStringInfo"),
|
|
24473
24531
|
location,
|
|
@@ -24576,7 +24634,7 @@ let FormatPainterController = class FormatPainterController extends _univerjs_co
|
|
|
24576
24634
|
priority: 0,
|
|
24577
24635
|
isDefaultHook: true,
|
|
24578
24636
|
onStatusChange: (status) => {
|
|
24579
|
-
if (status !==
|
|
24637
|
+
if (status !== 0) {
|
|
24580
24638
|
const format = this._collectSelectionRangeFormat();
|
|
24581
24639
|
if (format) this._formatPainterService.setSelectionFormat(format);
|
|
24582
24640
|
}
|
|
@@ -26992,7 +27050,7 @@ let FormatPainterRenderController = class FormatPainterRenderController extends
|
|
|
26992
27050
|
}
|
|
26993
27051
|
_commandExecutedListener() {
|
|
26994
27052
|
this.disposeWithMe(this._selectionRenderService.selectionMoveEnd$.subscribe((selections) => {
|
|
26995
|
-
if (this._formatPainterService.getStatus() !==
|
|
27053
|
+
if (this._formatPainterService.getStatus() !== 0) {
|
|
26996
27054
|
var _this$_context$unit$g;
|
|
26997
27055
|
const { rangeWithCoord } = selections[selections.length - 1];
|
|
26998
27056
|
this._commandService.executeCommand(ApplyFormatPainterCommand.id, {
|
|
@@ -27005,7 +27063,7 @@ let FormatPainterRenderController = class FormatPainterRenderController extends
|
|
|
27005
27063
|
endColumn: rangeWithCoord.endColumn
|
|
27006
27064
|
}
|
|
27007
27065
|
});
|
|
27008
|
-
if (this._formatPainterService.getStatus() ===
|
|
27066
|
+
if (this._formatPainterService.getStatus() === 1) this._commandService.executeCommand(SetOnceFormatPainterCommand.id);
|
|
27009
27067
|
}
|
|
27010
27068
|
}));
|
|
27011
27069
|
}
|
|
@@ -27013,7 +27071,7 @@ let FormatPainterRenderController = class FormatPainterRenderController extends
|
|
|
27013
27071
|
this.disposeWithMe((0, _univerjs_core.toDisposable)(this._formatPainterService.status$.subscribe((status) => {
|
|
27014
27072
|
const scene = this._context.scene;
|
|
27015
27073
|
if (!scene) return;
|
|
27016
|
-
if (status !==
|
|
27074
|
+
if (status !== 0) scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.CELL);
|
|
27017
27075
|
else scene.setDefaultCursor(_univerjs_engine_render.CURSOR_TYPE.DEFAULT);
|
|
27018
27076
|
})));
|
|
27019
27077
|
}
|
|
@@ -27026,11 +27084,6 @@ FormatPainterRenderController = __decorate([
|
|
|
27026
27084
|
|
|
27027
27085
|
//#endregion
|
|
27028
27086
|
//#region src/menu/header-menu-shape.ts
|
|
27029
|
-
let HEADER_MENU_SHAPE_TYPE = /* @__PURE__ */ function(HEADER_MENU_SHAPE_TYPE) {
|
|
27030
|
-
HEADER_MENU_SHAPE_TYPE[HEADER_MENU_SHAPE_TYPE["NORMAL"] = 0] = "NORMAL";
|
|
27031
|
-
HEADER_MENU_SHAPE_TYPE[HEADER_MENU_SHAPE_TYPE["HIGHLIGHT"] = 1] = "HIGHLIGHT";
|
|
27032
|
-
return HEADER_MENU_SHAPE_TYPE;
|
|
27033
|
-
}({});
|
|
27034
27087
|
const HEADER_MENU_SHAPE_CIRCLE_FILL = "rgba(0, 0, 0, 0.15)";
|
|
27035
27088
|
const HEADER_MENU_SHAPE_TRIANGLE_FILL = "rgb(0, 0, 0)";
|
|
27036
27089
|
const HEADER_MENU_BACKGROUND_COLOR = "rgb(255, 255, 255, 1)";
|
|
@@ -27039,7 +27092,7 @@ var HeaderMenuShape = class extends _univerjs_engine_render.Shape {
|
|
|
27039
27092
|
super(key, props);
|
|
27040
27093
|
_defineProperty(this, "_size", 12);
|
|
27041
27094
|
_defineProperty(this, "_iconRatio", .4);
|
|
27042
|
-
_defineProperty(this, "_mode",
|
|
27095
|
+
_defineProperty(this, "_mode", 0);
|
|
27043
27096
|
this.setShapeProps(props);
|
|
27044
27097
|
}
|
|
27045
27098
|
setShapeProps(props) {
|
|
@@ -27051,7 +27104,7 @@ var HeaderMenuShape = class extends _univerjs_engine_render.Shape {
|
|
|
27051
27104
|
});
|
|
27052
27105
|
}
|
|
27053
27106
|
_draw(ctx) {
|
|
27054
|
-
if (this._mode ===
|
|
27107
|
+
if (this._mode === 1) _univerjs_engine_render.Rect.drawWith(ctx, {
|
|
27055
27108
|
width: this._size,
|
|
27056
27109
|
height: this._size,
|
|
27057
27110
|
radius: this._size,
|
|
@@ -27086,11 +27139,6 @@ var HeaderMenuShape = class extends _univerjs_engine_render.Shape {
|
|
|
27086
27139
|
const HEADER_MENU_CONTROLLER_SHAPE = "__SpreadsheetHeaderMenuSHAPEControllerShape__";
|
|
27087
27140
|
const HEADER_MENU_CONTROLLER_MENU = "__SpreadsheetHeaderMenuMAINControllerShape__";
|
|
27088
27141
|
const HEADER_MENU_CONTROLLER_SHAPE_COLOR = "rgba(0, 0, 0, 0.1)";
|
|
27089
|
-
var HEADER_HOVER_TYPE = /* @__PURE__ */ function(HEADER_HOVER_TYPE) {
|
|
27090
|
-
HEADER_HOVER_TYPE[HEADER_HOVER_TYPE["ROW"] = 0] = "ROW";
|
|
27091
|
-
HEADER_HOVER_TYPE[HEADER_HOVER_TYPE["COLUMN"] = 1] = "COLUMN";
|
|
27092
|
-
return HEADER_HOVER_TYPE;
|
|
27093
|
-
}(HEADER_HOVER_TYPE || {});
|
|
27094
27142
|
let HeaderMenuRenderController = class HeaderMenuRenderController extends _univerjs_core.Disposable {
|
|
27095
27143
|
constructor(_context, _sheetSkeletonManagerService, _contextMenuService, _commandService, _selectionManagerService) {
|
|
27096
27144
|
super();
|
|
@@ -27124,22 +27172,22 @@ let HeaderMenuRenderController = class HeaderMenuRenderController extends _unive
|
|
|
27124
27172
|
visible: false
|
|
27125
27173
|
});
|
|
27126
27174
|
scene.addObjects([this._hoverRect, this._hoverMenu], 10);
|
|
27127
|
-
this._initialHover(
|
|
27128
|
-
this._initialHover(
|
|
27175
|
+
this._initialHover(0);
|
|
27176
|
+
this._initialHover(1);
|
|
27129
27177
|
this._initialHoverMenu();
|
|
27130
27178
|
}
|
|
27131
|
-
_initialHover(initialType =
|
|
27179
|
+
_initialHover(initialType = 0) {
|
|
27132
27180
|
var _this$_headerPointerS2, _this$_headerPointerS3, _this$_headerPointerS4;
|
|
27133
|
-
const spreadsheetColumnHeader = this._context.components.get(
|
|
27134
|
-
const spreadsheetRowHeader = this._context.components.get(
|
|
27135
|
-
const eventBindingObject = initialType ===
|
|
27181
|
+
const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
|
|
27182
|
+
const spreadsheetRowHeader = this._context.components.get("__SpreadsheetRowHeader__");
|
|
27183
|
+
const eventBindingObject = initialType === 0 ? spreadsheetRowHeader : spreadsheetColumnHeader;
|
|
27136
27184
|
const pointerMoveHandler = (evt) => {
|
|
27137
27185
|
var _this$_sheetSkeletonM;
|
|
27138
27186
|
const skeleton = (_this$_sheetSkeletonM = this._sheetSkeletonManagerService.getCurrentParam()) === null || _this$_sheetSkeletonM === void 0 ? void 0 : _this$_sheetSkeletonM.skeleton;
|
|
27139
27187
|
if (skeleton == null) return;
|
|
27140
27188
|
const { rowHeaderWidth, columnHeaderHeight } = skeleton;
|
|
27141
27189
|
const { startX, startY, endX, endY, column } = getCoordByOffset(evt.offsetX, evt.offsetY, this._context.scene, skeleton);
|
|
27142
|
-
if (initialType ===
|
|
27190
|
+
if (initialType === 0) {
|
|
27143
27191
|
var _this$_hoverRect2;
|
|
27144
27192
|
(_this$_hoverRect2 = this._hoverRect) === null || _this$_hoverRect2 === void 0 || _this$_hoverRect2.transformByState({
|
|
27145
27193
|
width: rowHeaderWidth,
|
|
@@ -27192,7 +27240,7 @@ let HeaderMenuRenderController = class HeaderMenuRenderController extends _unive
|
|
|
27192
27240
|
this._hoverMenu.onPointerEnter$.subscribeEvent(() => {
|
|
27193
27241
|
if (this._hoverMenu == null) return;
|
|
27194
27242
|
this._hoverMenu.setProps({
|
|
27195
|
-
mode:
|
|
27243
|
+
mode: 1,
|
|
27196
27244
|
visible: true
|
|
27197
27245
|
});
|
|
27198
27246
|
this._context.scene.setCursor(_univerjs_engine_render.CURSOR_TYPE.POINTER);
|
|
@@ -27200,7 +27248,7 @@ let HeaderMenuRenderController = class HeaderMenuRenderController extends _unive
|
|
|
27200
27248
|
this._hoverMenu.onPointerLeave$.subscribeEvent(() => {
|
|
27201
27249
|
if (this._hoverMenu == null) return;
|
|
27202
27250
|
this._hoverMenu.setProps({
|
|
27203
|
-
mode:
|
|
27251
|
+
mode: 0,
|
|
27204
27252
|
visible: false
|
|
27205
27253
|
});
|
|
27206
27254
|
this._context.scene.resetCursor();
|
|
@@ -27261,11 +27309,6 @@ HeaderMenuRenderController = __decorate([
|
|
|
27261
27309
|
|
|
27262
27310
|
//#endregion
|
|
27263
27311
|
//#region src/views/header-unhide-shape.ts
|
|
27264
|
-
let HeaderUnhideShapeType = /* @__PURE__ */ function(HeaderUnhideShapeType) {
|
|
27265
|
-
HeaderUnhideShapeType[HeaderUnhideShapeType["ROW"] = 0] = "ROW";
|
|
27266
|
-
HeaderUnhideShapeType[HeaderUnhideShapeType["COLUMN"] = 1] = "COLUMN";
|
|
27267
|
-
return HeaderUnhideShapeType;
|
|
27268
|
-
}({});
|
|
27269
27312
|
const UNHIDE_ICON_SIZE = 12;
|
|
27270
27313
|
const UNHIDE_ARROW_RATIO = .4;
|
|
27271
27314
|
var HeaderUnhideShape = class extends _univerjs_engine_render.Shape {
|
|
@@ -27288,12 +27331,12 @@ var HeaderUnhideShape = class extends _univerjs_engine_render.Shape {
|
|
|
27288
27331
|
if (props.hasPrevious !== void 0) this._hasPrevious = props.hasPrevious;
|
|
27289
27332
|
if (props.hasNext !== void 0) this._hasNext = props.hasNext;
|
|
27290
27333
|
this.transformByState({
|
|
27291
|
-
width: this._size * (this._unhideType ===
|
|
27292
|
-
height: this._size * (this._unhideType ===
|
|
27334
|
+
width: this._size * (this._unhideType === 1 ? 2 : 1),
|
|
27335
|
+
height: this._size * (this._unhideType === 0 ? 2 : 1)
|
|
27293
27336
|
});
|
|
27294
27337
|
}
|
|
27295
27338
|
_draw(ctx) {
|
|
27296
|
-
if (this._unhideType ===
|
|
27339
|
+
if (this._unhideType === 0) this._drawOnRow(ctx);
|
|
27297
27340
|
else this._drawOnCol(ctx);
|
|
27298
27341
|
}
|
|
27299
27342
|
_drawOnRow(ctx) {
|
|
@@ -27469,7 +27512,7 @@ let HeaderUnhideRenderController = class HeaderUnhideRenderController extends _u
|
|
|
27469
27512
|
const hasPrevious = startRow !== 0;
|
|
27470
27513
|
const hasNext = endRow !== rowCount - 1;
|
|
27471
27514
|
return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
|
|
27472
|
-
type:
|
|
27515
|
+
type: 0,
|
|
27473
27516
|
hovered: false,
|
|
27474
27517
|
hasPrevious,
|
|
27475
27518
|
hasNext,
|
|
@@ -27488,7 +27531,7 @@ let HeaderUnhideRenderController = class HeaderUnhideRenderController extends _u
|
|
|
27488
27531
|
const hasPrevious = startColumn !== 0;
|
|
27489
27532
|
const hasNext = endColumn !== colCount - 1;
|
|
27490
27533
|
return new HeaderUnhideShape(HEADER_UNHIDE_CONTROLLER_SHAPE, {
|
|
27491
|
-
type:
|
|
27534
|
+
type: 1,
|
|
27492
27535
|
hovered: false,
|
|
27493
27536
|
hasPrevious,
|
|
27494
27537
|
hasNext,
|
|
@@ -27561,17 +27604,17 @@ const MAIN_AREA_VIEWPORT_KEYS = new Set([
|
|
|
27561
27604
|
_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_LEFT_TOP
|
|
27562
27605
|
]);
|
|
27563
27606
|
const SELECTION_OBJECT_PREFIXES = [
|
|
27564
|
-
|
|
27565
|
-
|
|
27566
|
-
|
|
27567
|
-
|
|
27568
|
-
|
|
27569
|
-
|
|
27570
|
-
|
|
27571
|
-
|
|
27572
|
-
|
|
27573
|
-
|
|
27574
|
-
|
|
27607
|
+
"__SpreadsheetSelectionShape__",
|
|
27608
|
+
"__SpreadsheetSelectionTopControl__",
|
|
27609
|
+
"__SpreadsheetSelectionBottomControl__",
|
|
27610
|
+
"__SpreadsheetSelectionShapeLeftControl__",
|
|
27611
|
+
"__SpreadsheetSelectionShapeRightControl__",
|
|
27612
|
+
"__SpreadsheetSelectionFillControlTopLeft__",
|
|
27613
|
+
"__SpreadsheetSelectionFillControlBottomRight__",
|
|
27614
|
+
"__SpreadsheetSelectionBackgroundControlTop__",
|
|
27615
|
+
"__SpreadsheetSelectionBackgroundControlMiddleLeft__",
|
|
27616
|
+
"__SpreadsheetSelectionBackgroundControlMiddleRight__",
|
|
27617
|
+
"__SpreadsheetSelectionBackgroundControlBottom__"
|
|
27575
27618
|
];
|
|
27576
27619
|
function isSelectionObjectKey(objectKey) {
|
|
27577
27620
|
return !!objectKey && SELECTION_OBJECT_PREFIXES.some((prefix) => objectKey.startsWith(prefix));
|
|
@@ -27822,12 +27865,12 @@ let MobileHeaderResizeRenderController = class MobileHeaderResizeRenderControlle
|
|
|
27822
27865
|
const scene = this._context.scene;
|
|
27823
27866
|
this._rowResizeButton = new HeaderMenuResizeShape(MOBILE_HEADER_RESIZE_CONTROLLER_SHAPE_ROW, {
|
|
27824
27867
|
visible: false,
|
|
27825
|
-
mode:
|
|
27868
|
+
mode: 1,
|
|
27826
27869
|
zIndex: 100
|
|
27827
27870
|
});
|
|
27828
27871
|
this._columnResizeButton = new HeaderMenuResizeShape(MOBILE_HEADER_RESIZE_CONTROLLER_SHAPE_COLUMN, {
|
|
27829
27872
|
visible: false,
|
|
27830
|
-
mode:
|
|
27873
|
+
mode: 0,
|
|
27831
27874
|
zIndex: 100
|
|
27832
27875
|
});
|
|
27833
27876
|
scene.addObjects([this._rowResizeButton, this._columnResizeButton], 10);
|
|
@@ -29316,7 +29359,7 @@ var MobileSelectionControl = class extends SelectionControl {
|
|
|
29316
29359
|
const stroke = defaultStyle.stroke;
|
|
29317
29360
|
const AutofillStroke = defaultStyle.autofillStroke;
|
|
29318
29361
|
const zIndex = this.zIndex;
|
|
29319
|
-
this._fillControlTopLeft = new _univerjs_engine_render.Rect(
|
|
29362
|
+
this._fillControlTopLeft = new _univerjs_engine_render.Rect("__SpreadsheetSelectionFillControlTopLeft__" + zIndex, {
|
|
29320
29363
|
zIndex: zIndex + 2,
|
|
29321
29364
|
width: expandCornerSize,
|
|
29322
29365
|
height: expandCornerSize,
|
|
@@ -29325,7 +29368,7 @@ var MobileSelectionControl = class extends SelectionControl {
|
|
|
29325
29368
|
visualHeight: expandCornerInnerSize,
|
|
29326
29369
|
strokeWidth: AutofillStrokeWidth
|
|
29327
29370
|
});
|
|
29328
|
-
this._fillControlBottomRight = new _univerjs_engine_render.Rect(
|
|
29371
|
+
this._fillControlBottomRight = new _univerjs_engine_render.Rect("__SpreadsheetSelectionFillControlBottomRight__" + zIndex, {
|
|
29329
29372
|
zIndex: zIndex + 2,
|
|
29330
29373
|
width: expandCornerSize,
|
|
29331
29374
|
height: expandCornerSize,
|
|
@@ -29465,15 +29508,6 @@ var MobileSelectionControl = class extends SelectionControl {
|
|
|
29465
29508
|
|
|
29466
29509
|
//#endregion
|
|
29467
29510
|
//#region src/services/selection/mobile-selection-render.service.ts
|
|
29468
|
-
var ExpandingControl = /* @__PURE__ */ function(ExpandingControl) {
|
|
29469
|
-
ExpandingControl["BOTTOM_RIGHT"] = "bottom-right";
|
|
29470
|
-
ExpandingControl["TOP_LEFT"] = "top-left";
|
|
29471
|
-
ExpandingControl["LEFT"] = "left";
|
|
29472
|
-
ExpandingControl["RIGHT"] = "right";
|
|
29473
|
-
ExpandingControl["TOP"] = "top";
|
|
29474
|
-
ExpandingControl["BOTTOM"] = "bottom";
|
|
29475
|
-
return ExpandingControl;
|
|
29476
|
-
}(ExpandingControl || {});
|
|
29477
29511
|
let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderService extends BaseSelectionRenderService {
|
|
29478
29512
|
constructor(_context, injector, themeService, shortcutService, selectionManagerService, sheetSkeletonManagerService, _logService, _commandService, _contextService, _scrollManagerService) {
|
|
29479
29513
|
super(injector, themeService, shortcutService, sheetSkeletonManagerService, _contextService);
|
|
@@ -29486,7 +29520,7 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
|
|
|
29486
29520
|
_defineProperty(this, "_renderDisposable", null);
|
|
29487
29521
|
_defineProperty(this, "_expandingSelection", false);
|
|
29488
29522
|
_defineProperty(this, "_selectionControls", []);
|
|
29489
|
-
_defineProperty(this, "expandingControlMode",
|
|
29523
|
+
_defineProperty(this, "expandingControlMode", "bottom-right");
|
|
29490
29524
|
_defineProperty(this, "_anchorCellForExpanding", null);
|
|
29491
29525
|
this._workbookSelections = selectionManagerService.getWorkbookSelections(this._context.unitId);
|
|
29492
29526
|
this._init();
|
|
@@ -29696,24 +29730,24 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
|
|
|
29696
29730
|
const { expandingModeForTopLeft, expandingModeForBottomRight } = (() => {
|
|
29697
29731
|
switch (rangeType) {
|
|
29698
29732
|
case _univerjs_core.RANGE_TYPE.NORMAL: return {
|
|
29699
|
-
expandingModeForTopLeft:
|
|
29700
|
-
expandingModeForBottomRight:
|
|
29733
|
+
expandingModeForTopLeft: "top-left",
|
|
29734
|
+
expandingModeForBottomRight: "bottom-right"
|
|
29701
29735
|
};
|
|
29702
29736
|
case _univerjs_core.RANGE_TYPE.ROW: return {
|
|
29703
|
-
expandingModeForTopLeft:
|
|
29704
|
-
expandingModeForBottomRight:
|
|
29737
|
+
expandingModeForTopLeft: "top",
|
|
29738
|
+
expandingModeForBottomRight: "bottom"
|
|
29705
29739
|
};
|
|
29706
29740
|
case _univerjs_core.RANGE_TYPE.COLUMN: return {
|
|
29707
|
-
expandingModeForTopLeft:
|
|
29708
|
-
expandingModeForBottomRight:
|
|
29741
|
+
expandingModeForTopLeft: "left",
|
|
29742
|
+
expandingModeForBottomRight: "right"
|
|
29709
29743
|
};
|
|
29710
29744
|
case _univerjs_core.RANGE_TYPE.ALL: return {
|
|
29711
|
-
expandingModeForTopLeft:
|
|
29712
|
-
expandingModeForBottomRight:
|
|
29745
|
+
expandingModeForTopLeft: "top-left",
|
|
29746
|
+
expandingModeForBottomRight: "bottom-right"
|
|
29713
29747
|
};
|
|
29714
29748
|
default: return {
|
|
29715
|
-
expandingModeForTopLeft:
|
|
29716
|
-
expandingModeForBottomRight:
|
|
29749
|
+
expandingModeForTopLeft: "top-left",
|
|
29750
|
+
expandingModeForBottomRight: "bottom-right"
|
|
29717
29751
|
};
|
|
29718
29752
|
}
|
|
29719
29753
|
})();
|
|
@@ -29758,7 +29792,8 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
|
|
|
29758
29792
|
const viewportMain = scene.getViewport(_univerjs_engine_render.SHEET_VIEWPORT_KEY.VIEW_MAIN);
|
|
29759
29793
|
const activeSelectionControl = this.getActiveSelectionControl();
|
|
29760
29794
|
if (!activeSelectionControl) return;
|
|
29761
|
-
|
|
29795
|
+
const anchorCell = this._changeCurrCellWhenControlPointerDown();
|
|
29796
|
+
this._anchorCellForExpanding = anchorCell;
|
|
29762
29797
|
this._selectionMoveStart$.next(this.getSelectionDataWithStyle());
|
|
29763
29798
|
this._clearUpdatingListeners();
|
|
29764
29799
|
this._addEndingListeners();
|
|
@@ -29770,7 +29805,7 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
|
|
|
29770
29805
|
this.endSelection();
|
|
29771
29806
|
this._expandingSelection = false;
|
|
29772
29807
|
this._contextService.setContextValue(MOBILE_EXPANDING_SELECTION, false);
|
|
29773
|
-
this.expandingControlMode =
|
|
29808
|
+
this.expandingControlMode = "bottom-right";
|
|
29774
29809
|
this._selectionMoveEnd$.next(this.getSelectionDataWithStyle());
|
|
29775
29810
|
disposableShortcut.dispose();
|
|
29776
29811
|
});
|
|
@@ -29781,28 +29816,28 @@ let MobileSheetsSelectionRenderService = class MobileSheetsSelectionRenderServic
|
|
|
29781
29816
|
let currCellRange;
|
|
29782
29817
|
const { startRow, startColumn, endRow, endColumn } = activeSelectionControl.model;
|
|
29783
29818
|
switch (this.expandingControlMode) {
|
|
29784
|
-
case
|
|
29819
|
+
case "top-left":
|
|
29785
29820
|
currCellRange = skeleton.getCellWithCoordByIndex(endRow, endColumn);
|
|
29786
29821
|
break;
|
|
29787
|
-
case
|
|
29822
|
+
case "bottom-right":
|
|
29788
29823
|
currCellRange = skeleton.getCellWithCoordByIndex(startRow, startColumn);
|
|
29789
29824
|
break;
|
|
29790
|
-
case
|
|
29825
|
+
case "left":
|
|
29791
29826
|
currCellRange = skeleton.getCellWithCoordByIndex(startRow, endColumn);
|
|
29792
29827
|
currCellRange.isMerged = false;
|
|
29793
29828
|
currCellRange.isMergedMainCell = false;
|
|
29794
29829
|
break;
|
|
29795
|
-
case
|
|
29830
|
+
case "right":
|
|
29796
29831
|
currCellRange = skeleton.getCellWithCoordByIndex(startRow, startColumn);
|
|
29797
29832
|
currCellRange.isMerged = false;
|
|
29798
29833
|
currCellRange.isMergedMainCell = false;
|
|
29799
29834
|
break;
|
|
29800
|
-
case
|
|
29835
|
+
case "top":
|
|
29801
29836
|
currCellRange = skeleton.getCellWithCoordByIndex(endRow, startColumn);
|
|
29802
29837
|
currCellRange.isMerged = false;
|
|
29803
29838
|
currCellRange.isMergedMainCell = false;
|
|
29804
29839
|
break;
|
|
29805
|
-
case
|
|
29840
|
+
case "bottom":
|
|
29806
29841
|
currCellRange = skeleton.getCellWithCoordByIndex(startRow, startColumn);
|
|
29807
29842
|
currCellRange.isMerged = false;
|
|
29808
29843
|
currCellRange.isMergedMainCell = false;
|
|
@@ -30131,8 +30166,8 @@ let SheetContextMenuRenderController = class SheetContextMenuRenderController ex
|
|
|
30131
30166
|
}
|
|
30132
30167
|
});
|
|
30133
30168
|
this.disposeWithMe(spreadsheetSubscription);
|
|
30134
|
-
const spreadsheetColumnHeader = this._context.components.get(
|
|
30135
|
-
const rowHeaderSub = this._context.components.get(
|
|
30169
|
+
const spreadsheetColumnHeader = this._context.components.get("__SpreadsheetColumnHeader__");
|
|
30170
|
+
const rowHeaderSub = this._context.components.get("__SpreadsheetRowHeader__").onPointerDown$.subscribeEvent((event) => {
|
|
30136
30171
|
if (event.button === 2) this._contextMenuService.triggerContextMenu(event, _univerjs_ui.ContextMenuPosition.ROW_HEADER);
|
|
30137
30172
|
});
|
|
30138
30173
|
this.disposeWithMe(rowHeaderSub);
|