@univerjs/sheets-ui 0.22.1 → 0.23.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/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
@@ -23990,7 +23990,7 @@ const useHighlightRange = (ranges = []) => {
23990
23990
  //#endregion
23991
23991
  //#region package.json
23992
23992
  var name = "@univerjs/sheets-ui";
23993
- var version = "0.22.1";
23993
+ var version = "0.23.0";
23994
23994
 
23995
23995
  //#endregion
23996
23996
  //#region src/services/cell-alert-manager.service.ts
@@ -26784,28 +26784,30 @@ var RangeProtectionRenderExtension = class extends _univerjs_engine_render.Sheet
26784
26784
  getShadowStrategy() {
26785
26785
  return this._shadowStrategy;
26786
26786
  }
26787
- draw(ctx, _parentScale, spreadsheetSkeleton) {
26787
+ draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges) {
26788
26788
  const { worksheet } = spreadsheetSkeleton;
26789
26789
  if (!worksheet) return;
26790
26790
  ctx.save();
26791
26791
  if (!this._pattern) this._pattern = ctx.createPattern(this._img, "repeat");
26792
26792
  this.renderCache.clear();
26793
- _univerjs_core.Range.foreach(spreadsheetSkeleton.rowColumnSegment, (row, col) => {
26794
- if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
26795
- const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
26796
- if (!this._pattern) return;
26797
- ctx.fillStyle = this._pattern;
26798
- selectionProtection.forEach((config) => {
26799
- if (!config.ruleId) return;
26800
- if (this.shouldRender(config)) {
26801
- if (this.renderCache.has(config.ruleId)) return;
26802
- this.renderCache.add(config.ruleId);
26803
- config.ranges.forEach((range) => {
26804
- const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
26805
- const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
26806
- ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
26807
- });
26808
- }
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
+ });
26809
26811
  });
26810
26812
  });
26811
26813
  ctx.restore();
@@ -28876,9 +28878,9 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
28876
28878
  this._context = _context;
28877
28879
  this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
28878
28880
  this._renderManagerService = _renderManagerService;
28879
- this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
28881
+ this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
28880
28882
  this._updateSceneSize(param);
28881
- });
28883
+ }));
28882
28884
  }
28883
28885
  _updateSceneSize(param) {
28884
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
@@ -23961,7 +23961,7 @@ const useHighlightRange = (ranges = []) => {
23961
23961
  //#endregion
23962
23962
  //#region package.json
23963
23963
  var name = "@univerjs/sheets-ui";
23964
- var version = "0.22.1";
23964
+ var version = "0.23.0";
23965
23965
 
23966
23966
  //#endregion
23967
23967
  //#region src/services/cell-alert-manager.service.ts
@@ -26755,28 +26755,30 @@ var RangeProtectionRenderExtension = class extends SheetExtension {
26755
26755
  getShadowStrategy() {
26756
26756
  return this._shadowStrategy;
26757
26757
  }
26758
- draw(ctx, _parentScale, spreadsheetSkeleton) {
26758
+ draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges) {
26759
26759
  const { worksheet } = spreadsheetSkeleton;
26760
26760
  if (!worksheet) return;
26761
26761
  ctx.save();
26762
26762
  if (!this._pattern) this._pattern = ctx.createPattern(this._img, "repeat");
26763
26763
  this.renderCache.clear();
26764
- Range.foreach(spreadsheetSkeleton.rowColumnSegment, (row, col) => {
26765
- if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
26766
- const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
26767
- if (!this._pattern) return;
26768
- ctx.fillStyle = this._pattern;
26769
- selectionProtection.forEach((config) => {
26770
- if (!config.ruleId) return;
26771
- if (this.shouldRender(config)) {
26772
- if (this.renderCache.has(config.ruleId)) return;
26773
- this.renderCache.add(config.ruleId);
26774
- config.ranges.forEach((range) => {
26775
- const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
26776
- const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
26777
- ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
26778
- });
26779
- }
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
+ });
26780
26782
  });
26781
26783
  });
26782
26784
  ctx.restore();
@@ -28847,9 +28849,9 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
28847
28849
  this._context = _context;
28848
28850
  this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
28849
28851
  this._renderManagerService = _renderManagerService;
28850
- this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
28852
+ this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
28851
28853
  this._updateSceneSize(param);
28852
- });
28854
+ }));
28853
28855
  }
28854
28856
  _updateSceneSize(param) {
28855
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
@@ -23961,7 +23961,7 @@ const useHighlightRange = (ranges = []) => {
23961
23961
  //#endregion
23962
23962
  //#region package.json
23963
23963
  var name = "@univerjs/sheets-ui";
23964
- var version = "0.22.1";
23964
+ var version = "0.23.0";
23965
23965
 
23966
23966
  //#endregion
23967
23967
  //#region src/services/cell-alert-manager.service.ts
@@ -26755,28 +26755,30 @@ var RangeProtectionRenderExtension = class extends SheetExtension {
26755
26755
  getShadowStrategy() {
26756
26756
  return this._shadowStrategy;
26757
26757
  }
26758
- draw(ctx, _parentScale, spreadsheetSkeleton) {
26758
+ draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges) {
26759
26759
  const { worksheet } = spreadsheetSkeleton;
26760
26760
  if (!worksheet) return;
26761
26761
  ctx.save();
26762
26762
  if (!this._pattern) this._pattern = ctx.createPattern(this._img, "repeat");
26763
26763
  this.renderCache.clear();
26764
- Range.foreach(spreadsheetSkeleton.rowColumnSegment, (row, col) => {
26765
- if (!worksheet.getRowVisible(row) || !worksheet.getColVisible(col)) return;
26766
- const { selectionProtection = [] } = worksheet.getCell(row, col) || {};
26767
- if (!this._pattern) return;
26768
- ctx.fillStyle = this._pattern;
26769
- selectionProtection.forEach((config) => {
26770
- if (!config.ruleId) return;
26771
- if (this.shouldRender(config)) {
26772
- if (this.renderCache.has(config.ruleId)) return;
26773
- this.renderCache.add(config.ruleId);
26774
- config.ranges.forEach((range) => {
26775
- const start = spreadsheetSkeleton.getCellWithCoordByIndex(range.startRow, range.startColumn, false);
26776
- const end = spreadsheetSkeleton.getCellWithCoordByIndex(range.endRow, range.endColumn, false);
26777
- ctx.fillRect(start.startX, start.startY, end.endX - start.startX, end.endY - start.startY);
26778
- });
26779
- }
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
+ });
26780
26782
  });
26781
26783
  });
26782
26784
  ctx.restore();
@@ -28847,9 +28849,9 @@ let SheetSkeletonRenderController = class SheetSkeletonRenderController extends
28847
28849
  this._context = _context;
28848
28850
  this._sheetSkeletonManagerService = _sheetSkeletonManagerService;
28849
28851
  this._renderManagerService = _renderManagerService;
28850
- this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
28852
+ this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe((param) => {
28851
28853
  this._updateSceneSize(param);
28852
- });
28854
+ }));
28853
28855
  }
28854
28856
  _updateSceneSize(param) {
28855
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;