@univerjs/sheets-data-validation 0.1.7 → 0.1.9

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/umd/index.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(v,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/data-validation"),require("@univerjs/ui"),require("@univerjs/sheets-ui"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("react"),require("@wendellhu/redi/react-bindings"),require("@univerjs/design"),require("@univerjs/engine-formula"),require("rxjs"),require("clsx"),require("rxjs/operators"),require("@univerjs/sheets-formula")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/data-validation","@univerjs/ui","@univerjs/sheets-ui","@univerjs/engine-render","@univerjs/sheets","react","@wendellhu/redi/react-bindings","@univerjs/design","@univerjs/engine-formula","rxjs","clsx","rxjs/operators","@univerjs/sheets-formula"],l):(v=typeof globalThis<"u"?globalThis:v||self,l(v.UniverSheetsDataValidation={},v.UniverCore,v["@wendellhu/redi"],v.UniverDataValidation,v.UniverUi,v.UniverSheetsUi,v.UniverEngineRender,v.UniverSheets,v.React,v["@wendellhu/redi/react-bindings"],v.UniverDesign,v.UniverEngineFormula,v.rxjs,v.clsx,v.rxjs.operators,v.UniverSheetsFormula))})(this,function(v,l,y,O,z,X,K,ne,B,Y,j,Q,re,ia,nt,Vt){"use strict";var wr=Object.defineProperty;var yr=(v,l,y)=>l in v?wr(v,l,{enumerable:!0,configurable:!0,writable:!0,value:y}):v[l]=y;var M=(v,l,y)=>(yr(v,typeof l!="symbol"?l+"":l,y),y);var Dt;var oa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function sa(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var It={exports:{}},ke={};/**
1
+ (function(v,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/data-validation"),require("@univerjs/ui"),require("@univerjs/sheets-ui"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("react"),require("@wendellhu/redi/react-bindings"),require("@univerjs/design"),require("@univerjs/engine-formula"),require("rxjs"),require("dayjs"),require("clsx"),require("@univerjs/sheets-formula"),require("rxjs/operators")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/data-validation","@univerjs/ui","@univerjs/sheets-ui","@univerjs/engine-render","@univerjs/sheets","react","@wendellhu/redi/react-bindings","@univerjs/design","@univerjs/engine-formula","rxjs","dayjs","clsx","@univerjs/sheets-formula","rxjs/operators"],s):(v=typeof globalThis<"u"?globalThis:v||self,s(v.UniverSheetsDataValidation={},v.UniverCore,v["@wendellhu/redi"],v.UniverDataValidation,v.UniverUi,v.UniverSheetsUi,v.UniverEngineRender,v.UniverSheets,v.React,v["@wendellhu/redi/react-bindings"],v.UniverDesign,v.UniverEngineFormula,v.rxjs,v.dayjs,v.clsx,v.UniverSheetsFormula,v.rxjs.operators))})(this,function(v,s,D,V,B,U,z,te,I,N,O,oe,pe,fe,Jt,Ae,Ke){"use strict";var fr=Object.defineProperty;var vr=(v,s,D)=>s in v?fr(v,s,{enumerable:!0,configurable:!0,writable:!0,value:D}):v[s]=D;var S=(v,s,D)=>(vr(v,typeof s!="symbol"?s+"":s,D),D);var gt,Qe;var _t={exports:{}},be={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var la=B,ua=Symbol.for("react.element"),da=Symbol.for("react.fragment"),ca=Object.prototype.hasOwnProperty,ha=la.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ma={key:!0,ref:!0,__self:!0,__source:!0};function Ct(o,r,e){var t,a={},n=null,i=null;e!==void 0&&(n=""+e),r.key!==void 0&&(n=""+r.key),r.ref!==void 0&&(i=r.ref);for(t in r)ca.call(r,t)&&!ma.hasOwnProperty(t)&&(a[t]=r[t]);if(o&&o.defaultProps)for(t in r=o.defaultProps,r)a[t]===void 0&&(a[t]=r[t]);return{$$typeof:ua,type:o,key:n,ref:i,props:a,_owner:ha.current}}ke.Fragment=da,ke.jsx=Ct,ke.jsxs=Ct,It.exports=ke;var p=It.exports;function fa(){const o=Y.useDependency(Se),r=z.useObservable(o.activeDropdown$,o.activeDropdown),e=Y.useDependency(z.ComponentManager);if(!r)return null;const{location:t,componentKey:a}=r,n=e.get(a),i=`${t.unitId}-${t.subUnitId}-${t.row}-${t.col}`;if(!n)return null;const s=()=>{o.hideDropdown()};return p.jsx(n,{location:t,hideFn:s},i)}const Ot="sheet.ui.dropdown";var pa=Object.defineProperty,va=Object.getOwnPropertyDescriptor,ga=(o,r,e,t)=>{for(var a=t>1?void 0:t?va(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&pa(r,e,a),a},ge=(o,r)=>(e,t)=>r(e,t,o);let Se=class extends l.Disposable{constructor(r,e,t,a,n,i,s){super();M(this,"_activeDropdown");M(this,"_activeDropdown$",new re.Subject);M(this,"_currentPopup",null);M(this,"activeDropdown$",this._activeDropdown$.asObservable());M(this,"_zenVisible",!1);this._canvasPopupManagerService=r,this._univerInstanceService=e,this._sheetSkeletonManagerService=t,this._dataValidatorRegistryService=a,this._zenZoneService=n,this._renderManagerService=i,this._dataValidationModel=s,this._init()}get activeDropdown(){return this._activeDropdown}_init(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(r=>{this._zenVisible=r,r&&this.hideDropdown()}))}showDropdown(r){const{location:e}=r,{row:t,col:a}=e;if(this._currentPopup&&this._currentPopup.dispose(),this._zenVisible)return;this._activeDropdown=r,this._activeDropdown$.next(this._activeDropdown);const n=this._renderManagerService.getRenderById(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),i=this._canvasPopupManagerService.attachPopupToCell(t,a,{componentKey:Ot,onClickOutside:()=>{this.hideDropdown()},offset:[0,3],excludeOutside:[n==null?void 0:n.engine.getCanvasElement()].filter(Boolean)});if(!i)throw new Error("[DataValidationDropdownManagerService]: cannot show dropdown!");const s=new l.DisposableCollection;s.add(i),s.add({dispose:()=>{var u,d;(d=(u=this._activeDropdown)==null?void 0:u.onHide)==null||d.call(u)}}),this._currentPopup=s}hideDropdown(){this._activeDropdown&&(this._currentPopup&&this._currentPopup.dispose(),this._currentPopup=null,this._activeDropdown=null,this._activeDropdown$.next(null))}showDataValidationDropdown(r,e,t,a,n){const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const s=i.getSheetBySheetId(e);if(!s)return;const d=this._dataValidationModel.ensureManager(r,e).getRuleByLocation(t,a);if(!this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:r,sheetId:e})||!d)return;const h=this._dataValidatorRegistryService.getValidatorItem(d.type);if(!h||!h.dropdown){this.hideDropdown();return}this.showDropdown({location:{workbook:i,worksheet:s,row:t,col:a,unitId:r,subUnitId:e},componentKey:h.dropdown,onHide:n})}};Se=ga([ge(0,y.Inject(X.SheetCanvasPopManagerService)),ge(1,l.IUniverInstanceService),ge(2,y.Inject(X.SheetSkeletonManagerService)),ge(3,y.Inject(O.DataValidatorRegistryService)),ge(4,z.IZenZoneService),ge(5,K.IRenderManagerService),ge(6,y.Inject(O.DataValidationModel))],Se);class _e extends l.Disposable{constructor(){super(...arguments);M(this,"_open$",new re.BehaviorSubject(!1));M(this,"_activeRule");M(this,"_activeRule$",new re.BehaviorSubject(void 0));M(this,"open$",this._open$.pipe(re.distinctUntilChanged()));M(this,"activeRule$",this._activeRule$.asObservable())}get activeRule(){return this._activeRule}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}setActiveRule(e){this._activeRule=e,this._activeRule$.next(e)}}const wt="DataValidationPanel",Te={id:"data-validation.operation.open-validation-panel",type:l.CommandType.OPERATION,handler(o,r){if(!r)return!1;const{ruleId:e,isAdd:t}=r,a=o.get(_e),n=o.get(O.DataValidationModel),i=o.get(l.IUniverInstanceService),s=o.get(z.ISidebarService),u=i.getCurrentUniverSheetInstance(),d=u.getActiveSheet(),c=u.getUnitId(),h=d.getSheetId(),f=e?n.getRuleById(c,h,e):void 0;return a.open(),a.setActiveRule(f&&{unitId:c,subUnitId:h,rule:f}),s.open({header:{title:t?"dataValidation.panel.addTitle":"dataValidation.panel.title"},children:{label:wt},width:312}),!0}},yt={id:"data-validation.operation.close-validation-panel",type:l.CommandType.OPERATION,handler(o){return o.get(_e).close(),!0}},Sa={id:"data-validation.operation.toggle-validation-panel",type:l.CommandType.OPERATION,handler(o){const r=o.get(l.ICommandService),e=o.get(_e);return e.open(),e.isOpen?r.executeCommand(yt.id):r.executeCommand(Te.id),!0}},We={type:l.CommandType.OPERATION,id:"sheet.operation.show-data-validation-dropdown",handler(o,r){if(!r)return!1;const e=o.get(Se),{unitId:t,subUnitId:a,row:n,column:i}=r,s=e.activeDropdown,u=s==null?void 0:s.location;return u&&u.unitId===t&&u.subUnitId===a&&u.row===n&&u.col===i||e.showDataValidationDropdown(t,a,n,i),!0}},Et={type:l.CommandType.OPERATION,id:"sheet.operation.hide-data-validation-dropdown",handler(o,r){return r?(o.get(Se).hideDropdown(),!0):!1}};function Oe(o,r,e){const t=[],a=[];return e.forEach(n=>{switch(n.type){case"delete":t.push({id:O.RemoveDataValidationMutation.id,params:{unitId:o,subUnitId:r,ruleId:n.rule.uid}}),a.unshift({id:O.AddDataValidationMutation.id,params:{unitId:o,subUnitId:r,rule:n.rule,index:n.index}});break;case"update":{t.push({id:O.UpdateDataValidationMutation.id,params:{unitId:o,subUnitId:r,ruleId:n.ruleId,payload:{type:O.UpdateRuleType.RANGE,payload:n.newRanges}}}),a.unshift({id:O.UpdateDataValidationMutation.id,params:{unitId:o,subUnitId:r,ruleId:n.ruleId,payload:{type:O.UpdateRuleType.RANGE,payload:n.oldRanges}}});break}case"add":{t.push({id:O.AddDataValidationMutation.id,params:{unitId:o,subUnitId:r,rule:n.rule}}),a.unshift({id:O.RemoveDataValidationMutation.id,params:{unitId:o,subUnitId:r,ruleId:n.rule.uid}});break}}}),{redoMutations:t,undoMutations:a}}const rt={type:l.CommandType.COMMAND,id:"sheets.command.updateDataValidationRuleRange",async handler(o,r){if(!r)return!1;const{unitId:e,subUnitId:t,ranges:a,ruleId:n}=r,i=o.get(O.DataValidationModel),s=o.get(l.ICommandService),u=o.get(l.IUndoRedoService),d=i.ensureManager(e,t),c=d.getRuleById(n);if(!c)return!1;const h=c.ranges,f=d.getRuleObjectMatrix().clone();f.updateRange(n,h,a);const m=f.diff(d.getDataValidations()),{redoMutations:g,undoMutations:R}=Oe(e,t,m);return u.pushUndoRedo({undoMutations:R,redoMutations:g,unitID:e}),await l.sequenceExecuteAsync(g,s),!0}},He={type:l.CommandType.COMMAND,id:"sheets.command.addDataValidation",async handler(o,r){if(!r)return!1;const{unitId:e,subUnitId:t,rule:a}=r,n=o.get(O.DataValidationModel),i=o.get(l.ICommandService),s=o.get(l.IUndoRedoService),u=n.ensureManager(e,t),d=u.getRuleObjectMatrix().clone();d.addRule(a);const c=d.diff(u.getDataValidations()),h={unitId:e,subUnitId:t,rule:a},{redoMutations:f,undoMutations:m}=Oe(e,t,c);return f.push({id:O.AddDataValidationMutation.id,params:h}),m.unshift({id:O.RemoveDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid}}),s.pushUndoRedo({unitID:e,redoMutations:f,undoMutations:m}),await l.sequenceExecuteAsync(f,i),!0}},it={type:l.CommandType.COMMAND,id:"data-validation.command.addRuleAndOpen",async handler(o){const e=o.get(l.IUniverInstanceService).getCurrentUniverSheetInstance(),t=e.getActiveSheet(),a=O.createDefaultNewRule(o),n=o.get(l.ICommandService),i=e.getUnitId(),s=t.getSheetId(),u={rule:a,unitId:i,subUnitId:s};return await n.executeCommand(He.id,u)?(n.executeCommand(Te.id,{ruleId:a.uid,isAdd:!0}),!0):!1}};var ie=function(){return ie=Object.assign||function(o){for(var r,e=1,t=arguments.length;e<t;e++){r=arguments[e];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(o[a]=r[a])}return o},ie.apply(this,arguments)},_a=function(o,r){var e={};for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&r.indexOf(t)<0&&(e[t]=o[t]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,t=Object.getOwnPropertySymbols(o);a<t.length;a++)r.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(o,t[a])&&(e[t[a]]=o[t[a]]);return e},fe=B.forwardRef(function(o,r){var e=o.icon,t=o.id,a=o.className,n=o.extend,i=_a(o,["icon","id","className","extend"]),s="univerjs-icon univerjs-icon-".concat(t," ").concat(a||"").trim(),u=B.useRef("_".concat(Da()));return Ft(e,"".concat(t),{defIds:e.defIds,idSuffix:u.current},ie({ref:r,className:s},i),n)});function Ft(o,r,e,t,a){return B.createElement(o.tag,ie(ie({key:r},Ra(o,e,a)),t),(Ma(o,e).children||[]).map(function(n,i){return Ft(n,"".concat(r,"-").concat(o.tag,"-").concat(i),e,void 0,a)}))}function Ra(o,r,e){var t=ie({},o.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var a=r.defIds;return!a||a.length===0||(o.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+r.idSuffix),Object.entries(t).forEach(function(n){var i=n[0],s=n[1];typeof s=="string"&&(t[i]=s.replace(/url\(#(.*)\)/,"url(#$1".concat(r.idSuffix,")")))})),t}function Ma(o,r){var e,t=r.defIds;return!t||t.length===0?o:o.tag==="defs"&&(!((e=o.children)===null||e===void 0)&&e.length)?ie(ie({},o),{children:o.children.map(function(a){return typeof a.attrs.id=="string"&&t&&t.indexOf(a.attrs.id)>-1?ie(ie({},a),{attrs:ie(ie({},a.attrs),{id:a.attrs.id+r.idSuffix})}):a})}):o}function Da(){return Math.random().toString(36).substring(2,8)}fe.displayName="UniverIcon";var Va={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.44 3.57291C14.698 3.83093 14.698 4.24927 14.44 4.50729L6.44342 12.5037C6.28721 12.6599 6.03395 12.6599 5.87774 12.5037L1.55992 8.18578C1.3019 7.92776 1.3019 7.50942 1.55993 7.2514C1.81795 6.99338 2.23629 6.99338 2.49431 7.25141L6.01916 10.7763C6.09727 10.8544 6.2239 10.8544 6.30201 10.7763L13.5056 3.57291C13.7636 3.31489 14.1819 3.31489 14.44 3.57291Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Tt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"check-mark-single",ref:r,icon:Va}))});Tt.displayName="CheckMarkSingle";const Ia=Tt;var Ca={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{stroke:"currentColor",d:"M6.06964 2.57153H2.73631C2.36812 2.57153 2.06964 2.87001 2.06964 3.2382V6.57153C2.06964 6.93973 2.36812 7.2382 2.73631 7.2382H6.06964C6.43784 7.2382 6.73631 6.93973 6.73631 6.57153V3.2382C6.73631 2.87001 6.43784 2.57153 6.06964 2.57153zM6.06964 9.90479H2.73631C2.36812 9.90479 2.06964 10.2033 2.06964 10.5715V13.9048C2.06964 14.273 2.36812 14.5715 2.73631 14.5715H6.06964C6.43784 14.5715 6.73631 14.273 6.73631 13.9048V10.5715C6.73631 10.2033 6.43784 9.90479 6.06964 9.90479z",strokeLinejoin:"round",strokeWidth:1.33}},{tag:"path",attrs:{stroke:"currentColor",d:"M9.20471 5.06981L11.2023 6.73445 14.2047 3.73213M13.7047 10.238L9.70465 14.238M9.70477 10.238L13.7048 14.238",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.33}}]},bt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"data-validation-single",ref:r,icon:Ca}))});bt.displayName="DataValidationSingle";var Oa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.78662 6.17993C7.12169 6.17993 7.39331 6.45156 7.39331 6.78662V10.7301C7.39331 11.0652 7.12169 11.3368 6.78662 11.3368 6.45156 11.3368 6.17993 11.0652 6.17993 10.7301V6.78662C6.17993 6.45156 6.45156 6.17993 6.78662 6.17993zM9.82007 6.78662C9.82007 6.45156 9.54844 6.17993 9.21338 6.17993 8.87831 6.17993 8.60669 6.45156 8.60669 6.78662V10.7301C8.60669 11.0652 8.87831 11.3368 9.21338 11.3368 9.54844 11.3368 9.82007 11.0652 9.82007 10.7301V6.78662z"}},{tag:"path",attrs:{fill:"currentColor",d:"M6.57094 1.32642C6.34938 1.32642 6.14544 1.44719 6.03894 1.64148L5.21395 3.14648H1.93311C1.59804 3.14648 1.32642 3.41811 1.32642 3.75317C1.32642 4.08824 1.59804 4.35986 1.93311 4.35986H2.84314V14.0669C2.84314 14.402 3.11476 14.6736 3.44983 14.6736H12.5502C12.8852 14.6736 13.1569 14.402 13.1569 14.0669V4.35986H14.0669C14.402 4.35986 14.6736 4.08824 14.6736 3.75317C14.6736 3.41811 14.402 3.14648 14.0669 3.14648H10.7895L9.98357 1.64602C9.87785 1.4492 9.67252 1.32642 9.44911 1.32642H6.57094ZM9.4122 3.14648L9.08632 2.53979H6.93024L6.59767 3.14648H9.4122ZM4.05652 4.35986V13.4602H11.9435V4.35986H4.05652Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Lt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"delete-single",ref:r,icon:Oa}))});Lt.displayName="DeleteSingle";const At=Lt;var wa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_249",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_249)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.74717 2.0944C8.74717 1.68671 8.41279 1.3562 8.00032 1.3562C7.58785 1.3562 7.25347 1.68671 7.25347 2.0944V7.26186H2.02541C1.61294 7.26186 1.27856 7.59237 1.27856 8.00007C1.27856 8.40777 1.61294 8.73827 2.02541 8.73827H7.25347V13.9057C7.25347 14.3134 7.58785 14.6439 8.00032 14.6439C8.41279 14.6439 8.74717 14.3134 8.74717 13.9057V8.73827H13.975C14.3874 8.73827 14.7218 8.40777 14.7218 8.00007C14.7218 7.59237 14.3874 7.26186 13.975 7.26186H8.74717V2.0944Z"}}]}]},Nt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"increase-single",ref:r,icon:wa}))});Nt.displayName="IncreaseSingle";const ya=Nt;var Ea={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_556",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_556)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M0.629584 3.99986C1.13729 3.4922 1.9604 3.49224 2.46806 3.99995L7.57569 9.10806C7.81 9.3424 8.18992 9.3424 8.42424 9.10808L13.5323 3.99998C14.04 3.4923 14.8631 3.4923 15.3708 3.99998C15.8785 4.50766 15.8785 5.33078 15.3708 5.83846L9.41415 11.7951C8.63307 12.5762 7.36669 12.5762 6.58565 11.7951L0.629497 5.83834C0.121839 5.33063 0.121879 4.50752 0.629584 3.99986Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},jt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"more-down-single",ref:r,icon:Ea}))});jt.displayName="MoreDownSingle";const Fa=jt;var Ta={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_506_5",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M16 16H32V32H16z",transform:"rotate(180 16 16)"}}]},{tag:"g",attrs:{mask:"url(#mask0_506_5)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15.3704 12.0001C14.8627 12.5078 14.0396 12.5078 13.5319 12.0001L8.42431 6.89194C8.19 6.6576 7.81008 6.6576 7.57576 6.89192L2.46766 12C1.95998 12.5077 1.13687 12.5077 0.629185 12C0.121504 11.4923 0.121504 10.6692 0.629185 10.1615L6.58585 4.20487C7.36693 3.4238 8.63331 3.42383 9.41435 4.20494L15.3705 10.1617C15.8782 10.6694 15.8781 11.4925 15.3704 12.0001Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},Ut=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"more-up-single",ref:r,icon:Ta}))});Ut.displayName="MoreUpSingle";const ba=Ut;var La={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_622_8",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{fill:"currentColor",mask:"url(#mask0_622_8)"},children:[{tag:"path",attrs:{d:"M6 5C6.55228 5 7 4.55228 7 4 7 3.44772 6.55228 3 6 3 5.44772 3 5 3.44772 5 4 5 4.55228 5.44772 5 6 5zM6 9C6.55228 9 7 8.55229 7 8 7 7.44772 6.55228 7 6 7 5.44772 7 5 7.44772 5 8 5 8.55229 5.44772 9 6 9zM7 12C7 12.5523 6.55228 13 6 13 5.44772 13 5 12.5523 5 12 5 11.4477 5.44772 11 6 11 6.55228 11 7 11.4477 7 12zM10 5C10.5523 5 11 4.55228 11 4 11 3.44772 10.5523 3 10 3 9.44771 3 9 3.44772 9 4 9 4.55228 9.44771 5 10 5zM11 8C11 8.55229 10.5523 9 10 9 9.44771 9 9 8.55229 9 8 9 7.44772 9.44771 7 10 7 10.5523 7 11 7.44772 11 8zM10 13C10.5523 13 11 12.5523 11 12 11 11.4477 10.5523 11 10 11 9.44771 11 9 11.4477 9 12 9 12.5523 9.44771 13 10 13z"}}]}]},Pt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"sequence-single",ref:r,icon:La}))});Pt.displayName="SequenceSingle";const Aa=Pt,ot={dataValidationOptionsButton:"univer-data-validation-options-button",dataValidationOptionsButtonIcon:"univer-data-validation-options-button-icon"};function Na(o){var d;const r=Y.useDependency(l.LocaleService),e=Y.useDependency(z.ComponentManager),{value:t,onChange:a,extraComponent:n}=o,[i,s]=B.useState(!1),u=n?e.get(n):null;return p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:ot.dataValidationOptionsButton,onClick:()=>s(!i),children:[r.t("dataValidation.panel.options"),i?p.jsx(ba,{className:ot.dataValidationOptionsButtonIcon}):p.jsx(Fa,{className:ot.dataValidationOptionsButtonIcon})]}),i&&p.jsxs(p.Fragment,{children:[u?p.jsx(u,{value:t,onChange:a}):null,p.jsx(j.FormLayout,{label:r.t("dataValidation.panel.invalid"),children:p.jsxs(j.RadioGroup,{value:`${(d=t.errorStyle)!=null?d:l.DataValidationErrorStyle.WARNING}`,onChange:c=>a({...t,errorStyle:+c}),children:[p.jsx(j.Radio,{value:`${l.DataValidationErrorStyle.WARNING}`,children:r.t("dataValidation.panel.showWarning")}),p.jsx(j.Radio,{value:`${l.DataValidationErrorStyle.STOP}`,children:r.t("dataValidation.panel.rejectInput")})]})}),p.jsx(j.FormLayout,{label:r.t("dataValidation.panel.messageInfo"),children:p.jsx(j.Checkbox,{checked:t.showInputMessage,onChange:()=>a({...t,showInputMessage:!t.showInputMessage}),children:r.t("dataValidation.panel.showInfo")})}),t.showInputMessage?p.jsx(j.FormLayout,{children:p.jsx(j.Input,{value:t.error,onChange:c=>a({...t,error:c})})}):null]})]})}const we={dataValidationDetailFormItem:"univer-data-validation-detail-form-item",dataValidationDetailButtons:"univer-data-validation-detail-buttons",dataValidationDetailButton:"univer-data-validation-detail-button"},ja=o=>l.debounce(async(r,e,t,a)=>{const n=await o.executeCommand(r,e,t);a==null||a(n)},275);function Ua(){const[o,r]=B.useState(0),e=Y.useDependency(_e),t=z.useObservable(e.activeRule$,e.activeRule),{unitId:a,subUnitId:n,rule:i}=t||{},s=i.uid,u=Y.useDependency(O.DataValidatorRegistryService),d=Y.useDependency(z.ComponentManager),c=Y.useDependency(l.ICommandService),h=Y.useDependency(O.DataValidationModel),f=Y.useDependency(l.LocaleService),[m,g]=B.useState(i),R=u.getValidatorItem(m.type),[V,T]=B.useState(!1),b=u.getValidatorsByScope(O.DataValidatorRegistryScope.SHEET),[U,P]=B.useState(()=>m.ranges.map(I=>({unitId:"",sheetId:"",range:I}))),A=B.useMemo(()=>ja(c),[c]);if(B.useEffect(()=>{c.onCommandExecuted(I=>{(I.id===l.UndoCommand.id||I.id===l.RedoCommand.id)&&setTimeout(()=>{const w=h.getRuleById(a,n,s);r(x=>x+1),w&&(g(w),P(w.ranges.map(x=>({unitId:"",sheetId:"",range:x}))))},20)})},[c,h,s,n,a]),!R)return null;const N=R.operators,$=R.operatorNames,q=m.operator?O.TWO_FORMULA_OPERATOR_COUNT.includes(m.operator):!1,W=()=>{R.validatorFormula(m).success?e.setActiveRule(null):T(!0)},L=z.useEvent(I=>{if(l.isUnitRangesEqual(I,U))return;P(I);const w=I.filter(H=>(!H.unitId||H.unitId===a)&&(!H.sheetId||H.sheetId===n)).map(H=>H.range);g({...m,ranges:w});const x={unitId:a,subUnitId:n,ruleId:s,ranges:w};A(rt.id,x)}),E=I=>{if(l.shallowEqual(I,O.getRuleSetting(m)))return;g({...m,...I});const w={unitId:a,subUnitId:n,ruleId:s,setting:I};A(O.UpdateDataValidationSettingCommand.id,w,void 0)},k=async()=>{await c.executeCommand(O.RemoveDataValidationCommand.id,{ruleId:s,unitId:a,subUnitId:n}),e.setActiveRule(null)},G={type:m.type,operator:m.operator,formula1:m.formula1,formula2:m.formula2,allowBlank:m.allowBlank},F=I=>{const w=u.getValidatorItem(I);if(!w)return;const x=w.operators,H={...m,type:I,operator:x[0],...I===l.DataValidationType.CHECKBOX?{formula1:void 0,formula2:void 0}:null};g(H),c.executeCommand(O.UpdateDataValidationSettingCommand.id,{unitId:a,subUnitId:n,ruleId:m.uid,setting:O.getRuleSetting(H)})},S=d.get(R.formulaInput),_=U.map(I=>Q.serializeRange(I.range)).join(","),C=O.getRuleOptions(m),D=I=>{l.shallowEqual(I,O.getRuleOptions(m))||(g({...m,...I}),A(O.UpdateDataValidationOptionsCommand.id,{unitId:a,subUnitId:n,ruleId:s,options:I}))};return p.jsxs("div",{children:[p.jsx(j.FormLayout,{label:f.t("dataValidation.panel.range"),children:p.jsx(z.RangeSelector,{className:we.dataValidationDetailFormItem,value:_,id:l.createInternalEditorID("data-validation-detail"),openForSheetUnitId:a,openForSheetSubUnitId:n,onChange:I=>{I.some(w=>!l.isValidRange(w.range)||w.range.endColumn<w.range.startColumn||w.range.endRow<w.range.startRow)||L(I)}},o)}),p.jsx(j.FormLayout,{label:f.t("dataValidation.panel.type"),children:p.jsx(j.Select,{options:b==null?void 0:b.map(I=>({label:f.t(I.title),value:I.id})),value:m.type,onChange:F,className:we.dataValidationDetailFormItem})}),N!=null&&N.length?p.jsx(j.FormLayout,{label:f.t("dataValidation.panel.operator"),children:p.jsx(j.Select,{options:N.map((I,w)=>({value:`${I}`,label:$[w]})),value:`${m.operator}`,onChange:I=>{E({...G,operator:I})},className:we.dataValidationDetailFormItem})}):null,S?p.jsx(S,{isTwoFormula:q,value:{formula1:m.formula1,formula2:m.formula2},onChange:I=>{E({...G,...I})},showError:V,validResult:R.validatorFormula(m),unitId:a,subUnitId:n},o):null,p.jsx(Na,{value:C,onChange:D,extraComponent:R.optionsInput}),p.jsxs("div",{className:we.dataValidationDetailButtons,children:[p.jsx(j.Button,{className:we.dataValidationDetailButton,onClick:k,children:f.t("dataValidation.panel.removeRule")}),p.jsx(j.Button,{className:we.dataValidationDetailButton,type:"primary",onClick:W,children:f.t("dataValidation.panel.done")})]})]})}const qe={dataValidationItemContainer:"univer-data-validation-item-container",dataValidationItemTitle:"univer-data-validation-item-title",dataValidationItemContent:"univer-data-validation-item-content",dataValidationItemIcon:"univer-data-validation-item-icon"},Pa=o=>{const{rule:r,onClick:e,unitId:t,subUnitId:a}=o,n=Y.useDependency(O.DataValidatorRegistryService),i=Y.useDependency(l.ICommandService),s=Y.useDependency(X.IMarkSelectionService),u=n.getValidatorItem(r.type),d=B.useRef(),[c,h]=B.useState(!1),f=m=>{i.executeCommand(O.RemoveDataValidationCommand.id,{ruleId:r.uid,unitId:t,subUnitId:a}),m.stopPropagation()};return B.useEffect(()=>()=>{var m;d.current&&((m=d.current)==null||m.forEach(g=>{g&&s.removeShape(g)}))},[s]),p.jsxs("div",{className:qe.dataValidationItemContainer,onClick:e,onMouseEnter:()=>{h(!0),d.current=r.ranges.map(m=>s.addShape({range:m,style:{hasAutoFill:!1,fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:m.startColumn,endColumn:m.endColumn,startRow:m.startRow,endRow:m.endRow,actualRow:m.startRow,actualColumn:m.startColumn,isMerged:!1,isMergedMainCell:!1}}))},onMouseLeave:()=>{var m;h(!1),(m=d.current)==null||m.forEach(g=>{g&&s.removeShape(g)}),d.current=void 0},children:[p.jsx("div",{className:qe.dataValidationItemTitle,children:u==null?void 0:u.generateRuleName(r)}),p.jsx("div",{className:qe.dataValidationItemContent,children:r.ranges.map(m=>Q.serializeRange(m)).join(",")}),c?p.jsx("div",{className:qe.dataValidationItemIcon,onClick:f,children:p.jsx(At,{})}):null]})},st={dataValidationListButtons:"univer-data-validation-list-buttons",dataValidationListButton:"univer-data-validation-list-button"},Ba=B.memo(()=>{var R,V;const o=Y.useDependency(l.IUniverInstanceService),r=Y.useDependency(O.DataValidationModel),e=Y.useDependency(l.ICommandService),t=Y.useDependency(y.Injector),a=Y.useDependency(_e),n=(R=z.useObservable(o.currentSheet$,o.getCurrentUniverSheetInstance()))!=null?R:o.getCurrentUniverSheetInstance(),i=Y.useDependency(l.LocaleService),[s,u]=B.useState([]),d=(V=z.useObservable(n.activeSheet$,n.getActiveSheet()))!=null?V:n.getActiveSheet(),c=n.getUnitId(),h=d.getSheetId(),f=r.ensureManager(c,h);B.useEffect(()=>{u(f.getDataValidations());const T=f.dataValidations$.subscribe(b=>{u([...b])});return()=>{T.unsubscribe()}},[f]);const m=async()=>{const T=O.createDefaultNewRule(t),b={unitId:c,subUnitId:h,rule:T};await e.executeCommand(He.id,b),a.setActiveRule({unitId:c,subUnitId:h,rule:T})},g=()=>{e.executeCommand(O.RemoveAllDataValidationCommand.id,{unitId:c,subUnitId:h})};return p.jsxs("div",{children:[s.map(T=>p.jsx(Pa,{unitId:c,subUnitId:h,onClick:()=>a.setActiveRule({unitId:c,subUnitId:h,rule:T}),rule:T},T.uid)),p.jsxs("div",{className:st.dataValidationListButtons,children:[s.length?p.jsx(j.Button,{className:st.dataValidationListButton,onClick:g,children:i.t("dataValidation.panel.removeAll")}):null,p.jsx(j.Button,{className:st.dataValidationListButton,type:"primary",onClick:m,children:i.t("dataValidation.panel.add")})]})]})}),$a=()=>{const o=Y.useDependency(_e),r=z.useObservable(o.activeRule$,o.activeRule);return r?p.jsx(Ua,{},r.rule.uid):p.jsx(Ba,{})};function ae(o){if(o===null)return"";if(o!=null&&o.p){const r=o==null?void 0:o.p.body;if(r==null)return"";const e=r.dataStream;return e.substring(e.length-2,e.length)===l.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return o==null?void 0:o.v}function be(o,r,e,t){var u,d,c;const a=new Set,n=o.unitId||e,i=(u=r.getUniverSheetInstance(n))!=null?u:r.getCurrentUniverSheetInstance(),s=(c=(d=i.getSheetBySheetName(o.sheetName))!=null?d:i.getSheetBySheetId(t))!=null?c:i.getActiveSheet();return l.Range.foreach(o.range,(h,f)=>{const m=s.getCellRaw(h,f);if(!m)return;const g=ae(m);if(g==null||g==="")return;de(`${g}`).forEach(V=>{V&&a.add(`${g}`)})}),Array.from(a)}function Bt(o){return o.filter(Boolean).join(",")}function de(o){return o.split(",").filter(Boolean)}function xa(o){const r=ae(o);return r==null?"":r.toString()}const Ye="SHEET_DATA_VALIDATION",Re="#ECECEC",ce={dvListDropdown:"univer-dv-list-dropdown",dvListDropdownTitle:"univer-dv-list-dropdown-title",dvListDropdownList:"univer-dv-list-dropdown-list",dvListDropdownListContainer:"univer-dv-list-dropdown-list-container",dvListDropdownSelectedIcon:"univer-dv-list-dropdown-selected-icon",dvListDropdownItemContainer:"univer-dv-list-dropdown-item-container",dvListDropdownItem:"univer-dv-list-dropdown-item",dvListDropdownSplit:"univer-dv-list-dropdown-split",dvListDropdownEdit:"univer-dv-list-dropdown-edit"},ka=o=>{const{value:r,onChange:e,multiple:t,options:a,title:n,onEdit:i,style:s}=o;return p.jsxs("div",{className:ce.dvListDropdown,style:s,children:[p.jsx("div",{className:ce.dvListDropdownTitle,children:n}),p.jsx("div",{className:ce.dvListDropdownList,children:p.jsx(j.Scrollbar,{children:p.jsx("div",{className:ce.dvListDropdownListContainer,children:a.map((u,d)=>{const c=r.indexOf(u.value)>-1,h=()=>{let f;c?f=new Set(r.filter(g=>g!==u.value)):f=new Set(t?[...r,u.value]:[u.value]);const m=[];a.forEach(g=>{f.has(g.value)&&m.push(g.value)}),e(m)};return p.jsxs("div",{className:ce.dvListDropdownItemContainer,onClick:h,children:[p.jsx("div",{className:ce.dvListDropdownItem,style:{background:u.color||Re},children:u.label}),p.jsx("div",{className:ce.dvListDropdownSelectedIcon,children:c?p.jsx(Ia,{}):null})]},d)})})})}),p.jsx("div",{className:ce.dvListDropdownSplit}),p.jsx("div",{className:ce.dvListDropdownEdit,children:p.jsx("a",{onClick:i,children:"编辑"})})]})};function Wa(o){var q,W;const{location:r,hideFn:e}=o,{worksheet:t,row:a,col:n,unitId:i,subUnitId:s}=r,u=Y.useDependency(l.ICommandService),d=Y.useDependency(l.LocaleService),[c,h]=B.useState(""),f=Y.useDependency(X.IEditorBridgeService),m=j.RectPopup.useContext(),g=m.right-m.left;if(!t)return null;const R=t.getCell(a,n),V=(q=R==null?void 0:R.dataValidation)==null?void 0:q.rule,T=(W=R==null?void 0:R.dataValidation)==null?void 0:W.validator,b=(V==null?void 0:V.renderMode)===l.DataValidationRenderMode.CUSTOM||(V==null?void 0:V.renderMode)===void 0;if(!R||!V||!T)return;const U=V.type===l.DataValidationType.LIST_MULTIPLE,P=T.getListWithColor(V,i,s),A=c||xa(R),N=de(A),$=()=>{u.executeCommand(Te.id,{ruleId:V.uid}),e()};return p.jsx(ka,{style:{minWidth:g,maxWidth:Math.max(g,200)},title:U?d.t("dataValidation.listMultiple.dropdown"):d.t("dataValidation.list.dropdown"),value:N,multiple:U,onChange:L=>{const E=Bt(L),k={unitId:i,subUnitId:s,range:{startColumn:n,endColumn:n,startRow:a,endRow:a},value:{v:E,p:null,f:null,si:null}};f.isVisible()&&f.changeVisible({visible:!1,keycode:z.KeyCode.ESC,eventType:K.DeviceInputEventType.Keyboard}),u.executeCommand(ne.SetRangeValuesCommand.id,k),h(E),U||e()},options:P.map(L=>({label:L.label,value:L.label,color:b?L.color:"transparent"})),onEdit:$})}var $t={exports:{}};(function(o,r){(function(e,t){o.exports=t()})(oa,function(){var e=1e3,t=6e4,a=36e5,n="millisecond",i="second",s="minute",u="hour",d="day",c="week",h="month",f="quarter",m="year",g="date",R="Invalid Date",V=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,T=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(F){var S=["th","st","nd","rd"],_=F%100;return"["+F+(S[(_-20)%10]||S[_]||S[0])+"]"}},U=function(F,S,_){var C=String(F);return!C||C.length>=S?F:""+Array(S+1-C.length).join(_)+F},P={s:U,z:function(F){var S=-F.utcOffset(),_=Math.abs(S),C=Math.floor(_/60),D=_%60;return(S<=0?"+":"-")+U(C,2,"0")+":"+U(D,2,"0")},m:function F(S,_){if(S.date()<_.date())return-F(_,S);var C=12*(_.year()-S.year())+(_.month()-S.month()),D=S.clone().add(C,h),I=_-D<0,w=S.clone().add(C+(I?-1:1),h);return+(-(C+(_-D)/(I?D-w:w-D))||0)},a:function(F){return F<0?Math.ceil(F)||0:Math.floor(F)},p:function(F){return{M:h,y:m,w:c,d,D:g,h:u,m:s,s:i,ms:n,Q:f}[F]||String(F||"").toLowerCase().replace(/s$/,"")},u:function(F){return F===void 0}},A="en",N={};N[A]=b;var $="$isDayjsObject",q=function(F){return F instanceof k||!(!F||!F[$])},W=function F(S,_,C){var D;if(!S)return A;if(typeof S=="string"){var I=S.toLowerCase();N[I]&&(D=I),_&&(N[I]=_,D=I);var w=S.split("-");if(!D&&w.length>1)return F(w[0])}else{var x=S.name;N[x]=S,D=x}return!C&&D&&(A=D),D||!C&&A},L=function(F,S){if(q(F))return F.clone();var _=typeof S=="object"?S:{};return _.date=F,_.args=arguments,new k(_)},E=P;E.l=W,E.i=q,E.w=function(F,S){return L(F,{locale:S.$L,utc:S.$u,x:S.$x,$offset:S.$offset})};var k=function(){function F(_){this.$L=W(_.locale,null,!0),this.parse(_),this.$x=this.$x||_.x||{},this[$]=!0}var S=F.prototype;return S.parse=function(_){this.$d=function(C){var D=C.date,I=C.utc;if(D===null)return new Date(NaN);if(E.u(D))return new Date;if(D instanceof Date)return new Date(D);if(typeof D=="string"&&!/Z$/i.test(D)){var w=D.match(V);if(w){var x=w[2]-1||0,H=(w[7]||"0").substring(0,3);return I?new Date(Date.UTC(w[1],x,w[3]||1,w[4]||0,w[5]||0,w[6]||0,H)):new Date(w[1],x,w[3]||1,w[4]||0,w[5]||0,w[6]||0,H)}}return new Date(D)}(_),this.init()},S.init=function(){var _=this.$d;this.$y=_.getFullYear(),this.$M=_.getMonth(),this.$D=_.getDate(),this.$W=_.getDay(),this.$H=_.getHours(),this.$m=_.getMinutes(),this.$s=_.getSeconds(),this.$ms=_.getMilliseconds()},S.$utils=function(){return E},S.isValid=function(){return this.$d.toString()!==R},S.isSame=function(_,C){var D=L(_);return this.startOf(C)<=D&&D<=this.endOf(C)},S.isAfter=function(_,C){return L(_)<this.startOf(C)},S.isBefore=function(_,C){return this.endOf(C)<L(_)},S.$g=function(_,C,D){return E.u(_)?this[C]:this.set(D,_)},S.unix=function(){return Math.floor(this.valueOf()/1e3)},S.valueOf=function(){return this.$d.getTime()},S.startOf=function(_,C){var D=this,I=!!E.u(C)||C,w=E.p(_),x=function(Ce,te){var ve=E.w(D.$u?Date.UTC(D.$y,te,Ce):new Date(D.$y,te,Ce),D);return I?ve:ve.endOf(d)},H=function(Ce,te){return E.w(D.toDate()[Ce].apply(D.toDate("s"),(I?[0,0,0,0]:[23,59,59,999]).slice(te)),D)},Z=this.$W,J=this.$M,oe=this.$D,Fe="set"+(this.$u?"UTC":"");switch(w){case m:return I?x(1,0):x(31,11);case h:return I?x(1,J):x(0,J+1);case c:var Ie=this.$locale().weekStart||0,$e=(Z<Ie?Z+7:Z)-Ie;return x(I?oe-$e:oe+(6-$e),J);case d:case g:return H(Fe+"Hours",0);case u:return H(Fe+"Minutes",1);case s:return H(Fe+"Seconds",2);case i:return H(Fe+"Milliseconds",3);default:return this.clone()}},S.endOf=function(_){return this.startOf(_,!1)},S.$set=function(_,C){var D,I=E.p(_),w="set"+(this.$u?"UTC":""),x=(D={},D[d]=w+"Date",D[g]=w+"Date",D[h]=w+"Month",D[m]=w+"FullYear",D[u]=w+"Hours",D[s]=w+"Minutes",D[i]=w+"Seconds",D[n]=w+"Milliseconds",D)[I],H=I===d?this.$D+(C-this.$W):C;if(I===h||I===m){var Z=this.clone().set(g,1);Z.$d[x](H),Z.init(),this.$d=Z.set(g,Math.min(this.$D,Z.daysInMonth())).$d}else x&&this.$d[x](H);return this.init(),this},S.set=function(_,C){return this.clone().$set(_,C)},S.get=function(_){return this[E.p(_)]()},S.add=function(_,C){var D,I=this;_=Number(_);var w=E.p(C),x=function(J){var oe=L(I);return E.w(oe.date(oe.date()+Math.round(J*_)),I)};if(w===h)return this.set(h,this.$M+_);if(w===m)return this.set(m,this.$y+_);if(w===d)return x(1);if(w===c)return x(7);var H=(D={},D[s]=t,D[u]=a,D[i]=e,D)[w]||1,Z=this.$d.getTime()+_*H;return E.w(Z,this)},S.subtract=function(_,C){return this.add(-1*_,C)},S.format=function(_){var C=this,D=this.$locale();if(!this.isValid())return D.invalidDate||R;var I=_||"YYYY-MM-DDTHH:mm:ssZ",w=E.z(this),x=this.$H,H=this.$m,Z=this.$M,J=D.weekdays,oe=D.months,Fe=D.meridiem,Ie=function(te,ve,xe,at){return te&&(te[ve]||te(C,I))||xe[ve].slice(0,at)},$e=function(te){return E.s(x%12||12,te,"0")},Ce=Fe||function(te,ve,xe){var at=te<12?"AM":"PM";return xe?at.toLowerCase():at};return I.replace(T,function(te,ve){return ve||function(xe){switch(xe){case"YY":return String(C.$y).slice(-2);case"YYYY":return E.s(C.$y,4,"0");case"M":return Z+1;case"MM":return E.s(Z+1,2,"0");case"MMM":return Ie(D.monthsShort,Z,oe,3);case"MMMM":return Ie(oe,Z);case"D":return C.$D;case"DD":return E.s(C.$D,2,"0");case"d":return String(C.$W);case"dd":return Ie(D.weekdaysMin,C.$W,J,2);case"ddd":return Ie(D.weekdaysShort,C.$W,J,3);case"dddd":return J[C.$W];case"H":return String(x);case"HH":return E.s(x,2,"0");case"h":return $e(1);case"hh":return $e(2);case"a":return Ce(x,H,!0);case"A":return Ce(x,H,!1);case"m":return String(H);case"mm":return E.s(H,2,"0");case"s":return String(C.$s);case"ss":return E.s(C.$s,2,"0");case"SSS":return E.s(C.$ms,3,"0");case"Z":return w}return null}(te)||w.replace(":","")})},S.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},S.diff=function(_,C,D){var I,w=this,x=E.p(C),H=L(_),Z=(H.utcOffset()-this.utcOffset())*t,J=this-H,oe=function(){return E.m(w,H)};switch(x){case m:I=oe()/12;break;case h:I=oe();break;case f:I=oe()/3;break;case c:I=(J-Z)/6048e5;break;case d:I=(J-Z)/864e5;break;case u:I=J/a;break;case s:I=J/t;break;case i:I=J/e;break;default:I=J}return D?I:E.a(I)},S.daysInMonth=function(){return this.endOf(h).$D},S.$locale=function(){return N[this.$L]},S.locale=function(_,C){if(!_)return this.$L;var D=this.clone(),I=W(_,C,!0);return I&&(D.$L=I),D},S.clone=function(){return E.w(this.$d,this)},S.toDate=function(){return new Date(this.valueOf())},S.toJSON=function(){return this.isValid()?this.toISOString():null},S.toISOString=function(){return this.$d.toISOString()},S.toString=function(){return this.$d.toUTCString()},F}(),G=k.prototype;return L.prototype=G,[["$ms",n],["$s",i],["$m",s],["$H",u],["$W",d],["$M",h],["$y",m],["$D",g]].forEach(function(F){G[F[1]]=function(S){return this.$g(S,F[0],F[1])}}),L.extend=function(F,S){return F.$i||(F(S,k,L),F.$i=!0),L},L.locale=W,L.isDayjs=q,L.unix=function(F){return L(1e3*F)},L.en=N[A],L.Ls=N,L.p={},L})})($t);var Ha=$t.exports;const Me=sa(Ha),qa={dvDateDropdown:"univer-dv-date-dropdown"};function Ya(o){var T,b,U;const{location:r,hideFn:e}=o,{worksheet:t,row:a,col:n,unitId:i,subUnitId:s}=r,u=Y.useDependency(l.ICommandService),[d,c]=B.useState();if(!t)return null;const h=t.getCell(a,n),f=(T=h==null?void 0:h.dataValidation)==null?void 0:T.rule,m=(b=h==null?void 0:h.dataValidation)==null?void 0:b.validator;if(!h||!f||!m)return;const g=ae(h),R=(U=m.transformDate(g))!=null?U:Me(),V=R.isValid()?R:Me();return p.jsx("div",{className:qa.dvDateDropdown,children:p.jsx(j.DatePanel,{pickerValue:d!=null?d:V,onSelect:P=>{const A=P.format("YYYY/MM/DD");u.executeCommand(ne.SetRangeValuesCommand.id,{unitId:i,subUnitId:s,range:{startColumn:n,endColumn:n,startRow:a,endRow:a},value:{v:A,p:null,f:null,si:null}}),e()},onPanelChange:P=>{c(P)}})})}const lt="data-validation.list.dropdown",xt="data-validation.date.dropdown";function za(o){var u;const{unitId:r,subUnitId:e,value:t,onChange:a,showError:n,validResult:i}=o,s=n?i==null?void 0:i.formula1:"";return p.jsx(j.FormLayout,{error:s,children:p.jsx(z.TextEditor,{value:(u=t==null?void 0:t.formula1)!=null?u:"",id:l.createInternalEditorID(`dataValidation-custom-formula-${r}-${e}`),onChange:d=>{a==null||a({...t,formula1:d!=null?d:""})},onlyInputFormula:!0})})}const ee={dataValidationFormula:"univer-data-validation-formula",dataValidationFormulaAnd:"univer-data-validation-formula-and",dataValidationFormulaListItem:"univer-data-validation-formula-list-item",dataValidationFormulaListItemIcon:"univer-data-validation-formula-list-item-icon",dataValidationFormulaListItemDrag:"univer-data-validation-formula-list-item-drag",dataValidationFormulaListAdd:"univer-data-validation-formula-list-add",dataValidationFormulaColorSelect:"univer-data-validation-formula-color-select",dataValidationFormulaColorSelectPanel:"univer-data-validation-formula-color-select-panel",dataValidationFormulaColorItem:"univer-data-validation-formula-color-item"},Ga=o=>{const{isTwoFormula:r=!1,value:e,onChange:t,showError:a,validResult:n}=o,i=Y.useDependency(l.LocaleService),s=a?n==null?void 0:n.formula1:"",u=a?n==null?void 0:n.formula2:"";return r?p.jsxs(p.Fragment,{children:[p.jsx(j.FormLayout,{error:s,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:d=>{t==null||t({...e,formula1:d})}})}),p.jsx("div",{className:ee.dataValidationFormulaAnd,children:i.t("dataValidation.panel.formulaAnd")}),p.jsx(j.FormLayout,{error:u,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula2,onChange:d=>{t==null||t({...e,formula2:d})}})})]}):p.jsx(j.FormLayout,{error:s,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:d=>{t==null||t({formula1:d})}})})};function Xa(o){return Number.isNaN(o.startColumn)||Number.isNaN(o.endColumn)||Number.isNaN(o.startRow)||Number.isNaN(o.endRow)}const Qa=["#FFFFFF","#FEE7E7","#FEF0E6","#EFFBD0","#E4F4FE","#E8ECFD","#F1EAFA","#FDE8F3","#E5E5E5","#FDCECE","#FDC49B","#DEF6A2","#9FDAFF","#D0D9FB","#E3D5F6","#FBD0E8","#656565","#FE4B4B","#FF8C51","#8BBB11","#0B9EFB","#3A60F7","#9E6DE3","#F248A6"],Ka=o=>{const{value:r,onChange:e,disabled:t}=o,[a,n]=B.useState(!1);return p.jsx(j.Select,{disabled:t,open:a,onDropdownVisibleChange:n,dropdownStyle:{width:112},className:ee.dataValidationFormulaColorSelect,value:r,onChange:e,labelRender:i=>p.jsx("div",{className:ee.dataValidationFormulaColorItem,style:{background:i.value}}),dropdownRender:()=>p.jsx("div",{className:ee.dataValidationFormulaColorSelectPanel,children:Qa.map(i=>p.jsx("div",{onClick:()=>{e(i),n(!1)},className:ee.dataValidationFormulaColorItem,style:{background:i}},i))})})},kt=o=>{const{item:r,commonProps:e,style:t}=o,{onItemChange:a,onItemDelete:n}=e;return p.jsxs("div",{className:ee.dataValidationFormulaListItem,style:t,children:[r.isRef?null:p.jsx("div",{className:ia(ee.dataValidationFormulaListItemDrag,"draggableHandle"),children:p.jsx(Aa,{})}),p.jsx(Ka,{value:r.color,onChange:i=>{a(r.id,r.label,i)}}),p.jsx(j.Input,{disabled:r.isRef,value:r.label,onChange:i=>{a(r.id,i,r.color)}}),r.isRef?null:p.jsx("div",{className:ee.dataValidationFormulaListItemIcon,children:p.jsx(At,{onClick:()=>n(r.id)})})]})};function Za(o){const{value:r,onChange:e=()=>{},unitId:t,subUnitId:a,validResult:n,showError:i}=o,{formula1:s="",formula2:u=""}=r||{},d=B.useRef(null),[c,h]=B.useState(()=>Q.isReferenceString(s)?"1":"0"),[f,m]=B.useState(c==="1"?s:""),g=Y.useDependency(l.LocaleService),R=Y.useDependency(l.IUniverInstanceService),V=R.getCurrentUniverSheetInstance(),T=V.getActiveSheet(),[b,U]=B.useState(()=>u.split(",")),P=i?n==null?void 0:n.formula1:"",A=z.useEvent(e),[N,$]=B.useState(()=>{const S=c!=="1"?de(s):[],_=u.split(",");return S.map((C,D)=>({label:C,color:_[D]||Re,isRef:!1,id:l.Tools.generateRandomId(4)}))}),q=(S,_,C)=>{const D=N.find(I=>I.id===S);D&&(D.label=_,D.color=C,$([...N]))},W=S=>{const _=N.findIndex(C=>C.id===S);_!==-1&&(N.splice(_,1),$([...N]))},L=B.useMemo(()=>be(Q.deserializeRangeWithSheet(f),R,V.getUnitId(),T.getSheetId()),[f,R,V,T]),E=u.split(","),k=B.useMemo(()=>L.map((S,_)=>({label:S,color:E[_]||Re,id:`${_}`,isRef:!0})),[E,L]),G=(S,_,C)=>{const D=[...b];D[+S]=C,U(D),A({formula1:s,formula2:D.join(",")})},F=()=>{$([...N,{label:"",color:Re,isRef:!1,id:l.Tools.generateRandomId(4)}])};return B.useEffect(()=>{const S=new Set,_=[];N.map(C=>({labelList:C.label.split(","),item:C})).forEach(({item:C,labelList:D})=>{D.forEach(I=>{S.has(I)||(S.add(I),_.push({label:I,color:C.color}))})}),A({formula1:Bt(_.map(C=>C.label)),formula2:_.map(C=>C.color===Re?"":C.color).join(",")})},[N,A]),p.jsxs(p.Fragment,{children:[p.jsx(j.FormLayout,{label:g.t("dataValidation.list.options"),children:p.jsxs(j.RadioGroup,{value:c,onChange:S=>h(S),children:[p.jsx(j.Radio,{value:"0",children:g.t("dataValidation.list.customOptions")}),p.jsx(j.Radio,{value:"1",children:g.t("dataValidation.list.refOptions")})]})}),c==="1"?p.jsxs(p.Fragment,{children:[p.jsx(j.FormLayout,{error:P,children:p.jsx(z.RangeSelector,{id:l.createInternalEditorID(`list-ref-range-${t}-${a}`),value:f,openForSheetUnitId:t,openForSheetSubUnitId:a,onChange:S=>{var C,D;const _=S[0];if(!_||Xa(_.range))A==null||A({formula1:"",formula2:u}),m("");else{const I=(C=R.getUniverSheetInstance(_.unitId))!=null?C:R.getCurrentUniverSheetInstance(),w=(D=I==null?void 0:I.getSheetBySheetId(_.sheetId))!=null?D:I.getActiveSheet(),x=Q.serializeRangeWithSheet(w.getName(),_.range);A==null||A({formula1:x,formula2:u}),m(x)}},isSingleChoice:!0})}),p.jsx(j.FormLayout,{children:p.jsx("div",{ref:d,children:k.map(S=>p.jsx(kt,{item:S,commonProps:{onItemChange:G},style:{marginBottom:12}},S.id))})})]}):p.jsx(j.FormLayout,{error:P,children:p.jsxs("div",{ref:d,style:{margin:"-12px 0"},children:[p.jsx(j.DraggableList,{list:N,onListChange:$,rowHeight:32,margin:[0,12],itemRender:S=>p.jsx(kt,{item:S,commonProps:{onItemChange:q,onItemDelete:W}},S.id),idKey:"id"}),p.jsxs("a",{className:ee.dataValidationFormulaListAdd,onClick:F,children:[p.jsx(ya,{}),g.t("dataValidation.list.add")]})]})})]})}function Ja(o){const{value:r,onChange:e,showError:t,validResult:a}=o,n=Y.useDependency(l.LocaleService),i=t?a==null?void 0:a.formula1:"",s=t?a==null?void 0:a.formula2:"",[u,d]=B.useState(!((r==null?void 0:r.formula1)===void 0&&(r==null?void 0:r.formula2)===void 0));return p.jsxs(p.Fragment,{children:[p.jsx(j.FormLayout,{children:p.jsx(j.Checkbox,{checked:u,onChange:c=>{c?d(!0):(d(!1),e==null||e({...r,formula1:void 0,formula2:void 0}))},children:n.t("dataValidation.checkbox.tips")})}),u?p.jsx(j.FormLayout,{label:n.t("dataValidation.checkbox.checked"),error:i,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:n.t("dataValidation.panel.formulaPlaceholder"),value:r==null?void 0:r.formula1,onChange:c=>{e==null||e({...r,formula1:c})}})}):null,u?p.jsx(j.FormLayout,{label:n.t("dataValidation.checkbox.unchecked"),error:s,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:n.t("dataValidation.panel.formulaPlaceholder"),value:r==null?void 0:r.formula2,onChange:c=>{e==null||e({...r,formula2:c})}})}):null]})}const Wt="data-validation.custom-formula-input",Le="data-validation.formula-input",ut="data-validation.list-formula-input",Ht="data-validation.checkbox-formula-input",en=[[Wt,za],[Le,Ga],[ut,Za],[Ht,Ja]],tn="LIST_RENDER_MODE_OPTION_INPUT";function ze(o){var a;const{value:r,onChange:e}=o,t=Y.useDependency(l.LocaleService);return p.jsx(j.FormLayout,{label:t.t("dataValidation.renderMode.label"),children:p.jsxs(j.RadioGroup,{value:`${(a=r.renderMode)!=null?a:l.DataValidationRenderMode.CUSTOM}`,onChange:n=>e({...r,renderMode:+n}),children:[p.jsx(j.Radio,{value:`${l.DataValidationRenderMode.CUSTOM}`,children:t.t("dataValidation.renderMode.chip")}),p.jsx(j.Radio,{value:`${l.DataValidationRenderMode.ARROW}`,children:t.t("dataValidation.renderMode.arrow")}),p.jsx(j.Radio,{value:`${l.DataValidationRenderMode.TEXT}`,children:t.t("dataValidation.renderMode.text")})]})})}ze.componentKey=tn;const qt="data-validation-single",dt="sheet.menu.data-validation";function an(o){return{id:dt,type:z.MenuItemType.SUBITEMS,positions:[z.MenuPosition.TOOLBAR_START],group:z.MenuGroup.TOOLBAR_FORMULAS_INSERT,icon:qt,tooltip:"dataValidation.title",hidden$:z.getMenuHiddenObservable(o,l.UniverInstanceType.SHEET)}}function nn(o){return{id:Te.id,title:"dataValidation.panel.title",type:z.MenuItemType.BUTTON,positions:[dt]}}function rn(o){return{id:it.id,title:"dataValidation.panel.add",type:z.MenuItemType.BUTTON,positions:[dt]}}var on=Object.defineProperty,sn=Object.getOwnPropertyDescriptor,ln=(o,r,e,t)=>{for(var a=t>1?void 0:t?sn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&on(r,e,a),a},se=(o,r)=>(e,t)=>r(e,t,o);const un={tr:{size:6,color:"#fe4b4b"}};v.DataValidationRenderController=class extends l.RxDisposable{constructor(r,e,t,a,n,i,s,u,d,c,h){super(),this._componentManager=r,this._menuService=e,this._dataValidationModel=t,this._sheetSkeletonManagerService=a,this._renderManagerService=n,this._univerInstanceService=i,this._dataValidatorRegistryService=s,this._editorBridgeService=u,this._dropdownManagerService=d,this._sheetInterceptorService=c,this._injector=h,this._init()}_init(){this._initComponents(),this._initMenu(),this._initSkeletonChange(),this._initDropdown(),this._initViewModelIntercept()}_initMenu(){[an,nn,rn].forEach(r=>{this.disposeWithMe(this._menuService.addMenuItem(r(this._injector)))})}_initComponents(){[[wt,$a],[Ot,fa],[lt,Wa],[xt,Ya],[ze.componentKey,ze],...en].forEach(([r,e])=>{this.disposeWithMe(this._componentManager.register(r,e))})}_initDropdown(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(r=>{if(!r.visible)return;const e=this._editorBridgeService.getEditCellState();if(e){const{unitId:t,sheetId:a,row:n,column:i}=e,s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const d=this._dataValidationModel.ensureManager(t,a).getRuleByLocation(n,i);if(!d)return;const c=this._dataValidatorRegistryService.getValidatorItem(d.type);if(!(c!=null&&c.dropdown))return;const h=s.getActiveSheet(),f=this._dropdownManagerService.activeDropdown,m=f==null?void 0:f.location;if(m&&m.unitId===t&&m.subUnitId===a&&m.row===n&&m.col===i)return;this._dropdownManagerService.showDropdown({location:{unitId:t,subUnitId:a,row:n,col:i,workbook:s,worksheet:h},componentKey:c.dropdown,onHide:()=>{}})}}))}_initSkeletonChange(){const r=()=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),a=e.getActiveSheet().getSheetId(),n=this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:t,sheetId:a}),i=this._renderManagerService.getRenderById(t);n==null||n.makeDirty(!0),n==null||n.calculate(),i&&i.mainComponent.makeForceDirty()};this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(()=>{r()})),this.disposeWithMe(this._dataValidationModel.validStatusChange$.subscribe(()=>{r()}))}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(ne.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(r,e,t)=>{var U,P,A,N;const{row:a,col:n,unitId:i,subUnitId:s}=e,u=this._dataValidationModel.ensureManager(i,s),d=(U=this._sheetSkeletonManagerService.getCurrent())==null?void 0:U.skeleton;if(!u||!d)return t(r);const c=e.workbook.getStyles(),h=(typeof(r==null?void 0:r.s)=="string"?c.get(r==null?void 0:r.s):r==null?void 0:r.s)||{},f=u.getRuleIdByLocation(a,n);if(!f)return t(r);const m=u.getRuleById(f);if(!m)return t(r);const g=e.worksheet.getCellRaw(e.row,e.col),R=this._dataValidationModel.validator(ae(g),m,e),V=this._dataValidatorRegistryService.getValidatorItem(m.type),T=ae(r);let b={};if((m.type===l.DataValidationType.LIST||m.type===l.DataValidationType.LIST_MULTIPLE)&&(b={interceptorStyle:{...r==null?void 0:r.interceptorStyle,tb:(P=h.tb!==l.WrapStrategy.OVERFLOW?h.tb:l.WrapStrategy.CLIP)!=null?P:l.WrapStrategy.WRAP}}),m.type===l.DataValidationType.CHECKBOX){const{formula2:$}=V.parseFormulaSync(m,e.unitId,e.subUnitId);T||(b={v:$,t:1,p:null,interceptorStyle:{...r==null?void 0:r.interceptorStyle,tb:l.WrapStrategy.CLIP}})}if(m.type===l.DataValidationType.LIST&&(m.renderMode===l.DataValidationRenderMode.ARROW||m.renderMode===l.DataValidationRenderMode.TEXT)){const $=V.getListWithColorMap(m),q=`${(A=ae(r))!=null?A:""}`,W=$[q];W&&(b={...b,interceptorStyle:{...b.interceptorStyle,bg:{rgb:W}}})}return t({...r,...b,dataValidation:{ruleId:f,validStatus:R,rule:m,validator:V},markers:{...r==null?void 0:r.markers,...R===l.DataValidationStatus.INVALID?un:null},customRender:[...(N=r==null?void 0:r.customRender)!=null?N:[],...V!=null&&V.canvasRender?[V.canvasRender]:[]],fontRenderExtension:{...r==null?void 0:r.fontRenderExtension,isSkip:V==null?void 0:V.skipDefaultFontRender(m,T,e)},interceptorStyle:{...r==null?void 0:r.interceptorStyle,...b.interceptorStyle},get interceptorAutoHeight(){var W,L,E,k;const $=d.mergeData.find(G=>{const{startColumn:F,startRow:S,endColumn:_,endRow:C}=G;return a>=S&&n>=F&&a<=C&&n<=_}),q={data:{...r,dataValidation:{ruleId:f,validStatus:R,rule:m,validator:V}},style:d.getsStyles().getStyleByCell(r),primaryWithCoord:d.getCellByIndex((W=$==null?void 0:$.startRow)!=null?W:a,(L=$==null?void 0:$.startColumn)!=null?L:n),unitId:i,subUnitId:s,row:a,col:n};return(k=(E=V==null?void 0:V.canvasRender)==null?void 0:E.calcCellAutoHeight)==null?void 0:k.call(E,q)}})}}))}},v.DataValidationRenderController=ln([l.OnLifecycle(l.LifecycleStages.Rendered,v.DataValidationRenderController),se(0,y.Inject(z.ComponentManager)),se(1,z.IMenuService),se(2,y.Inject(O.DataValidationModel)),se(3,y.Inject(X.SheetSkeletonManagerService)),se(4,K.IRenderManagerService),se(5,l.IUniverInstanceService),se(6,y.Inject(O.DataValidatorRegistryService)),se(7,X.IEditorBridgeService),se(8,y.Inject(Se)),se(9,y.Inject(ne.SheetInterceptorService)),se(10,y.Inject(y.Injector))],v.DataValidationRenderController);var dn=Object.defineProperty,cn=Object.getOwnPropertyDescriptor,hn=(o,r,e,t)=>{for(var a=t>1?void 0:t?cn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&dn(r,e,a),a},mn=(o,r)=>(e,t)=>r(e,t,o);v.SheetDataValidationService=class{constructor(r){M(this,"_currentManager");M(this,"_currentManager$",new re.Subject);M(this,"currentManager$",this._currentManager$.asObservable());this._dataValidationModel=r}get currentManager(){return this._currentManager}_ensureManager(r,e){return this._dataValidationModel.ensureManager(r,e)}switchCurrent(r,e){var a,n;if(r===((a=this.currentManager)==null?void 0:a.unitId)&&e===((n=this._currentManager)==null?void 0:n.subUnitId))return;const t=this._ensureManager(r,e);this._currentManager={manager:t,unitId:r,subUnitId:e},this._currentManager$.next(this._currentManager)}get(r,e){return this._ensureManager(r,e)}},v.SheetDataValidationService=hn([mn(0,y.Inject(O.DataValidationModel))],v.SheetDataValidationService);var Ae=(o=>(o[o.NOT_REGISTER=1]="NOT_REGISTER",o[o.SUCCESS=2]="SUCCESS",o[o.WAIT=3]="WAIT",o[o.ERROR=4]="ERROR",o))(Ae||{}),fn=Object.defineProperty,pn=Object.getOwnPropertyDescriptor,vn=(o,r,e,t)=>{for(var a=t>1?void 0:t?pn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&fn(r,e,a),a},Yt=(o,r)=>(e,t)=>r(e,t,o);v.RegisterOtherFormulaService=class extends l.Disposable{constructor(e,t){super();M(this,"_formulaCacheMap",new Map);M(this,"_formulaChange$",new re.Subject);M(this,"formulaChange$",this._formulaChange$.asObservable());M(this,"_formulaResult$",new re.Subject);M(this,"formulaResult$",this._formulaResult$.asObservable());this._commandService=e,this._activeDirtyManagerService=t,this._initFormulaRegister(),this._initFormulaCalculationResultChange()}_ensureCacheMap(e,t){let a=this._formulaCacheMap.get(e);a||(a=new Map,this._formulaCacheMap.set(e,a));let n=a.get(t);return n||(n=new Map,a.set(t,n)),n}_createFormulaId(e,t){return`sheet.dv_${e}_${t}_${l.Tools.generateRandomId(8)}`}_initFormulaRegister(){this._activeDirtyManagerService.register(O.DataValidationFormulaMarkDirty.id,{commandId:O.DataValidationFormulaMarkDirty.id,getDirtyData(e){return{dirtyUnitOtherFormulaMap:e.params}}}),this.formulaChange$.pipe(re.bufferTime(16),re.filter(e=>!!e.length),re.map(e=>e.reduce((t,a)=>{const{unitId:n,subUnitId:i,formulaId:s,formulaText:u}=a;return t[n]||(t[n]={}),t[n][i]||(t[n][i]={}),t[n][i][s]={f:u},t},{}))).subscribe(e=>{for(const t in e)for(const a in e[t]){const n=e[t][a],i={unitId:t,subUnitId:a,formulaMap:n};this._commandService.executeCommand(Q.SetOtherFormulaMutation.id,i).then(()=>{this._commandService.executeCommand(O.DataValidationFormulaMarkDirty.id,{[t]:{[a]:n}})})}})}_initFormulaCalculationResultChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Q.SetFormulaCalculationResultMutation.id){const t=e.params,{unitOtherData:a}=t,n={};for(const i in a){const s=a[i],u={};n[i]=u;for(const d in s){const c=this._ensureCacheMap(i,d),h=s[d],f=[];u[d]=f;for(const m in h){const g=h[m];if(c.has(m)){const R=c.get(m);R.result=g,R.status=Ae.SUCCESS,R.callbacks.forEach(V=>{V(g)}),R.callbacks.clear(),f.push(R)}}}}this._formulaResult$.next(n)}}))}registerFormula(e,t,a,n){const i=this._createFormulaId(e,t);return this._ensureCacheMap(e,t).set(i,{result:void 0,status:Ae.WAIT,ruleId:a,formulaId:i,callbacks:new Set}),this._formulaChange$.next({unitId:e,ruleId:a,subUnitId:t,formulaText:n,formulaId:i}),i}deleteFormula(e,t,a){const n={unitId:e,subUnitId:t,formulaIdList:a};this._commandService.executeCommand(Q.RemoveOtherFormulaMutation.id,n);const i=this._ensureCacheMap(e,t);a.forEach(s=>i.delete(s))}getFormulaValue(e,t,a){const n=this._ensureCacheMap(e,t),i=n.get(a);return i?i.status===Ae.SUCCESS||Ae.ERROR?Promise.resolve(i):new Promise(s=>{i.callbacks.add(()=>{s(n.get(a))})}):Promise.resolve(null)}getFormulaValueSync(e,t,a){return this._ensureCacheMap(e,t).get(a)}},v.RegisterOtherFormulaService=vn([Yt(0,l.ICommandService),Yt(1,Q.IActiveDirtyManagerService)],v.RegisterOtherFormulaService);class ye{constructor(){M(this,"_cacheMatrix",new Map)}_ensureCache(r,e){let t=this._cacheMatrix.get(r);t||(t=new Map,this._cacheMatrix.set(r,t));let a=t.get(e);return a||(a=new l.ObjectMatrix,t.set(e,a)),a}ensureCache(r,e){return this._ensureCache(r,e)}addRule(r,e,t){this.markRangeDirty(r,e,t.ranges)}removeRule(r,e,t){this._deleteRange(r,e,t.ranges)}updateRuleRanges(r,e,t,a,n){const i=this._ensureCache(r,e);n.forEach(s=>{l.Range.foreach(s,(u,d)=>{const c=i.getValue(u,d);c&&(c.temp=!0)})}),a.forEach(s=>{l.Range.foreach(s,(u,d)=>{const c=i.getValue(u,d);c&&c.ruleId===t?c.temp=!1:i.setValue(u,d,void 0)})}),n.forEach(s=>{l.Range.foreach(s,(u,d)=>{const c=i.getValue(u,d);c&&c.temp===!0&&i.realDeleteValue(u,d)})})}markRangeDirty(r,e,t){const a=this._ensureCache(r,e);t.forEach(n=>{l.Range.foreach(n,(i,s)=>{a.setValue(i,s,void 0)})})}markCellDirty(r,e,t,a){this._ensureCache(r,e).setValue(t,a,void 0)}_deleteRange(r,e,t){const a=this._ensureCache(r,e);t.forEach(n=>{l.Range.foreach(n,(i,s)=>{a.realDeleteValue(i,s)})})}getValue(r,e,t,a){return this._ensureCache(r,e).getValue(t,a)}setValue(r,e,t,a,n){return this._ensureCache(r,e).setValue(t,a,n)}}var gn=Object.defineProperty,Sn=Object.getOwnPropertyDescriptor,_n=(o,r,e,t)=>{for(var a=t>1?void 0:t?Sn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&gn(r,e,a),a},Ne=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationCustomFormulaService=class extends l.Disposable{constructor(e,t,a,n,i){super();M(this,"_formulaMap",new Map);M(this,"_ruleFormulaMap",new Map);M(this,"_formulaCellMap",new Map);this._registerOtherFormulaService=e,this._lexerTreeBuilder=t,this._univerInstanceService=a,this._dataValidationModel=n,this._dataValidationCacheService=i,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const n in a){const i=a[n],{formulaCellMap:s,ruleFormulaMap:u}=this._ensureMaps(t,n),d=this._dataValidationModel.ensureManager(t,n);i.forEach(c=>{const h=u.get(c.ruleId),f=s.get(c.formulaId),m=d.getRuleById(c.ruleId);m&&h&&!h.isTransformable&&this._dataValidationCacheService.markRangeDirty(t,n,m.ranges),f&&this._dataValidationCacheService.markCellDirty(t,n,f.row,f.column)})}}}))}_ensureMaps(e,t){let a=this._formulaMap.get(e),n=this._ruleFormulaMap.get(e),i=this._formulaCellMap.get(e);(!a||!n||!i)&&(a=new Map,n=new Map,i=new Map,this._formulaMap.set(e,a),this._ruleFormulaMap.set(e,n),this._formulaCellMap.set(e,i));let s=a.get(t),u=n.get(t),d=i.get(t);return(!s||!u||!d)&&(s=new l.ObjectMatrix,a.set(t,s),u=new Map,n.set(t,u),d=new Map,i.set(t,d)),{formulaMap:s,ruleFormulaMap:u,formulaCellMap:d}}_registerFormula(e,t,a,n){return this._registerOtherFormulaService.registerFormula(e,t,a,n)}deleteByRuleId(e,t,a){const{formulaMap:n,formulaCellMap:i,ruleFormulaMap:s}=this._ensureMaps(e,t),u=this._dataValidationModel.getRuleById(e,t,a),d=new Set,c=s.get(a);!u||!c||(s.delete(a),u.ranges.forEach(h=>{l.Range.foreach(h,(f,m)=>{const g=n.getValue(f,m);if(g&&g.ruleId===a){const{formulaId:R}=g;n.realDeleteValue(f,m),d.add(R),i.delete(R)}})}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(d.values())))}_addFormulaByRange(e,t,a,n,i){const{formulaMap:s,ruleFormulaMap:u,formulaCellMap:d}=this._ensureMaps(e,t);if(!n)return;const c=Q.isFormulaTransformable(this._lexerTreeBuilder,n),h=i[0].startRow,f=i[0].startColumn;let m;c?i.forEach(g=>{l.Range.foreach(g,(R,V)=>{const T=Q.transformFormula(this._lexerTreeBuilder,n,h,f,R,V),b=this._registerFormula(e,t,a,T);s.setValue(R,V,{formulaId:b,ruleId:a}),d.set(b,{row:R,column:V})})}):(m=this._registerFormula(e,t,a,n),i.forEach(g=>{l.Range.foreach(g,(R,V)=>{s.setValue(R,V,{formulaId:m,ruleId:a})})})),u.set(a,{formula:n,originCol:f,originRow:h,isTransformable:c,formulaId:m})}addRule(e,t,a){const{ranges:n,formula1:i,uid:s,type:u}=a;u!==l.DataValidationType.CUSTOM||!i||!l.isFormulaString(i)||this._addFormulaByRange(e,t,s,i,n)}updateRuleRanges(e,t,a,n,i){const{formulaMap:s,ruleFormulaMap:u,formulaCellMap:d}=this._ensureMaps(e,t),c=u.get(a);if(!c)return;const{formula:h,originCol:f,originRow:m,isTransformable:g,formulaId:R}=c,V=new Set;n.forEach(T=>{l.Range.foreach(T,(b,U)=>{const P=s.getValue(b,U);P&&P.ruleId===a&&(P.temp=!0)})}),i.forEach(T=>{l.Range.foreach(T,(b,U)=>{var A;const P=(A=s.getValue(b,U))!=null?A:{};if(P.ruleId!==a){const N=u.get(P.ruleId);if(N!=null&&N.isTransformable&&V.add(P.formulaId),g){const $=Q.transformFormula(this._lexerTreeBuilder,h,m,f,b,U),q=this._registerFormula(e,t,a,$);s.setValue(b,U,{ruleId:a,formulaId:q}),d.set(q,{row:b,column:U})}else s.setValue(b,U,{ruleId:a,formulaId:R})}else P.temp=!1})}),n.forEach(T=>{l.Range.foreach(T,(b,U)=>{const P=s.getValue(b,U);P&&P.ruleId===a&&P.temp===!0&&(s.realDeleteValue(b,U),g&&V.add(P.formulaId))})}),V.forEach(T=>{d.delete(T)}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(V.values()))}updateRuleFormula(e,t,a,n,i){const{ruleFormulaMap:s}=this._ensureMaps(e,t),u=s.get(a);(!u||u.formula!==i)&&this._addFormulaByRange(e,t,a,i,n)}getCellFormulaValue(e,t,a,n){const{formulaMap:i}=this._ensureMaps(e,t),s=i.getValue(a,n);return s?this._registerOtherFormulaService.getFormulaValue(e,t,s.formulaId):Promise.resolve(void 0)}getRuleFormulaInfo(e,t,a){const{ruleFormulaMap:n}=this._ensureMaps(e,t);return n.get(a)}},v.DataValidationCustomFormulaService=_n([Ne(0,y.Inject(v.RegisterOtherFormulaService)),Ne(1,y.Inject(Q.LexerTreeBuilder)),Ne(2,l.IUniverInstanceService),Ne(3,y.Inject(O.DataValidationModel)),Ne(4,y.Inject(ye))],v.DataValidationCustomFormulaService);function he(o){var r,e;return(e=(r=o==null?void 0:o[0])==null?void 0:r[0])==null?void 0:e.v}class Rn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.CUSTOM);M(this,"title","dataValidation.custom.title");M(this,"operators",[]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Wt);M(this,"_customFormulaService",this.injector.get(v.DataValidationCustomFormulaService))}validatorFormula(e){const t=l.isFormulaString(e.formula1);return{success:t,formula1:t?"":this.localeService.t("dataValidation.validFail.formula")}}async parseFormula(e,t,a){return{formula1:void 0,formula2:void 0}}async isValidType(e,t,a){const{column:n,row:i,unitId:s,subUnitId:u}=e,d=await this._customFormulaService.getCellFormulaValue(s,u,i,n);return!!he(d==null?void 0:d.result)}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.custom.error")}}var Mn=Object.defineProperty,Dn=Object.getOwnPropertyDescriptor,Vn=(o,r,e,t)=>{for(var a=t>1?void 0:t?Dn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Mn(r,e,a),a},ct=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationFormulaService=class extends l.Disposable{constructor(e,t,a){super();M(this,"_formulaRuleMap",new Map);this._registerOtherFormulaService=e,this._dataValidationCacheService=t,this._dataValidationModel=a,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const n in a){const i=a[n],s=this._ensureRuleFormulaMap(t,n),u=this._dataValidationModel.ensureManager(t,n);i.forEach(d=>{if(s.get(d.ruleId)){const c=u.getRuleById(d.ruleId);c&&this._dataValidationCacheService.markRangeDirty(t,n,c.ranges)}})}}}))}_ensureRuleFormulaMap(e,t){let a=this._formulaRuleMap.get(e);a||(a=new Map,this._formulaRuleMap.set(e,a));let n=a.get(t);return n||(n=new Map,a.set(t,n)),n}addRule(e,t,a,n,i){const s=l.isFormulaString(n),u=l.isFormulaString(i);if(!s&&!u)return;const d=this._ensureRuleFormulaMap(e,t),c=[void 0,void 0];if(s){const h=this._registerOtherFormulaService.registerFormula(e,t,a,n);c[0]={id:h,text:n}}if(u){const h=this._registerOtherFormulaService.registerFormula(e,t,a,i);c[1]={id:h,text:i}}d.set(a,c)}removeRule(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(!i)return;const[s,u]=i,d=[s==null?void 0:s.id,u==null?void 0:u.id].filter(Boolean);d.length&&this._registerOtherFormulaService.deleteFormula(e,t,d)}updateRuleFormulaText(e,t,a,n,i){const u=this._ensureRuleFormulaMap(e,t).get(a);if(!u){this.addRule(e,t,a,n,i);return}const[d,c]=u;if((d==null?void 0:d.text)!==n)if(d&&this._registerOtherFormulaService.deleteFormula(e,t,[d.id]),l.isFormulaString(n)){const h=this._registerOtherFormulaService.registerFormula(e,t,a,n);u[0]={text:n,id:h}}else u[0]=void 0;if((c==null?void 0:c.text)!==i)if(c&&this._registerOtherFormulaService.deleteFormula(e,t,[c.id]),l.isFormulaString(i)){const h=this._registerOtherFormulaService.registerFormula(e,t,a,i);u[1]={text:i,id:h}}else u[1]=void 0}getRuleFormulaResult(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(!i)return Promise.resolve(null);const s=async u=>u&&this._registerOtherFormulaService.getFormulaValue(e,t,u.id);return Promise.all([s(i[0]),s(i[1])])}getRuleFormulaResultSync(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(i)return i.map(s=>{if(s)return this._registerOtherFormulaService.getFormulaValueSync(e,t,s.id)})}getRuleFormulaInfo(e,t,a){return this._ensureRuleFormulaMap(e,t).get(a)}},v.DataValidationFormulaService=Vn([ct(0,y.Inject(v.RegisterOtherFormulaService)),ct(1,y.Inject(ye)),ct(2,y.Inject(O.DataValidationModel))],v.DataValidationFormulaService);var In=Object.defineProperty,Cn=Object.getOwnPropertyDescriptor,On=(o,r,e,t)=>{for(var a=t>1?void 0:t?Cn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&In(r,e,a),a},ht=(o,r)=>(e,t)=>r(e,t,o);const Ge=6;let mt=class{constructor(o,r,e){this._commandService=o,this._formulaService=r,this._themeService=e}_calc(o,r){var d,c,h;const{vt:e,ht:t}=r||{},a=o.endX-o.startX-Ge*2,n=o.endY-o.startY,i=((d=r==null?void 0:r.fs)!=null?d:10)*1.6;let s=0,u=0;switch(e){case l.VerticalAlign.TOP:u=0;break;case l.VerticalAlign.BOTTOM:u=0+(n-i);break;default:u=0+(n-i)/2;break}switch(t){case l.HorizontalAlign.LEFT:s=Ge;break;case l.HorizontalAlign.RIGHT:s=Ge+(a-i);break;default:s=Ge+(a-i)/2;break}return{left:o.startX+s,top:o.startY+u,width:((c=r==null?void 0:r.fs)!=null?c:10)*1.6,height:((h=r==null?void 0:r.fs)!=null?h:10)*1.6}}calcCellAutoHeight(){}async _parseFormula(o,r,e){var i,s;const{formula1:t=je,formula2:a=Xe}=o,n=await this._formulaService.getRuleFormulaResult(r,e,o.uid);return{formula1:l.isFormulaString(t)?he((i=n==null?void 0:n[0])==null?void 0:i.result):t,formula2:l.isFormulaString(a)?he((s=n==null?void 0:n[1])==null?void 0:s.result):a}}drawWith(o,r){var W,L,E,k,G;const{style:e,data:t,primaryWithCoord:a,unitId:n,subUnitId:i}=r,s=a.isMergedMainCell?a.mergeInfo:a,u=ae(t),d=(W=t.dataValidation)==null?void 0:W.rule,c=(L=t.dataValidation)==null?void 0:L.validator;if(!d||!c)return;const h=this._themeService.getCurrentTheme();if(!c.skipDefaultFontRender(d,u,{unitId:n,subUnitId:i}))return;const{formula1:f=je}=d,m=this._calc(s,e),{a:g,d:R}=o.getTransform(),V=K.fixLineWidthByScale(m.left,g),T=K.fixLineWidthByScale(m.top,R),b=K.Transform.create().composeMatrix({left:V,top:T,scaleX:1,scaleY:1,angle:0,skewX:0,skewY:0,flipX:!1,flipY:!1}),U=s.endX-s.startX,P=s.endY-s.startY;o.save(),o.beginPath(),o.rect(s.startX,s.startY,U,P),o.clip();const A=b.getMatrix();o.transform(A[0],A[1],A[2],A[3],A[4],A[5]);const N=((E=e==null?void 0:e.fs)!=null?E:10)*1.6,$=String(u)===String(f),q=h.hyacinth500;K.Checkbox.drawWith(o,{checked:$,width:N,height:N,fill:(G=(k=e==null?void 0:e.cl)==null?void 0:k.rgb)!=null?G:q}),o.restore()}isHit(o,r){const e=r.primaryWithCoord.isMergedMainCell?r.primaryWithCoord.mergeInfo:r.primaryWithCoord,t=this._calc(e,r.style),a=t.top,n=t.top+t.height,i=t.left,s=t.left+t.width,{x:u,y:d}=o;return u<=s&&u>=i&&d<=n&&d>=a}async onPointerDown(o,r){var f,m;if(r.button===2)return;const{primaryWithCoord:e,unitId:t,subUnitId:a,data:n}=o,i=ae(n),s=(f=n.dataValidation)==null?void 0:f.rule,u=(m=n.dataValidation)==null?void 0:m.validator;if(!s||!u||!u.skipDefaultFontRender(s,i,{unitId:t,subUnitId:a}))return;const{formula1:d,formula2:c}=await this._parseFormula(s,t,a),h={range:{startColumn:e.actualColumn,endColumn:e.actualColumn,startRow:e.actualRow,endRow:e.actualRow},value:{v:String(i)===String(d)?c:d,p:null}};this._commandService.executeCommand(ne.SetRangeValuesCommand.id,h)}};mt=On([ht(0,l.ICommandService),ht(1,y.Inject(v.DataValidationFormulaService)),ht(2,y.Inject(l.ThemeService))],mt);const je=1,Xe=0;class wn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.CHECKBOX);M(this,"title","dataValidation.checkbox.title");M(this,"operators",[]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Ht);M(this,"canvasRender",this.injector.createInstance(mt));M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService))}skipDefaultFontRender(e,t,a){const{formula1:n,formula2:i}=this.parseFormulaSync(e,a.unitId,a.subUnitId),s=`${t!=null?t:""}`;return!s||s===`${n}`||s===`${i}`}validatorFormula(e){const{formula1:t=je,formula2:a=Xe}=e,n=!l.Tools.isBlank(t),i=!l.Tools.isBlank(a);return{success:n&&i,formula1:n?"":this.localeService.t("dataValidation.validFail.common"),formula2:i?"":this.localeService.t("dataValidation.validFail.common")}}async parseFormula(e,t,a){var u,d;const{formula1:n=je,formula2:i=Xe}=e,s=await this._formulaService.getRuleFormulaResult(t,a,e.uid);return{formula1:l.isFormulaString(n)?he((u=s==null?void 0:s[0])==null?void 0:u.result):n,formula2:l.isFormulaString(i)?he((d=s==null?void 0:s[1])==null?void 0:d.result):i}}parseFormulaSync(e,t,a){var u,d;const{formula1:n=je,formula2:i=Xe}=e,s=this._formulaService.getRuleFormulaResultSync(t,a,e.uid);return{formula1:l.isFormulaString(n)?he((u=s==null?void 0:s[0])==null?void 0:u.result):n,formula2:l.isFormulaString(i)?he((d=s==null?void 0:s[1])==null?void 0:d.result):i}}async isValidType(e,t,a){const{value:n,unitId:i,subUnitId:s}=e,{formula1:u,formula2:d}=await this.parseFormula(a,i,s);return!l.Tools.isDefine(u)||!l.Tools.isDefine(d)?!0:l.Tools.isDefine(n)&&(String(n)===String(u)||String(n)===String(d))}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.checkbox.error")}}const Ue=[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.NOT_BETWEEN],ft=86400;function yn(o,r=!0){if(r&&o>=0){if(o===0)return[1900,1,0];if(o===60)return[1900,2,29];if(o<60)return[1900,o<32?1:2,(o-1)%31+1]}let e=o+68569+2415019;const t=Math.floor(4*e/146097);e=e-Math.floor((146097*t+3)/4);const a=Math.floor(4e3*(e+1)/1461001);e=e-Math.floor(1461*a/4)+31;const n=Math.floor(80*e/2447),i=e-Math.floor(2447*n/80);e=Math.floor(n/11);const s=n+2-12*e;return[100*(t-49)+a+e|0,s|0,i|0]}const En=o=>{let r=o|0;const e=ft*(o-r);let t=Math.floor(e);e-t>.9999&&(t+=1,t===ft&&(t=0,r+=1));const a=t<0?ft+t:t,[n,i,s]=yn(o,!0),u=Math.floor(a/60/60)%60,d=Math.floor(a/60)%60,c=Math.floor(a)%60,h=new Date(0);return h.setUTCFullYear(n,i-1,s),h.setUTCHours(u,d,c),h.getTime()},Fn={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.operators.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.operators.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.operators.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.operators.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.operators.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.operators.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.operators.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.operators.notEqual"};l.DataValidationOperator.BETWEEN+"",l.DataValidationOperator.EQUAL+"",l.DataValidationOperator.GREATER_THAN+"",l.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",l.DataValidationOperator.LESS_THAN+"",l.DataValidationOperator.LESS_THAN_OR_EQUAL+"",l.DataValidationOperator.NOT_BETWEEN+"",l.DataValidationOperator.NOT_EQUAL+"";const Tn={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.ruleName.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.ruleName.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.ruleName.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.ruleName.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.ruleName.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.ruleName.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.ruleName.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.ruleName.notEqual"},bn={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.errorMsg.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.errorMsg.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.errorMsg.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.errorMsg.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.errorMsg.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.errorMsg.notEqual"},zt="{FORMULA1}",Gt="{FORMULA2}",Xt=o=>Me(o).isValid(),Qe=o=>{if(!(o==null||typeof o=="boolean"))return typeof o=="number"||!Number.isNaN(+o)?Me(En(+o)):Me(o)};class Ln extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.DATE);M(this,"title","dataValidation.date.title");M(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Le);M(this,"dropdown",xt);M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));M(this,"transformDate",Qe)}async parseFormula(e,t,a){var u,d;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:Qe(l.isFormulaString(i)?he((u=n==null?void 0:n[0])==null?void 0:u.result):i),formula2:Qe(l.isFormulaString(s)?he((d=n==null?void 0:n[1])==null?void 0:d.result):s)}}async isValidType(e){const{value:t}=e;return typeof t=="string"?Me(t).isValid():typeof t=="number"}_validatorSingleFormula(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)||!!e&&Me(e).isValid())}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=this._validatorSingleFormula(e.formula1),n=this.localeService.t("dataValidation.validFail.date");if(Ue.includes(t)){const s=this._validatorSingleFormula(e.formula2);return{success:a&&s,formula1:a?void 0:n,formula2:s?void 0:n}}return{success:a,formula1:a?void 0:n}}transform(e,t,a){const{value:n}=e;return{...e,value:Qe(n)}}async validatorIsEqual(e,t,a){const{value:n}=e,{formula1:i}=t;return i?n.isSame(i):!0}async validatorIsNotEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?!a.isSame(n):!0}async validatorIsBetween(e,t){const{value:a}=e,{formula1:n,formula2:i}=t;if(!n||!i)return!1;const s=n.isAfter(i)?i:n,u=s===n?i:n;return(a.isAfter(s)||a.isSame(s))&&(a.isBefore(u)||a.isSame(u))}async validatorIsNotBetween(e,t){const{value:a}=e,{formula1:n,formula2:i}=t;if(!n||!i)return!1;const s=n.isAfter(i)?n:i,u=s===n?i:n;return a.isBefore(s)||a.isAfter(u)}async validatorIsGreaterThan(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isAfter(n):!0}async validatorIsGreaterThanOrEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isAfter(n)||a.isSame(n):!0}async validatorIsLessThan(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isBefore(n)||a.isSame(n):!0}async validatorIsLessThanOrEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isBefore(n)||a.isSame(n):!0}validatorFormulaValue(e){if(!l.Tools.isDefine(e.operator))return;if(Ue.includes(e.operator)){if(l.Tools.isBlank(e.formula1)||l.Tools.isBlank(e.formula2))return"";if(!Xt(e.formula1)||!Xt(e.formula2))return""}else if(l.Tools.isBlank(e.formula1))return""}get operatorNames(){return this.operators.map(e=>this.localeService.t(Fn[e]))}generateRuleName(e){var a,n;if(!e.operator)return this.titleStr;const t=this.localeService.t(Tn[e.operator]).replace(zt,(a=e.formula1)!=null?a:"").replace(Gt,(n=e.formula2)!=null?n:"");return`${this.titleStr} ${t}`}generateRuleErrorMessage(e){var a,n;return e.operator?`${this.localeService.t(bn[e.operator]).replace(zt,(a=e.formula1)!=null?a:"").replace(Gt,(n=e.formula2)!=null?n:"")}`:this.titleStr}}var An=Object.defineProperty,Nn=Object.getOwnPropertyDescriptor,jn=(o,r,e,t)=>{for(var a=t>1?void 0:t?Nn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&An(r,e,a),a},Ke=(o,r)=>(e,t)=>r(e,t,o);const Ee=4,Un=6,le=14,De=6,me=2,Pn="#565656",Qt=new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");function Bn(o,r){const e=o.length;return{id:"d",body:{dataStream:`${o}${l.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[{ts:{fs:11,ff:void 0,it:l.BooleanNumber.FALSE,bl:l.BooleanNumber.FALSE,ul:{s:l.BooleanNumber.FALSE},st:{s:l.BooleanNumber.FALSE},ol:{s:l.BooleanNumber.FALSE},cl:void 0,...r,bg:void 0,bd:void 0},st:0,ed:e}]},documentStyle:{pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY}}}}function pt(o,r,e){const t=Bn(o,e),a=new l.DocumentDataModel(t),n=new K.DocumentViewModel(a);return{documentSkeleton:K.DocumentSkeleton.create(n,r),docModel:a,docViewModel:n}}function Kt(o,r,e){const{documentSkeleton:t,docModel:a,docViewModel:n}=pt(o,r,e);return{documents:new K.Documents(`DOCUMENTS_${l.Tools.generateRandomId()}`,t,{pageMarginLeft:0,pageMarginTop:0}),documentSkeleton:t,docModel:a,docViewModel:n}}let vt=(Dt=class{constructor(o,r,e,t){M(this,"_dropdownInfoMap",new Map);M(this,"zIndex");M(this,"onPointerEnter");M(this,"onPointerLeave");this._localeService=o,this._commandService=r,this._dataValidationModel=e,this._dataValidatorRegistryService=t}_ensureMap(o){let r=this._dropdownInfoMap.get(o);return r||(r=new Map,this._dropdownInfoMap.set(o,r)),r}_generateKey(o,r){return`${o}.${r}`}_drawDownIcon(o,r,e,t,a){const n=e-le+4;let i=4;switch(a){case l.VerticalAlign.MIDDLE:i=(t-le)/2+4;break;case l.VerticalAlign.BOTTOM:i=t-le+4;break}o.save(),o.translateWithPrecision(r.startX+n,r.startY+i),o.fillStyle="#565656",o.fill(Qt),o.restore()}drawWith(o,r,e,t){var q,W;const{primaryWithCoord:a,row:n,col:i,style:s,data:u,subUnitId:d}=r,c=a.isMergedMainCell?a.mergeInfo:a,h=c.endX-c.startX,f=c.endY-c.startY,m=this._ensureMap(d),g=this._generateKey(n,i),R=(q=u.dataValidation)==null?void 0:q.rule,V=(W=u.dataValidation)==null?void 0:W.validator;if(!R||!V||!V.skipDefaultFontRender(R))return;const T=V.getListWithColor(R),b=ae(u),U=`${b!=null?b:""}`,P=T.find(L=>L.label===U);let{tb:A,vt:N,ht:$}=s||{};if(A=A!=null?A:l.WrapStrategy.WRAP,N=N!=null?N:l.VerticalAlign.TOP,$=$!=null?$:l.HorizontalAlign.LEFT,R.renderMode===l.DataValidationRenderMode.ARROW){this._drawDownIcon(o,c,h,f,N),o.save(),o.translateWithPrecision(c.startX,c.startY),o.beginPath(),o.rect(0,0,h,f),o.clip();const L=h-le,{documentSkeleton:E,documents:k,docModel:G}=Kt(U,this._localeService,s);A===l.WrapStrategy.WRAP&&G.updateDocumentDataPageSize(L),E.calculate(),E.getActualSize();const F=K.getDocsSkeletonPageSize(E),{height:S,width:_}=F;let C=0;switch(N){case l.VerticalAlign.BOTTOM:C=f-me-S;break;case l.VerticalAlign.MIDDLE:C=(f-me-S)/2;break;default:C=me;break}let D=0;switch($){case l.HorizontalAlign.CENTER:D=(L-_)/2;break;case l.HorizontalAlign.RIGHT:D=L-_;break}o.translate(0,C),o.save(),o.translateWithPrecision(Ee,0),o.beginPath(),o.rect(0,0,L,S),o.clip(),k.render(o),o.translateWithPrecision(D,0),o.restore(),o.restore(),m.set(g,{left:c.endX+e.rowHeaderWidth-le,top:c.startY+e.columnHeaderHeight,width:le,height:f})}else{o.save(),o.translateWithPrecision(c.startX,c.startY),o.beginPath(),o.rect(0,0,h,f),o.clip();const L=h-De*2-Ee-le,{documentSkeleton:E,documents:k,docModel:G}=Kt(U,this._localeService,s);A===l.WrapStrategy.WRAP&&G.updateDocumentDataPageSize(L),E.calculate();const F=K.getDocsSkeletonPageSize(E),{height:S,width:_}=F;let C=0;switch(N){case l.VerticalAlign.BOTTOM:C=f-me-S;break;case l.VerticalAlign.MIDDLE:C=(f-me-S)/2;break;default:C=me;break}let D=0;switch($){case l.HorizontalAlign.CENTER:D=(L-_)/2;break;case l.HorizontalAlign.RIGHT:D=L-_;break}o.translate(De,C);const I=h-De*2,w=S;K.Rect.drawWith(o,{width:I,height:w,fill:(P==null?void 0:P.color)||Re,radius:8}),o.save(),o.translateWithPrecision(Ee,0),o.beginPath(),o.rect(0,0,L,S),o.clip(),o.translateWithPrecision(D,0),k.render(o),o.restore(),o.translate(L+Ee+4,(S-Un)/2),o.fillStyle=Pn,o.fill(Qt),o.restore(),m.set(g,{left:c.startX+De+e.rowHeaderWidth,top:c.startY+C+e.columnHeaderHeight,width:I,height:w})}}calcCellAutoHeight(o){var c;const{primaryWithCoord:r,style:e,data:t}=o,a=r.isMergedMainCell?r.mergeInfo:r,n=a.endX-a.startX,i=ae(t),s=`${i!=null?i:""}`,u=(c=t.dataValidation)==null?void 0:c.rule;if(!u||u.renderMode===l.DataValidationRenderMode.TEXT)return;let{tb:d}=e||{};if(d=d!=null?d:l.WrapStrategy.WRAP,u.renderMode===l.DataValidationRenderMode.ARROW){const h=n-le,{documentSkeleton:f,docModel:m}=pt(s,this._localeService,e);d===l.WrapStrategy.WRAP&&m.updateDocumentDataPageSize(h),f.calculate(),f.getActualSize();const g=K.getDocsSkeletonPageSize(f),{height:R}=g;return R}else{const h=n-De*2-Ee-le,{documentSkeleton:f,docModel:m}=pt(s,this._localeService,e);d===l.WrapStrategy.WRAP&&m.updateDocumentDataPageSize(h),f.calculate(),f.getActualSize();const g=K.getDocsSkeletonPageSize(f),{height:R}=g;return R+me*2}}isHit(o,r){const{data:e,subUnitId:t,row:a,col:n}=r,s=this._ensureMap(t).get(this._generateKey(a,n));if(!e.dataValidation||!s)return!1;const{top:d,left:c,width:h,height:f}=s,{x:m,y:g}=o;return m>=c&&m<=c+h&&g>=d&&g<=d+f}onPointerDown(o,r){if(r.button===2)return;const{unitId:e,subUnitId:t,row:a,col:n}=o,i={unitId:e,subUnitId:t,row:a,column:n};this._commandService.executeCommand(We.id,i)}},M(Dt,"padding",{l:De+Ee,r:le+De,t:me,b:me}),Dt);vt=jn([Ke(0,y.Inject(l.LocaleService)),Ke(1,l.ICommandService),Ke(2,y.Inject(O.DataValidationModel)),Ke(3,y.Inject(O.DataValidatorRegistryService))],vt);class $n extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.LIST);M(this,"title","dataValidation.list.title");M(this,"operators",[]);M(this,"scopes",["sheet"]);M(this,"formulaInput",ut);M(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));M(this,"canvasRender",this.injector.createInstance(vt));M(this,"dropdown",lt);M(this,"optionsInput",ze.componentKey)}skipDefaultFontRender(e){return e.renderMode!==l.DataValidationRenderMode.TEXT}validatorFormula(e){const t=!l.Tools.isBlank(e.formula1);return{success:t,formula1:t?void 0:this.localeService.t("dataValidation.validFail.list")}}_parseCellValue(e,t){const a=e.toString();return de(a)}async parseFormula(e,t,a){const{formula1:n=""}=e;return{formula1:Q.isReferenceString(n)?be(Q.deserializeRangeWithSheet(n),this._univerInstanceService,t,a):de(n),formula2:void 0}}async isValidType(e,t,a){const{value:n}=e,{formula1:i}=t;return this._parseCellValue(n,a).every(u=>i.includes(u))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var h,f;const{formula1:n=""}=e,i=this.injector.get(l.IUniverInstanceService),s=(h=t?i.getUniverSheetInstance(t):void 0)!=null?h:i.getCurrentUniverSheetInstance(),u=(f=a?s.getSheetBySheetId(a):void 0)!=null?f:s.getActiveSheet(),d=s.getUnitId(),c=u.getSheetId();return Q.isReferenceString(n)?be(Q.deserializeRangeWithSheet(n),this._univerInstanceService,d,c):de(n)}getListWithColor(e,t,a){const n=this.getList(e,t,a),i=(e.formula2||"").split(",");return n.map((s,u)=>({label:s,color:i[u]}))}getListWithColorMap(e,t,a){const n=this.getListWithColor(e,t,a),i={};return n.forEach(s=>{s.color&&(i[s.label]=s.color)}),i}}function Ze(o){let r=o;return typeof o=="string"?((o.startsWith("¥")||o.startsWith("$"))&&(r=o.slice(1)),+r):+o}class xn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));M(this,"id",l.DataValidationType.DECIMAL);M(this,"title",this.localeService.t("dataValidation.decimal.title"));M(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Le);M(this,"dropDownInput")}_isFormulaOrNumber(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e))}async isValidType(e,t,a){const{value:n}=e;return!Number.isNaN(Ze(n))}transform(e,t,a){const{value:n}=e;return{...e,value:Ze(n)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var d,c,h,f,m,g,R,V;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(i)?(f=(h=(c=(d=n==null?void 0:n[0])==null?void 0:d.result)==null?void 0:c[0])==null?void 0:h[0])==null?void 0:f.v:i),formula2:this._parseNumber(l.isFormulaString(s)?(V=(R=(g=(m=n==null?void 0:n[1])==null?void 0:m.result)==null?void 0:g[0])==null?void 0:R[0])==null?void 0:V.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrNumber(e.formula1),n=l.Tools.isDefine(e.formula2)&&this._isFormulaOrNumber(e.formula2),i=Ue.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{success:a&&n,formula1:a?void 0:s,formula2:n?void 0:s}:{success:a,formula1:a?"":s}}async validatorIsEqual(e,t,a){const{formula1:n}=t,{value:i}=e;return Number.isNaN(n)?!0:i===n}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value!==n}async validatorIsBetween(e,t,a){const{formula1:n,formula2:i}=t;if(Number.isNaN(n)||Number.isNaN(i))return!0;const s=Math.min(n,i),u=Math.max(n,i);return e.value>=s&&e.value<=u}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:i}=t;if(Number.isNaN(n)||Number.isNaN(i))return!0;const s=Math.min(n,i),u=Math.max(n,i);return e.value<s&&e.value>u}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>n}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>=n}async validatorIsLessThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<n}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<=n}}const kn="{FORMULA1}",Wn="{FORMULA2}";class Hn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.TEXT_LENGTH);M(this,"title","dataValidation.textLength.title");M(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Le);M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService))}_isFormulaOrInt(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),n=l.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),i=Ue.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{success:a&&n,formula1:a?void 0:s,formula2:n?void 0:s}:{success:a,formula1:s}}_parseNumber(e){return e==null?Number.NaN:+e}_isValidFormula(e){return!Number.isNaN(e)}async parseFormula(e,t,a){var u,d,c,h,f,m,g,R;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(i)?(h=(c=(d=(u=n==null?void 0:n[0])==null?void 0:u.result)==null?void 0:d[0])==null?void 0:c[0])==null?void 0:h.v:i),formula2:this._parseNumber(l.isFormulaString(s)?(R=(g=(m=(f=n==null?void 0:n[1])==null?void 0:f.result)==null?void 0:m[0])==null?void 0:g[0])==null?void 0:R.v:s)}}transform(e,t,a){return{...e,value:e.value.toString().length}}async isValidType(e,t,a){const{value:n}=e;return typeof n=="string"||typeof n=="number"}async validatorIsEqual(e,t,a){const{formula1:n}=t;return l.Tools.isDefine(n)?e.value===n:!1}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return l.Tools.isDefine(n)?e.value!==n:!1}async validatorIsBetween(e,t,a){const{formula1:n,formula2:i}=t,{value:s}=e;if(!this._isValidFormula(n)||!this._isValidFormula(i))return!1;const u=Math.max(n,i),d=Math.min(n,i);return s>=d&&s<=u}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:i}=t,{value:s}=e;if(!this._isValidFormula(n)||!this._isValidFormula(i))return!1;const u=Math.max(n,i),d=Math.min(n,i);return s>=d&&s<=u}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t,{value:i}=e;return this._isValidFormula(n)?i>n:!1}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t,{value:i}=e;return this._isValidFormula(n)?i>=n:!1}async validatorIsLessThan(e,t,a){const{formula1:n}=t,{value:i}=e;return this._isValidFormula(n)?i<n:!1}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t,{value:i}=e;return this._isValidFormula(n)?i<=n:!1}generateRuleErrorMessage(e){var a,n;return e.operator?`${this.localeService.t(O.TextLengthErrorTitleMap[e.operator]).replace(kn,(a=e.formula1)!=null?a:"").replace(Wn,(n=e.formula2)!=null?n:"")}`:this.titleStr}}class qn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));M(this,"id",l.DataValidationType.WHOLE);M(this,"title",this.localeService.t("dataValidation.whole.title"));M(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Le);M(this,"dropDownInput")}_isFormulaOrInt(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}async isValidType(e,t,a){const{value:n}=e,i=Ze(n);return!Number.isNaN(i)&&Number.isInteger(i)}transform(e,t,a){const{value:n}=e;return{...e,value:Ze(n)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var d,c,h,f,m,g,R,V;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(i)?(f=(h=(c=(d=n==null?void 0:n[0])==null?void 0:d.result)==null?void 0:c[0])==null?void 0:h[0])==null?void 0:f.v:i),formula2:this._parseNumber(l.isFormulaString(s)?(V=(R=(g=(m=n==null?void 0:n[1])==null?void 0:m.result)==null?void 0:g[0])==null?void 0:R[0])==null?void 0:V.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),n=l.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),i=Ue.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{success:a&&n,formula1:a?void 0:s,formula2:n?void 0:s}:{success:a,formula1:s}}async validatorIsEqual(e,t,a){const{formula1:n}=t,{value:i}=e;return Number.isNaN(n)?!0:i===n}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value!==n}async validatorIsBetween(e,t,a){const{formula1:n,formula2:i}=t;if(Number.isNaN(n)||Number.isNaN(i))return!0;const s=Math.min(n,i),u=Math.max(n,i);return e.value>=s&&e.value<=u}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:i}=t;if(Number.isNaN(n)||Number.isNaN(i))return!0;const s=Math.min(n,i),u=Math.max(n,i);return e.value<s&&e.value>u}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>n}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>=n}async validatorIsLessThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<n}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<=n}}const Zt=4,Yn=0,gt=4,Jt=4,St=6,Je=6,Ve=14;function zn(o,r){const e=K.FontCache.getTextSize(o,r),t=e.width+Zt*2,{ba:a,bd:n}=e,i=a+n;return{width:t,height:i+Yn*2,ba:a}}function ea(o,r,e,t){const a=e-Ve-St,n=t-Je*2,i=o.map(c=>({layout:zn(c,r),text:c}));let s;const u=[];i.forEach(c=>{const{layout:h}=c,{width:f,height:m}=h;!s||s.width+f+gt>a?(s={width:f,height:m,items:[{...c,left:0}]},u.push(s)):(s.items.push({...c,left:s.width+gt}),s.width=s.width+f+gt)});let d=0;return u.forEach((c,h)=>{h===u.length-1?d+=c.height:d+=c.height+Jt}),{lines:u,totalHeight:d,contentWidth:a,contentHeight:n,cellAutoHeight:d+Je*2}}const Gn=8;class Xn extends K.Shape{static drawWith(r,e){const{fontFamily:t,fontString:a,fontSize:n,info:i,fill:s,color:u}=e,{layout:d,text:c}=i;r.save(),K.Rect.drawWith(r,{width:d.width,height:d.height,radius:Gn,fill:s||Re}),r.translateWithPrecision(Zt,d.ba),r.font=a,r.fillStyle=u,r.fillText(c,0,0),r.restore()}}var Qn=Object.defineProperty,Kn=Object.getOwnPropertyDescriptor,Zn=(o,r,e,t)=>{for(var a=t>1?void 0:t?Kn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Qn(r,e,a),a},Jn=(o,r)=>(e,t)=>r(e,t,o);const er=new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");let _t=class{constructor(o){M(this,"zIndex");M(this,"_dropdownInfoMap",new Map);this._commandService=o}_ensureMap(o){let r=this._dropdownInfoMap.get(o);return r||(r=new Map,this._dropdownInfoMap.set(o,r)),r}_generateKey(o,r){return`${o}.${r}`}_drawDownIcon(o,r,e,t,a){const n=e-Ve+4;let i=4;switch(a){case l.VerticalAlign.MIDDLE:i=(t-Ve)/2+4;break;case l.VerticalAlign.BOTTOM:i=t-Ve+4;break}o.save(),o.translateWithPrecision(r.startX+n,r.startY+i),o.fillStyle="#565656",o.fill(er),o.restore()}drawWith(o,r,e,t){var F,S;const{primaryWithCoord:a,row:n,col:i,style:s,data:u,subUnitId:d}=r,c=a.isMergedMainCell?a.mergeInfo:a,h=u.dataValidation,f=c.endX-c.startX,m=c.endY-c.startY,g=this._ensureMap(d),R=this._generateKey(n,i);if(!h)return;const{cl:V}=s||{},T=(F=typeof V=="object"?V==null?void 0:V.rgb:V)!=null?F:"#000",b=K.getFontStyleString(s!=null?s:void 0),{rule:U,validator:P}=h,A=P,{vt:N,ht:$}=s||{},q=N!=null?N:l.VerticalAlign.MIDDLE,W=(S=ae(u))!=null?S:"",L=A.parseCellValue(W,U),E=A.getListWithColorMap(U),k=ea(L,b,f,m);this._drawDownIcon(o,c,f,m,q),o.save(),o.translateWithPrecision(c.startX,c.startY),o.beginPath(),o.rect(0,0,f-Ve,m),o.clip(),o.translateWithPrecision(St,Je);let G=0;switch(q){case l.VerticalAlign.MIDDLE:G=(k.contentHeight-k.totalHeight)/2;break;case l.VerticalAlign.BOTTOM:G=k.contentHeight-k.totalHeight;break}o.translateWithPrecision(0,G),k.lines.forEach((_,C)=>{o.save();const{width:D,height:I,items:w}=_;let x=0;switch($){case l.HorizontalAlign.RIGHT:x=k.contentWidth-D;break;case l.HorizontalAlign.CENTER:x=(k.contentWidth-D)/2;break}o.translate(x,C*(I+Jt)),w.forEach(H=>{o.save(),o.translateWithPrecision(H.left,0),Xn.drawWith(o,{...b,info:H,color:T,fill:E[H.text]}),o.restore()}),o.restore()}),o.restore(),g.set(R,{left:c.startX,top:c.startY,width:k.contentWidth+St+Ve,height:k.contentHeight+Je*2})}calcCellAutoHeight(o){var R;const{primaryWithCoord:r,style:e,data:t}=o,a=r.isMergedMainCell?r.mergeInfo:r,n=t.dataValidation;if(!n)return;const i=a.endX-a.startX,s=a.endY-a.startY,u=(R=ae(t))!=null?R:"",{rule:d,validator:c}=n,f=c.parseCellValue(u,d),m=K.getFontStyleString(e!=null?e:void 0);return ea(f,m,i,s).cellAutoHeight}isHit(o,r){const{primaryWithCoord:e}=r,t=e.isMergedMainCell?e.mergeInfo:e,{endX:a}=t,{x:n}=o;return n>=a-Ve&&n<=a}onPointerDown(o,r){if(r.button===2)return;const{unitId:e,subUnitId:t,row:a,col:n}=o,i={unitId:e,subUnitId:t,row:a,column:n};this._commandService.executeCommand(We.id,i)}};_t=Zn([Jn(0,l.ICommandService)],_t);class tr extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.LIST_MULTIPLE);M(this,"title","dataValidation.listMultiple.title");M(this,"operators",[]);M(this,"scopes",["sheet"]);M(this,"formulaInput",ut);M(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));M(this,"canvasRender",this.injector.createInstance(_t));M(this,"dropdown",lt)}skipDefaultFontRender(){return!0}validatorFormula(e){const t=!l.Tools.isBlank(e.formula1);return{success:t,formula1:t?void 0:this.localeService.t("dataValidation.validFail.list")}}parseCellValue(e,t){const a=e.toString();return a?de(a):[]}async parseFormula(e,t,a){const{formula1:n=""}=e;return{formula1:Q.isReferenceString(n)?be(Q.deserializeRangeWithSheet(n),this._univerInstanceService,t,a):de(n),formula2:void 0}}async isValidType(e,t,a){const{value:n}=e,{formula1:i}=t;return this.parseCellValue(n,a).every(u=>i.includes(u))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var h,f;const{formula1:n=""}=e,i=this.injector.get(l.IUniverInstanceService),s=(h=t?i.getUniverSheetInstance(t):void 0)!=null?h:i.getCurrentUniverSheetInstance(),u=(f=a?s.getSheetBySheetId(a):void 0)!=null?f:s.getActiveSheet(),d=s.getUnitId(),c=u.getSheetId();return Q.isReferenceString(n)?be(Q.deserializeRangeWithSheet(n),this._univerInstanceService,d,c):de(n)}getListWithColor(e,t,a){const n=this.getList(e,t,a),i=e.formula2?e.formula2.split(","):[];return n.map((s,u)=>({label:s,color:i[u]}))}getListWithColorMap(e,t,a){const n=this.getListWithColor(e,t,a),i={};return n.forEach(s=>{s.color&&(i[s.label]=s.color)}),i}}var ar=Object.defineProperty,nr=Object.getOwnPropertyDescriptor,rr=(o,r,e,t)=>{for(var a=t>1?void 0:t?nr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&ar(r,e,a),a},pe=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationController=class extends l.RxDisposable{constructor(r,e,t,a,n,i,s,u){super(),this._univerInstanceService=r,this._sheetDataValidationService=e,this._dataValidatorRegistryService=t,this._injector=a,this._componentManger=n,this._selectionManagerService=i,this._sheetInterceptorService=s,this._dataValidationModel=u,this._init()}_init(){this._registerValidators(),this._initInstanceChange(),this._componentManger.register(qt,bt),this._initCommandInterceptor()}_registerValidators(){[xn,qn,Hn,Ln,wn,$n,tr,Rn].forEach(r=>{const e=this._injector.createInstance(r);this.disposeWithMe(this._dataValidatorRegistryService.register(e)),this.disposeWithMe({dispose:()=>{this._injector.delete(r)}})})}_initInstanceChange(){const r=this._univerInstanceService.getCurrentUniverSheetInstance();this._sheetDataValidationService.switchCurrent(r.getUnitId(),r.getActiveSheet().getSheetId()),this.disposeWithMe(r.activeSheet$.subscribe(e=>{if(e){const t=r.getUnitId(),a=e.getSheetId();this._sheetDataValidationService.switchCurrent(t,a)}}))}_initCommandInterceptor(){this._sheetInterceptorService.interceptCommand({getMutations:r=>{if(r.id===ne.ClearSelectionAllCommand.id){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),n=e.getActiveSheet().getSheetId(),i=this._selectionManagerService.getSelectionRanges(),s=this._dataValidationModel.ensureManager(t,n),u=s.getRuleObjectMatrix().clone();i&&u.removeRange(i);const d=u.diff(s.getDataValidations()),{redoMutations:c,undoMutations:h}=Oe(t,n,d);return{undos:h,redos:c}}return{undos:[],redos:[]}}})}},v.DataValidationController=rr([l.OnLifecycle(l.LifecycleStages.Rendered,v.DataValidationController),pe(0,l.IUniverInstanceService),pe(1,y.Inject(v.SheetDataValidationService)),pe(2,y.Inject(O.DataValidatorRegistryService)),pe(3,y.Inject(y.Injector)),pe(4,y.Inject(z.ComponentManager)),pe(5,y.Inject(ne.SelectionManagerService)),pe(6,y.Inject(ne.SheetInterceptorService)),pe(7,y.Inject(O.DataValidationModel))],v.DataValidationController);var ir=Object.defineProperty,or=Object.getOwnPropertyDescriptor,sr=(o,r,e,t)=>{for(var a=t>1?void 0:t?or(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&ir(r,e,a),a},Pe=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationAlertController=class extends l.Disposable{constructor(r,e,t,a,n){super(),this._hoverManagerService=r,this._cellAlertManagerService=e,this._univerInstanceService=t,this._sheetDataValidationService=a,this._localeService=n,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(r=>{var e,t,a;if(r){const i=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=(e=this._sheetDataValidationService.currentManager)==null?void 0:e.manager,u=i.getCell(r.location.row,r.location.col);if(((t=u==null?void 0:u.dataValidation)==null?void 0:t.validStatus)===l.DataValidationStatus.INVALID){const d=(a=this._cellAlertManagerService.currentAlert)==null?void 0:a.location;if(d&&d.row===r.location.row&&d.col===r.location.col&&d.subUnitId===r.location.subUnitId&&d.unitId===r.location.unitId)return;this._cellAlertManagerService.showAlert({type:X.CellAlertType.ERROR,title:this._localeService.t("dataValidation.error.title"),message:s==null?void 0:s.getRuleErrorMsg(u.dataValidation.ruleId),location:r.location,width:200,height:74});return}}this._cellAlertManagerService.clearAlert()}))}},v.DataValidationAlertController=sr([l.OnLifecycle(l.LifecycleStages.Rendered,v.DataValidationAlertController),Pe(0,y.Inject(X.HoverManagerService)),Pe(1,y.Inject(X.CellAlertManagerService)),Pe(2,l.IUniverInstanceService),Pe(3,y.Inject(v.SheetDataValidationService)),Pe(4,y.Inject(l.LocaleService))],v.DataValidationAlertController);var lr=Object.defineProperty,ur=Object.getOwnPropertyDescriptor,dr=(o,r,e,t)=>{for(var a=t>1?void 0:t?ur(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&lr(r,e,a),a},ue=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationRefRangeController=class extends l.Disposable{constructor(e,t,a,n,i,s,u,d,c,h){super();M(this,"_disposableMap",new Map);M(this,"registerRule",(e,t,a)=>{this.register(e,t,a),this.registerFormula(e,t,a),this.registerRange(e,t,a)});this._dataValidationModel=e,this._univerInstanceService=t,this._injector=a,this._sheetSkeletonManagerService=n,this._refRangeService=i,this._dataValidationCustomFormulaService=s,this._dataValidationFormulaService=u,this._formulaRefRangeService=d,this._commandService=c,this._dataValidationCacheService=h,this._initRefRange()}_getIdWithUnitId(e,t,a){return`${e}_${t}_${a}`}registerFormula(e,t,a){var d;const n=a.uid,i=this._getIdWithUnitId(e,t,n),s=(d=this._disposableMap.get(i))!=null?d:new Set,u=(c,h)=>{const f=this._dataValidationModel.getRuleById(e,t,n);if(!f)return{redos:[],undos:[]};const m=f[c];if(!m||m===h)return{redos:[],undos:[]};const g={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:O.UpdateRuleType.SETTING,payload:{type:f.type,formula1:f.formula1,formula2:f.formula2,[c]:h}}},R={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:O.UpdateRuleType.SETTING,payload:{type:f.type,formula1:f.formula1,formula2:f.formula2,[c]:h}}},V=[{id:O.UpdateDataValidationMutation.id,params:g}],T=[{id:O.UpdateDataValidationMutation.id,params:R}];return{redos:V,undos:T}};if(a.type===l.DataValidationType.CUSTOM){const c=this._dataValidationCustomFormulaService.getRuleFormulaInfo(e,t,n);if(c){const h=this._formulaRefRangeService.registerFormula(c.formula,f=>u("formula1",f));s.add(()=>h.dispose())}}if(a.type!==l.DataValidationType.CUSTOM){const c=this._dataValidationFormulaService.getRuleFormulaInfo(e,t,n);if(c){const[h,f]=c;if(h){const m=this._formulaRefRangeService.registerFormula(h.text,g=>u("formula1",g));s.add(()=>m.dispose())}if(f){const m=this._formulaRefRangeService.registerFormula(f.text,g=>u("formula1",g));s.add(()=>m.dispose())}}}}register(e,t,a){var d;const n=c=>{const h=[...a.ranges],m=h.map(R=>ne.handleCommonDefaultRangeChangeWithEffectRefCommands(R,c)).filter(R=>!!R).flat();if(l.isRangesEqual(m,h))return{redos:[],undos:[]};if(m.length){const R={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:O.UpdateRuleType.RANGE,payload:m}},V=[{id:O.UpdateDataValidationMutation.id,params:R}],T=[{id:O.UpdateDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:O.UpdateRuleType.RANGE,payload:h}}}];return{redos:V,undos:T}}else{const R={unitId:e,subUnitId:t,ruleId:a.uid},V=[{id:O.RemoveDataValidationMutation.id,params:R}],T=O.removeDataValidationUndoFactory(this._injector,R);return{redos:V,undos:T}}},i=[];a.ranges.forEach(c=>{const h=this._refRangeService.registerRefRange(c,n,e,t);i.push(()=>h.dispose())});const s=this._getIdWithUnitId(e,t,a.uid),u=(d=this._disposableMap.get(s))!=null?d:new Set;u.add(()=>i.forEach(c=>c())),this._disposableMap.set(s,u)}registerRange(e,t,a){var U,P,A,N,$;const{uid:n,formula1:i,type:s}=a;if(s!==l.DataValidationType.LIST&&s!==l.DataValidationType.LIST_MULTIPLE||!Q.isReferenceString(i!=null?i:""))return;const u=Q.deserializeRangeWithSheet(i!=null?i:""),d=this._getIdWithUnitId(e,t,n),c=u.unitId||e,h=(U=this._univerInstanceService.getUniverSheetInstance(c))!=null?U:this._univerInstanceService.getCurrentUniverSheetInstance(),f=(A=(P=h.getSheetBySheetName(u.sheetName))==null?void 0:P.getSheetId())!=null?A:t,m=(N=h.getSheetBySheetId(f))!=null?N:h.getActiveSheet(),g=new l.DisposableCollection,R=u.range,V=h.getUnitId(),T=m.getSheetId();g.add(this._refRangeService.registerRefRange(R,q=>{let W=ne.handleDefaultRangeChangeWithEffectRefCommands(R,q);if(W||(W={startColumn:-1,endColumn:-1,startRow:-1,endRow:-1}),l.Rectangle.equals(W,R))return{redos:[],undos:[]};const L=Q.serializeRangeWithSpreadsheet(V,T,W),E=this._dataValidationModel.getRuleById(e,t,n);if(!E)return{redos:[],undos:[]};const k={unitId:e,subUnitId:t,ruleId:n,payload:{type:O.UpdateRuleType.SETTING,payload:{formula1:L,formula2:E.formula2,type:E.type}}},G={unitId:e,subUnitId:t,ruleId:n,payload:{type:O.UpdateRuleType.SETTING,payload:{formula1:E.formula1,formula2:E.formula2,type:E.type}}};return{redos:[{id:O.UpdateDataValidationMutation.id,params:k}],undos:[{id:O.UpdateDataValidationMutation.id,params:G}]}},V,V)),g.add(this.disposeWithMe(this._commandService.onCommandExecuted(q=>{if(q.id===ne.SetRangeValuesMutation.id&&q.params){const W=q.params,{cellValue:L,unitId:E,subUnitId:k}=W;if(E===V&&k===T)if(L){let G=!1;l.Range.foreach(R,(F,S)=>{const _=L[F];if(_&&S in _){if(G)return;G=!0,this._dataValidationCacheService.markRangeDirty(E,k,a.ranges)}})}else this._dataValidationCacheService.markRangeDirty(E,k,a.ranges)}})));const b=($=this._disposableMap.get(d))!=null?$:new Set;b.add(()=>g.dispose()),this._disposableMap.set(d,b)}_initRefRange(){this.disposeWithMe(re.merge(this._sheetSkeletonManagerService.currentSkeleton$.pipe(nt.map(e=>e==null?void 0:e.sheetId),nt.distinctUntilChanged())).pipe(nt.switchMap(()=>new re.Observable(e=>{const t=new l.DisposableCollection;return e.next(t),()=>{t.dispose()}}))).subscribe(e=>{e.add(l.toDisposable(this._dataValidationModel.ruleChange$.subscribe(t=>{const{unitId:a,subUnitId:n,rule:i}=t;switch(t.type){case"add":{const s=t.rule;this.registerRule(t.unitId,t.subUnitId,s);break}case"remove":{const s=this._disposableMap.get(this._getIdWithUnitId(a,n,i.uid));s&&s.forEach(u=>u());break}case"update":{const s=t.rule,u=this._disposableMap.get(this._getIdWithUnitId(a,n,s.uid));u&&u.forEach(d=>d()),this.registerRule(t.unitId,t.subUnitId,s);break}}})))})),this.disposeWithMe(l.toDisposable(()=>{this._disposableMap.forEach(e=>{e.forEach(t=>t())}),this._disposableMap.clear()}))}},v.DataValidationRefRangeController=dr([l.OnLifecycle(l.LifecycleStages.Rendered,v.DataValidationRefRangeController),ue(0,y.Inject(O.DataValidationModel)),ue(1,y.Inject(l.IUniverInstanceService)),ue(2,y.Inject(y.Injector)),ue(3,y.Inject(X.SheetSkeletonManagerService)),ue(4,y.Inject(ne.RefRangeService)),ue(5,y.Inject(v.DataValidationCustomFormulaService)),ue(6,y.Inject(v.DataValidationFormulaService)),ue(7,y.Inject(Vt.FormulaRefRangeService)),ue(8,l.ICommandService),ue(9,y.Inject(ye))],v.DataValidationRefRangeController);const ta={dataValidation:{title:"Data validation",validFail:{common:"Please input value or formula",number:"Please input number or formula",formula:"Please input formula",integer:"Please input integer or formula",date:"Please input date or formula",list:"Please input options"},panel:{title:"Data validation management",addTitle:"Create new data validation",removeAll:"Remove All",add:"Create Data validation",range:"Ranges",type:"Type",options:"Advance options",operator:"Operator",removeRule:"Remove",done:"Done",formulaPlaceholder:"Please input value or formula",formulaAnd:"and",invalid:"Invalid",showWarning:"Show warning",rejectInput:"Reject input",messageInfo:"Helper message",showInfo:"Show help text for a selected cell"},operators:{between:"between",greaterThan:"greater than",greaterThanOrEqual:"greater than or equal",lessThan:"less than",lessThanOrEqual:"less than or equal",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is greater than {FORMULA1}",greaterThanOrEqual:"is greater than or equal to {FORMULA1}",lessThan:"is less than {FORMULA1}",lessThanOrEqual:"is less than or equal to {FORMULA1}",equal:"is equal to {FORMULA1}",notEqual:"is not equal to {FORMULA1}",notBetween:"is not between {FORMULA1} and {FORMULA2}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be greater than {FORMULA1}",greaterThanOrEqual:"Value must be greater than or equal to {FORMULA1}",lessThan:"Value must be less than {FORMULA1}",lessThanOrEqual:"Value must be less than or equal to {FORMULA1}",equal:"Value must be equal to {FORMULA1}",notEqual:"Value must be not equal to {FORMULA1}",notBetween:"Value must be not between {FORMULA1} and {FORMULA2}"},date:{title:"Date",operators:{between:"between",greaterThan:"after",greaterThanOrEqual:"on or after",lessThan:"before",lessThanOrEqual:"on or before",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is after {FORMULA1}",greaterThanOrEqual:"is on or after {FORMULA1}",lessThan:"is before {FORMULA1}",lessThanOrEqual:"is on or before {FORMULA1}",equal:"is {FORMULA1}",notEqual:"is not {FORMULA1}",notBetween:"is not between {FORMULA1}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be after {FORMULA1}",greaterThanOrEqual:"Value must be on or after {FORMULA1}",lessThan:"Value must be before {FORMULA1}",lessThanOrEqual:"Value must be on or before {FORMULA1}",equal:"Value must be {FORMULA1}",notEqual:"Value must be not {FORMULA1}",notBetween:"Value must be not between {FORMULA1}"}},list:{title:"Dropdown",name:"Value contains one from range",error:"Input must fall within specified range",emptyError:"Please enter a value",add:"Add",dropdown:"Select",options:"Options",customOptions:"Custom",refOptions:"From a range"},listMultiple:{title:"Dropdown-Multiple",dropdown:"Multiple select"},textLength:{title:"Text length",errorMsg:{between:"Text length must be between {FORMULA1} and {FORMULA2}",greaterThan:"Text length must be after {FORMULA1}",greaterThanOrEqual:"Text length must be on or after {FORMULA1}",lessThan:"Text length must be before {FORMULA1}",lessThanOrEqual:"Text length must be on or before {FORMULA1}",equal:"Text length must be {FORMULA1}",notEqual:"Text length must be not {FORMULA1}",notBetween:"Text length must be not between {FORMULA1}"}},decimal:{title:"Number"},whole:{title:"Integer"},checkbox:{title:"Checkbox",error:"This cell's contents violate its validation rule",tips:"Use custom values within cells",checked:"Selected value",unchecked:"Unselected value"},custom:{title:"Custom formula",error:"This cell's contents violate its validation rule",validFail:"Please input a valid formula"},alert:{title:"Error",ok:"OK"},error:{title:"Invalid:"},renderMode:{arrow:"Arrow",chip:"Chip",text:"Plain text",label:"Display style"}}},aa={dataValidation:{title:"数据验证",validFail:{common:"请输入值或公式",number:"请输入合法的数字或公式",formula:"请输入合法的公式或公式",integer:"请输入合法的整数或公式",date:"请输入合法的日期或公式",list:"请输入至少一个合法选项"},panel:{title:"管理数据验证",addTitle:"新建数据验证",removeAll:"全部删除",add:"新建规则",range:"应用范围",type:"条件类型",options:"高级设置",operator:"数据",removeRule:"删除规则",done:"确认",formulaPlaceholder:"请输入值或公式",formulaAnd:"与",invalid:"数据无效时",showWarning:"显示警告",rejectInput:"拒绝输入",messageInfo:"文字提示",showInfo:"显示所选单元格的提示文字"},operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"大于 {FORMULA1}",greaterThanOrEqual:"大于或等于 {FORMULA1}",lessThan:"小于 {FORMULA1}",lessThanOrEqual:"小于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"值必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"值必须大于 {FORMULA1}",greaterThanOrEqual:"值必须大于或等于 {FORMULA1}",lessThan:"值必须小于 {FORMULA1}",lessThanOrEqual:"值必须小于或等于 {FORMULA1}",equal:"值必须等于 {FORMULA1}",notEqual:"值必须不等于 {FORMULA1}",notBetween:"值必须在 {FORMULA1} 和 {FORMULA2} 范围之外"},date:{title:"日期",operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"晚于 {FORMULA1}",greaterThanOrEqual:"晚于或等于 {FORMULA1}",lessThan:"早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"日期必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"日期必须晚于 {FORMULA1}",greaterThanOrEqual:"日期必须晚于或等于 {FORMULA1}",lessThan:"日期必须早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"日期必须等于 {FORMULA1}",notEqual:"日期必须不等于 {FORMULA1}",notBetween:"日期必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},list:{title:"下拉菜单",name:"值必须是列表中的值",error:"输入必须在指定的范围内",emptyError:"请输入一个值",add:"添加选项",dropdown:"单选",options:"选项来源",customOptions:"自定义",refOptions:"引用数据"},listMultiple:{title:"下拉菜单-多选",dropdown:"多选"},textLength:{title:"文本长度",errorMsg:{between:"文本长度必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"文本长度必须大于 {FORMULA1}",greaterThanOrEqual:"文本长度必须大于或等于 {FORMULA1}",lessThan:"文本长度必须小于 {FORMULA1}",lessThanOrEqual:"文本长度必须小于或等于 {FORMULA1}",equal:"文本长度必须等于 {FORMULA1}",notEqual:"文本长度必须不等于 {FORMULA1}",notBetween:"文本长度必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},decimal:{title:"数字"},whole:{title:"整数"},checkbox:{title:"复选框",error:"此单元格的内容违反了验证规则",tips:"在单元格内使用自定义值",checked:"选中值",unchecked:"未选中值"},custom:{title:"自定义公式",error:"此单元格的内容违反了验证规则",validFail:"请输入合法的公式"},alert:{title:"提示",ok:"确定"},error:{title:"无效:"},renderMode:{arrow:"箭头",chip:"条状标签",text:"纯文本",label:"显示样式"}}};var cr=Object.defineProperty,hr=Object.getOwnPropertyDescriptor,mr=(o,r,e,t)=>{for(var a=t>1?void 0:t?hr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&cr(r,e,a),a},na=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationAutoFillController=class extends l.Disposable{constructor(r,e){super(),this._autoFillService=r,this._dataValidationModel=e,this._initAutoFill()}_initAutoFill(){const r=()=>({redos:[],undos:[]}),e=a=>{const{source:n,target:i,unitId:s,subUnitId:u}=a,d=this._dataValidationModel.ensureManager(s,u),c=d.getRuleObjectMatrix().clone(),h={row:n.startRow,col:n.startColumn};X.getAutoFillRepeatRange(n,i).forEach(V=>{const T=V.repeatStartCell,b=V.relativeRange,U={startRow:h.row,startColumn:h.col,endColumn:h.col,endRow:h.row},P={startRow:T.row,startColumn:T.col,endColumn:T.col,endRow:T.row};l.Range.foreach(b,(A,N)=>{const $=l.Rectangle.getPositionRange({startRow:A,startColumn:N,endColumn:N,endRow:A},U),q=d.getRuleIdByLocation($.startRow,$.startColumn);if(q){const W=l.Rectangle.getPositionRange({startRow:A,startColumn:N,endColumn:N,endRow:A},P);c.setValue(W.startRow,W.startColumn,q)}})});const m=c.diff(d.getDataValidations()),{redoMutations:g,undoMutations:R}=Oe(s,u,m);return{undos:R,redos:g}},t={id:Ye,onFillData:(a,n,i)=>i===X.APPLY_TYPE.COPY||i===X.APPLY_TYPE.ONLY_FORMAT||i===X.APPLY_TYPE.SERIES?e(a):r()};this.disposeWithMe(this._autoFillService.addHook(t))}},v.DataValidationAutoFillController=mr([l.OnLifecycle(l.LifecycleStages.Ready,v.DataValidationAutoFillController),na(0,X.IAutoFillService),na(1,y.Inject(O.DataValidationModel))],v.DataValidationAutoFillController);var fr=Object.defineProperty,pr=Object.getOwnPropertyDescriptor,vr=(o,r,e,t)=>{for(var a=t>1?void 0:t?pr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&fr(r,e,a),a},ra=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationCopyPasteController=class extends l.Disposable{constructor(e,t){super();M(this,"_copyInfo");this._sheetClipboardService=e,this._dataValidationModel=t,this._initCopyPaste()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:Ye,onBeforeCopy:(e,t,a)=>this._collect(e,t,a),onPasteCells:(e,t,a,n)=>{const{copyType:i=X.COPY_TYPE.COPY,pasteType:s}=n,{range:u}=e||{},{range:d,unitId:c,subUnitId:h}=t;return this._generateMutations(d,{copyType:i,pasteType:s,copyRange:u,unitId:c,subUnitId:h})}})}_collect(e,t,a){const n=new l.ObjectMatrix;this._copyInfo={unitId:e,subUnitId:t,matrix:n};const i=this._dataValidationModel.ensureManager(e,t);l.Range.foreach(a,(s,u)=>{const d=i.getRuleIdByLocation(s,u),c=l.Rectangle.getRelativeRange({startRow:s,endRow:s,startColumn:u,endColumn:u},a);n.setValue(c.startRow,c.startColumn,d!=null?d:"")})}_generateMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};if(t.copyType===X.COPY_TYPE.CUT)return this._copyInfo=null,{redos:[],undos:[]};if(!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange)return{redos:[],undos:[]};if([X.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,X.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,X.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,Vt.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};const{unitId:a,subUnitId:n}=this._copyInfo;if(t.unitId!==a||n!==t.subUnitId){const i=this._dataValidationModel.ensureManager(a,n),s=this._dataValidationModel.ensureManager(t.unitId,t.subUnitId),u=s.getRuleObjectMatrix().clone(),d=X.getRepeatRange(t.copyRange,e,!0),c=new Map;d.forEach(({startRange:m})=>{var g;(g=this._copyInfo)==null||g.matrix.forValue((R,V,T)=>{const b=l.Rectangle.getPositionRange({startRow:R,endRow:R,startColumn:V,endColumn:V},m),U=`${n}-${T}`,P=i.getRuleById(T);!s.getRuleById(U)&&P&&c.set(U,{...P,uid:U}),u.setValue(b.startRow,b.startColumn,U)})});const{redoMutations:h,undoMutations:f}=Oe(t.unitId,t.subUnitId,u.diffWithAddition(s.getDataValidations(),c.values()));return{redos:h,undos:f}}else{const i=this._dataValidationModel.ensureManager(a,n),s=i.getRuleObjectMatrix().clone();X.getRepeatRange(t.copyRange,e,!0).forEach(({startRange:h})=>{var f;(f=this._copyInfo)==null||f.matrix.forValue((m,g,R)=>{const V=l.Rectangle.getPositionRange({startRow:m,endRow:m,startColumn:g,endColumn:g},h);s.setValue(V.startRow,V.startColumn,R)})});const{redoMutations:d,undoMutations:c}=Oe(a,n,s.diff(i.getDataValidations()));return{redos:d,undos:c}}}},v.DataValidationCopyPasteController=vr([l.OnLifecycle(l.LifecycleStages.Ready,v.DataValidationCopyPasteController),ra(0,X.ISheetClipboardService),ra(1,y.Inject(O.DataValidationModel))],v.DataValidationCopyPasteController);class Rt{constructor(r){M(this,"value");this.value=r}addRule(r){const e=r.uid;r.ranges.forEach(t=>{l.Range.foreach(t,(a,n)=>{this.value.setValue(a,n,e)})})}removeRange(r){r.forEach(e=>{l.Range.foreach(e,(t,a)=>{this.value.realDeleteValue(t,a)})})}removeRule(r){r.ranges.forEach(e=>{l.Range.foreach(e,(t,a)=>{this.value.setValue(t,a,"")})})}updateRange(r,e,t){const a=`${r}$`;e.forEach(n=>{l.Range.foreach(n,(i,s)=>{this.value.getValue(i,s)===r&&this.value.setValue(i,s,a)})}),t.forEach(n=>{l.Range.foreach(n,(i,s)=>{this.value.setValue(i,s,r)})}),e.forEach(n=>{l.Range.foreach(n,(i,s)=>{this.value.getValue(i,s)===a&&this.value.realDeleteValue(i,s)})})}diff(r){const e=[];let t=0;return r.forEach((a,n)=>{const i=l.queryObjectMatrix(this.value,u=>u===a.uid),s=a.ranges;(i.length!==s.length||i.some((u,d)=>!l.Rectangle.equals(u,s[d])))&&e.push({type:"update",ruleId:a.uid,oldRanges:s,newRanges:i}),i.length===0&&(e.push({type:"delete",rule:a,index:n-t}),t++)}),e}diffWithAddition(r,e){const t=[];let a=0;return r.forEach((n,i)=>{const s=l.queryObjectMatrix(this.value,d=>d===n.uid),u=n.ranges;(s.length!==u.length||s.some((d,c)=>!l.Rectangle.equals(d,u[c])))&&t.push({type:"update",ruleId:n.uid,oldRanges:u,newRanges:s}),s.length===0&&(t.push({type:"delete",rule:n,index:i-a}),a++)}),Array.from(e).forEach(n=>{const i=l.queryObjectMatrix(this.value,s=>s===n.uid);t.push({type:"add",rule:{...n,ranges:i}})}),t}clone(){return new Rt(new l.ObjectMatrix(this.value.clone()))}getValue(r,e){return this.value.getValue(r,e)}setValue(r,e,t){return this.value.setValue(r,e,t)}}class gr extends O.DataValidationManager{constructor(e,t,a,n){super(e,t,a);M(this,"_ruleMatrix");M(this,"_dataValidatorRegistryService");M(this,"_dataValidationCacheService");M(this,"_dataValidationFormulaService");M(this,"_dataValidationCustomFormulaService");M(this,"_cache");M(this,"_dataValidationRefRangeController");this._injector=n,this._dataValidatorRegistryService=this._injector.get(O.DataValidatorRegistryService),this._dataValidationCacheService=this._injector.get(ye),this._dataValidationFormulaService=this._injector.get(v.DataValidationFormulaService),this._dataValidationCustomFormulaService=this._injector.get(v.DataValidationCustomFormulaService),this._dataValidationRefRangeController=this._injector.get(v.DataValidationRefRangeController),this._cache=this._dataValidationCacheService.ensureCache(e,t);const i=new l.ObjectMatrix;a==null||a.forEach(s=>{const u=s.uid;s.ranges.forEach(d=>{l.Range.foreach(d,(c,h)=>{i.setValue(c,h,u)})})}),a==null||a.forEach(s=>{this._dataValidationRefRangeController.register(e,t,s)}),this._ruleMatrix=new Rt(i)}addRule(e,t){this._ruleMatrix.addRule(e),this._dataValidationCacheService.addRule(this.unitId,this.subUnitId,e),this._dataValidationFormulaService.addRule(this.unitId,this.subUnitId,e.uid,e.formula1,e.formula2),this._dataValidationCustomFormulaService.addRule(this.unitId,this.subUnitId,e),super.addRule(e,t)}updateRule(e,t){const a=this.getRuleById(e);if(!a)throw new Error(`Rule not found! id: ${e}`);return t.type===O.UpdateRuleType.RANGE?(this._ruleMatrix.updateRange(e,a.ranges,t.payload),this._dataValidationCacheService.updateRuleRanges(this.unitId,this.subUnitId,e,t.payload,a.ranges),this._dataValidationCustomFormulaService.updateRuleRanges(this.unitId,this.subUnitId,e,a.ranges,t.payload)):t.type===O.UpdateRuleType.SETTING&&(this._dataValidationCacheService.markRangeDirty(this.unitId,this.subUnitId,a.ranges),this._dataValidationFormulaService.updateRuleFormulaText(this.unitId,this.subUnitId,e,t.payload.formula1,t.payload.formula2),this._dataValidationCustomFormulaService.updateRuleFormula(this.unitId,this.subUnitId,e,a.ranges,t.payload.formula1)),super.updateRule(e,t)}removeRule(e){const t=this.getRuleById(e);t&&(this._ruleMatrix.removeRule(t),this._dataValidationCacheService.removeRule(this.unitId,this.subUnitId,t)),super.removeRule(e)}getRuleIdByLocation(e,t){return this._ruleMatrix.getValue(e,t)}getRuleByLocation(e,t){const a=this.getRuleIdByLocation(e,t);if(a)return this.getRuleById(a)}validator(e,t,a,n){const{col:i,row:s,unitId:u,subUnitId:d}=a,c=t.uid,h=this._dataValidatorRegistryService.getValidatorItem(t.type);if(h){const f=this._cache.getValue(s,i);return!f||f.value!==e?(this._cache.setValue(s,i,{value:e,status:l.DataValidationStatus.VALIDATING,ruleId:c}),h.validator({value:e,unitId:u,subUnitId:d,row:s,column:i},t).then(m=>{const g=m?l.DataValidationStatus.VALID:l.DataValidationStatus.INVALID;this._cache.setValue(s,i,{value:e,status:g,ruleId:c}),n(g)}),l.DataValidationStatus.VALIDATING):f.status}else return l.DataValidationStatus.VALID}getRuleErrorMsg(e){const t=this.getRuleById(e);if(!t)return"";const a=this._dataValidatorRegistryService.getValidatorItem(t.type);return t.error?t.error:a?a.getRuleFinalError(t):""}getRuleObjectMatrix(){return this._ruleMatrix}}var Sr=Object.defineProperty,_r=Object.getOwnPropertyDescriptor,Rr=(o,r,e,t)=>{for(var a=t>1?void 0:t?_r(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Sr(r,e,a),a},et=(o,r)=>(e,t)=>r(e,t,o);let tt=class extends l.Disposable{constructor(o,r,e,t){super(),this._resourceManagerService=o,this._univerInstanceService=r,this._dataValidationModel=e,this._injector=t,this._initDataValidationDataSource()}_createSheetDataValidationManager(o,r){return new gr(o,r,[],this._injector)}_initDataValidationDataSource(){this._dataValidationModel.setManagerCreator(this._createSheetDataValidationManager.bind(this))}};tt=Rr([l.OnLifecycle(l.LifecycleStages.Starting,tt),et(0,l.IResourceManagerService),et(1,l.IUniverInstanceService),et(2,y.Inject(O.DataValidationModel)),et(3,y.Inject(y.Injector))],tt);var Mr=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Vr=(o,r,e,t)=>{for(var a=t>1?void 0:t?Dr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Mr(r,e,a),a},Be=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationRejectInputController=class extends l.Disposable{constructor(r,e,t,a,n){super(),this._editorBridgeService=r,this._dataValidationModel=e,this._dataValidatorRegistryService=t,this._dialogService=a,this._localeService=n,this._initEditorBridgeInterceptor()}_initEditorBridgeInterceptor(){this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,{handler:async(r,e,t)=>{const a=await r,{worksheet:n,row:i,col:s,unitId:u,subUnitId:d}=e,c=this._dataValidationModel.ensureManager(u,d),h=c.getRuleIdByLocation(i,s),f=h?c.getRuleById(h):void 0;if(!f||f.errorStyle!==l.DataValidationErrorStyle.STOP)return t(Promise.resolve(a));const m=await this._dataValidatorRegistryService.getValidatorItem(f.type);if(!m)return t(Promise.resolve(a));const g=e.worksheet.getCellRaw(e.row,e.col);if(await m.validator({value:ae(g),row:i,column:s,unitId:u,subUnitId:d},f))return t(Promise.resolve(a));const V=n.getCellRaw(i,s);return this._dialogService.open({width:368,title:{title:this._localeService.t("dataValidation.alert.title")},id:"reject-input-dialog",children:{title:m.generateRuleErrorMessage(f)},footer:{title:B.createElement(j.Button,{type:"primary",onClick:()=>this._dialogService.close("reject-input-dialog")},this._localeService.t("dataValidation.alert.ok"))},onClose:()=>{this._dialogService.close("reject-input-dialog")}}),t(Promise.resolve(V))}})}},v.DataValidationRejectInputController=Vr([l.OnLifecycle(l.LifecycleStages.Ready,v.DataValidationRejectInputController),Be(0,X.IEditorBridgeService),Be(1,y.Inject(O.DataValidationModel)),Be(2,y.Inject(O.DataValidatorRegistryService)),Be(3,z.IDialogService),Be(4,y.Inject(l.LocaleService))],v.DataValidationRejectInputController);var Ir=Object.defineProperty,Cr=Object.getOwnPropertyDescriptor,Or=(o,r,e,t)=>{for(var a=t>1?void 0:t?Cr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Ir(r,e,a),a},Mt=(o,r)=>(e,t)=>r(e,t,o);v.UniverSheetsDataValidationPlugin=class extends l.Plugin{constructor(r,e,t,a){super(Ye),this._injector=e,this._commandService=t,this._localeService=a}onStarting(r){[[_e],[v.SheetDataValidationService],[ye],[v.DataValidationFormulaService],[v.DataValidationCustomFormulaService],[v.RegisterOtherFormulaService],[Se],[tt],[v.DataValidationController],[v.DataValidationRenderController],[v.DataValidationAlertController],[v.DataValidationRefRangeController],[v.DataValidationAutoFillController],[v.DataValidationCopyPasteController],[v.DataValidationRejectInputController]].forEach(e=>{r.add(e)}),[He,it,rt,We,Et,yt,Te,Sa].forEach(e=>{this._commandService.registerCommand(e)}),this._localeService.load({zhCN:aa,enUS:ta})}},v.UniverSheetsDataValidationPlugin=Or([Mt(1,y.Inject(y.Injector)),Mt(2,l.ICommandService),Mt(3,y.Inject(l.LocaleService))],v.UniverSheetsDataValidationPlugin),Object.defineProperty(v,"ICommandService",{enumerable:!0,get:()=>l.ICommandService}),Object.defineProperty(v,"LocaleService",{enumerable:!0,get:()=>l.LocaleService}),Object.defineProperty(v,"Plugin",{enumerable:!0,get:()=>l.Plugin}),v.AddSheetDataValidationAndOpenCommand=it,v.AddSheetDataValidationCommand=He,v.DATA_VALIDATION_PLUGIN_NAME=Ye,v.DataValidationCacheService=ye,v.HideDataValidationDropdown=Et,v.ShowDataValidationDropdown=We,v.UpdateSheetDataValidationRangeCommand=rt,v.enUS=ta,v.zhCN=aa,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
9
+ */var ea=I,ta=Symbol.for("react.element"),aa=Symbol.for("react.fragment"),na=Object.prototype.hasOwnProperty,ra=ea.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,oa={key:!0,ref:!0,__self:!0,__source:!0};function St(i,r,e){var t,a={},n=null,o=null;e!==void 0&&(n=""+e),r.key!==void 0&&(n=""+r.key),r.ref!==void 0&&(o=r.ref);for(t in r)na.call(r,t)&&!oa.hasOwnProperty(t)&&(a[t]=r[t]);if(i&&i.defaultProps)for(t in r=i.defaultProps,r)a[t]===void 0&&(a[t]=r[t]);return{$$typeof:ta,type:i,key:n,ref:o,props:a,_owner:ra.current}}be.Fragment=aa,be.jsx=St,be.jsxs=St,_t.exports=be;var f=_t.exports;function ia(){const i=N.useDependency(ge),r=B.useObservable(i.activeDropdown$,i.activeDropdown),e=N.useDependency(B.ComponentManager);if(!r)return null;const{location:t,componentKey:a}=r,n=e.get(a),o=`${t.unitId}-${t.subUnitId}-${t.row}-${t.col}`;if(!n)return null;const l=()=>{i.hideDropdown()};return f.jsx(n,{location:t,hideFn:l},o)}const Rt="sheet.ui.dropdown";var sa=Object.defineProperty,la=Object.getOwnPropertyDescriptor,da=(i,r,e,t)=>{for(var a=t>1?void 0:t?la(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&sa(r,e,a),a},ve=(i,r)=>(e,t)=>r(e,t,i);let ge=class extends s.Disposable{constructor(r,e,t,a,n,o,l){super();S(this,"_activeDropdown");S(this,"_activeDropdown$",new pe.Subject);S(this,"_currentPopup",null);S(this,"activeDropdown$",this._activeDropdown$.asObservable());S(this,"_zenVisible",!1);this._canvasPopupManagerService=r,this._univerInstanceService=e,this._sheetSkeletonManagerService=t,this._dataValidatorRegistryService=a,this._zenZoneService=n,this._renderManagerService=o,this._dataValidationModel=l,this._init()}get activeDropdown(){return this._activeDropdown}_init(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(r=>{this._zenVisible=r,r&&this.hideDropdown()}))}showDropdown(r){const{location:e}=r,{row:t,col:a}=e;if(this._currentPopup&&this._currentPopup.dispose(),this._zenVisible)return;this._activeDropdown=r,this._activeDropdown$.next(this._activeDropdown);const n=this._renderManagerService.getRenderById(s.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),o=this._canvasPopupManagerService.attachPopupToCell(t,a,{componentKey:Rt,onClickOutside:()=>{this.hideDropdown()},offset:[0,3],excludeOutside:[n==null?void 0:n.engine.getCanvasElement()].filter(Boolean)});if(!o)throw new Error("[DataValidationDropdownManagerService]: cannot show dropdown!");const l=new s.DisposableCollection;l.add(o),l.add({dispose:()=>{var d,u;(u=(d=this._activeDropdown)==null?void 0:d.onHide)==null||u.call(d)}}),this._currentPopup=l}hideDropdown(){this._activeDropdown&&(this._currentPopup&&this._currentPopup.dispose(),this._currentPopup=null,this._activeDropdown=null,this._activeDropdown$.next(null))}showDataValidationDropdown(r,e,t,a,n){const o=this._univerInstanceService.getUniverSheetInstance(r);if(!o)return;const l=o.getSheetBySheetId(e);if(!l)return;const u=this._dataValidationModel.ensureManager(r,e).getRuleByLocation(t,a);if(!this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:r,sheetId:e})||!u)return;const m=this._dataValidatorRegistryService.getValidatorItem(u.type);if(!m||!m.dropdown){this.hideDropdown();return}this.showDropdown({location:{workbook:o,worksheet:l,row:t,col:a,unitId:r,subUnitId:e},componentKey:m.dropdown,onHide:n})}};ge=da([ve(0,D.Inject(U.SheetCanvasPopManagerService)),ve(1,s.IUniverInstanceService),ve(2,D.Inject(U.SheetSkeletonManagerService)),ve(3,D.Inject(V.DataValidatorRegistryService)),ve(4,B.IZenZoneService),ve(5,z.IRenderManagerService),ve(6,D.Inject(V.DataValidationModel))],ge);class _e extends s.Disposable{constructor(){super(...arguments);S(this,"_open$",new pe.BehaviorSubject(!1));S(this,"_activeRule");S(this,"_activeRule$",new pe.BehaviorSubject(void 0));S(this,"open$",this._open$.pipe(pe.distinctUntilChanged()));S(this,"activeRule$",this._activeRule$.asObservable())}get activeRule(){return this._activeRule}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}setActiveRule(e){this._activeRule=e,this._activeRule$.next(e)}}const Vt="DataValidationPanel",we={id:"data-validation.operation.open-validation-panel",type:s.CommandType.OPERATION,handler(i,r){if(!r)return!1;const{ruleId:e,isAdd:t}=r,a=i.get(_e),n=i.get(V.DataValidationModel),o=i.get(s.IUniverInstanceService),l=i.get(B.ISidebarService),d=te.getSheetCommandTarget(o);if(!d)return!1;const{unitId:u,subUnitId:c}=d,m=e?n.getRuleById(u,c,e):void 0;return a.open(),a.setActiveRule(m&&{unitId:u,subUnitId:c,rule:m}),l.open({header:{title:t?"dataValidation.panel.addTitle":"dataValidation.panel.title"},children:{label:Vt},width:312}),!0}},Dt={id:"data-validation.operation.close-validation-panel",type:s.CommandType.OPERATION,handler(i){return i.get(_e).close(),!0}},ua={id:"data-validation.operation.toggle-validation-panel",type:s.CommandType.OPERATION,handler(i){const r=i.get(s.ICommandService),e=i.get(_e);return e.open(),e.isOpen?r.executeCommand(Dt.id):r.executeCommand(we.id),!0}},Ne={type:s.CommandType.OPERATION,id:"sheet.operation.show-data-validation-dropdown",handler(i,r){if(!r)return!1;const e=i.get(ge),{unitId:t,subUnitId:a,row:n,column:o}=r,l=e.activeDropdown,d=l==null?void 0:l.location;return d&&d.unitId===t&&d.subUnitId===a&&d.row===n&&d.col===o||e.showDataValidationDropdown(t,a,n,o),!0}},Mt={type:s.CommandType.OPERATION,id:"sheet.operation.hide-data-validation-dropdown",handler(i,r){return r?(i.get(ge).hideDropdown(),!0):!1}};function De(i,r,e){const t=[],a=[];return e.forEach(n=>{switch(n.type){case"delete":t.push({id:V.RemoveDataValidationMutation.id,params:{unitId:i,subUnitId:r,ruleId:n.rule.uid}}),a.unshift({id:V.AddDataValidationMutation.id,params:{unitId:i,subUnitId:r,rule:n.rule,index:n.index}});break;case"update":{t.push({id:V.UpdateDataValidationMutation.id,params:{unitId:i,subUnitId:r,ruleId:n.ruleId,payload:{type:V.UpdateRuleType.RANGE,payload:n.newRanges}}}),a.unshift({id:V.UpdateDataValidationMutation.id,params:{unitId:i,subUnitId:r,ruleId:n.ruleId,payload:{type:V.UpdateRuleType.RANGE,payload:n.oldRanges}}});break}case"add":{t.push({id:V.AddDataValidationMutation.id,params:{unitId:i,subUnitId:r,rule:n.rule}}),a.unshift({id:V.RemoveDataValidationMutation.id,params:{unitId:i,subUnitId:r,ruleId:n.rule.uid}});break}}}),{redoMutations:t,undoMutations:a}}const Ze={type:s.CommandType.COMMAND,id:"sheets.command.updateDataValidationRuleRange",async handler(i,r){if(!r)return!1;const{unitId:e,subUnitId:t,ranges:a,ruleId:n}=r,o=i.get(V.DataValidationModel),l=i.get(s.ICommandService),d=i.get(s.IUndoRedoService),u=o.ensureManager(e,t),c=u.getRuleById(n);if(!c)return!1;const m=c.ranges,p=u.getRuleObjectMatrix().clone();p.updateRange(n,m,a);const h=p.diff(u.getDataValidations()),{redoMutations:g,undoMutations:_}=De(e,t,h);return d.pushUndoRedo({undoMutations:_,redoMutations:g,unitID:e}),await s.sequenceExecuteAsync(g,l),!0}},je={type:s.CommandType.COMMAND,id:"sheets.command.addDataValidation",async handler(i,r){if(!r)return!1;const{unitId:e,subUnitId:t,rule:a}=r,n=i.get(V.DataValidationModel),o=i.get(s.ICommandService),l=i.get(s.IUndoRedoService),d=n.ensureManager(e,t),u=d.getRuleObjectMatrix().clone();u.addRule(a);const c=u.diff(d.getDataValidations()),m={unitId:e,subUnitId:t,rule:a},{redoMutations:p,undoMutations:h}=De(e,t,c);return p.push({id:V.AddDataValidationMutation.id,params:m}),h.unshift({id:V.RemoveDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid}}),l.pushUndoRedo({unitID:e,redoMutations:p,undoMutations:h}),await s.sequenceExecuteAsync(p,o),!0}},Je={type:s.CommandType.COMMAND,id:"data-validation.command.addRuleAndOpen",async handler(i){const r=i.get(s.IUniverInstanceService),e=te.getSheetCommandTarget(r);if(!e)return!1;const{workbook:t,worksheet:a}=e,n=V.createDefaultNewRule(i),o=i.get(s.ICommandService),l=t.getUnitId(),d=a.getSheetId(),u={rule:n,unitId:l,subUnitId:d};return await o.executeCommand(je.id,u)?(o.executeCommand(we.id,{ruleId:n.uid,isAdd:!0}),!0):!1}};var ae=function(){return ae=Object.assign||function(i){for(var r,e=1,t=arguments.length;e<t;e++){r=arguments[e];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(i[a]=r[a])}return i},ae.apply(this,arguments)},ca=function(i,r){var e={};for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&r.indexOf(t)<0&&(e[t]=i[t]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,t=Object.getOwnPropertySymbols(i);a<t.length;a++)r.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(i,t[a])&&(e[t[a]]=i[t[a]]);return e},me=I.forwardRef(function(i,r){var e=i.icon,t=i.id,a=i.className,n=i.extend,o=ca(i,["icon","id","className","extend"]),l="univerjs-icon univerjs-icon-".concat(t," ").concat(a||"").trim(),d=I.useRef("_".concat(pa()));return It(e,"".concat(t),{defIds:e.defIds,idSuffix:d.current},ae({ref:r,className:l},o),n)});function It(i,r,e,t,a){return I.createElement(i.tag,ae(ae({key:r},ma(i,e,a)),t),(ha(i,e).children||[]).map(function(n,o){return It(n,"".concat(r,"-").concat(i.tag,"-").concat(o),e,void 0,a)}))}function ma(i,r,e){var t=ae({},i.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var a=r.defIds;return!a||a.length===0||(i.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+r.idSuffix),Object.entries(t).forEach(function(n){var o=n[0],l=n[1];typeof l=="string"&&(t[o]=l.replace(/url\(#(.*)\)/,"url(#$1".concat(r.idSuffix,")")))})),t}function ha(i,r){var e,t=r.defIds;return!t||t.length===0?i:i.tag==="defs"&&(!((e=i.children)===null||e===void 0)&&e.length)?ae(ae({},i),{children:i.children.map(function(a){return typeof a.attrs.id=="string"&&t&&t.indexOf(a.attrs.id)>-1?ae(ae({},a),{attrs:ae(ae({},a.attrs),{id:a.attrs.id+r.idSuffix})}):a})}):i}function pa(){return Math.random().toString(36).substring(2,8)}me.displayName="UniverIcon";var fa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.44 3.57291C14.698 3.83093 14.698 4.24927 14.44 4.50729L6.44342 12.5037C6.28721 12.6599 6.03395 12.6599 5.87774 12.5037L1.55992 8.18578C1.3019 7.92776 1.3019 7.50942 1.55993 7.2514C1.81795 6.99338 2.23629 6.99338 2.49431 7.25141L6.01916 10.7763C6.09727 10.8544 6.2239 10.8544 6.30201 10.7763L13.5056 3.57291C13.7636 3.31489 14.1819 3.31489 14.44 3.57291Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Ot=I.forwardRef(function(i,r){return I.createElement(me,Object.assign({},i,{id:"check-mark-single",ref:r,icon:fa}))});Ot.displayName="CheckMarkSingle";const va=Ot;var ga={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{stroke:"currentColor",d:"M6.06964 2.57153H2.73631C2.36812 2.57153 2.06964 2.87001 2.06964 3.2382V6.57153C2.06964 6.93973 2.36812 7.2382 2.73631 7.2382H6.06964C6.43784 7.2382 6.73631 6.93973 6.73631 6.57153V3.2382C6.73631 2.87001 6.43784 2.57153 6.06964 2.57153zM6.06964 9.90479H2.73631C2.36812 9.90479 2.06964 10.2033 2.06964 10.5715V13.9048C2.06964 14.273 2.36812 14.5715 2.73631 14.5715H6.06964C6.43784 14.5715 6.73631 14.273 6.73631 13.9048V10.5715C6.73631 10.2033 6.43784 9.90479 6.06964 9.90479z",strokeLinejoin:"round",strokeWidth:1.33}},{tag:"path",attrs:{stroke:"currentColor",d:"M9.20471 5.06981L11.2023 6.73445 14.2047 3.73213M13.7047 10.238L9.70465 14.238M9.70477 10.238L13.7048 14.238",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.33}}]},Ct=I.forwardRef(function(i,r){return I.createElement(me,Object.assign({},i,{id:"data-validation-single",ref:r,icon:ga}))});Ct.displayName="DataValidationSingle";var _a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.78662 6.17993C7.12169 6.17993 7.39331 6.45156 7.39331 6.78662V10.7301C7.39331 11.0652 7.12169 11.3368 6.78662 11.3368 6.45156 11.3368 6.17993 11.0652 6.17993 10.7301V6.78662C6.17993 6.45156 6.45156 6.17993 6.78662 6.17993zM9.82007 6.78662C9.82007 6.45156 9.54844 6.17993 9.21338 6.17993 8.87831 6.17993 8.60669 6.45156 8.60669 6.78662V10.7301C8.60669 11.0652 8.87831 11.3368 9.21338 11.3368 9.54844 11.3368 9.82007 11.0652 9.82007 10.7301V6.78662z"}},{tag:"path",attrs:{fill:"currentColor",d:"M6.57094 1.32642C6.34938 1.32642 6.14544 1.44719 6.03894 1.64148L5.21395 3.14648H1.93311C1.59804 3.14648 1.32642 3.41811 1.32642 3.75317C1.32642 4.08824 1.59804 4.35986 1.93311 4.35986H2.84314V14.0669C2.84314 14.402 3.11476 14.6736 3.44983 14.6736H12.5502C12.8852 14.6736 13.1569 14.402 13.1569 14.0669V4.35986H14.0669C14.402 4.35986 14.6736 4.08824 14.6736 3.75317C14.6736 3.41811 14.402 3.14648 14.0669 3.14648H10.7895L9.98357 1.64602C9.87785 1.4492 9.67252 1.32642 9.44911 1.32642H6.57094ZM9.4122 3.14648L9.08632 2.53979H6.93024L6.59767 3.14648H9.4122ZM4.05652 4.35986V13.4602H11.9435V4.35986H4.05652Z",fillRule:"evenodd",clipRule:"evenodd"}}]},wt=I.forwardRef(function(i,r){return I.createElement(me,Object.assign({},i,{id:"delete-single",ref:r,icon:_a}))});wt.displayName="DeleteSingle";const Et=wt;var Sa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_249",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_249)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.74717 2.0944C8.74717 1.68671 8.41279 1.3562 8.00032 1.3562C7.58785 1.3562 7.25347 1.68671 7.25347 2.0944V7.26186H2.02541C1.61294 7.26186 1.27856 7.59237 1.27856 8.00007C1.27856 8.40777 1.61294 8.73827 2.02541 8.73827H7.25347V13.9057C7.25347 14.3134 7.58785 14.6439 8.00032 14.6439C8.41279 14.6439 8.74717 14.3134 8.74717 13.9057V8.73827H13.975C14.3874 8.73827 14.7218 8.40777 14.7218 8.00007C14.7218 7.59237 14.3874 7.26186 13.975 7.26186H8.74717V2.0944Z"}}]}]},yt=I.forwardRef(function(i,r){return I.createElement(me,Object.assign({},i,{id:"increase-single",ref:r,icon:Sa}))});yt.displayName="IncreaseSingle";const Ra=yt;var Va={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_556",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_556)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M0.629584 3.99986C1.13729 3.4922 1.9604 3.49224 2.46806 3.99995L7.57569 9.10806C7.81 9.3424 8.18992 9.3424 8.42424 9.10808L13.5323 3.99998C14.04 3.4923 14.8631 3.4923 15.3708 3.99998C15.8785 4.50766 15.8785 5.33078 15.3708 5.83846L9.41415 11.7951C8.63307 12.5762 7.36669 12.5762 6.58565 11.7951L0.629497 5.83834C0.121839 5.33063 0.121879 4.50752 0.629584 3.99986Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},Ft=I.forwardRef(function(i,r){return I.createElement(me,Object.assign({},i,{id:"more-down-single",ref:r,icon:Va}))});Ft.displayName="MoreDownSingle";const Da=Ft;var Ma={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_506_5",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M16 16H32V32H16z",transform:"rotate(180 16 16)"}}]},{tag:"g",attrs:{mask:"url(#mask0_506_5)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15.3704 12.0001C14.8627 12.5078 14.0396 12.5078 13.5319 12.0001L8.42431 6.89194C8.19 6.6576 7.81008 6.6576 7.57576 6.89192L2.46766 12C1.95998 12.5077 1.13687 12.5077 0.629185 12C0.121504 11.4923 0.121504 10.6692 0.629185 10.1615L6.58585 4.20487C7.36693 3.4238 8.63331 3.42383 9.41435 4.20494L15.3705 10.1617C15.8782 10.6694 15.8781 11.4925 15.3704 12.0001Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},Tt=I.forwardRef(function(i,r){return I.createElement(me,Object.assign({},i,{id:"more-up-single",ref:r,icon:Ma}))});Tt.displayName="MoreUpSingle";const Ia=Tt;var Oa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_622_8",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{fill:"currentColor",mask:"url(#mask0_622_8)"},children:[{tag:"path",attrs:{d:"M6 5C6.55228 5 7 4.55228 7 4 7 3.44772 6.55228 3 6 3 5.44772 3 5 3.44772 5 4 5 4.55228 5.44772 5 6 5zM6 9C6.55228 9 7 8.55229 7 8 7 7.44772 6.55228 7 6 7 5.44772 7 5 7.44772 5 8 5 8.55229 5.44772 9 6 9zM7 12C7 12.5523 6.55228 13 6 13 5.44772 13 5 12.5523 5 12 5 11.4477 5.44772 11 6 11 6.55228 11 7 11.4477 7 12zM10 5C10.5523 5 11 4.55228 11 4 11 3.44772 10.5523 3 10 3 9.44771 3 9 3.44772 9 4 9 4.55228 9.44771 5 10 5zM11 8C11 8.55229 10.5523 9 10 9 9.44771 9 9 8.55229 9 8 9 7.44772 9.44771 7 10 7 10.5523 7 11 7.44772 11 8zM10 13C10.5523 13 11 12.5523 11 12 11 11.4477 10.5523 11 10 11 9.44771 11 9 11.4477 9 12 9 12.5523 9.44771 13 10 13z"}}]}]},Lt=I.forwardRef(function(i,r){return I.createElement(me,Object.assign({},i,{id:"sequence-single",ref:r,icon:Oa}))});Lt.displayName="SequenceSingle";const Ca=Lt,et={dataValidationOptionsButton:"univer-data-validation-options-button",dataValidationOptionsButtonIcon:"univer-data-validation-options-button-icon"};function wa(i){var u;const r=N.useDependency(s.LocaleService),e=N.useDependency(B.ComponentManager),{value:t,onChange:a,extraComponent:n}=i,[o,l]=I.useState(!1),d=n?e.get(n):null;return f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:et.dataValidationOptionsButton,onClick:()=>l(!o),children:[r.t("dataValidation.panel.options"),o?f.jsx(Ia,{className:et.dataValidationOptionsButtonIcon}):f.jsx(Da,{className:et.dataValidationOptionsButtonIcon})]}),o&&f.jsxs(f.Fragment,{children:[d?f.jsx(d,{value:t,onChange:a}):null,f.jsx(O.FormLayout,{label:r.t("dataValidation.panel.invalid"),children:f.jsxs(O.RadioGroup,{value:`${(u=t.errorStyle)!=null?u:s.DataValidationErrorStyle.WARNING}`,onChange:c=>a({...t,errorStyle:+c}),children:[f.jsx(O.Radio,{value:`${s.DataValidationErrorStyle.WARNING}`,children:r.t("dataValidation.panel.showWarning")}),f.jsx(O.Radio,{value:`${s.DataValidationErrorStyle.STOP}`,children:r.t("dataValidation.panel.rejectInput")})]})}),f.jsx(O.FormLayout,{label:r.t("dataValidation.panel.messageInfo"),children:f.jsx(O.Checkbox,{checked:t.showInputMessage,onChange:()=>a({...t,showInputMessage:!t.showInputMessage}),children:r.t("dataValidation.panel.showInfo")})}),t.showInputMessage?f.jsx(O.FormLayout,{children:f.jsx(O.Input,{value:t.error,onChange:c=>a({...t,error:c})})}):null]})]})}const Me={dataValidationDetailFormItem:"univer-data-validation-detail-form-item",dataValidationDetailButtons:"univer-data-validation-detail-buttons",dataValidationDetailButton:"univer-data-validation-detail-button"},Ea=i=>s.debounce(async(r,e,t,a)=>{const n=await i.executeCommand(r,e,t);a==null||a(n)},275);function ya(){const[i,r]=I.useState(0),e=N.useDependency(_e),t=B.useObservable(e.activeRule$,e.activeRule),{unitId:a,subUnitId:n,rule:o}=t||{},l=o.uid,d=N.useDependency(V.DataValidatorRegistryService),u=N.useDependency(B.ComponentManager),c=N.useDependency(s.ICommandService),m=N.useDependency(V.DataValidationModel),p=N.useDependency(s.LocaleService),[h,g]=I.useState(o),_=d.getValidatorItem(h.type),[R,M]=I.useState(!1),C=d.getValidatorsByScope(V.DataValidatorRegistryScope.SHEET),[E,w]=I.useState(()=>h.ranges.map(F=>({unitId:"",sheetId:"",range:F}))),y=I.useMemo(()=>Ea(c),[c]);if(I.useEffect(()=>{c.onCommandExecuted(F=>{(F.id===s.UndoCommand.id||F.id===s.RedoCommand.id)&&setTimeout(()=>{const q=m.getRuleById(a,n,l);r(ee=>ee+1),q&&(g(q),w(q.ranges.map(ee=>({unitId:"",sheetId:"",range:ee}))))},20)})},[c,m,l,n,a]),!_)return null;const T=_.operators,b=_.operatorNames,W=h.operator?V.TWO_FORMULA_OPERATOR_COUNT.includes(h.operator):!1,L=()=>{_.validatorFormula(h).success?e.setActiveRule(null):M(!0)},P=B.useEvent(F=>{if(s.isUnitRangesEqual(F,E))return;w(F);const q=F.filter(K=>(!K.unitId||K.unitId===a)&&(!K.sheetId||K.sheetId===n)).map(K=>K.range);if(g({...h,ranges:q}),q.length===0)return;const ee={unitId:a,subUnitId:n,ruleId:l,ranges:q};y(Ze.id,ee)}),k=F=>{if(s.shallowEqual(F,V.getRuleSetting(h)))return;g({...h,...F});const q={unitId:a,subUnitId:n,ruleId:l,setting:F};y(V.UpdateDataValidationSettingCommand.id,q,void 0)},H=async()=>{await c.executeCommand(V.RemoveDataValidationCommand.id,{ruleId:l,unitId:a,subUnitId:n}),e.setActiveRule(null)},x={type:h.type,operator:h.operator,formula1:h.formula1,formula2:h.formula2,allowBlank:h.allowBlank},j=F=>{const q=d.getValidatorItem(F);if(!q)return;const ee=q.operators,K=m.getRuleById(a,n,l),A=F===(K==null?void 0:K.type)?{...K}:{...h,type:F,operator:ee[0],formula1:void 0,formula2:void 0};g(A),c.executeCommand(V.UpdateDataValidationSettingCommand.id,{unitId:a,subUnitId:n,ruleId:h.uid,setting:V.getRuleSetting(A)})},$=u.get(_.formulaInput),G=E.map(F=>oe.serializeRange(F.range)).join(","),Q=V.getRuleOptions(h),le=F=>{s.shallowEqual(F,V.getRuleOptions(h))||(g({...h,...F}),y(V.UpdateDataValidationOptionsCommand.id,{unitId:a,subUnitId:n,ruleId:l,options:F}))};return f.jsxs("div",{children:[f.jsx(O.FormLayout,{label:p.t("dataValidation.panel.range"),children:f.jsx(B.RangeSelector,{className:Me.dataValidationDetailFormItem,value:G,id:s.createInternalEditorID("data-validation-detail"),openForSheetUnitId:a,openForSheetSubUnitId:n,onChange:F=>{F.some(q=>!s.isValidRange(q.range)||q.range.endColumn<q.range.startColumn||q.range.endRow<q.range.startRow)||P(F)}},i)}),f.jsx(O.FormLayout,{label:p.t("dataValidation.panel.type"),children:f.jsx(O.Select,{options:C==null?void 0:C.map(F=>({label:p.t(F.title),value:F.id})),value:h.type,onChange:j,className:Me.dataValidationDetailFormItem})}),T!=null&&T.length?f.jsx(O.FormLayout,{label:p.t("dataValidation.panel.operator"),children:f.jsx(O.Select,{options:T.map((F,q)=>({value:`${F}`,label:b[q]})),value:`${h.operator}`,onChange:F=>{k({...x,operator:F})},className:Me.dataValidationDetailFormItem})}):null,$?f.jsx($,{isTwoFormula:W,value:{formula1:h.formula1,formula2:h.formula2},onChange:F=>{k({...x,...F})},showError:R,validResult:_.validatorFormula(h),unitId:a,subUnitId:n,ruleId:l},i):null,f.jsx(wa,{value:Q,onChange:le,extraComponent:_.optionsInput}),f.jsxs("div",{className:Me.dataValidationDetailButtons,children:[f.jsx(O.Button,{className:Me.dataValidationDetailButton,onClick:H,children:p.t("dataValidation.panel.removeRule")}),f.jsx(O.Button,{className:Me.dataValidationDetailButton,type:"primary",onClick:L,children:p.t("dataValidation.panel.done")})]})]})}const Ue={dataValidationItemContainer:"univer-data-validation-item-container",dataValidationItemTitle:"univer-data-validation-item-title",dataValidationItemContent:"univer-data-validation-item-content",dataValidationItemIcon:"univer-data-validation-item-icon"},Fa=i=>{const{rule:r,onClick:e,unitId:t,subUnitId:a}=i,n=N.useDependency(V.DataValidatorRegistryService),o=N.useDependency(s.ICommandService),l=N.useDependency(U.IMarkSelectionService),d=n.getValidatorItem(r.type),u=I.useRef(),[c,m]=I.useState(!1),p=h=>{o.executeCommand(V.RemoveDataValidationCommand.id,{ruleId:r.uid,unitId:t,subUnitId:a}),h.stopPropagation()};return I.useEffect(()=>()=>{var h;u.current&&((h=u.current)==null||h.forEach(g=>{g&&l.removeShape(g)}))},[l]),f.jsxs("div",{className:Ue.dataValidationItemContainer,onClick:e,onMouseEnter:()=>{m(!0),u.current=r.ranges.map(h=>l.addShape({range:h,style:{hasAutoFill:!1,fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:h.startColumn,endColumn:h.endColumn,startRow:h.startRow,endRow:h.endRow,actualRow:h.startRow,actualColumn:h.startColumn,isMerged:!1,isMergedMainCell:!1}}))},onMouseLeave:()=>{var h;m(!1),(h=u.current)==null||h.forEach(g=>{g&&l.removeShape(g)}),u.current=void 0},children:[f.jsx("div",{className:Ue.dataValidationItemTitle,children:d==null?void 0:d.generateRuleName(r)}),f.jsx("div",{className:Ue.dataValidationItemContent,children:r.ranges.map(h=>oe.serializeRange(h)).join(",")}),c?f.jsx("div",{className:Ue.dataValidationItemIcon,onClick:p,children:f.jsx(Et,{})}):null]})},tt={dataValidationListButtons:"univer-data-validation-list-buttons",dataValidationListButton:"univer-data-validation-list-button"},Ta=I.memo(()=>{var _;const i=N.useDependency(s.IUniverInstanceService),r=N.useDependency(V.DataValidationModel),e=N.useDependency(s.ICommandService),t=N.useDependency(D.Injector),a=N.useDependency(_e),n=B.useObservable(()=>i.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_SHEET),void 0,!0,[]),o=N.useDependency(s.LocaleService),[l,d]=I.useState([]),u=(_=B.useObservable(n.activeSheet$,n.getActiveSheet()))!=null?_:n.getActiveSheet(),c=n.getUnitId(),m=u.getSheetId(),p=r.ensureManager(c,m);I.useEffect(()=>{d(p.getDataValidations());const R=p.dataValidations$.subscribe(M=>{d([...M])});return()=>{R.unsubscribe()}},[p]);const h=async()=>{const R=V.createDefaultNewRule(t),M={unitId:c,subUnitId:m,rule:R};await e.executeCommand(je.id,M),a.setActiveRule({unitId:c,subUnitId:m,rule:R})},g=()=>{e.executeCommand(V.RemoveAllDataValidationCommand.id,{unitId:c,subUnitId:m})};return f.jsxs("div",{children:[l.map(R=>f.jsx(Fa,{unitId:c,subUnitId:m,onClick:()=>a.setActiveRule({unitId:c,subUnitId:m,rule:R}),rule:R},R.uid)),f.jsxs("div",{className:tt.dataValidationListButtons,children:[l.length?f.jsx(O.Button,{className:tt.dataValidationListButton,onClick:g,children:o.t("dataValidation.panel.removeAll")}):null,f.jsx(O.Button,{className:tt.dataValidationListButton,type:"primary",onClick:h,children:o.t("dataValidation.panel.add")})]})]})}),La=()=>{const i=N.useDependency(_e),r=B.useObservable(i.activeRule$,i.activeRule);return r?f.jsx(ya,{},r.rule.uid):f.jsx(Ta,{})};function J(i){if(i===null)return"";if(i!=null&&i.p){const r=i==null?void 0:i.p.body;if(r==null)return"";const e=r.dataStream;return e.substring(e.length-2,e.length)===s.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return i==null?void 0:i.v}function At(i){return i.filter(Boolean).join(",")}function Ie(i){return i.split(",").filter(Boolean)}function Aa(i){const r=J(i);return r==null?"":r.toString()}const Pe="SHEET_DATA_VALIDATION_PLUGIN",Se="#ECECEC",de={dvListDropdown:"univer-dv-list-dropdown",dvListDropdownTitle:"univer-dv-list-dropdown-title",dvListDropdownList:"univer-dv-list-dropdown-list",dvListDropdownListContainer:"univer-dv-list-dropdown-list-container",dvListDropdownSelectedIcon:"univer-dv-list-dropdown-selected-icon",dvListDropdownItemContainer:"univer-dv-list-dropdown-item-container",dvListDropdownItem:"univer-dv-list-dropdown-item",dvListDropdownSplit:"univer-dv-list-dropdown-split",dvListDropdownEdit:"univer-dv-list-dropdown-edit"},ba=i=>{const{value:r,onChange:e,multiple:t,options:a,title:n,onEdit:o,style:l}=i;return f.jsxs("div",{className:de.dvListDropdown,style:l,children:[f.jsx("div",{className:de.dvListDropdownTitle,children:n}),f.jsx("div",{className:de.dvListDropdownList,children:f.jsx(O.Scrollbar,{children:f.jsx("div",{className:de.dvListDropdownListContainer,children:a.map((d,u)=>{const c=r.indexOf(d.value)>-1,m=()=>{let p;c?p=new Set(r.filter(g=>g!==d.value)):p=new Set(t?[...r,d.value]:[d.value]);const h=[];a.forEach(g=>{p.has(g.value)&&h.push(g.value)}),e(h)};return f.jsxs("div",{className:de.dvListDropdownItemContainer,onClick:m,children:[f.jsx("div",{className:de.dvListDropdownItem,style:{background:d.color||Se},children:d.label}),f.jsx("div",{className:de.dvListDropdownSelectedIcon,children:c?f.jsx(va,{}):null})]},u)})})})}),f.jsx("div",{className:de.dvListDropdownSplit}),f.jsx("div",{className:de.dvListDropdownEdit,children:f.jsx("a",{onClick:o,children:"编辑"})})]})};function Na(i){var W,L;const{location:r,hideFn:e}=i,{worksheet:t,row:a,col:n,unitId:o,subUnitId:l}=r,d=N.useDependency(s.ICommandService),u=N.useDependency(s.LocaleService),[c,m]=I.useState(""),p=N.useDependency(U.IEditorBridgeService),h=O.RectPopup.useContext(),g=h.right-h.left;if(!t)return null;const _=t.getCell(a,n),R=(W=_==null?void 0:_.dataValidation)==null?void 0:W.rule,M=(L=_==null?void 0:_.dataValidation)==null?void 0:L.validator,C=(R==null?void 0:R.renderMode)===s.DataValidationRenderMode.CUSTOM||(R==null?void 0:R.renderMode)===void 0;if(!_||!R||!M)return;const E=R.type===s.DataValidationType.LIST_MULTIPLE,w=M.getListWithColor(R,o,l),y=c||Aa(_),T=Ie(y),b=()=>{d.executeCommand(we.id,{ruleId:R.uid}),e()};return f.jsx(ba,{style:{minWidth:g,maxWidth:Math.max(g,200)},title:E?u.t("dataValidation.listMultiple.dropdown"):u.t("dataValidation.list.dropdown"),value:T,multiple:E,onChange:P=>{const k=At(P),H={unitId:o,subUnitId:l,range:{startColumn:n,endColumn:n,startRow:a,endRow:a},value:{v:k,p:null,f:null,si:null}};p.isVisible()&&p.changeVisible({visible:!1,keycode:B.KeyCode.ESC,eventType:z.DeviceInputEventType.Keyboard}),d.executeCommand(te.SetRangeValuesCommand.id,H),m(k),E||e()},options:w.map(P=>({label:P.label,value:P.label,color:C?P.color:"transparent"})),onEdit:b})}const ja={dvDateDropdown:"univer-dv-date-dropdown"};function Ua(i){var M,C,E;const{location:r,hideFn:e}=i,{worksheet:t,row:a,col:n,unitId:o,subUnitId:l}=r,d=N.useDependency(s.ICommandService),[u,c]=I.useState();if(!t)return null;const m=t.getCell(a,n),p=(M=m==null?void 0:m.dataValidation)==null?void 0:M.rule,h=(C=m==null?void 0:m.dataValidation)==null?void 0:C.validator;if(!m||!p||!h)return;const g=J(m),_=(E=h.transformDate(g))!=null?E:fe(),R=_.isValid()?_:fe();return f.jsx("div",{className:ja.dvDateDropdown,children:f.jsx(O.DatePanel,{pickerValue:u!=null?u:R,onSelect:w=>{const y=w.format("YYYY/MM/DD");d.executeCommand(te.SetRangeValuesCommand.id,{unitId:o,subUnitId:l,range:{startColumn:n,endColumn:n,startRow:a,endRow:a},value:{v:y,p:null,f:null,si:null}}),e()},onPanelChange:w=>{c(w)}})})}const bt="data-validation.list.dropdown",Nt="data-validation.date.dropdown";function Pa(i){var d;const{unitId:r,subUnitId:e,value:t,onChange:a,showError:n,validResult:o}=i,l=n?o==null?void 0:o.formula1:"";return f.jsx(O.FormLayout,{error:l,children:f.jsx(B.TextEditor,{value:(d=t==null?void 0:t.formula1)!=null?d:"",id:s.createInternalEditorID(`dataValidation-custom-formula-${r}-${e}`),onChange:u=>{a==null||a({...t,formula1:u!=null?u:""})},onlyInputFormula:!0,openForSheetUnitId:r,openForSheetSubUnitId:e})})}const Z={dataValidationFormula:"univer-data-validation-formula",dataValidationFormulaAnd:"univer-data-validation-formula-and",dataValidationFormulaListItem:"univer-data-validation-formula-list-item",dataValidationFormulaListItemIcon:"univer-data-validation-formula-list-item-icon",dataValidationFormulaListItemDrag:"univer-data-validation-formula-list-item-drag",dataValidationFormulaListAdd:"univer-data-validation-formula-list-add",dataValidationFormulaColorSelect:"univer-data-validation-formula-color-select",dataValidationFormulaColorSelectPanel:"univer-data-validation-formula-color-select-panel",dataValidationFormulaColorItem:"univer-data-validation-formula-color-item"},xa=i=>{const{isTwoFormula:r=!1,value:e,onChange:t,showError:a,validResult:n}=i,o=N.useDependency(s.LocaleService),l=a?n==null?void 0:n.formula1:"",d=a?n==null?void 0:n.formula2:"";return r?f.jsxs(f.Fragment,{children:[f.jsx(O.FormLayout,{error:l,children:f.jsx(O.Input,{className:Z.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:u=>{t==null||t({...e,formula1:u})}})}),f.jsx("div",{className:Z.dataValidationFormulaAnd,children:o.t("dataValidation.panel.formulaAnd")}),f.jsx(O.FormLayout,{error:d,children:f.jsx(O.Input,{className:Z.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula2,onChange:u=>{t==null||t({...e,formula2:u})}})})]}):f.jsx(O.FormLayout,{error:l,children:f.jsx(O.Input,{className:Z.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:u=>{t==null||t({formula1:u})}})})},Ba=["#FFFFFF","#FEE7E7","#FEF0E6","#EFFBD0","#E4F4FE","#E8ECFD","#F1EAFA","#FDE8F3","#E5E5E5","#FDCECE","#FDC49B","#DEF6A2","#9FDAFF","#D0D9FB","#E3D5F6","#FBD0E8","#656565","#FE4B4B","#FF8C51","#8BBB11","#0B9EFB","#3A60F7","#9E6DE3","#F248A6"],Ha=i=>{const{value:r,onChange:e,disabled:t}=i,[a,n]=I.useState(!1);return f.jsx(O.Select,{disabled:t,open:a,onDropdownVisibleChange:n,dropdownStyle:{width:112},className:Z.dataValidationFormulaColorSelect,value:r,onChange:e,labelRender:o=>f.jsx("div",{className:Z.dataValidationFormulaColorItem,style:{background:o.value}}),dropdownRender:()=>f.jsx("div",{className:Z.dataValidationFormulaColorSelectPanel,children:Ba.map(o=>f.jsx("div",{onClick:()=>{e(o),n(!1)},className:Z.dataValidationFormulaColorItem,style:{background:o}},o))})})},jt=i=>{const{item:r,commonProps:e,style:t}=i,{onItemChange:a,onItemDelete:n}=e;return f.jsxs("div",{className:Z.dataValidationFormulaListItem,style:t,children:[r.isRef?null:f.jsx("div",{className:Jt(Z.dataValidationFormulaListItemDrag,"draggableHandle"),children:f.jsx(Ca,{})}),f.jsx(Ha,{value:r.color,onChange:o=>{a(r.id,r.label,o)}}),f.jsx(O.Input,{disabled:r.isRef,value:r.label,onChange:o=>{a(r.id,o,r.color)}}),r.isRef?null:f.jsx("div",{className:Z.dataValidationFormulaListItemIcon,children:f.jsx(Et,{onClick:()=>n(r.id)})})]})};function Wa(i){const{value:r,onChange:e=()=>{},unitId:t,subUnitId:a,validResult:n,showError:o,ruleId:l}=i,{formula1:d="",formula2:u=""}=r||{},c=I.useRef(null),[m,p]=I.useState(()=>s.isFormulaString(d)?"1":"0"),[h,g]=I.useState(m==="1"?d:"="),[_,R]=I.useState(m==="1"?d:"="),M=N.useDependency(s.LocaleService),C=N.useDependency(V.DataValidatorRegistryService),E=N.useDependency(V.DataValidationModel),[w,y]=I.useState(()=>u.split(",")),T=C.getValidatorItem(s.DataValidationType.LIST),[b,W]=I.useState([]),[L,P]=I.useState(""),k=o?n==null?void 0:n.formula1:"",H=B.useObservable(E.ruleChange$),x=B.useEvent(e);I.useEffect(()=>{(async()=>{await new Promise(Y=>{setTimeout(()=>Y(!0),100)});const A=E.getRuleById(t,a,l),X=A==null?void 0:A.formula1;if(s.isFormulaString(X)&&T&&A){const Y=await T.getListAsync(A,t,a);W(Y)}})()},[E,H,T,l,a,t]),I.useEffect(()=>{s.isFormulaString(d)&&d!==_&&(g(d),R(_))},[_,d]);const[j,$]=I.useState(()=>{const A=m!=="1"?Ie(d):[],X=u.split(",");return A.map((Y,ne)=>({label:Y,color:X[ne]||Se,isRef:!1,id:s.Tools.generateRandomId(4)}))}),G=(A,X,Y)=>{const ne=j.find(Le=>Le.id===A);ne&&(ne.label=X,ne.color=Y,$([...j]))},Q=A=>{const X=j.findIndex(Y=>Y.id===A);X!==-1&&(j.splice(X,1),$([...j]))},le=u.split(","),F=I.useMemo(()=>b.map((A,X)=>({label:A,color:le[X]||Se,id:`${X}`,isRef:!0})),[le,b]),q=(A,X,Y)=>{const ne=[...w];ne[+A]=Y,y(ne),x({formula1:d,formula2:ne.join(",")})},ee=()=>{$([...j,{label:"",color:Se,isRef:!1,id:s.Tools.generateRandomId(4)}])};I.useEffect(()=>{const A=new Set,X=[];j.map(Y=>({labelList:Y.label.split(","),item:Y})).forEach(({item:Y,labelList:ne})=>{ne.forEach(Le=>{A.has(Le)||(A.add(Le),X.push({label:Le,color:Y.color}))})}),x({formula1:At(X.map(Y=>Y.label)),formula2:X.map(Y=>Y.color===Se?"":Y.color).join(",")})},[j,x]);const K=I.useMemo(()=>async A=>{if(!s.isFormulaString(A)){x==null||x({formula1:"",formula2:u});return}x==null||x({formula1:s.isFormulaString(A)?A:"",formula2:u})},[u,x]);return f.jsxs(f.Fragment,{children:[f.jsx(O.FormLayout,{label:M.t("dataValidation.list.options"),children:f.jsxs(O.RadioGroup,{value:m,onChange:A=>p(A),children:[f.jsx(O.Radio,{value:"0",children:M.t("dataValidation.list.customOptions")}),f.jsx(O.Radio,{value:"1",children:M.t("dataValidation.list.refOptions")})]})}),m==="1"?f.jsxs(f.Fragment,{children:[f.jsx(O.FormLayout,{error:k||L,children:f.jsx(B.TextEditor,{id:s.createInternalEditorID(`list-ref-range-${t}-${a}`),value:h,openForSheetUnitId:t,openForSheetSubUnitId:a,onlyInputFormula:!0,onChange:async A=>{const X=A!=null?A:"";R(X),K(X)}})}),f.jsx(O.FormLayout,{children:f.jsx("div",{ref:c,children:F.map(A=>f.jsx(jt,{item:A,commonProps:{onItemChange:q},style:{marginBottom:12}},A.id))})})]}):f.jsx(O.FormLayout,{error:k,children:f.jsxs("div",{ref:c,style:{marginTop:"-12px"},children:[f.jsx(O.DraggableList,{list:j,onListChange:$,rowHeight:32,margin:[0,12],draggableHandle:".draggableHandle",itemRender:A=>f.jsx(jt,{item:A,commonProps:{onItemChange:G,onItemDelete:Q}},A.id),idKey:"id"}),f.jsxs("a",{className:Z.dataValidationFormulaListAdd,onClick:ee,children:[f.jsx(Ra,{}),M.t("dataValidation.list.add")]})]})})]})}function ka(i){const{value:r,onChange:e,showError:t,validResult:a}=i,n=N.useDependency(s.LocaleService),o=t?a==null?void 0:a.formula1:"",l=t?a==null?void 0:a.formula2:"",[d,u]=I.useState(!((r==null?void 0:r.formula1)===void 0&&(r==null?void 0:r.formula2)===void 0));return f.jsxs(f.Fragment,{children:[f.jsx(O.FormLayout,{children:f.jsx(O.Checkbox,{checked:d,onChange:c=>{c?u(!0):(u(!1),e==null||e({...r,formula1:void 0,formula2:void 0}))},children:n.t("dataValidation.checkbox.tips")})}),d?f.jsx(O.FormLayout,{label:n.t("dataValidation.checkbox.checked"),error:o,children:f.jsx(O.Input,{className:Z.dataValidationFormula,placeholder:n.t("dataValidation.panel.formulaPlaceholder"),value:r==null?void 0:r.formula1,onChange:c=>{e==null||e({...r,formula1:c})}})}):null,d?f.jsx(O.FormLayout,{label:n.t("dataValidation.checkbox.unchecked"),error:l,children:f.jsx(O.Input,{className:Z.dataValidationFormula,placeholder:n.t("dataValidation.panel.formulaPlaceholder"),value:r==null?void 0:r.formula2,onChange:c=>{e==null||e({...r,formula2:c})}})}):null]})}const Ut="data-validation.custom-formula-input",Ee="data-validation.formula-input",Pt="data-validation.list-formula-input",xt="data-validation.checkbox-formula-input",qa=[[Ut,Pa],[Ee,xa],[Pt,Wa],[xt,ka]],$a="LIST_RENDER_MODE_OPTION_INPUT";function xe(i){var a;const{value:r,onChange:e}=i,t=N.useDependency(s.LocaleService);return f.jsx(O.FormLayout,{label:t.t("dataValidation.renderMode.label"),children:f.jsxs(O.RadioGroup,{value:`${(a=r.renderMode)!=null?a:s.DataValidationRenderMode.CUSTOM}`,onChange:n=>e({...r,renderMode:+n}),children:[f.jsx(O.Radio,{value:`${s.DataValidationRenderMode.CUSTOM}`,children:t.t("dataValidation.renderMode.chip")}),f.jsx(O.Radio,{value:`${s.DataValidationRenderMode.ARROW}`,children:t.t("dataValidation.renderMode.arrow")}),f.jsx(O.Radio,{value:`${s.DataValidationRenderMode.TEXT}`,children:t.t("dataValidation.renderMode.text")})]})})}xe.componentKey=$a;const Bt="data-validation-single",at="sheet.menu.data-validation";function Ya(i){return{id:at,type:B.MenuItemType.SUBITEMS,positions:[B.MenuPosition.TOOLBAR_START],group:B.MenuGroup.TOOLBAR_FORMULAS_INSERT,icon:Bt,tooltip:"dataValidation.title",hidden$:B.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_SHEET)}}function za(i){return{id:we.id,title:"dataValidation.panel.title",type:B.MenuItemType.BUTTON,positions:[at]}}function Ga(i){return{id:Je.id,title:"dataValidation.panel.add",type:B.MenuItemType.BUTTON,positions:[at]}}var Xa=Object.defineProperty,Qa=Object.getOwnPropertyDescriptor,Ka=(i,r,e,t)=>{for(var a=t>1?void 0:t?Qa(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&Xa(r,e,a),a},re=(i,r)=>(e,t)=>r(e,t,i);const Za={tr:{size:6,color:"#fe4b4b"}};v.DataValidationRenderController=class extends s.RxDisposable{constructor(r,e,t,a,n,o,l,d,u,c,m){super(),this._componentManager=r,this._menuService=e,this._dataValidationModel=t,this._sheetSkeletonManagerService=a,this._renderManagerService=n,this._univerInstanceService=o,this._dataValidatorRegistryService=l,this._editorBridgeService=d,this._dropdownManagerService=u,this._sheetInterceptorService=c,this._injector=m,this._init()}_init(){this._initComponents(),this._initMenu(),this._initSkeletonChange(),this._initDropdown(),this._initViewModelIntercept()}_initMenu(){[Ya,za,Ga].forEach(r=>{this.disposeWithMe(this._menuService.addMenuItem(r(this._injector)))})}_initComponents(){[[Vt,La],[Rt,ia],[bt,Na],[Nt,Ua],[xe.componentKey,xe],...qa].forEach(([r,e])=>{this.disposeWithMe(this._componentManager.register(r,e))})}_initDropdown(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(r=>{if(!r.visible)return;const e=this._editorBridgeService.getEditCellState();if(e){const{unitId:t,sheetId:a,row:n,column:o}=e,l=this._univerInstanceService.getUniverSheetInstance(t);if(!l)return;const u=this._dataValidationModel.ensureManager(t,a).getRuleByLocation(n,o);if(!u)return;const c=this._dataValidatorRegistryService.getValidatorItem(u.type);if(!(c!=null&&c.dropdown))return;const m=l.getActiveSheet(),p=this._dropdownManagerService.activeDropdown,h=p==null?void 0:p.location;if(h&&h.unitId===t&&h.subUnitId===a&&h.row===n&&h.col===o)return;this._dropdownManagerService.showDropdown({location:{unitId:t,subUnitId:a,row:n,col:o,workbook:l,worksheet:m},componentKey:c.dropdown,onHide:()=>{}})}}))}_initSkeletonChange(){const r=()=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!e)return;const t=e.getUnitId(),a=e.getActiveSheet().getSheetId(),n=this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:t,sheetId:a}),o=this._renderManagerService.getRenderById(t);n==null||n.makeDirty(!0),n==null||n.calculate(),o&&o.mainComponent.makeForceDirty()};this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(()=>{r()})),this.disposeWithMe(this._dataValidationModel.validStatusChange$.subscribe(()=>{r()}))}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(te.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(r,e,t)=>{var E,w,y,T;const{row:a,col:n,unitId:o,subUnitId:l}=e,d=this._dataValidationModel.ensureManager(o,l),u=(E=this._sheetSkeletonManagerService.getCurrent())==null?void 0:E.skeleton;if(!d||!u)return t(r);const c=e.workbook.getStyles(),m=(typeof(r==null?void 0:r.s)=="string"?c.get(r==null?void 0:r.s):r==null?void 0:r.s)||{},p=d.getRuleIdByLocation(a,n);if(!p)return t(r);const h=d.getRuleById(p);if(!h)return t(r);const g=e.worksheet.getCellRaw(e.row,e.col),_=this._dataValidationModel.validator(J(g),h,e),R=this._dataValidatorRegistryService.getValidatorItem(h.type),M=J(r);let C={};if((h.type===s.DataValidationType.LIST||h.type===s.DataValidationType.LIST_MULTIPLE)&&(C={interceptorStyle:{...r==null?void 0:r.interceptorStyle,tb:(w=m.tb!==s.WrapStrategy.OVERFLOW?m.tb:s.WrapStrategy.CLIP)!=null?w:s.WrapStrategy.WRAP}}),h.type===s.DataValidationType.CHECKBOX){const{formula2:b}=R.parseFormulaSync(h,e.unitId,e.subUnitId);M||(C={v:b,t:1,p:null,interceptorStyle:{...r==null?void 0:r.interceptorStyle,tb:s.WrapStrategy.CLIP}})}if(h.type===s.DataValidationType.LIST&&(h.renderMode===s.DataValidationRenderMode.ARROW||h.renderMode===s.DataValidationRenderMode.TEXT)){const b=R.getListWithColorMap(h),W=`${(y=J(r))!=null?y:""}`,L=b[W];L&&(C={...C,interceptorStyle:{...C.interceptorStyle,bg:{rgb:L}}})}return t({...r,...C,dataValidation:{ruleId:p,validStatus:_,rule:h,validator:R},markers:{...r==null?void 0:r.markers,..._===s.DataValidationStatus.INVALID?Za:null},customRender:[...(T=r==null?void 0:r.customRender)!=null?T:[],...R!=null&&R.canvasRender?[R.canvasRender]:[]],fontRenderExtension:{...r==null?void 0:r.fontRenderExtension,isSkip:R==null?void 0:R.skipDefaultFontRender(h,M,e)},interceptorStyle:{...r==null?void 0:r.interceptorStyle,...C.interceptorStyle},get interceptorAutoHeight(){var L,P,k,H;const b=u.mergeData.find(x=>{const{startColumn:j,startRow:$,endColumn:G,endRow:Q}=x;return a>=$&&n>=j&&a<=Q&&n<=G}),W={data:{...r,dataValidation:{ruleId:p,validStatus:_,rule:h,validator:R}},style:u.getsStyles().getStyleByCell(r),primaryWithCoord:u.getCellByIndex((L=b==null?void 0:b.startRow)!=null?L:a,(P=b==null?void 0:b.startColumn)!=null?P:n),unitId:o,subUnitId:l,row:a,col:n};return(H=(k=R==null?void 0:R.canvasRender)==null?void 0:k.calcCellAutoHeight)==null?void 0:H.call(k,W)}})}}))}},v.DataValidationRenderController=Ka([s.OnLifecycle(s.LifecycleStages.Rendered,v.DataValidationRenderController),re(0,D.Inject(B.ComponentManager)),re(1,B.IMenuService),re(2,D.Inject(V.DataValidationModel)),re(3,D.Inject(U.SheetSkeletonManagerService)),re(4,z.IRenderManagerService),re(5,s.IUniverInstanceService),re(6,D.Inject(V.DataValidatorRegistryService)),re(7,U.IEditorBridgeService),re(8,D.Inject(ge)),re(9,D.Inject(te.SheetInterceptorService)),re(10,D.Inject(D.Injector))],v.DataValidationRenderController);var Ja=Object.defineProperty,en=Object.getOwnPropertyDescriptor,tn=(i,r,e,t)=>{for(var a=t>1?void 0:t?en(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&Ja(r,e,a),a},an=(i,r)=>(e,t)=>r(e,t,i);v.SheetDataValidationService=class{constructor(r){S(this,"_currentManager");S(this,"_currentManager$",new pe.Subject);S(this,"currentManager$",this._currentManager$.asObservable());this._dataValidationModel=r}get currentManager(){return this._currentManager}_ensureManager(r,e){return this._dataValidationModel.ensureManager(r,e)}switchCurrent(r,e){var a,n;if(r===((a=this.currentManager)==null?void 0:a.unitId)&&e===((n=this._currentManager)==null?void 0:n.subUnitId))return;const t=this._ensureManager(r,e);this._currentManager={manager:t,unitId:r,subUnitId:e},this._currentManager$.next(this._currentManager)}get(r,e){return this._ensureManager(r,e)}},v.SheetDataValidationService=tn([an(0,D.Inject(V.DataValidationModel))],v.SheetDataValidationService);class Oe{constructor(){S(this,"_cacheMatrix",new Map)}_ensureCache(r,e){let t=this._cacheMatrix.get(r);t||(t=new Map,this._cacheMatrix.set(r,t));let a=t.get(e);return a||(a=new s.ObjectMatrix,t.set(e,a)),a}ensureCache(r,e){return this._ensureCache(r,e)}addRule(r,e,t){this.markRangeDirty(r,e,t.ranges)}removeRule(r,e,t){this._deleteRange(r,e,t.ranges)}updateRuleRanges(r,e,t,a,n){const o=this._ensureCache(r,e);n.forEach(l=>{s.Range.foreach(l,(d,u)=>{const c=o.getValue(d,u);c&&(c.temp=!0)})}),a.forEach(l=>{s.Range.foreach(l,(d,u)=>{const c=o.getValue(d,u);c&&c.ruleId===t?c.temp=!1:o.setValue(d,u,void 0)})}),n.forEach(l=>{s.Range.foreach(l,(d,u)=>{const c=o.getValue(d,u);c&&c.temp===!0&&o.realDeleteValue(d,u)})})}markRangeDirty(r,e,t){const a=this._ensureCache(r,e);t.forEach(n=>{s.Range.foreach(n,(o,l)=>{a.setValue(o,l,void 0)})})}markCellDirty(r,e,t,a){this._ensureCache(r,e).setValue(t,a,void 0)}_deleteRange(r,e,t){const a=this._ensureCache(r,e);t.forEach(n=>{s.Range.foreach(n,(o,l)=>{a.realDeleteValue(o,l)})})}getValue(r,e,t,a){return this._ensureCache(r,e).getValue(t,a)}setValue(r,e,t,a,n){return this._ensureCache(r,e).setValue(t,a,n)}}var nn=Object.defineProperty,rn=Object.getOwnPropertyDescriptor,on=(i,r,e,t)=>{for(var a=t>1?void 0:t?rn(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&nn(r,e,a),a},Be=(i,r)=>(e,t)=>r(e,t,i);v.DataValidationCustomFormulaService=class extends s.Disposable{constructor(e,t,a,n){super();S(this,"_formulaMap",new Map);S(this,"_ruleFormulaMap",new Map);S(this,"_formulaCellMap",new Map);this._registerOtherFormulaService=e,this._lexerTreeBuilder=t,this._dataValidationModel=a,this._dataValidationCacheService=n,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const n in a){const o=a[n],{formulaCellMap:l,ruleFormulaMap:d}=this._ensureMaps(t,n),u=this._dataValidationModel.ensureManager(t,n);o.forEach(c=>{var g,_;const m=d.get((g=c.extra)==null?void 0:g.ruleId),p=l.get(c.formulaId),h=u.getRuleById((_=c.extra)==null?void 0:_.ruleId);h&&m&&!m.isTransformable&&this._dataValidationCacheService.markRangeDirty(t,n,h.ranges),p&&this._dataValidationCacheService.markCellDirty(t,n,p.row,p.column)})}}}))}_ensureMaps(e,t){let a=this._formulaMap.get(e),n=this._ruleFormulaMap.get(e),o=this._formulaCellMap.get(e);(!a||!n||!o)&&(a=new Map,n=new Map,o=new Map,this._formulaMap.set(e,a),this._ruleFormulaMap.set(e,n),this._formulaCellMap.set(e,o));let l=a.get(t),d=n.get(t),u=o.get(t);return(!l||!d||!u)&&(l=new s.ObjectMatrix,a.set(t,l),d=new Map,n.set(t,d),u=new Map,o.set(t,u)),{formulaMap:l,ruleFormulaMap:d,formulaCellMap:u}}_registerFormula(e,t,a,n){return this._registerOtherFormulaService.registerFormula(e,t,n,{ruleId:a})}deleteByRuleId(e,t,a){const{formulaMap:n,formulaCellMap:o,ruleFormulaMap:l}=this._ensureMaps(e,t),d=this._dataValidationModel.getRuleById(e,t,a),u=new Set,c=l.get(a);!d||!c||(l.delete(a),d.ranges.forEach(m=>{s.Range.foreach(m,(p,h)=>{const g=n.getValue(p,h);if(g&&g.ruleId===a){const{formulaId:_}=g;n.realDeleteValue(p,h),u.add(_),o.delete(_)}})}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(u.values())))}_addFormulaByRange(e,t,a,n,o){const{formulaMap:l,ruleFormulaMap:d,formulaCellMap:u}=this._ensureMaps(e,t);if(!n)return;const c=oe.isFormulaTransformable(this._lexerTreeBuilder,n),m=o[0].startRow,p=o[0].startColumn;let h;c?o.forEach(g=>{s.Range.foreach(g,(_,R)=>{const M=oe.transformFormula(this._lexerTreeBuilder,n,m,p,_,R),C=this._registerFormula(e,t,a,M);l.setValue(_,R,{formulaId:C,ruleId:a}),u.set(C,{row:_,column:R})})}):(h=this._registerFormula(e,t,a,n),o.forEach(g=>{s.Range.foreach(g,(_,R)=>{l.setValue(_,R,{formulaId:h,ruleId:a})})})),d.set(a,{formula:n,originCol:p,originRow:m,isTransformable:c,formulaId:h})}addRule(e,t,a){const{ranges:n,formula1:o,uid:l,type:d}=a;d!==s.DataValidationType.CUSTOM||!o||!s.isFormulaString(o)||this._addFormulaByRange(e,t,l,o,n)}updateRuleRanges(e,t,a,n,o){const{formulaMap:l,ruleFormulaMap:d,formulaCellMap:u}=this._ensureMaps(e,t),c=d.get(a);if(!c)return;const{formula:m,originCol:p,originRow:h,isTransformable:g,formulaId:_}=c,R=new Set;n.forEach(M=>{s.Range.foreach(M,(C,E)=>{const w=l.getValue(C,E);w&&w.ruleId===a&&(w.temp=!0)})}),o.forEach(M=>{s.Range.foreach(M,(C,E)=>{var y;const w=(y=l.getValue(C,E))!=null?y:{};if(w.ruleId!==a){const T=d.get(w.ruleId);if(T!=null&&T.isTransformable&&R.add(w.formulaId),g){const b=oe.transformFormula(this._lexerTreeBuilder,m,h,p,C,E),W=this._registerFormula(e,t,a,b);l.setValue(C,E,{ruleId:a,formulaId:W}),u.set(W,{row:C,column:E})}else l.setValue(C,E,{ruleId:a,formulaId:_})}else w.temp=!1})}),n.forEach(M=>{s.Range.foreach(M,(C,E)=>{const w=l.getValue(C,E);w&&w.ruleId===a&&w.temp===!0&&(l.realDeleteValue(C,E),g&&R.add(w.formulaId))})}),R.forEach(M=>{u.delete(M)}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(R.values()))}updateRuleFormula(e,t,a,n,o){const{ruleFormulaMap:l}=this._ensureMaps(e,t),d=l.get(a);(!d||d.formula!==o)&&this._addFormulaByRange(e,t,a,o,n)}getCellFormulaValue(e,t,a,n){const{formulaMap:o}=this._ensureMaps(e,t),l=o.getValue(a,n);return l?this._registerOtherFormulaService.getFormulaValue(e,t,l.formulaId):Promise.resolve(void 0)}getRuleFormulaInfo(e,t,a){const{ruleFormulaMap:n}=this._ensureMaps(e,t);return n.get(a)}},v.DataValidationCustomFormulaService=on([Be(0,D.Inject(Ae.RegisterOtherFormulaService)),Be(1,D.Inject(oe.LexerTreeBuilder)),Be(2,D.Inject(V.DataValidationModel)),Be(3,D.Inject(Oe))],v.DataValidationCustomFormulaService);function ue(i){var r,e;return(e=(r=i==null?void 0:i[0])==null?void 0:r[0])==null?void 0:e.v}class sn extends V.BaseDataValidator{constructor(){super(...arguments);S(this,"id",s.DataValidationType.CUSTOM);S(this,"title","dataValidation.custom.title");S(this,"operators",[]);S(this,"scopes",["sheet"]);S(this,"formulaInput",Ut);S(this,"_customFormulaService",this.injector.get(v.DataValidationCustomFormulaService))}validatorFormula(e){const t=s.isFormulaString(e.formula1);return{success:t,formula1:t?"":this.localeService.t("dataValidation.validFail.formula")}}async parseFormula(e,t,a){return{formula1:void 0,formula2:void 0}}async isValidType(e,t,a){const{column:n,row:o,unitId:l,subUnitId:d}=e,u=await this._customFormulaService.getCellFormulaValue(l,d,o,n);return!!ue(u==null?void 0:u.result)}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.custom.error")}}var ln=Object.defineProperty,dn=Object.getOwnPropertyDescriptor,un=(i,r,e,t)=>{for(var a=t>1?void 0:t?dn(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&ln(r,e,a),a},nt=(i,r)=>(e,t)=>r(e,t,i);v.DataValidationFormulaService=class extends s.Disposable{constructor(e,t,a){super();S(this,"_formulaRuleMap",new Map);this._registerOtherFormulaService=e,this._dataValidationCacheService=t,this._dataValidationModel=a,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const n in a){const o=a[n],l=this._ensureRuleFormulaMap(t,n),d=this._dataValidationModel.ensureManager(t,n);o.forEach(u=>{var c,m;if(l.get((c=u.extra)==null?void 0:c.ruleId)){const p=d.getRuleById((m=u.extra)==null?void 0:m.ruleId);p&&this._dataValidationCacheService.markRangeDirty(t,n,p.ranges)}})}}}))}_ensureRuleFormulaMap(e,t){let a=this._formulaRuleMap.get(e);a||(a=new Map,this._formulaRuleMap.set(e,a));let n=a.get(t);return n||(n=new Map,a.set(t,n)),n}addRule(e,t,a,n,o){const l=s.isFormulaString(n),d=s.isFormulaString(o);if(!l&&!d)return;const u=this._ensureRuleFormulaMap(e,t),c=[void 0,void 0];if(l){const m=this._registerOtherFormulaService.registerFormula(e,t,n,{ruleId:a});c[0]={id:m,text:n}}if(d){const m=this._registerOtherFormulaService.registerFormula(e,t,o,{ruleId:a});c[1]={id:m,text:o}}u.set(a,c)}removeRule(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(!o)return;const[l,d]=o,u=[l==null?void 0:l.id,d==null?void 0:d.id].filter(Boolean);u.length&&this._registerOtherFormulaService.deleteFormula(e,t,u)}updateRuleFormulaText(e,t,a,n,o){const d=this._ensureRuleFormulaMap(e,t).get(a);if(!d){this.addRule(e,t,a,n,o);return}const[u,c]=d;if((u==null?void 0:u.text)!==n)if(u&&this._registerOtherFormulaService.deleteFormula(e,t,[u.id]),s.isFormulaString(n)){const m=this._registerOtherFormulaService.registerFormula(e,t,n,{ruleId:a});d[0]={text:n,id:m}}else d[0]=void 0;if((c==null?void 0:c.text)!==o)if(c&&this._registerOtherFormulaService.deleteFormula(e,t,[c.id]),s.isFormulaString(o)){const m=this._registerOtherFormulaService.registerFormula(e,t,o,{ruleId:a});d[1]={text:o,id:m}}else d[1]=void 0}getRuleFormulaResult(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(!o)return Promise.resolve(null);const l=async d=>d&&this._registerOtherFormulaService.getFormulaValue(e,t,d.id);return Promise.all([l(o[0]),l(o[1])])}getRuleFormulaResultSync(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(o)return o.map(l=>{if(l)return this._registerOtherFormulaService.getFormulaValueSync(e,t,l.id)})}getRuleFormulaInfo(e,t,a){return this._ensureRuleFormulaMap(e,t).get(a)}},v.DataValidationFormulaService=un([nt(0,D.Inject(Ae.RegisterOtherFormulaService)),nt(1,D.Inject(Oe)),nt(2,D.Inject(V.DataValidationModel))],v.DataValidationFormulaService);var cn=Object.defineProperty,mn=Object.getOwnPropertyDescriptor,hn=(i,r,e,t)=>{for(var a=t>1?void 0:t?mn(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&cn(r,e,a),a},rt=(i,r)=>(e,t)=>r(e,t,i);const He=6;let ot=class{constructor(i,r,e){this._commandService=i,this._formulaService=r,this._themeService=e}_calc(i,r){var u,c,m;const{vt:e,ht:t}=r||{},a=i.endX-i.startX-He*2,n=i.endY-i.startY,o=((u=r==null?void 0:r.fs)!=null?u:10)*1.6;let l=0,d=0;switch(e){case s.VerticalAlign.TOP:d=0;break;case s.VerticalAlign.BOTTOM:d=0+(n-o);break;default:d=0+(n-o)/2;break}switch(t){case s.HorizontalAlign.LEFT:l=He;break;case s.HorizontalAlign.RIGHT:l=He+(a-o);break;default:l=He+(a-o)/2;break}return{left:i.startX+l,top:i.startY+d,width:((c=r==null?void 0:r.fs)!=null?c:10)*1.6,height:((m=r==null?void 0:r.fs)!=null?m:10)*1.6}}calcCellAutoHeight(){}async _parseFormula(i,r,e){var o,l;const{formula1:t=ye,formula2:a=We}=i,n=await this._formulaService.getRuleFormulaResult(r,e,i.uid);return{formula1:s.isFormulaString(t)?ue((o=n==null?void 0:n[0])==null?void 0:o.result):t,formula2:s.isFormulaString(a)?ue((l=n==null?void 0:n[1])==null?void 0:l.result):a}}drawWith(i,r){var L,P,k,H,x;const{style:e,data:t,primaryWithCoord:a,unitId:n,subUnitId:o}=r,l=a.isMergedMainCell?a.mergeInfo:a,d=J(t),u=(L=t.dataValidation)==null?void 0:L.rule,c=(P=t.dataValidation)==null?void 0:P.validator;if(!u||!c)return;const m=this._themeService.getCurrentTheme();if(!c.skipDefaultFontRender(u,d,{unitId:n,subUnitId:o}))return;const{formula1:p=ye}=u,h=this._calc(l,e),{a:g,d:_}=i.getTransform(),R=z.fixLineWidthByScale(h.left,g),M=z.fixLineWidthByScale(h.top,_),C=z.Transform.create().composeMatrix({left:R,top:M,scaleX:1,scaleY:1,angle:0,skewX:0,skewY:0,flipX:!1,flipY:!1}),E=l.endX-l.startX,w=l.endY-l.startY;i.save(),i.beginPath(),i.rect(l.startX,l.startY,E,w),i.clip();const y=C.getMatrix();i.transform(y[0],y[1],y[2],y[3],y[4],y[5]);const T=((k=e==null?void 0:e.fs)!=null?k:10)*1.6,b=String(d)===String(p),W=m.hyacinth500;z.Checkbox.drawWith(i,{checked:b,width:T,height:T,fill:(x=(H=e==null?void 0:e.cl)==null?void 0:H.rgb)!=null?x:W}),i.restore()}isHit(i,r){const e=r.primaryWithCoord.isMergedMainCell?r.primaryWithCoord.mergeInfo:r.primaryWithCoord,t=this._calc(e,r.style),a=t.top,n=t.top+t.height,o=t.left,l=t.left+t.width,{x:d,y:u}=i;return d<=l&&d>=o&&u<=n&&u>=a}async onPointerDown(i,r){var p,h;if(r.button===2)return;const{primaryWithCoord:e,unitId:t,subUnitId:a,data:n}=i,o=J(n),l=(p=n.dataValidation)==null?void 0:p.rule,d=(h=n.dataValidation)==null?void 0:h.validator;if(!l||!d||!d.skipDefaultFontRender(l,o,{unitId:t,subUnitId:a}))return;const{formula1:u,formula2:c}=await this._parseFormula(l,t,a),m={range:{startColumn:e.actualColumn,endColumn:e.actualColumn,startRow:e.actualRow,endRow:e.actualRow},value:{v:String(o)===String(u)?c:u,p:null}};this._commandService.executeCommand(te.SetRangeValuesCommand.id,m)}};ot=hn([rt(0,s.ICommandService),rt(1,D.Inject(v.DataValidationFormulaService)),rt(2,D.Inject(s.ThemeService))],ot);const ye=1,We=0;class pn extends V.BaseDataValidator{constructor(){super(...arguments);S(this,"id",s.DataValidationType.CHECKBOX);S(this,"title","dataValidation.checkbox.title");S(this,"operators",[]);S(this,"scopes",["sheet"]);S(this,"formulaInput",xt);S(this,"canvasRender",this.injector.createInstance(ot));S(this,"_formulaService",this.injector.get(v.DataValidationFormulaService))}skipDefaultFontRender(e,t,a){const{formula1:n,formula2:o}=this.parseFormulaSync(e,a.unitId,a.subUnitId),l=`${t!=null?t:""}`;return!l||l===`${n}`||l===`${o}`}validatorFormula(e){const{formula1:t=ye,formula2:a=We}=e,n=!s.Tools.isBlank(t),o=!s.Tools.isBlank(a);return{success:n&&o,formula1:n?"":this.localeService.t("dataValidation.validFail.common"),formula2:o?"":this.localeService.t("dataValidation.validFail.common")}}async parseFormula(e,t,a){var d,u;const{formula1:n=ye,formula2:o=We}=e,l=await this._formulaService.getRuleFormulaResult(t,a,e.uid);return{formula1:s.isFormulaString(n)?ue((d=l==null?void 0:l[0])==null?void 0:d.result):n,formula2:s.isFormulaString(o)?ue((u=l==null?void 0:l[1])==null?void 0:u.result):o}}parseFormulaSync(e,t,a){var d,u;const{formula1:n=ye,formula2:o=We}=e,l=this._formulaService.getRuleFormulaResultSync(t,a,e.uid);return{formula1:s.isFormulaString(n)?ue((d=l==null?void 0:l[0])==null?void 0:d.result):n,formula2:s.isFormulaString(o)?ue((u=l==null?void 0:l[1])==null?void 0:u.result):o}}async isValidType(e,t,a){const{value:n,unitId:o,subUnitId:l}=e,{formula1:d,formula2:u}=await this.parseFormula(a,o,l);return!s.Tools.isDefine(d)||!s.Tools.isDefine(u)?!0:s.Tools.isDefine(n)&&(String(n)===String(d)||String(n)===String(u))}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.checkbox.error")}}const Fe=[s.DataValidationOperator.BETWEEN,s.DataValidationOperator.NOT_BETWEEN],it=86400;function fn(i,r=!0){if(r&&i>=0){if(i===0)return[1900,1,0];if(i===60)return[1900,2,29];if(i<60)return[1900,i<32?1:2,(i-1)%31+1]}let e=i+68569+2415019;const t=Math.floor(4*e/146097);e=e-Math.floor((146097*t+3)/4);const a=Math.floor(4e3*(e+1)/1461001);e=e-Math.floor(1461*a/4)+31;const n=Math.floor(80*e/2447),o=e-Math.floor(2447*n/80);e=Math.floor(n/11);const l=n+2-12*e;return[100*(t-49)+a+e|0,l|0,o|0]}const vn=i=>{let r=i|0;const e=it*(i-r);let t=Math.floor(e);e-t>.9999&&(t+=1,t===it&&(t=0,r+=1));const a=t<0?it+t:t,[n,o,l]=fn(i,!0),d=Math.floor(a/60/60)%60,u=Math.floor(a/60)%60,c=Math.floor(a)%60,m=new Date(0);return m.setUTCFullYear(n,o-1,l),m.setUTCHours(d,u,c),m.getTime()},gn={[s.DataValidationOperator.BETWEEN]:"dataValidation.date.operators.between",[s.DataValidationOperator.EQUAL]:"dataValidation.date.operators.equal",[s.DataValidationOperator.GREATER_THAN]:"dataValidation.date.operators.greaterThan",[s.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.operators.greaterThanOrEqual",[s.DataValidationOperator.LESS_THAN]:"dataValidation.date.operators.lessThan",[s.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.operators.lessThanOrEqual",[s.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.operators.notBetween",[s.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.operators.notEqual"};s.DataValidationOperator.BETWEEN+"",s.DataValidationOperator.EQUAL+"",s.DataValidationOperator.GREATER_THAN+"",s.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",s.DataValidationOperator.LESS_THAN+"",s.DataValidationOperator.LESS_THAN_OR_EQUAL+"",s.DataValidationOperator.NOT_BETWEEN+"",s.DataValidationOperator.NOT_EQUAL+"";const _n={[s.DataValidationOperator.BETWEEN]:"dataValidation.date.ruleName.between",[s.DataValidationOperator.EQUAL]:"dataValidation.date.ruleName.equal",[s.DataValidationOperator.GREATER_THAN]:"dataValidation.date.ruleName.greaterThan",[s.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.ruleName.greaterThanOrEqual",[s.DataValidationOperator.LESS_THAN]:"dataValidation.date.ruleName.lessThan",[s.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.ruleName.lessThanOrEqual",[s.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.ruleName.notBetween",[s.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.ruleName.notEqual"},Sn={[s.DataValidationOperator.BETWEEN]:"dataValidation.date.errorMsg.between",[s.DataValidationOperator.EQUAL]:"dataValidation.date.errorMsg.equal",[s.DataValidationOperator.GREATER_THAN]:"dataValidation.date.errorMsg.greaterThan",[s.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.greaterThanOrEqual",[s.DataValidationOperator.LESS_THAN]:"dataValidation.date.errorMsg.lessThan",[s.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.lessThanOrEqual",[s.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.errorMsg.notBetween",[s.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.errorMsg.notEqual"},Ht="{FORMULA1}",Wt="{FORMULA2}",kt=i=>fe(i).isValid(),ke=i=>{if(!(i==null||typeof i=="boolean"))return typeof i=="number"||!Number.isNaN(+i)?fe(vn(+i)):fe(i)};class Rn extends V.BaseDataValidator{constructor(){super(...arguments);S(this,"id",s.DataValidationType.DATE);S(this,"title","dataValidation.date.title");S(this,"operators",[s.DataValidationOperator.BETWEEN,s.DataValidationOperator.EQUAL,s.DataValidationOperator.GREATER_THAN,s.DataValidationOperator.GREATER_THAN_OR_EQUAL,s.DataValidationOperator.LESS_THAN,s.DataValidationOperator.LESS_THAN_OR_EQUAL,s.DataValidationOperator.NOT_BETWEEN,s.DataValidationOperator.NOT_EQUAL]);S(this,"scopes",["sheet"]);S(this,"formulaInput",Ee);S(this,"dropdown",Nt);S(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));S(this,"transformDate",ke)}async parseFormula(e,t,a){var d,u;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:l}=e;return{formula1:ke(s.isFormulaString(o)?ue((d=n==null?void 0:n[0])==null?void 0:d.result):o),formula2:ke(s.isFormulaString(l)?ue((u=n==null?void 0:n[1])==null?void 0:u.result):l)}}async isValidType(e){const{value:t}=e;return typeof t=="string"?fe(t).isValid():typeof t=="number"}_validatorSingleFormula(e){return!s.Tools.isBlank(e)&&(s.isFormulaString(e)||!Number.isNaN(+e)||!!e&&fe(e).isValid())}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=this._validatorSingleFormula(e.formula1),n=this.localeService.t("dataValidation.validFail.date");if(Fe.includes(t)){const l=this._validatorSingleFormula(e.formula2);return{success:a&&l,formula1:a?void 0:n,formula2:l?void 0:n}}return{success:a,formula1:a?void 0:n}}transform(e,t,a){const{value:n}=e;return{...e,value:ke(n)}}async validatorIsEqual(e,t,a){const{value:n}=e,{formula1:o}=t;return o?n.isSame(o):!0}async validatorIsNotEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?!a.isSame(n):!0}async validatorIsBetween(e,t){const{value:a}=e,{formula1:n,formula2:o}=t;if(!n||!o)return!1;const l=n.isAfter(o)?o:n,d=l===n?o:n;return(a.isAfter(l)||a.isSame(l))&&(a.isBefore(d)||a.isSame(d))}async validatorIsNotBetween(e,t){const{value:a}=e,{formula1:n,formula2:o}=t;if(!n||!o)return!1;const l=n.isAfter(o)?n:o,d=l===n?o:n;return a.isBefore(l)||a.isAfter(d)}async validatorIsGreaterThan(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isAfter(n):!0}async validatorIsGreaterThanOrEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isAfter(n)||a.isSame(n):!0}async validatorIsLessThan(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isBefore(n)||a.isSame(n):!0}async validatorIsLessThanOrEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isBefore(n)||a.isSame(n):!0}validatorFormulaValue(e){if(!s.Tools.isDefine(e.operator))return;if(Fe.includes(e.operator)){if(s.Tools.isBlank(e.formula1)||s.Tools.isBlank(e.formula2))return"";if(!kt(e.formula1)||!kt(e.formula2))return""}else if(s.Tools.isBlank(e.formula1))return""}get operatorNames(){return this.operators.map(e=>this.localeService.t(gn[e]))}generateRuleName(e){var a,n;if(!e.operator)return this.titleStr;const t=this.localeService.t(_n[e.operator]).replace(Ht,(a=e.formula1)!=null?a:"").replace(Wt,(n=e.formula2)!=null?n:"");return`${this.titleStr} ${t}`}generateRuleErrorMessage(e){var a,n;return e.operator?`${this.localeService.t(Sn[e.operator]).replace(Ht,(a=e.formula1)!=null?a:"").replace(Wt,(n=e.formula2)!=null?n:"")}`:this.titleStr}}var Vn=Object.defineProperty,Dn=Object.getOwnPropertyDescriptor,Mn=(i,r,e,t)=>{for(var a=t>1?void 0:t?Dn(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&Vn(r,e,a),a},qe=(i,r)=>(e,t)=>r(e,t,i);const Ce=4,In=6,ie=14,Re=6,ce=2,On="#565656",qt=new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");function Cn(i,r){const e=i.length;return{id:"d",body:{dataStream:`${i}${s.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[{ts:{fs:11,ff:void 0,it:s.BooleanNumber.FALSE,bl:s.BooleanNumber.FALSE,ul:{s:s.BooleanNumber.FALSE},st:{s:s.BooleanNumber.FALSE},ol:{s:s.BooleanNumber.FALSE},cl:void 0,...r,bg:void 0,bd:void 0},st:0,ed:e}]},documentStyle:{pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY}}}}function st(i,r,e){const t=Cn(i,e),a=new s.DocumentDataModel(t),n=new z.DocumentViewModel(a);return{documentSkeleton:z.DocumentSkeleton.create(n,r),docModel:a,docViewModel:n}}function $t(i,r,e){const{documentSkeleton:t,docModel:a,docViewModel:n}=st(i,r,e);return{documents:new z.Documents(`DOCUMENTS_${s.Tools.generateRandomId()}`,t,{pageMarginLeft:0,pageMarginTop:0}),documentSkeleton:t,docModel:a,docViewModel:n}}let lt=(gt=class{constructor(i,r,e,t){S(this,"_dropdownInfoMap",new Map);S(this,"zIndex");S(this,"onPointerEnter");S(this,"onPointerLeave");this._localeService=i,this._commandService=r,this._dataValidationModel=e,this._dataValidatorRegistryService=t}_ensureMap(i){let r=this._dropdownInfoMap.get(i);return r||(r=new Map,this._dropdownInfoMap.set(i,r)),r}_generateKey(i,r){return`${i}.${r}`}_drawDownIcon(i,r,e,t,a){const n=e-ie+4;let o=4;switch(a){case s.VerticalAlign.MIDDLE:o=(t-ie)/2+4;break;case s.VerticalAlign.BOTTOM:o=t-ie+4;break}i.save(),i.translateWithPrecision(r.startX+n,r.startY+o),i.fillStyle="#565656",i.fill(qt),i.restore()}drawWith(i,r,e){var b,W;const{primaryWithCoord:t,row:a,col:n,style:o,data:l,subUnitId:d}=r,u=t.isMergedMainCell?t.mergeInfo:t,c=u.endX-u.startX,m=u.endY-u.startY,p=this._ensureMap(d),h=this._generateKey(a,n),g=(b=l.dataValidation)==null?void 0:b.rule,_=(W=l.dataValidation)==null?void 0:W.validator;if(!g||!_||!_.skipDefaultFontRender(g))return;const R=_.getListWithColor(g),M=J(l),C=`${M!=null?M:""}`,E=R.find(L=>L.label===C);let{tb:w,vt:y,ht:T}=o||{};if(w=w!=null?w:s.WrapStrategy.WRAP,y=y!=null?y:s.VerticalAlign.TOP,T=T!=null?T:s.HorizontalAlign.LEFT,g.renderMode===s.DataValidationRenderMode.ARROW){this._drawDownIcon(i,u,c,m,y),i.save(),i.translateWithPrecision(u.startX,u.startY),i.beginPath(),i.rect(0,0,c,m),i.clip();const L=c-ie,{documentSkeleton:P,documents:k,docModel:H}=$t(C,this._localeService,o);w===s.WrapStrategy.WRAP&&H.updateDocumentDataPageSize(L),P.calculate(),P.getActualSize();const x=z.getDocsSkeletonPageSize(P),{height:j,width:$}=x;let G=0;switch(y){case s.VerticalAlign.BOTTOM:G=m-ce-j;break;case s.VerticalAlign.MIDDLE:G=(m-ce-j)/2;break;default:G=ce;break}let Q=0;switch(T){case s.HorizontalAlign.CENTER:Q=(L-$)/2;break;case s.HorizontalAlign.RIGHT:Q=L-$;break}i.translate(0,G),i.save(),i.translateWithPrecision(Ce,0),i.beginPath(),i.rect(0,0,L,j),i.clip(),k.render(i),i.translateWithPrecision(Q,0),i.restore(),i.restore(),p.set(h,{left:u.endX+e.rowHeaderWidth-ie,top:u.startY+e.columnHeaderHeight,width:ie,height:m})}else{i.save(),i.translateWithPrecision(u.startX,u.startY),i.beginPath(),i.rect(0,0,c,m),i.clip();const L=c-Re*2-Ce-ie,{documentSkeleton:P,documents:k,docModel:H}=$t(C,this._localeService,o);w===s.WrapStrategy.WRAP&&H.updateDocumentDataPageSize(L),P.calculate();const x=z.getDocsSkeletonPageSize(P),{height:j,width:$}=x;let G=0;switch(y){case s.VerticalAlign.BOTTOM:G=m-ce-j;break;case s.VerticalAlign.MIDDLE:G=(m-ce-j)/2;break;default:G=ce;break}let Q=0;switch(T){case s.HorizontalAlign.CENTER:Q=(L-$)/2;break;case s.HorizontalAlign.RIGHT:Q=L-$;break}i.translate(Re,G);const le=c-Re*2,F=j;z.Rect.drawWith(i,{width:le,height:F,fill:(E==null?void 0:E.color)||Se,radius:8}),i.save(),i.translateWithPrecision(Ce,0),i.beginPath(),i.rect(0,0,L,j),i.clip(),i.translateWithPrecision(Q,0),k.render(i),i.restore(),i.translate(L+Ce+4,(j-In)/2),i.fillStyle=On,i.fill(qt),i.restore(),p.set(h,{left:u.startX+Re+e.rowHeaderWidth,top:u.startY+G+e.columnHeaderHeight,width:le,height:F})}}calcCellAutoHeight(i){var c;const{primaryWithCoord:r,style:e,data:t}=i,a=r.isMergedMainCell?r.mergeInfo:r,n=a.endX-a.startX,o=J(t),l=`${o!=null?o:""}`,d=(c=t.dataValidation)==null?void 0:c.rule;if(!d||d.renderMode===s.DataValidationRenderMode.TEXT)return;let{tb:u}=e||{};if(u=u!=null?u:s.WrapStrategy.WRAP,d.renderMode===s.DataValidationRenderMode.ARROW){const m=n-ie,{documentSkeleton:p,docModel:h}=st(l,this._localeService,e);u===s.WrapStrategy.WRAP&&h.updateDocumentDataPageSize(m),p.calculate(),p.getActualSize();const g=z.getDocsSkeletonPageSize(p),{height:_}=g;return _}else{const m=n-Re*2-Ce-ie,{documentSkeleton:p,docModel:h}=st(l,this._localeService,e);u===s.WrapStrategy.WRAP&&h.updateDocumentDataPageSize(m),p.calculate(),p.getActualSize();const g=z.getDocsSkeletonPageSize(p),{height:_}=g;return _+ce*2}}isHit(i,r){const{data:e,subUnitId:t,row:a,col:n}=r,l=this._ensureMap(t).get(this._generateKey(a,n));if(!e.dataValidation||!l)return!1;const{top:u,left:c,width:m,height:p}=l,{x:h,y:g}=i;return h>=c&&h<=c+m&&g>=u&&g<=u+p}onPointerDown(i,r){if(r.button===2)return;const{unitId:e,subUnitId:t,row:a,col:n}=i,o={unitId:e,subUnitId:t,row:a,column:n};this._commandService.executeCommand(Ne.id,o)}},S(gt,"padding",{l:Re+Ce,r:ie+Re,t:ce,b:ce}),gt);lt=Mn([qe(0,D.Inject(s.LocaleService)),qe(1,s.ICommandService),qe(2,D.Inject(V.DataValidationModel)),qe(3,D.Inject(V.DataValidatorRegistryService))],lt);function dt(i){if(!i)return[];const r=new Set;return i.forEach(e=>{e.forEach(t=>{const a=J(t);a!=null&&r.add(a.toString())})}),[...r]}const wn=["if","indirect","choose","offset"];function En(i,r){if(!s.isFormulaString(i)||oe.isReferenceString(i.slice(1)))return!0;const t=r.sequenceNodesBuilder(i);return t&&t.some(a=>typeof a=="object"&&a.nodeType===oe.sequenceNodeType.FUNCTION&&wn.indexOf(a.token.toLowerCase())>-1)}class Yt extends V.BaseDataValidator{constructor(){super(...arguments);S(this,"formulaService",this.injector.get(v.DataValidationFormulaService));S(this,"_lexer",this.injector.get(oe.LexerTreeBuilder));S(this,"id",s.DataValidationType.LIST);S(this,"title","dataValidation.list.title");S(this,"operators",[]);S(this,"scopes",["sheet"]);S(this,"formulaInput",Pt);S(this,"canvasRender",this.injector.createInstance(lt));S(this,"dropdown",bt);S(this,"optionsInput",xe.componentKey)}skipDefaultFontRender(e){return e.renderMode!==s.DataValidationRenderMode.TEXT}validatorFormula(e){var n;const t=!s.Tools.isBlank(e.formula1),a=En((n=e.formula1)!=null?n:"",this._lexer);return{success:!!(t&&a),formula1:t?a?void 0:this.localeService.t("dataValidation.validFail.listInvalid"):this.localeService.t("dataValidation.validFail.list")}}parseCellValue(e){const t=e.toString();return Ie(t)}async parseFormula(e,t,a){var l;const{formula1:n=""}=e,o=await this.formulaService.getRuleFormulaResult(t,a,e.uid);return{formula1:s.isFormulaString(n)?dt((l=o==null?void 0:o[0])==null?void 0:l.result):Ie(n),formula2:void 0}}async isValidType(e,t,a){const{value:n}=e,{formula1:o=[]}=t;return this.parseCellValue(n).every(d=>o.includes(d))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var p,h,g;const{formula1:n=""}=e,o=this.injector.get(s.IUniverInstanceService),l=(p=t?o.getUniverSheetInstance(t):void 0)!=null?p:o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return[];const d=(h=a?l.getSheetBySheetId(a):void 0)!=null?h:l.getActiveSheet(),u=l.getUnitId(),c=d.getSheetId(),m=this.formulaService.getRuleFormulaResultSync(u,c,e.uid);return s.isFormulaString(n)?dt((g=m==null?void 0:m[0])==null?void 0:g.result):Ie(n)}async getListAsync(e,t,a){var p,h,g;const{formula1:n=""}=e,o=this.injector.get(s.IUniverInstanceService),l=(p=t?o.getUniverSheetInstance(t):void 0)!=null?p:o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return[];const d=(h=a?l.getSheetBySheetId(a):void 0)!=null?h:l.getActiveSheet(),u=l.getUnitId(),c=d.getSheetId(),m=await this.formulaService.getRuleFormulaResult(u,c,e.uid);return s.isFormulaString(n)?dt((g=m==null?void 0:m[0])==null?void 0:g.result):Ie(n)}getListWithColor(e,t,a){const n=this.getList(e,t,a),o=(e.formula2||"").split(",");return n.map((l,d)=>({label:l,color:o[d]}))}getListWithColorMap(e,t,a){const n=this.getListWithColor(e,t,a),o={};return n.forEach(l=>{l.color&&(o[l.label]=l.color)}),o}}function $e(i){let r=i;return typeof i=="string"?((i.startsWith("¥")||i.startsWith("$"))&&(r=i.slice(1)),+r):+i}class yn extends V.BaseDataValidator{constructor(){super(...arguments);S(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));S(this,"id",s.DataValidationType.DECIMAL);S(this,"title",this.localeService.t("dataValidation.decimal.title"));S(this,"operators",[s.DataValidationOperator.BETWEEN,s.DataValidationOperator.EQUAL,s.DataValidationOperator.GREATER_THAN,s.DataValidationOperator.GREATER_THAN_OR_EQUAL,s.DataValidationOperator.LESS_THAN,s.DataValidationOperator.LESS_THAN_OR_EQUAL,s.DataValidationOperator.NOT_BETWEEN,s.DataValidationOperator.NOT_EQUAL]);S(this,"scopes",["sheet"]);S(this,"formulaInput",Ee);S(this,"dropDownInput")}_isFormulaOrNumber(e){return!s.Tools.isBlank(e)&&(s.isFormulaString(e)||!Number.isNaN(+e))}async isValidType(e,t,a){const{value:n}=e;return!Number.isNaN($e(n))}transform(e,t,a){const{value:n}=e;return{...e,value:$e(n)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var u,c,m,p,h,g,_,R;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:l}=e;return{formula1:this._parseNumber(s.isFormulaString(o)?(p=(m=(c=(u=n==null?void 0:n[0])==null?void 0:u.result)==null?void 0:c[0])==null?void 0:m[0])==null?void 0:p.v:o),formula2:this._parseNumber(s.isFormulaString(l)?(R=(_=(g=(h=n==null?void 0:n[1])==null?void 0:h.result)==null?void 0:g[0])==null?void 0:_[0])==null?void 0:R.v:l)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=s.Tools.isDefine(e.formula1)&&this._isFormulaOrNumber(e.formula1),n=s.Tools.isDefine(e.formula2)&&this._isFormulaOrNumber(e.formula2),o=Fe.includes(t),l=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&n,formula1:a?void 0:l,formula2:n?void 0:l}:{success:a,formula1:a?"":l}}async validatorIsEqual(e,t,a){const{formula1:n}=t,{value:o}=e;return Number.isNaN(n)?!0:o===n}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value!==n}async validatorIsBetween(e,t,a){const{formula1:n,formula2:o}=t;if(Number.isNaN(n)||Number.isNaN(o))return!0;const l=Math.min(n,o),d=Math.max(n,o);return e.value>=l&&e.value<=d}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:o}=t;if(Number.isNaN(n)||Number.isNaN(o))return!0;const l=Math.min(n,o),d=Math.max(n,o);return e.value<l&&e.value>d}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>n}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>=n}async validatorIsLessThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<n}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<=n}}const Fn="{FORMULA1}",Tn="{FORMULA2}";class Ln extends V.BaseDataValidator{constructor(){super(...arguments);S(this,"id",s.DataValidationType.TEXT_LENGTH);S(this,"title","dataValidation.textLength.title");S(this,"operators",[s.DataValidationOperator.BETWEEN,s.DataValidationOperator.EQUAL,s.DataValidationOperator.GREATER_THAN,s.DataValidationOperator.GREATER_THAN_OR_EQUAL,s.DataValidationOperator.LESS_THAN,s.DataValidationOperator.LESS_THAN_OR_EQUAL,s.DataValidationOperator.NOT_BETWEEN,s.DataValidationOperator.NOT_EQUAL]);S(this,"scopes",["sheet"]);S(this,"formulaInput",Ee);S(this,"_formulaService",this.injector.get(v.DataValidationFormulaService))}_isFormulaOrInt(e){return!s.Tools.isBlank(e)&&(s.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=s.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),n=s.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=Fe.includes(t),l=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&n,formula1:a?void 0:l,formula2:n?void 0:l}:{success:a,formula1:l}}_parseNumber(e){return e==null?Number.NaN:+e}_isValidFormula(e){return!Number.isNaN(e)}async parseFormula(e,t,a){var d,u,c,m,p,h,g,_;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:l}=e;return{formula1:this._parseNumber(s.isFormulaString(o)?(m=(c=(u=(d=n==null?void 0:n[0])==null?void 0:d.result)==null?void 0:u[0])==null?void 0:c[0])==null?void 0:m.v:o),formula2:this._parseNumber(s.isFormulaString(l)?(_=(g=(h=(p=n==null?void 0:n[1])==null?void 0:p.result)==null?void 0:h[0])==null?void 0:g[0])==null?void 0:_.v:l)}}transform(e,t,a){return{...e,value:e.value.toString().length}}async isValidType(e,t,a){const{value:n}=e;return typeof n=="string"||typeof n=="number"}async validatorIsEqual(e,t,a){const{formula1:n}=t;return s.Tools.isDefine(n)?e.value===n:!1}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return s.Tools.isDefine(n)?e.value!==n:!1}async validatorIsBetween(e,t,a){const{formula1:n,formula2:o}=t,{value:l}=e;if(!this._isValidFormula(n)||!this._isValidFormula(o))return!1;const d=Math.max(n,o),u=Math.min(n,o);return l>=u&&l<=d}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:o}=t,{value:l}=e;if(!this._isValidFormula(n)||!this._isValidFormula(o))return!1;const d=Math.max(n,o),u=Math.min(n,o);return l>=u&&l<=d}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t,{value:o}=e;return this._isValidFormula(n)?o>n:!1}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t,{value:o}=e;return this._isValidFormula(n)?o>=n:!1}async validatorIsLessThan(e,t,a){const{formula1:n}=t,{value:o}=e;return this._isValidFormula(n)?o<n:!1}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t,{value:o}=e;return this._isValidFormula(n)?o<=n:!1}generateRuleErrorMessage(e){var a,n;return e.operator?`${this.localeService.t(V.TextLengthErrorTitleMap[e.operator]).replace(Fn,(a=e.formula1)!=null?a:"").replace(Tn,(n=e.formula2)!=null?n:"")}`:this.titleStr}}class An extends V.BaseDataValidator{constructor(){super(...arguments);S(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));S(this,"id",s.DataValidationType.WHOLE);S(this,"title",this.localeService.t("dataValidation.whole.title"));S(this,"operators",[s.DataValidationOperator.BETWEEN,s.DataValidationOperator.EQUAL,s.DataValidationOperator.GREATER_THAN,s.DataValidationOperator.GREATER_THAN_OR_EQUAL,s.DataValidationOperator.LESS_THAN,s.DataValidationOperator.LESS_THAN_OR_EQUAL,s.DataValidationOperator.NOT_BETWEEN,s.DataValidationOperator.NOT_EQUAL]);S(this,"scopes",["sheet"]);S(this,"formulaInput",Ee);S(this,"dropDownInput")}_isFormulaOrInt(e){return!s.Tools.isBlank(e)&&(s.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}async isValidType(e,t,a){const{value:n}=e,o=$e(n);return!Number.isNaN(o)&&Number.isInteger(o)}transform(e,t,a){const{value:n}=e;return{...e,value:$e(n)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var u,c,m,p,h,g,_,R;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:l}=e;return{formula1:this._parseNumber(s.isFormulaString(o)?(p=(m=(c=(u=n==null?void 0:n[0])==null?void 0:u.result)==null?void 0:c[0])==null?void 0:m[0])==null?void 0:p.v:o),formula2:this._parseNumber(s.isFormulaString(l)?(R=(_=(g=(h=n==null?void 0:n[1])==null?void 0:h.result)==null?void 0:g[0])==null?void 0:_[0])==null?void 0:R.v:l)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=s.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),n=s.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=Fe.includes(t),l=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&n,formula1:a?void 0:l,formula2:n?void 0:l}:{success:a,formula1:l}}async validatorIsEqual(e,t,a){const{formula1:n}=t,{value:o}=e;return Number.isNaN(n)?!0:o===n}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value!==n}async validatorIsBetween(e,t,a){const{formula1:n,formula2:o}=t;if(Number.isNaN(n)||Number.isNaN(o))return!0;const l=Math.min(n,o),d=Math.max(n,o);return e.value>=l&&e.value<=d}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:o}=t;if(Number.isNaN(n)||Number.isNaN(o))return!0;const l=Math.min(n,o),d=Math.max(n,o);return e.value<l&&e.value>d}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>n}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>=n}async validatorIsLessThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<n}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<=n}}const zt=4,bn=0,ut=4,Gt=4,ct=6,Ye=6,Ve=14;function Nn(i,r){const e=z.FontCache.getTextSize(i,r),t=e.width+zt*2,{ba:a,bd:n}=e,o=a+n;return{width:t,height:o+bn*2,ba:a}}function Xt(i,r,e,t){const a=e-Ve-ct,n=t-Ye*2,o=i.map(c=>({layout:Nn(c,r),text:c}));let l;const d=[];o.forEach(c=>{const{layout:m}=c,{width:p,height:h}=m;!l||l.width+p+ut>a?(l={width:p,height:h,items:[{...c,left:0}]},d.push(l)):(l.items.push({...c,left:l.width+ut}),l.width=l.width+p+ut)});let u=0;return d.forEach((c,m)=>{m===d.length-1?u+=c.height:u+=c.height+Gt}),{lines:d,totalHeight:u,contentWidth:a,contentHeight:n,cellAutoHeight:u+Ye*2}}const jn=8;class Un extends z.Shape{static drawWith(r,e){const{fontFamily:t,fontString:a,fontSize:n,info:o,fill:l,color:d}=e,{layout:u,text:c}=o;r.save(),z.Rect.drawWith(r,{width:u.width,height:u.height,radius:jn,fill:l||Se}),r.translateWithPrecision(zt,u.ba),r.font=a,r.fillStyle=d,r.fillText(c,0,0),r.restore()}}var Pn=Object.defineProperty,xn=Object.getOwnPropertyDescriptor,Bn=(i,r,e,t)=>{for(var a=t>1?void 0:t?xn(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&Pn(r,e,a),a},Hn=(i,r)=>(e,t)=>r(e,t,i);const Wn=new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");let mt=class{constructor(i){S(this,"zIndex");S(this,"_dropdownInfoMap",new Map);this._commandService=i}_ensureMap(i){let r=this._dropdownInfoMap.get(i);return r||(r=new Map,this._dropdownInfoMap.set(i,r)),r}_generateKey(i,r){return`${i}.${r}`}_drawDownIcon(i,r,e,t,a){const n=e-Ve+4;let o=4;switch(a){case s.VerticalAlign.MIDDLE:o=(t-Ve)/2+4;break;case s.VerticalAlign.BOTTOM:o=t-Ve+4;break}i.save(),i.translateWithPrecision(r.startX+n,r.startY+o),i.fillStyle="#565656",i.fill(Wn),i.restore()}drawWith(i,r,e,t){var j,$;const{primaryWithCoord:a,row:n,col:o,style:l,data:d,subUnitId:u}=r,c=a.isMergedMainCell?a.mergeInfo:a,m=d.dataValidation,p=c.endX-c.startX,h=c.endY-c.startY,g=this._ensureMap(u),_=this._generateKey(n,o);if(!m)return;const{cl:R}=l||{},M=(j=typeof R=="object"?R==null?void 0:R.rgb:R)!=null?j:"#000",C=z.getFontStyleString(l!=null?l:void 0),{rule:E,validator:w}=m,y=w,{vt:T,ht:b}=l||{},W=T!=null?T:s.VerticalAlign.MIDDLE,L=($=J(d))!=null?$:"",P=y.parseCellValue(L),k=y.getListWithColorMap(E),H=Xt(P,C,p,h);this._drawDownIcon(i,c,p,h,W),i.save(),i.translateWithPrecision(c.startX,c.startY),i.beginPath(),i.rect(0,0,p-Ve,h),i.clip(),i.translateWithPrecision(ct,Ye);let x=0;switch(W){case s.VerticalAlign.MIDDLE:x=(H.contentHeight-H.totalHeight)/2;break;case s.VerticalAlign.BOTTOM:x=H.contentHeight-H.totalHeight;break}i.translateWithPrecision(0,x),H.lines.forEach((G,Q)=>{i.save();const{width:le,height:F,items:q}=G;let ee=0;switch(b){case s.HorizontalAlign.RIGHT:ee=H.contentWidth-le;break;case s.HorizontalAlign.CENTER:ee=(H.contentWidth-le)/2;break}i.translate(ee,Q*(F+Gt)),q.forEach(K=>{i.save(),i.translateWithPrecision(K.left,0),Un.drawWith(i,{...C,info:K,color:M,fill:k[K.text]}),i.restore()}),i.restore()}),i.restore(),g.set(_,{left:c.startX,top:c.startY,width:H.contentWidth+ct+Ve,height:H.contentHeight+Ye*2})}calcCellAutoHeight(i){var g;const{primaryWithCoord:r,style:e,data:t}=i,a=r.isMergedMainCell?r.mergeInfo:r,n=t.dataValidation;if(!n)return;const o=a.endX-a.startX,l=a.endY-a.startY,d=(g=J(t))!=null?g:"",{validator:u}=n,m=u.parseCellValue(d),p=z.getFontStyleString(e!=null?e:void 0);return Xt(m,p,o,l).cellAutoHeight}isHit(i,r){const{primaryWithCoord:e}=r,t=e.isMergedMainCell?e.mergeInfo:e,{endX:a}=t,{x:n}=i;return n>=a-Ve&&n<=a}onPointerDown(i,r){if(r.button===2)return;const{unitId:e,subUnitId:t,row:a,col:n}=i,o={unitId:e,subUnitId:t,row:a,column:n};this._commandService.executeCommand(Ne.id,o)}};mt=Bn([Hn(0,s.ICommandService)],mt);class kn extends Yt{constructor(){super(...arguments);S(this,"id",s.DataValidationType.LIST_MULTIPLE);S(this,"title","dataValidation.listMultiple.title");S(this,"canvasRender",this.injector.createInstance(mt))}skipDefaultFontRender(){return!0}}var qn=Object.defineProperty,$n=Object.getOwnPropertyDescriptor,Yn=(i,r,e,t)=>{for(var a=t>1?void 0:t?$n(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&qn(r,e,a),a},he=(i,r)=>(e,t)=>r(e,t,i);v.DataValidationController=class extends s.RxDisposable{constructor(r,e,t,a,n,o,l,d){super(),this._univerInstanceService=r,this._sheetDataValidationService=e,this._dataValidatorRegistryService=t,this._injector=a,this._componentManger=n,this._selectionManagerService=o,this._sheetInterceptorService=l,this._dataValidationModel=d,this._init()}_init(){this._registerValidators(),this._initInstanceChange(),this._componentManger.register(Bt,Ct),this._initCommandInterceptor()}_registerValidators(){[yn,An,Ln,Rn,pn,Yt,kn,sn].forEach(r=>{const e=this._injector.createInstance(r);this.disposeWithMe(this._dataValidatorRegistryService.register(e)),this.disposeWithMe({dispose:()=>{this._injector.delete(r)}})})}_initInstanceChange(){const r=new s.DisposableCollection;this._univerInstanceService.getCurrentTypeOfUnit$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{r.dispose(),e&&(this._sheetDataValidationService.switchCurrent(e.getUnitId(),e.getActiveSheet().getSheetId()),r.add(s.toDisposable(e.activeSheet$.subscribe(t=>{if(t){const a=e.getUnitId(),n=t.getSheetId();this._sheetDataValidationService.switchCurrent(a,n)}}))))}),this.disposeWithMe(r)}_initCommandInterceptor(){this._sheetInterceptorService.interceptCommand({getMutations:r=>{if(r.id===te.ClearSelectionAllCommand.id){const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),t=e.getUnitId(),n=e.getActiveSheet().getSheetId(),o=this._selectionManagerService.getSelectionRanges(),l=this._dataValidationModel.ensureManager(t,n),d=l.getRuleObjectMatrix().clone();o&&d.removeRange(o);const u=d.diff(l.getDataValidations()),{redoMutations:c,undoMutations:m}=De(t,n,u);return{undos:m,redos:c}}return{undos:[],redos:[]}}})}},v.DataValidationController=Yn([s.OnLifecycle(s.LifecycleStages.Rendered,v.DataValidationController),he(0,s.IUniverInstanceService),he(1,D.Inject(v.SheetDataValidationService)),he(2,D.Inject(V.DataValidatorRegistryService)),he(3,D.Inject(D.Injector)),he(4,D.Inject(B.ComponentManager)),he(5,D.Inject(te.SelectionManagerService)),he(6,D.Inject(te.SheetInterceptorService)),he(7,D.Inject(V.DataValidationModel))],v.DataValidationController);var zn=Object.defineProperty,Gn=Object.getOwnPropertyDescriptor,Xn=(i,r,e,t)=>{for(var a=t>1?void 0:t?Gn(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&zn(r,e,a),a},ze=(i,r)=>(e,t)=>r(e,t,i);const ht="SHEET_DATA_VALIDATION_ALERT";v.DataValidationAlertController=class extends s.Disposable{constructor(r,e,t,a){super(),this._hoverManagerService=r,this._cellAlertManagerService=e,this._univerInstanceService=t,this._localeService=a,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(r=>{var e,t;if(r){const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getCell(r.location.row,r.location.col);if(((e=o==null?void 0:o.dataValidation)==null?void 0:e.validStatus)===s.DataValidationStatus.INVALID){const l=this._cellAlertManagerService.currentAlert.get(ht),d=(t=l==null?void 0:l.alert)==null?void 0:t.location;if(d&&d.row===r.location.row&&d.col===r.location.col&&d.subUnitId===r.location.subUnitId&&d.unitId===r.location.unitId)return;const u=o.dataValidation.validator,c=o.dataValidation.rule;if(!u)return;this._cellAlertManagerService.showAlert({type:U.CellAlertType.ERROR,title:this._localeService.t("dataValidation.error.title"),message:u==null?void 0:u.generateRuleErrorMessage(c),location:r.location,width:200,height:74,key:ht});return}}this._cellAlertManagerService.removeAlert(ht)}))}},v.DataValidationAlertController=Xn([s.OnLifecycle(s.LifecycleStages.Rendered,v.DataValidationAlertController),ze(0,D.Inject(U.HoverManagerService)),ze(1,D.Inject(U.CellAlertManagerService)),ze(2,s.IUniverInstanceService),ze(3,D.Inject(s.LocaleService))],v.DataValidationAlertController);var Qn=Object.defineProperty,Kn=Object.getOwnPropertyDescriptor,Zn=(i,r,e,t)=>{for(var a=t>1?void 0:t?Kn(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&Qn(r,e,a),a},se=(i,r)=>(e,t)=>r(e,t,i);v.DataValidationRefRangeController=class extends s.Disposable{constructor(e,t,a,n,o,l,d,u,c,m){super();S(this,"_disposableMap",new Map);S(this,"registerRule",(e,t,a)=>{this.register(e,t,a),this.registerFormula(e,t,a)});this._dataValidationModel=e,this._univerInstanceService=t,this._injector=a,this._sheetSkeletonManagerService=n,this._refRangeService=o,this._dataValidationCustomFormulaService=l,this._dataValidationFormulaService=d,this._formulaRefRangeService=u,this._commandService=c,this._dataValidationCacheService=m,this._initRefRange()}_getIdWithUnitId(e,t,a){return`${e}_${t}_${a}`}registerFormula(e,t,a){var u;const n=a.uid,o=this._getIdWithUnitId(e,t,n),l=(u=this._disposableMap.get(o))!=null?u:new Set,d=(c,m)=>{const p=this._dataValidationModel.getRuleById(e,t,n);if(!p)return{redos:[],undos:[]};const h=p[c];if(!h||h===m)return{redos:[],undos:[]};const g={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:V.UpdateRuleType.SETTING,payload:{type:p.type,formula1:p.formula1,formula2:p.formula2,[c]:m}}},_={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:V.UpdateRuleType.SETTING,payload:{type:p.type,formula1:p.formula1,formula2:p.formula2}}},R=[{id:V.UpdateDataValidationMutation.id,params:g}],M=[{id:V.UpdateDataValidationMutation.id,params:_}];return{redos:R,undos:M}};if(a.type===s.DataValidationType.CUSTOM){const c=this._dataValidationCustomFormulaService.getRuleFormulaInfo(e,t,n);if(c){const m=this._formulaRefRangeService.registerFormula(c.formula,p=>d("formula1",p));l.add(()=>m.dispose())}}if(a.type!==s.DataValidationType.CUSTOM){const c=this._dataValidationFormulaService.getRuleFormulaInfo(e,t,n);if(c){const[m,p]=c;if(m){const h=this._formulaRefRangeService.registerFormula(m.text,g=>d("formula1",g));l.add(()=>h.dispose())}if(p){const h=this._formulaRefRangeService.registerFormula(p.text,g=>d("formula1",g));l.add(()=>h.dispose())}}}}register(e,t,a){var u;const n=c=>{const m=[...a.ranges],h=m.map(_=>te.handleCommonDefaultRangeChangeWithEffectRefCommands(_,c)).filter(_=>!!_).flat();if(s.isRangesEqual(h,m))return{redos:[],undos:[]};if(h.length){const _={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:V.UpdateRuleType.RANGE,payload:h}},R=[{id:V.UpdateDataValidationMutation.id,params:_}],M=[{id:V.UpdateDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:V.UpdateRuleType.RANGE,payload:m}}}];return{redos:R,undos:M}}else{const _={unitId:e,subUnitId:t,ruleId:a.uid},R=[{id:V.RemoveDataValidationMutation.id,params:_}],M=V.removeDataValidationUndoFactory(this._injector,_);return{redos:R,undos:M}}},o=[];a.ranges.forEach(c=>{const m=this._refRangeService.registerRefRange(c,n,e,t);o.push(()=>m.dispose())});const l=this._getIdWithUnitId(e,t,a.uid),d=(u=this._disposableMap.get(l))!=null?u:new Set;d.add(()=>o.forEach(c=>c())),this._disposableMap.set(l,d)}_initRefRange(){this.disposeWithMe(pe.merge(this._sheetSkeletonManagerService.currentSkeleton$.pipe(Ke.map(e=>e==null?void 0:e.sheetId),Ke.distinctUntilChanged())).pipe(Ke.switchMap(()=>new pe.Observable(e=>{const t=new s.DisposableCollection;return e.next(t),()=>{t.dispose()}}))).subscribe(e=>{e.add(s.toDisposable(this._dataValidationModel.ruleChange$.subscribe(t=>{const{unitId:a,subUnitId:n,rule:o}=t;switch(t.type){case"add":{const l=t.rule;this.registerRule(t.unitId,t.subUnitId,l);break}case"remove":{const l=this._disposableMap.get(this._getIdWithUnitId(a,n,o.uid));l&&l.forEach(d=>d());break}case"update":{const l=t.rule,d=this._disposableMap.get(this._getIdWithUnitId(a,n,l.uid));d&&d.forEach(u=>u()),this.registerRule(t.unitId,t.subUnitId,l);break}}})))})),this.disposeWithMe(s.toDisposable(()=>{this._disposableMap.forEach(e=>{e.forEach(t=>t())}),this._disposableMap.clear()}))}},v.DataValidationRefRangeController=Zn([s.OnLifecycle(s.LifecycleStages.Ready,v.DataValidationRefRangeController),se(0,D.Inject(V.DataValidationModel)),se(1,D.Inject(s.IUniverInstanceService)),se(2,D.Inject(D.Injector)),se(3,D.Inject(U.SheetSkeletonManagerService)),se(4,D.Inject(te.RefRangeService)),se(5,D.Inject(v.DataValidationCustomFormulaService)),se(6,D.Inject(v.DataValidationFormulaService)),se(7,D.Inject(Ae.FormulaRefRangeService)),se(8,s.ICommandService),se(9,D.Inject(Oe))],v.DataValidationRefRangeController);const Qt={dataValidation:{title:"Data validation",validFail:{common:"Please input value or formula",number:"Please input number or formula",formula:"Please input formula",integer:"Please input integer or formula",date:"Please input date or formula",list:"Please input options",listInvalid:"The list source must be a delimited list or a reference to a single row or column"},panel:{title:"Data validation management",addTitle:"Create new data validation",removeAll:"Remove All",add:"Create Data validation",range:"Ranges",type:"Type",options:"Advance options",operator:"Operator",removeRule:"Remove",done:"Done",formulaPlaceholder:"Please input value or formula",formulaAnd:"and",invalid:"Invalid",showWarning:"Show warning",rejectInput:"Reject input",messageInfo:"Helper message",showInfo:"Show help text for a selected cell"},operators:{between:"between",greaterThan:"greater than",greaterThanOrEqual:"greater than or equal",lessThan:"less than",lessThanOrEqual:"less than or equal",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is greater than {FORMULA1}",greaterThanOrEqual:"is greater than or equal to {FORMULA1}",lessThan:"is less than {FORMULA1}",lessThanOrEqual:"is less than or equal to {FORMULA1}",equal:"is equal to {FORMULA1}",notEqual:"is not equal to {FORMULA1}",notBetween:"is not between {FORMULA1} and {FORMULA2}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be greater than {FORMULA1}",greaterThanOrEqual:"Value must be greater than or equal to {FORMULA1}",lessThan:"Value must be less than {FORMULA1}",lessThanOrEqual:"Value must be less than or equal to {FORMULA1}",equal:"Value must be equal to {FORMULA1}",notEqual:"Value must be not equal to {FORMULA1}",notBetween:"Value must be not between {FORMULA1} and {FORMULA2}"},date:{title:"Date",operators:{between:"between",greaterThan:"after",greaterThanOrEqual:"on or after",lessThan:"before",lessThanOrEqual:"on or before",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is after {FORMULA1}",greaterThanOrEqual:"is on or after {FORMULA1}",lessThan:"is before {FORMULA1}",lessThanOrEqual:"is on or before {FORMULA1}",equal:"is {FORMULA1}",notEqual:"is not {FORMULA1}",notBetween:"is not between {FORMULA1}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be after {FORMULA1}",greaterThanOrEqual:"Value must be on or after {FORMULA1}",lessThan:"Value must be before {FORMULA1}",lessThanOrEqual:"Value must be on or before {FORMULA1}",equal:"Value must be {FORMULA1}",notEqual:"Value must be not {FORMULA1}",notBetween:"Value must be not between {FORMULA1}"}},list:{title:"Dropdown",name:"Value contains one from range",error:"Input must fall within specified range",emptyError:"Please enter a value",add:"Add",dropdown:"Select",options:"Options",customOptions:"Custom",refOptions:"From a range",formulaError:"The list source must be a delimited list of data, or a reference to a single row or column."},listMultiple:{title:"Dropdown-Multiple",dropdown:"Multiple select"},textLength:{title:"Text length",errorMsg:{between:"Text length must be between {FORMULA1} and {FORMULA2}",greaterThan:"Text length must be after {FORMULA1}",greaterThanOrEqual:"Text length must be on or after {FORMULA1}",lessThan:"Text length must be before {FORMULA1}",lessThanOrEqual:"Text length must be on or before {FORMULA1}",equal:"Text length must be {FORMULA1}",notEqual:"Text length must be not {FORMULA1}",notBetween:"Text length must be not between {FORMULA1}"}},decimal:{title:"Number"},whole:{title:"Integer"},checkbox:{title:"Checkbox",error:"This cell's contents violate its validation rule",tips:"Use custom values within cells",checked:"Selected value",unchecked:"Unselected value"},custom:{title:"Custom formula",error:"This cell's contents violate its validation rule",validFail:"Please input a valid formula"},alert:{title:"Error",ok:"OK"},error:{title:"Invalid:"},renderMode:{arrow:"Arrow",chip:"Chip",text:"Plain text",label:"Display style"}}},Kt={dataValidation:{title:"数据验证",validFail:{common:"请输入值或公式",number:"请输入合法的数字或公式",formula:"请输入合法的公式或公式",integer:"请输入合法的整数或公式",date:"请输入合法的日期或公式",list:"请输入至少一个合法选项",listInvalid:"列表源必须是分隔列表或对单行或列的引用。"},panel:{title:"管理数据验证",addTitle:"新建数据验证",removeAll:"全部删除",add:"新建规则",range:"应用范围",type:"条件类型",options:"高级设置",operator:"数据",removeRule:"删除规则",done:"确认",formulaPlaceholder:"请输入值或公式",formulaAnd:"与",invalid:"数据无效时",showWarning:"显示警告",rejectInput:"拒绝输入",messageInfo:"文字提示",showInfo:"显示所选单元格的提示文字"},operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"大于 {FORMULA1}",greaterThanOrEqual:"大于或等于 {FORMULA1}",lessThan:"小于 {FORMULA1}",lessThanOrEqual:"小于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"值必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"值必须大于 {FORMULA1}",greaterThanOrEqual:"值必须大于或等于 {FORMULA1}",lessThan:"值必须小于 {FORMULA1}",lessThanOrEqual:"值必须小于或等于 {FORMULA1}",equal:"值必须等于 {FORMULA1}",notEqual:"值必须不等于 {FORMULA1}",notBetween:"值必须在 {FORMULA1} 和 {FORMULA2} 范围之外"},date:{title:"日期",operators:{between:"介于",greaterThan:"晚于",greaterThanOrEqual:"晚于或等于",lessThan:"早于",lessThanOrEqual:"早于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"晚于 {FORMULA1}",greaterThanOrEqual:"晚于或等于 {FORMULA1}",lessThan:"早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"日期必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"日期必须晚于 {FORMULA1}",greaterThanOrEqual:"日期必须晚于或等于 {FORMULA1}",lessThan:"日期必须早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"日期必须等于 {FORMULA1}",notEqual:"日期必须不等于 {FORMULA1}",notBetween:"日期必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},list:{title:"下拉菜单",name:"值必须是列表中的值",error:"输入必须在指定的范围内",emptyError:"请输入一个值",add:"添加选项",dropdown:"单选",options:"选项来源",customOptions:"自定义",refOptions:"引用数据",formulaError:"列表源必须是划定分界后的数据列表,或是对单一行或一列的引用。"},listMultiple:{title:"下拉菜单-多选",dropdown:"多选"},textLength:{title:"文本长度",errorMsg:{between:"文本长度必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"文本长度必须大于 {FORMULA1}",greaterThanOrEqual:"文本长度必须大于或等于 {FORMULA1}",lessThan:"文本长度必须小于 {FORMULA1}",lessThanOrEqual:"文本长度必须小于或等于 {FORMULA1}",equal:"文本长度必须等于 {FORMULA1}",notEqual:"文本长度必须不等于 {FORMULA1}",notBetween:"文本长度必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},decimal:{title:"数字"},whole:{title:"整数"},checkbox:{title:"复选框",error:"此单元格的内容违反了验证规则",tips:"在单元格内使用自定义值",checked:"选中值",unchecked:"未选中值"},custom:{title:"自定义公式",error:"此单元格的内容违反了验证规则",validFail:"请输入合法的公式"},alert:{title:"提示",ok:"确定"},error:{title:"无效:"},renderMode:{arrow:"箭头",chip:"条状标签",text:"纯文本",label:"显示样式"}}};var Jn=Object.defineProperty,er=Object.getOwnPropertyDescriptor,tr=(i,r,e,t)=>{for(var a=t>1?void 0:t?er(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&Jn(r,e,a),a},Zt=(i,r)=>(e,t)=>r(e,t,i);v.DataValidationAutoFillController=class extends s.Disposable{constructor(r,e){super(),this._autoFillService=r,this._dataValidationModel=e,this._initAutoFill()}_initAutoFill(){const r=()=>({redos:[],undos:[]}),e=a=>{const{source:n,target:o,unitId:l,subUnitId:d}=a,u=this._dataValidationModel.ensureManager(l,d),c=u.getRuleObjectMatrix().clone(),m=U.virtualizeDiscreteRanges([n,o]),[p,h]=m.ranges,{mapFunc:g}=m,_={row:p.startRow,col:p.startColumn};U.getAutoFillRepeatRange(p,h).forEach(w=>{const y=w.repeatStartCell,T=w.relativeRange,b={startRow:_.row,startColumn:_.col,endColumn:_.col,endRow:_.row},W={startRow:y.row,startColumn:y.col,endColumn:y.col,endRow:y.row};s.Range.foreach(T,(L,P)=>{const k=s.Rectangle.getPositionRange({startRow:L,startColumn:P,endColumn:P,endRow:L},b),{row:H,col:x}=g(k.startRow,k.startColumn),j=u.getRuleIdByLocation(H,x);if(j){const $=s.Rectangle.getPositionRange({startRow:L,startColumn:P,endColumn:P,endRow:L},W),{row:G,col:Q}=g($.startRow,$.startColumn);c.setValue(G,Q,j)}})});const M=c.diff(u.getDataValidations()),{redoMutations:C,undoMutations:E}=De(l,d,M);return{undos:E,redos:C}},t={id:Pe,onFillData:(a,n,o)=>o===U.APPLY_TYPE.COPY||o===U.APPLY_TYPE.ONLY_FORMAT||o===U.APPLY_TYPE.SERIES?e(a):r()};this.disposeWithMe(this._autoFillService.addHook(t))}},v.DataValidationAutoFillController=tr([s.OnLifecycle(s.LifecycleStages.Ready,v.DataValidationAutoFillController),Zt(0,U.IAutoFillService),Zt(1,D.Inject(V.DataValidationModel))],v.DataValidationAutoFillController);var ar=Object.defineProperty,nr=Object.getOwnPropertyDescriptor,rr=(i,r,e,t)=>{for(var a=t>1?void 0:t?nr(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&ar(r,e,a),a},pt=(i,r)=>(e,t)=>r(e,t,i);v.DataValidationCopyPasteController=class extends s.Disposable{constructor(e,t,a){super();S(this,"_copyInfo");this._sheetClipboardService=e,this._dataValidationModel=t,this._injector=a,this._initCopyPaste()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:Pe,onBeforeCopy:(e,t,a)=>this._collect(e,t,a),onPasteCells:(e,t,a,n)=>{const{copyType:o=U.COPY_TYPE.COPY,pasteType:l}=n,{range:d}=e||{},{range:u,unitId:c,subUnitId:m}=t;return this._generateMutations(u,{copyType:o,pasteType:l,copyRange:d,unitId:c,subUnitId:m})}})}_collect(e,t,a){const n=new s.ObjectMatrix;this._copyInfo={unitId:e,subUnitId:t,matrix:n};const o=this._dataValidationModel.ensureManager(e,t),l={get:this._injector.get.bind(this._injector)},d=U.rangeToDiscreteRange(a,l,e,t);if(!d)return;const{rows:u,cols:c}=d;u.forEach((m,p)=>{c.forEach((h,g)=>{const _=o.getRuleIdByLocation(m,h);n.setValue(p,g,_!=null?_:"")})})}_generateMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};if(t.copyType===U.COPY_TYPE.CUT)return this._copyInfo=null,{redos:[],undos:[]};if(!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange)return{redos:[],undos:[]};if([U.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,U.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,U.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,Ae.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};const{unitId:a,subUnitId:n}=this._copyInfo;if(t.unitId!==a||n!==t.subUnitId){const o=this._dataValidationModel.ensureManager(a,n),l=this._dataValidationModel.ensureManager(t.unitId,t.subUnitId),d=l.getRuleObjectMatrix().clone(),{ranges:[u,c],mapFunc:m}=U.virtualizeDiscreteRanges([t.copyRange,e]),p=U.getRepeatRange(u,c,!0),h=new Map;p.forEach(({startRange:R})=>{var M;(M=this._copyInfo)==null||M.matrix.forValue((C,E,w)=>{const y=s.Rectangle.getPositionRange({startRow:C,endRow:C,startColumn:E,endColumn:E},R),T=`${n}-${w}`,b=o.getRuleById(w);!l.getRuleById(T)&&b&&h.set(T,{...b,uid:T});const{row:W,col:L}=m(y.startRow,y.startColumn);d.setValue(W,L,T)})});const{redoMutations:g,undoMutations:_}=De(t.unitId,t.subUnitId,d.diffWithAddition(l.getDataValidations(),h.values()));return{redos:g,undos:_}}else{const o=this._dataValidationModel.ensureManager(a,n),l=o.getRuleObjectMatrix().clone(),{ranges:[d,u],mapFunc:c}=U.virtualizeDiscreteRanges([t.copyRange,e]);U.getRepeatRange(d,u,!0).forEach(({startRange:g})=>{var _;(_=this._copyInfo)==null||_.matrix.forValue((R,M,C)=>{const E=s.Rectangle.getPositionRange({startRow:R,endRow:R,startColumn:M,endColumn:M},g),{row:w,col:y}=c(E.startRow,E.startColumn);l.setValue(w,y,C)})});const{redoMutations:p,undoMutations:h}=De(a,n,l.diff(o.getDataValidations()));return{redos:p,undos:h}}}},v.DataValidationCopyPasteController=rr([s.OnLifecycle(s.LifecycleStages.Ready,v.DataValidationCopyPasteController),pt(0,U.ISheetClipboardService),pt(1,D.Inject(V.DataValidationModel)),pt(2,D.Inject(D.Injector))],v.DataValidationCopyPasteController);class ft{constructor(r){S(this,"value");this.value=r}addRule(r){const e=r.uid;r.ranges.forEach(t=>{s.Range.foreach(t,(a,n)=>{this.value.setValue(a,n,e)})})}removeRange(r){r.forEach(e=>{s.Range.foreach(e,(t,a)=>{this.value.realDeleteValue(t,a)})})}removeRule(r){r.ranges.forEach(e=>{s.Range.foreach(e,(t,a)=>{this.value.setValue(t,a,"")})})}updateRange(r,e,t){const a=`${r}$`;e.forEach(n=>{s.Range.foreach(n,(o,l)=>{this.value.getValue(o,l)===r&&this.value.setValue(o,l,a)})}),t.forEach(n=>{s.Range.foreach(n,(o,l)=>{this.value.setValue(o,l,r)})}),e.forEach(n=>{s.Range.foreach(n,(o,l)=>{this.value.getValue(o,l)===a&&this.value.realDeleteValue(o,l)})})}diff(r){const e=[];let t=0;return r.forEach((a,n)=>{const o=s.queryObjectMatrix(this.value,d=>d===a.uid),l=a.ranges;(o.length!==l.length||o.some((d,u)=>!s.Rectangle.equals(d,l[u])))&&e.push({type:"update",ruleId:a.uid,oldRanges:l,newRanges:o}),o.length===0&&(e.push({type:"delete",rule:a,index:n-t}),t++)}),e}diffWithAddition(r,e){const t=[];let a=0;return r.forEach((n,o)=>{const l=s.queryObjectMatrix(this.value,u=>u===n.uid),d=n.ranges;(l.length!==d.length||l.some((u,c)=>!s.Rectangle.equals(u,d[c])))&&t.push({type:"update",ruleId:n.uid,oldRanges:d,newRanges:l}),l.length===0&&(t.push({type:"delete",rule:n,index:o-a}),a++)}),Array.from(e).forEach(n=>{const o=s.queryObjectMatrix(this.value,l=>l===n.uid);t.push({type:"add",rule:{...n,ranges:o}})}),t}clone(){return new ft(new s.ObjectMatrix(this.value.clone()))}getValue(r,e){return this.value.getValue(r,e)}setValue(r,e,t){return this.value.setValue(r,e,t)}}class or extends V.DataValidationManager{constructor(e,t,a,n){super(e,t,a);S(this,"_ruleMatrix");S(this,"_dataValidatorRegistryService");S(this,"_dataValidationCacheService");S(this,"_dataValidationFormulaService");S(this,"_dataValidationCustomFormulaService");S(this,"_cache");S(this,"_dataValidationRefRangeController");this._injector=n,this._dataValidatorRegistryService=this._injector.get(V.DataValidatorRegistryService),this._dataValidationCacheService=this._injector.get(Oe),this._dataValidationFormulaService=this._injector.get(v.DataValidationFormulaService),this._dataValidationCustomFormulaService=this._injector.get(v.DataValidationCustomFormulaService),this._dataValidationRefRangeController=this._injector.get(v.DataValidationRefRangeController),this._cache=this._dataValidationCacheService.ensureCache(e,t);const o=new s.ObjectMatrix;a==null||a.forEach(l=>{const d=l.uid;l.ranges.forEach(u=>{s.Range.foreach(u,(c,m)=>{o.setValue(c,m,d)})})}),a==null||a.forEach(l=>{this._dataValidationRefRangeController.register(e,t,l)}),this._ruleMatrix=new ft(o)}_addRuleSideEffect(e){var n;const{unitId:t,subUnitId:a}=this;(e.type===s.DataValidationType.LIST||e.type===s.DataValidationType.LIST_MULTIPLE)&&oe.isReferenceString((n=e.formula1)!=null?n:"")&&(e.formula1=`=${e.formula1}`),this._ruleMatrix.addRule(e),this._dataValidationCacheService.addRule(t,a,e),this._dataValidationFormulaService.addRule(t,a,e.uid,e.formula1,e.formula2),this._dataValidationCustomFormulaService.addRule(t,a,e)}addRule(e,t){(Array.isArray(e)?e:[e]).forEach(n=>{this._addRuleSideEffect(n)}),super.addRule(e,t)}updateRule(e,t){const a=this.getRuleById(e);if(!a)throw new Error(`Rule not found! id: ${e}`);return t.type===V.UpdateRuleType.RANGE?(this._ruleMatrix.updateRange(e,a.ranges,t.payload),this._dataValidationCacheService.updateRuleRanges(this.unitId,this.subUnitId,e,t.payload,a.ranges),this._dataValidationCustomFormulaService.updateRuleRanges(this.unitId,this.subUnitId,e,a.ranges,t.payload)):t.type===V.UpdateRuleType.SETTING&&(this._dataValidationCacheService.markRangeDirty(this.unitId,this.subUnitId,a.ranges),this._dataValidationFormulaService.updateRuleFormulaText(this.unitId,this.subUnitId,e,t.payload.formula1,t.payload.formula2),this._dataValidationCustomFormulaService.updateRuleFormula(this.unitId,this.subUnitId,e,a.ranges,t.payload.formula1)),super.updateRule(e,t)}removeRule(e){const t=this.getRuleById(e);t&&(this._ruleMatrix.removeRule(t),this._dataValidationCacheService.removeRule(this.unitId,this.subUnitId,t)),super.removeRule(e)}getRuleIdByLocation(e,t){return this._ruleMatrix.getValue(e,t)}getRuleByLocation(e,t){const a=this.getRuleIdByLocation(e,t);if(a)return this.getRuleById(a)}validator(e,t,a,n){const{col:o,row:l,unitId:d,subUnitId:u}=a,c=t.uid,m=this._dataValidatorRegistryService.getValidatorItem(t.type);if(m){const p=this._cache.getValue(l,o);return!p||p.value!==e?(this._cache.setValue(l,o,{value:e,status:s.DataValidationStatus.VALIDATING,ruleId:c}),m.validator({value:e,unitId:d,subUnitId:u,row:l,column:o},t).then(h=>{const g=h?s.DataValidationStatus.VALID:s.DataValidationStatus.INVALID;this._cache.setValue(l,o,{value:e,status:g,ruleId:c}),n(g)}),s.DataValidationStatus.VALIDATING):p.status}else return s.DataValidationStatus.VALID}getRuleErrorMsg(e){const t=this.getRuleById(e);if(!t)return"";const a=this._dataValidatorRegistryService.getValidatorItem(t.type);return t.error?t.error:a?a.getRuleFinalError(t):""}getRuleObjectMatrix(){return this._ruleMatrix}}var ir=Object.defineProperty,sr=Object.getOwnPropertyDescriptor,lr=(i,r,e,t)=>{for(var a=t>1?void 0:t?sr(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&ir(r,e,a),a},Ge=(i,r)=>(e,t)=>r(e,t,i);let Xe=class extends s.Disposable{constructor(i,r,e,t){super(),this._resourceManagerService=i,this._univerInstanceService=r,this._dataValidationModel=e,this._injector=t,this._initDataValidationDataSource()}_createSheetDataValidationManager(i,r){return new or(i,r,[],this._injector)}_initDataValidationDataSource(){this._dataValidationModel.setManagerCreator(this._createSheetDataValidationManager.bind(this))}};Xe=lr([s.OnLifecycle(s.LifecycleStages.Starting,Xe),Ge(0,s.IResourceManagerService),Ge(1,s.IUniverInstanceService),Ge(2,D.Inject(V.DataValidationModel)),Ge(3,D.Inject(D.Injector))],Xe);var dr=Object.defineProperty,ur=Object.getOwnPropertyDescriptor,cr=(i,r,e,t)=>{for(var a=t>1?void 0:t?ur(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&dr(r,e,a),a},Te=(i,r)=>(e,t)=>r(e,t,i);v.DataValidationRejectInputController=class extends s.Disposable{constructor(r,e,t,a,n){super(),this._editorBridgeService=r,this._dataValidationModel=e,this._dataValidatorRegistryService=t,this._dialogService=a,this._localeService=n,this._initEditorBridgeInterceptor()}_initEditorBridgeInterceptor(){this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,{handler:async(r,e,t)=>{const a=await r,{worksheet:n,row:o,col:l,unitId:d,subUnitId:u}=e,c=this._dataValidationModel.ensureManager(d,u),m=c.getRuleIdByLocation(o,l),p=m?c.getRuleById(m):void 0;if(!p||p.errorStyle!==s.DataValidationErrorStyle.STOP)return t(Promise.resolve(a));const h=await this._dataValidatorRegistryService.getValidatorItem(p.type);if(!h||await h.validator({value:J(a),row:o,column:l,unitId:d,subUnitId:u},p))return t(Promise.resolve(a));const _=n.getCellRaw(o,l);return this._dialogService.open({width:368,title:{title:this._localeService.t("dataValidation.alert.title")},id:"reject-input-dialog",children:{title:h.generateRuleErrorMessage(p)},footer:{title:I.createElement(O.Button,{type:"primary",onClick:()=>this._dialogService.close("reject-input-dialog")},this._localeService.t("dataValidation.alert.ok"))},onClose:()=>{this._dialogService.close("reject-input-dialog")}}),t(Promise.resolve(_))}})}},v.DataValidationRejectInputController=cr([s.OnLifecycle(s.LifecycleStages.Ready,v.DataValidationRejectInputController),Te(0,U.IEditorBridgeService),Te(1,D.Inject(V.DataValidationModel)),Te(2,D.Inject(V.DataValidatorRegistryService)),Te(3,B.IDialogService),Te(4,D.Inject(s.LocaleService))],v.DataValidationRejectInputController);var mr=Object.defineProperty,hr=Object.getOwnPropertyDescriptor,pr=(i,r,e,t)=>{for(var a=t>1?void 0:t?hr(r,e):r,n=i.length-1,o;n>=0;n--)(o=i[n])&&(a=(t?o(r,e,a):o(a))||a);return t&&a&&mr(r,e,a),a},vt=(i,r)=>(e,t)=>r(e,t,i);v.UniverSheetsDataValidationPlugin=(Qe=class extends s.Plugin{constructor(r,e,t,a){super(),this._injector=e,this._commandService=t,this._localeService=a}onStarting(r){[[_e],[v.SheetDataValidationService],[Oe],[v.DataValidationFormulaService],[v.DataValidationCustomFormulaService],[ge],[Xe],[v.DataValidationController],[v.DataValidationRenderController],[v.DataValidationAlertController],[v.DataValidationRefRangeController],[v.DataValidationAutoFillController],[v.DataValidationCopyPasteController],[v.DataValidationRejectInputController]].forEach(e=>{r.add(e)}),[je,Je,Ze,Ne,Mt,Dt,we,ua].forEach(e=>{this._commandService.registerCommand(e)}),this._localeService.load({zhCN:Kt,enUS:Qt})}},S(Qe,"pluginName",Pe),S(Qe,"type",s.UniverInstanceType.UNIVER_SHEET),Qe),v.UniverSheetsDataValidationPlugin=pr([vt(1,D.Inject(D.Injector)),vt(2,s.ICommandService),vt(3,D.Inject(s.LocaleService))],v.UniverSheetsDataValidationPlugin),Object.defineProperty(v,"ICommandService",{enumerable:!0,get:()=>s.ICommandService}),Object.defineProperty(v,"LocaleService",{enumerable:!0,get:()=>s.LocaleService}),Object.defineProperty(v,"Plugin",{enumerable:!0,get:()=>s.Plugin}),v.AddSheetDataValidationAndOpenCommand=Je,v.AddSheetDataValidationCommand=je,v.DATA_VALIDATION_PLUGIN_NAME=Pe,v.DataValidationCacheService=Oe,v.HideDataValidationDropdown=Mt,v.ShowDataValidationDropdown=Ne,v.UpdateSheetDataValidationRangeCommand=Ze,v.enUS=Qt,v.zhCN=Kt,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});