@univerjs/sheets-ui 0.22.0 → 0.22.1-insiders.20260516-8900c44
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/lib/cjs/index.js +44 -31
- package/lib/es/index.js +44 -31
- package/lib/index.js +44 -31
- package/lib/types/views/permission/extensions/range-protection.render.d.ts +2 -2
- package/lib/umd/index.js +8 -8
- package/package.json +14 -14
- package/LICENSE +0 -176
package/lib/cjs/index.js
CHANGED
|
@@ -14778,26 +14778,26 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
|
|
|
14778
14778
|
}
|
|
14779
14779
|
_initRenderMetricSubscriber() {
|
|
14780
14780
|
const { engine } = this._context;
|
|
14781
|
-
engine.beginFrame$.subscribe(() => {
|
|
14781
|
+
this.disposeWithMe(engine.beginFrame$.subscribe(() => {
|
|
14782
14782
|
this._renderFrameTimeMetric = null;
|
|
14783
14783
|
this._renderFrameTags = {};
|
|
14784
|
-
});
|
|
14785
|
-
engine.endFrame$.subscribe(() => {
|
|
14784
|
+
}));
|
|
14785
|
+
this.disposeWithMe(engine.endFrame$.subscribe(() => {
|
|
14786
14786
|
if (this._renderFrameTimeMetric && Object.keys(this._renderFrameTimeMetric).filter((key) => key.startsWith(_univerjs_engine_render.SHEET_EXTENSION_PREFIX)).length > 0) this._afterRenderMetric$.next({
|
|
14787
14787
|
frameTimeMetric: this._renderFrameTimeMetric,
|
|
14788
14788
|
tags: this._renderFrameTags
|
|
14789
14789
|
});
|
|
14790
|
-
});
|
|
14791
|
-
engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
|
|
14790
|
+
}));
|
|
14791
|
+
this.disposeWithMe(engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
|
|
14792
14792
|
if (!this._renderFrameTimeMetric) this._renderFrameTimeMetric = {};
|
|
14793
14793
|
if (!this._renderFrameTimeMetric[key]) this._renderFrameTimeMetric[key] = [];
|
|
14794
14794
|
this._renderFrameTimeMetric[key].push(Math.round(value * 100) / 100);
|
|
14795
|
-
});
|
|
14796
|
-
engine.renderFrameTags$.subscribe(([key, value]) => {
|
|
14795
|
+
}));
|
|
14796
|
+
this.disposeWithMe(engine.renderFrameTags$.subscribe(([key, value]) => {
|
|
14797
14797
|
this._renderFrameTags[key] = value;
|
|
14798
|
-
});
|
|
14798
|
+
}));
|
|
14799
14799
|
const frameInfoList = [];
|
|
14800
|
-
this._afterRenderMetric$.pipe((0, rxjs.withLatestFrom)(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
|
|
14800
|
+
this.disposeWithMe(this._afterRenderMetric$.pipe((0, rxjs.withLatestFrom)(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
|
|
14801
14801
|
frameInfoList.push({
|
|
14802
14802
|
FPS: basicFrameTimeInfo.FPS,
|
|
14803
14803
|
elapsedTime: basicFrameTimeInfo.elapsedTime,
|
|
@@ -14809,7 +14809,7 @@ let SheetRenderController = class SheetRenderController extends _univerjs_core.R
|
|
|
14809
14809
|
this._captureRenderMetric(frameInfoList);
|
|
14810
14810
|
frameInfoList.length = 0;
|
|
14811
14811
|
}
|
|
14812
|
-
});
|
|
14812
|
+
}));
|
|
14813
14813
|
}
|
|
14814
14814
|
/**
|
|
14815
14815
|
* Send render metric to telemetry service
|
|
@@ -21036,7 +21036,7 @@ function DefinedName({ disable }) {
|
|
|
21036
21036
|
//#endregion
|
|
21037
21037
|
//#region src/views/formula-bar/FormulaBar.tsx
|
|
21038
21038
|
function FormulaBar(props) {
|
|
21039
|
-
var _editState$documentLa, _editState$documentLa2;
|
|
21039
|
+
var _workbookEditablePerm, _editState$documentLa, _editState$documentLa2;
|
|
21040
21040
|
const { className, disableDefinedName } = props;
|
|
21041
21041
|
const [iconActivated, setIconActivated] = (0, react.useState)(false);
|
|
21042
21042
|
const [arrowDirection, setArrowDirection] = (0, react.useState)(0);
|
|
@@ -21064,6 +21064,10 @@ function FormulaBar(props) {
|
|
|
21064
21064
|
const contextService = (0, _univerjs_ui.useDependency)(_univerjs_core.IContextService);
|
|
21065
21065
|
(0, _univerjs_ui.useObservable)((0, react.useMemo)(() => contextService.subscribeContextValue$(_univerjs_core.FOCUSING_FX_BAR_EDITOR), [contextService]));
|
|
21066
21066
|
const isFocusFxBar = contextService.getContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR);
|
|
21067
|
+
const workbookEditablePermission = (0, _univerjs_ui.useObservable)((0, react.useMemo)(() => {
|
|
21068
|
+
if (!workbook) return;
|
|
21069
|
+
return permissionService.getPermissionPoint$(new _univerjs_sheets.WorkbookEditablePermission(workbook.getUnitId()).id);
|
|
21070
|
+
}, [permissionService, workbook]));
|
|
21067
21071
|
const ref = (0, react.useRef)(null);
|
|
21068
21072
|
const editorService = (0, _univerjs_ui.useDependency)(_univerjs_docs_ui.IEditorService);
|
|
21069
21073
|
const config = (0, _univerjs_ui.useConfigValue)(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
@@ -21165,11 +21169,18 @@ function FormulaBar(props) {
|
|
|
21165
21169
|
}
|
|
21166
21170
|
const { viewDisable, editDisable: permissionEditDisable } = disableInfo;
|
|
21167
21171
|
const editDisable = permissionEditDisable || !!disableEdit;
|
|
21172
|
+
const workbookEditDisable = !((_workbookEditablePerm = workbookEditablePermission === null || workbookEditablePermission === void 0 ? void 0 : workbookEditablePermission.value) !== null && _workbookEditablePerm !== void 0 ? _workbookEditablePerm : true);
|
|
21173
|
+
const editorActivationDisable = editDisable || workbookEditDisable;
|
|
21168
21174
|
const disabled = editDisable || imageDisable;
|
|
21169
21175
|
const shouldSkipFocus = (0, react.useRef)(false);
|
|
21170
21176
|
const handlePointerDown = () => {
|
|
21171
21177
|
try {
|
|
21172
21178
|
if (editorBridgeService.isVisible().visible === false) {
|
|
21179
|
+
if (editorActivationDisable) {
|
|
21180
|
+
contextService.setContextValue(_univerjs_core.FOCUSING_FX_BAR_EDITOR, true);
|
|
21181
|
+
editorService.focus(_univerjs_core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);
|
|
21182
|
+
return;
|
|
21183
|
+
}
|
|
21173
21184
|
if (!commandService.syncExecuteCommand(SetCellEditVisibleOperation.id, {
|
|
21174
21185
|
visible: true,
|
|
21175
21186
|
eventType: _univerjs_engine_render.DeviceInputEventType.PointerDown,
|
|
@@ -23979,7 +23990,7 @@ const useHighlightRange = (ranges = []) => {
|
|
|
23979
23990
|
//#endregion
|
|
23980
23991
|
//#region package.json
|
|
23981
23992
|
var name = "@univerjs/sheets-ui";
|
|
23982
|
-
var version = "0.22.
|
|
23993
|
+
var version = "0.22.1-insiders.20260516-8900c44";
|
|
23983
23994
|
|
|
23984
23995
|
//#endregion
|
|
23985
23996
|
//#region src/services/cell-alert-manager.service.ts
|
|
@@ -26773,28 +26784,30 @@ var RangeProtectionRenderExtension = class extends _univerjs_engine_render.Sheet
|
|
|
26773
26784
|
getShadowStrategy() {
|
|
26774
26785
|
return this._shadowStrategy;
|
|
26775
26786
|
}
|
|
26776
|
-
draw(ctx, _parentScale, spreadsheetSkeleton) {
|
|
26787
|
+
draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges) {
|
|
26777
26788
|
const { worksheet } = spreadsheetSkeleton;
|
|
26778
26789
|
if (!worksheet) return;
|
|
26779
26790
|
ctx.save();
|
|
26780
26791
|
if (!this._pattern) this._pattern = ctx.createPattern(this._img, "repeat");
|
|
26781
26792
|
this.renderCache.clear();
|
|
26782
|
-
|
|
26783
|
-
|
|
26784
|
-
|
|
26785
|
-
|
|
26786
|
-
|
|
26787
|
-
|
|
26788
|
-
|
|
26789
|
-
|
|
26790
|
-
if (this.
|
|
26791
|
-
|
|
26792
|
-
|
|
26793
|
-
|
|
26794
|
-
|
|
26795
|
-
|
|
26796
|
-
|
|
26797
|
-
|
|
26793
|
+
((diffRanges === null || diffRanges === void 0 ? void 0 : diffRanges.length) ? diffRanges : [spreadsheetSkeleton.rowColumnSegment]).forEach((range) => {
|
|
26794
|
+
_univerjs_core.Range.foreach(range, (row, col) => {
|
|
26795
|
+
if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
|
|
26796
|
+
const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
|
|
26797
|
+
if (!this._pattern) return;
|
|
26798
|
+
ctx.fillStyle = this._pattern;
|
|
26799
|
+
selectionProtection.forEach((config) => {
|
|
26800
|
+
if (!config.ruleId) return;
|
|
26801
|
+
if (this.shouldRender(config)) {
|
|
26802
|
+
if (this.renderCache.has(config.ruleId)) return;
|
|
26803
|
+
this.renderCache.add(config.ruleId);
|
|
26804
|
+
config.ranges.forEach((range) => {
|
|
26805
|
+
const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
|
|
26806
|
+
const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
|
|
26807
|
+
ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
|
|
26808
|
+
});
|
|
26809
|
+
}
|
|
26810
|
+
});
|
|
26798
26811
|
});
|
|
26799
26812
|
});
|
|
26800
26813
|
ctx.restore();
|
|
@@ -28865,9 +28878,9 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
|
|
|
28865
28878
|
this._context = _context;
|
|
28866
28879
|
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
28867
28880
|
this._renderManagerService = _renderManagerService;
|
|
28868
|
-
this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
28881
|
+
this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
28869
28882
|
this._updateSceneSize(param);
|
|
28870
|
-
});
|
|
28883
|
+
}));
|
|
28871
28884
|
}
|
|
28872
28885
|
_updateSceneSize(param) {
|
|
28873
28886
|
var _this$_renderManagerS;
|
package/lib/es/index.js
CHANGED
|
@@ -14749,26 +14749,26 @@ let SheetRenderController = class SheetRenderController extends RxDisposable {
|
|
|
14749
14749
|
}
|
|
14750
14750
|
_initRenderMetricSubscriber() {
|
|
14751
14751
|
const { engine } = this._context;
|
|
14752
|
-
engine.beginFrame$.subscribe(() => {
|
|
14752
|
+
this.disposeWithMe(engine.beginFrame$.subscribe(() => {
|
|
14753
14753
|
this._renderFrameTimeMetric = null;
|
|
14754
14754
|
this._renderFrameTags = {};
|
|
14755
|
-
});
|
|
14756
|
-
engine.endFrame$.subscribe(() => {
|
|
14755
|
+
}));
|
|
14756
|
+
this.disposeWithMe(engine.endFrame$.subscribe(() => {
|
|
14757
14757
|
if (this._renderFrameTimeMetric && Object.keys(this._renderFrameTimeMetric).filter((key) => key.startsWith(SHEET_EXTENSION_PREFIX)).length > 0) this._afterRenderMetric$.next({
|
|
14758
14758
|
frameTimeMetric: this._renderFrameTimeMetric,
|
|
14759
14759
|
tags: this._renderFrameTags
|
|
14760
14760
|
});
|
|
14761
|
-
});
|
|
14762
|
-
engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
|
|
14761
|
+
}));
|
|
14762
|
+
this.disposeWithMe(engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
|
|
14763
14763
|
if (!this._renderFrameTimeMetric) this._renderFrameTimeMetric = {};
|
|
14764
14764
|
if (!this._renderFrameTimeMetric[key]) this._renderFrameTimeMetric[key] = [];
|
|
14765
14765
|
this._renderFrameTimeMetric[key].push(Math.round(value * 100) / 100);
|
|
14766
|
-
});
|
|
14767
|
-
engine.renderFrameTags$.subscribe(([key, value]) => {
|
|
14766
|
+
}));
|
|
14767
|
+
this.disposeWithMe(engine.renderFrameTags$.subscribe(([key, value]) => {
|
|
14768
14768
|
this._renderFrameTags[key] = value;
|
|
14769
|
-
});
|
|
14769
|
+
}));
|
|
14770
14770
|
const frameInfoList = [];
|
|
14771
|
-
this._afterRenderMetric$.pipe(withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
|
|
14771
|
+
this.disposeWithMe(this._afterRenderMetric$.pipe(withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
|
|
14772
14772
|
frameInfoList.push({
|
|
14773
14773
|
FPS: basicFrameTimeInfo.FPS,
|
|
14774
14774
|
elapsedTime: basicFrameTimeInfo.elapsedTime,
|
|
@@ -14780,7 +14780,7 @@ let SheetRenderController = class SheetRenderController extends RxDisposable {
|
|
|
14780
14780
|
this._captureRenderMetric(frameInfoList);
|
|
14781
14781
|
frameInfoList.length = 0;
|
|
14782
14782
|
}
|
|
14783
|
-
});
|
|
14783
|
+
}));
|
|
14784
14784
|
}
|
|
14785
14785
|
/**
|
|
14786
14786
|
* Send render metric to telemetry service
|
|
@@ -21007,7 +21007,7 @@ function DefinedName({ disable }) {
|
|
|
21007
21007
|
//#endregion
|
|
21008
21008
|
//#region src/views/formula-bar/FormulaBar.tsx
|
|
21009
21009
|
function FormulaBar(props) {
|
|
21010
|
-
var _editState$documentLa, _editState$documentLa2;
|
|
21010
|
+
var _workbookEditablePerm, _editState$documentLa, _editState$documentLa2;
|
|
21011
21011
|
const { className, disableDefinedName } = props;
|
|
21012
21012
|
const [iconActivated, setIconActivated] = useState(false);
|
|
21013
21013
|
const [arrowDirection, setArrowDirection] = useState(0);
|
|
@@ -21035,6 +21035,10 @@ function FormulaBar(props) {
|
|
|
21035
21035
|
const contextService = useDependency(IContextService);
|
|
21036
21036
|
useObservable(useMemo(() => contextService.subscribeContextValue$(FOCUSING_FX_BAR_EDITOR), [contextService]));
|
|
21037
21037
|
const isFocusFxBar = contextService.getContextValue(FOCUSING_FX_BAR_EDITOR);
|
|
21038
|
+
const workbookEditablePermission = useObservable(useMemo(() => {
|
|
21039
|
+
if (!workbook) return;
|
|
21040
|
+
return permissionService.getPermissionPoint$(new WorkbookEditablePermission(workbook.getUnitId()).id);
|
|
21041
|
+
}, [permissionService, workbook]));
|
|
21038
21042
|
const ref = useRef(null);
|
|
21039
21043
|
const editorService = useDependency(IEditorService);
|
|
21040
21044
|
const config = useConfigValue(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
@@ -21136,11 +21140,18 @@ function FormulaBar(props) {
|
|
|
21136
21140
|
}
|
|
21137
21141
|
const { viewDisable, editDisable: permissionEditDisable } = disableInfo;
|
|
21138
21142
|
const editDisable = permissionEditDisable || !!disableEdit;
|
|
21143
|
+
const workbookEditDisable = !((_workbookEditablePerm = workbookEditablePermission === null || workbookEditablePermission === void 0 ? void 0 : workbookEditablePermission.value) !== null && _workbookEditablePerm !== void 0 ? _workbookEditablePerm : true);
|
|
21144
|
+
const editorActivationDisable = editDisable || workbookEditDisable;
|
|
21139
21145
|
const disabled = editDisable || imageDisable;
|
|
21140
21146
|
const shouldSkipFocus = useRef(false);
|
|
21141
21147
|
const handlePointerDown = () => {
|
|
21142
21148
|
try {
|
|
21143
21149
|
if (editorBridgeService.isVisible().visible === false) {
|
|
21150
|
+
if (editorActivationDisable) {
|
|
21151
|
+
contextService.setContextValue(FOCUSING_FX_BAR_EDITOR, true);
|
|
21152
|
+
editorService.focus(DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);
|
|
21153
|
+
return;
|
|
21154
|
+
}
|
|
21144
21155
|
if (!commandService.syncExecuteCommand(SetCellEditVisibleOperation.id, {
|
|
21145
21156
|
visible: true,
|
|
21146
21157
|
eventType: DeviceInputEventType.PointerDown,
|
|
@@ -23950,7 +23961,7 @@ const useHighlightRange = (ranges = []) => {
|
|
|
23950
23961
|
//#endregion
|
|
23951
23962
|
//#region package.json
|
|
23952
23963
|
var name = "@univerjs/sheets-ui";
|
|
23953
|
-
var version = "0.22.
|
|
23964
|
+
var version = "0.22.1-insiders.20260516-8900c44";
|
|
23954
23965
|
|
|
23955
23966
|
//#endregion
|
|
23956
23967
|
//#region src/services/cell-alert-manager.service.ts
|
|
@@ -26744,28 +26755,30 @@ var RangeProtectionRenderExtension = class extends SheetExtension {
|
|
|
26744
26755
|
getShadowStrategy() {
|
|
26745
26756
|
return this._shadowStrategy;
|
|
26746
26757
|
}
|
|
26747
|
-
draw(ctx, _parentScale, spreadsheetSkeleton) {
|
|
26758
|
+
draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges) {
|
|
26748
26759
|
const { worksheet } = spreadsheetSkeleton;
|
|
26749
26760
|
if (!worksheet) return;
|
|
26750
26761
|
ctx.save();
|
|
26751
26762
|
if (!this._pattern) this._pattern = ctx.createPattern(this._img, "repeat");
|
|
26752
26763
|
this.renderCache.clear();
|
|
26753
|
-
|
|
26754
|
-
|
|
26755
|
-
|
|
26756
|
-
|
|
26757
|
-
|
|
26758
|
-
|
|
26759
|
-
|
|
26760
|
-
|
|
26761
|
-
if (this.
|
|
26762
|
-
|
|
26763
|
-
|
|
26764
|
-
|
|
26765
|
-
|
|
26766
|
-
|
|
26767
|
-
|
|
26768
|
-
|
|
26764
|
+
((diffRanges === null || diffRanges === void 0 ? void 0 : diffRanges.length) ? diffRanges : [spreadsheetSkeleton.rowColumnSegment]).forEach((range) => {
|
|
26765
|
+
Range.foreach(range, (row, col) => {
|
|
26766
|
+
if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
|
|
26767
|
+
const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
|
|
26768
|
+
if (!this._pattern) return;
|
|
26769
|
+
ctx.fillStyle = this._pattern;
|
|
26770
|
+
selectionProtection.forEach((config) => {
|
|
26771
|
+
if (!config.ruleId) return;
|
|
26772
|
+
if (this.shouldRender(config)) {
|
|
26773
|
+
if (this.renderCache.has(config.ruleId)) return;
|
|
26774
|
+
this.renderCache.add(config.ruleId);
|
|
26775
|
+
config.ranges.forEach((range) => {
|
|
26776
|
+
const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
|
|
26777
|
+
const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
|
|
26778
|
+
ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
|
|
26779
|
+
});
|
|
26780
|
+
}
|
|
26781
|
+
});
|
|
26769
26782
|
});
|
|
26770
26783
|
});
|
|
26771
26784
|
ctx.restore();
|
|
@@ -28836,9 +28849,9 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
|
|
|
28836
28849
|
this._context = _context;
|
|
28837
28850
|
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
28838
28851
|
this._renderManagerService = _renderManagerService;
|
|
28839
|
-
this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
28852
|
+
this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
28840
28853
|
this._updateSceneSize(param);
|
|
28841
|
-
});
|
|
28854
|
+
}));
|
|
28842
28855
|
}
|
|
28843
28856
|
_updateSceneSize(param) {
|
|
28844
28857
|
var _this$_renderManagerS;
|
package/lib/index.js
CHANGED
|
@@ -14749,26 +14749,26 @@ let SheetRenderController = class SheetRenderController extends RxDisposable {
|
|
|
14749
14749
|
}
|
|
14750
14750
|
_initRenderMetricSubscriber() {
|
|
14751
14751
|
const { engine } = this._context;
|
|
14752
|
-
engine.beginFrame$.subscribe(() => {
|
|
14752
|
+
this.disposeWithMe(engine.beginFrame$.subscribe(() => {
|
|
14753
14753
|
this._renderFrameTimeMetric = null;
|
|
14754
14754
|
this._renderFrameTags = {};
|
|
14755
|
-
});
|
|
14756
|
-
engine.endFrame$.subscribe(() => {
|
|
14755
|
+
}));
|
|
14756
|
+
this.disposeWithMe(engine.endFrame$.subscribe(() => {
|
|
14757
14757
|
if (this._renderFrameTimeMetric && Object.keys(this._renderFrameTimeMetric).filter((key) => key.startsWith(SHEET_EXTENSION_PREFIX)).length > 0) this._afterRenderMetric$.next({
|
|
14758
14758
|
frameTimeMetric: this._renderFrameTimeMetric,
|
|
14759
14759
|
tags: this._renderFrameTags
|
|
14760
14760
|
});
|
|
14761
|
-
});
|
|
14762
|
-
engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
|
|
14761
|
+
}));
|
|
14762
|
+
this.disposeWithMe(engine.renderFrameTimeMetric$.subscribe(([key, value]) => {
|
|
14763
14763
|
if (!this._renderFrameTimeMetric) this._renderFrameTimeMetric = {};
|
|
14764
14764
|
if (!this._renderFrameTimeMetric[key]) this._renderFrameTimeMetric[key] = [];
|
|
14765
14765
|
this._renderFrameTimeMetric[key].push(Math.round(value * 100) / 100);
|
|
14766
|
-
});
|
|
14767
|
-
engine.renderFrameTags$.subscribe(([key, value]) => {
|
|
14766
|
+
}));
|
|
14767
|
+
this.disposeWithMe(engine.renderFrameTags$.subscribe(([key, value]) => {
|
|
14768
14768
|
this._renderFrameTags[key] = value;
|
|
14769
|
-
});
|
|
14769
|
+
}));
|
|
14770
14770
|
const frameInfoList = [];
|
|
14771
|
-
this._afterRenderMetric$.pipe(withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
|
|
14771
|
+
this.disposeWithMe(this._afterRenderMetric$.pipe(withLatestFrom(engine.endFrame$)).subscribe(([sceneRenderDetail, basicFrameTimeInfo]) => {
|
|
14772
14772
|
frameInfoList.push({
|
|
14773
14773
|
FPS: basicFrameTimeInfo.FPS,
|
|
14774
14774
|
elapsedTime: basicFrameTimeInfo.elapsedTime,
|
|
@@ -14780,7 +14780,7 @@ let SheetRenderController = class SheetRenderController extends RxDisposable {
|
|
|
14780
14780
|
this._captureRenderMetric(frameInfoList);
|
|
14781
14781
|
frameInfoList.length = 0;
|
|
14782
14782
|
}
|
|
14783
|
-
});
|
|
14783
|
+
}));
|
|
14784
14784
|
}
|
|
14785
14785
|
/**
|
|
14786
14786
|
* Send render metric to telemetry service
|
|
@@ -21007,7 +21007,7 @@ function DefinedName({ disable }) {
|
|
|
21007
21007
|
//#endregion
|
|
21008
21008
|
//#region src/views/formula-bar/FormulaBar.tsx
|
|
21009
21009
|
function FormulaBar(props) {
|
|
21010
|
-
var _editState$documentLa, _editState$documentLa2;
|
|
21010
|
+
var _workbookEditablePerm, _editState$documentLa, _editState$documentLa2;
|
|
21011
21011
|
const { className, disableDefinedName } = props;
|
|
21012
21012
|
const [iconActivated, setIconActivated] = useState(false);
|
|
21013
21013
|
const [arrowDirection, setArrowDirection] = useState(0);
|
|
@@ -21035,6 +21035,10 @@ function FormulaBar(props) {
|
|
|
21035
21035
|
const contextService = useDependency(IContextService);
|
|
21036
21036
|
useObservable(useMemo(() => contextService.subscribeContextValue$(FOCUSING_FX_BAR_EDITOR), [contextService]));
|
|
21037
21037
|
const isFocusFxBar = contextService.getContextValue(FOCUSING_FX_BAR_EDITOR);
|
|
21038
|
+
const workbookEditablePermission = useObservable(useMemo(() => {
|
|
21039
|
+
if (!workbook) return;
|
|
21040
|
+
return permissionService.getPermissionPoint$(new WorkbookEditablePermission(workbook.getUnitId()).id);
|
|
21041
|
+
}, [permissionService, workbook]));
|
|
21038
21042
|
const ref = useRef(null);
|
|
21039
21043
|
const editorService = useDependency(IEditorService);
|
|
21040
21044
|
const config = useConfigValue(SHEETS_UI_PLUGIN_CONFIG_KEY);
|
|
@@ -21136,11 +21140,18 @@ function FormulaBar(props) {
|
|
|
21136
21140
|
}
|
|
21137
21141
|
const { viewDisable, editDisable: permissionEditDisable } = disableInfo;
|
|
21138
21142
|
const editDisable = permissionEditDisable || !!disableEdit;
|
|
21143
|
+
const workbookEditDisable = !((_workbookEditablePerm = workbookEditablePermission === null || workbookEditablePermission === void 0 ? void 0 : workbookEditablePermission.value) !== null && _workbookEditablePerm !== void 0 ? _workbookEditablePerm : true);
|
|
21144
|
+
const editorActivationDisable = editDisable || workbookEditDisable;
|
|
21139
21145
|
const disabled = editDisable || imageDisable;
|
|
21140
21146
|
const shouldSkipFocus = useRef(false);
|
|
21141
21147
|
const handlePointerDown = () => {
|
|
21142
21148
|
try {
|
|
21143
21149
|
if (editorBridgeService.isVisible().visible === false) {
|
|
21150
|
+
if (editorActivationDisable) {
|
|
21151
|
+
contextService.setContextValue(FOCUSING_FX_BAR_EDITOR, true);
|
|
21152
|
+
editorService.focus(DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);
|
|
21153
|
+
return;
|
|
21154
|
+
}
|
|
21144
21155
|
if (!commandService.syncExecuteCommand(SetCellEditVisibleOperation.id, {
|
|
21145
21156
|
visible: true,
|
|
21146
21157
|
eventType: DeviceInputEventType.PointerDown,
|
|
@@ -23950,7 +23961,7 @@ const useHighlightRange = (ranges = []) => {
|
|
|
23950
23961
|
//#endregion
|
|
23951
23962
|
//#region package.json
|
|
23952
23963
|
var name = "@univerjs/sheets-ui";
|
|
23953
|
-
var version = "0.22.
|
|
23964
|
+
var version = "0.22.1-insiders.20260516-8900c44";
|
|
23954
23965
|
|
|
23955
23966
|
//#endregion
|
|
23956
23967
|
//#region src/services/cell-alert-manager.service.ts
|
|
@@ -26744,28 +26755,30 @@ var RangeProtectionRenderExtension = class extends SheetExtension {
|
|
|
26744
26755
|
getShadowStrategy() {
|
|
26745
26756
|
return this._shadowStrategy;
|
|
26746
26757
|
}
|
|
26747
|
-
draw(ctx, _parentScale, spreadsheetSkeleton) {
|
|
26758
|
+
draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges) {
|
|
26748
26759
|
const { worksheet } = spreadsheetSkeleton;
|
|
26749
26760
|
if (!worksheet) return;
|
|
26750
26761
|
ctx.save();
|
|
26751
26762
|
if (!this._pattern) this._pattern = ctx.createPattern(this._img, "repeat");
|
|
26752
26763
|
this.renderCache.clear();
|
|
26753
|
-
|
|
26754
|
-
|
|
26755
|
-
|
|
26756
|
-
|
|
26757
|
-
|
|
26758
|
-
|
|
26759
|
-
|
|
26760
|
-
|
|
26761
|
-
if (this.
|
|
26762
|
-
|
|
26763
|
-
|
|
26764
|
-
|
|
26765
|
-
|
|
26766
|
-
|
|
26767
|
-
|
|
26768
|
-
|
|
26764
|
+
((diffRanges === null || diffRanges === void 0 ? void 0 : diffRanges.length) ? diffRanges : [spreadsheetSkeleton.rowColumnSegment]).forEach((range) => {
|
|
26765
|
+
Range.foreach(range, (row, col) => {
|
|
26766
|
+
if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
|
|
26767
|
+
const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
|
|
26768
|
+
if (!this._pattern) return;
|
|
26769
|
+
ctx.fillStyle = this._pattern;
|
|
26770
|
+
selectionProtection.forEach((config) => {
|
|
26771
|
+
if (!config.ruleId) return;
|
|
26772
|
+
if (this.shouldRender(config)) {
|
|
26773
|
+
if (this.renderCache.has(config.ruleId)) return;
|
|
26774
|
+
this.renderCache.add(config.ruleId);
|
|
26775
|
+
config.ranges.forEach((range) => {
|
|
26776
|
+
const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
|
|
26777
|
+
const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
|
|
26778
|
+
ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
|
|
26779
|
+
});
|
|
26780
|
+
}
|
|
26781
|
+
});
|
|
26769
26782
|
});
|
|
26770
26783
|
});
|
|
26771
26784
|
ctx.restore();
|
|
@@ -28836,9 +28849,9 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
|
|
|
28836
28849
|
this._context = _context;
|
|
28837
28850
|
this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
|
|
28838
28851
|
this._renderManagerService = _renderManagerService;
|
|
28839
|
-
this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
28852
|
+
this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
|
|
28840
28853
|
this._updateSceneSize(param);
|
|
28841
|
-
});
|
|
28854
|
+
}));
|
|
28842
28855
|
}
|
|
28843
28856
|
_updateSceneSize(param) {
|
|
28844
28857
|
var _this$_renderManagerS;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { ICellDataForSheetInterceptor, IScale } from '@univerjs/core';
|
|
16
|
+
import type { ICellDataForSheetInterceptor, IRange, IScale } from '@univerjs/core';
|
|
17
17
|
import type { SpreadsheetSkeleton, UniverRenderingContext } from '@univerjs/engine-render';
|
|
18
18
|
import type { ICellPermission } from '@univerjs/sheets';
|
|
19
19
|
import { SheetExtension } from '@univerjs/engine-render';
|
|
@@ -41,7 +41,7 @@ export declare abstract class RangeProtectionRenderExtension extends SheetExtens
|
|
|
41
41
|
*/
|
|
42
42
|
getShadowStrategy(): 'always' | 'non-editable' | 'non-viewable' | 'none';
|
|
43
43
|
protected abstract shouldRender(config: ICellPermission): boolean;
|
|
44
|
-
draw(ctx: UniverRenderingContext, _parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
|
|
44
|
+
draw(ctx: UniverRenderingContext, _parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
|
|
45
45
|
}
|
|
46
46
|
export declare class RangeProtectionCanViewRenderExtension extends RangeProtectionRenderExtension {
|
|
47
47
|
uKey: string;
|