@univerjs/sheets-data-validation 0.1.6 → 0.1.8

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(A,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("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","rxjs/operators","@univerjs/sheets-formula"],l):(A=typeof globalThis<"u"?globalThis:A||self,l(A.UniverSheetsDataValidation={},A.UniverCore,A["@wendellhu/redi"],A.UniverDataValidation,A.UniverUi,A.UniverSheetsUi,A.UniverEngineRender,A.UniverSheets,A.React,A["@wendellhu/redi/react-bindings"],A.UniverDesign,A.UniverEngineFormula,A.rxjs,A.rxjs.operators,A.UniverSheetsFormula))})(this,function(A,l,z,H,oe,se,fe,he,X,ne,J,le,ge,zt,Aa){"use strict";var Wo=Object.defineProperty;var $o=(A,l,z)=>l in A?Wo(A,l,{enumerable:!0,configurable:!0,writable:!0,value:z}):A[l]=z;var W=(A,l,z)=>($o(A,typeof l!="symbol"?l+"":l,z),z);var Fa;var ct=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Pa(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var La={exports:{}},dt={};/**
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 en=X,tn=Symbol.for("react.element"),an=Symbol.for("react.fragment"),rn=Object.prototype.hasOwnProperty,nn=en.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,on={key:!0,ref:!0,__self:!0,__source:!0};function Na(i,n,e){var t,a={},r=null,o=null;e!==void 0&&(r=""+e),n.key!==void 0&&(r=""+n.key),n.ref!==void 0&&(o=n.ref);for(t in n)rn.call(n,t)&&!on.hasOwnProperty(t)&&(a[t]=n[t]);if(i&&i.defaultProps)for(t in n=i.defaultProps,n)a[t]===void 0&&(a[t]=n[t]);return{$$typeof:tn,type:i,key:r,ref:o,props:a,_owner:nn.current}}dt.Fragment=an,dt.jsx=Na,dt.jsxs=Na,La.exports=dt;var N=La.exports;function sn(){const i=ne.useDependency(Ae),n=oe.useObservable(i.activeDropdown$,i.activeDropdown),e=ne.useDependency(oe.ComponentManager);if(!n)return null;const{location:t,componentKey:a}=n,r=e.get(a),o=`${t.unitId}-${t.subUnitId}-${t.row}-${t.col}`;if(!r)return null;const s=()=>{i.hideDropdown()};return N.jsx(r,{location:t,hideFn:s},o)}const ja="sheet.ui.dropdown";var ln=Object.defineProperty,un=Object.getOwnPropertyDescriptor,cn=(i,n,e,t)=>{for(var a=t>1?void 0:t?un(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&ln(n,e,a),a},Fe=(i,n)=>(e,t)=>n(e,t,i);let Ae=class extends l.Disposable{constructor(n,e,t,a,r,o,s){super();W(this,"_activeDropdown");W(this,"_activeDropdown$",new ge.Subject);W(this,"_currentPopup",null);W(this,"activeDropdown$",this._activeDropdown$.asObservable());W(this,"_zenVisible",!1);this._canvasPopupManagerService=n,this._univerInstanceService=e,this._sheetSkeletonManagerService=t,this._dataValidatorRegistryService=a,this._zenZoneService=r,this._renderManagerService=o,this._dataValidationModel=s,this._init()}get activeDropdown(){return this._activeDropdown}_init(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(n=>{this._zenVisible=n,n&&this.hideDropdown()}))}showDropdown(n){const{location:e}=n,{row:t,col:a}=e;if(this._currentPopup&&this._currentPopup.dispose(),this._zenVisible)return;this._activeDropdown=n,this._activeDropdown$.next(this._activeDropdown);const r=new l.DisposableCollection,o=this._renderManagerService.getRenderById(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);r.add(this._canvasPopupManagerService.attachPopupToCell(t,a,{componentKey:ja,onClickOutside:()=>{this.hideDropdown()},offset:[0,3],excludeOutside:[o==null?void 0:o.engine.getCanvasElement()].filter(Boolean)})),r.add({dispose:()=>{var s,u;(u=(s=this._activeDropdown)==null?void 0:s.onHide)==null||u.call(s)}}),this._currentPopup=r}hideDropdown(){this._activeDropdown&&(this._currentPopup&&this._currentPopup.dispose(),this._currentPopup=null,this._activeDropdown=null,this._activeDropdown$.next(null))}showDataValidationDropdown(n,e,t,a,r){const o=this._univerInstanceService.getUniverSheetInstance(n);if(!o)return;const s=o.getSheetBySheetId(e);if(!s)return;const c=this._dataValidationModel.ensureManager(n,e).getRuleByLocation(t,a);if(!this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:n,sheetId:e})||!c)return;const p=this._dataValidatorRegistryService.getValidatorItem(c.type);if(!p||!p.dropdown){this.hideDropdown();return}this.showDropdown({location:{workbook:o,worksheet:s,row:t,col:a,unitId:n,subUnitId:e},componentKey:p.dropdown,onHide:r})}};Ae=cn([Fe(0,z.Inject(se.SheetCanvasPopManagerService)),Fe(1,l.IUniverInstanceService),Fe(2,z.Inject(se.SheetSkeletonManagerService)),Fe(3,z.Inject(H.DataValidatorRegistryService)),Fe(4,oe.IZenZoneService),Fe(5,fe.IRenderManagerService),Fe(6,z.Inject(H.DataValidationModel))],Ae);class Pe extends l.Disposable{constructor(){super(...arguments);W(this,"_open$",new ge.BehaviorSubject(!1));W(this,"_activeRule");W(this,"_activeRule$",new ge.BehaviorSubject(void 0));W(this,"open$",this._open$.pipe(ge.distinctUntilChanged()));W(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 Ua="DataValidationPanel",Ge={id:"data-validation.operation.open-validation-panel",type:l.CommandType.OPERATION,handler(i,n){if(!n)return!1;const{ruleId:e,isAdd:t}=n,a=i.get(Pe),r=i.get(H.DataValidationModel),o=i.get(l.IUniverInstanceService),s=i.get(oe.ISidebarService),u=o.getCurrentUniverSheetInstance(),c=u.getActiveSheet(),d=u.getUnitId(),p=c.getSheetId(),g=e?r.getRuleById(d,p,e):void 0;return a.open(),a.setActiveRule(g&&{unitId:d,subUnitId:p,rule:g}),s.open({header:{title:t?"dataValidation.panel.addTitle":"dataValidation.panel.title"},children:{label:Ua},width:312}),!0}},xa={id:"data-validation.operation.close-validation-panel",type:l.CommandType.OPERATION,handler(i){return i.get(Pe).close(),!0}},dn={id:"data-validation.operation.toggle-validation-panel",type:l.CommandType.OPERATION,handler(i){const n=i.get(l.ICommandService),e=i.get(Pe);return e.open(),e.isOpen?n.executeCommand(xa.id):n.executeCommand(Ge.id),!0}},ft={type:l.CommandType.OPERATION,id:"sheet.operation.show-data-validation-dropdown",handler(i,n){if(!n)return!1;const e=i.get(Ae),{unitId:t,subUnitId:a,row:r,column:o}=n,s=e.activeDropdown,u=s==null?void 0:s.location;return u&&u.unitId===t&&u.subUnitId===a&&u.row===r&&u.col===o||e.showDataValidationDropdown(t,a,r,o),!0}},Wa={type:l.CommandType.OPERATION,id:"sheet.operation.hide-data-validation-dropdown",handler(i,n){return n?(i.get(Ae).hideDropdown(),!0):!1}};function $e(i,n,e){const t=[],a=[];return e.forEach(r=>{switch(r.type){case"delete":t.push({id:H.RemoveDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.rule.uid}}),a.unshift({id:H.AddDataValidationMutation.id,params:{unitId:i,subUnitId:n,rule:r.rule,index:r.index}});break;case"update":{t.push({id:H.UpdateDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.ruleId,payload:{type:H.UpdateRuleType.RANGE,payload:r.newRanges}}}),a.unshift({id:H.UpdateDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.ruleId,payload:{type:H.UpdateRuleType.RANGE,payload:r.oldRanges}}});break}case"add":{t.push({id:H.AddDataValidationMutation.id,params:{unitId:i,subUnitId:n,rule:r.rule}}),a.unshift({id:H.RemoveDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.rule.uid}});break}}}),{redoMutations:t,undoMutations:a}}const Kt={type:l.CommandType.COMMAND,id:"sheets.command.updateDataValidationRuleRange",async handler(i,n){if(!n)return!1;const{unitId:e,subUnitId:t,ranges:a,ruleId:r}=n,o=i.get(H.DataValidationModel),s=i.get(l.ICommandService),u=i.get(l.IUndoRedoService),c=o.ensureManager(e,t),d=c.getRuleById(r);if(!d)return!1;const p=d.ranges,g=c.getRuleObjectMatrix().clone();g.updateRange(r,p,a);const v=g.diff(c.getDataValidations()),{redoMutations:M,undoMutations:V}=$e(e,t,v);return u.pushUndoRedo({undoMutations:V,redoMutations:M,unitID:e}),await l.sequenceExecuteAsync(M,s),!0}},pt={type:l.CommandType.COMMAND,id:"sheets.command.addDataValidation",async handler(i,n){if(!n)return!1;const{unitId:e,subUnitId:t,rule:a}=n,r=i.get(H.DataValidationModel),o=i.get(l.ICommandService),s=i.get(l.IUndoRedoService),u=r.ensureManager(e,t),c=u.getRuleObjectMatrix().clone();c.addRule(a);const d=c.diff(u.getDataValidations()),p={unitId:e,subUnitId:t,rule:a},{redoMutations:g,undoMutations:v}=$e(e,t,d);return g.push({id:H.AddDataValidationMutation.id,params:p}),v.unshift({id:H.RemoveDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid}}),s.pushUndoRedo({unitID:e,redoMutations:g,undoMutations:v}),await l.sequenceExecuteAsync(g,o),!0}},Gt={type:l.CommandType.COMMAND,id:"data-validation.command.addRuleAndOpen",async handler(i){const e=i.get(l.IUniverInstanceService).getCurrentUniverSheetInstance(),t=e.getActiveSheet(),a=H.createDefaultNewRule(i),r=i.get(l.ICommandService),o=e.getUnitId(),s=t.getSheetId(),u={rule:a,unitId:o,subUnitId:s};return await r.executeCommand(pt.id,u)?(r.executeCommand(Ge.id,{ruleId:a.uid,isAdd:!0}),!0):!1}};var _e=function(){return _e=Object.assign||function(i){for(var n,e=1,t=arguments.length;e<t;e++){n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])}return i},_e.apply(this,arguments)},fn=function(i,n){var e={};for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&n.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++)n.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(i,t[a])&&(e[t[a]]=i[t[a]]);return e},Ce=X.forwardRef(function(i,n){var e=i.icon,t=i.id,a=i.className,r=i.extend,o=fn(i,["icon","id","className","extend"]),s="univerjs-icon univerjs-icon-".concat(t," ").concat(a||"").trim(),u=X.useRef("_".concat(mn()));return $a(e,"".concat(t),{defIds:e.defIds,idSuffix:u.current},_e({ref:n,className:s},o),r)});function $a(i,n,e,t,a){return X.createElement(i.tag,_e(_e({key:n},pn(i,e,a)),t),(hn(i,e).children||[]).map(function(r,o){return $a(r,"".concat(n,"-").concat(i.tag,"-").concat(o),e,void 0,a)}))}function pn(i,n,e){var t=_e({},i.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var a=n.defIds;return!a||a.length===0||(i.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+n.idSuffix),Object.entries(t).forEach(function(r){var o=r[0],s=r[1];typeof s=="string"&&(t[o]=s.replace(/url\(#(.*)\)/,"url(#$1".concat(n.idSuffix,")")))})),t}function hn(i,n){var e,t=n.defIds;return!t||t.length===0?i:i.tag==="defs"&&(!((e=i.children)===null||e===void 0)&&e.length)?_e(_e({},i),{children:i.children.map(function(a){return typeof a.attrs.id=="string"&&t&&t.indexOf(a.attrs.id)>-1?_e(_e({},a),{attrs:_e(_e({},a.attrs),{id:a.attrs.id+n.idSuffix})}):a})}):i}function mn(){return Math.random().toString(36).substring(2,8)}Ce.displayName="UniverIcon";var vn={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"}}]},ka=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"check-mark-single",ref:n,icon:vn}))});ka.displayName="CheckMarkSingle";const gn=ka;var _n={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}}]},Ba=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"data-validation-single",ref:n,icon:_n}))});Ba.displayName="DataValidationSingle";var Sn={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"}}]},qa=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"delete-single",ref:n,icon:Sn}))});qa.displayName="DeleteSingle";const Ha=qa;var yn={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"}}]}]},Ya=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"increase-single",ref:n,icon:yn}))});Ya.displayName="IncreaseSingle";const Dn=Ya;var Rn={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"}}]}]},za=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"more-down-single",ref:n,icon:Rn}))});za.displayName="MoreDownSingle";const Mn=za;var In={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"}}]}]},Ka=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"more-up-single",ref:n,icon:In}))});Ka.displayName="MoreUpSingle";const On=Ka;var wn={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"}}]}]},Ga=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"sequence-single",ref:n,icon:wn}))});Ga.displayName="SequenceSingle";const Cn=Ga,Xt={dataValidationOptionsButton:"univer-data-validation-options-button",dataValidationOptionsButtonIcon:"univer-data-validation-options-button-icon"};function Vn(i){var c;const n=ne.useDependency(l.LocaleService),e=ne.useDependency(oe.ComponentManager),{value:t,onChange:a,extraComponent:r}=i,[o,s]=X.useState(!1),u=r?e.get(r):null;return N.jsxs(N.Fragment,{children:[N.jsxs("div",{className:Xt.dataValidationOptionsButton,onClick:()=>s(!o),children:[n.t("dataValidation.panel.options"),o?N.jsx(On,{className:Xt.dataValidationOptionsButtonIcon}):N.jsx(Mn,{className:Xt.dataValidationOptionsButtonIcon})]}),o&&N.jsxs(N.Fragment,{children:[u?N.jsx(u,{value:t,onChange:a}):null,N.jsx(J.FormLayout,{label:n.t("dataValidation.panel.invalid"),children:N.jsxs(J.RadioGroup,{value:`${(c=t.errorStyle)!=null?c:l.DataValidationErrorStyle.WARNING}`,onChange:d=>a({...t,errorStyle:+d}),children:[N.jsx(J.Radio,{value:`${l.DataValidationErrorStyle.WARNING}`,children:n.t("dataValidation.panel.showWarning")}),N.jsx(J.Radio,{value:`${l.DataValidationErrorStyle.STOP}`,children:n.t("dataValidation.panel.rejectInput")})]})}),N.jsx(J.FormLayout,{label:n.t("dataValidation.panel.messageInfo"),children:N.jsx(J.Checkbox,{checked:t.showInputMessage,onChange:()=>a({...t,showInputMessage:!t.showInputMessage}),children:n.t("dataValidation.panel.showInfo")})}),t.showInputMessage?N.jsx(J.FormLayout,{children:N.jsx(J.Input,{value:t.error,onChange:d=>a({...t,error:d})})}):null]})]})}const ke={dataValidationDetailFormItem:"univer-data-validation-detail-form-item",dataValidationDetailButtons:"univer-data-validation-detail-buttons",dataValidationDetailButton:"univer-data-validation-detail-button"},Tn=i=>l.debounce(async(n,e,t,a)=>{const r=await i.executeCommand(n,e,t);a==null||a(r)},275);function bn(){const[i,n]=X.useState(0),e=ne.useDependency(Pe),t=oe.useObservable(e.activeRule$,e.activeRule),{unitId:a,subUnitId:r,rule:o}=t||{},s=o.uid,u=ne.useDependency(H.DataValidatorRegistryService),c=ne.useDependency(oe.ComponentManager),d=ne.useDependency(l.ICommandService),p=ne.useDependency(H.DataValidationModel),g=ne.useDependency(l.LocaleService),[v,M]=X.useState(o),V=u.getValidatorItem(v.type),[O,b]=X.useState(!1),F=u.getValidatorsByScope(H.DataValidatorRegistryScope.SHEET),[P,j]=X.useState(()=>v.ranges.map(C=>({unitId:"",sheetId:"",range:C}))),$=X.useMemo(()=>Tn(d),[d]);if(X.useEffect(()=>{d.onCommandExecuted(C=>{(C.id===l.UndoCommand.id||C.id===l.RedoCommand.id)&&setTimeout(()=>{const E=p.getRuleById(a,r,s);n(x=>x+1),E&&(M(E),j(E.ranges.map(x=>({unitId:"",sheetId:"",range:x}))))},20)})},[d,p,s,r,a]),!V)return null;const U=V.operators,I=V.operatorNames,w=v.operator?H.TWO_FORMULA_OPERATOR_COUNT.includes(v.operator):!1,L=()=>{V.validatorFormula(v).success?e.setActiveRule(null):b(!0)},T=oe.useEvent(C=>{if(l.isUnitRangesEqual(C,P))return;j(C);const E=C.filter(q=>(!q.unitId||q.unitId===a)&&(!q.sheetId||q.sheetId===r)).map(q=>q.range);M({...v,ranges:E});const x={unitId:a,subUnitId:r,ruleId:s,ranges:E};$(Kt.id,x)}),D=C=>{if(l.shallowEqual(C,H.getRuleSetting(v)))return;M({...v,...C});const E={unitId:a,subUnitId:r,ruleId:s,setting:C};$(H.UpdateDataValidationSettingCommand.id,E,void 0)},R=async()=>{await d.executeCommand(H.RemoveDataValidationCommand.id,{ruleId:s,unitId:a,subUnitId:r}),e.setActiveRule(null)},_={type:v.type,operator:v.operator,formula1:v.formula1,formula2:v.formula2,allowBlank:v.allowBlank},y=C=>{const E=u.getValidatorItem(C);if(!E)return;const x=E.operators,q={...v,type:C,operator:x[0],...C===l.DataValidationType.CHECKBOX?{formula1:void 0,formula2:void 0}:null};M(q),d.executeCommand(H.UpdateDataValidationSettingCommand.id,{unitId:a,subUnitId:r,ruleId:v.uid,setting:H.getRuleSetting(q)})},h=c.get(V.formulaInput),m=P.map(C=>le.serializeRange(C.range)).join(","),f=H.getRuleOptions(v),S=C=>{l.shallowEqual(C,H.getRuleOptions(v))||(M({...v,...C}),$(H.UpdateDataValidationOptionsCommand.id,{unitId:a,subUnitId:r,ruleId:s,options:C}))};return N.jsxs("div",{children:[N.jsx(J.FormLayout,{label:g.t("dataValidation.panel.range"),children:N.jsx(oe.RangeSelector,{className:ke.dataValidationDetailFormItem,value:m,id:"data-validation-detail",openForSheetUnitId:a,openForSheetSubUnitId:r,onChange:C=>{C.some(E=>!l.isValidRange(E.range)||E.range.endColumn<E.range.startColumn||E.range.endRow<E.range.startRow)||T(C)}},i)}),N.jsx(J.FormLayout,{label:g.t("dataValidation.panel.type"),children:N.jsx(J.Select,{options:F==null?void 0:F.map(C=>({label:g.t(C.title),value:C.id})),value:v.type,onChange:y,className:ke.dataValidationDetailFormItem})}),U!=null&&U.length?N.jsx(J.FormLayout,{label:g.t("dataValidation.panel.operator"),children:N.jsx(J.Select,{options:U.map((C,E)=>({value:`${C}`,label:I[E]})),value:`${v.operator}`,onChange:C=>{D({..._,operator:C})},className:ke.dataValidationDetailFormItem})}):null,h?N.jsx(h,{isTwoFormula:w,value:{formula1:v.formula1,formula2:v.formula2},onChange:C=>{D({..._,...C})},showError:O,validResult:V.validatorFormula(v),unitId:a,subUnitId:r},i):null,N.jsx(Vn,{value:f,onChange:S,extraComponent:V.optionsInput}),N.jsxs("div",{className:ke.dataValidationDetailButtons,children:[N.jsx(J.Button,{className:ke.dataValidationDetailButton,onClick:R,children:g.t("dataValidation.panel.removeRule")}),N.jsx(J.Button,{className:ke.dataValidationDetailButton,type:"primary",onClick:L,children:g.t("dataValidation.panel.done")})]})]})}const ht={dataValidationItemContainer:"univer-data-validation-item-container",dataValidationItemTitle:"univer-data-validation-item-title",dataValidationItemContent:"univer-data-validation-item-content",dataValidationItemIcon:"univer-data-validation-item-icon"},En=i=>{const{rule:n,onClick:e,unitId:t,subUnitId:a}=i,r=ne.useDependency(H.DataValidatorRegistryService),o=ne.useDependency(l.ICommandService),s=ne.useDependency(se.IMarkSelectionService),u=r.getValidatorItem(n.type),c=X.useRef(),[d,p]=X.useState(!1),g=v=>{o.executeCommand(H.RemoveDataValidationCommand.id,{ruleId:n.uid,unitId:t,subUnitId:a}),v.stopPropagation()};return X.useEffect(()=>()=>{var v;c.current&&((v=c.current)==null||v.forEach(M=>{M&&s.removeShape(M)}))},[s]),N.jsxs("div",{className:ht.dataValidationItemContainer,onClick:e,onMouseEnter:()=>{p(!0),c.current=n.ranges.map(v=>s.addShape({range:v,style:{hasAutoFill:!1,fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:v.startColumn,endColumn:v.endColumn,startRow:v.startRow,endRow:v.endRow,actualRow:v.startRow,actualColumn:v.startColumn,isMerged:!1,isMergedMainCell:!1}}))},onMouseLeave:()=>{var v;p(!1),(v=c.current)==null||v.forEach(M=>{M&&s.removeShape(M)}),c.current=void 0},children:[N.jsx("div",{className:ht.dataValidationItemTitle,children:u==null?void 0:u.generateRuleName(n)}),N.jsx("div",{className:ht.dataValidationItemContent,children:n.ranges.map(v=>le.serializeRange(v)).join(",")}),d?N.jsx("div",{className:ht.dataValidationItemIcon,onClick:g,children:N.jsx(Ha,{})}):null]})},Qt={dataValidationListButtons:"univer-data-validation-list-buttons",dataValidationListButton:"univer-data-validation-list-button"},Fn=X.memo(()=>{var V,O;const i=ne.useDependency(l.IUniverInstanceService),n=ne.useDependency(H.DataValidationModel),e=ne.useDependency(l.ICommandService),t=ne.useDependency(z.Injector),a=ne.useDependency(Pe),r=(V=oe.useObservable(i.currentSheet$,i.getCurrentUniverSheetInstance()))!=null?V:i.getCurrentUniverSheetInstance(),o=ne.useDependency(l.LocaleService),[s,u]=X.useState([]),c=(O=oe.useObservable(r.activeSheet$,r.getActiveSheet()))!=null?O:r.getActiveSheet(),d=r.getUnitId(),p=c.getSheetId(),g=n.ensureManager(d,p);X.useEffect(()=>{u(g.getDataValidations());const b=g.dataValidations$.subscribe(F=>{u([...F])});return()=>{b.unsubscribe()}},[g]);const v=async()=>{const b=H.createDefaultNewRule(t),F={unitId:d,subUnitId:p,rule:b};await e.executeCommand(pt.id,F),a.setActiveRule({unitId:d,subUnitId:p,rule:b})},M=()=>{e.executeCommand(H.RemoveAllDataValidationCommand.id,{unitId:d,subUnitId:p})};return N.jsxs("div",{children:[s.map(b=>N.jsx(En,{unitId:d,subUnitId:p,onClick:()=>a.setActiveRule({unitId:d,subUnitId:p,rule:b}),rule:b},b.uid)),N.jsxs("div",{className:Qt.dataValidationListButtons,children:[s.length?N.jsx(J.Button,{className:Qt.dataValidationListButton,onClick:M,children:o.t("dataValidation.panel.removeAll")}):null,N.jsx(J.Button,{className:Qt.dataValidationListButton,type:"primary",onClick:v,children:o.t("dataValidation.panel.add")})]})]})}),An=()=>{const i=ne.useDependency(Pe),n=oe.useObservable(i.activeRule$,i.activeRule);return n?N.jsx(bn,{},n.rule.uid):N.jsx(Fn,{})};function ve(i){if(i===null)return"";if(i!=null&&i.p){const n=i==null?void 0:i.p.body;if(n==null)return"";const e=n.dataStream;return e.substring(e.length-2,e.length)===l.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return i==null?void 0:i.v}function Xe(i,n,e,t){var u,c,d;const a=new Set,r=i.unitId||e,o=(u=n.getUniverSheetInstance(r))!=null?u:n.getCurrentUniverSheetInstance(),s=(d=(c=o.getSheetBySheetName(i.sheetName))!=null?c:o.getSheetBySheetId(t))!=null?d:o.getActiveSheet();return l.Range.foreach(i.range,(p,g)=>{const v=s.getCellRaw(p,g);if(!v)return;const M=ve(v);if(M==null||M==="")return;Me(`${M}`).forEach(O=>{O&&a.add(`${M}`)})}),Array.from(a)}function Xa(i){return i.filter(Boolean).join(",")}function Me(i){return i.split(",").filter(Boolean)}function Pn(i){const n=ve(i);return n==null?"":n.toString()}const Be="SHEET_DATA_VALIDATION",Le="#ECECEC",Ve={dvListDropdown:"univer-dv-list-dropdown",dvListDropdownTitle:"univer-dv-list-dropdown-title",dvListDropdownList:"univer-dv-list-dropdown-list",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"},Ln=i=>{const{value:n,onChange:e,multiple:t,options:a,title:r,onEdit:o,style:s}=i;return N.jsxs("div",{className:Ve.dvListDropdown,style:s,children:[N.jsx("div",{className:Ve.dvListDropdownTitle,children:r}),N.jsx("div",{className:Ve.dvListDropdownList,children:a.map((u,c)=>{const d=n.indexOf(u.value)>-1,p=()=>{let g;d?g=new Set(n.filter(M=>M!==u.value)):g=new Set(t?[...n,u.value]:[u.value]);const v=[];a.forEach(M=>{g.has(M.value)&&v.push(M.value)}),e(v)};return N.jsxs("div",{className:Ve.dvListDropdownItemContainer,onClick:p,children:[N.jsx("div",{className:Ve.dvListDropdownItem,style:{background:u.color||Le},children:u.label}),N.jsx("div",{className:Ve.dvListDropdownSelectedIcon,children:d?N.jsx(gn,{}):null})]},c)})}),N.jsx("div",{className:Ve.dvListDropdownSplit}),N.jsx("div",{className:Ve.dvListDropdownEdit,onClick:o,children:"编辑"})]})};function Nn(i){var w,L;const{location:n,hideFn:e}=i,{worksheet:t,row:a,col:r,unitId:o,subUnitId:s}=n,u=ne.useDependency(l.ICommandService),c=ne.useDependency(l.LocaleService),[d,p]=X.useState(""),g=ne.useDependency(se.IEditorBridgeService),v=J.RectPopup.useContext(),M=v.right-v.left;if(!t)return null;const V=t.getCell(a,r),O=(w=V==null?void 0:V.dataValidation)==null?void 0:w.rule,b=(L=V==null?void 0:V.dataValidation)==null?void 0:L.validator,F=(O==null?void 0:O.renderMode)===l.DataValidationRenderMode.CUSTOM||(O==null?void 0:O.renderMode)===void 0;if(!V||!O||!b)return;const P=O.type===l.DataValidationType.LIST_MULTIPLE,j=b.getListWithColor(O,o,s),$=d||Pn(V),U=Me($),I=()=>{u.executeCommand(Ge.id,{ruleId:O.uid}),e()};return N.jsx(Ln,{style:{minWidth:M,maxWidth:Math.max(M,200)},title:P?c.t("dataValidation.listMultiple.dropdown"):c.t("dataValidation.list.dropdown"),value:U,multiple:P,onChange:T=>{const D=Xa(T),R={unitId:o,subUnitId:s,range:{startColumn:r,endColumn:r,startRow:a,endRow:a},value:{v:D,p:null,f:null,si:null}};g.isVisible()&&g.changeVisible({visible:!1,keycode:oe.KeyCode.ESC,eventType:fe.DeviceInputEventType.Keyboard}),u.executeCommand(he.SetRangeValuesCommand.id,R),p(D),P||e()},options:j.map(T=>({label:T.label,value:T.label,color:F?T.color:"transparent"})),onEdit:I})}var Qa={exports:{}};(function(i,n){(function(e,t){i.exports=t()})(ct,function(){var e=1e3,t=6e4,a=36e5,r="millisecond",o="second",s="minute",u="hour",c="day",d="week",p="month",g="quarter",v="year",M="date",V="Invalid Date",O=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|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,F={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(y){var h=["th","st","nd","rd"],m=y%100;return"["+y+(h[(m-20)%10]||h[m]||h[0])+"]"}},P=function(y,h,m){var f=String(y);return!f||f.length>=h?y:""+Array(h+1-f.length).join(m)+y},j={s:P,z:function(y){var h=-y.utcOffset(),m=Math.abs(h),f=Math.floor(m/60),S=m%60;return(h<=0?"+":"-")+P(f,2,"0")+":"+P(S,2,"0")},m:function y(h,m){if(h.date()<m.date())return-y(m,h);var f=12*(m.year()-h.year())+(m.month()-h.month()),S=h.clone().add(f,p),C=m-S<0,E=h.clone().add(f+(C?-1:1),p);return+(-(f+(m-S)/(C?S-E:E-S))||0)},a:function(y){return y<0?Math.ceil(y)||0:Math.floor(y)},p:function(y){return{M:p,y:v,w:d,d:c,D:M,h:u,m:s,s:o,ms:r,Q:g}[y]||String(y||"").toLowerCase().replace(/s$/,"")},u:function(y){return y===void 0}},$="en",U={};U[$]=F;var I="$isDayjsObject",w=function(y){return y instanceof R||!(!y||!y[I])},L=function y(h,m,f){var S;if(!h)return $;if(typeof h=="string"){var C=h.toLowerCase();U[C]&&(S=C),m&&(U[C]=m,S=C);var E=h.split("-");if(!S&&E.length>1)return y(E[0])}else{var x=h.name;U[x]=h,S=x}return!f&&S&&($=S),S||!f&&$},T=function(y,h){if(w(y))return y.clone();var m=typeof h=="object"?h:{};return m.date=y,m.args=arguments,new R(m)},D=j;D.l=L,D.i=w,D.w=function(y,h){return T(y,{locale:h.$L,utc:h.$u,x:h.$x,$offset:h.$offset})};var R=function(){function y(m){this.$L=L(m.locale,null,!0),this.parse(m),this.$x=this.$x||m.x||{},this[I]=!0}var h=y.prototype;return h.parse=function(m){this.$d=function(f){var S=f.date,C=f.utc;if(S===null)return new Date(NaN);if(D.u(S))return new Date;if(S instanceof Date)return new Date(S);if(typeof S=="string"&&!/Z$/i.test(S)){var E=S.match(O);if(E){var x=E[2]-1||0,q=(E[7]||"0").substring(0,3);return C?new Date(Date.UTC(E[1],x,E[3]||1,E[4]||0,E[5]||0,E[6]||0,q)):new Date(E[1],x,E[3]||1,E[4]||0,E[5]||0,E[6]||0,q)}}return new Date(S)}(m),this.init()},h.init=function(){var m=this.$d;this.$y=m.getFullYear(),this.$M=m.getMonth(),this.$D=m.getDate(),this.$W=m.getDay(),this.$H=m.getHours(),this.$m=m.getMinutes(),this.$s=m.getSeconds(),this.$ms=m.getMilliseconds()},h.$utils=function(){return D},h.isValid=function(){return this.$d.toString()!==V},h.isSame=function(m,f){var S=T(m);return this.startOf(f)<=S&&S<=this.endOf(f)},h.isAfter=function(m,f){return T(m)<this.startOf(f)},h.isBefore=function(m,f){return this.endOf(f)<T(m)},h.$g=function(m,f,S){return D.u(m)?this[f]:this.set(S,m)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(m,f){var S=this,C=!!D.u(f)||f,E=D.p(m),x=function(te,Z){var ee=D.w(S.$u?Date.UTC(S.$y,Z,te):new Date(S.$y,Z,te),S);return C?ee:ee.endOf(c)},q=function(te,Z){return D.w(S.toDate()[te].apply(S.toDate("s"),(C?[0,0,0,0]:[23,59,59,999]).slice(Z)),S)},Y=this.$W,B=this.$M,k=this.$D,K="set"+(this.$u?"UTC":"");switch(E){case v:return C?x(1,0):x(31,11);case p:return C?x(1,B):x(0,B+1);case d:var Q=this.$locale().weekStart||0,G=(Y<Q?Y+7:Y)-Q;return x(C?k-G:k+(6-G),B);case c:case M:return q(K+"Hours",0);case u:return q(K+"Minutes",1);case s:return q(K+"Seconds",2);case o:return q(K+"Milliseconds",3);default:return this.clone()}},h.endOf=function(m){return this.startOf(m,!1)},h.$set=function(m,f){var S,C=D.p(m),E="set"+(this.$u?"UTC":""),x=(S={},S[c]=E+"Date",S[M]=E+"Date",S[p]=E+"Month",S[v]=E+"FullYear",S[u]=E+"Hours",S[s]=E+"Minutes",S[o]=E+"Seconds",S[r]=E+"Milliseconds",S)[C],q=C===c?this.$D+(f-this.$W):f;if(C===p||C===v){var Y=this.clone().set(M,1);Y.$d[x](q),Y.init(),this.$d=Y.set(M,Math.min(this.$D,Y.daysInMonth())).$d}else x&&this.$d[x](q);return this.init(),this},h.set=function(m,f){return this.clone().$set(m,f)},h.get=function(m){return this[D.p(m)]()},h.add=function(m,f){var S,C=this;m=Number(m);var E=D.p(f),x=function(B){var k=T(C);return D.w(k.date(k.date()+Math.round(B*m)),C)};if(E===p)return this.set(p,this.$M+m);if(E===v)return this.set(v,this.$y+m);if(E===c)return x(1);if(E===d)return x(7);var q=(S={},S[s]=t,S[u]=a,S[o]=e,S)[E]||1,Y=this.$d.getTime()+m*q;return D.w(Y,this)},h.subtract=function(m,f){return this.add(-1*m,f)},h.format=function(m){var f=this,S=this.$locale();if(!this.isValid())return S.invalidDate||V;var C=m||"YYYY-MM-DDTHH:mm:ssZ",E=D.z(this),x=this.$H,q=this.$m,Y=this.$M,B=S.weekdays,k=S.months,K=S.meridiem,Q=function(Z,ee,ie,ae){return Z&&(Z[ee]||Z(f,C))||ie[ee].slice(0,ae)},G=function(Z){return D.s(x%12||12,Z,"0")},te=K||function(Z,ee,ie){var ae=Z<12?"AM":"PM";return ie?ae.toLowerCase():ae};return C.replace(b,function(Z,ee){return ee||function(ie){switch(ie){case"YY":return String(f.$y).slice(-2);case"YYYY":return D.s(f.$y,4,"0");case"M":return Y+1;case"MM":return D.s(Y+1,2,"0");case"MMM":return Q(S.monthsShort,Y,k,3);case"MMMM":return Q(k,Y);case"D":return f.$D;case"DD":return D.s(f.$D,2,"0");case"d":return String(f.$W);case"dd":return Q(S.weekdaysMin,f.$W,B,2);case"ddd":return Q(S.weekdaysShort,f.$W,B,3);case"dddd":return B[f.$W];case"H":return String(x);case"HH":return D.s(x,2,"0");case"h":return G(1);case"hh":return G(2);case"a":return te(x,q,!0);case"A":return te(x,q,!1);case"m":return String(q);case"mm":return D.s(q,2,"0");case"s":return String(f.$s);case"ss":return D.s(f.$s,2,"0");case"SSS":return D.s(f.$ms,3,"0");case"Z":return E}return null}(Z)||E.replace(":","")})},h.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},h.diff=function(m,f,S){var C,E=this,x=D.p(f),q=T(m),Y=(q.utcOffset()-this.utcOffset())*t,B=this-q,k=function(){return D.m(E,q)};switch(x){case v:C=k()/12;break;case p:C=k();break;case g:C=k()/3;break;case d:C=(B-Y)/6048e5;break;case c:C=(B-Y)/864e5;break;case u:C=B/a;break;case s:C=B/t;break;case o:C=B/e;break;default:C=B}return S?C:D.a(C)},h.daysInMonth=function(){return this.endOf(p).$D},h.$locale=function(){return U[this.$L]},h.locale=function(m,f){if(!m)return this.$L;var S=this.clone(),C=L(m,f,!0);return C&&(S.$L=C),S},h.clone=function(){return D.w(this.$d,this)},h.toDate=function(){return new Date(this.valueOf())},h.toJSON=function(){return this.isValid()?this.toISOString():null},h.toISOString=function(){return this.$d.toISOString()},h.toString=function(){return this.$d.toUTCString()},y}(),_=R.prototype;return T.prototype=_,[["$ms",r],["$s",o],["$m",s],["$H",u],["$W",c],["$M",p],["$y",v],["$D",M]].forEach(function(y){_[y[1]]=function(h){return this.$g(h,y[0],y[1])}}),T.extend=function(y,h){return y.$i||(y(h,R,T),y.$i=!0),T},T.locale=L,T.isDayjs=w,T.unix=function(y){return T(1e3*y)},T.en=U[$],T.Ls=U,T.p={},T})})(Qa);var jn=Qa.exports;const Ne=Pa(jn),Un={dvDateDropdown:"univer-dv-date-dropdown"};function xn(i){var b,F,P;const{location:n,hideFn:e}=i,{worksheet:t,row:a,col:r,unitId:o,subUnitId:s}=n,u=ne.useDependency(l.ICommandService),[c,d]=X.useState();if(!t)return null;const p=t.getCell(a,r),g=(b=p==null?void 0:p.dataValidation)==null?void 0:b.rule,v=(F=p==null?void 0:p.dataValidation)==null?void 0:F.validator;if(!p||!g||!v)return;const M=ve(p),V=(P=v.transformDate(M))!=null?P:Ne(),O=V.isValid()?V:Ne();return N.jsx("div",{className:Un.dvDateDropdown,children:N.jsx(J.DatePanel,{pickerValue:c!=null?c:O,onSelect:j=>{const $=j.format("YYYY/MM/DD");u.executeCommand(he.SetRangeValuesCommand.id,{unitId:o,subUnitId:s,range:{startColumn:r,endColumn:r,startRow:a,endRow:a},value:{v:$,p:null,f:null,si:null}}),e()},onPanelChange:j=>{d(j)}})})}const Zt="data-validation.list.dropdown",Za="data-validation.date.dropdown";function Wn(i){var u;const{unitId:n,subUnitId:e,value:t,onChange:a,showError:r,validResult:o}=i,s=r?o==null?void 0:o.formula1:"";return N.jsx(J.FormLayout,{error:s,children:N.jsx(oe.TextEditor,{value:(u=t==null?void 0:t.formula1)!=null?u:"",id:`dataValidation-custom-formula-${n}-${e}`,onChange:c=>{a==null||a({...t,formula1:c!=null?c:""})},onlyInputFormula:!0})})}const me={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"},$n=i=>{const{isTwoFormula:n=!1,value:e,onChange:t,showError:a,validResult:r}=i,o=ne.useDependency(l.LocaleService),s=a?r==null?void 0:r.formula1:"",u=a?r==null?void 0:r.formula2:"";return n?N.jsxs(N.Fragment,{children:[N.jsx(J.FormLayout,{error:s,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:c=>{t==null||t({...e,formula1:c})}})}),N.jsx("div",{className:me.dataValidationFormulaAnd,children:o.t("dataValidation.panel.formulaAnd")}),N.jsx(J.FormLayout,{error:u,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula2,onChange:c=>{t==null||t({...e,formula2:c})}})})]}):N.jsx(J.FormLayout,{error:s,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:c=>{t==null||t({formula1:c})}})})};var Jt={exports:{}},Ja={exports:{}};(function(i){function n(e){return e&&e.__esModule?e:{default:e}}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports})(Ja);var Qe=Ja.exports,er={exports:{}};(function(i){function n(e){"@babel/helpers - typeof";return i.exports=n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i.exports.__esModule=!0,i.exports.default=i.exports,n(e)}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports})(er);var je=er.exports,ea={exports:{}},tr;function Ze(){return tr||(tr=1,function(i){function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports}(ea)),ea.exports}var ta={exports:{}},aa={exports:{}},ra={exports:{}},ar;function kn(){return ar||(ar=1,function(i){var n=je.default;function e(t,a){if(n(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var o=r.call(t,a||"default");if(n(o)!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(t)}i.exports=e,i.exports.__esModule=!0,i.exports.default=i.exports}(ra)),ra.exports}var rr;function nr(){return rr||(rr=1,function(i){var n=je.default,e=kn();function t(a){var r=e(a,"string");return n(r)=="symbol"?r:r+""}i.exports=t,i.exports.__esModule=!0,i.exports.default=i.exports}(aa)),aa.exports}var ir;function Je(){return ir||(ir=1,function(i){var n=nr();function e(a,r){for(var o=0;o<r.length;o++){var s=r[o];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(a,n(s.key),s)}}function t(a,r,o){return r&&e(a.prototype,r),o&&e(a,o),Object.defineProperty(a,"prototype",{writable:!1}),a}i.exports=t,i.exports.__esModule=!0,i.exports.default=i.exports}(ta)),ta.exports}var na={exports:{}},ia={exports:{}},or;function mt(){return or||(or=1,function(i){function n(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports}(ia)),ia.exports}var sr;function vt(){return sr||(sr=1,function(i){var n=je.default,e=mt();function t(a,r){if(r&&(n(r)==="object"||typeof r=="function"))return r;if(r!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return e(a)}i.exports=t,i.exports.__esModule=!0,i.exports.default=i.exports}(na)),na.exports}var oa={exports:{}},lr;function gt(){return lr||(lr=1,function(i){function n(e){return i.exports=n=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(a){return a.__proto__||Object.getPrototypeOf(a)},i.exports.__esModule=!0,i.exports.default=i.exports,n(e)}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports}(oa)),oa.exports}var sa={exports:{}},la={exports:{}},ur;function Bn(){return ur||(ur=1,function(i){function n(e,t){return i.exports=n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},i.exports.__esModule=!0,i.exports.default=i.exports,n(e,t)}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports}(la)),la.exports}var cr;function _t(){return cr||(cr=1,function(i){var n=Bn();function e(t,a){if(typeof a!="function"&&a!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(a&&a.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),a&&n(t,a)}i.exports=e,i.exports.__esModule=!0,i.exports.default=i.exports}(sa)),sa.exports}var ua={exports:{}},dr;function St(){return dr||(dr=1,function(i){var n=nr();function e(t,a,r){return a=n(a),a in t?Object.defineProperty(t,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[a]=r,t}i.exports=e,i.exports.__esModule=!0,i.exports.default=i.exports}(ua)),ua.exports}var ca={exports:{}},da,fr;function qn(){if(fr)return da;fr=1;var i="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return da=i,da}var fa,pr;function Hn(){if(pr)return fa;pr=1;var i=qn();function n(){}function e(){}return e.resetWarningCache=n,fa=function(){function t(o,s,u,c,d,p){if(p!==i){var g=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw g.name="Invariant Violation",g}}t.isRequired=t;function a(){return t}var r={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:a,element:t,elementType:t,instanceOf:a,node:t,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:e,resetWarningCache:n};return r.PropTypes=r,r},fa}var hr;function yt(){return hr||(hr=1,ca.exports=Hn()()),ca.exports}var ye={},Dt={exports:{}},Rt={exports:{}},mr;function pa(){return mr||(mr=1,function(i,n){n.__esModule=!0,n.default=e;function e(t){var a={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[r]=0);return a}i.exports=n.default}(Rt,Rt.exports)),Rt.exports}var Mt={exports:{}},vr;function It(){return vr||(vr=1,function(i,n){n.__esModule=!0,n.default=e;function e(t){var a={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[r]=typeof t[r]=="number"?t[r]:t[r].val);return a}i.exports=n.default}(Mt,Mt.exports)),Mt.exports}var Ot={exports:{}},gr;function ha(){return gr||(gr=1,function(i,n){n.__esModule=!0,n.default=t;var e=[0,0];function t(a,r,o,s,u,c,d){var p=-u*(r-s),g=-c*o,v=p+g,M=o+v*a,V=r+M*a;return Math.abs(M)<d&&Math.abs(V-s)<d?(e[0]=s,e[1]=0,e):(e[0]=V,e[1]=M,e)}i.exports=n.default}(Ot,Ot.exports)),Ot.exports}var qe={exports:{}},_r;function ma(){return _r||(_r=1,function(){var i,n,e;typeof performance<"u"&&performance!==null&&performance.now?qe.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(qe.exports=function(){return(i()-e)/1e6},n=process.hrtime,i=function(){var t;return t=n(),t[0]*1e9+t[1]},e=i()):Date.now?(qe.exports=function(){return Date.now()-e},e=Date.now()):(qe.exports=function(){return new Date().getTime()-e},e=new Date().getTime())}.call(ct)),qe.exports}var et={exports:{}},He={exports:{}},Sr;function Yn(){return Sr||(Sr=1,function(){var i,n,e,t,a,r;typeof performance<"u"&&performance!==null&&performance.now?He.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(He.exports=function(){return(i()-a)/1e6},n=process.hrtime,i=function(){var o;return o=n(),o[0]*1e9+o[1]},t=i(),r=process.uptime()*1e9,a=t-r):Date.now?(He.exports=function(){return Date.now()-e},e=Date.now()):(He.exports=function(){return new Date().getTime()-e},e=new Date().getTime())}.call(ct)),He.exports}var yr;function va(){if(yr)return et.exports;yr=1;for(var i=Yn(),n=typeof window>"u"?ct:window,e=["moz","webkit"],t="AnimationFrame",a=n["request"+t],r=n["cancel"+t]||n["cancelRequest"+t],o=0;!a&&o<e.length;o++)a=n[e[o]+"Request"+t],r=n[e[o]+"Cancel"+t]||n[e[o]+"CancelRequest"+t];if(!a||!r){var s=0,u=0,c=[],d=1e3/60;a=function(p){if(c.length===0){var g=i(),v=Math.max(0,d-(g-s));s=v+g,setTimeout(function(){var M=c.slice(0);c.length=0;for(var V=0;V<M.length;V++)if(!M[V].cancelled)try{M[V].callback(s)}catch(O){setTimeout(function(){throw O},0)}},Math.round(v))}return c.push({handle:++u,callback:p,cancelled:!1}),u},r=function(p){for(var g=0;g<c.length;g++)c[g].handle===p&&(c[g].cancelled=!0)}}return et.exports=function(p){return a.call(n,p)},et.exports.cancel=function(){r.apply(n,arguments)},et.exports.polyfill=function(p){p||(p=n),p.requestAnimationFrame=a,p.cancelAnimationFrame=r},et.exports}var wt={exports:{}},Dr;function ga(){return Dr||(Dr=1,function(i,n){n.__esModule=!0,n.default=e;function e(t,a,r){for(var o in a)if(Object.prototype.hasOwnProperty.call(a,o)){if(r[o]!==0)return!1;var s=typeof a[o]=="number"?a[o]:a[o].val;if(t[o]!==s)return!1}return!0}i.exports=n.default}(wt,wt.exports)),wt.exports}var Rr;function zn(){return Rr||(Rr=1,function(i,n){n.__esModule=!0;var e=Object.assign||function(L){for(var T=1;T<arguments.length;T++){var D=arguments[T];for(var R in D)Object.prototype.hasOwnProperty.call(D,R)&&(L[R]=D[R])}return L},t=function(){function L(T,D){for(var R=0;R<D.length;R++){var _=D[R];_.enumerable=_.enumerable||!1,_.configurable=!0,"value"in _&&(_.writable=!0),Object.defineProperty(T,_.key,_)}}return function(T,D,R){return D&&L(T.prototype,D),R&&L(T,R),T}}();function a(L){return L&&L.__esModule?L:{default:L}}function r(L,T){if(!(L instanceof T))throw new TypeError("Cannot call a class as a function")}function o(L,T){if(typeof T!="function"&&T!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof T);L.prototype=Object.create(T&&T.prototype,{constructor:{value:L,enumerable:!1,writable:!0,configurable:!0}}),T&&(Object.setPrototypeOf?Object.setPrototypeOf(L,T):L.__proto__=T)}var s=pa(),u=a(s),c=It(),d=a(c),p=ha(),g=a(p),v=ma(),M=a(v),V=va(),O=a(V),b=ga(),F=a(b),P=X,j=a(P),$=yt(),U=a($),I=1e3/60,w=function(L){o(T,L),t(T,null,[{key:"propTypes",value:{defaultStyle:U.default.objectOf(U.default.number),style:U.default.objectOf(U.default.oneOfType([U.default.number,U.default.object])).isRequired,children:U.default.func.isRequired,onRest:U.default.func},enumerable:!0}]);function T(D){var R=this;r(this,T),L.call(this,D),this.wasAnimating=!1,this.animationID=null,this.prevTime=0,this.accumulatedTime=0,this.unreadPropStyle=null,this.clearUnreadPropStyle=function(_){var y=!1,h=R.state,m=h.currentStyle,f=h.currentVelocity,S=h.lastIdealStyle,C=h.lastIdealVelocity;for(var E in _)if(Object.prototype.hasOwnProperty.call(_,E)){var x=_[E];typeof x=="number"&&(y||(y=!0,m=e({},m),f=e({},f),S=e({},S),C=e({},C)),m[E]=x,f[E]=0,S[E]=x,C[E]=0)}y&&R.setState({currentStyle:m,currentVelocity:f,lastIdealStyle:S,lastIdealVelocity:C})},this.startAnimationIfNecessary=function(){R.animationID=O.default(function(_){var y=R.props.style;if(F.default(R.state.currentStyle,y,R.state.currentVelocity)){R.wasAnimating&&R.props.onRest&&R.props.onRest(),R.animationID=null,R.wasAnimating=!1,R.accumulatedTime=0;return}R.wasAnimating=!0;var h=_||M.default(),m=h-R.prevTime;if(R.prevTime=h,R.accumulatedTime=R.accumulatedTime+m,R.accumulatedTime>I*10&&(R.accumulatedTime=0),R.accumulatedTime===0){R.animationID=null,R.startAnimationIfNecessary();return}var f=(R.accumulatedTime-Math.floor(R.accumulatedTime/I)*I)/I,S=Math.floor(R.accumulatedTime/I),C={},E={},x={},q={};for(var Y in y)if(Object.prototype.hasOwnProperty.call(y,Y)){var B=y[Y];if(typeof B=="number")x[Y]=B,q[Y]=0,C[Y]=B,E[Y]=0;else{for(var k=R.state.lastIdealStyle[Y],K=R.state.lastIdealVelocity[Y],Q=0;Q<S;Q++){var G=g.default(I/1e3,k,K,B.val,B.stiffness,B.damping,B.precision);k=G[0],K=G[1]}var te=g.default(I/1e3,k,K,B.val,B.stiffness,B.damping,B.precision),Z=te[0],ee=te[1];x[Y]=k+(Z-k)*f,q[Y]=K+(ee-K)*f,C[Y]=k,E[Y]=K}}R.animationID=null,R.accumulatedTime-=S*I,R.setState({currentStyle:x,currentVelocity:q,lastIdealStyle:C,lastIdealVelocity:E}),R.unreadPropStyle=null,R.startAnimationIfNecessary()})},this.state=this.defaultState()}return T.prototype.defaultState=function(){var R=this.props,_=R.defaultStyle,y=R.style,h=_||d.default(y),m=u.default(h);return{currentStyle:h,currentVelocity:m,lastIdealStyle:h,lastIdealVelocity:m}},T.prototype.componentDidMount=function(){this.prevTime=M.default(),this.startAnimationIfNecessary()},T.prototype.componentWillReceiveProps=function(R){this.unreadPropStyle!=null&&this.clearUnreadPropStyle(this.unreadPropStyle),this.unreadPropStyle=R.style,this.animationID==null&&(this.prevTime=M.default(),this.startAnimationIfNecessary())},T.prototype.componentWillUnmount=function(){this.animationID!=null&&(O.default.cancel(this.animationID),this.animationID=null)},T.prototype.render=function(){var R=this.props.children(this.state.currentStyle);return R&&j.default.Children.only(R)},T}(j.default.Component);n.default=w,i.exports=n.default}(Dt,Dt.exports)),Dt.exports}var Ct={exports:{}},Mr;function Kn(){return Mr||(Mr=1,function(i,n){n.__esModule=!0;var e=Object.assign||function(T){for(var D=1;D<arguments.length;D++){var R=arguments[D];for(var _ in R)Object.prototype.hasOwnProperty.call(R,_)&&(T[_]=R[_])}return T},t=function(){function T(D,R){for(var _=0;_<R.length;_++){var y=R[_];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(D,y.key,y)}}return function(D,R,_){return R&&T(D.prototype,R),_&&T(D,_),D}}();function a(T){return T&&T.__esModule?T:{default:T}}function r(T,D){if(!(T instanceof D))throw new TypeError("Cannot call a class as a function")}function o(T,D){if(typeof D!="function"&&D!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof D);T.prototype=Object.create(D&&D.prototype,{constructor:{value:T,enumerable:!1,writable:!0,configurable:!0}}),D&&(Object.setPrototypeOf?Object.setPrototypeOf(T,D):T.__proto__=D)}var s=pa(),u=a(s),c=It(),d=a(c),p=ha(),g=a(p),v=ma(),M=a(v),V=va(),O=a(V),b=ga(),F=a(b),P=X,j=a(P),$=yt(),U=a($),I=1e3/60;function w(T,D,R){for(var _=0;_<T.length;_++)if(!F.default(T[_],D[_],R[_]))return!1;return!0}var L=function(T){o(D,T),t(D,null,[{key:"propTypes",value:{defaultStyles:U.default.arrayOf(U.default.objectOf(U.default.number)),styles:U.default.func.isRequired,children:U.default.func.isRequired},enumerable:!0}]);function D(R){var _=this;r(this,D),T.call(this,R),this.animationID=null,this.prevTime=0,this.accumulatedTime=0,this.unreadPropStyles=null,this.clearUnreadPropStyle=function(y){for(var h=_.state,m=h.currentStyles,f=h.currentVelocities,S=h.lastIdealStyles,C=h.lastIdealVelocities,E=!1,x=0;x<y.length;x++){var q=y[x],Y=!1;for(var B in q)if(Object.prototype.hasOwnProperty.call(q,B)){var k=q[B];typeof k=="number"&&(Y||(Y=!0,E=!0,m[x]=e({},m[x]),f[x]=e({},f[x]),S[x]=e({},S[x]),C[x]=e({},C[x])),m[x][B]=k,f[x][B]=0,S[x][B]=k,C[x][B]=0)}}E&&_.setState({currentStyles:m,currentVelocities:f,lastIdealStyles:S,lastIdealVelocities:C})},this.startAnimationIfNecessary=function(){_.animationID=O.default(function(y){var h=_.props.styles(_.state.lastIdealStyles);if(w(_.state.currentStyles,h,_.state.currentVelocities)){_.animationID=null,_.accumulatedTime=0;return}var m=y||M.default(),f=m-_.prevTime;if(_.prevTime=m,_.accumulatedTime=_.accumulatedTime+f,_.accumulatedTime>I*10&&(_.accumulatedTime=0),_.accumulatedTime===0){_.animationID=null,_.startAnimationIfNecessary();return}for(var S=(_.accumulatedTime-Math.floor(_.accumulatedTime/I)*I)/I,C=Math.floor(_.accumulatedTime/I),E=[],x=[],q=[],Y=[],B=0;B<h.length;B++){var k=h[B],K={},Q={},G={},te={};for(var Z in k)if(Object.prototype.hasOwnProperty.call(k,Z)){var ee=k[Z];if(typeof ee=="number")K[Z]=ee,Q[Z]=0,G[Z]=ee,te[Z]=0;else{for(var ie=_.state.lastIdealStyles[B][Z],ae=_.state.lastIdealVelocities[B][Z],ue=0;ue<C;ue++){var ce=g.default(I/1e3,ie,ae,ee.val,ee.stiffness,ee.damping,ee.precision);ie=ce[0],ae=ce[1]}var de=g.default(I/1e3,ie,ae,ee.val,ee.stiffness,ee.damping,ee.precision),re=de[0],pe=de[1];K[Z]=ie+(re-ie)*S,Q[Z]=ae+(pe-ae)*S,G[Z]=ie,te[Z]=ae}}q[B]=K,Y[B]=Q,E[B]=G,x[B]=te}_.animationID=null,_.accumulatedTime-=C*I,_.setState({currentStyles:q,currentVelocities:Y,lastIdealStyles:E,lastIdealVelocities:x}),_.unreadPropStyles=null,_.startAnimationIfNecessary()})},this.state=this.defaultState()}return D.prototype.defaultState=function(){var _=this.props,y=_.defaultStyles,h=_.styles,m=y||h().map(d.default),f=m.map(function(S){return u.default(S)});return{currentStyles:m,currentVelocities:f,lastIdealStyles:m,lastIdealVelocities:f}},D.prototype.componentDidMount=function(){this.prevTime=M.default(),this.startAnimationIfNecessary()},D.prototype.componentWillReceiveProps=function(_){this.unreadPropStyles!=null&&this.clearUnreadPropStyle(this.unreadPropStyles),this.unreadPropStyles=_.styles(this.state.lastIdealStyles),this.animationID==null&&(this.prevTime=M.default(),this.startAnimationIfNecessary())},D.prototype.componentWillUnmount=function(){this.animationID!=null&&(O.default.cancel(this.animationID),this.animationID=null)},D.prototype.render=function(){var _=this.props.children(this.state.currentStyles);return _&&j.default.Children.only(_)},D}(j.default.Component);n.default=L,i.exports=n.default}(Ct,Ct.exports)),Ct.exports}var Vt={exports:{}},Tt={exports:{}},Ir;function Gn(){return Ir||(Ir=1,function(i,n){n.__esModule=!0,n.default=e;function e(t,a,r){for(var o={},s=0;s<t.length;s++)o[t[s].key]=s;for(var u={},s=0;s<a.length;s++)u[a[s].key]=s;for(var c=[],s=0;s<a.length;s++)c[s]=a[s];for(var s=0;s<t.length;s++)if(!Object.prototype.hasOwnProperty.call(u,t[s].key)){var d=r(s,t[s]);d!=null&&c.push(d)}return c.sort(function(p,g){var v=u[p.key],M=u[g.key],V=o[p.key],O=o[g.key];if(v!=null&&M!=null)return u[p.key]-u[g.key];if(V!=null&&O!=null)return o[p.key]-o[g.key];if(v!=null){for(var b=0;b<a.length;b++){var F=a[b].key;if(Object.prototype.hasOwnProperty.call(o,F)){if(v<u[F]&&O>o[F])return-1;if(v>u[F]&&O<o[F])return 1}}return 1}for(var b=0;b<a.length;b++){var F=a[b].key;if(Object.prototype.hasOwnProperty.call(o,F)){if(M<u[F]&&V>o[F])return 1;if(M>u[F]&&V<o[F])return-1}}return-1})}i.exports=n.default}(Tt,Tt.exports)),Tt.exports}var Or;function Xn(){return Or||(Or=1,function(i,n){n.__esModule=!0;var e=Object.assign||function(y){for(var h=1;h<arguments.length;h++){var m=arguments[h];for(var f in m)Object.prototype.hasOwnProperty.call(m,f)&&(y[f]=m[f])}return y},t=function(){function y(h,m){for(var f=0;f<m.length;f++){var S=m[f];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(h,S.key,S)}}return function(h,m,f){return m&&y(h.prototype,m),f&&y(h,f),h}}();function a(y){return y&&y.__esModule?y:{default:y}}function r(y,h){if(!(y instanceof h))throw new TypeError("Cannot call a class as a function")}function o(y,h){if(typeof h!="function"&&h!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof h);y.prototype=Object.create(h&&h.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),h&&(Object.setPrototypeOf?Object.setPrototypeOf(y,h):y.__proto__=h)}var s=pa(),u=a(s),c=It(),d=a(c),p=ha(),g=a(p),v=Gn(),M=a(v),V=ma(),O=a(V),b=va(),F=a(b),P=ga(),j=a(P),$=X,U=a($),I=yt(),w=a(I),L=1e3/60;function T(y,h,m){var f=h;return f==null?y.map(function(S,C){return{key:S.key,data:S.data,style:m[C]}}):y.map(function(S,C){for(var E=0;E<f.length;E++)if(f[E].key===S.key)return{key:f[E].key,data:f[E].data,style:m[C]};return{key:S.key,data:S.data,style:m[C]}})}function D(y,h,m,f){if(f.length!==h.length)return!1;for(var S=0;S<f.length;S++)if(f[S].key!==h[S].key)return!1;for(var S=0;S<f.length;S++)if(!j.default(y[S],h[S].style,m[S]))return!1;return!0}function R(y,h,m,f,S,C,E,x,q){for(var Y=M.default(f,S,function(ue,ce){var de=h(ce);return de==null?(m({key:ce.key,data:ce.data}),null):j.default(C[ue],de,E[ue])?(m({key:ce.key,data:ce.data}),null):{key:ce.key,data:ce.data,style:de}}),B=[],k=[],K=[],Q=[],G=0;G<Y.length;G++){for(var te=Y[G],Z=null,ee=0;ee<f.length;ee++)if(f[ee].key===te.key){Z=ee;break}if(Z==null){var ie=y(te);B[G]=ie,K[G]=ie;var ae=u.default(te.style);k[G]=ae,Q[G]=ae}else B[G]=C[Z],K[G]=x[Z],k[G]=E[Z],Q[G]=q[Z]}return[Y,B,k,K,Q]}var _=function(y){o(h,y),t(h,null,[{key:"propTypes",value:{defaultStyles:w.default.arrayOf(w.default.shape({key:w.default.string.isRequired,data:w.default.any,style:w.default.objectOf(w.default.number).isRequired})),styles:w.default.oneOfType([w.default.func,w.default.arrayOf(w.default.shape({key:w.default.string.isRequired,data:w.default.any,style:w.default.objectOf(w.default.oneOfType([w.default.number,w.default.object])).isRequired}))]).isRequired,children:w.default.func.isRequired,willEnter:w.default.func,willLeave:w.default.func,didLeave:w.default.func},enumerable:!0},{key:"defaultProps",value:{willEnter:function(f){return d.default(f.style)},willLeave:function(){return null},didLeave:function(){}},enumerable:!0}]);function h(m){var f=this;r(this,h),y.call(this,m),this.unmounting=!1,this.animationID=null,this.prevTime=0,this.accumulatedTime=0,this.unreadPropStyles=null,this.clearUnreadPropStyle=function(S){for(var C=R(f.props.willEnter,f.props.willLeave,f.props.didLeave,f.state.mergedPropsStyles,S,f.state.currentStyles,f.state.currentVelocities,f.state.lastIdealStyles,f.state.lastIdealVelocities),E=C[0],x=C[1],q=C[2],Y=C[3],B=C[4],k=0;k<S.length;k++){var K=S[k].style,Q=!1;for(var G in K)if(Object.prototype.hasOwnProperty.call(K,G)){var te=K[G];typeof te=="number"&&(Q||(Q=!0,x[k]=e({},x[k]),q[k]=e({},q[k]),Y[k]=e({},Y[k]),B[k]=e({},B[k]),E[k]={key:E[k].key,data:E[k].data,style:e({},E[k].style)}),x[k][G]=te,q[k][G]=0,Y[k][G]=te,B[k][G]=0,E[k].style[G]=te)}}f.setState({currentStyles:x,currentVelocities:q,mergedPropsStyles:E,lastIdealStyles:Y,lastIdealVelocities:B})},this.startAnimationIfNecessary=function(){f.unmounting||(f.animationID=F.default(function(S){if(!f.unmounting){var C=f.props.styles,E=typeof C=="function"?C(T(f.state.mergedPropsStyles,f.unreadPropStyles,f.state.lastIdealStyles)):C;if(D(f.state.currentStyles,E,f.state.currentVelocities,f.state.mergedPropsStyles)){f.animationID=null,f.accumulatedTime=0;return}var x=S||O.default(),q=x-f.prevTime;if(f.prevTime=x,f.accumulatedTime=f.accumulatedTime+q,f.accumulatedTime>L*10&&(f.accumulatedTime=0),f.accumulatedTime===0){f.animationID=null,f.startAnimationIfNecessary();return}for(var Y=(f.accumulatedTime-Math.floor(f.accumulatedTime/L)*L)/L,B=Math.floor(f.accumulatedTime/L),k=R(f.props.willEnter,f.props.willLeave,f.props.didLeave,f.state.mergedPropsStyles,E,f.state.currentStyles,f.state.currentVelocities,f.state.lastIdealStyles,f.state.lastIdealVelocities),K=k[0],Q=k[1],G=k[2],te=k[3],Z=k[4],ee=0;ee<K.length;ee++){var ie=K[ee].style,ae={},ue={},ce={},de={};for(var re in ie)if(Object.prototype.hasOwnProperty.call(ie,re)){var pe=ie[re];if(typeof pe=="number")ae[re]=pe,ue[re]=0,ce[re]=pe,de[re]=0;else{for(var be=te[ee][re],Ee=Z[ee][re],Yt=0;Yt<B;Yt++){var Ke=g.default(L/1e3,be,Ee,pe.val,pe.stiffness,pe.damping,pe.precision);be=Ke[0],Ee=Ke[1]}var we=g.default(L/1e3,be,Ee,pe.val,pe.stiffness,pe.damping,pe.precision),ut=we[0],We=we[1];ae[re]=be+(ut-be)*Y,ue[re]=Ee+(We-Ee)*Y,ce[re]=be,de[re]=Ee}}te[ee]=ce,Z[ee]=de,Q[ee]=ae,G[ee]=ue}f.animationID=null,f.accumulatedTime-=B*L,f.setState({currentStyles:Q,currentVelocities:G,lastIdealStyles:te,lastIdealVelocities:Z,mergedPropsStyles:K}),f.unreadPropStyles=null,f.startAnimationIfNecessary()}}))},this.state=this.defaultState()}return h.prototype.defaultState=function(){var f=this.props,S=f.defaultStyles,C=f.styles,E=f.willEnter,x=f.willLeave,q=f.didLeave,Y=typeof C=="function"?C(S):C,B=void 0;S==null?B=Y:B=S.map(function(ae){for(var ue=0;ue<Y.length;ue++)if(Y[ue].key===ae.key)return Y[ue];return ae});var k=S==null?Y.map(function(ae){return d.default(ae.style)}):S.map(function(ae){return d.default(ae.style)}),K=S==null?Y.map(function(ae){return u.default(ae.style)}):S.map(function(ae){return u.default(ae.style)}),Q=R(E,x,q,B,Y,k,K,k,K),G=Q[0],te=Q[1],Z=Q[2],ee=Q[3],ie=Q[4];return{currentStyles:te,currentVelocities:Z,lastIdealStyles:ee,lastIdealVelocities:ie,mergedPropsStyles:G}},h.prototype.componentDidMount=function(){this.prevTime=O.default(),this.startAnimationIfNecessary()},h.prototype.componentWillReceiveProps=function(f){this.unreadPropStyles&&this.clearUnreadPropStyle(this.unreadPropStyles);var S=f.styles;typeof S=="function"?this.unreadPropStyles=S(T(this.state.mergedPropsStyles,this.unreadPropStyles,this.state.lastIdealStyles)):this.unreadPropStyles=S,this.animationID==null&&(this.prevTime=O.default(),this.startAnimationIfNecessary())},h.prototype.componentWillUnmount=function(){this.unmounting=!0,this.animationID!=null&&(F.default.cancel(this.animationID),this.animationID=null)},h.prototype.render=function(){var f=T(this.state.mergedPropsStyles,this.unreadPropStyles,this.state.currentStyles),S=this.props.children(f);return S&&U.default.Children.only(S)},h}(U.default.Component);n.default=_,i.exports=n.default}(Vt,Vt.exports)),Vt.exports}var bt={exports:{}},Et={exports:{}},wr;function Cr(){return wr||(wr=1,function(i,n){n.__esModule=!0,n.default={noWobble:{stiffness:170,damping:26},gentle:{stiffness:120,damping:14},wobbly:{stiffness:180,damping:12},stiff:{stiffness:210,damping:20}},i.exports=n.default}(Et,Et.exports)),Et.exports}var Vr;function Qn(){return Vr||(Vr=1,function(i,n){n.__esModule=!0;var e=Object.assign||function(u){for(var c=1;c<arguments.length;c++){var d=arguments[c];for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(u[p]=d[p])}return u};n.default=s;function t(u){return u&&u.__esModule?u:{default:u}}var a=Cr(),r=t(a),o=e({},r.default.noWobble,{precision:.01});function s(u,c){return e({},o,c,{val:u})}i.exports=n.default}(bt,bt.exports)),bt.exports}var Ft={exports:{}},Tr;function Zn(){return Tr||(Tr=1,function(i,n){n.__esModule=!0,n.default=e;function e(){}i.exports=n.default}(Ft,Ft.exports)),Ft.exports}var br;function Jn(){if(br)return ye;br=1,ye.__esModule=!0;function i(u){return u&&u.__esModule?u.default:u}var n=zn();ye.Motion=i(n);var e=Kn();ye.StaggeredMotion=i(e);var t=Xn();ye.TransitionMotion=i(t);var a=Qn();ye.spring=i(a);var r=Cr();ye.presets=i(r);var o=It();ye.stripStyle=i(o);var s=Zn();return ye.reorderKeys=i(s),ye}var At={exports:{}},Er;function ei(){return Er||(Er=1,function(i,n){Object.defineProperty(n,"__esModule",{value:!0});function e(I){return typeof I=="object"&&!("toString"in I)?Object.prototype.toString.call(I).slice(8,-1):I}var t=typeof process=="object"&&!0;function a(I,w){if(!I)throw t?new Error("Invariant failed"):new Error(w())}n.invariant=a;var r=Object.prototype.hasOwnProperty,o=Array.prototype.splice,s=Object.prototype.toString;function u(I){return s.call(I).slice(8,-1)}var c=Object.assign||function(I,w){return d(w).forEach(function(L){r.call(w,L)&&(I[L]=w[L])}),I},d=typeof Object.getOwnPropertySymbols=="function"?function(I){return Object.keys(I).concat(Object.getOwnPropertySymbols(I))}:function(I){return Object.keys(I)};function p(I){return Array.isArray(I)?c(I.constructor(I.length),I):u(I)==="Map"?new Map(I):u(I)==="Set"?new Set(I):I&&typeof I=="object"?c(Object.create(Object.getPrototypeOf(I)),I):I}var g=function(){function I(){this.commands=c({},v),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(w,L){return w===L},this.update.newContext=function(){return new I().update}}return Object.defineProperty(I.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(w){this.update.isEquals=w},enumerable:!0,configurable:!0}),I.prototype.extend=function(w,L){this.commands[w]=L},I.prototype.update=function(w,L){var T=this,D=typeof L=="function"?{$apply:L}:L;Array.isArray(w)&&Array.isArray(D)||a(!Array.isArray(D),function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."}),a(typeof D=="object"&&D!==null,function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the "+("following commands: "+Object.keys(T.commands).join(", ")+".")});var R=w;return d(D).forEach(function(_){if(r.call(T.commands,_)){var y=w===R;R=T.commands[_](D[_],R,D,w),y&&T.isEquals(R,w)&&(R=w)}else{var h=u(w)==="Map"?T.update(w.get(_),D[_]):T.update(w[_],D[_]),m=u(R)==="Map"?R.get(_):R[_];(!T.isEquals(h,m)||typeof h>"u"&&!r.call(w,_))&&(R===w&&(R=p(w)),u(R)==="Map"?R.set(_,h):R[_]=h)}}),R},I}();n.Context=g;var v={$push:function(I,w,L){return V(w,L,"$push"),I.length?w.concat(I):w},$unshift:function(I,w,L){return V(w,L,"$unshift"),I.length?I.concat(w):w},$splice:function(I,w,L,T){return b(w,L),I.forEach(function(D){F(D),w===T&&D.length&&(w=p(T)),o.apply(w,D)}),w},$set:function(I,w,L){return j(L),I},$toggle:function(I,w){O(I,"$toggle");var L=I.length?p(w):w;return I.forEach(function(T){L[T]=!w[T]}),L},$unset:function(I,w,L,T){return O(I,"$unset"),I.forEach(function(D){Object.hasOwnProperty.call(w,D)&&(w===T&&(w=p(T)),delete w[D])}),w},$add:function(I,w,L,T){return U(w,"$add"),O(I,"$add"),u(w)==="Map"?I.forEach(function(D){var R=D[0],_=D[1];w===T&&w.get(R)!==_&&(w=p(T)),w.set(R,_)}):I.forEach(function(D){w===T&&!w.has(D)&&(w=p(T)),w.add(D)}),w},$remove:function(I,w,L,T){return U(w,"$remove"),O(I,"$remove"),I.forEach(function(D){w===T&&w.has(D)&&(w=p(T)),w.delete(D)}),w},$merge:function(I,w,L,T){return $(w,I),d(I).forEach(function(D){I[D]!==w[D]&&(w===T&&(w=p(T)),w[D]=I[D])}),w},$apply:function(I,w){return P(I),I(w)}},M=new g;n.isEquals=M.update.isEquals,n.extend=M.extend,n.default=M.update,n.default.default=i.exports=c(n.default,n);function V(I,w,L){a(Array.isArray(I),function(){return"update(): expected target of "+e(L)+" to be an array; got "+e(I)+"."}),O(w[L],L)}function O(I,w){a(Array.isArray(I),function(){return"update(): expected spec of "+e(w)+" to be an array; got "+e(I)+". Did you forget to wrap your parameter in an array?"})}function b(I,w){a(Array.isArray(I),function(){return"Expected $splice target to be an array; got "+e(I)}),F(w.$splice)}function F(I){a(Array.isArray(I),function(){return"update(): expected spec of $splice to be an array of arrays; got "+e(I)+". Did you forget to wrap your parameters in an array?"})}function P(I){a(typeof I=="function",function(){return"update(): expected spec of $apply to be a function; got "+e(I)+"."})}function j(I){a(Object.keys(I).length===1,function(){return"Cannot have more than one key in an object with $set"})}function $(I,w){a(w&&typeof w=="object",function(){return"update(): $merge expects a spec of type 'object'; got "+e(w)}),a(I&&typeof I=="object",function(){return"update(): $merge expects a target of type 'object'; got "+e(I)})}function U(I,w){var L=u(I);a(L==="Map"||L==="Set",function(){return"update(): "+e(w)+" expects a target of type Set or Map; got "+e(L)})}}(At,At.exports)),At.exports}var _a={},Fr;function ti(){return Fr||(Fr=1,function(i){var n=Qe;Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var e=n(Ze()),t=n(Je()),a=n(St()),r=function(){function o(){(0,e.default)(this,o),(0,a.default)(this,"map",new Map),(0,a.default)(this,"_refFns",new Map)}return(0,t.default)(o,[{key:"ref",value:function(u){var c=this,d=this._refFns.get(u);if(d)return d;var p=function g(v){v==null?(c._refFns.delete(u),c.map.delete(u)):(c._refFns.set(u,g),c.map.set(u,v))};return p}}]),o}();i.default=r}(_a)),_a}var Pt={exports:{}},Ar;function ai(){return Ar||(Ar=1,function(i,n){var e=Qe,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(Ze()),r=e(Je()),o=e(vt()),s=e(gt()),u=e(_t()),c=p(X);function d(M){if(typeof WeakMap!="function")return null;var V=new WeakMap,O=new WeakMap;return(d=function(F){return F?O:V})(M)}function p(M,V){if(!V&&M&&M.__esModule)return M;if(M===null||t(M)!="object"&&typeof M!="function")return{default:M};var O=d(V);if(O&&O.has(M))return O.get(M);var b={__proto__:null},F=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var P in M)if(P!=="default"&&Object.prototype.hasOwnProperty.call(M,P)){var j=F?Object.getOwnPropertyDescriptor(M,P):null;j&&(j.get||j.set)?Object.defineProperty(b,P,j):b[P]=M[P]}return b.default=M,O&&O.set(M,b),b}function g(M,V,O){return V=(0,s.default)(V),(0,o.default)(M,v()?Reflect.construct(V,O||[],(0,s.default)(M).constructor):V.apply(M,O))}function v(){try{var M=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(v=function(){return!!M})()}n.default=function(M){(0,u.default)(V,M);function V(){return(0,a.default)(this,V),g(this,V,arguments)}return(0,r.default)(V,[{key:"componentDidUpdate",value:function(){this.props.cb()}},{key:"render",value:function(){return null}}]),V}(c.Component),i.exports=n.default,i.exports.default=n.default}(Pt,Pt.exports)),Pt.exports}var Lt={exports:{}},Nt={exports:{}},Pr;function ri(){return Pr||(Pr=1,function(i,n){var e=Qe,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(Ze()),r=e(Je()),o=e(vt()),s=e(gt()),u=e(mt()),c=e(_t()),d=e(St()),p=v(X);function g(O){if(typeof WeakMap!="function")return null;var b=new WeakMap,F=new WeakMap;return(g=function(j){return j?F:b})(O)}function v(O,b){if(!b&&O&&O.__esModule)return O;if(O===null||t(O)!="object"&&typeof O!="function")return{default:O};var F=g(b);if(F&&F.has(O))return F.get(O);var P={__proto__:null},j=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var $ in O)if($!=="default"&&Object.prototype.hasOwnProperty.call(O,$)){var U=j?Object.getOwnPropertyDescriptor(O,$):null;U&&(U.get||U.set)?Object.defineProperty(P,$,U):P[$]=O[$]}return P.default=O,F&&F.set(O,P),P}function M(O,b,F){return b=(0,s.default)(b),(0,o.default)(O,V()?Reflect.construct(b,F||[],(0,s.default)(O).constructor):b.apply(O,F))}function V(){try{var O=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(V=function(){return!!O})()}n.default=function(O){(0,c.default)(b,O);function b(){var F;(0,a.default)(this,b);for(var P=arguments.length,j=new Array(P),$=0;$<P;$++)j[$]=arguments[$];return F=M(this,b,[].concat(j)),(0,d.default)((0,u.default)(F),"_templateSetter",function(U){F._template=U}),F}return(0,r.default)(b,[{key:"shouldComponentUpdate",value:function(P){return this.props.anySelected!==P.anySelected||this.props.itemSelected!==P.itemSelected||this.props.item!==P.item||this.props.template!==P.template||this.props.commonProps!==P.commonProps}},{key:"getTemplate",value:function(){return this._template}},{key:"render",value:function(){var P=this.props,j=P.item,$=P.itemSelected,U=P.anySelected,I=P.dragHandleProps,w=P.commonProps,L=this.props.template;return p.createElement(L,{ref:this._templateSetter,item:j,itemSelected:$,anySelected:U,dragHandleProps:I,commonProps:w})}}]),b}(p.Component),i.exports=n.default,i.exports.default=n.default}(Nt,Nt.exports)),Nt.exports}var Lr;function ni(){return Lr||(Lr=1,function(i,n){var e=Qe,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(Ze()),r=e(Je()),o=e(vt()),s=e(gt()),u=e(mt()),c=e(_t()),d=e(St()),p=M(X),g=e(ri());function v(b){if(typeof WeakMap!="function")return null;var F=new WeakMap,P=new WeakMap;return(v=function($){return $?P:F})(b)}function M(b,F){if(!F&&b&&b.__esModule)return b;if(b===null||t(b)!="object"&&typeof b!="function")return{default:b};var P=v(F);if(P&&P.has(b))return P.get(b);var j={__proto__:null},$=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var U in b)if(U!=="default"&&Object.prototype.hasOwnProperty.call(b,U)){var I=$?Object.getOwnPropertyDescriptor(b,U):null;I&&(I.get||I.set)?Object.defineProperty(j,U,I):j[U]=b[U]}return j.default=b,P&&P.set(b,j),j}function V(b,F,P){return F=(0,s.default)(F),(0,o.default)(b,O()?Reflect.construct(F,P||[],(0,s.default)(b).constructor):F.apply(b,P))}function O(){try{var b=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(O=function(){return!!b})()}n.default=function(b){(0,c.default)(F,b);function F(){var P;(0,a.default)(this,F);for(var j=arguments.length,$=new Array(j),U=0;U<j;U++)$[U]=arguments[U];return P=V(this,F,[].concat($)),(0,d.default)((0,u.default)(P),"_templateContainer",p.createRef()),(0,d.default)((0,u.default)(P),"_el",p.createRef()),(0,d.default)((0,u.default)(P),"_dragHandleProps",P.props.makeDragHandleProps(function(){return P.props.y})),P}return(0,r.default)(F,[{key:"getDOMNode",value:function(){return this._el.current}},{key:"getTemplate",value:function(){return this._templateContainer.current.getTemplate()}},{key:"shouldComponentUpdate",value:function(j){return this.props.anySelected!==j.anySelected||this.props.itemSelected!==j.itemSelected||this.props.item!==j.item||this.props.template!==j.template||this.props.y!==j.y||this.props.height!==j.height||this.props.zIndex!==j.zIndex||this.props.commonProps!==j.commonProps}},{key:"render",value:function(){var j=this.props,$=j.item,U=j.y,I=j.padding,w=j.itemSelected,L=j.anySelected,T=j.height,D=j.zIndex,R=j.template,_=j.commonProps;return p.createElement("div",{ref:this._el,style:{position:U==null?"relative":"absolute",boxSizing:"border-box",left:"0px",right:"0px",top:U==null?"0px":"".concat(U,"px"),marginBottom:"".concat(I,"px"),height:U==null?"auto":"".concat(L*(T.drag-T.natural)+T.natural,"px"),zIndex:D}},p.createElement(g.default,{ref:this._templateContainer,item:$,template:R,itemSelected:w,anySelected:L,dragHandleProps:this._dragHandleProps,commonProps:_}))}}]),F}(p.Component),i.exports=n.default,i.exports.default=n.default}(Lt,Lt.exports)),Lt.exports}(function(i,n){var e=Qe,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(Ze()),r=e(Je()),o=e(vt()),s=e(gt()),u=e(mt()),c=e(_t()),d=e(St()),p=P(X),g=P(yt()),v=Jn(),M=e(ei()),V=e(ti()),O=e(ai()),b=e(ni());function F(D){if(typeof WeakMap!="function")return null;var R=new WeakMap,_=new WeakMap;return(F=function(h){return h?_:R})(D)}function P(D,R){if(!R&&D&&D.__esModule)return D;if(D===null||t(D)!="object"&&typeof D!="function")return{default:D};var _=F(R);if(_&&_.has(D))return _.get(D);var y={__proto__:null},h=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var m in D)if(m!=="default"&&Object.prototype.hasOwnProperty.call(D,m)){var f=h?Object.getOwnPropertyDescriptor(D,m):null;f&&(f.get||f.set)?Object.defineProperty(y,m,f):y[m]=D[m]}return y.default=D,_&&_.set(D,y),y}function j(D,R){var _=Object.keys(D);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(D);R&&(y=y.filter(function(h){return Object.getOwnPropertyDescriptor(D,h).enumerable})),_.push.apply(_,y)}return _}function $(D){for(var R=1;R<arguments.length;R++){var _=arguments[R]!=null?arguments[R]:{};R%2?j(Object(_),!0).forEach(function(y){(0,d.default)(D,y,_[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(_)):j(Object(_)).forEach(function(y){Object.defineProperty(D,y,Object.getOwnPropertyDescriptor(_,y))})}return D}function U(D,R,_){return R=(0,s.default)(R),(0,o.default)(D,I()?Reflect.construct(R,_||[],(0,s.default)(D).constructor):R.apply(D,_))}function I(){try{var D=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(I=function(){return!!D})()}var w={natural:200,drag:30};function L(D,R,_){return Math.round(R-R/_*D)}var T=n.default=function(D){(0,c.default)(R,D);function R(){var _;(0,a.default)(this,R);for(var y=arguments.length,h=new Array(y),m=0;m<y;m++)h[m]=arguments[m];return _=U(this,R,[].concat(h)),(0,d.default)((0,u.default)(_),"_itemRefs",new V.default),(0,d.default)((0,u.default)(_),"_listRef",p.createRef()),(0,d.default)((0,u.default)(_),"state",{useAbsolutePositioning:!1,dragging:!1,lastDrag:null,heights:null}),(0,d.default)((0,u.default)(_),"_handleTouchMove",function(f){f.preventDefault(),_._handleMouseMove(f.touches[0])}),(0,d.default)((0,u.default)(_),"_handleMouseMove",function(f){var S=f.pageY,C=f.clientY,E=_.props.list,x=_.props.autoScrollMaxSpeed,q=_.props.autoScrollRegionSize,Y=_.state,B=Y.dragging,k=Y.lastDrag;if(!(!B||!k)){var K=_._getContainer(),Q=_._getDragVisualIndex(),G=_._getKeyFn();if(clearInterval(_._autoScrollerTimer),Q!==0&&Q!==E.length-1){var te=0,Z=K&&K!==document.body&&K.getBoundingClientRect?K.getBoundingClientRect():{top:0,bottom:1/0},ee=Math.max(0,Z.top),ie=C-ee;if(ie>0&&ie<q)te=-1*L(ie,x,q);else{var ae=Math.min(window.innerHeight,Z.bottom),ue=ae-C;ue>0&&ue<q&&(te=L(ue,x,q))}te!==0&&(_._scrollContainer(te),_._autoScrollerTimer=setTimeout(function(){_._handleMouseMove({pageY:S+(K===document.body?te:0),clientY:C})},16))}var ce=!K||K===document.body?0:K.scrollTop,de=S-k.mouseOffset+ce;if(_.props.constrainDrag){var re=_._getVisualListDuringDrag();de=Math.max(de,_._getDistanceFromTopDuringDrag(k,G(re[0]),re)),de=Math.min(de,_._getDistanceFromTopDuringDrag(k,G(re[re.length-1]),re))}_.setState({lastDrag:$($({},k),{},{mouseY:de})})}}),(0,d.default)((0,u.default)(_),"_handleMouseUp",function(){clearInterval(_._autoScrollerTimer),window.removeEventListener("mouseup",_._handleMouseUp),window.removeEventListener("touchend",_._handleMouseUp),window.removeEventListener("touchmove",_._handleTouchMove),window.removeEventListener("mousemove",_._handleMouseMove),document.documentElement&&(document.documentElement.style.cursor=""),_._lastScrollDelta=0;var f=_.props,S=f.list,C=f.onMoveEnd,E=f.onDragEnd,x=_.state,q=x.dragging,Y=x.lastDrag;if(q&&Y&&C){var B=_._getDragListIndex(),k=_._getDragVisualIndex();if(E&&E(S[B]),B!==k){var K=_._getVisualListDuringDrag();C(K,S[B],B,k)}_.setState({dragging:!1})}}),(0,d.default)((0,u.default)(_),"_lastScrollDelta",0),_}return(0,r.default)(R,[{key:"getItemInstance",value:function(y){var h=this._itemRefs.map.get(y);if(!h)throw new Error("key not found");return h.getTemplate()}},{key:"componentWillUnmount",value:function(){this._handleMouseUp()}},{key:"_handleTouchStart",value:function(y,h,m){m.stopPropagation(),this._handleStartDrag(y,h,m.touches[0].pageY)}},{key:"_handleMouseDown",value:function(y,h,m){m.preventDefault(),this._handleStartDrag(y,h,m.pageY)}},{key:"_handleStartDrag",value:function(y,h,m){var f=this;document.documentElement&&(document.documentElement.style.cursor="move"),window.addEventListener("mouseup",this._handleMouseUp),window.addEventListener("touchend",this._handleMouseUp),window.addEventListener("touchmove",this._handleTouchMove),window.addEventListener("mousemove",this._handleMouseMove);var S=this._getKeyFn();if(this.props.onDragStart){var C=this.props.list,E=C[R._getIndexOfItemWithKey(S,C,y)];this.props.onDragStart(E)}{var x=this._listRef.current;if(!x)throw new Error("Should not happen");x.contains&&document.activeElement&&x.contains(document.activeElement)&&document.activeElement instanceof HTMLElement&&document.activeElement.blur()}var q=null;if(this.state.heights==null){var Y=Object.create(null);this.props.list.forEach(function(k){var K=S(k),Q=f._itemRefs.map.get(K),G=Q?Q.getDOMNode().firstElementChild:null,te=Q?Q.getTemplate():null,Z=G instanceof HTMLElement?G.offsetHeight:w.natural,ee=te&&typeof te.getDragHeight=="function"&&te.getDragHeight()||Z;Y[K]={natural:Z,drag:ee}}),q=Y}var B=function(){var K=R._getIndexOfItemWithKey(S,f.props.list,y),Q=h==null?f._getDistance(0,K,!1):h,G=f._getContainer(),te=!G||G===document.body?0:G.scrollTop;f.setState({useAbsolutePositioning:!0,dragging:!0,lastDrag:{itemKey:y,startY:Q,mouseY:Q,mouseOffset:m-Q+te}})};q?this.setState({heights:q},B):B()}},{key:"_scrollContainer",value:function(y){var h=this._getContainer();h&&(window.scrollBy&&h===document.body?window.scrollBy(0,y):h.scrollTop+=y)}},{key:"_adjustScrollAtEnd",value:function(y){var h=Math.round(y-this._lastScrollDelta);this._scrollContainer(h),this._lastScrollDelta+=h}},{key:"_getDragListIndex",value:function(){var y=this.props.list,h=this.state.lastDrag;if(!h)throw new Error("No drag happened");var m=this._getKeyFn();return R._getIndexOfItemWithKey(m,y,h.itemKey)}},{key:"_getDragVisualIndex",value:function(){var y=this.props.list,h=this.props.padding,m=this.state,f=m.dragging,S=m.lastDrag;if(!f||!S)throw new Error("Should not happen");var C=this._getDragListIndex(),E=S.mouseY,x=S.startY,q=E-x,Y=q>0?1:q<0?-1:0,B=C;if(Y!==0)for(var k=this._getKeyFn(),K=Math.abs(q),Q=C+Y;Q<y.length&&Q>=0;Q+=Y){var G=this._getItemHeight(k(y[Q])).drag;if(K<G/2+h)break;K-=G+h,B=Q}return B}},{key:"_getVisualListDuringDrag",value:function(){var y=this.props.list,h=this.state,m=h.dragging,f=h.lastDrag;if(!m||!f)throw new Error("Should not happen: _getVisualListDuringDrag called outside of drag");var S=this._getDragListIndex(),C=this._getDragVisualIndex();return(0,M.default)(y,{$splice:[[S,1],[C,0,y[S]]]})}},{key:"_getItemHeight",value:function(y){return this.state.heights!=null&&y in this.state.heights?this.state.heights[y]:w}},{key:"_getDistance",value:function(y,h,m){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:this.props.list;if(h<y)return-this._getDistance(h,y,m,f);for(var S=this.props.padding,C=this._getKeyFn(),E=0,x=y;x<h;x++){var q=this._getItemHeight(C(f[x]));E+=(m?q.drag:q.natural)+S}return E}},{key:"_getDistanceFromTopDuringDrag",value:function(y,h,m){var f=this._getKeyFn(),S=R._getIndexOfItemWithKey(f,m,h),C=this._getDragListIndex(),E=R._getIndexOfItemWithKey(f,m,y.itemKey),x=0;if(E<C){var q=this._getItemHeight(y.itemKey),Y=this._getItemHeight(f(m[C]));x=q.drag-Y.drag}return y.startY+x+this._getDistance(C,S,!0,m)}},{key:"_getContainer",value:function(){var y=this.props.container;return y?y():null}},{key:"_getKeyFn",value:function(){return R._getKeyFn(this.props.itemKey)}},{key:"render",value:function(){var y=this,h=this.props.padding,m=this.props,f=m.list,S=m.springConfig,C=m.container,E=m.template,x=m.unsetZIndex,q=m.commonProps,Y=this.state,B=Y.dragging,k=Y.lastDrag,K=Y.useAbsolutePositioning,Q=this._getKeyFn(),G=(0,v.spring)(B?1:0,S),te=B?this._getVisualListDuringDrag():f,Z=f.map(function(ce,de){var re=Q(ce),pe=B&&k&&k.itemKey===re?{itemSelected:(0,v.spring)(1,S),y:k.mouseY}:{itemSelected:(0,v.spring)(0,S),y:(K?v.spring:function(Ke){return Ke})(B&&k?y._getDistanceFromTopDuringDrag(k,re,te):y._getDistance(0,de,!1),S)},be=$({anySelected:G},pe),Ee=function(we){return{onMouseDown:function(We){return y._handleMouseDown(re,we(),We)},onTouchStart:function(We){return y._handleTouchStart(re,we(),We)}}},Yt=y._getItemHeight(re);return p.createElement(v.Motion,{style:be,key:re,children:function(we){var ut=we.itemSelected,We=we.anySelected,xo=we.y;return p.createElement(b.default,{ref:y._itemRefs.ref(re),y:K?xo:void 0,template:E,padding:h,item:ce,itemSelected:ut,anySelected:We,height:Yt,zIndex:x&&!K?"auto":k&&k.itemKey===re?f.length:de,makeDragHandleProps:Ee,commonProps:q})}})}),ee=0;if(!B&&k&&K){var ie=this._getDragListIndex();ee=(0,v.spring)(this._getDistance(0,ie,!1)-k.mouseY,S)}var ae=0,ue=0;return f.length&&(ue=h,K&&(ae=this._getDistance(0,f.length,!1)-h)),p.createElement("div",{style:{position:"relative"},ref:this._listRef},p.createElement(v.Motion,{style:{adjustScroll:ee,anySelected:G},onRest:function(){B||y.setState({heights:null,useAbsolutePositioning:!1})},children:function(de){var re=de.adjustScroll;return p.createElement("div",{style:{display:K?"block":"none",height:"".concat(ae,"px"),marginBottom:"".concat(ue,"px")}},C&&p.createElement(O.default,{cb:function(){!B&&k&&K&&y._adjustScrollAtEnd(re)}}))}}),Z)}}],[{key:"getDerivedStateFromProps",value:function(y,h){var m=y.list,f=h.lastDrag;if(f){var S=R._getKeyFn(y.itemKey);try{R._getIndexOfItemWithKey(S,m,f.itemKey)}catch{return{dragging:!1,lastDrag:null}}}return null}},{key:"_getIndexOfItemWithKey",value:function(y,h,m){for(var f=0,S=h.length;f<S;f++)if(y(h[f])===m)return f;throw new Error("Failed to find drag index")}},{key:"_getKeyFn",value:function(y){return typeof y=="function"?y:function(h){return h[y]}}}]),R}(p.Component);(0,d.default)(T,"propTypes",{itemKey:g.oneOfType([g.string,g.func]).isRequired,template:g.func,list:g.array.isRequired,onMoveEnd:g.func,container:g.func,springConfig:g.object,constrainDrag:g.bool,padding:g.number,unsetZIndex:g.bool,autoScrollMaxSpeed:g.number.isRequired,autoScrollRegionSize:g.number.isRequired,commonProps:g.object}),(0,d.default)(T,"defaultProps",{springConfig:{stiffness:300,damping:50},padding:10,unsetZIndex:!1,constrainDrag:!1,autoScrollMaxSpeed:15,autoScrollRegionSize:30}),i.exports=n.default,i.exports.default=n.default})(Jt,Jt.exports);var ii=Jt.exports;const Nr=Pa(ii);function oi(i){return Number.isNaN(i.startColumn)||Number.isNaN(i.endColumn)||Number.isNaN(i.startRow)||Number.isNaN(i.endRow)}const si=["#FFFFFF","#FEE7E7","#FEF0E6","#EFFBD0","#E4F4FE","#E8ECFD","#F1EAFA","#FDE8F3","#E5E5E5","#FDCECE","#FDC49B","#DEF6A2","#9FDAFF","#D0D9FB","#E3D5F6","#FBD0E8","#656565","#FE4B4B","#FF8C51","#8BBB11","#0B9EFB","#3A60F7","#9E6DE3","#F248A6"],li=i=>{const{value:n,onChange:e,disabled:t}=i,[a,r]=X.useState(!1);return N.jsx(J.Select,{disabled:t,open:a,onDropdownVisibleChange:r,dropdownStyle:{width:112},className:me.dataValidationFormulaColorSelect,value:n,onChange:e,labelRender:o=>N.jsx("div",{className:me.dataValidationFormulaColorItem,style:{background:o.value}}),dropdownRender:()=>N.jsx("div",{className:me.dataValidationFormulaColorSelectPanel,children:si.map(o=>N.jsx("div",{onClick:()=>{e(o),r(!1)},className:me.dataValidationFormulaColorItem,style:{background:o}},o))})})},jr=i=>{const{item:n,dragHandleProps:e,commonProps:t}=i,{onMouseDown:a,onTouchStart:r}=e,{onItemChange:o,onItemDelete:s}=t;return N.jsxs("div",{className:me.dataValidationFormulaListItem,children:[n.isRef?null:N.jsx("div",{className:me.dataValidationFormulaListItemDrag,onTouchStart:u=>{u.preventDefault(),r(u)},onMouseDown:u=>{a(u)},children:N.jsx(Cn,{})}),N.jsx(li,{value:n.color,onChange:u=>{o(n.id,n.label,u)}}),N.jsx(J.Input,{disabled:n.isRef,value:n.label,onChange:u=>{o(n.id,u,n.color)}}),n.isRef?null:N.jsx("div",{className:me.dataValidationFormulaListItemIcon,children:N.jsx(Ha,{onClick:()=>s(n.id)})})]})};function ui(i){const{value:n,onChange:e=()=>{},unitId:t,subUnitId:a,validResult:r,showError:o}=i,{formula1:s="",formula2:u=""}=n||{},c=X.useRef(null),[d,p]=X.useState(()=>le.isReferenceString(s)?"1":"0"),[g,v]=X.useState(d==="1"?s:""),M=ne.useDependency(l.LocaleService),V=ne.useDependency(l.IUniverInstanceService),O=V.getCurrentUniverSheetInstance(),b=O.getActiveSheet(),[F,P]=X.useState(()=>u.split(",")),j=o?r==null?void 0:r.formula1:"",$=oe.useEvent(e),[U,I]=X.useState(()=>{const h=d!=="1"?Me(s):[],m=u.split(",");return h.map((f,S)=>({label:f,color:m[S]||Le,isRef:!1,id:l.Tools.generateRandomId(4)}))}),w=(h,m,f)=>{const S=U.find(C=>C.id===h);S&&(S.label=m,S.color=f,I([...U]))},L=h=>{const m=U.findIndex(f=>f.id===h);m!==-1&&(U.splice(m,1),I([...U]))},T=X.useMemo(()=>Xe(le.deserializeRangeWithSheet(g),V,O.getUnitId(),b.getSheetId()),[g,V,O,b]),D=u.split(","),R=X.useMemo(()=>T.map((h,m)=>({label:h,color:D[m]||Le,id:`${m}`,isRef:!0})),[D,T]),_=(h,m,f)=>{const S=[...F];S[+h]=f,P(S),$({formula1:s,formula2:S.join(",")})},y=()=>{I([...U,{label:"",color:Le,isRef:!1,id:l.Tools.generateRandomId(4)}])};return X.useEffect(()=>{const h=new Set,m=[];U.map(f=>({labelList:f.label.split(","),item:f})).forEach(({item:f,labelList:S})=>{S.forEach(C=>{h.has(C)||(h.add(C),m.push({label:C,color:f.color}))})}),$({formula1:Xa(m.map(f=>f.label)),formula2:m.map(f=>f.color===Le?"":f.color).join(",")})},[U,$]),N.jsxs(N.Fragment,{children:[N.jsx(J.FormLayout,{label:M.t("dataValidation.list.options"),children:N.jsxs(J.RadioGroup,{value:d,onChange:h=>p(h),children:[N.jsx(J.Radio,{value:"0",children:M.t("dataValidation.list.customOptions")}),N.jsx(J.Radio,{value:"1",children:M.t("dataValidation.list.refOptions")})]})}),d==="1"?N.jsxs(N.Fragment,{children:[N.jsx(J.FormLayout,{error:j,children:N.jsx(oe.RangeSelector,{id:`list-ref-range-${t}-${a}`,value:g,openForSheetUnitId:t,openForSheetSubUnitId:a,onChange:h=>{var f,S;const m=h[0];if(!m||oi(m.range))$==null||$({formula1:"",formula2:u}),v("");else{const C=(f=V.getUniverSheetInstance(m.unitId))!=null?f:V.getCurrentUniverSheetInstance(),E=(S=C==null?void 0:C.getSheetBySheetId(m.sheetId))!=null?S:C.getActiveSheet(),x=le.serializeRangeWithSheet(E.getName(),m.range);$==null||$({formula1:x,formula2:u}),v(x)}},isSingleChoice:!0})}),N.jsx(J.FormLayout,{children:N.jsx("div",{ref:c,children:N.jsx(Nr,{itemKey:"id",template:jr,list:R,container:()=>c.current,commonProps:{onItemChange:_}})})})]}):N.jsx(J.FormLayout,{error:j,children:N.jsxs("div",{ref:c,children:[N.jsx(Nr,{itemKey:"id",template:jr,list:U,onMoveEnd:h=>{I(h)},container:()=>c.current,commonProps:{onItemChange:w,onItemDelete:L}}),N.jsxs("a",{className:me.dataValidationFormulaListAdd,onClick:y,children:[N.jsx(Dn,{}),M.t("dataValidation.list.add")]})]})})]})}function ci(i){const{value:n,onChange:e,showError:t,validResult:a}=i,r=ne.useDependency(l.LocaleService),o=t?a==null?void 0:a.formula1:"",s=t?a==null?void 0:a.formula2:"",[u,c]=X.useState(!((n==null?void 0:n.formula1)===void 0&&(n==null?void 0:n.formula2)===void 0));return N.jsxs(N.Fragment,{children:[N.jsx(J.FormLayout,{children:N.jsx(J.Checkbox,{checked:u,onChange:d=>{d?c(!0):(c(!1),e==null||e({...n,formula1:void 0,formula2:void 0}))},children:r.t("dataValidation.checkbox.tips")})}),u?N.jsx(J.FormLayout,{label:r.t("dataValidation.checkbox.checked"),error:o,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:r.t("dataValidation.panel.formulaPlaceholder"),value:n==null?void 0:n.formula1,onChange:d=>{e==null||e({...n,formula1:d})}})}):null,u?N.jsx(J.FormLayout,{label:r.t("dataValidation.checkbox.unchecked"),error:s,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:r.t("dataValidation.panel.formulaPlaceholder"),value:n==null?void 0:n.formula2,onChange:d=>{e==null||e({...n,formula2:d})}})}):null]})}const Ur="data-validation.custom-formula-input",tt="data-validation.formula-input",Sa="data-validation.list-formula-input",xr="data-validation.checkbox-formula-input",di=[[Ur,Wn],[tt,$n],[Sa,ui],[xr,ci]],fi="LIST_RENDER_MODE_OPTION_INPUT";function jt(i){var a;const{value:n,onChange:e}=i,t=ne.useDependency(l.LocaleService);return N.jsx(J.FormLayout,{label:t.t("dataValidation.renderMode.label"),children:N.jsxs(J.RadioGroup,{value:`${(a=n.renderMode)!=null?a:l.DataValidationRenderMode.CUSTOM}`,onChange:r=>e({...n,renderMode:+r}),children:[N.jsx(J.Radio,{value:`${l.DataValidationRenderMode.CUSTOM}`,children:t.t("dataValidation.renderMode.chip")}),N.jsx(J.Radio,{value:`${l.DataValidationRenderMode.ARROW}`,children:t.t("dataValidation.renderMode.arrow")}),N.jsx(J.Radio,{value:`${l.DataValidationRenderMode.TEXT}`,children:t.t("dataValidation.renderMode.text")})]})})}jt.componentKey=fi;const Wr="data-validation-single",ya="sheet.menu.data-validation";function pi(i){return{id:ya,type:oe.MenuItemType.SUBITEMS,positions:[oe.MenuPosition.TOOLBAR_START],group:oe.MenuGroup.TOOLBAR_FORMULAS_INSERT,icon:Wr,tooltip:"dataValidation.title",hidden$:oe.getMenuHiddenObservable(i,l.UniverInstanceType.SHEET)}}function hi(i){return{id:Ge.id,title:"dataValidation.panel.title",type:oe.MenuItemType.BUTTON,positions:[ya]}}function mi(i){return{id:Gt.id,title:"dataValidation.panel.add",type:oe.MenuItemType.BUTTON,positions:[ya]}}var vi=Object.defineProperty,gi=Object.getOwnPropertyDescriptor,_i=(i,n,e,t)=>{for(var a=t>1?void 0:t?gi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&vi(n,e,a),a},Se=(i,n)=>(e,t)=>n(e,t,i);const Si={tr:{size:6,color:"#fe4b4b"}};A.DataValidationRenderController=class extends l.RxDisposable{constructor(n,e,t,a,r,o,s,u,c,d,p){super(),this._componentManager=n,this._menuService=e,this._dataValidationModel=t,this._sheetSkeletonManagerService=a,this._renderManagerService=r,this._univerInstanceService=o,this._dataValidatorRegistryService=s,this._editorBridgeService=u,this._dropdownManagerService=c,this._sheetInterceptorService=d,this._injector=p,this._init()}_init(){this._initComponents(),this._initMenu(),this._initSkeletonChange(),this._initDropdown(),this._initViewModelIntercept()}_initMenu(){[pi,hi,mi].forEach(n=>{this.disposeWithMe(this._menuService.addMenuItem(n(this._injector)))})}_initComponents(){[[Ua,An],[ja,sn],[Zt,Nn],[Za,xn],[jt.componentKey,jt],...di].forEach(([n,e])=>{this.disposeWithMe(this._componentManager.register(n,e))})}_initDropdown(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(n=>{if(!n.visible)return;const e=this._editorBridgeService.getEditCellState();if(e){const{unitId:t,sheetId:a,row:r,column:o}=e,s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const c=this._dataValidationModel.ensureManager(t,a).getRuleByLocation(r,o);if(!c)return;const d=this._dataValidatorRegistryService.getValidatorItem(c.type);if(!(d!=null&&d.dropdown))return;const p=s.getActiveSheet(),g=this._dropdownManagerService.activeDropdown,v=g==null?void 0:g.location;if(v&&v.unitId===t&&v.subUnitId===a&&v.row===r&&v.col===o)return;this._dropdownManagerService.showDropdown({location:{unitId:t,subUnitId:a,row:r,col:o,workbook:s,worksheet:p},componentKey:d.dropdown,onHide:()=>{}})}}))}_initSkeletonChange(){const n=()=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),a=e.getActiveSheet().getSheetId(),r=this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:t,sheetId:a}),o=this._renderManagerService.getRenderById(t);r==null||r.makeDirty(!0),r==null||r.calculate(),o&&o.mainComponent.makeForceDirty()};this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(()=>{n()})),this.disposeWithMe(this._dataValidationModel.validStatusChange$.subscribe(()=>{n()}))}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(he.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(n,e,t)=>{var P,j,$,U;const{row:a,col:r,unitId:o,subUnitId:s}=e,u=this._dataValidationModel.ensureManager(o,s),c=(P=this._sheetSkeletonManagerService.getCurrent())==null?void 0:P.skeleton;if(!u||!c)return t(n);const d=e.workbook.getStyles(),p=(typeof(n==null?void 0:n.s)=="string"?d.get(n==null?void 0:n.s):n==null?void 0:n.s)||{},g=u.getRuleIdByLocation(a,r);if(!g)return t(n);const v=u.getRuleById(g);if(!v)return t(n);const M=e.worksheet.getCellRaw(e.row,e.col),V=this._dataValidationModel.validator(ve(M),v,e),O=this._dataValidatorRegistryService.getValidatorItem(v.type),b=ve(n);let F={};if((v.type===l.DataValidationType.LIST||v.type===l.DataValidationType.LIST_MULTIPLE)&&(F={interceptorStyle:{...n==null?void 0:n.interceptorStyle,tb:(j=p.tb!==l.WrapStrategy.OVERFLOW?p.tb:l.WrapStrategy.CLIP)!=null?j:l.WrapStrategy.WRAP}}),v.type===l.DataValidationType.CHECKBOX){const{formula2:I}=O.parseFormulaSync(v,e.unitId,e.subUnitId);b||(F={v:I,t:1,p:null,interceptorStyle:{...n==null?void 0:n.interceptorStyle,tb:l.WrapStrategy.CLIP}})}if(v.type===l.DataValidationType.LIST&&(v.renderMode===l.DataValidationRenderMode.ARROW||v.renderMode===l.DataValidationRenderMode.TEXT)){const I=O.getListWithColorMap(v),w=`${($=ve(n))!=null?$:""}`,L=I[w];L&&(F={...F,interceptorStyle:{...F.interceptorStyle,bg:{rgb:L}}})}return t({...n,...F,dataValidation:{ruleId:g,validStatus:V,rule:v,validator:O},markers:{...n==null?void 0:n.markers,...V===l.DataValidationStatus.INVALID?Si:null},customRender:[...(U=n==null?void 0:n.customRender)!=null?U:[],...O!=null&&O.canvasRender?[O.canvasRender]:[]],fontRenderExtension:{...n==null?void 0:n.fontRenderExtension,isSkip:O==null?void 0:O.skipDefaultFontRender(v,b,e)},interceptorStyle:{...n==null?void 0:n.interceptorStyle,...F.interceptorStyle},get interceptorAutoHeight(){var L,T,D,R;const I=c.mergeData.find(_=>{const{startColumn:y,startRow:h,endColumn:m,endRow:f}=_;return a>=h&&r>=y&&a<=f&&r<=m}),w={data:{...n,dataValidation:{ruleId:g,validStatus:V,rule:v,validator:O}},style:c.getsStyles().getStyleByCell(n),primaryWithCoord:c.getCellByIndex((L=I==null?void 0:I.startRow)!=null?L:a,(T=I==null?void 0:I.startColumn)!=null?T:r),unitId:o,subUnitId:s,row:a,col:r};return(R=(D=O==null?void 0:O.canvasRender)==null?void 0:D.calcCellAutoHeight)==null?void 0:R.call(D,w)}})}}))}},A.DataValidationRenderController=_i([l.OnLifecycle(l.LifecycleStages.Rendered,A.DataValidationRenderController),Se(0,z.Inject(oe.ComponentManager)),Se(1,oe.IMenuService),Se(2,z.Inject(H.DataValidationModel)),Se(3,z.Inject(se.SheetSkeletonManagerService)),Se(4,fe.IRenderManagerService),Se(5,l.IUniverInstanceService),Se(6,z.Inject(H.DataValidatorRegistryService)),Se(7,se.IEditorBridgeService),Se(8,z.Inject(Ae)),Se(9,z.Inject(he.SheetInterceptorService)),Se(10,z.Inject(z.Injector))],A.DataValidationRenderController);var yi=Object.defineProperty,Di=Object.getOwnPropertyDescriptor,Ri=(i,n,e,t)=>{for(var a=t>1?void 0:t?Di(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&yi(n,e,a),a},Mi=(i,n)=>(e,t)=>n(e,t,i);A.SheetDataValidationService=class{constructor(n){W(this,"_currentManager");W(this,"_currentManager$",new ge.Subject);W(this,"currentManager$",this._currentManager$.asObservable());this._dataValidationModel=n}get currentManager(){return this._currentManager}_ensureManager(n,e){return this._dataValidationModel.ensureManager(n,e)}switchCurrent(n,e){var a,r;if(n===((a=this.currentManager)==null?void 0:a.unitId)&&e===((r=this._currentManager)==null?void 0:r.subUnitId))return;const t=this._ensureManager(n,e);this._currentManager={manager:t,unitId:n,subUnitId:e},this._currentManager$.next(this._currentManager)}get(n,e){return this._ensureManager(n,e)}},A.SheetDataValidationService=Ri([Mi(0,z.Inject(H.DataValidationModel))],A.SheetDataValidationService);const at={type:l.CommandType.MUTATION,id:"sheet.mutation.data-validation-formula-mark-dirty",handler(){return!0}};var rt=(i=>(i[i.NOT_REGISTER=1]="NOT_REGISTER",i[i.SUCCESS=2]="SUCCESS",i[i.WAIT=3]="WAIT",i[i.ERROR=4]="ERROR",i))(rt||{}),Ii=Object.defineProperty,Oi=Object.getOwnPropertyDescriptor,wi=(i,n,e,t)=>{for(var a=t>1?void 0:t?Oi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Ii(n,e,a),a},$r=(i,n)=>(e,t)=>n(e,t,i);A.RegisterOtherFormulaService=class extends l.Disposable{constructor(e,t){super();W(this,"_formulaCacheMap",new Map);W(this,"_formulaChange$",new ge.Subject);W(this,"formulaChange$",this._formulaChange$.asObservable());W(this,"_formulaResult$",new ge.Subject);W(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 r=a.get(t);return r||(r=new Map,a.set(t,r)),r}_createFormulaId(e,t){return`sheet.dv_${e}_${t}_${l.Tools.generateRandomId(8)}`}_initFormulaRegister(){this._activeDirtyManagerService.register(at.id,{commandId:at.id,getDirtyData(e){return{dirtyUnitOtherFormulaMap:e.params}}}),this.formulaChange$.pipe(ge.bufferTime(16),ge.filter(e=>!!e.length),ge.map(e=>e.reduce((t,a)=>{const{unitId:r,subUnitId:o,formulaId:s,formulaText:u}=a;return t[r]||(t[r]={}),t[r][o]||(t[r][o]={}),t[r][o][s]={f:u},t},{}))).subscribe(e=>{for(const t in e)for(const a in e[t]){const r=e[t][a],o={unitId:t,subUnitId:a,formulaMap:r};this._commandService.executeCommand(le.SetOtherFormulaMutation.id,o).then(()=>{this._commandService.executeCommand(at.id,{[t]:{[a]:r}})})}})}_initFormulaCalculationResultChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===le.SetFormulaCalculationResultMutation.id){const t=e.params,{unitOtherData:a}=t,r={};for(const o in a){const s=a[o],u={};r[o]=u;for(const c in s){const d=this._ensureCacheMap(o,c),p=s[c],g=[];u[c]=g;for(const v in p){const M=p[v];if(d.has(v)){const V=d.get(v);V.result=M,V.status=rt.SUCCESS,V.callbacks.forEach(O=>{O(M)}),V.callbacks.clear(),g.push(V)}}}}this._formulaResult$.next(r)}}))}registerFormula(e,t,a,r){const o=this._createFormulaId(e,t);return this._ensureCacheMap(e,t).set(o,{result:void 0,status:rt.WAIT,ruleId:a,formulaId:o,callbacks:new Set}),this._formulaChange$.next({unitId:e,ruleId:a,subUnitId:t,formulaText:r,formulaId:o}),o}deleteFormula(e,t,a){const r={unitId:e,subUnitId:t,formulaIdList:a};this._commandService.executeCommand(le.RemoveOtherFormulaMutation.id,r);const o=this._ensureCacheMap(e,t);a.forEach(s=>o.delete(s))}getFormulaValue(e,t,a){const r=this._ensureCacheMap(e,t),o=r.get(a);return o?o.status===rt.SUCCESS||rt.ERROR?Promise.resolve(o):new Promise(s=>{o.callbacks.add(()=>{s(r.get(a))})}):Promise.resolve(null)}getFormulaValueSync(e,t,a){return this._ensureCacheMap(e,t).get(a)}},A.RegisterOtherFormulaService=wi([$r(0,l.ICommandService),$r(1,le.IActiveDirtyManagerService)],A.RegisterOtherFormulaService);class Ye{constructor(){W(this,"_cacheMatrix",new Map)}_ensureCache(n,e){let t=this._cacheMatrix.get(n);t||(t=new Map,this._cacheMatrix.set(n,t));let a=t.get(e);return a||(a=new l.ObjectMatrix,t.set(e,a)),a}ensureCache(n,e){return this._ensureCache(n,e)}addRule(n,e,t){this.markRangeDirty(n,e,t.ranges)}removeRule(n,e,t){this._deleteRange(n,e,t.ranges)}updateRuleRanges(n,e,t,a,r){const o=this._ensureCache(n,e);r.forEach(s=>{l.Range.foreach(s,(u,c)=>{const d=o.getValue(u,c);d&&(d.temp=!0)})}),a.forEach(s=>{l.Range.foreach(s,(u,c)=>{const d=o.getValue(u,c);d&&d.ruleId===t?d.temp=!1:o.setValue(u,c,void 0)})}),r.forEach(s=>{l.Range.foreach(s,(u,c)=>{const d=o.getValue(u,c);d&&d.temp===!0&&o.realDeleteValue(u,c)})})}markRangeDirty(n,e,t){const a=this._ensureCache(n,e);t.forEach(r=>{l.Range.foreach(r,(o,s)=>{a.setValue(o,s,void 0)})})}markCellDirty(n,e,t,a){this._ensureCache(n,e).setValue(t,a,void 0)}_deleteRange(n,e,t){const a=this._ensureCache(n,e);t.forEach(r=>{l.Range.foreach(r,(o,s)=>{a.realDeleteValue(o,s)})})}getValue(n,e,t,a){return this._ensureCache(n,e).getValue(t,a)}setValue(n,e,t,a,r){return this._ensureCache(n,e).setValue(t,a,r)}}var Ci=Object.defineProperty,Vi=Object.getOwnPropertyDescriptor,Ti=(i,n,e,t)=>{for(var a=t>1?void 0:t?Vi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Ci(n,e,a),a},nt=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationCustomFormulaService=class extends l.Disposable{constructor(e,t,a,r,o){super();W(this,"_formulaMap",new Map);W(this,"_ruleFormulaMap",new Map);W(this,"_formulaCellMap",new Map);this._registerOtherFormulaService=e,this._lexerTreeBuilder=t,this._univerInstanceService=a,this._dataValidationModel=r,this._dataValidationCacheService=o,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const r in a){const o=a[r],{formulaCellMap:s,ruleFormulaMap:u}=this._ensureMaps(t,r),c=this._dataValidationModel.ensureManager(t,r);o.forEach(d=>{const p=u.get(d.ruleId),g=s.get(d.formulaId),v=c.getRuleById(d.ruleId);v&&p&&!p.isTransformable&&this._dataValidationCacheService.markRangeDirty(t,r,v.ranges),g&&this._dataValidationCacheService.markCellDirty(t,r,g.row,g.column)})}}}))}_ensureMaps(e,t){let a=this._formulaMap.get(e),r=this._ruleFormulaMap.get(e),o=this._formulaCellMap.get(e);(!a||!r||!o)&&(a=new Map,r=new Map,o=new Map,this._formulaMap.set(e,a),this._ruleFormulaMap.set(e,r),this._formulaCellMap.set(e,o));let s=a.get(t),u=r.get(t),c=o.get(t);return(!s||!u||!c)&&(s=new l.ObjectMatrix,a.set(t,s),u=new Map,r.set(t,u),c=new Map,o.set(t,c)),{formulaMap:s,ruleFormulaMap:u,formulaCellMap:c}}_registerFormula(e,t,a,r){return this._registerOtherFormulaService.registerFormula(e,t,a,r)}deleteByRuleId(e,t,a){const{formulaMap:r,formulaCellMap:o,ruleFormulaMap:s}=this._ensureMaps(e,t),u=this._dataValidationModel.getRuleById(e,t,a),c=new Set,d=s.get(a);!u||!d||(s.delete(a),u.ranges.forEach(p=>{l.Range.foreach(p,(g,v)=>{const M=r.getValue(g,v);if(M&&M.ruleId===a){const{formulaId:V}=M;r.realDeleteValue(g,v),c.add(V),o.delete(V)}})}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(c.values())))}_addFormulaByRange(e,t,a,r,o){const{formulaMap:s,ruleFormulaMap:u,formulaCellMap:c}=this._ensureMaps(e,t);if(!r)return;const d=le.isFormulaTransformable(this._lexerTreeBuilder,r),p=o[0].startRow,g=o[0].startColumn;let v;d?o.forEach(M=>{l.Range.foreach(M,(V,O)=>{const b=le.transformFormula(this._lexerTreeBuilder,r,p,g,V,O),F=this._registerFormula(e,t,a,b);s.setValue(V,O,{formulaId:F,ruleId:a}),c.set(F,{row:V,column:O})})}):(v=this._registerFormula(e,t,a,r),o.forEach(M=>{l.Range.foreach(M,(V,O)=>{s.setValue(V,O,{formulaId:v,ruleId:a})})})),u.set(a,{formula:r,originCol:g,originRow:p,isTransformable:d,formulaId:v})}addRule(e,t,a){const{ranges:r,formula1:o,uid:s,type:u}=a;u!==l.DataValidationType.CUSTOM||!o||!l.isFormulaString(o)||this._addFormulaByRange(e,t,s,o,r)}updateRuleRanges(e,t,a,r,o){const{formulaMap:s,ruleFormulaMap:u,formulaCellMap:c}=this._ensureMaps(e,t),d=u.get(a);if(!d)return;const{formula:p,originCol:g,originRow:v,isTransformable:M,formulaId:V}=d,O=new Set;r.forEach(b=>{l.Range.foreach(b,(F,P)=>{const j=s.getValue(F,P);j&&j.ruleId===a&&(j.temp=!0)})}),o.forEach(b=>{l.Range.foreach(b,(F,P)=>{var $;const j=($=s.getValue(F,P))!=null?$:{};if(j.ruleId!==a){const U=u.get(j.ruleId);if(U!=null&&U.isTransformable&&O.add(j.formulaId),M){const I=le.transformFormula(this._lexerTreeBuilder,p,v,g,F,P),w=this._registerFormula(e,t,a,I);s.setValue(F,P,{ruleId:a,formulaId:w}),c.set(w,{row:F,column:P})}else s.setValue(F,P,{ruleId:a,formulaId:V})}else j.temp=!1})}),r.forEach(b=>{l.Range.foreach(b,(F,P)=>{const j=s.getValue(F,P);j&&j.ruleId===a&&j.temp===!0&&(s.realDeleteValue(F,P),M&&O.add(j.formulaId))})}),O.forEach(b=>{c.delete(b)}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(O.values()))}updateRuleFormula(e,t,a,r,o){const{ruleFormulaMap:s}=this._ensureMaps(e,t),u=s.get(a);(!u||u.formula!==o)&&this._addFormulaByRange(e,t,a,o,r)}getCellFormulaValue(e,t,a,r){const{formulaMap:o}=this._ensureMaps(e,t),s=o.getValue(a,r);return s?this._registerOtherFormulaService.getFormulaValue(e,t,s.formulaId):Promise.resolve(void 0)}getRuleFormulaInfo(e,t,a){const{ruleFormulaMap:r}=this._ensureMaps(e,t);return r.get(a)}},A.DataValidationCustomFormulaService=Ti([nt(0,z.Inject(A.RegisterOtherFormulaService)),nt(1,z.Inject(le.LexerTreeBuilder)),nt(2,l.IUniverInstanceService),nt(3,z.Inject(H.DataValidationModel)),nt(4,z.Inject(Ye))],A.DataValidationCustomFormulaService);function Ie(i){var n,e;return(e=(n=i==null?void 0:i[0])==null?void 0:n[0])==null?void 0:e.v}class bi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.CUSTOM);W(this,"title","dataValidation.custom.title");W(this,"operators",[]);W(this,"scopes",["sheet"]);W(this,"formulaInput",Ur);W(this,"_customFormulaService",this.injector.get(A.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:r,row:o,unitId:s,subUnitId:u}=e,c=await this._customFormulaService.getCellFormulaValue(s,u,o,r);return!!Ie(c==null?void 0:c.result)}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.custom.error")}}var Ei=Object.defineProperty,Fi=Object.getOwnPropertyDescriptor,Ai=(i,n,e,t)=>{for(var a=t>1?void 0:t?Fi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Ei(n,e,a),a},Da=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationFormulaService=class extends l.Disposable{constructor(e,t,a){super();W(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 r in a){const o=a[r],s=this._ensureRuleFormulaMap(t,r),u=this._dataValidationModel.ensureManager(t,r);o.forEach(c=>{if(s.get(c.ruleId)){const d=u.getRuleById(c.ruleId);d&&this._dataValidationCacheService.markRangeDirty(t,r,d.ranges)}})}}}))}_ensureRuleFormulaMap(e,t){let a=this._formulaRuleMap.get(e);a||(a=new Map,this._formulaRuleMap.set(e,a));let r=a.get(t);return r||(r=new Map,a.set(t,r)),r}addRule(e,t,a,r,o){const s=l.isFormulaString(r),u=l.isFormulaString(o);if(!s&&!u)return;const c=this._ensureRuleFormulaMap(e,t),d=[void 0,void 0];if(s){const p=this._registerOtherFormulaService.registerFormula(e,t,a,r);d[0]={id:p,text:r}}if(u){const p=this._registerOtherFormulaService.registerFormula(e,t,a,o);d[1]={id:p,text:o}}c.set(a,d)}removeRule(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(!o)return;const[s,u]=o,c=[s==null?void 0:s.id,u==null?void 0:u.id].filter(Boolean);c.length&&this._registerOtherFormulaService.deleteFormula(e,t,c)}updateRuleFormulaText(e,t,a,r,o){const u=this._ensureRuleFormulaMap(e,t).get(a);if(!u){this.addRule(e,t,a,r,o);return}const[c,d]=u;if((c==null?void 0:c.text)!==r)if(c&&this._registerOtherFormulaService.deleteFormula(e,t,[c.id]),l.isFormulaString(r)){const p=this._registerOtherFormulaService.registerFormula(e,t,a,r);u[0]={text:r,id:p}}else u[0]=void 0;if((d==null?void 0:d.text)!==o)if(d&&this._registerOtherFormulaService.deleteFormula(e,t,[d.id]),l.isFormulaString(o)){const p=this._registerOtherFormulaService.registerFormula(e,t,a,o);u[1]={text:o,id:p}}else u[1]=void 0}getRuleFormulaResult(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(!o)return Promise.resolve(null);const s=async u=>u&&this._registerOtherFormulaService.getFormulaValue(e,t,u.id);return Promise.all([s(o[0]),s(o[1])])}getRuleFormulaResultSync(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(o)return o.map(s=>{if(s)return this._registerOtherFormulaService.getFormulaValueSync(e,t,s.id)})}getRuleFormulaInfo(e,t,a){return this._ensureRuleFormulaMap(e,t).get(a)}},A.DataValidationFormulaService=Ai([Da(0,z.Inject(A.RegisterOtherFormulaService)),Da(1,z.Inject(Ye)),Da(2,z.Inject(H.DataValidationModel))],A.DataValidationFormulaService);var Pi=Object.defineProperty,Li=Object.getOwnPropertyDescriptor,Ni=(i,n,e,t)=>{for(var a=t>1?void 0:t?Li(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Pi(n,e,a),a},Ra=(i,n)=>(e,t)=>n(e,t,i);const Ut=6;let Ma=class{constructor(i,n,e){this._commandService=i,this._formulaService=n,this._themeService=e}_calc(i,n){var c,d,p;const{vt:e,ht:t}=n||{},a=i.endX-i.startX-Ut*2,r=i.endY-i.startY,o=((c=n==null?void 0:n.fs)!=null?c:10)*1.6;let s=0,u=0;switch(e){case l.VerticalAlign.TOP:u=0;break;case l.VerticalAlign.BOTTOM:u=0+(r-o);break;default:u=0+(r-o)/2;break}switch(t){case l.HorizontalAlign.LEFT:s=Ut;break;case l.HorizontalAlign.RIGHT:s=Ut+(a-o);break;default:s=Ut+(a-o)/2;break}return{left:i.startX+s,top:i.startY+u,width:((d=n==null?void 0:n.fs)!=null?d:10)*1.6,height:((p=n==null?void 0:n.fs)!=null?p:10)*1.6}}calcCellAutoHeight(){}async _parseFormula(i,n,e){var o,s;const{formula1:t=it,formula2:a=xt}=i,r=await this._formulaService.getRuleFormulaResult(n,e,i.uid);return{formula1:l.isFormulaString(t)?Ie((o=r==null?void 0:r[0])==null?void 0:o.result):t,formula2:l.isFormulaString(a)?Ie((s=r==null?void 0:r[1])==null?void 0:s.result):a}}drawWith(i,n){var L,T,D,R,_;const{style:e,data:t,primaryWithCoord:a,unitId:r,subUnitId:o}=n,s=a.isMergedMainCell?a.mergeInfo:a,u=ve(t),c=(L=t.dataValidation)==null?void 0:L.rule,d=(T=t.dataValidation)==null?void 0:T.validator;if(!c||!d)return;const p=this._themeService.getCurrentTheme();if(!d.skipDefaultFontRender(c,u,{unitId:r,subUnitId:o}))return;const{formula1:g=it}=c,v=this._calc(s,e),{a:M,d:V}=i.getTransform(),O=fe.fixLineWidthByScale(v.left,M),b=fe.fixLineWidthByScale(v.top,V),F=fe.Transform.create().composeMatrix({left:O,top:b,scaleX:1,scaleY:1,angle:0,skewX:0,skewY:0,flipX:!1,flipY:!1}),P=s.endX-s.startX,j=s.endY-s.startY;i.save(),i.beginPath(),i.rect(s.startX,s.startY,P,j),i.clip();const $=F.getMatrix();i.transform($[0],$[1],$[2],$[3],$[4],$[5]);const U=((D=e==null?void 0:e.fs)!=null?D:10)*1.6,I=String(u)===String(g),w=p.hyacinth500;fe.Checkbox.drawWith(i,{checked:I,width:U,height:U,fill:(_=(R=e==null?void 0:e.cl)==null?void 0:R.rgb)!=null?_:w}),i.restore()}isHit(i,n){const e=n.primaryWithCoord.isMergedMainCell?n.primaryWithCoord.mergeInfo:n.primaryWithCoord,t=this._calc(e,n.style),a=t.top,r=t.top+t.height,o=t.left,s=t.left+t.width,{x:u,y:c}=i;return u<=s&&u>=o&&c<=r&&c>=a}async onPointerDown(i,n){var g,v;if(n.button===2)return;const{primaryWithCoord:e,unitId:t,subUnitId:a,data:r}=i,o=ve(r),s=(g=r.dataValidation)==null?void 0:g.rule,u=(v=r.dataValidation)==null?void 0:v.validator;if(!s||!u||!u.skipDefaultFontRender(s,o,{unitId:t,subUnitId:a}))return;const{formula1:c,formula2:d}=await this._parseFormula(s,t,a),p={range:{startColumn:e.actualColumn,endColumn:e.actualColumn,startRow:e.actualRow,endRow:e.actualRow},value:{v:String(o)===String(c)?d:c,p:null}};this._commandService.executeCommand(he.SetRangeValuesCommand.id,p)}};Ma=Ni([Ra(0,l.ICommandService),Ra(1,z.Inject(A.DataValidationFormulaService)),Ra(2,z.Inject(l.ThemeService))],Ma);const it=1,xt=0;class ji extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.CHECKBOX);W(this,"title","dataValidation.checkbox.title");W(this,"operators",[]);W(this,"scopes",["sheet"]);W(this,"formulaInput",xr);W(this,"canvasRender",this.injector.createInstance(Ma));W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService))}skipDefaultFontRender(e,t,a){const{formula1:r,formula2:o}=this.parseFormulaSync(e,a.unitId,a.subUnitId),s=`${t!=null?t:""}`;return!s||s===`${r}`||s===`${o}`}validatorFormula(e){const{formula1:t=it,formula2:a=xt}=e,r=!l.Tools.isBlank(t),o=!l.Tools.isBlank(a);return{success:r&&o,formula1:r?"":this.localeService.t("dataValidation.validFail.common"),formula2:o?"":this.localeService.t("dataValidation.validFail.common")}}async parseFormula(e,t,a){var u,c;const{formula1:r=it,formula2:o=xt}=e,s=await this._formulaService.getRuleFormulaResult(t,a,e.uid);return{formula1:l.isFormulaString(r)?Ie((u=s==null?void 0:s[0])==null?void 0:u.result):r,formula2:l.isFormulaString(o)?Ie((c=s==null?void 0:s[1])==null?void 0:c.result):o}}parseFormulaSync(e,t,a){var u,c;const{formula1:r=it,formula2:o=xt}=e,s=this._formulaService.getRuleFormulaResultSync(t,a,e.uid);return{formula1:l.isFormulaString(r)?Ie((u=s==null?void 0:s[0])==null?void 0:u.result):r,formula2:l.isFormulaString(o)?Ie((c=s==null?void 0:s[1])==null?void 0:c.result):o}}async isValidType(e,t,a){const{value:r,unitId:o,subUnitId:s}=e,{formula1:u,formula2:c}=await this.parseFormula(a,o,s);return!l.Tools.isDefine(u)||!l.Tools.isDefine(c)?!0:l.Tools.isDefine(r)&&(String(r)===String(u)||String(r)===String(c))}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.checkbox.error")}}const ot=[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.NOT_BETWEEN],Ia=86400;function Ui(i,n=!0){if(n&&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 r=Math.floor(80*e/2447),o=e-Math.floor(2447*r/80);e=Math.floor(r/11);const s=r+2-12*e;return[100*(t-49)+a+e|0,s|0,o|0]}const xi=i=>{let n=i|0;const e=Ia*(i-n);let t=Math.floor(e);e-t>.9999&&(t+=1,t===Ia&&(t=0,n+=1));const a=t<0?Ia+t:t,[r,o,s]=Ui(i,!0),u=Math.floor(a/60/60)%60,c=Math.floor(a/60)%60,d=Math.floor(a)%60,p=new Date(0);return p.setUTCFullYear(r,o-1,s),p.setUTCHours(u,c,d),p.getTime()},Wi={[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 $i={[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"},ki={[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"},kr="{FORMULA1}",Br="{FORMULA2}",qr=i=>Ne(i).isValid(),Wt=i=>{if(!(i==null||typeof i=="boolean"))return typeof i=="number"||!Number.isNaN(+i)?Ne(xi(+i)):Ne(i)};class Bi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.DATE);W(this,"title","dataValidation.date.title");W(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]);W(this,"scopes",["sheet"]);W(this,"formulaInput",tt);W(this,"dropdown",Za);W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService));W(this,"transformDate",Wt)}async parseFormula(e,t,a){var u,c;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:Wt(l.isFormulaString(o)?Ie((u=r==null?void 0:r[0])==null?void 0:u.result):o),formula2:Wt(l.isFormulaString(s)?Ie((c=r==null?void 0:r[1])==null?void 0:c.result):s)}}async isValidType(e){const{value:t}=e;return typeof t=="string"?Ne(t).isValid():typeof t=="number"}_validatorSingleFormula(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)||!!e&&Ne(e).isValid())}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=this._validatorSingleFormula(e.formula1),r=this.localeService.t("dataValidation.validFail.date");if(ot.includes(t)){const s=this._validatorSingleFormula(e.formula2);return{success:a&&s,formula1:a?void 0:r,formula2:s?void 0:r}}return{success:a,formula1:a?void 0:r}}transform(e,t,a){const{value:r}=e;return{...e,value:Wt(r)}}async validatorIsEqual(e,t,a){const{value:r}=e,{formula1:o}=t;return o?r.isSame(o):!0}async validatorIsNotEqual(e,t){const{value:a}=e,{formula1:r}=t;return r?!a.isSame(r):!0}async validatorIsBetween(e,t){const{value:a}=e,{formula1:r,formula2:o}=t;if(!r||!o)return!1;const s=r.isAfter(o)?o:r,u=s===r?o:r;return(a.isAfter(s)||a.isSame(s))&&(a.isBefore(u)||a.isSame(u))}async validatorIsNotBetween(e,t){const{value:a}=e,{formula1:r,formula2:o}=t;if(!r||!o)return!1;const s=r.isAfter(o)?r:o,u=s===r?o:r;return a.isBefore(s)||a.isAfter(u)}async validatorIsGreaterThan(e,t){const{value:a}=e,{formula1:r}=t;return r?a.isAfter(r):!0}async validatorIsGreaterThanOrEqual(e,t){const{value:a}=e,{formula1:r}=t;return r?a.isAfter(r)||a.isSame(r):!0}async validatorIsLessThan(e,t){const{value:a}=e,{formula1:r}=t;return r?a.isBefore(r)||a.isSame(r):!0}async validatorIsLessThanOrEqual(e,t){const{value:a}=e,{formula1:r}=t;return r?a.isBefore(r)||a.isSame(r):!0}validatorFormulaValue(e){if(!l.Tools.isDefine(e.operator))return;if(ot.includes(e.operator)){if(l.Tools.isBlank(e.formula1)||l.Tools.isBlank(e.formula2))return"";if(!qr(e.formula1)||!qr(e.formula2))return""}else if(l.Tools.isBlank(e.formula1))return""}get operatorNames(){return this.operators.map(e=>this.localeService.t(Wi[e]))}generateRuleName(e){var a,r;if(!e.operator)return this.titleStr;const t=this.localeService.t($i[e.operator]).replace(kr,(a=e.formula1)!=null?a:"").replace(Br,(r=e.formula2)!=null?r:"");return`${this.titleStr} ${t}`}generateRuleErrorMessage(e){var a,r;return e.operator?`${this.localeService.t(ki[e.operator]).replace(kr,(a=e.formula1)!=null?a:"").replace(Br,(r=e.formula2)!=null?r:"")}`:this.titleStr}}var qi=Object.defineProperty,Hi=Object.getOwnPropertyDescriptor,Yi=(i,n,e,t)=>{for(var a=t>1?void 0:t?Hi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&qi(n,e,a),a},$t=(i,n)=>(e,t)=>n(e,t,i);const ze=4,zi=6,De=14,Ue=6,Oe=2,Ki="#565656",Hr=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 Gi(i,n){const e=i.length;return{id:"d",body:{dataStream:`${i}${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,...n,bg:void 0,bd:void 0},st:0,ed:e}]},documentStyle:{pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY}}}}function Oa(i,n,e){const t=Gi(i,e),a=new l.DocumentDataModel(t),r=new fe.DocumentViewModel(a);return{documentSkeleton:fe.DocumentSkeleton.create(r,n),docModel:a,docViewModel:r}}function Yr(i,n,e){const{documentSkeleton:t,docModel:a,docViewModel:r}=Oa(i,n,e);return{documents:new fe.Documents(`DOCUMENTS_${l.Tools.generateRandomId()}`,t,{pageMarginLeft:0,pageMarginTop:0}),documentSkeleton:t,docModel:a,docViewModel:r}}let wa=(Fa=class{constructor(i,n,e,t){W(this,"_dropdownInfoMap",new Map);W(this,"zIndex");W(this,"onPointerEnter");W(this,"onPointerLeave");this._localeService=i,this._commandService=n,this._dataValidationModel=e,this._dataValidatorRegistryService=t}_ensureMap(i){let n=this._dropdownInfoMap.get(i);return n||(n=new Map,this._dropdownInfoMap.set(i,n)),n}_generateKey(i,n){return`${i}.${n}`}_drawDownIcon(i,n,e,t,a){const r=e-De+4;let o=4;switch(a){case l.VerticalAlign.MIDDLE:o=(t-De)/2+4;break;case l.VerticalAlign.BOTTOM:o=t-De+4;break}i.save(),i.translateWithPrecision(n.startX+r,n.startY+o),i.fillStyle="#565656",i.fill(Hr),i.restore()}drawWith(i,n,e,t){var w,L;const{primaryWithCoord:a,row:r,col:o,style:s,data:u,subUnitId:c}=n,d=a.isMergedMainCell?a.mergeInfo:a,p=d.endX-d.startX,g=d.endY-d.startY,v=this._ensureMap(c),M=this._generateKey(r,o),V=(w=u.dataValidation)==null?void 0:w.rule,O=(L=u.dataValidation)==null?void 0:L.validator;if(!V||!O||!O.skipDefaultFontRender(V))return;const b=O.getListWithColor(V),F=ve(u),P=`${F!=null?F:""}`,j=b.find(T=>T.label===P);let{tb:$,vt:U,ht:I}=s||{};if($=$!=null?$:l.WrapStrategy.WRAP,U=U!=null?U:l.VerticalAlign.TOP,I=I!=null?I:l.HorizontalAlign.LEFT,V.renderMode===l.DataValidationRenderMode.ARROW){this._drawDownIcon(i,d,p,g,U),i.save(),i.translateWithPrecision(d.startX,d.startY),i.beginPath(),i.rect(0,0,p,g),i.clip();const T=p-De,{documentSkeleton:D,documents:R,docModel:_}=Yr(P,this._localeService,s);$===l.WrapStrategy.WRAP&&_.updateDocumentDataPageSize(T),D.calculate(),D.getActualSize();const y=fe.getDocsSkeletonPageSize(D),{height:h,width:m}=y;let f=0;switch(U){case l.VerticalAlign.BOTTOM:f=g-Oe-h;break;case l.VerticalAlign.MIDDLE:f=(g-Oe-h)/2;break;default:f=Oe;break}let S=0;switch(I){case l.HorizontalAlign.CENTER:S=(T-m)/2;break;case l.HorizontalAlign.RIGHT:S=T-m;break}i.translate(0,f),i.save(),i.translateWithPrecision(ze,0),i.beginPath(),i.rect(0,0,T,h),i.clip(),R.render(i),i.translateWithPrecision(S,0),i.restore(),i.restore(),v.set(M,{left:d.endX+e.rowHeaderWidth-De,top:d.startY+e.columnHeaderHeight,width:De,height:g})}else{i.save(),i.translateWithPrecision(d.startX,d.startY),i.beginPath(),i.rect(0,0,p,g),i.clip();const T=p-Ue*2-ze-De,{documentSkeleton:D,documents:R,docModel:_}=Yr(P,this._localeService,s);$===l.WrapStrategy.WRAP&&_.updateDocumentDataPageSize(T),D.calculate();const y=fe.getDocsSkeletonPageSize(D),{height:h,width:m}=y;let f=0;switch(U){case l.VerticalAlign.BOTTOM:f=g-Oe-h;break;case l.VerticalAlign.MIDDLE:f=(g-Oe-h)/2;break;default:f=Oe;break}let S=0;switch(I){case l.HorizontalAlign.CENTER:S=(T-m)/2;break;case l.HorizontalAlign.RIGHT:S=T-m;break}i.translate(Ue,f);const C=p-Ue*2,E=h;fe.Rect.drawWith(i,{width:C,height:E,fill:(j==null?void 0:j.color)||Le,radius:8}),i.save(),i.translateWithPrecision(ze,0),i.beginPath(),i.rect(0,0,T,h),i.clip(),i.translateWithPrecision(S,0),R.render(i),i.restore(),i.translate(T+ze+4,(h-zi)/2),i.fillStyle=Ki,i.fill(Hr),i.restore(),v.set(M,{left:d.startX+Ue+e.rowHeaderWidth,top:d.startY+f+e.columnHeaderHeight,width:C,height:E})}}calcCellAutoHeight(i){var d;const{primaryWithCoord:n,style:e,data:t}=i,a=n.isMergedMainCell?n.mergeInfo:n,r=a.endX-a.startX,o=ve(t),s=`${o!=null?o:""}`,u=(d=t.dataValidation)==null?void 0:d.rule;if(!u||u.renderMode===l.DataValidationRenderMode.TEXT)return;let{tb:c}=e||{};if(c=c!=null?c:l.WrapStrategy.WRAP,u.renderMode===l.DataValidationRenderMode.ARROW){const p=r-De,{documentSkeleton:g,docModel:v}=Oa(s,this._localeService,e);c===l.WrapStrategy.WRAP&&v.updateDocumentDataPageSize(p),g.calculate(),g.getActualSize();const M=fe.getDocsSkeletonPageSize(g),{height:V}=M;return V}else{const p=r-Ue*2-ze-De,{documentSkeleton:g,docModel:v}=Oa(s,this._localeService,e);c===l.WrapStrategy.WRAP&&v.updateDocumentDataPageSize(p),g.calculate(),g.getActualSize();const M=fe.getDocsSkeletonPageSize(g),{height:V}=M;return V+Oe*2}}isHit(i,n){const{data:e,subUnitId:t,row:a,col:r}=n,s=this._ensureMap(t).get(this._generateKey(a,r));if(!e.dataValidation||!s)return!1;const{top:c,left:d,width:p,height:g}=s,{x:v,y:M}=i;return v>=d&&v<=d+p&&M>=c&&M<=c+g}onPointerDown(i,n){if(n.button===2)return;const{unitId:e,subUnitId:t,row:a,col:r}=i,o={unitId:e,subUnitId:t,row:a,column:r};this._commandService.executeCommand(ft.id,o)}},W(Fa,"padding",{l:Ue+ze,r:De+Ue,t:Oe,b:Oe}),Fa);wa=Yi([$t(0,z.Inject(l.LocaleService)),$t(1,l.ICommandService),$t(2,z.Inject(H.DataValidationModel)),$t(3,z.Inject(H.DataValidatorRegistryService))],wa);class Xi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.LIST);W(this,"title","dataValidation.list.title");W(this,"operators",[]);W(this,"scopes",["sheet"]);W(this,"formulaInput",Sa);W(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));W(this,"canvasRender",this.injector.createInstance(wa));W(this,"dropdown",Zt);W(this,"optionsInput",jt.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 Me(a)}async parseFormula(e,t,a){const{formula1:r=""}=e;return{formula1:le.isReferenceString(r)?Xe(le.deserializeRangeWithSheet(r),this._univerInstanceService,t,a):Me(r),formula2:void 0}}async isValidType(e,t,a){const{value:r}=e,{formula1:o}=t;return this._parseCellValue(r,a).every(u=>o.includes(u))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var p,g;const{formula1:r=""}=e,o=this.injector.get(l.IUniverInstanceService),s=(p=t?o.getUniverSheetInstance(t):void 0)!=null?p:o.getCurrentUniverSheetInstance(),u=(g=a?s.getSheetBySheetId(a):void 0)!=null?g:s.getActiveSheet(),c=s.getUnitId(),d=u.getSheetId();return le.isReferenceString(r)?Xe(le.deserializeRangeWithSheet(r),this._univerInstanceService,c,d):Me(r)}getListWithColor(e,t,a){const r=this.getList(e,t,a),o=(e.formula2||"").split(",");return r.map((s,u)=>({label:s,color:o[u]}))}getListWithColorMap(e,t,a){const r=this.getListWithColor(e,t,a),o={};return r.forEach(s=>{s.color&&(o[s.label]=s.color)}),o}}function kt(i){let n=i;return typeof i=="string"?((i.startsWith("¥")||i.startsWith("$"))&&(n=i.slice(1)),+n):+i}class Qi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService));W(this,"id",l.DataValidationType.DECIMAL);W(this,"title",this.localeService.t("dataValidation.decimal.title"));W(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]);W(this,"scopes",["sheet"]);W(this,"formulaInput",tt);W(this,"dropDownInput")}_isFormulaOrNumber(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e))}async isValidType(e,t,a){const{value:r}=e;return!Number.isNaN(kt(r))}transform(e,t,a){const{value:r}=e;return{...e,value:kt(r)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var c,d,p,g,v,M,V,O;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(g=(p=(d=(c=r==null?void 0:r[0])==null?void 0:c.result)==null?void 0:d[0])==null?void 0:p[0])==null?void 0:g.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(O=(V=(M=(v=r==null?void 0:r[1])==null?void 0:v.result)==null?void 0:M[0])==null?void 0:V[0])==null?void 0:O.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrNumber(e.formula1),r=l.Tools.isDefine(e.formula2)&&this._isFormulaOrNumber(e.formula2),o=ot.includes(t),s=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&r,formula1:a?void 0:s,formula2:r?void 0:s}:{success:a,formula1:a?"":s}}async validatorIsEqual(e,t,a){const{formula1:r}=t,{value:o}=e;return Number.isNaN(r)?!0:o===r}async validatorIsNotEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value!==r}async validatorIsBetween(e,t,a){const{formula1:r,formula2:o}=t;if(Number.isNaN(r)||Number.isNaN(o))return!0;const s=Math.min(r,o),u=Math.max(r,o);return e.value>=s&&e.value<=u}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:o}=t;if(Number.isNaN(r)||Number.isNaN(o))return!0;const s=Math.min(r,o),u=Math.max(r,o);return e.value<s&&e.value>u}async validatorIsGreaterThan(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value>r}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value>=r}async validatorIsLessThan(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value<r}async validatorIsLessThanOrEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value<=r}}class Zi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.TEXT_LENGTH);W(this,"title","dataValidation.textLength.title");W(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]);W(this,"scopes",["sheet"]);W(this,"formulaInput",tt);W(this,"_formulaService",this.injector.get(A.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),r=l.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=ot.includes(t),s=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&r,formula1:a?void 0:s,formula2:r?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,c,d,p,g,v,M,V;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(p=(d=(c=(u=r==null?void 0:r[0])==null?void 0:u.result)==null?void 0:c[0])==null?void 0:d[0])==null?void 0:p.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(V=(M=(v=(g=r==null?void 0:r[1])==null?void 0:g.result)==null?void 0:v[0])==null?void 0:M[0])==null?void 0:V.v:s)}}transform(e,t,a){return{...e,value:e.value.toString().length}}async isValidType(e,t,a){const{value:r}=e;return typeof r=="string"||typeof r=="number"}async validatorIsEqual(e,t,a){const{formula1:r}=t;return l.Tools.isDefine(r)?e.value===r:!1}async validatorIsNotEqual(e,t,a){const{formula1:r}=t;return l.Tools.isDefine(r)?e.value!==r:!1}async validatorIsBetween(e,t,a){const{formula1:r,formula2:o}=t,{value:s}=e;if(!this._isValidFormula(r)||!this._isValidFormula(o))return!1;const u=Math.max(r,o),c=Math.min(r,o);return s>=c&&s<=u}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:o}=t,{value:s}=e;if(!this._isValidFormula(r)||!this._isValidFormula(o))return!1;const u=Math.max(r,o),c=Math.min(r,o);return s>=c&&s<=u}async validatorIsGreaterThan(e,t,a){const{formula1:r}=t,{value:o}=e;return this._isValidFormula(r)?o>r:!1}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:r}=t,{value:o}=e;return this._isValidFormula(r)?o>=r:!1}async validatorIsLessThan(e,t,a){const{formula1:r}=t,{value:o}=e;return this._isValidFormula(r)?o<r:!1}async validatorIsLessThanOrEqual(e,t,a){const{formula1:r}=t,{value:o}=e;return this._isValidFormula(r)?o<=r:!1}}class Ji extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService));W(this,"id",l.DataValidationType.WHOLE);W(this,"title",this.localeService.t("dataValidation.whole.title"));W(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]);W(this,"scopes",["sheet"]);W(this,"formulaInput",tt);W(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:r}=e,o=kt(r);return!Number.isNaN(o)&&Number.isInteger(o)}transform(e,t,a){const{value:r}=e;return{...e,value:kt(r)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var c,d,p,g,v,M,V,O;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(g=(p=(d=(c=r==null?void 0:r[0])==null?void 0:c.result)==null?void 0:d[0])==null?void 0:p[0])==null?void 0:g.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(O=(V=(M=(v=r==null?void 0:r[1])==null?void 0:v.result)==null?void 0:M[0])==null?void 0:V[0])==null?void 0:O.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),r=l.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=ot.includes(t),s=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&r,formula1:a?void 0:s,formula2:r?void 0:s}:{success:a,formula1:s}}async validatorIsEqual(e,t,a){const{formula1:r}=t,{value:o}=e;return Number.isNaN(r)?!0:o===r}async validatorIsNotEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value!==r}async validatorIsBetween(e,t,a){const{formula1:r,formula2:o}=t;if(Number.isNaN(r)||Number.isNaN(o))return!0;const s=Math.min(r,o),u=Math.max(r,o);return e.value>=s&&e.value<=u}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:o}=t;if(Number.isNaN(r)||Number.isNaN(o))return!0;const s=Math.min(r,o),u=Math.max(r,o);return e.value<s&&e.value>u}async validatorIsGreaterThan(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value>r}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value>=r}async validatorIsLessThan(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value<r}async validatorIsLessThanOrEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value<=r}}const zr=4,eo=0,Ca=4,Kr=4,Va=6,Bt=6,xe=14;function to(i,n){const e=fe.FontCache.getTextSize(i,n),t=e.width+zr*2,{ba:a,bd:r}=e,o=a+r;return{width:t,height:o+eo*2,ba:a}}function Gr(i,n,e,t){const a=e-xe-Va,r=t-Bt*2,o=i.map(d=>({layout:to(d,n),text:d}));let s;const u=[];o.forEach(d=>{const{layout:p}=d,{width:g,height:v}=p;!s||s.width+g+Ca>a?(s={width:g,height:v,items:[{...d,left:0}]},u.push(s)):(s.items.push({...d,left:s.width+Ca}),s.width=s.width+g+Ca)});let c=0;return u.forEach((d,p)=>{p===u.length-1?c+=d.height:c+=d.height+Kr}),{lines:u,totalHeight:c,contentWidth:a,contentHeight:r,cellAutoHeight:c+Bt*2}}const ao=8;class ro extends fe.Shape{static drawWith(n,e){const{fontFamily:t,fontString:a,fontSize:r,info:o,fill:s,color:u}=e,{layout:c,text:d}=o;n.save(),fe.Rect.drawWith(n,{width:c.width,height:c.height,radius:ao,fill:s||Le}),n.translateWithPrecision(zr,c.ba),n.font=a,n.fillStyle=u,n.fillText(d,0,0),n.restore()}}var no=Object.defineProperty,io=Object.getOwnPropertyDescriptor,oo=(i,n,e,t)=>{for(var a=t>1?void 0:t?io(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&no(n,e,a),a},so=(i,n)=>(e,t)=>n(e,t,i);const lo=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 Ta=class{constructor(i){W(this,"zIndex");W(this,"_dropdownInfoMap",new Map);this._commandService=i}_ensureMap(i){let n=this._dropdownInfoMap.get(i);return n||(n=new Map,this._dropdownInfoMap.set(i,n)),n}_generateKey(i,n){return`${i}.${n}`}_drawDownIcon(i,n,e,t,a){const r=e-xe+4;let o=4;switch(a){case l.VerticalAlign.MIDDLE:o=(t-xe)/2+4;break;case l.VerticalAlign.BOTTOM:o=t-xe+4;break}i.save(),i.translateWithPrecision(n.startX+r,n.startY+o),i.fillStyle="#565656",i.fill(lo),i.restore()}drawWith(i,n,e,t){var y,h;const{primaryWithCoord:a,row:r,col:o,style:s,data:u,subUnitId:c}=n,d=a.isMergedMainCell?a.mergeInfo:a,p=u.dataValidation,g=d.endX-d.startX,v=d.endY-d.startY,M=this._ensureMap(c),V=this._generateKey(r,o);if(!p)return;const{cl:O}=s||{},b=(y=typeof O=="object"?O==null?void 0:O.rgb:O)!=null?y:"#000",F=fe.getFontStyleString(s!=null?s:void 0),{rule:P,validator:j}=p,$=j,{vt:U,ht:I}=s||{},w=U!=null?U:l.VerticalAlign.MIDDLE,L=(h=ve(u))!=null?h:"",T=$.parseCellValue(L,P),D=$.getListWithColorMap(P),R=Gr(T,F,g,v);this._drawDownIcon(i,d,g,v,w),i.save(),i.translateWithPrecision(d.startX,d.startY),i.beginPath(),i.rect(0,0,g-xe,v),i.clip(),i.translateWithPrecision(Va,Bt);let _=0;switch(w){case l.VerticalAlign.MIDDLE:_=(R.contentHeight-R.totalHeight)/2;break;case l.VerticalAlign.BOTTOM:_=R.contentHeight-R.totalHeight;break}i.translateWithPrecision(0,_),R.lines.forEach((m,f)=>{i.save();const{width:S,height:C,items:E}=m;let x=0;switch(I){case l.HorizontalAlign.RIGHT:x=R.contentWidth-S;break;case l.HorizontalAlign.CENTER:x=(R.contentWidth-S)/2;break}i.translate(x,f*(C+Kr)),E.forEach(q=>{i.save(),i.translateWithPrecision(q.left,0),ro.drawWith(i,{...F,info:q,color:b,fill:D[q.text]}),i.restore()}),i.restore()}),i.restore(),M.set(V,{left:d.startX,top:d.startY,width:R.contentWidth+Va+xe,height:R.contentHeight+Bt*2})}calcCellAutoHeight(i){var V;const{primaryWithCoord:n,style:e,data:t}=i,a=n.isMergedMainCell?n.mergeInfo:n,r=t.dataValidation;if(!r)return;const o=a.endX-a.startX,s=a.endY-a.startY,u=(V=ve(t))!=null?V:"",{rule:c,validator:d}=r,g=d.parseCellValue(u,c),v=fe.getFontStyleString(e!=null?e:void 0);return Gr(g,v,o,s).cellAutoHeight}isHit(i,n){const{primaryWithCoord:e}=n,t=e.isMergedMainCell?e.mergeInfo:e,{endX:a}=t,{x:r}=i;return r>=a-xe&&r<=a}onPointerDown(i,n){if(n.button===2)return;const{unitId:e,subUnitId:t,row:a,col:r}=i,o={unitId:e,subUnitId:t,row:a,column:r};this._commandService.executeCommand(ft.id,o)}};Ta=oo([so(0,l.ICommandService)],Ta);class uo extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.LIST_MULTIPLE);W(this,"title","dataValidation.listMultiple.title");W(this,"operators",[]);W(this,"scopes",["sheet"]);W(this,"formulaInput",Sa);W(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));W(this,"canvasRender",this.injector.createInstance(Ta));W(this,"dropdown",Zt)}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?Me(a):[]}async parseFormula(e,t,a){const{formula1:r=""}=e;return{formula1:le.isReferenceString(r)?Xe(le.deserializeRangeWithSheet(r),this._univerInstanceService,t,a):Me(r),formula2:void 0}}async isValidType(e,t,a){const{value:r}=e,{formula1:o}=t;return this.parseCellValue(r,a).every(u=>o.includes(u))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var p,g;const{formula1:r=""}=e,o=this.injector.get(l.IUniverInstanceService),s=(p=t?o.getUniverSheetInstance(t):void 0)!=null?p:o.getCurrentUniverSheetInstance(),u=(g=a?s.getSheetBySheetId(a):void 0)!=null?g:s.getActiveSheet(),c=s.getUnitId(),d=u.getSheetId();return le.isReferenceString(r)?Xe(le.deserializeRangeWithSheet(r),this._univerInstanceService,c,d):Me(r)}getListWithColor(e,t,a){const r=this.getList(e,t,a),o=e.formula2?e.formula2.split(","):[];return r.map((s,u)=>({label:s,color:o[u]}))}getListWithColorMap(e,t,a){const r=this.getListWithColor(e,t,a),o={};return r.forEach(s=>{s.color&&(o[s.label]=s.color)}),o}}var co=Object.defineProperty,fo=Object.getOwnPropertyDescriptor,po=(i,n,e,t)=>{for(var a=t>1?void 0:t?fo(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&co(n,e,a),a},Te=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationController=class extends l.RxDisposable{constructor(n,e,t,a,r,o,s,u){super(),this._univerInstanceService=n,this._sheetDataValidationService=e,this._dataValidatorRegistryService=t,this._injector=a,this._componentManger=r,this._selectionManagerService=o,this._sheetInterceptorService=s,this._dataValidationModel=u,this._init()}_init(){this._registerValidators(),this._initInstanceChange(),this._componentManger.register(Wr,Ba),this._initCommandInterceptor()}_registerValidators(){[Qi,Ji,Zi,Bi,ji,Xi,uo,bi].forEach(n=>{const e=this._injector.createInstance(n);this.disposeWithMe(this._dataValidatorRegistryService.register(e)),this.disposeWithMe({dispose:()=>{this._injector.delete(n)}})})}_initInstanceChange(){const n=this._univerInstanceService.getCurrentUniverSheetInstance();this._sheetDataValidationService.switchCurrent(n.getUnitId(),n.getActiveSheet().getSheetId()),this.disposeWithMe(n.activeSheet$.subscribe(e=>{if(e){const t=n.getUnitId(),a=e.getSheetId();this._sheetDataValidationService.switchCurrent(t,a)}}))}_initCommandInterceptor(){this._sheetInterceptorService.interceptCommand({getMutations:n=>{if(n.id===he.ClearSelectionAllCommand.id){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),r=e.getActiveSheet().getSheetId(),o=this._selectionManagerService.getSelectionRanges(),s=this._dataValidationModel.ensureManager(t,r),u=s.getRuleObjectMatrix().clone();o&&u.removeRange(o);const c=u.diff(s.getDataValidations()),{redoMutations:d,undoMutations:p}=$e(t,r,c);return{undos:p,redos:d}}return{undos:[],redos:[]}}})}},A.DataValidationController=po([l.OnLifecycle(l.LifecycleStages.Rendered,A.DataValidationController),Te(0,l.IUniverInstanceService),Te(1,z.Inject(A.SheetDataValidationService)),Te(2,z.Inject(H.DataValidatorRegistryService)),Te(3,z.Inject(z.Injector)),Te(4,z.Inject(oe.ComponentManager)),Te(5,z.Inject(he.SelectionManagerService)),Te(6,z.Inject(he.SheetInterceptorService)),Te(7,z.Inject(H.DataValidationModel))],A.DataValidationController);var ho=Object.defineProperty,mo=Object.getOwnPropertyDescriptor,vo=(i,n,e,t)=>{for(var a=t>1?void 0:t?mo(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&ho(n,e,a),a},st=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationAlertController=class extends l.Disposable{constructor(n,e,t,a,r){super(),this._hoverManagerService=n,this._cellAlertManagerService=e,this._univerInstanceService=t,this._sheetDataValidationService=a,this._localeService=r,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(n=>{var e,t,a;if(n){const o=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=(e=this._sheetDataValidationService.currentManager)==null?void 0:e.manager,u=o.getCell(n.location.row,n.location.col);if(((t=u==null?void 0:u.dataValidation)==null?void 0:t.validStatus)===l.DataValidationStatus.INVALID){const c=(a=this._cellAlertManagerService.currentAlert)==null?void 0:a.location;if(c&&c.row===n.location.row&&c.col===n.location.col&&c.subUnitId===n.location.subUnitId&&c.unitId===n.location.unitId)return;this._cellAlertManagerService.showAlert({type:se.CellAlertType.ERROR,title:this._localeService.t("dataValidation.error.title"),message:s==null?void 0:s.getRuleErrorMsg(u.dataValidation.ruleId),location:n.location,width:200,height:74});return}}this._cellAlertManagerService.clearAlert()}))}},A.DataValidationAlertController=vo([l.OnLifecycle(l.LifecycleStages.Rendered,A.DataValidationAlertController),st(0,z.Inject(se.HoverManagerService)),st(1,z.Inject(se.CellAlertManagerService)),st(2,l.IUniverInstanceService),st(3,z.Inject(A.SheetDataValidationService)),st(4,z.Inject(l.LocaleService))],A.DataValidationAlertController);var go=Object.defineProperty,_o=Object.getOwnPropertyDescriptor,So=(i,n,e,t)=>{for(var a=t>1?void 0:t?_o(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&go(n,e,a),a},Re=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationRefRangeController=class extends l.Disposable{constructor(e,t,a,r,o,s,u,c,d,p){super();W(this,"_disposableMap",new Map);this._dataValidationModel=e,this._univerInstanceService=t,this._injector=a,this._sheetSkeletonManagerService=r,this._refRangeService=o,this._dataValidationCustomFormulaService=s,this._dataValidationFormulaService=u,this._formulaRefRangeService=c,this._commandService=d,this._dataValidationCacheService=p,this._initRefRange()}_getIdWithUnitId(e,t,a){return`${e}_${t}_${a}`}registerFormula(e,t,a){var c;const r=a.uid,o=this._getIdWithUnitId(e,t,r),s=(c=this._disposableMap.get(o))!=null?c:new Set,u=(d,p)=>{const g=this._dataValidationModel.getRuleById(e,t,r);if(!g)return{redos:[],undos:[]};const v=g[d];if(!v||v===p)return{redos:[],undos:[]};const M={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:H.UpdateRuleType.SETTING,payload:{type:g.type,formula1:g.formula1,formula2:g.formula2,[d]:p}}},V={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:H.UpdateRuleType.SETTING,payload:{type:g.type,formula1:g.formula1,formula2:g.formula2,[d]:p}}},O=[{id:H.UpdateDataValidationMutation.id,params:M}],b=[{id:H.UpdateDataValidationMutation.id,params:V}];return{redos:O,undos:b}};if(a.type===l.DataValidationType.CUSTOM){const d=this._dataValidationCustomFormulaService.getRuleFormulaInfo(e,t,r);if(d){const p=this._formulaRefRangeService.registerFormula(d.formula,g=>u("formula1",g));s.add(()=>p.dispose())}}if(a.type!==l.DataValidationType.CUSTOM){const d=this._dataValidationFormulaService.getRuleFormulaInfo(e,t,r);if(d){const[p,g]=d;if(p){const v=this._formulaRefRangeService.registerFormula(p.text,M=>u("formula1",M));s.add(()=>v.dispose())}if(g){const v=this._formulaRefRangeService.registerFormula(g.text,M=>u("formula1",M));s.add(()=>v.dispose())}}}}register(e,t,a){var c;const r=d=>{const p=[...a.ranges],v=p.map(V=>he.handleOtherDefaultRangeChangeWithEffectRefCommands(V,d)).filter(V=>!!V).flat();if(l.isRangesEqual(v,p))return{redos:[],undos:[]};if(v.length){const V={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:H.UpdateRuleType.RANGE,payload:v}},O=[{id:H.UpdateDataValidationMutation.id,params:V}],b=[{id:H.UpdateDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:H.UpdateRuleType.RANGE,payload:p}}}];return{redos:O,undos:b}}else{const V={unitId:e,subUnitId:t,ruleId:a.uid},O=[{id:H.RemoveDataValidationMutation.id,params:V}],b=H.removeDataValidationUndoFactory(this._injector,V);return{redos:O,undos:b}}},o=[];a.ranges.forEach(d=>{const p=this._refRangeService.registerRefRange(d,r);o.push(()=>p.dispose())});const s=this._getIdWithUnitId(e,t,a.uid),u=(c=this._disposableMap.get(s))!=null?c:new Set;u.add(()=>o.forEach(d=>d())),this._disposableMap.set(s,u)}registerRange(e,t,a){var P,j,$,U,I;const{uid:r,formula1:o,type:s}=a;if(s!==l.DataValidationType.LIST&&s!==l.DataValidationType.LIST_MULTIPLE||!le.isReferenceString(o!=null?o:""))return;const u=le.deserializeRangeWithSheet(o!=null?o:""),c=this._getIdWithUnitId(e,t,r),d=u.unitId||e,p=(P=this._univerInstanceService.getUniverSheetInstance(d))!=null?P:this._univerInstanceService.getCurrentUniverSheetInstance(),g=($=(j=p.getSheetBySheetName(u.sheetName))==null?void 0:j.getSheetId())!=null?$:t,v=(U=p.getSheetBySheetId(g))!=null?U:p.getActiveSheet(),M=new l.DisposableCollection,V=u.range,O=p.getUnitId(),b=v.getSheetId();M.add(this._refRangeService.registerRefRange(V,w=>{let L=he.handleDefaultRangeChangeWithEffectRefCommands(V,w);if(L||(L={startColumn:-1,endColumn:-1,startRow:-1,endRow:-1}),l.Rectangle.equals(L,V))return{redos:[],undos:[]};const T=le.serializeRangeWithSpreadsheet(O,b,L),D=this._dataValidationModel.getRuleById(e,t,r);if(!D)return{redos:[],undos:[]};const R={unitId:e,subUnitId:t,ruleId:r,payload:{type:H.UpdateRuleType.SETTING,payload:{formula1:T,formula2:D.formula2,type:D.type}}},_={unitId:e,subUnitId:t,ruleId:r,payload:{type:H.UpdateRuleType.SETTING,payload:{formula1:D.formula1,formula2:D.formula2,type:D.type}}};return{redos:[{id:H.UpdateDataValidationMutation.id,params:R}],undos:[{id:H.UpdateDataValidationMutation.id,params:_}]}},O,O)),M.add(this.disposeWithMe(this._commandService.onCommandExecuted(w=>{if(w.id===he.SetRangeValuesMutation.id&&w.params){const L=w.params,{cellValue:T,unitId:D,subUnitId:R}=L;if(D===O&&R===b)if(T){let _=!1;l.Range.foreach(V,(y,h)=>{const m=T[y];if(m&&h in m){if(_)return;_=!0,this._dataValidationCacheService.markRangeDirty(D,R,a.ranges)}})}else this._dataValidationCacheService.markRangeDirty(D,R,a.ranges)}})));const F=(I=this._disposableMap.get(c))!=null?I:new Set;F.add(()=>M.dispose()),this._disposableMap.set(c,F)}_initRefRange(){this.disposeWithMe(ge.merge(this._sheetSkeletonManagerService.currentSkeleton$.pipe(zt.map(e=>e==null?void 0:e.sheetId),zt.distinctUntilChanged())).pipe(zt.switchMap(()=>new ge.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:r,rule:o}=t,s=this._univerInstanceService.getCurrentUniverSheetInstance(),u=s.getActiveSheet();if(!(t.unitId!==s.getUnitId()||t.subUnitId!==u.getSheetId()))switch(t.type){case"add":{const c=t.rule;this.register(t.unitId,t.subUnitId,c),this.registerFormula(t.unitId,t.subUnitId,c),this.registerRange(t.unitId,t.subUnitId,c);break}case"remove":{const c=this._disposableMap.get(this._getIdWithUnitId(a,r,o.uid));c&&c.forEach(d=>d());break}case"update":{const c=t.rule,d=this._disposableMap.get(this._getIdWithUnitId(a,r,c.uid));d&&d.forEach(p=>p()),this.register(t.unitId,t.subUnitId,c),this.registerFormula(t.unitId,t.subUnitId,c),this.registerRange(t.unitId,t.subUnitId,c)}}})))})),this.disposeWithMe(l.toDisposable(()=>{this._disposableMap.forEach(e=>{e.forEach(t=>t())}),this._disposableMap.clear()}))}},A.DataValidationRefRangeController=So([l.OnLifecycle(l.LifecycleStages.Rendered,A.DataValidationRefRangeController),Re(0,z.Inject(H.DataValidationModel)),Re(1,z.Inject(l.IUniverInstanceService)),Re(2,z.Inject(z.Injector)),Re(3,z.Inject(se.SheetSkeletonManagerService)),Re(4,z.Inject(he.RefRangeService)),Re(5,z.Inject(A.DataValidationCustomFormulaService)),Re(6,z.Inject(A.DataValidationFormulaService)),Re(7,z.Inject(Aa.FormulaRefRangeService)),Re(8,l.ICommandService),Re(9,z.Inject(Ye))],A.DataValidationRefRangeController);const Xr={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"},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"}}},Qr={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:"文本长度"},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 yo=Object.defineProperty,Do=Object.getOwnPropertyDescriptor,Ro=(i,n,e,t)=>{for(var a=t>1?void 0:t?Do(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&yo(n,e,a),a},Zr=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationAutoFillController=class extends l.Disposable{constructor(n,e){super(),this._autoFillService=n,this._dataValidationModel=e,this._initAutoFill()}_initAutoFill(){const n=()=>({redos:[],undos:[]}),e=a=>{const{source:r,target:o,unitId:s,subUnitId:u}=a,c=this._dataValidationModel.ensureManager(s,u),d=c.getRuleObjectMatrix().clone(),p={row:r.startRow,col:r.startColumn};se.getAutoFillRepeatRange(r,o).forEach(O=>{const b=O.repeatStartCell,F=O.relativeRange,P={startRow:p.row,startColumn:p.col,endColumn:p.col,endRow:p.row},j={startRow:b.row,startColumn:b.col,endColumn:b.col,endRow:b.row};l.Range.foreach(F,($,U)=>{const I=l.Rectangle.getPositionRange({startRow:$,startColumn:U,endColumn:U,endRow:$},P),w=c.getRuleIdByLocation(I.startRow,I.startColumn);if(w){const L=l.Rectangle.getPositionRange({startRow:$,startColumn:U,endColumn:U,endRow:$},j);d.setValue(L.startRow,L.startColumn,w)}})});const v=d.diff(c.getDataValidations()),{redoMutations:M,undoMutations:V}=$e(s,u,v);return{undos:V,redos:M}},t={id:Be,onFillData:(a,r,o)=>o===se.APPLY_TYPE.COPY||o===se.APPLY_TYPE.ONLY_FORMAT||o===se.APPLY_TYPE.SERIES?e(a):n()};this.disposeWithMe(this._autoFillService.addHook(t))}},A.DataValidationAutoFillController=Ro([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationAutoFillController),Zr(0,se.IAutoFillService),Zr(1,z.Inject(H.DataValidationModel))],A.DataValidationAutoFillController);var Mo=Object.defineProperty,Io=Object.getOwnPropertyDescriptor,Oo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Io(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Mo(n,e,a),a},qt=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationSheetController=class extends l.Disposable{constructor(n,e,t,a){super(),this._sheetInterceptorService=n,this._univerInstanceService=e,this._dataValidationModel=t,this._injector=a,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:n=>{if(n.id===he.RemoveSheetCommand.id){const e=n.params,t=e.unitId||this._univerInstanceService.getCurrentUniverSheetInstance().getUnitId(),a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return{redos:[],undos:[]};const r=e.subUnitId||a.getActiveSheet().getSheetId(),o=this._dataValidationModel.ensureManager(t,r);if(!o)return{redos:[],undos:[]};const s=o.getDataValidations(),u=s.map(p=>p.uid),c={unitId:t,subUnitId:r,ruleId:u},d={unitId:t,subUnitId:r,rule:s};return{redos:[{id:H.RemoveDataValidationMutation.id,params:c}],undos:[{id:H.AddDataValidationMutation.id,params:d}]}}return{redos:[],undos:[]}}}))}},A.DataValidationSheetController=Oo([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationSheetController),qt(0,z.Inject(he.SheetInterceptorService)),qt(1,z.Inject(l.IUniverInstanceService)),qt(2,z.Inject(H.DataValidationModel)),qt(3,z.Inject(z.Injector))],A.DataValidationSheetController);var wo=Object.defineProperty,Co=Object.getOwnPropertyDescriptor,Vo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Co(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&wo(n,e,a),a},Jr=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationCopyPasteController=class extends l.Disposable{constructor(e,t){super();W(this,"_copyInfo");this._sheetClipboardService=e,this._dataValidationModel=t,this._initCopyPaste()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:Be,onBeforeCopy:(e,t,a)=>this._collect(e,t,a),onPasteCells:(e,t,a,r)=>{const{copyType:o=se.COPY_TYPE.COPY,pasteType:s}=r,{range:u}=e||{},{range:c,unitId:d,subUnitId:p}=t;return this._generateMutations(c,{copyType:o,pasteType:s,copyRange:u,unitId:d,subUnitId:p})}})}_collect(e,t,a){const r=new l.ObjectMatrix;this._copyInfo={unitId:e,subUnitId:t,matrix:r};const o=this._dataValidationModel.ensureManager(e,t);l.Range.foreach(a,(s,u)=>{const c=o.getRuleIdByLocation(s,u),d=l.Rectangle.getRelativeRange({startRow:s,endRow:s,startColumn:u,endColumn:u},a);r.setValue(d.startRow,d.startColumn,c!=null?c:"")})}_generateMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};if(t.copyType===se.COPY_TYPE.CUT)return this._copyInfo=null,{redos:[],undos:[]};if(!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange)return{redos:[],undos:[]};if([se.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,se.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,se.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,Aa.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};const{unitId:a,subUnitId:r}=this._copyInfo;if(t.unitId!==a||r!==t.subUnitId){const o=this._dataValidationModel.ensureManager(a,r),s=this._dataValidationModel.ensureManager(t.unitId,t.subUnitId),u=s.getRuleObjectMatrix().clone(),c=se.getRepeatRange(t.copyRange,e,!0),d=new Map;c.forEach(({startRange:v})=>{var M;(M=this._copyInfo)==null||M.matrix.forValue((V,O,b)=>{const F=l.Rectangle.getPositionRange({startRow:V,endRow:V,startColumn:O,endColumn:O},v),P=`${r}-${b}`,j=o.getRuleById(b);!s.getRuleById(P)&&j&&d.set(P,{...j,uid:P}),u.setValue(F.startRow,F.startColumn,P)})});const{redoMutations:p,undoMutations:g}=$e(t.unitId,t.subUnitId,u.diffWithAddition(s.getDataValidations(),d.values()));return{redos:p,undos:g}}else{const o=this._dataValidationModel.ensureManager(a,r),s=o.getRuleObjectMatrix().clone();se.getRepeatRange(t.copyRange,e,!0).forEach(({startRange:p})=>{var g;(g=this._copyInfo)==null||g.matrix.forValue((v,M,V)=>{const O=l.Rectangle.getPositionRange({startRow:v,endRow:v,startColumn:M,endColumn:M},p);s.setValue(O.startRow,O.startColumn,V)})});const{redoMutations:c,undoMutations:d}=$e(a,r,s.diff(o.getDataValidations()));return{redos:c,undos:d}}}},A.DataValidationCopyPasteController=Vo([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationCopyPasteController),Jr(0,se.ISheetClipboardService),Jr(1,z.Inject(H.DataValidationModel))],A.DataValidationCopyPasteController);class ba{constructor(n){W(this,"value");this.value=n}addRule(n){const e=n.uid;n.ranges.forEach(t=>{l.Range.foreach(t,(a,r)=>{this.value.setValue(a,r,e)})})}removeRange(n){n.forEach(e=>{l.Range.foreach(e,(t,a)=>{this.value.realDeleteValue(t,a)})})}removeRule(n){n.ranges.forEach(e=>{l.Range.foreach(e,(t,a)=>{this.value.setValue(t,a,"")})})}updateRange(n,e,t){const a=`${n}$`;e.forEach(r=>{l.Range.foreach(r,(o,s)=>{this.value.getValue(o,s)===n&&this.value.setValue(o,s,a)})}),t.forEach(r=>{l.Range.foreach(r,(o,s)=>{this.value.setValue(o,s,n)})}),e.forEach(r=>{l.Range.foreach(r,(o,s)=>{this.value.getValue(o,s)===a&&this.value.realDeleteValue(o,s)})})}diff(n){const e=[];let t=0;return n.forEach((a,r)=>{const o=l.queryObjectMatrix(this.value,u=>u===a.uid),s=a.ranges;(o.length!==s.length||o.some((u,c)=>!l.Rectangle.equals(u,s[c])))&&e.push({type:"update",ruleId:a.uid,oldRanges:s,newRanges:o}),o.length===0&&(e.push({type:"delete",rule:a,index:r-t}),t++)}),e}diffWithAddition(n,e){const t=[];let a=0;return n.forEach((r,o)=>{const s=l.queryObjectMatrix(this.value,c=>c===r.uid),u=r.ranges;(s.length!==u.length||s.some((c,d)=>!l.Rectangle.equals(c,u[d])))&&t.push({type:"update",ruleId:r.uid,oldRanges:u,newRanges:s}),s.length===0&&(t.push({type:"delete",rule:r,index:o-a}),a++)}),Array.from(e).forEach(r=>{const o=l.queryObjectMatrix(this.value,s=>s===r.uid);t.push({type:"add",rule:{...r,ranges:o}})}),t}clone(){return new ba(new l.ObjectMatrix(this.value.clone()))}getValue(n,e){return this.value.getValue(n,e)}setValue(n,e,t){return this.value.setValue(n,e,t)}}class To extends H.DataValidationManager{constructor(e,t,a,r){super(e,t,a);W(this,"_ruleMatrix");W(this,"_dataValidatorRegistryService");W(this,"_dataValidationCacheService");W(this,"_dataValidationFormulaService");W(this,"_dataValidationCustomFormulaService");W(this,"_cache");W(this,"_dataValidationRefRangeController");this._injector=r,this._dataValidatorRegistryService=this._injector.get(H.DataValidatorRegistryService),this._dataValidationCacheService=this._injector.get(Ye),this._dataValidationFormulaService=this._injector.get(A.DataValidationFormulaService),this._dataValidationCustomFormulaService=this._injector.get(A.DataValidationCustomFormulaService),this._dataValidationRefRangeController=this._injector.get(A.DataValidationRefRangeController),this._cache=this._dataValidationCacheService.ensureCache(e,t);const o=new l.ObjectMatrix;a==null||a.forEach(s=>{const u=s.uid;s.ranges.forEach(c=>{l.Range.foreach(c,(d,p)=>{o.setValue(d,p,u)})})}),a==null||a.forEach(s=>{this._dataValidationRefRangeController.register(e,t,s)}),this._ruleMatrix=new ba(o)}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===H.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===H.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,r){const{col:o,row:s,unitId:u,subUnitId:c}=a,d=t.uid,p=this._dataValidatorRegistryService.getValidatorItem(t.type);if(p){const g=this._cache.getValue(s,o);return!g||g.value!==e?(this._cache.setValue(s,o,{value:e,status:l.DataValidationStatus.VALIDATING,ruleId:d}),p.validator({value:e,unitId:u,subUnitId:c,row:s,column:o},t).then(v=>{const M=v?l.DataValidationStatus.VALID:l.DataValidationStatus.INVALID;this._cache.setValue(s,o,{value:e,status:M,ruleId:d}),r(M)}),l.DataValidationStatus.VALIDATING):g.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 bo=Object.defineProperty,Eo=Object.getOwnPropertyDescriptor,Fo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Eo(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&bo(n,e,a),a},Ht=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationResourceController=class extends l.Disposable{constructor(n,e,t,a){super(),this._resourceManagerService=n,this._univerInstanceService=e,this._dataValidationModel=t,this._injector=a,this._initDataValidationDataSource(),this._initSnapshot()}_createSheetDataValidationManager(n,e){return new To(n,e,[],this._injector)}_initDataValidationDataSource(){this._dataValidationModel.setManagerCreator(this._createSheetDataValidationManager.bind(this))}_initSnapshot(){const n=r=>{const o=this._dataValidationModel.getUnitRules(r),s={};return o?(o.forEach(([u,c])=>{s[u]=c}),JSON.stringify(s)):""},e=r=>{if(!r)return{};try{return JSON.parse(r)}catch{return{}}},t=r=>{const o=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(o,Be,{toJson:s=>n(s),parseJson:s=>e(s),onChange:(s,u)=>{Object.keys(u).forEach(c=>{u[c].forEach(p=>{this._dataValidationModel.addRule(s,c,p)})})}}))};this.disposeWithMe(l.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(t))),this.disposeWithMe(l.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const o=r.getUnitId();this._resourceManagerService.disposePluginResource(o,Be)})));const a=this._univerInstanceService.getCurrentUniverSheetInstance();t(a)}},A.DataValidationResourceController=Fo([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationResourceController),Ht(0,l.IResourceManagerService),Ht(1,l.IUniverInstanceService),Ht(2,z.Inject(H.DataValidationModel)),Ht(3,z.Inject(z.Injector))],A.DataValidationResourceController);var Ao=Object.defineProperty,Po=Object.getOwnPropertyDescriptor,Lo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Po(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Ao(n,e,a),a},lt=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationRejectInputController=class extends l.Disposable{constructor(n,e,t,a,r){super(),this._editorBridgeService=n,this._dataValidationModel=e,this._dataValidatorRegistryService=t,this._dialogService=a,this._localeService=r,this._initEditorBridgeInterceptor()}_initEditorBridgeInterceptor(){this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,{handler:async(n,e,t)=>{const a=await n,{worksheet:r,row:o,col:s,unitId:u,subUnitId:c}=e,d=this._dataValidationModel.ensureManager(u,c),p=d.getRuleIdByLocation(o,s),g=p?d.getRuleById(p):void 0;if(!g||g.errorStyle!==l.DataValidationErrorStyle.STOP)return t(Promise.resolve(a));const v=await this._dataValidatorRegistryService.getValidatorItem(g.type);if(!v)return t(Promise.resolve(a));const M=e.worksheet.getCellRaw(e.row,e.col);if(await v.validator({value:ve(M),row:o,column:s,unitId:u,subUnitId:c},g))return t(Promise.resolve(a));const O=r.getCellRaw(o,s);return this._dialogService.open({width:368,title:{title:this._localeService.t("dataValidation.alert.title")},id:"reject-input-dialog",children:{title:v.generateRuleErrorMessage(g)},footer:{title:X.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(O))}})}},A.DataValidationRejectInputController=Lo([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationRejectInputController),lt(0,se.IEditorBridgeService),lt(1,z.Inject(H.DataValidationModel)),lt(2,z.Inject(H.DataValidatorRegistryService)),lt(3,oe.IDialogService),lt(4,z.Inject(l.LocaleService))],A.DataValidationRejectInputController);var No=Object.defineProperty,jo=Object.getOwnPropertyDescriptor,Uo=(i,n,e,t)=>{for(var a=t>1?void 0:t?jo(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&No(n,e,a),a},Ea=(i,n)=>(e,t)=>n(e,t,i);A.UniverSheetsDataValidationPlugin=class extends l.Plugin{constructor(n,e,t){super(Be),this._injector=n,this._commandService=e,this._localeService=t}onStarting(n){[[Pe],[A.SheetDataValidationService],[Ye],[A.DataValidationFormulaService],[A.DataValidationCustomFormulaService],[A.RegisterOtherFormulaService],[Ae],[A.DataValidationResourceController],[A.DataValidationController],[A.DataValidationRenderController],[A.DataValidationAlertController],[A.DataValidationRefRangeController],[A.DataValidationAutoFillController],[A.DataValidationSheetController],[A.DataValidationCopyPasteController],[A.DataValidationRejectInputController]].forEach(e=>{n.add(e)}),[pt,Gt,Kt,at,ft,Wa,xa,Ge,dn].forEach(e=>{this._commandService.registerCommand(e)}),this._localeService.load({zhCN:Qr,enUS:Xr})}},A.UniverSheetsDataValidationPlugin=Uo([Ea(0,z.Inject(z.Injector)),Ea(1,l.ICommandService),Ea(2,z.Inject(l.LocaleService))],A.UniverSheetsDataValidationPlugin),Object.defineProperty(A,"ICommandService",{enumerable:!0,get:()=>l.ICommandService}),Object.defineProperty(A,"LocaleService",{enumerable:!0,get:()=>l.LocaleService}),Object.defineProperty(A,"Plugin",{enumerable:!0,get:()=>l.Plugin}),A.AddSheetDataValidationAndOpenCommand=Gt,A.AddSheetDataValidationCommand=pt,A.DATA_VALIDATION_PLUGIN_NAME=Be,A.DataValidationCacheService=Ye,A.DataValidationFormulaMarkDirty=at,A.HideDataValidationDropdown=Wa,A.ShowDataValidationDropdown=ft,A.UpdateSheetDataValidationRangeCommand=Kt,A.enUS=Xr,A.zhCN=Qr,Object.defineProperty(A,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"})});