@univerjs/sheets-conditional-formatting-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 +15 -5
- package/lib/es/index.js +16 -6
- package/lib/index.js +16 -6
- package/lib/types/controllers/cf.viewport.controller.d.ts +2 -0
- package/lib/umd/index.js +1 -1
- package/package.json +13 -13
package/lib/cjs/index.js
CHANGED
|
@@ -3423,7 +3423,7 @@ function generateClearCfMutations(injector, allRules, ranges, unitId, subUnitId)
|
|
|
3423
3423
|
//#endregion
|
|
3424
3424
|
//#region package.json
|
|
3425
3425
|
var name = "@univerjs/sheets-conditional-formatting-ui";
|
|
3426
|
-
var version = "0.
|
|
3426
|
+
var version = "0.23.0";
|
|
3427
3427
|
|
|
3428
3428
|
//#endregion
|
|
3429
3429
|
//#region src/config/config.ts
|
|
@@ -4511,16 +4511,19 @@ let ConditionalFormattingViewportController = class ConditionalFormattingViewpor
|
|
|
4511
4511
|
this._conditionalFormattingViewModel = _conditionalFormattingViewModel;
|
|
4512
4512
|
this._univerInstanceService = _univerInstanceService;
|
|
4513
4513
|
this._renderManagerService = _renderManagerService;
|
|
4514
|
+
_defineProperty(this, "_unitDisposable", new _univerjs_core.DisposableCollection());
|
|
4514
4515
|
this._init();
|
|
4515
4516
|
}
|
|
4516
4517
|
_init() {
|
|
4517
4518
|
const unit = this._univerInstanceService.getCurrentUnitForType(_univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
4518
4519
|
const bindUnit = (unit) => {
|
|
4520
|
+
this._unitDisposable.dispose();
|
|
4521
|
+
this._unitDisposable = new _univerjs_core.DisposableCollection();
|
|
4519
4522
|
const unitId = unit.getUnitId();
|
|
4520
4523
|
const render = this._renderManagerService.getRenderById(unitId);
|
|
4521
4524
|
if (!render) return;
|
|
4522
4525
|
const sheetSkeletonManagerService = render.with(_univerjs_sheets_ui.SheetSkeletonManagerService);
|
|
4523
|
-
this.
|
|
4526
|
+
this._unitDisposable.add(sheetSkeletonManagerService.currentSkeleton$.subscribe((s) => {
|
|
4524
4527
|
if (s) {
|
|
4525
4528
|
const range = s.skeleton.rowColumnSegment;
|
|
4526
4529
|
const col = range.endColumn - range.startColumn + 1;
|
|
@@ -4531,10 +4534,17 @@ let ConditionalFormattingViewportController = class ConditionalFormattingViewpor
|
|
|
4531
4534
|
}));
|
|
4532
4535
|
};
|
|
4533
4536
|
if (unit) bindUnit(unit);
|
|
4534
|
-
this._univerInstanceService.getCurrentTypeOfUnit$(_univerjs_core.UniverInstanceType.UNIVER_SHEET).subscribe((unit) => {
|
|
4535
|
-
if (!unit)
|
|
4537
|
+
this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(_univerjs_core.UniverInstanceType.UNIVER_SHEET).subscribe((unit) => {
|
|
4538
|
+
if (!unit) {
|
|
4539
|
+
this._unitDisposable.dispose();
|
|
4540
|
+
return;
|
|
4541
|
+
}
|
|
4536
4542
|
bindUnit(unit);
|
|
4537
|
-
});
|
|
4543
|
+
}));
|
|
4544
|
+
}
|
|
4545
|
+
dispose() {
|
|
4546
|
+
this._unitDisposable.dispose();
|
|
4547
|
+
super.dispose();
|
|
4538
4548
|
}
|
|
4539
4549
|
};
|
|
4540
4550
|
ConditionalFormattingViewportController = __decorate([
|
package/lib/es/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BooleanNumber, ColorKit, CommandType, DependentOn, Disposable, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, InterceptorManager, LocaleService, ObjectMatrix, Plugin, Range, Rectangle, Tools, UniverInstanceType, createInterceptorKey, generateRandomId, get, merge, registerDependencies, set, toDisposable, touchDependencies } from "@univerjs/core";
|
|
1
|
+
import { BooleanNumber, ColorKit, CommandType, DependentOn, Disposable, DisposableCollection, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, InterceptorManager, LocaleService, ObjectMatrix, Plugin, Range, Rectangle, Tools, UniverInstanceType, createInterceptorKey, generateRandomId, get, merge, registerDependencies, set, toDisposable, touchDependencies } from "@univerjs/core";
|
|
2
2
|
import { AFTER_CELL_EDIT, AUTO_FILL_APPLY_TYPE, AutoFillTools, ClearSelectionAllCommand, ClearSelectionFormatCommand, IAutoFillService, INTERCEPTOR_POINT, RangeMergeUtil, RangeProtectionPermissionEditPoint, RemoveSheetMutation, SetSelectionsOperation, SetWorksheetActiveOperation, SheetInterceptorService, SheetPermissionCheckController, SheetsSelectionsService, WorkbookEditablePermission, WorksheetEditPermission, WorksheetSetCellStylePermission, checkRangesEditablePermission, createTopMatrixFromMatrix, findAllRectangle, getSheetCommandTarget, rangeToDiscreteRange, setEndForRange } from "@univerjs/sheets";
|
|
3
3
|
import { AddCfCommand, AddConditionalRuleMutation, AddConditionalRuleMutationUndoFactory, CFNumberOperator, CFRuleType, CFSubRuleType, CFTextOperator, CFTimePeriodOperator, CFValueType, CONDITIONAL_FORMATTING_VIEWPORT_CACHE_LENGTH, ClearRangeCfCommand, ClearWorksheetCfCommand, ConditionalFormattingRuleModel, ConditionalFormattingService, ConditionalFormattingViewModel, DEFAULT_BG_COLOR, DEFAULT_FONT_COLOR, DEFAULT_PADDING, DEFAULT_WIDTH, DeleteCfCommand, DeleteConditionalRuleMutation, DeleteConditionalRuleMutationUndoFactory, IIconSetType, MoveCfCommand, MoveConditionalRuleMutation, SHEET_CONDITIONAL_FORMATTING_PLUGIN, SetCfCommand, SetConditionalRuleMutation, UniverSheetsConditionalFormattingPlugin, compareWithNumber, createCfId, createDefaultRule, createDefaultValue, createDefaultValueByValueType, defaultDataBarNativeColor, defaultDataBarPositiveColor, getColorScaleFromValue, getOppositeOperator, iconGroup, iconMap, removeUndefinedAttr, setConditionalRuleMutationUndoFactory } from "@univerjs/sheets-conditional-formatting";
|
|
4
4
|
import { ComponentManager, ILayoutService, IMenuManagerService, ISidebarService, MenuItemType, RibbonDataGroup, getMenuHiddenObservable, useDependency, useObservable, useScrollYOverContainer, useSidebarClick } from "@univerjs/ui";
|
|
@@ -3422,7 +3422,7 @@ function generateClearCfMutations(injector, allRules, ranges, unitId, subUnitId)
|
|
|
3422
3422
|
//#endregion
|
|
3423
3423
|
//#region package.json
|
|
3424
3424
|
var name = "@univerjs/sheets-conditional-formatting-ui";
|
|
3425
|
-
var version = "0.
|
|
3425
|
+
var version = "0.23.0";
|
|
3426
3426
|
|
|
3427
3427
|
//#endregion
|
|
3428
3428
|
//#region src/config/config.ts
|
|
@@ -4510,16 +4510,19 @@ let ConditionalFormattingViewportController = class ConditionalFormattingViewpor
|
|
|
4510
4510
|
this._conditionalFormattingViewModel = _conditionalFormattingViewModel;
|
|
4511
4511
|
this._univerInstanceService = _univerInstanceService;
|
|
4512
4512
|
this._renderManagerService = _renderManagerService;
|
|
4513
|
+
_defineProperty(this, "_unitDisposable", new DisposableCollection());
|
|
4513
4514
|
this._init();
|
|
4514
4515
|
}
|
|
4515
4516
|
_init() {
|
|
4516
4517
|
const unit = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET);
|
|
4517
4518
|
const bindUnit = (unit) => {
|
|
4519
|
+
this._unitDisposable.dispose();
|
|
4520
|
+
this._unitDisposable = new DisposableCollection();
|
|
4518
4521
|
const unitId = unit.getUnitId();
|
|
4519
4522
|
const render = this._renderManagerService.getRenderById(unitId);
|
|
4520
4523
|
if (!render) return;
|
|
4521
4524
|
const sheetSkeletonManagerService = render.with(SheetSkeletonManagerService);
|
|
4522
|
-
this.
|
|
4525
|
+
this._unitDisposable.add(sheetSkeletonManagerService.currentSkeleton$.subscribe((s) => {
|
|
4523
4526
|
if (s) {
|
|
4524
4527
|
const range = s.skeleton.rowColumnSegment;
|
|
4525
4528
|
const col = range.endColumn - range.startColumn + 1;
|
|
@@ -4530,10 +4533,17 @@ let ConditionalFormattingViewportController = class ConditionalFormattingViewpor
|
|
|
4530
4533
|
}));
|
|
4531
4534
|
};
|
|
4532
4535
|
if (unit) bindUnit(unit);
|
|
4533
|
-
this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).subscribe((unit) => {
|
|
4534
|
-
if (!unit)
|
|
4536
|
+
this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).subscribe((unit) => {
|
|
4537
|
+
if (!unit) {
|
|
4538
|
+
this._unitDisposable.dispose();
|
|
4539
|
+
return;
|
|
4540
|
+
}
|
|
4535
4541
|
bindUnit(unit);
|
|
4536
|
-
});
|
|
4542
|
+
}));
|
|
4543
|
+
}
|
|
4544
|
+
dispose() {
|
|
4545
|
+
this._unitDisposable.dispose();
|
|
4546
|
+
super.dispose();
|
|
4537
4547
|
}
|
|
4538
4548
|
};
|
|
4539
4549
|
ConditionalFormattingViewportController = __decorate([
|
package/lib/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BooleanNumber, ColorKit, CommandType, DependentOn, Disposable, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, InterceptorManager, LocaleService, ObjectMatrix, Plugin, Range, Rectangle, Tools, UniverInstanceType, createInterceptorKey, generateRandomId, get, merge, registerDependencies, set, toDisposable, touchDependencies } from "@univerjs/core";
|
|
1
|
+
import { BooleanNumber, ColorKit, CommandType, DependentOn, Disposable, DisposableCollection, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, InterceptorManager, LocaleService, ObjectMatrix, Plugin, Range, Rectangle, Tools, UniverInstanceType, createInterceptorKey, generateRandomId, get, merge, registerDependencies, set, toDisposable, touchDependencies } from "@univerjs/core";
|
|
2
2
|
import { AFTER_CELL_EDIT, AUTO_FILL_APPLY_TYPE, AutoFillTools, ClearSelectionAllCommand, ClearSelectionFormatCommand, IAutoFillService, INTERCEPTOR_POINT, RangeMergeUtil, RangeProtectionPermissionEditPoint, RemoveSheetMutation, SetSelectionsOperation, SetWorksheetActiveOperation, SheetInterceptorService, SheetPermissionCheckController, SheetsSelectionsService, WorkbookEditablePermission, WorksheetEditPermission, WorksheetSetCellStylePermission, checkRangesEditablePermission, createTopMatrixFromMatrix, findAllRectangle, getSheetCommandTarget, rangeToDiscreteRange, setEndForRange } from "@univerjs/sheets";
|
|
3
3
|
import { AddCfCommand, AddConditionalRuleMutation, AddConditionalRuleMutationUndoFactory, CFNumberOperator, CFRuleType, CFSubRuleType, CFTextOperator, CFTimePeriodOperator, CFValueType, CONDITIONAL_FORMATTING_VIEWPORT_CACHE_LENGTH, ClearRangeCfCommand, ClearWorksheetCfCommand, ConditionalFormattingRuleModel, ConditionalFormattingService, ConditionalFormattingViewModel, DEFAULT_BG_COLOR, DEFAULT_FONT_COLOR, DEFAULT_PADDING, DEFAULT_WIDTH, DeleteCfCommand, DeleteConditionalRuleMutation, DeleteConditionalRuleMutationUndoFactory, IIconSetType, MoveCfCommand, MoveConditionalRuleMutation, SHEET_CONDITIONAL_FORMATTING_PLUGIN, SetCfCommand, SetConditionalRuleMutation, UniverSheetsConditionalFormattingPlugin, compareWithNumber, createCfId, createDefaultRule, createDefaultValue, createDefaultValueByValueType, defaultDataBarNativeColor, defaultDataBarPositiveColor, getColorScaleFromValue, getOppositeOperator, iconGroup, iconMap, removeUndefinedAttr, setConditionalRuleMutationUndoFactory } from "@univerjs/sheets-conditional-formatting";
|
|
4
4
|
import { ComponentManager, ILayoutService, IMenuManagerService, ISidebarService, MenuItemType, RibbonDataGroup, getMenuHiddenObservable, useDependency, useObservable, useScrollYOverContainer, useSidebarClick } from "@univerjs/ui";
|
|
@@ -3422,7 +3422,7 @@ function generateClearCfMutations(injector, allRules, ranges, unitId, subUnitId)
|
|
|
3422
3422
|
//#endregion
|
|
3423
3423
|
//#region package.json
|
|
3424
3424
|
var name = "@univerjs/sheets-conditional-formatting-ui";
|
|
3425
|
-
var version = "0.
|
|
3425
|
+
var version = "0.23.0";
|
|
3426
3426
|
|
|
3427
3427
|
//#endregion
|
|
3428
3428
|
//#region src/config/config.ts
|
|
@@ -4510,16 +4510,19 @@ let ConditionalFormattingViewportController = class ConditionalFormattingViewpor
|
|
|
4510
4510
|
this._conditionalFormattingViewModel = _conditionalFormattingViewModel;
|
|
4511
4511
|
this._univerInstanceService = _univerInstanceService;
|
|
4512
4512
|
this._renderManagerService = _renderManagerService;
|
|
4513
|
+
_defineProperty(this, "_unitDisposable", new DisposableCollection());
|
|
4513
4514
|
this._init();
|
|
4514
4515
|
}
|
|
4515
4516
|
_init() {
|
|
4516
4517
|
const unit = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET);
|
|
4517
4518
|
const bindUnit = (unit) => {
|
|
4519
|
+
this._unitDisposable.dispose();
|
|
4520
|
+
this._unitDisposable = new DisposableCollection();
|
|
4518
4521
|
const unitId = unit.getUnitId();
|
|
4519
4522
|
const render = this._renderManagerService.getRenderById(unitId);
|
|
4520
4523
|
if (!render) return;
|
|
4521
4524
|
const sheetSkeletonManagerService = render.with(SheetSkeletonManagerService);
|
|
4522
|
-
this.
|
|
4525
|
+
this._unitDisposable.add(sheetSkeletonManagerService.currentSkeleton$.subscribe((s) => {
|
|
4523
4526
|
if (s) {
|
|
4524
4527
|
const range = s.skeleton.rowColumnSegment;
|
|
4525
4528
|
const col = range.endColumn - range.startColumn + 1;
|
|
@@ -4530,10 +4533,17 @@ let ConditionalFormattingViewportController = class ConditionalFormattingViewpor
|
|
|
4530
4533
|
}));
|
|
4531
4534
|
};
|
|
4532
4535
|
if (unit) bindUnit(unit);
|
|
4533
|
-
this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).subscribe((unit) => {
|
|
4534
|
-
if (!unit)
|
|
4536
|
+
this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).subscribe((unit) => {
|
|
4537
|
+
if (!unit) {
|
|
4538
|
+
this._unitDisposable.dispose();
|
|
4539
|
+
return;
|
|
4540
|
+
}
|
|
4535
4541
|
bindUnit(unit);
|
|
4536
|
-
});
|
|
4542
|
+
}));
|
|
4543
|
+
}
|
|
4544
|
+
dispose() {
|
|
4545
|
+
this._unitDisposable.dispose();
|
|
4546
|
+
super.dispose();
|
|
4537
4547
|
}
|
|
4538
4548
|
};
|
|
4539
4549
|
ConditionalFormattingViewportController = __decorate([
|
|
@@ -20,6 +20,8 @@ export declare class ConditionalFormattingViewportController extends Disposable
|
|
|
20
20
|
private _conditionalFormattingViewModel;
|
|
21
21
|
private _univerInstanceService;
|
|
22
22
|
private _renderManagerService;
|
|
23
|
+
private _unitDisposable;
|
|
23
24
|
constructor(_conditionalFormattingViewModel: ConditionalFormattingViewModel, _univerInstanceService: IUniverInstanceService, _renderManagerService: IRenderManagerService);
|
|
24
25
|
private _init;
|
|
26
|
+
dispose(): void;
|
|
25
27
|
}
|
package/lib/umd/index.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
`,children:[(0,l.jsx)(`div`,{className:`univer-flex univer-items-center univer-gap-2`,children:v.tWithReactNode(`sheet.cf.panel.managerRuleSelect`,(0,l.jsx)(o.Select,{className:`univer-w-36`,options:j,value:T,onChange:e=>{E(e)}})).map((e,t)=>(0,l.jsx)(`span`,{children:e},t))}),(0,l.jsxs)(`div`,{className:`univer-flex univer-justify-end univer-space-x-2`,children:[(0,l.jsx)(o.Tooltip,{title:g.t(`sheet.cf.panel.createRule`),placement:`bottom`,children:(0,l.jsx)(`a`,{className:`univer-size-5 univer-cursor-pointer`,onClick:ae,children:(0,l.jsx)(P,{})})}),F.length&&se?(0,l.jsx)(o.Tooltip,{title:g.t(`sheet.cf.panel.clear`),placement:`bottom`,children:(0,l.jsx)(`a`,{className:`univer-size-5 univer-cursor-pointer`,onClick:oe,children:(0,l.jsx)(M,{className:`univer-text-red-500`})})}):(0,l.jsx)(`div`,{children:(0,l.jsx)(M,{className:`univer-text-gray-300`})})]})]}),(0,l.jsx)(`div`,{children:(0,l.jsx)(o.DraggableList,{className:`univer-w-full`,draggableHandle:`.draggableHandle`,list:I,onListChange:()=>void 0,idKey:`cfId`,rowHeight:60,margin:[0,10],onDragStop:re,onDragStart:ne,itemRender:e=>(0,l.jsxs)(`div`,{className:(0,o.clsx)(`univer-group univer-relative univer-flex univer-items-center univer-justify-between univer-rounded univer-py-2 univer-pl-5 univer-pr-8 hover:univer-bg-gray-100 dark:hover:!univer-bg-gray-700`,{"univer-bg-gray-100 dark:!univer-bg-gray-700":k===e.cfId}),onMouseMove:()=>{e.ranges!==C&&w(e.ranges)},onMouseLeave:()=>w([]),onClick:()=>{c(e)},children:[(0,l.jsx)(`div`,{className:(0,o.clsx)(`univer-absolute univer-left-0 univer-hidden univer-size-5 univer-cursor-grab univer-items-center univer-justify-center univer-rounded group-hover:univer-flex`,`draggableHandle`),onClick:e=>e.stopPropagation(),children:(0,l.jsx)(ie,{})}),(0,l.jsxs)(`div`,{className:`univer-min-w-0 univer-max-w-full univer-flex-shrink univer-overflow-hidden`,children:[(0,l.jsx)(`div`,{className:`univer-text-sm univer-text-gray-900 dark:!univer-text-white`,children:Be(e,g)}),(0,l.jsx)(`div`,{className:`
|
|
4
4
|
univer-max-w-[250px] univer-overflow-hidden univer-text-ellipsis univer-text-xs
|
|
5
5
|
univer-text-gray-400
|
|
6
|
-
`,children:e.ranges.map(e=>(0,s.serializeRange)(e)).join(`,`)})]}),(0,l.jsx)(`div`,{children:(0,l.jsx)(z,{rule:e.rule})}),(0,l.jsx)(`div`,{className:(0,o.clsx)(`univer-absolute univer-right-1 univer-hidden univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded univer-text-red-500 group-hover:univer-flex hover:univer-bg-gray-200`,{"univer-flex univer-items-center univer-justify-center":k===e.cfId}),onClick:t=>{t.stopPropagation(),te(e),w([])},children:(0,l.jsx)(M,{})})]})})})]})},He=e=>{let[t,n]=(0,a.useState)(e.rule),[r,i]=(0,a.useState)(!!e.rule);return(0,l.jsx)(`div`,{className:`univer-flex univer-h-full univer-flex-col univer-justify-between univer-py-4`,children:r?(0,l.jsx)(Le,{onCancel:()=>{i(!1),n(void 0)},rule:t}):(0,l.jsx)(Ve,{onClick:e=>{n(e),i(!0)},onCreate:()=>{i(!0)}})})},Ue=`sheet.conditional.formatting.panel`,Y=class extends t.Disposable{constructor(e,n,r,i,a){super(),this._univerInstanceService=e,this._injector=n,this._componentManager=r,this._sidebarService=i,this._localeService=a,G(this,`_sidebarDisposable`,null),this._initPanel(),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{var t;e||(t=this._sidebarDisposable)==null||t.dispose()})),this.disposeWithMe(this._sidebarService.sidebarOptions$.subscribe(e=>{e.id===Ue&&(e.visible||setTimeout(()=>{this._sidebarService.sidebarOptions$.next({visible:!1})}))}))}openPanel(e){let n={id:Ue,header:{title:this._localeService.t(`sheet.cf.title`)},children:{label:Ue,rule:e,key:(0,t.generateRandomId)(4)},onClose:()=>this._sidebarDisposable=null};this._sidebarDisposable=this._sidebarService.open(n)}_initPanel(){this.disposeWithMe(this._componentManager.register(Ue,He))}};Y=q([K(0,t.IUniverInstanceService),K(1,(0,t.Inject)(t.Injector)),K(2,(0,t.Inject)(i.ComponentManager)),K(3,(0,t.Inject)(i.ISidebarService)),K(4,(0,t.Inject)(t.LocaleService))],Y);let X={id:`sheet.operation.open.conditional.formatting.panel`,type:t.CommandType.OPERATION,handler:(e,i)=>{var a;let o=e.get(Y),s=e.get(n.SheetsSelectionsService),c=e.get(t.ICommandService),l=((a=s.getCurrentSelections())==null?void 0:a.map(e=>e.range))||[];switch(i.value){case 3:o.openPanel({...(0,r.createDefaultRule)(),ranges:l});break;case 4:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.highlightCell,subType:r.CFSubRuleType.rank}};o.openPanel(e);break}case 5:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.highlightCell,subType:r.CFSubRuleType.formula,value:`=`}};o.openPanel(e);break}case 6:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.colorScale,config:[]}};o.openPanel(e);break}case 7:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.dataBar,isShowValue:!0}};o.openPanel(e);break}case 8:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.iconSet,config:[],isShowValue:!0}};o.openPanel(e);break}case 2:o.openPanel();break;case 1:o.openPanel({...(0,r.createDefaultRule)(),ranges:l});break;case 9:c.executeCommand(r.ClearRangeCfCommand.id,{ranges:l});break;case 10:c.executeCommand(r.ClearWorksheetCfCommand.id);break}return!0}},Z=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._injector=e,this._univerInstanceService=t,this._sheetInterceptorService=n,this._selectionManagerService=r,this._conditionalFormattingRuleModel=i,this._init()}_init(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{let r=[],i=[],a={redos:r,undos:i};if([n.ClearSelectionFormatCommand.id,n.ClearSelectionAllCommand.id].includes(e.id)){var o;let e=(o=this._selectionManagerService.getCurrentSelections())==null?void 0:o.map(e=>e.range);if(!e)return a;let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),s=n.getActiveSheet();if(!s)return a;let c=n.getUnitId(),l=s.getSheetId(),u=this._conditionalFormattingRuleModel.getSubunitRules(c,l);if(!u||!u.length)return a;let{redos:d,undos:f}=We(this._injector,u,e,c,l);r.push(...d),i.push(...f)}return a}})),this.disposeWithMe(this._sheetInterceptorService.interceptRanges({getMutations:({unitId:e,subUnitId:t,ranges:n})=>{let r=[],i=[],a={redos:r,undos:i};if(!n||!n.length)return a;let o=this._conditionalFormattingRuleModel.getSubunitRules(e,t);if(!o||!o.length)return a;let{redos:s,undos:c}=We(this._injector,o,n,e,t);return r.push(...s),i.push(...c),a}}))}};Z=q([K(0,(0,t.Inject)(t.Injector)),K(1,(0,t.Inject)(t.IUniverInstanceService)),K(2,(0,t.Inject)(n.SheetInterceptorService)),K(3,(0,t.Inject)(n.SheetsSelectionsService)),K(4,(0,t.Inject)(r.ConditionalFormattingRuleModel))],Z);function We(e,i,a,o,s){let c=[],l=[];return i.filter(e=>a.some(n=>e.ranges.some(e=>t.Rectangle.getIntersects(e,n)))).forEach(t=>{let i=new n.RangeMergeUtil().add(...t.ranges).subtract(...a).merge();if(i.length){let n={id:r.SetConditionalRuleMutation.id,params:{unitId:o,subUnitId:s,rule:{...t,ranges:i}}},a=(0,r.setConditionalRuleMutationUndoFactory)(e,n.params);c.push(n),l.push(...a)}else{let n={id:r.DeleteConditionalRuleMutation.id,params:{unitId:o,subUnitId:s,cfId:t.cfId}},i=(0,r.DeleteConditionalRuleMutationUndoFactory)(e,n.params);c.push(n),l.push(...i)}}),{redos:c,undos:l}}var Ge=`@univerjs/sheets-conditional-formatting-ui`,Ke=`0.22.1`;let qe=`sheets-conditional-formatting-ui.config`;Symbol(qe);let Je={},Ye=class extends t.Disposable{constructor(e,t,n){super(),this._conditionalFormattingRuleModel=e,this._formulaRefRangeService=t,this._injector=n,G(this,`_disposableMap`,new Map),this._initRefRange()}_getIdWithUnitId(e,t,n){return`${e}_${t}_${n}`}_getRuleFormulas(e){let t=[],n=e.rule;switch(n.type){case r.CFRuleType.highlightCell:n.subType===r.CFSubRuleType.formula&&t.push(n.value);break;case r.CFRuleType.dataBar:{let e=n;e.config.min.type===r.CFValueType.formula&&t.push(e.config.min.value),e.config.max.type===r.CFValueType.formula&&t.push(e.config.max.value);break}case r.CFRuleType.colorScale:n.config.forEach(e=>{e.value.type===r.CFValueType.formula&&t.push(e.value.value)});break;case r.CFRuleType.iconSet:n.config.forEach(e=>{e.value.type===r.CFValueType.formula&&t.push(e.value.value)});break}return t}_updateRuleFormulas(e,n){let i=t.Tools.deepClone(e),a=i.rule,o=0;switch(a.type){case r.CFRuleType.highlightCell:a.subType===r.CFSubRuleType.formula&&(a.value=n[o++]);break;case r.CFRuleType.dataBar:{let e=a;e.config.min.type===r.CFValueType.formula&&(e.config.min.value=n[o++]),e.config.max.type===r.CFValueType.formula&&(e.config.max.value=n[o++]);break}case r.CFRuleType.colorScale:a.config.forEach(e=>{e.value.type===r.CFValueType.formula&&(e.value.value=n[o++])});break;case r.CFRuleType.iconSet:a.config.forEach(e=>{e.value.type===r.CFValueType.formula&&(e.value.value=n[o++])});break}return i}register(e,t,n){let i=n.ranges,a=this._getRuleFormulas(n),o=this._formulaRefRangeService.registerRangeFormula(e,t,i,a,i=>{if(i.length===0)return{undos:[{id:r.AddConditionalRuleMutation.id,params:{unitId:e,subUnitId:t,rule:n}}],redos:[{id:r.DeleteConditionalRuleMutation.id,params:{unitId:e,subUnitId:t,cfId:n.cfId}}]};let a=[],o=[],s=i[0],c=this._updateRuleFormulas(n,s.formulas);c.ranges=s.ranges,a.push({id:r.SetConditionalRuleMutation.id,params:{unitId:e,subUnitId:t,cfId:n.cfId,rule:c}}),o.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,{unitId:e,subUnitId:t,cfId:n.cfId,rule:c}));for(let s=1;s<i.length;s++){let c=i[s],l=(0,r.createCfId)(),u=this._updateRuleFormulas(n,c.formulas);u.cfId=l,u.ranges=c.ranges,a.push({id:r.AddConditionalRuleMutation.id,params:{unitId:e,subUnitId:t,rule:u}}),o.push((0,r.AddConditionalRuleMutationUndoFactory)(this._injector,{unitId:e,subUnitId:t,rule:u}))}return{undos:o,redos:a}}),s=this._getIdWithUnitId(e,t,n.cfId);this._disposableMap.set(s,o)}_initRefRange(){let e=this._conditionalFormattingRuleModel.getAll();for(let[t,n]of e)for(let[e,r]of n)for(let n of r)this.register(t,e,n);this.disposeWithMe(this._conditionalFormattingRuleModel.$ruleChange.subscribe(e=>{let{unitId:t,subUnitId:n,rule:r}=e;switch(e.type){case`add`:this.register(t,n,r);break;case`delete`:{let e=this._getIdWithUnitId(t,n,r.cfId),i=this._disposableMap.get(e);i&&(i.dispose(),this._disposableMap.delete(e));break}case`set`:{let e=this._getIdWithUnitId(t,n,r.cfId),i=this._disposableMap.get(e);i&&(i.dispose(),this._disposableMap.delete(e)),this.register(t,n,r);break}}})),this.disposeWithMe((0,t.toDisposable)(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};Ye=q([K(0,(0,t.Inject)(r.ConditionalFormattingRuleModel)),K(1,(0,t.Inject)(f.FormulaRefRangeService)),K(2,(0,t.Inject)(t.Injector))],Ye);let Xe=[u.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,u.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE,u.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_BESIDES_BORDER],Ze=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._conditionalFormattingRuleModel=t,this._injector=n,this._conditionalFormattingViewModel=r,this._univerInstanceService=i,G(this,`_copyInfo`,void 0),this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:r.SHEET_CONDITIONAL_FORMATTING_PLUGIN,onBeforeCopy:(e,t,n)=>this._collectConditionalRule(e,t,n),onPasteCells:(e,t,n,r)=>!e||!this._copyInfo||!Xe.includes(r.pasteType)?{redos:[],undos:[]}:this._generateConditionalFormattingMutations(e,t,r)}))}_collectConditionalRule(e,r,i){let a=new t.ObjectMatrix,o={};this._copyInfo={matrix:a,info:{unitId:e,subUnitId:r,cfMap:o}};let s=this._injector.invoke(t=>(0,n.rangeToDiscreteRange)(i,t,e,r));if(!s)return;let{rows:c,cols:l}=s,u=new Set;c.forEach((t,n)=>{l.forEach((i,o)=>{let s=this._conditionalFormattingViewModel.getCellCfs(e,r,t,i);s&&(s.forEach(e=>u.add(e.cfId)),a.setValue(n,o,s.map(e=>e.cfId)))})}),u.forEach(t=>{let n=this._conditionalFormattingRuleModel.getRule(e,r,t);n&&(o[t]=n.rule)})}_generateConditionalFormattingMutations(e,i,a){let{unitId:o,subUnitId:s,range:c}=e,{unitId:l,subUnitId:d,range:f}=i,{copyType:p=u.COPY_TYPE.COPY}=a;if(!(0,n.getSheetCommandTarget)(this._univerInstanceService,{unitId:l,subUnitId:d}))return{redos:[],undos:[]};if(p===u.COPY_TYPE.CUT&&l===o&&d===s)return this._copyInfo=null,{redos:[],undos:[]};let{ranges:[m,h],mapFunc:g}=(0,u.virtualizeDiscreteRanges)([c,f]),_=(0,u.getRepeatRange)(m,h,!0),v={};t.Range.foreach(h,(e,n)=>{let{row:r,col:i}=g(e,n),a=this._conditionalFormattingViewModel.getCellCfs(l,d,r,i);a&&a.forEach(e=>{if(!v[e.cfId]){let n=new t.ObjectMatrix;v[e.cfId]={unitId:l,subUnitId:d,ruleMatrix:n};let r=this._conditionalFormattingRuleModel.getRule(l,d,e.cfId);r==null||r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})})}v[e.cfId].ruleMatrix.realDeleteValue(r,i)})}),p===u.COPY_TYPE.CUT&&(l!==o||d!==s)&&t.Range.foreach(m,(e,n)=>{let{row:r,col:i}=g(e,n),a=this._conditionalFormattingViewModel.getCellCfs(o,s,r,i);a&&a.forEach(e=>{if(!v[e.cfId]){let n=new t.ObjectMatrix;v[e.cfId]={unitId:o,subUnitId:s,ruleMatrix:n};let r=this._conditionalFormattingRuleModel.getRule(o,s,e.cfId);r==null||r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})})}v[e.cfId].ruleMatrix.realDeleteValue(r,i)})});let{matrix:y,info:b}=this._copyInfo,x=[],S={},C=e=>{let n=b==null?void 0:b.cfMap[e],r=[...this._conditionalFormattingRuleModel.getSubunitRules(l,d)||[],...x].find(e=>t.Tools.diffValue(e.rule,n));if(r)return S[e]=r,r;{let t={rule:n,cfId:this._conditionalFormattingRuleModel.createCfId(l,d),ranges:[],stopIfTrue:!1};return S[e]=t,x.push(t),t}};_.forEach(e=>{y&&y.forValue((n,r,i)=>{let a=t.Rectangle.getPositionRange({startRow:n,endRow:n,startColumn:r,endColumn:r},e.startRange),{row:o,col:s}=g(a.startRow,a.startColumn);i.forEach(e=>{let n=S[e]||C(e);if(!v[n.cfId]){let e=new t.ObjectMatrix;v[n.cfId]={unitId:l,subUnitId:d,ruleMatrix:e},n.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{e.setValue(t,n,1)})})}v[n.cfId].ruleMatrix.setValue(o,s,1)})})});let w=[],T=[];for(let e in v){let{unitId:t,subUnitId:i,ruleMatrix:a}=v[e],o=(0,n.findAllRectangle)((0,n.createTopMatrixFromMatrix)(a));if(!o.length){let n={unitId:t,subUnitId:i,cfId:e};w.push({id:r.DeleteConditionalRuleMutation.id,params:n}),T.push(...(0,r.DeleteConditionalRuleMutationUndoFactory)(this._injector,n))}if(x.some(t=>t.cfId===e)){let t={unitId:l,subUnitId:d,rule:{...x.find(t=>t.cfId===e),ranges:o}};w.push({id:r.AddConditionalRuleMutation.id,params:t}),T.push((0,r.AddConditionalRuleMutationUndoFactory)(this._injector,t))}else{let n=this._conditionalFormattingRuleModel.getRule(t,i,e);if(!n)continue;let a={unitId:t,subUnitId:i,rule:{...n,ranges:o}};w.push({id:r.SetConditionalRuleMutation.id,params:a}),T.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,a))}}return{redos:w,undos:T}}};Ze=q([K(0,(0,t.Inject)(u.ISheetClipboardService)),K(1,(0,t.Inject)(r.ConditionalFormattingRuleModel)),K(2,(0,t.Inject)(t.Injector)),K(3,(0,t.Inject)(r.ConditionalFormattingViewModel)),K(4,(0,t.Inject)(t.IUniverInstanceService))],Ze);let Qe=class extends t.Disposable{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===r.AddCfCommand.id){let{unitId:t,subUnitId:r,rule:{ranges:i}}=e.params;this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[n.WorkbookEditablePermission],rangeTypes:[n.RangeProtectionPermissionEditPoint],worksheetTypes:[n.WorksheetEditPermission,n.WorksheetSetCellStylePermission]},i,t,r)||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.setStyleErr`))}}))}};Qe=q([K(0,(0,t.Inject)(t.LocaleService)),K(1,t.ICommandService),K(2,(0,t.Inject)(n.SheetPermissionCheckController))],Qe);let $e=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._conditionalFormattingService=t,this._univerInstanceService=n,this._renderManagerService=r,this._conditionalFormattingViewModel=i,this._conditionalFormattingRuleModel=a,G(this,`_ruleChangeCacheMap`,new Map),this._initViewModelInterceptor(),this._initSkeleton(),this.disposeWithMe(()=>{this._ruleChangeCacheMap.clear()})}_markDirtySkeleton(){var e,n;let r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getUnitId();(e=this._renderManagerService.getRenderById(r))==null||e.with(u.SheetSkeletonManagerService).reCalculate(),(n=this._renderManagerService.getRenderById(r))==null||(n=n.mainComponent)==null||n.makeDirty()}_initSkeleton(){this.disposeWithMe((0,d.merge)(this._conditionalFormattingRuleModel.$ruleChange,this._conditionalFormattingViewModel.markDirty$).pipe((0,m.bufferTime)(16),(0,m.filter)(e=>!!e.length),(0,m.filter)(e=>{let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!n)return!1;let r=n.getActiveSheet();return r?e.filter(e=>e.unitId===n.getUnitId()&&e.subUnitId===r.getSheetId()).length>0:!1})).subscribe(()=>this._markDirtySkeleton()))}_initViewModelInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let i=this._conditionalFormattingService.composeStyle(t.unitId,t.subUnitId,t.row,t.col);if(!i)return n(e);let a=t.workbook.getStyles(),o=(typeof(e==null?void 0:e.s)==`string`?a.get(e==null?void 0:e.s):e==null?void 0:e.s)||{},s=e===t.rawData?{...t.rawData}:e;if(i.style){let e={...o,...i.style};Object.assign(s,{s:e})}return s.fontRenderExtension||(s.fontRenderExtension={},i.isShowValue!==void 0&&(s.fontRenderExtension.isSkip=!i.isShowValue)),i.dataBar&&(s.dataBar=i.dataBar),i.iconSet&&(s.iconSet=i.iconSet,s.fontRenderExtension.leftOffset=r.DEFAULT_PADDING+r.DEFAULT_WIDTH),n(s)},priority:10}))}};$e=q([K(0,(0,t.Inject)(n.SheetInterceptorService)),K(1,(0,t.Inject)(r.ConditionalFormattingService)),K(2,(0,t.Inject)(t.IUniverInstanceService)),K(3,(0,t.Inject)(p.IRenderManagerService)),K(4,(0,t.Inject)(r.ConditionalFormattingViewModel)),K(5,(0,t.Inject)(r.ConditionalFormattingRuleModel))],$e);let Q=class extends t.Plugin{constructor(e=Je,n,r,i){super(),this._config=e,this._injector=n,this._commandService=r,this._configService=i;let{menu:a,...o}=(0,t.merge)({},Je,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(qe,o),this._initCommand(),this._injector.add([$e]),this._injector.add([Ze]),this._injector.add([Qe]),this._injector.add([J]),this._injector.add([Ye])}_initCommand(){[h,g,_,v,y,b,x,S,C,X].forEach(e=>{this._commandService.registerCommand(e)})}};G(Q,`pluginName`,`${r.SHEET_CONDITIONAL_FORMATTING_PLUGIN}_MOBILE_UI_PLUGIN`),G(Q,`packageName`,Ge),G(Q,`version`,Ke),G(Q,`type`,t.UniverInstanceType.UNIVER_SHEET),Q=q([(0,t.DependentOn)(r.UniverSheetsConditionalFormattingPlugin),K(1,(0,t.Inject)(t.Injector)),K(2,(0,t.Inject)(t.ICommandService)),K(3,t.IConfigService)],Q);let et=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._injector=e,this._univerInstanceService=t,this._autoFillService=n,this._conditionalFormattingRuleModel=r,this._conditionalFormattingViewModel=i,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),i=(e,n,r,i,a)=>{var o;let s=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getUnitId(),c=(o=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:o.getSheetId();if(!s||!c)return;let l={startRow:e.row,startColumn:e.col,endColumn:e.col,endRow:e.row},u={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};t.Range.foreach(r,(e,n)=>{let r=t.Rectangle.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},l),o=t.Rectangle.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},u),{row:d,col:f}=a(r.startRow,r.startColumn),p=this._conditionalFormattingViewModel.getCellCfs(s,c,d,f),{row:m,col:h}=a(o.startRow,o.startColumn),g=this._conditionalFormattingViewModel.getCellCfs(s,c,m,h);g&&g.forEach(e=>{let n=i.get(e.cfId);if(!i.get(e.cfId)){let r=this._conditionalFormattingRuleModel.getRule(s,c,e.cfId);if(!r)return;n=new t.ObjectMatrix,r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})}),i.set(e.cfId,n)}n.realDeleteValue(m,h)}),p&&p.forEach(e=>{let n=i.get(e.cfId);if(!i.get(e.cfId)){let r=this._conditionalFormattingRuleModel.getRule(s,c,e.cfId);if(!r)return;n=new t.ObjectMatrix,r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})}),i.set(e.cfId,n)}n.setValue(m,h,1)})})},a=(a,o)=>{var s,c;let l=(s=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:s.getUnitId(),d=(c=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null||(c=c.getActiveSheet())==null?void 0:c.getSheetId(),f=new Map,p=[],m=[];if(!l||!d)return e();let h=(0,u.virtualizeDiscreteRanges)([a,o]),[g,_]=h.ranges,{mapFunc:v}=h,y={row:g.startRow,col:g.startColumn};return n.AutoFillTools.getAutoFillRepeatRange(g,_).forEach(e=>{i(y,e.repeatStartCell,e.relativeRange,f,v)}),f.forEach((e,t)=>{let i=this._conditionalFormattingRuleModel.getRule(l,d,t);if(!i)return;let a=(0,n.findAllRectangle)((0,n.createTopMatrixFromMatrix)(e));if(a.length){let e={unitId:l,subUnitId:d,rule:{...i,ranges:a}};p.push({id:r.SetConditionalRuleMutation.id,params:e}),m.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,e))}else{let e={unitId:l,subUnitId:d,cfId:i.cfId};p.push({id:r.DeleteConditionalRuleMutation.id,params:e}),m.push(...(0,r.DeleteConditionalRuleMutationUndoFactory)(this._injector,e))}}),{undos:m,redos:p}},o={id:r.SHEET_CONDITIONAL_FORMATTING_PLUGIN,onFillData:(t,r,i)=>{if(i===n.AUTO_FILL_APPLY_TYPE.COPY||i===n.AUTO_FILL_APPLY_TYPE.ONLY_FORMAT||i===n.AUTO_FILL_APPLY_TYPE.SERIES){let{source:e,target:n}=t;return a(e,n)}return e()}};this.disposeWithMe(this._autoFillService.addHook(o))}};et=q([K(0,(0,t.Inject)(t.Injector)),K(1,(0,t.Inject)(t.IUniverInstanceService)),K(2,(0,t.Inject)(n.IAutoFillService)),K(3,(0,t.Inject)(r.ConditionalFormattingRuleModel)),K(4,(0,t.Inject)(r.ConditionalFormattingViewModel))],et);let tt=class extends t.Disposable{constructor(e,t){super(),this._sheetInterceptorService=e,this._conditionalFormattingService=t,this._initInterceptorEditorEnd()}_initInterceptorEditorEnd(){this.disposeWithMe((0,t.toDisposable)(this._sheetInterceptorService.writeCellInterceptor.intercept(n.AFTER_CELL_EDIT,{handler:(e,t,n)=>{var r;e||n(e);let i=this._conditionalFormattingService.composeStyle(t.unitId,t.subUnitId,t.row,t.col),a=(r=i==null?void 0:i.style)==null?{}:r,o=Object.keys(a);if(e!=null&&e.p){var s;return(s=e.p.body)==null||(s=s.textRuns)==null||s.forEach(e=>{e.ts&&o.forEach(t=>{var n;(n=e.ts)==null||delete n[t]})}),n(e)}else{let r={...(typeof(e==null?void 0:e.s)==`string`?t.workbook.getStyles().get(e.s):e==null?void 0:e.s)||{}};return o.forEach(e=>{delete r[e]}),n({...e,s:{...r}})}}})))}};tt=q([K(0,(0,t.Inject)(n.SheetInterceptorService)),K(1,(0,t.Inject)(r.ConditionalFormattingService))],tt);let nt=(e,t)=>{let n=e=>e.endRow-e.startRow+1,r=e=>e.endColumn-e.startColumn+1,i=n(t)%n(e),a=r(t)%r(e),o=Math.floor(n(t)/n(e)),s=Math.floor(r(t)/r(e)),c=[],l={startRow:0,endRow:n(e)-1,startColumn:0,endColumn:r(e)-1};if(n(t)===1&&r(t)===1){let e={startRow:t.startRow,endRow:t.startRow,startColumn:t.startColumn,endColumn:t.startColumn};return c.push({repeatRelativeRange:l,startRange:e}),c}for(let u=0;u<o+(i?.1:0);u++)for(let d=0;d<s+(a?.1:0);d++){let f=n(e)*u,p=r(e)*d,m={startRow:f+t.startRow,endRow:f+t.startRow,startColumn:p+t.startColumn,endColumn:p+t.startColumn},h=l;u===o&&i&&(h={...h},h.endRow-=n(e)-i),d===s&&a&&(h={...h},h.endColumn-=r(e)-a),c.push({repeatRelativeRange:h,startRange:m})}return c},rt=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._injector=e,this._univerInstanceService=t,this._formatPainterService=n,this._sheetsSelectionsService=r,this._conditionalFormattingRuleModel=i,this._conditionalFormattingViewModel=a,G(this,`_painterConfig`,null),this._initFormattingPainter()}_initFormattingPainter(){let e=()=>({redos:[],undos:[]}),i=(e,n,r,i,a)=>{let{unitId:o,subUnitId:s}=this._painterConfig,{targetUnitId:c,targetSubUnitId:l}=a,u={startRow:e.row,startColumn:e.col,endColumn:e.col,endRow:e.row},d={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};t.Range.foreach(r,(e,n)=>{let r=t.Rectangle.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},u),a=t.Rectangle.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},d),f=this._conditionalFormattingViewModel.getCellCfs(o,s,r.startRow,r.startColumn),p=this._conditionalFormattingViewModel.getCellCfs(c,l,a.startRow,a.startColumn);p&&p.forEach(e=>{let n=i.get(e.cfId);if(!i.get(e.cfId)){let r=this._conditionalFormattingRuleModel.getRule(c,l,e.cfId);if(!r)return;n=new t.ObjectMatrix,r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})}),i.set(e.cfId,n)}n.realDeleteValue(a.startRow,a.startColumn)}),f&&f.forEach(e=>{let t=i.get(e.cfId);t&&t.setValue(a.startRow,a.startColumn,1)})})},a=(a,o,s)=>{var c;let{range:l,unitId:u,subUnitId:d}=this._painterConfig,f=a!==u||d!==o,p=new Map,m=[],h=[];if(!a||!o||!u||!d)return e();let g=(c=this._conditionalFormattingRuleModel.getSubunitRules(u,d))==null?[]:c;g==null||g.forEach(e=>{let{ranges:n,cfId:r}=e;if(n.some(e=>t.Rectangle.intersects(l,e))){let e=new t.ObjectMatrix;f||n.forEach(n=>{t.Range.foreach(n,(t,n)=>{e.setValue(t,n,1)})}),p.set(r,e)}});let _={row:l.startRow,col:l.startColumn};return nt(l,s).forEach(e=>{i(_,{row:e.startRange.startRow,col:e.startRange.startColumn},e.repeatRelativeRange,p,{targetUnitId:a,targetSubUnitId:o})}),p.forEach((e,i)=>{if(f){let s=this._conditionalFormattingRuleModel.getRule(a,o,i),c=(0,n.findAllRectangle)((0,n.createTopMatrixFromMatrix)(e));if(!s){if(c.length){let e=this._conditionalFormattingRuleModel.getRule(u,d,i);if(e){let n={unitId:a,subUnitId:o,rule:{...t.Tools.deepClone(e),cfId:this._conditionalFormattingRuleModel.createCfId(a,o),ranges:c}};m.push({id:r.AddConditionalRuleMutation.id,params:n}),h.push((0,r.AddConditionalRuleMutationUndoFactory)(this._injector,n))}}}else if(c.length){let e={unitId:a,subUnitId:o,rule:{...s,ranges:c}};m.push({id:r.SetConditionalRuleMutation.id,params:e}),h.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,e))}else{let e={unitId:a,subUnitId:o,cfId:s.cfId};m.push({id:r.DeleteConditionalRuleMutation.id,params:e}),h.push(...(0,r.DeleteConditionalRuleMutationUndoFactory)(this._injector,e))}}else{let t=this._conditionalFormattingRuleModel.getRule(u,d,i);if(!t)return;let a=(0,n.findAllRectangle)((0,n.createTopMatrixFromMatrix)(e));if(a.length){let e={unitId:u,subUnitId:d,rule:{...t,ranges:a}};m.push({id:r.SetConditionalRuleMutation.id,params:e}),h.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,e))}else{let e={unitId:u,subUnitId:d,cfId:t.cfId};m.push({id:r.DeleteConditionalRuleMutation.id,params:e}),h.push(...(0,r.DeleteConditionalRuleMutationUndoFactory)(this._injector,e))}}}),{undos:h,redos:m}},o={id:r.SHEET_CONDITIONAL_FORMATTING_PLUGIN,onStatusChange:e=>{switch(e){case u.FormatPainterStatus.INFINITE:case u.FormatPainterStatus.ONCE:{var n,r;let e=(n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId(),i=(r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null||(r=r.getActiveSheet())==null?void 0:r.getSheetId(),a=this._sheetsSelectionsService.getCurrentLastSelection(),o=a==null?void 0:a.range;e&&i&&o&&(this._painterConfig={unitId:e,subUnitId:i,range:o});break}case u.FormatPainterStatus.OFF:this._painterConfig=null;break}},onApply:(e,t,n)=>this._painterConfig?a(e,t,n):{redos:[],undos:[]}};this._formatPainterService.addHook(o)}};rt=q([K(0,(0,t.Inject)(t.Injector)),K(1,(0,t.Inject)(t.IUniverInstanceService)),K(2,(0,t.Inject)(u.IFormatPainterService)),K(3,(0,t.Inject)(n.SheetsSelectionsService)),K(4,(0,t.Inject)(r.ConditionalFormattingRuleModel)),K(5,(0,t.Inject)(r.ConditionalFormattingViewModel))],rt);let it=class extends t.Disposable{constructor(e,t,n){super(),this._conditionalFormattingViewModel=e,this._univerInstanceService=t,this._renderManagerService=n,this._init()}_init(){let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),n=e=>{let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);if(!n)return;let i=n.with(u.SheetSkeletonManagerService);this.disposeWithMe(i.currentSkeleton$.subscribe(e=>{if(e){let t=e.skeleton.rowColumnSegment,n=t.endColumn-t.startColumn+1,i=(t.endRow-t.startRow+1)*n*9,a=Math.max(r.CONDITIONAL_FORMATTING_VIEWPORT_CACHE_LENGTH,i);this._conditionalFormattingViewModel.setCacheLength(a)}}))};e&&n(e),this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{e&&n(e)})}};it=q([K(0,(0,t.Inject)(r.ConditionalFormattingViewModel)),K(1,t.IUniverInstanceService),K(2,p.IRenderManagerService)],it);let at=[n.SetWorksheetActiveOperation.id,r.AddConditionalRuleMutation.id,r.SetConditionalRuleMutation.id,r.DeleteConditionalRuleMutation.id,r.MoveConditionalRuleMutation.id],ot=[{label:{name:`sheet.cf.ruleType.highlightCell`,selectable:!1},value:3},{label:{name:`sheet.cf.panel.rankAndAverage`,selectable:!1},value:4},{label:{name:`sheet.cf.ruleType.formula`,selectable:!1},value:5},{label:{name:`sheet.cf.ruleType.colorScale`,selectable:!1},value:6},{label:{name:`sheet.cf.ruleType.dataBar`,selectable:!1},value:7},{label:{name:`sheet.cf.ruleType.iconSet`,selectable:!1},value:8},{label:{name:`sheet.cf.menu.manageConditionalFormatting`,selectable:!1},value:2},{label:{name:`sheet.cf.menu.createConditionalFormatting`,selectable:!1},value:1},{label:{name:`sheet.cf.menu.clearRangeRules`,selectable:!1},value:9,disabled:!1},{label:{name:`sheet.cf.menu.clearWorkSheetRules`,selectable:!1},value:10}],st=e=>{let a=e.get(n.SheetsSelectionsService),o=e.get(t.ICommandService),s=e.get(t.IUniverInstanceService),c=e.get(r.ConditionalFormattingRuleModel),l=new d.Observable(r=>(0,d.merge)(a.selectionMoveEnd$,a.selectionSet$,new d.Observable(e=>{let n=o.onCommandExecuted(n=>{var r;let{id:i,params:a}=n,o=(r=s.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.getUnitId();at.includes(i)&&a.unitId===o&&e.next(null)});return()=>n.dispose()})).pipe((0,m.debounceTime)(16)).subscribe(()=>{var i;let o=((i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range))||[],l=s.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return;let u=l.getActiveSheet();if(!u)return;let d=(c.getSubunitRules(l.getUnitId(),u.getSheetId())||[]).filter(e=>e.ranges.some(e=>o.some(n=>t.Rectangle.intersects(n,e)))).map(e=>e.ranges).every(t=>(0,n.checkRangesEditablePermission)(e,l.getUnitId(),u.getSheetId(),t));r.next(d)})),f=new d.Observable(r=>new d.Observable(e=>{let n=o.onCommandExecuted(n=>{var r;let{id:i,params:a}=n,o=(r=s.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.getUnitId();at.includes(i)&&a.unitId===o&&e.next(null)});return()=>n.dispose()}).pipe((0,m.debounceTime)(16)).subscribe(()=>{let i=s.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!i)return;let a=i.getActiveSheet();if(!a)return;let o=c.getSubunitRules(i.getUnitId(),a.getSheetId())||[];if(!o.length)return r.next(!1),!1;let l=o.map(e=>e.ranges).every(t=>(0,n.checkRangesEditablePermission)(e,i.getUnitId(),a.getSheetId(),t));r.next(l)})),p=new d.Observable(e=>{l.subscribe(t=>{let n=ot.find(e=>e.value===9);n&&(n.disabled=!t,e.next(ot))}),f.subscribe(t=>{let n=ot.find(e=>e.value===10);n&&(n.disabled=!t,e.next(ot))}),e.next(ot)});return{id:X.id,type:i.MenuItemType.SELECTOR,icon:`ConditionsDoubleIcon`,tooltip:`sheet.cf.title`,selections:p,hidden$:(0,i.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,u.getCurrentRangeDisable$)(e,{workbookTypes:[n.WorkbookEditablePermission],worksheetTypes:[n.WorksheetSetCellStylePermission,n.WorksheetEditPermission],rangeTypes:[n.RangeProtectionPermissionEditPoint]})}},ct={[i.RibbonDataGroup.RULES]:{[X.id]:{order:1,menuItemFactory:st}}},lt=class extends t.Disposable{constructor(e,t){super(),this._injector=e,this._menuManagerService=t,G(this,`_sidebarDisposable`,null),this._menuManagerService.mergeMenu(ct)}};lt=q([K(0,(0,t.Inject)(t.Injector)),K(1,i.IMenuManagerService)],lt);let $=class extends t.Plugin{constructor(e=Je,n,r,i){super(),this._config=e,this._injector=n,this._commandService=r,this._configService=i;let{menu:a,...o}=(0,t.merge)({},Je,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(qe,o),this._initCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[$e],[Ze],[et],[Qe],[Y],[lt],[J],[tt],[Z],[rt],[it],[Ye]]),(0,t.touchDependencies)(this._injector,[[$e],[Ye]])}onReady(){(0,t.touchDependencies)(this._injector,[[lt],[Y]])}onRendered(){(0,t.touchDependencies)(this._injector,[[et],[Z],[Ze],[tt],[J],[rt],[Qe],[it]])}_initCommand(){[h,g,_,v,y,b,x,S,C,X].forEach(e=>{this._commandService.registerCommand(e)})}};G($,`pluginName`,`${r.SHEET_CONDITIONAL_FORMATTING_PLUGIN}_UI_PLUGIN`),G($,`packageName`,Ge),G($,`version`,Ke),G($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=q([(0,t.DependentOn)(r.UniverSheetsConditionalFormattingPlugin,f.UniverSheetsFormulaPlugin),K(1,(0,t.Inject)(t.Injector)),K(2,(0,t.Inject)(t.ICommandService)),K(3,t.IConfigService)],$),e.AddAverageCfCommand=h,e.AddColorScaleConditionalRuleCommand=g,e.AddDataBarConditionalRuleCommand=_,e.AddDuplicateValuesCfCommand=v,e.AddNumberCfCommand=y,e.AddRankCfCommand=b,e.AddTextCfCommand=x,e.AddTimePeriodCfCommand=S,e.AddUniqueValuesCfCommand=C,Object.defineProperty(e,`ConditionalFormattingClearController`,{enumerable:!0,get:function(){return Z}}),e.OpenConditionalFormattingOperator=X,Object.defineProperty(e,`UniverSheetsConditionalFormattingMobileUIPlugin`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(e,`UniverSheetsConditionalFormattingUIPlugin`,{enumerable:!0,get:function(){return $}})});
|
|
6
|
+
`,children:e.ranges.map(e=>(0,s.serializeRange)(e)).join(`,`)})]}),(0,l.jsx)(`div`,{children:(0,l.jsx)(z,{rule:e.rule})}),(0,l.jsx)(`div`,{className:(0,o.clsx)(`univer-absolute univer-right-1 univer-hidden univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded univer-text-red-500 group-hover:univer-flex hover:univer-bg-gray-200`,{"univer-flex univer-items-center univer-justify-center":k===e.cfId}),onClick:t=>{t.stopPropagation(),te(e),w([])},children:(0,l.jsx)(M,{})})]})})})]})},He=e=>{let[t,n]=(0,a.useState)(e.rule),[r,i]=(0,a.useState)(!!e.rule);return(0,l.jsx)(`div`,{className:`univer-flex univer-h-full univer-flex-col univer-justify-between univer-py-4`,children:r?(0,l.jsx)(Le,{onCancel:()=>{i(!1),n(void 0)},rule:t}):(0,l.jsx)(Ve,{onClick:e=>{n(e),i(!0)},onCreate:()=>{i(!0)}})})},Ue=`sheet.conditional.formatting.panel`,Y=class extends t.Disposable{constructor(e,n,r,i,a){super(),this._univerInstanceService=e,this._injector=n,this._componentManager=r,this._sidebarService=i,this._localeService=a,G(this,`_sidebarDisposable`,null),this._initPanel(),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{var t;e||(t=this._sidebarDisposable)==null||t.dispose()})),this.disposeWithMe(this._sidebarService.sidebarOptions$.subscribe(e=>{e.id===Ue&&(e.visible||setTimeout(()=>{this._sidebarService.sidebarOptions$.next({visible:!1})}))}))}openPanel(e){let n={id:Ue,header:{title:this._localeService.t(`sheet.cf.title`)},children:{label:Ue,rule:e,key:(0,t.generateRandomId)(4)},onClose:()=>this._sidebarDisposable=null};this._sidebarDisposable=this._sidebarService.open(n)}_initPanel(){this.disposeWithMe(this._componentManager.register(Ue,He))}};Y=q([K(0,t.IUniverInstanceService),K(1,(0,t.Inject)(t.Injector)),K(2,(0,t.Inject)(i.ComponentManager)),K(3,(0,t.Inject)(i.ISidebarService)),K(4,(0,t.Inject)(t.LocaleService))],Y);let X={id:`sheet.operation.open.conditional.formatting.panel`,type:t.CommandType.OPERATION,handler:(e,i)=>{var a;let o=e.get(Y),s=e.get(n.SheetsSelectionsService),c=e.get(t.ICommandService),l=((a=s.getCurrentSelections())==null?void 0:a.map(e=>e.range))||[];switch(i.value){case 3:o.openPanel({...(0,r.createDefaultRule)(),ranges:l});break;case 4:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.highlightCell,subType:r.CFSubRuleType.rank}};o.openPanel(e);break}case 5:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.highlightCell,subType:r.CFSubRuleType.formula,value:`=`}};o.openPanel(e);break}case 6:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.colorScale,config:[]}};o.openPanel(e);break}case 7:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.dataBar,isShowValue:!0}};o.openPanel(e);break}case 8:{let e={...r.createDefaultRule,ranges:l,rule:{type:r.CFRuleType.iconSet,config:[],isShowValue:!0}};o.openPanel(e);break}case 2:o.openPanel();break;case 1:o.openPanel({...(0,r.createDefaultRule)(),ranges:l});break;case 9:c.executeCommand(r.ClearRangeCfCommand.id,{ranges:l});break;case 10:c.executeCommand(r.ClearWorksheetCfCommand.id);break}return!0}},Z=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._injector=e,this._univerInstanceService=t,this._sheetInterceptorService=n,this._selectionManagerService=r,this._conditionalFormattingRuleModel=i,this._init()}_init(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{let r=[],i=[],a={redos:r,undos:i};if([n.ClearSelectionFormatCommand.id,n.ClearSelectionAllCommand.id].includes(e.id)){var o;let e=(o=this._selectionManagerService.getCurrentSelections())==null?void 0:o.map(e=>e.range);if(!e)return a;let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),s=n.getActiveSheet();if(!s)return a;let c=n.getUnitId(),l=s.getSheetId(),u=this._conditionalFormattingRuleModel.getSubunitRules(c,l);if(!u||!u.length)return a;let{redos:d,undos:f}=We(this._injector,u,e,c,l);r.push(...d),i.push(...f)}return a}})),this.disposeWithMe(this._sheetInterceptorService.interceptRanges({getMutations:({unitId:e,subUnitId:t,ranges:n})=>{let r=[],i=[],a={redos:r,undos:i};if(!n||!n.length)return a;let o=this._conditionalFormattingRuleModel.getSubunitRules(e,t);if(!o||!o.length)return a;let{redos:s,undos:c}=We(this._injector,o,n,e,t);return r.push(...s),i.push(...c),a}}))}};Z=q([K(0,(0,t.Inject)(t.Injector)),K(1,(0,t.Inject)(t.IUniverInstanceService)),K(2,(0,t.Inject)(n.SheetInterceptorService)),K(3,(0,t.Inject)(n.SheetsSelectionsService)),K(4,(0,t.Inject)(r.ConditionalFormattingRuleModel))],Z);function We(e,i,a,o,s){let c=[],l=[];return i.filter(e=>a.some(n=>e.ranges.some(e=>t.Rectangle.getIntersects(e,n)))).forEach(t=>{let i=new n.RangeMergeUtil().add(...t.ranges).subtract(...a).merge();if(i.length){let n={id:r.SetConditionalRuleMutation.id,params:{unitId:o,subUnitId:s,rule:{...t,ranges:i}}},a=(0,r.setConditionalRuleMutationUndoFactory)(e,n.params);c.push(n),l.push(...a)}else{let n={id:r.DeleteConditionalRuleMutation.id,params:{unitId:o,subUnitId:s,cfId:t.cfId}},i=(0,r.DeleteConditionalRuleMutationUndoFactory)(e,n.params);c.push(n),l.push(...i)}}),{redos:c,undos:l}}var Ge=`@univerjs/sheets-conditional-formatting-ui`,Ke=`0.23.0`;let qe=`sheets-conditional-formatting-ui.config`;Symbol(qe);let Je={},Ye=class extends t.Disposable{constructor(e,t,n){super(),this._conditionalFormattingRuleModel=e,this._formulaRefRangeService=t,this._injector=n,G(this,`_disposableMap`,new Map),this._initRefRange()}_getIdWithUnitId(e,t,n){return`${e}_${t}_${n}`}_getRuleFormulas(e){let t=[],n=e.rule;switch(n.type){case r.CFRuleType.highlightCell:n.subType===r.CFSubRuleType.formula&&t.push(n.value);break;case r.CFRuleType.dataBar:{let e=n;e.config.min.type===r.CFValueType.formula&&t.push(e.config.min.value),e.config.max.type===r.CFValueType.formula&&t.push(e.config.max.value);break}case r.CFRuleType.colorScale:n.config.forEach(e=>{e.value.type===r.CFValueType.formula&&t.push(e.value.value)});break;case r.CFRuleType.iconSet:n.config.forEach(e=>{e.value.type===r.CFValueType.formula&&t.push(e.value.value)});break}return t}_updateRuleFormulas(e,n){let i=t.Tools.deepClone(e),a=i.rule,o=0;switch(a.type){case r.CFRuleType.highlightCell:a.subType===r.CFSubRuleType.formula&&(a.value=n[o++]);break;case r.CFRuleType.dataBar:{let e=a;e.config.min.type===r.CFValueType.formula&&(e.config.min.value=n[o++]),e.config.max.type===r.CFValueType.formula&&(e.config.max.value=n[o++]);break}case r.CFRuleType.colorScale:a.config.forEach(e=>{e.value.type===r.CFValueType.formula&&(e.value.value=n[o++])});break;case r.CFRuleType.iconSet:a.config.forEach(e=>{e.value.type===r.CFValueType.formula&&(e.value.value=n[o++])});break}return i}register(e,t,n){let i=n.ranges,a=this._getRuleFormulas(n),o=this._formulaRefRangeService.registerRangeFormula(e,t,i,a,i=>{if(i.length===0)return{undos:[{id:r.AddConditionalRuleMutation.id,params:{unitId:e,subUnitId:t,rule:n}}],redos:[{id:r.DeleteConditionalRuleMutation.id,params:{unitId:e,subUnitId:t,cfId:n.cfId}}]};let a=[],o=[],s=i[0],c=this._updateRuleFormulas(n,s.formulas);c.ranges=s.ranges,a.push({id:r.SetConditionalRuleMutation.id,params:{unitId:e,subUnitId:t,cfId:n.cfId,rule:c}}),o.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,{unitId:e,subUnitId:t,cfId:n.cfId,rule:c}));for(let s=1;s<i.length;s++){let c=i[s],l=(0,r.createCfId)(),u=this._updateRuleFormulas(n,c.formulas);u.cfId=l,u.ranges=c.ranges,a.push({id:r.AddConditionalRuleMutation.id,params:{unitId:e,subUnitId:t,rule:u}}),o.push((0,r.AddConditionalRuleMutationUndoFactory)(this._injector,{unitId:e,subUnitId:t,rule:u}))}return{undos:o,redos:a}}),s=this._getIdWithUnitId(e,t,n.cfId);this._disposableMap.set(s,o)}_initRefRange(){let e=this._conditionalFormattingRuleModel.getAll();for(let[t,n]of e)for(let[e,r]of n)for(let n of r)this.register(t,e,n);this.disposeWithMe(this._conditionalFormattingRuleModel.$ruleChange.subscribe(e=>{let{unitId:t,subUnitId:n,rule:r}=e;switch(e.type){case`add`:this.register(t,n,r);break;case`delete`:{let e=this._getIdWithUnitId(t,n,r.cfId),i=this._disposableMap.get(e);i&&(i.dispose(),this._disposableMap.delete(e));break}case`set`:{let e=this._getIdWithUnitId(t,n,r.cfId),i=this._disposableMap.get(e);i&&(i.dispose(),this._disposableMap.delete(e)),this.register(t,n,r);break}}})),this.disposeWithMe((0,t.toDisposable)(()=>{this._disposableMap.forEach(e=>{e.dispose()}),this._disposableMap.clear()}))}};Ye=q([K(0,(0,t.Inject)(r.ConditionalFormattingRuleModel)),K(1,(0,t.Inject)(f.FormulaRefRangeService)),K(2,(0,t.Inject)(t.Injector))],Ye);let Xe=[u.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_FORMAT,u.PREDEFINED_HOOK_NAME_PASTE.DEFAULT_PASTE,u.PREDEFINED_HOOK_NAME_PASTE.SPECIAL_PASTE_BESIDES_BORDER],Ze=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._sheetClipboardService=e,this._conditionalFormattingRuleModel=t,this._injector=n,this._conditionalFormattingViewModel=r,this._univerInstanceService=i,G(this,`_copyInfo`,void 0),this._initClipboardHook()}_initClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook({id:r.SHEET_CONDITIONAL_FORMATTING_PLUGIN,onBeforeCopy:(e,t,n)=>this._collectConditionalRule(e,t,n),onPasteCells:(e,t,n,r)=>!e||!this._copyInfo||!Xe.includes(r.pasteType)?{redos:[],undos:[]}:this._generateConditionalFormattingMutations(e,t,r)}))}_collectConditionalRule(e,r,i){let a=new t.ObjectMatrix,o={};this._copyInfo={matrix:a,info:{unitId:e,subUnitId:r,cfMap:o}};let s=this._injector.invoke(t=>(0,n.rangeToDiscreteRange)(i,t,e,r));if(!s)return;let{rows:c,cols:l}=s,u=new Set;c.forEach((t,n)=>{l.forEach((i,o)=>{let s=this._conditionalFormattingViewModel.getCellCfs(e,r,t,i);s&&(s.forEach(e=>u.add(e.cfId)),a.setValue(n,o,s.map(e=>e.cfId)))})}),u.forEach(t=>{let n=this._conditionalFormattingRuleModel.getRule(e,r,t);n&&(o[t]=n.rule)})}_generateConditionalFormattingMutations(e,i,a){let{unitId:o,subUnitId:s,range:c}=e,{unitId:l,subUnitId:d,range:f}=i,{copyType:p=u.COPY_TYPE.COPY}=a;if(!(0,n.getSheetCommandTarget)(this._univerInstanceService,{unitId:l,subUnitId:d}))return{redos:[],undos:[]};if(p===u.COPY_TYPE.CUT&&l===o&&d===s)return this._copyInfo=null,{redos:[],undos:[]};let{ranges:[m,h],mapFunc:g}=(0,u.virtualizeDiscreteRanges)([c,f]),_=(0,u.getRepeatRange)(m,h,!0),v={};t.Range.foreach(h,(e,n)=>{let{row:r,col:i}=g(e,n),a=this._conditionalFormattingViewModel.getCellCfs(l,d,r,i);a&&a.forEach(e=>{if(!v[e.cfId]){let n=new t.ObjectMatrix;v[e.cfId]={unitId:l,subUnitId:d,ruleMatrix:n};let r=this._conditionalFormattingRuleModel.getRule(l,d,e.cfId);r==null||r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})})}v[e.cfId].ruleMatrix.realDeleteValue(r,i)})}),p===u.COPY_TYPE.CUT&&(l!==o||d!==s)&&t.Range.foreach(m,(e,n)=>{let{row:r,col:i}=g(e,n),a=this._conditionalFormattingViewModel.getCellCfs(o,s,r,i);a&&a.forEach(e=>{if(!v[e.cfId]){let n=new t.ObjectMatrix;v[e.cfId]={unitId:o,subUnitId:s,ruleMatrix:n};let r=this._conditionalFormattingRuleModel.getRule(o,s,e.cfId);r==null||r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})})}v[e.cfId].ruleMatrix.realDeleteValue(r,i)})});let{matrix:y,info:b}=this._copyInfo,x=[],S={},C=e=>{let n=b==null?void 0:b.cfMap[e],r=[...this._conditionalFormattingRuleModel.getSubunitRules(l,d)||[],...x].find(e=>t.Tools.diffValue(e.rule,n));if(r)return S[e]=r,r;{let t={rule:n,cfId:this._conditionalFormattingRuleModel.createCfId(l,d),ranges:[],stopIfTrue:!1};return S[e]=t,x.push(t),t}};_.forEach(e=>{y&&y.forValue((n,r,i)=>{let a=t.Rectangle.getPositionRange({startRow:n,endRow:n,startColumn:r,endColumn:r},e.startRange),{row:o,col:s}=g(a.startRow,a.startColumn);i.forEach(e=>{let n=S[e]||C(e);if(!v[n.cfId]){let e=new t.ObjectMatrix;v[n.cfId]={unitId:l,subUnitId:d,ruleMatrix:e},n.ranges.forEach(n=>{t.Range.foreach(n,(t,n)=>{e.setValue(t,n,1)})})}v[n.cfId].ruleMatrix.setValue(o,s,1)})})});let w=[],T=[];for(let e in v){let{unitId:t,subUnitId:i,ruleMatrix:a}=v[e],o=(0,n.findAllRectangle)((0,n.createTopMatrixFromMatrix)(a));if(!o.length){let n={unitId:t,subUnitId:i,cfId:e};w.push({id:r.DeleteConditionalRuleMutation.id,params:n}),T.push(...(0,r.DeleteConditionalRuleMutationUndoFactory)(this._injector,n))}if(x.some(t=>t.cfId===e)){let t={unitId:l,subUnitId:d,rule:{...x.find(t=>t.cfId===e),ranges:o}};w.push({id:r.AddConditionalRuleMutation.id,params:t}),T.push((0,r.AddConditionalRuleMutationUndoFactory)(this._injector,t))}else{let n=this._conditionalFormattingRuleModel.getRule(t,i,e);if(!n)continue;let a={unitId:t,subUnitId:i,rule:{...n,ranges:o}};w.push({id:r.SetConditionalRuleMutation.id,params:a}),T.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,a))}}return{redos:w,undos:T}}};Ze=q([K(0,(0,t.Inject)(u.ISheetClipboardService)),K(1,(0,t.Inject)(r.ConditionalFormattingRuleModel)),K(2,(0,t.Inject)(t.Injector)),K(3,(0,t.Inject)(r.ConditionalFormattingViewModel)),K(4,(0,t.Inject)(t.IUniverInstanceService))],Ze);let Qe=class extends t.Disposable{constructor(e,t,n){super(),this._localeService=e,this._commandService=t,this._sheetPermissionCheckController=n,this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id===r.AddCfCommand.id){let{unitId:t,subUnitId:r,rule:{ranges:i}}=e.params;this._sheetPermissionCheckController.permissionCheckWithRanges({workbookTypes:[n.WorkbookEditablePermission],rangeTypes:[n.RangeProtectionPermissionEditPoint],worksheetTypes:[n.WorksheetEditPermission,n.WorksheetSetCellStylePermission]},i,t,r)||this._sheetPermissionCheckController.blockExecuteWithoutPermission(this._localeService.t(`permission.dialog.setStyleErr`))}}))}};Qe=q([K(0,(0,t.Inject)(t.LocaleService)),K(1,t.ICommandService),K(2,(0,t.Inject)(n.SheetPermissionCheckController))],Qe);let $e=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._conditionalFormattingService=t,this._univerInstanceService=n,this._renderManagerService=r,this._conditionalFormattingViewModel=i,this._conditionalFormattingRuleModel=a,G(this,`_ruleChangeCacheMap`,new Map),this._initViewModelInterceptor(),this._initSkeleton(),this.disposeWithMe(()=>{this._ruleChangeCacheMap.clear()})}_markDirtySkeleton(){var e,n;let r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getUnitId();(e=this._renderManagerService.getRenderById(r))==null||e.with(u.SheetSkeletonManagerService).reCalculate(),(n=this._renderManagerService.getRenderById(r))==null||(n=n.mainComponent)==null||n.makeDirty()}_initSkeleton(){this.disposeWithMe((0,d.merge)(this._conditionalFormattingRuleModel.$ruleChange,this._conditionalFormattingViewModel.markDirty$).pipe((0,m.bufferTime)(16),(0,m.filter)(e=>!!e.length),(0,m.filter)(e=>{let n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!n)return!1;let r=n.getActiveSheet();return r?e.filter(e=>e.unitId===n.getUnitId()&&e.subUnitId===r.getSheetId()).length>0:!1})).subscribe(()=>this._markDirtySkeleton()))}_initViewModelInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Style,handler:(e,t,n)=>{let i=this._conditionalFormattingService.composeStyle(t.unitId,t.subUnitId,t.row,t.col);if(!i)return n(e);let a=t.workbook.getStyles(),o=(typeof(e==null?void 0:e.s)==`string`?a.get(e==null?void 0:e.s):e==null?void 0:e.s)||{},s=e===t.rawData?{...t.rawData}:e;if(i.style){let e={...o,...i.style};Object.assign(s,{s:e})}return s.fontRenderExtension||(s.fontRenderExtension={},i.isShowValue!==void 0&&(s.fontRenderExtension.isSkip=!i.isShowValue)),i.dataBar&&(s.dataBar=i.dataBar),i.iconSet&&(s.iconSet=i.iconSet,s.fontRenderExtension.leftOffset=r.DEFAULT_PADDING+r.DEFAULT_WIDTH),n(s)},priority:10}))}};$e=q([K(0,(0,t.Inject)(n.SheetInterceptorService)),K(1,(0,t.Inject)(r.ConditionalFormattingService)),K(2,(0,t.Inject)(t.IUniverInstanceService)),K(3,(0,t.Inject)(p.IRenderManagerService)),K(4,(0,t.Inject)(r.ConditionalFormattingViewModel)),K(5,(0,t.Inject)(r.ConditionalFormattingRuleModel))],$e);let Q=class extends t.Plugin{constructor(e=Je,n,r,i){super(),this._config=e,this._injector=n,this._commandService=r,this._configService=i;let{menu:a,...o}=(0,t.merge)({},Je,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(qe,o),this._initCommand(),this._injector.add([$e]),this._injector.add([Ze]),this._injector.add([Qe]),this._injector.add([J]),this._injector.add([Ye])}_initCommand(){[h,g,_,v,y,b,x,S,C,X].forEach(e=>{this._commandService.registerCommand(e)})}};G(Q,`pluginName`,`${r.SHEET_CONDITIONAL_FORMATTING_PLUGIN}_MOBILE_UI_PLUGIN`),G(Q,`packageName`,Ge),G(Q,`version`,Ke),G(Q,`type`,t.UniverInstanceType.UNIVER_SHEET),Q=q([(0,t.DependentOn)(r.UniverSheetsConditionalFormattingPlugin),K(1,(0,t.Inject)(t.Injector)),K(2,(0,t.Inject)(t.ICommandService)),K(3,t.IConfigService)],Q);let et=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._injector=e,this._univerInstanceService=t,this._autoFillService=n,this._conditionalFormattingRuleModel=r,this._conditionalFormattingViewModel=i,this._initAutoFill()}_initAutoFill(){let e=()=>({redos:[],undos:[]}),i=(e,n,r,i,a)=>{var o;let s=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getUnitId(),c=(o=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:o.getSheetId();if(!s||!c)return;let l={startRow:e.row,startColumn:e.col,endColumn:e.col,endRow:e.row},u={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};t.Range.foreach(r,(e,n)=>{let r=t.Rectangle.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},l),o=t.Rectangle.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},u),{row:d,col:f}=a(r.startRow,r.startColumn),p=this._conditionalFormattingViewModel.getCellCfs(s,c,d,f),{row:m,col:h}=a(o.startRow,o.startColumn),g=this._conditionalFormattingViewModel.getCellCfs(s,c,m,h);g&&g.forEach(e=>{let n=i.get(e.cfId);if(!i.get(e.cfId)){let r=this._conditionalFormattingRuleModel.getRule(s,c,e.cfId);if(!r)return;n=new t.ObjectMatrix,r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})}),i.set(e.cfId,n)}n.realDeleteValue(m,h)}),p&&p.forEach(e=>{let n=i.get(e.cfId);if(!i.get(e.cfId)){let r=this._conditionalFormattingRuleModel.getRule(s,c,e.cfId);if(!r)return;n=new t.ObjectMatrix,r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})}),i.set(e.cfId,n)}n.setValue(m,h,1)})})},a=(a,o)=>{var s,c;let l=(s=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:s.getUnitId(),d=(c=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null||(c=c.getActiveSheet())==null?void 0:c.getSheetId(),f=new Map,p=[],m=[];if(!l||!d)return e();let h=(0,u.virtualizeDiscreteRanges)([a,o]),[g,_]=h.ranges,{mapFunc:v}=h,y={row:g.startRow,col:g.startColumn};return n.AutoFillTools.getAutoFillRepeatRange(g,_).forEach(e=>{i(y,e.repeatStartCell,e.relativeRange,f,v)}),f.forEach((e,t)=>{let i=this._conditionalFormattingRuleModel.getRule(l,d,t);if(!i)return;let a=(0,n.findAllRectangle)((0,n.createTopMatrixFromMatrix)(e));if(a.length){let e={unitId:l,subUnitId:d,rule:{...i,ranges:a}};p.push({id:r.SetConditionalRuleMutation.id,params:e}),m.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,e))}else{let e={unitId:l,subUnitId:d,cfId:i.cfId};p.push({id:r.DeleteConditionalRuleMutation.id,params:e}),m.push(...(0,r.DeleteConditionalRuleMutationUndoFactory)(this._injector,e))}}),{undos:m,redos:p}},o={id:r.SHEET_CONDITIONAL_FORMATTING_PLUGIN,onFillData:(t,r,i)=>{if(i===n.AUTO_FILL_APPLY_TYPE.COPY||i===n.AUTO_FILL_APPLY_TYPE.ONLY_FORMAT||i===n.AUTO_FILL_APPLY_TYPE.SERIES){let{source:e,target:n}=t;return a(e,n)}return e()}};this.disposeWithMe(this._autoFillService.addHook(o))}};et=q([K(0,(0,t.Inject)(t.Injector)),K(1,(0,t.Inject)(t.IUniverInstanceService)),K(2,(0,t.Inject)(n.IAutoFillService)),K(3,(0,t.Inject)(r.ConditionalFormattingRuleModel)),K(4,(0,t.Inject)(r.ConditionalFormattingViewModel))],et);let tt=class extends t.Disposable{constructor(e,t){super(),this._sheetInterceptorService=e,this._conditionalFormattingService=t,this._initInterceptorEditorEnd()}_initInterceptorEditorEnd(){this.disposeWithMe((0,t.toDisposable)(this._sheetInterceptorService.writeCellInterceptor.intercept(n.AFTER_CELL_EDIT,{handler:(e,t,n)=>{var r;e||n(e);let i=this._conditionalFormattingService.composeStyle(t.unitId,t.subUnitId,t.row,t.col),a=(r=i==null?void 0:i.style)==null?{}:r,o=Object.keys(a);if(e!=null&&e.p){var s;return(s=e.p.body)==null||(s=s.textRuns)==null||s.forEach(e=>{e.ts&&o.forEach(t=>{var n;(n=e.ts)==null||delete n[t]})}),n(e)}else{let r={...(typeof(e==null?void 0:e.s)==`string`?t.workbook.getStyles().get(e.s):e==null?void 0:e.s)||{}};return o.forEach(e=>{delete r[e]}),n({...e,s:{...r}})}}})))}};tt=q([K(0,(0,t.Inject)(n.SheetInterceptorService)),K(1,(0,t.Inject)(r.ConditionalFormattingService))],tt);let nt=(e,t)=>{let n=e=>e.endRow-e.startRow+1,r=e=>e.endColumn-e.startColumn+1,i=n(t)%n(e),a=r(t)%r(e),o=Math.floor(n(t)/n(e)),s=Math.floor(r(t)/r(e)),c=[],l={startRow:0,endRow:n(e)-1,startColumn:0,endColumn:r(e)-1};if(n(t)===1&&r(t)===1){let e={startRow:t.startRow,endRow:t.startRow,startColumn:t.startColumn,endColumn:t.startColumn};return c.push({repeatRelativeRange:l,startRange:e}),c}for(let u=0;u<o+(i?.1:0);u++)for(let d=0;d<s+(a?.1:0);d++){let f=n(e)*u,p=r(e)*d,m={startRow:f+t.startRow,endRow:f+t.startRow,startColumn:p+t.startColumn,endColumn:p+t.startColumn},h=l;u===o&&i&&(h={...h},h.endRow-=n(e)-i),d===s&&a&&(h={...h},h.endColumn-=r(e)-a),c.push({repeatRelativeRange:h,startRange:m})}return c},rt=class extends t.Disposable{constructor(e,t,n,r,i,a){super(),this._injector=e,this._univerInstanceService=t,this._formatPainterService=n,this._sheetsSelectionsService=r,this._conditionalFormattingRuleModel=i,this._conditionalFormattingViewModel=a,G(this,`_painterConfig`,null),this._initFormattingPainter()}_initFormattingPainter(){let e=()=>({redos:[],undos:[]}),i=(e,n,r,i,a)=>{let{unitId:o,subUnitId:s}=this._painterConfig,{targetUnitId:c,targetSubUnitId:l}=a,u={startRow:e.row,startColumn:e.col,endColumn:e.col,endRow:e.row},d={startRow:n.row,startColumn:n.col,endColumn:n.col,endRow:n.row};t.Range.foreach(r,(e,n)=>{let r=t.Rectangle.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},u),a=t.Rectangle.getPositionRange({startRow:e,startColumn:n,endColumn:n,endRow:e},d),f=this._conditionalFormattingViewModel.getCellCfs(o,s,r.startRow,r.startColumn),p=this._conditionalFormattingViewModel.getCellCfs(c,l,a.startRow,a.startColumn);p&&p.forEach(e=>{let n=i.get(e.cfId);if(!i.get(e.cfId)){let r=this._conditionalFormattingRuleModel.getRule(c,l,e.cfId);if(!r)return;n=new t.ObjectMatrix,r.ranges.forEach(e=>{t.Range.foreach(e,(e,t)=>{n.setValue(e,t,1)})}),i.set(e.cfId,n)}n.realDeleteValue(a.startRow,a.startColumn)}),f&&f.forEach(e=>{let t=i.get(e.cfId);t&&t.setValue(a.startRow,a.startColumn,1)})})},a=(a,o,s)=>{var c;let{range:l,unitId:u,subUnitId:d}=this._painterConfig,f=a!==u||d!==o,p=new Map,m=[],h=[];if(!a||!o||!u||!d)return e();let g=(c=this._conditionalFormattingRuleModel.getSubunitRules(u,d))==null?[]:c;g==null||g.forEach(e=>{let{ranges:n,cfId:r}=e;if(n.some(e=>t.Rectangle.intersects(l,e))){let e=new t.ObjectMatrix;f||n.forEach(n=>{t.Range.foreach(n,(t,n)=>{e.setValue(t,n,1)})}),p.set(r,e)}});let _={row:l.startRow,col:l.startColumn};return nt(l,s).forEach(e=>{i(_,{row:e.startRange.startRow,col:e.startRange.startColumn},e.repeatRelativeRange,p,{targetUnitId:a,targetSubUnitId:o})}),p.forEach((e,i)=>{if(f){let s=this._conditionalFormattingRuleModel.getRule(a,o,i),c=(0,n.findAllRectangle)((0,n.createTopMatrixFromMatrix)(e));if(!s){if(c.length){let e=this._conditionalFormattingRuleModel.getRule(u,d,i);if(e){let n={unitId:a,subUnitId:o,rule:{...t.Tools.deepClone(e),cfId:this._conditionalFormattingRuleModel.createCfId(a,o),ranges:c}};m.push({id:r.AddConditionalRuleMutation.id,params:n}),h.push((0,r.AddConditionalRuleMutationUndoFactory)(this._injector,n))}}}else if(c.length){let e={unitId:a,subUnitId:o,rule:{...s,ranges:c}};m.push({id:r.SetConditionalRuleMutation.id,params:e}),h.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,e))}else{let e={unitId:a,subUnitId:o,cfId:s.cfId};m.push({id:r.DeleteConditionalRuleMutation.id,params:e}),h.push(...(0,r.DeleteConditionalRuleMutationUndoFactory)(this._injector,e))}}else{let t=this._conditionalFormattingRuleModel.getRule(u,d,i);if(!t)return;let a=(0,n.findAllRectangle)((0,n.createTopMatrixFromMatrix)(e));if(a.length){let e={unitId:u,subUnitId:d,rule:{...t,ranges:a}};m.push({id:r.SetConditionalRuleMutation.id,params:e}),h.push(...(0,r.setConditionalRuleMutationUndoFactory)(this._injector,e))}else{let e={unitId:u,subUnitId:d,cfId:t.cfId};m.push({id:r.DeleteConditionalRuleMutation.id,params:e}),h.push(...(0,r.DeleteConditionalRuleMutationUndoFactory)(this._injector,e))}}}),{undos:h,redos:m}},o={id:r.SHEET_CONDITIONAL_FORMATTING_PLUGIN,onStatusChange:e=>{switch(e){case u.FormatPainterStatus.INFINITE:case u.FormatPainterStatus.ONCE:{var n,r;let e=(n=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:n.getUnitId(),i=(r=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null||(r=r.getActiveSheet())==null?void 0:r.getSheetId(),a=this._sheetsSelectionsService.getCurrentLastSelection(),o=a==null?void 0:a.range;e&&i&&o&&(this._painterConfig={unitId:e,subUnitId:i,range:o});break}case u.FormatPainterStatus.OFF:this._painterConfig=null;break}},onApply:(e,t,n)=>this._painterConfig?a(e,t,n):{redos:[],undos:[]}};this._formatPainterService.addHook(o)}};rt=q([K(0,(0,t.Inject)(t.Injector)),K(1,(0,t.Inject)(t.IUniverInstanceService)),K(2,(0,t.Inject)(u.IFormatPainterService)),K(3,(0,t.Inject)(n.SheetsSelectionsService)),K(4,(0,t.Inject)(r.ConditionalFormattingRuleModel)),K(5,(0,t.Inject)(r.ConditionalFormattingViewModel))],rt);let it=class extends t.Disposable{constructor(e,n,r){super(),this._conditionalFormattingViewModel=e,this._univerInstanceService=n,this._renderManagerService=r,G(this,`_unitDisposable`,new t.DisposableCollection),this._init()}_init(){let e=this._univerInstanceService.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET),n=e=>{this._unitDisposable.dispose(),this._unitDisposable=new t.DisposableCollection;let n=e.getUnitId(),i=this._renderManagerService.getRenderById(n);if(!i)return;let a=i.with(u.SheetSkeletonManagerService);this._unitDisposable.add(a.currentSkeleton$.subscribe(e=>{if(e){let t=e.skeleton.rowColumnSegment,n=t.endColumn-t.startColumn+1,i=(t.endRow-t.startRow+1)*n*9,a=Math.max(r.CONDITIONAL_FORMATTING_VIEWPORT_CACHE_LENGTH,i);this._conditionalFormattingViewModel.setCacheLength(a)}}))};e&&n(e),this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{if(!e){this._unitDisposable.dispose();return}n(e)}))}dispose(){this._unitDisposable.dispose(),super.dispose()}};it=q([K(0,(0,t.Inject)(r.ConditionalFormattingViewModel)),K(1,t.IUniverInstanceService),K(2,p.IRenderManagerService)],it);let at=[n.SetWorksheetActiveOperation.id,r.AddConditionalRuleMutation.id,r.SetConditionalRuleMutation.id,r.DeleteConditionalRuleMutation.id,r.MoveConditionalRuleMutation.id],ot=[{label:{name:`sheet.cf.ruleType.highlightCell`,selectable:!1},value:3},{label:{name:`sheet.cf.panel.rankAndAverage`,selectable:!1},value:4},{label:{name:`sheet.cf.ruleType.formula`,selectable:!1},value:5},{label:{name:`sheet.cf.ruleType.colorScale`,selectable:!1},value:6},{label:{name:`sheet.cf.ruleType.dataBar`,selectable:!1},value:7},{label:{name:`sheet.cf.ruleType.iconSet`,selectable:!1},value:8},{label:{name:`sheet.cf.menu.manageConditionalFormatting`,selectable:!1},value:2},{label:{name:`sheet.cf.menu.createConditionalFormatting`,selectable:!1},value:1},{label:{name:`sheet.cf.menu.clearRangeRules`,selectable:!1},value:9,disabled:!1},{label:{name:`sheet.cf.menu.clearWorkSheetRules`,selectable:!1},value:10}],st=e=>{let a=e.get(n.SheetsSelectionsService),o=e.get(t.ICommandService),s=e.get(t.IUniverInstanceService),c=e.get(r.ConditionalFormattingRuleModel),l=new d.Observable(r=>(0,d.merge)(a.selectionMoveEnd$,a.selectionSet$,new d.Observable(e=>{let n=o.onCommandExecuted(n=>{var r;let{id:i,params:a}=n,o=(r=s.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.getUnitId();at.includes(i)&&a.unitId===o&&e.next(null)});return()=>n.dispose()})).pipe((0,m.debounceTime)(16)).subscribe(()=>{var i;let o=((i=a.getCurrentSelections())==null?void 0:i.map(e=>e.range))||[],l=s.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!l)return;let u=l.getActiveSheet();if(!u)return;let d=(c.getSubunitRules(l.getUnitId(),u.getSheetId())||[]).filter(e=>e.ranges.some(e=>o.some(n=>t.Rectangle.intersects(n,e)))).map(e=>e.ranges).every(t=>(0,n.checkRangesEditablePermission)(e,l.getUnitId(),u.getSheetId(),t));r.next(d)})),f=new d.Observable(r=>new d.Observable(e=>{let n=o.onCommandExecuted(n=>{var r;let{id:i,params:a}=n,o=(r=s.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET))==null?void 0:r.getUnitId();at.includes(i)&&a.unitId===o&&e.next(null)});return()=>n.dispose()}).pipe((0,m.debounceTime)(16)).subscribe(()=>{let i=s.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(!i)return;let a=i.getActiveSheet();if(!a)return;let o=c.getSubunitRules(i.getUnitId(),a.getSheetId())||[];if(!o.length)return r.next(!1),!1;let l=o.map(e=>e.ranges).every(t=>(0,n.checkRangesEditablePermission)(e,i.getUnitId(),a.getSheetId(),t));r.next(l)})),p=new d.Observable(e=>{l.subscribe(t=>{let n=ot.find(e=>e.value===9);n&&(n.disabled=!t,e.next(ot))}),f.subscribe(t=>{let n=ot.find(e=>e.value===10);n&&(n.disabled=!t,e.next(ot))}),e.next(ot)});return{id:X.id,type:i.MenuItemType.SELECTOR,icon:`ConditionsDoubleIcon`,tooltip:`sheet.cf.title`,selections:p,hidden$:(0,i.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,u.getCurrentRangeDisable$)(e,{workbookTypes:[n.WorkbookEditablePermission],worksheetTypes:[n.WorksheetSetCellStylePermission,n.WorksheetEditPermission],rangeTypes:[n.RangeProtectionPermissionEditPoint]})}},ct={[i.RibbonDataGroup.RULES]:{[X.id]:{order:1,menuItemFactory:st}}},lt=class extends t.Disposable{constructor(e,t){super(),this._injector=e,this._menuManagerService=t,G(this,`_sidebarDisposable`,null),this._menuManagerService.mergeMenu(ct)}};lt=q([K(0,(0,t.Inject)(t.Injector)),K(1,i.IMenuManagerService)],lt);let $=class extends t.Plugin{constructor(e=Je,n,r,i){super(),this._config=e,this._injector=n,this._commandService=r,this._configService=i;let{menu:a,...o}=(0,t.merge)({},Je,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(qe,o),this._initCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[$e],[Ze],[et],[Qe],[Y],[lt],[J],[tt],[Z],[rt],[it],[Ye]]),(0,t.touchDependencies)(this._injector,[[$e],[Ye]])}onReady(){(0,t.touchDependencies)(this._injector,[[lt],[Y]])}onRendered(){(0,t.touchDependencies)(this._injector,[[et],[Z],[Ze],[tt],[J],[rt],[Qe],[it]])}_initCommand(){[h,g,_,v,y,b,x,S,C,X].forEach(e=>{this._commandService.registerCommand(e)})}};G($,`pluginName`,`${r.SHEET_CONDITIONAL_FORMATTING_PLUGIN}_UI_PLUGIN`),G($,`packageName`,Ge),G($,`version`,Ke),G($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=q([(0,t.DependentOn)(r.UniverSheetsConditionalFormattingPlugin,f.UniverSheetsFormulaPlugin),K(1,(0,t.Inject)(t.Injector)),K(2,(0,t.Inject)(t.ICommandService)),K(3,t.IConfigService)],$),e.AddAverageCfCommand=h,e.AddColorScaleConditionalRuleCommand=g,e.AddDataBarConditionalRuleCommand=_,e.AddDuplicateValuesCfCommand=v,e.AddNumberCfCommand=y,e.AddRankCfCommand=b,e.AddTextCfCommand=x,e.AddTimePeriodCfCommand=S,e.AddUniqueValuesCfCommand=C,Object.defineProperty(e,`ConditionalFormattingClearController`,{enumerable:!0,get:function(){return Z}}),e.OpenConditionalFormattingOperator=X,Object.defineProperty(e,`UniverSheetsConditionalFormattingMobileUIPlugin`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(e,`UniverSheetsConditionalFormattingUIPlugin`,{enumerable:!0,get:function(){return $}})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/sheets-conditional-formatting-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Conditional formatting UI for Univer Sheets.",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -58,17 +58,17 @@
|
|
|
58
58
|
"rxjs": ">=7.0.0"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@univerjs/icons": "^1.
|
|
62
|
-
"@univerjs/core": "0.
|
|
63
|
-
"@univerjs/design": "0.
|
|
64
|
-
"@univerjs/engine-
|
|
65
|
-
"@univerjs/sheets": "0.
|
|
66
|
-
"@univerjs/sheets-conditional-formatting": "0.
|
|
67
|
-
"@univerjs/engine-
|
|
68
|
-
"@univerjs/sheets
|
|
69
|
-
"@univerjs/sheets-formula": "0.
|
|
70
|
-
"@univerjs/sheets-ui": "0.
|
|
71
|
-
"@univerjs/ui": "0.
|
|
61
|
+
"@univerjs/icons": "^1.2.0",
|
|
62
|
+
"@univerjs/core": "0.23.0",
|
|
63
|
+
"@univerjs/design": "0.23.0",
|
|
64
|
+
"@univerjs/engine-formula": "0.23.0",
|
|
65
|
+
"@univerjs/sheets-formula": "0.23.0",
|
|
66
|
+
"@univerjs/sheets-conditional-formatting": "0.23.0",
|
|
67
|
+
"@univerjs/engine-render": "0.23.0",
|
|
68
|
+
"@univerjs/sheets": "0.23.0",
|
|
69
|
+
"@univerjs/sheets-formula-ui": "0.23.0",
|
|
70
|
+
"@univerjs/sheets-ui": "0.23.0",
|
|
71
|
+
"@univerjs/ui": "0.23.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"postcss": "^8.5.14",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"tailwindcss": "3.4.18",
|
|
78
78
|
"typescript": "^6.0.3",
|
|
79
79
|
"vitest": "^4.1.5",
|
|
80
|
-
"@univerjs-infra/shared": "0.
|
|
80
|
+
"@univerjs-infra/shared": "0.23.0"
|
|
81
81
|
},
|
|
82
82
|
"scripts": {
|
|
83
83
|
"test": "vitest run",
|