@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 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.0";
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
- _univerjs_core.Range.foreach(spreadsheetSkeleton.rowColumnSegment, (row, col) => {
26783
- if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
26784
- const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
26785
- if (!this._pattern) return;
26786
- ctx.fillStyle = this._pattern;
26787
- selectionProtection.forEach((config) => {
26788
- if (!config.ruleId) return;
26789
- if (this.shouldRender(config)) {
26790
- if (this.renderCache.has(config.ruleId)) return;
26791
- this.renderCache.add(config.ruleId);
26792
- config.ranges.forEach((range) => {
26793
- const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
26794
- const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
26795
- ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
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.0";
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
- Range.foreach(spreadsheetSkeleton.rowColumnSegment, (row, col) => {
26754
- if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
26755
- const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
26756
- if (!this._pattern) return;
26757
- ctx.fillStyle = this._pattern;
26758
- selectionProtection.forEach((config) => {
26759
- if (!config.ruleId) return;
26760
- if (this.shouldRender(config)) {
26761
- if (this.renderCache.has(config.ruleId)) return;
26762
- this.renderCache.add(config.ruleId);
26763
- config.ranges.forEach((range) => {
26764
- const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
26765
- const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
26766
- ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
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.0";
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
- Range.foreach(spreadsheetSkeleton.rowColumnSegment, (row, col) => {
26754
- if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
26755
- const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
26756
- if (!this._pattern) return;
26757
- ctx.fillStyle = this._pattern;
26758
- selectionProtection.forEach((config) => {
26759
- if (!config.ruleId) return;
26760
- if (this.shouldRender(config)) {
26761
- if (this.renderCache.has(config.ruleId)) return;
26762
- this.renderCache.add(config.ruleId);
26763
- config.ranges.forEach((range) => {
26764
- const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
26765
- const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
26766
- ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
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;