@univerjs/sheets-data-validation 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var en=Object.defineProperty;var tn=(o,n,e)=>n in o?en(o,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[n]=e;var j=(o,n,e)=>(tn(o,typeof n!="symbol"?n+"":n,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@univerjs/core"),Y=require("@wendellhu/redi"),k=require("@univerjs/data-validation"),oe=require("@univerjs/ui"),ie=require("@univerjs/sheets-ui"),de=require("@univerjs/engine-render"),he=require("@univerjs/sheets"),G=require("react"),re=require("@wendellhu/redi/react-bindings"),Z=require("@univerjs/design"),se=require("@univerjs/engine-formula"),ge=require("rxjs"),Yt=require("rxjs/operators"),Dr=require("@univerjs/sheets-formula");var Lt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Mr(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var Ir={exports:{}},Nt={};/**
1
+ "use strict";var na=Object.defineProperty;var oa=(i,n,e)=>n in i?na(i,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[n]=e;var R=(i,n,e)=>(oa(i,typeof n!="symbol"?n+"":n,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@univerjs/core"),F=require("@wendellhu/redi"),C=require("@univerjs/data-validation"),Y=require("@univerjs/ui"),G=require("@univerjs/sheets-ui"),Q=require("@univerjs/engine-render"),oe=require("@univerjs/sheets"),P=require("react"),q=require("@wendellhu/redi/react-bindings"),N=require("@univerjs/design"),X=require("@univerjs/engine-formula"),ne=require("rxjs"),ia=require("clsx"),at=require("rxjs/operators"),Tt=require("@univerjs/sheets-formula");var sa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function la(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var Lt={exports:{}},Ze={};/**
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 an=G,rn=Symbol.for("react.element"),nn=Symbol.for("react.fragment"),on=Object.prototype.hasOwnProperty,sn=an.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ln={key:!0,ref:!0,__self:!0,__source:!0};function Or(o,n,e){var t,a={},r=null,i=null;e!==void 0&&(r=""+e),n.key!==void 0&&(r=""+n.key),n.ref!==void 0&&(i=n.ref);for(t in n)on.call(n,t)&&!ln.hasOwnProperty(t)&&(a[t]=n[t]);if(o&&o.defaultProps)for(t in n=o.defaultProps,n)a[t]===void 0&&(a[t]=n[t]);return{$$typeof:rn,type:o,key:r,ref:i,props:a,_owner:sn.current}}Nt.Fragment=nn;Nt.jsx=Or;Nt.jsxs=Or;Ir.exports=Nt;var L=Ir.exports;function un(){const o=re.useDependency(Ne),n=oe.useObservable(o.activeDropdown$,o.activeDropdown),e=re.useDependency(oe.ComponentManager);if(!n)return null;const{location:t,componentKey:a}=n,r=e.get(a),i=`${t.unitId}-${t.subUnitId}-${t.row}-${t.col}`;if(!r)return null;const s=()=>{o.hideDropdown()};return L.jsx(r,{location:t,hideFn:s},i)}const Vr="sheet.ui.dropdown";var cn=Object.defineProperty,dn=Object.getOwnPropertyDescriptor,fn=(o,n,e,t)=>{for(var a=t>1?void 0:t?dn(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&cn(n,e,a),a},Fe=(o,n)=>(e,t)=>n(e,t,o);let Ne=class extends u.Disposable{constructor(n,e,t,a,r,i,s){super();j(this,"_activeDropdown");j(this,"_activeDropdown$",new ge.Subject);j(this,"_currentPopup",null);j(this,"activeDropdown$",this._activeDropdown$.asObservable());j(this,"_zenVisible",!1);this._canvasPopupManagerService=n,this._univerInstanceService=e,this._sheetSkeletonManagerService=t,this._dataValidatorRegistryService=a,this._zenZoneService=r,this._renderManagerService=i,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 u.DisposableCollection,i=this._renderManagerService.getRenderById(u.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);r.add(this._canvasPopupManagerService.attachPopupToCell(t,a,{componentKey:Vr,onClickOutside:()=>{this.hideDropdown()},offset:[0,3],excludeOutside:[i==null?void 0:i.engine.getCanvasElement()].filter(Boolean)})),r.add({dispose:()=>{var s,l;(l=(s=this._activeDropdown)==null?void 0:s.onHide)==null||l.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 i=this._univerInstanceService.getUniverSheetInstance(n);if(!i)return;const s=i.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:i,worksheet:s,row:t,col:a,unitId:n,subUnitId:e},componentKey:p.dropdown,onHide:r})}};Ne=fn([Fe(0,Y.Inject(ie.SheetCanvasPopManagerService)),Fe(1,u.IUniverInstanceService),Fe(2,Y.Inject(ie.SheetSkeletonManagerService)),Fe(3,Y.Inject(k.DataValidatorRegistryService)),Fe(4,oe.IZenZoneService),Fe(5,de.IRenderManagerService),Fe(6,Y.Inject(k.DataValidationModel))],Ne);class Ue extends u.Disposable{constructor(){super(...arguments);j(this,"_open$",new ge.BehaviorSubject(!1));j(this,"_activeRule");j(this,"_activeRule$",new ge.BehaviorSubject(void 0));j(this,"open$",this._open$.pipe(ge.distinctUntilChanged()));j(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 wr="DataValidationPanel",nt={id:"data-validation.operation.open-validation-panel",type:u.CommandType.OPERATION,handler(o,n){if(!n)return!1;const{ruleId:e,isAdd:t}=n,a=o.get(Ue),r=o.get(k.DataValidationModel),i=o.get(u.IUniverInstanceService),s=o.get(oe.ISidebarService),l=i.getCurrentUniverSheetInstance(),c=l.getActiveSheet(),d=l.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:wr},width:312}),!0}},Cr={id:"data-validation.operation.close-validation-panel",type:u.CommandType.OPERATION,handler(o){return o.get(Ue).close(),!0}},pn={id:"data-validation.operation.toggle-validation-panel",type:u.CommandType.OPERATION,handler(o){const n=o.get(u.ICommandService),e=o.get(Ue);return e.open(),e.isOpen?n.executeCommand(Cr.id):n.executeCommand(nt.id),!0}},xt={type:u.CommandType.OPERATION,id:"sheet.operation.show-data-validation-dropdown",handler(o,n){if(!n)return!1;const e=o.get(Ne),{unitId:t,subUnitId:a,row:r,column:i}=n,s=e.activeDropdown,l=s==null?void 0:s.location;return l&&l.unitId===t&&l.subUnitId===a&&l.row===r&&l.col===i||e.showDataValidationDropdown(t,a,r,i),!0}},br={type:u.CommandType.OPERATION,id:"sheet.operation.hide-data-validation-dropdown",handler(o,n){return n?(o.get(Ne).hideDropdown(),!0):!1}};function He(o,n,e){const t=[],a=[];return e.forEach(r=>{switch(r.type){case"delete":t.push({id:k.RemoveDataValidationMutation.id,params:{unitId:o,subUnitId:n,ruleId:r.rule.uid}}),a.unshift({id:k.AddDataValidationMutation.id,params:{unitId:o,subUnitId:n,rule:r.rule,index:r.index}});break;case"update":{t.push({id:k.UpdateDataValidationMutation.id,params:{unitId:o,subUnitId:n,ruleId:r.ruleId,payload:{type:k.UpdateRuleType.RANGE,payload:r.newRanges}}}),a.unshift({id:k.UpdateDataValidationMutation.id,params:{unitId:o,subUnitId:n,ruleId:r.ruleId,payload:{type:k.UpdateRuleType.RANGE,payload:r.oldRanges}}});break}case"add":{t.push({id:k.AddDataValidationMutation.id,params:{unitId:o,subUnitId:n,rule:r.rule}}),a.unshift({id:k.RemoveDataValidationMutation.id,params:{unitId:o,subUnitId:n,ruleId:r.rule.uid}});break}}}),{redoMutations:t,undoMutations:a}}const Ra={type:u.CommandType.COMMAND,id:"sheets.command.updateDataValidationRuleRange",async handler(o,n){if(!n)return!1;const{unitId:e,subUnitId:t,ranges:a,ruleId:r}=n,i=o.get(k.DataValidationModel),s=o.get(u.ICommandService),l=o.get(u.IUndoRedoService),c=i.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:C}=He(e,t,v);return l.pushUndoRedo({undoMutations:C,redoMutations:M,unitID:e}),await u.sequenceExecuteAsync(M,s),!0}},Ut={type:u.CommandType.COMMAND,id:"sheets.command.addDataValidation",async handler(o,n){if(!n)return!1;const{unitId:e,subUnitId:t,rule:a}=n,r=o.get(k.DataValidationModel),i=o.get(u.ICommandService),s=o.get(u.IUndoRedoService),l=r.ensureManager(e,t),c=l.getRuleObjectMatrix().clone();c.addRule(a);const d=c.diff(l.getDataValidations()),p={unitId:e,subUnitId:t,rule:a},{redoMutations:g,undoMutations:v}=He(e,t,d);return g.push({id:k.AddDataValidationMutation.id,params:p}),v.unshift({id:k.RemoveDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid}}),s.pushUndoRedo({unitID:e,redoMutations:g,undoMutations:v}),await u.sequenceExecuteAsync(g,i),!0}},Da={type:u.CommandType.COMMAND,id:"data-validation.command.addRuleAndOpen",async handler(o){const e=o.get(u.IUniverInstanceService).getCurrentUniverSheetInstance(),t=e.getActiveSheet(),a=k.createDefaultNewRule(o),r=o.get(u.ICommandService),i=e.getUnitId(),s=t.getSheetId(),l={rule:a,unitId:i,subUnitId:s};return await r.executeCommand(Ut.id,l)?(r.executeCommand(nt.id,{ruleId:a.uid,isAdd:!0}),!0):!1}};var ve=function(){return ve=Object.assign||function(o){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)&&(o[a]=n[a])}return o},ve.apply(this,arguments)},hn=function(o,n){var e={};for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&n.indexOf(t)<0&&(e[t]=o[t]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,t=Object.getOwnPropertySymbols(o);a<t.length;a++)n.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(o,t[a])&&(e[t[a]]=o[t[a]]);return e},Te=G.forwardRef(function(o,n){var e=o.icon,t=o.id,a=o.className,r=o.extend,i=hn(o,["icon","id","className","extend"]),s="univerjs-icon univerjs-icon-".concat(t," ").concat(a||"").trim(),l=G.useRef("_".concat(gn()));return Tr(e,"".concat(t),{defIds:e.defIds,idSuffix:l.current},ve({ref:n,className:s},i),r)});function Tr(o,n,e,t,a){return G.createElement(o.tag,ve(ve({key:n},mn(o,e,a)),t),(vn(o,e).children||[]).map(function(r,i){return Tr(r,"".concat(n,"-").concat(o.tag,"-").concat(i),e,void 0,a)}))}function mn(o,n,e){var t=ve({},o.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var a=n.defIds;return!a||a.length===0||(o.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+n.idSuffix),Object.entries(t).forEach(function(r){var i=r[0],s=r[1];typeof s=="string"&&(t[i]=s.replace(/url\(#(.*)\)/,"url(#$1".concat(n.idSuffix,")")))})),t}function vn(o,n){var e,t=n.defIds;return!t||t.length===0?o:o.tag==="defs"&&(!((e=o.children)===null||e===void 0)&&e.length)?ve(ve({},o),{children:o.children.map(function(a){return typeof a.attrs.id=="string"&&t&&t.indexOf(a.attrs.id)>-1?ve(ve({},a),{attrs:ve(ve({},a.attrs),{id:a.attrs.id+n.idSuffix})}):a})}):o}function gn(){return Math.random().toString(36).substring(2,8)}Te.displayName="UniverIcon";var _n={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"}}]},Er=G.forwardRef(function(o,n){return G.createElement(Te,Object.assign({},o,{id:"check-mark-single",ref:n,icon:_n}))});Er.displayName="CheckMarkSingle";const Sn=Er;var yn={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}}]},Fr=G.forwardRef(function(o,n){return G.createElement(Te,Object.assign({},o,{id:"data-validation-single",ref:n,icon:yn}))});Fr.displayName="DataValidationSingle";var Rn={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"}}]},Ar=G.forwardRef(function(o,n){return G.createElement(Te,Object.assign({},o,{id:"delete-single",ref:n,icon:Rn}))});Ar.displayName="DeleteSingle";const Pr=Ar;var Dn={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"}}]}]},Lr=G.forwardRef(function(o,n){return G.createElement(Te,Object.assign({},o,{id:"increase-single",ref:n,icon:Dn}))});Lr.displayName="IncreaseSingle";const Mn=Lr;var In={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"}}]}]},Nr=G.forwardRef(function(o,n){return G.createElement(Te,Object.assign({},o,{id:"more-down-single",ref:n,icon:In}))});Nr.displayName="MoreDownSingle";const On=Nr;var Vn={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"}}]}]},xr=G.forwardRef(function(o,n){return G.createElement(Te,Object.assign({},o,{id:"more-up-single",ref:n,icon:Vn}))});xr.displayName="MoreUpSingle";const wn=xr;var Cn={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"}}]}]},Ur=G.forwardRef(function(o,n){return G.createElement(Te,Object.assign({},o,{id:"sequence-single",ref:n,icon:Cn}))});Ur.displayName="SequenceSingle";const bn=Ur,Tn="univer-data-validation-options-button",En="univer-data-validation-options-button-icon",zt={dataValidationOptionsButton:Tn,dataValidationOptionsButtonIcon:En};function Fn(o){var c;const n=re.useDependency(u.LocaleService),e=re.useDependency(oe.ComponentManager),{value:t,onChange:a,extraComponent:r}=o,[i,s]=G.useState(!1),l=r?e.get(r):null;return L.jsxs(L.Fragment,{children:[L.jsxs("div",{className:zt.dataValidationOptionsButton,onClick:()=>s(!i),children:[n.t("dataValidation.panel.options"),i?L.jsx(wn,{className:zt.dataValidationOptionsButtonIcon}):L.jsx(On,{className:zt.dataValidationOptionsButtonIcon})]}),i&&L.jsxs(L.Fragment,{children:[l?L.jsx(l,{value:t,onChange:a}):null,L.jsx(Z.FormLayout,{label:n.t("dataValidation.panel.invalid"),children:L.jsxs(Z.RadioGroup,{value:`${(c=t.errorStyle)!=null?c:u.DataValidationErrorStyle.WARNING}`,onChange:d=>a({...t,errorStyle:+d}),children:[L.jsx(Z.Radio,{value:`${u.DataValidationErrorStyle.WARNING}`,children:n.t("dataValidation.panel.showWarning")}),L.jsx(Z.Radio,{value:`${u.DataValidationErrorStyle.STOP}`,children:n.t("dataValidation.panel.rejectInput")})]})}),L.jsx(Z.FormLayout,{label:n.t("dataValidation.panel.messageInfo"),children:L.jsx(Z.Checkbox,{checked:t.showInputMessage,onChange:()=>a({...t,showInputMessage:!t.showInputMessage}),children:n.t("dataValidation.panel.showInfo")})}),t.showInputMessage?L.jsx(Z.FormLayout,{children:L.jsx(Z.Input,{value:t.error,onChange:d=>a({...t,error:d})})}):null]})]})}const An="univer-data-validation-detail-form-item",Pn="univer-data-validation-detail-buttons",Ln="univer-data-validation-detail-button",qe={dataValidationDetailFormItem:An,dataValidationDetailButtons:Pn,dataValidationDetailButton:Ln},Nn=o=>u.debounce(async(n,e,t,a)=>{const r=await o.executeCommand(n,e,t);a==null||a(r)},275);function xn(){const[o,n]=G.useState(0),e=re.useDependency(Ue),t=oe.useObservable(e.activeRule$,e.activeRule),{unitId:a,subUnitId:r,rule:i}=t||{},s=i.uid,l=re.useDependency(k.DataValidatorRegistryService),c=re.useDependency(oe.ComponentManager),d=re.useDependency(u.ICommandService),p=re.useDependency(k.DataValidationModel),g=re.useDependency(u.LocaleService),[v,M]=G.useState(i),C=l.getValidatorItem(v.type),[O,T]=G.useState(!1),F=l.getValidatorsByScope(k.DataValidatorRegistryScope.SHEET),[A,N]=G.useState(()=>v.ranges.map(w=>({unitId:"",sheetId:"",range:w}))),$=G.useMemo(()=>Nn(d),[d]);if(G.useEffect(()=>{d.onCommandExecuted(w=>{(w.id===u.UndoCommand.id||w.id===u.RedoCommand.id)&&setTimeout(()=>{const E=p.getRuleById(a,r,s);n(U=>U+1),E&&(M(E),N(E.ranges.map(U=>({unitId:"",sheetId:"",range:U}))))},20)})},[d,p,s,r,a]),!C)return null;const x=C.operators,I=C.operatorNames,V=v.operator?k.TWO_FORMULA_OPERATOR_COUNT.includes(v.operator):!1,P=()=>{C.validatorFormula(v).success?e.setActiveRule(null):T(!0)},b=oe.useEvent(w=>{if(u.isUnitRangesEqual(w,A))return;N(w);const E=w.filter(B=>(!B.unitId||B.unitId===a)&&(!B.sheetId||B.sheetId===r)).map(B=>B.range);M({...v,ranges:E});const U={unitId:a,subUnitId:r,ruleId:s,ranges:E};$(Ra.id,U)}),R=w=>{if(u.shallowEqual(w,k.getRuleSetting(v)))return;M({...v,...w});const E={unitId:a,subUnitId:r,ruleId:s,setting:w};$(k.UpdateDataValidationSettingCommand.id,E,void 0)},D=async()=>{await d.executeCommand(k.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=w=>{const E=l.getValidatorItem(w);if(!E)return;const U=E.operators,B={...v,type:w,operator:U[0],...w===u.DataValidationType.CHECKBOX?{formula1:void 0,formula2:void 0}:null};M(B),d.executeCommand(k.UpdateDataValidationSettingCommand.id,{unitId:a,subUnitId:r,ruleId:v.uid,setting:k.getRuleSetting(B)})},h=c.get(C.formulaInput),m=A.map(w=>se.serializeRange(w.range)).join(","),f=k.getRuleOptions(v),S=w=>{u.shallowEqual(w,k.getRuleOptions(v))||(M({...v,...w}),$(k.UpdateDataValidationOptionsCommand.id,{unitId:a,subUnitId:r,ruleId:s,options:w}))};return L.jsxs("div",{children:[L.jsx(Z.FormLayout,{label:g.t("dataValidation.panel.range"),children:L.jsx(oe.RangeSelector,{className:qe.dataValidationDetailFormItem,value:m,id:"data-validation-detail",openForSheetUnitId:a,openForSheetSubUnitId:r,onChange:w=>{w.some(E=>!u.isValidRange(E.range)||E.range.endColumn<E.range.startColumn||E.range.endRow<E.range.startRow)||b(w)}},o)}),L.jsx(Z.FormLayout,{label:g.t("dataValidation.panel.type"),children:L.jsx(Z.Select,{options:F==null?void 0:F.map(w=>({label:g.t(w.title),value:w.id})),value:v.type,onChange:y,className:qe.dataValidationDetailFormItem})}),x!=null&&x.length?L.jsx(Z.FormLayout,{label:g.t("dataValidation.panel.operator"),children:L.jsx(Z.Select,{options:x.map((w,E)=>({value:`${w}`,label:I[E]})),value:`${v.operator}`,onChange:w=>{R({..._,operator:w})},className:qe.dataValidationDetailFormItem})}):null,h?L.jsx(h,{isTwoFormula:V,value:{formula1:v.formula1,formula2:v.formula2},onChange:w=>{R({..._,...w})},showError:O,validResult:C.validatorFormula(v),unitId:a,subUnitId:r},o):null,L.jsx(Fn,{value:f,onChange:S,extraComponent:C.optionsInput}),L.jsxs("div",{className:qe.dataValidationDetailButtons,children:[L.jsx(Z.Button,{className:qe.dataValidationDetailButton,onClick:D,children:g.t("dataValidation.panel.removeRule")}),L.jsx(Z.Button,{className:qe.dataValidationDetailButton,type:"primary",onClick:P,children:g.t("dataValidation.panel.done")})]})]})}const Un="univer-data-validation-item-container",jn="univer-data-validation-item-title",$n="univer-data-validation-item-content",qn="univer-data-validation-item-icon",ct={dataValidationItemContainer:Un,dataValidationItemTitle:jn,dataValidationItemContent:$n,dataValidationItemIcon:qn},Wn=o=>{const{rule:n,onClick:e,unitId:t,subUnitId:a}=o,r=re.useDependency(k.DataValidatorRegistryService),i=re.useDependency(u.ICommandService),s=re.useDependency(ie.IMarkSelectionService),l=r.getValidatorItem(n.type),c=G.useRef(),[d,p]=G.useState(!1),g=v=>{i.executeCommand(k.RemoveDataValidationCommand.id,{ruleId:n.uid,unitId:t,subUnitId:a}),v.stopPropagation()};return G.useEffect(()=>()=>{var v;c.current&&((v=c.current)==null||v.forEach(M=>{M&&s.removeShape(M)}))},[s]),L.jsxs("div",{className:ct.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:[L.jsx("div",{className:ct.dataValidationItemTitle,children:l==null?void 0:l.generateRuleName(n)}),L.jsx("div",{className:ct.dataValidationItemContent,children:n.ranges.map(v=>se.serializeRange(v)).join(",")}),d?L.jsx("div",{className:ct.dataValidationItemIcon,onClick:g,children:L.jsx(Pr,{})}):null]})},Bn="univer-data-validation-list-buttons",kn="univer-data-validation-list-button",Kt={dataValidationListButtons:Bn,dataValidationListButton:kn},Hn=G.memo(()=>{var C,O;const o=re.useDependency(u.IUniverInstanceService),n=re.useDependency(k.DataValidationModel),e=re.useDependency(u.ICommandService),t=re.useDependency(Y.Injector),a=re.useDependency(Ue),r=(C=oe.useObservable(o.currentSheet$,o.getCurrentUniverSheetInstance()))!=null?C:o.getCurrentUniverSheetInstance(),i=re.useDependency(u.LocaleService),[s,l]=G.useState([]),c=(O=oe.useObservable(r.activeSheet$,r.getActiveSheet()))!=null?O:r.getActiveSheet(),d=r.getUnitId(),p=c.getSheetId(),g=n.ensureManager(d,p);G.useEffect(()=>{l(g.getDataValidations());const T=g.dataValidations$.subscribe(F=>{l([...F])});return()=>{T.unsubscribe()}},[g]);const v=async()=>{const T=k.createDefaultNewRule(t),F={unitId:d,subUnitId:p,rule:T};await e.executeCommand(Ut.id,F),a.setActiveRule({unitId:d,subUnitId:p,rule:T})},M=()=>{e.executeCommand(k.RemoveAllDataValidationCommand.id,{unitId:d,subUnitId:p})};return L.jsxs("div",{children:[s.map(T=>L.jsx(Wn,{unitId:d,subUnitId:p,onClick:()=>a.setActiveRule({unitId:d,subUnitId:p,rule:T}),rule:T},T.uid)),L.jsxs("div",{className:Kt.dataValidationListButtons,children:[s.length?L.jsx(Z.Button,{className:Kt.dataValidationListButton,onClick:M,children:i.t("dataValidation.panel.removeAll")}):null,L.jsx(Z.Button,{className:Kt.dataValidationListButton,type:"primary",onClick:v,children:i.t("dataValidation.panel.add")})]})]})}),Yn=()=>{const o=re.useDependency(Ue),n=oe.useObservable(o.activeRule$,o.activeRule);return n?L.jsx(xn,{},n.rule.uid):L.jsx(Hn,{})};function me(o){if(o===null)return"";if(o!=null&&o.p){const n=o==null?void 0:o.p.body;if(n==null)return"";const e=n.dataStream;return e.substring(e.length-2,e.length)===u.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return o==null?void 0:o.v}function at(o,n,e,t){var l,c,d;const a=new Set,r=o.unitId||e,i=(l=n.getUniverSheetInstance(r))!=null?l:n.getCurrentUniverSheetInstance(),s=(d=(c=i.getSheetBySheetName(o.sheetName))!=null?c:i.getSheetBySheetId(t))!=null?d:i.getActiveSheet();return u.Range.foreach(o.range,(p,g)=>{const v=s.getCellRaw(p,g);if(!v)return;const M=me(v);if(M==null||M==="")return;Oe(`${M}`).forEach(O=>{O&&a.add(`${M}`)})}),Array.from(a)}function jr(o){return o.filter(Boolean).join(",")}function Oe(o){return o.split(",").filter(Boolean)}function zn(o){const n=me(o);return n==null?"":n.toString()}const Ye="SHEET_DATA_VALIDATION",Le="#ECECEC",Kn="univer-dv-list-dropdown",Gn="univer-dv-list-dropdown-title",Xn="univer-dv-list-dropdown-list",Qn="univer-dv-list-dropdown-selected-icon",Zn="univer-dv-list-dropdown-item-container",Jn="univer-dv-list-dropdown-item",eo="univer-dv-list-dropdown-split",to="univer-dv-list-dropdown-edit",Ce={dvListDropdown:Kn,dvListDropdownTitle:Gn,dvListDropdownList:Xn,dvListDropdownSelectedIcon:Qn,dvListDropdownItemContainer:Zn,dvListDropdownItem:Jn,dvListDropdownSplit:eo,dvListDropdownEdit:to},ao=o=>{const{value:n,onChange:e,multiple:t,options:a,title:r,onEdit:i,style:s}=o;return L.jsxs("div",{className:Ce.dvListDropdown,style:s,children:[L.jsx("div",{className:Ce.dvListDropdownTitle,children:r}),L.jsx("div",{className:Ce.dvListDropdownList,children:a.map((l,c)=>{const d=n.indexOf(l.value)>-1,p=()=>{let g;d?g=new Set(n.filter(M=>M!==l.value)):g=new Set(t?[...n,l.value]:[l.value]);const v=[];a.forEach(M=>{g.has(M.value)&&v.push(M.value)}),e(v)};return L.jsxs("div",{className:Ce.dvListDropdownItemContainer,onClick:p,children:[L.jsx("div",{className:Ce.dvListDropdownItem,style:{background:l.color||Le},children:l.label}),L.jsx("div",{className:Ce.dvListDropdownSelectedIcon,children:d?L.jsx(Sn,{}):null})]},c)})}),L.jsx("div",{className:Ce.dvListDropdownSplit}),L.jsx("div",{className:Ce.dvListDropdownEdit,onClick:i,children:"编辑"})]})};function ro(o){var V,P;const{location:n,hideFn:e}=o,{worksheet:t,row:a,col:r,unitId:i,subUnitId:s}=n,l=re.useDependency(u.ICommandService),c=re.useDependency(u.LocaleService),[d,p]=G.useState(""),g=re.useDependency(ie.IEditorBridgeService),v=Z.RectPopup.useContext(),M=v.right-v.left;if(!t)return null;const C=t.getCell(a,r),O=(V=C==null?void 0:C.dataValidation)==null?void 0:V.rule,T=(P=C==null?void 0:C.dataValidation)==null?void 0:P.validator,F=(O==null?void 0:O.renderMode)===u.DataValidationRenderMode.CUSTOM||(O==null?void 0:O.renderMode)===void 0;if(!C||!O||!T)return;const A=O.type===u.DataValidationType.LIST_MULTIPLE,N=T.getListWithColor(O,i,s),$=d||zn(C),x=Oe($),I=()=>{l.executeCommand(nt.id,{ruleId:O.uid}),e()};return L.jsx(ao,{style:{minWidth:M,maxWidth:Math.max(M,200)},title:A?c.t("dataValidation.listMultiple.dropdown"):c.t("dataValidation.list.dropdown"),value:x,multiple:A,onChange:b=>{const R=jr(b),D={unitId:i,subUnitId:s,range:{startColumn:r,endColumn:r,startRow:a,endRow:a},value:{v:R,p:null,f:null,si:null}};g.isVisible()&&g.changeVisible({visible:!1,keycode:oe.KeyCode.ESC,eventType:de.DeviceInputEventType.Keyboard}),l.executeCommand(he.SetRangeValuesCommand.id,D),p(R),A||e()},options:N.map(b=>({label:b.label,value:b.label,color:F?b.color:"transparent"})),onEdit:I})}var $r={exports:{}};(function(o,n){(function(e,t){o.exports=t()})(Lt,function(){var e=1e3,t=6e4,a=36e5,r="millisecond",i="second",s="minute",l="hour",c="day",d="week",p="month",g="quarter",v="year",M="date",C="Invalid Date",O=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,T=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,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])+"]"}},A=function(y,h,m){var f=String(y);return!f||f.length>=h?y:""+Array(h+1-f.length).join(m)+y},N={s:A,z:function(y){var h=-y.utcOffset(),m=Math.abs(h),f=Math.floor(m/60),S=m%60;return(h<=0?"+":"-")+A(f,2,"0")+":"+A(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),w=m-S<0,E=h.clone().add(f+(w?-1:1),p);return+(-(f+(m-S)/(w?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:l,m:s,s:i,ms:r,Q:g}[y]||String(y||"").toLowerCase().replace(/s$/,"")},u:function(y){return y===void 0}},$="en",x={};x[$]=F;var I="$isDayjsObject",V=function(y){return y instanceof D||!(!y||!y[I])},P=function y(h,m,f){var S;if(!h)return $;if(typeof h=="string"){var w=h.toLowerCase();x[w]&&(S=w),m&&(x[w]=m,S=w);var E=h.split("-");if(!S&&E.length>1)return y(E[0])}else{var U=h.name;x[U]=h,S=U}return!f&&S&&($=S),S||!f&&$},b=function(y,h){if(V(y))return y.clone();var m=typeof h=="object"?h:{};return m.date=y,m.args=arguments,new D(m)},R=N;R.l=P,R.i=V,R.w=function(y,h){return b(y,{locale:h.$L,utc:h.$u,x:h.$x,$offset:h.$offset})};var D=function(){function y(m){this.$L=P(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,w=f.utc;if(S===null)return new Date(NaN);if(R.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 U=E[2]-1||0,B=(E[7]||"0").substring(0,3);return w?new Date(Date.UTC(E[1],U,E[3]||1,E[4]||0,E[5]||0,E[6]||0,B)):new Date(E[1],U,E[3]||1,E[4]||0,E[5]||0,E[6]||0,B)}}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 R},h.isValid=function(){return this.$d.toString()!==C},h.isSame=function(m,f){var S=b(m);return this.startOf(f)<=S&&S<=this.endOf(f)},h.isAfter=function(m,f){return b(m)<this.startOf(f)},h.isBefore=function(m,f){return this.endOf(f)<b(m)},h.$g=function(m,f,S){return R.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,w=!!R.u(f)||f,E=R.p(m),U=function(ee,Q){var J=R.w(S.$u?Date.UTC(S.$y,Q,ee):new Date(S.$y,Q,ee),S);return w?J:J.endOf(c)},B=function(ee,Q){return R.w(S.toDate()[ee].apply(S.toDate("s"),(w?[0,0,0,0]:[23,59,59,999]).slice(Q)),S)},H=this.$W,W=this.$M,q=this.$D,z="set"+(this.$u?"UTC":"");switch(E){case v:return w?U(1,0):U(31,11);case p:return w?U(1,W):U(0,W+1);case d:var X=this.$locale().weekStart||0,K=(H<X?H+7:H)-X;return U(w?q-K:q+(6-K),W);case c:case M:return B(z+"Hours",0);case l:return B(z+"Minutes",1);case s:return B(z+"Seconds",2);case i:return B(z+"Milliseconds",3);default:return this.clone()}},h.endOf=function(m){return this.startOf(m,!1)},h.$set=function(m,f){var S,w=R.p(m),E="set"+(this.$u?"UTC":""),U=(S={},S[c]=E+"Date",S[M]=E+"Date",S[p]=E+"Month",S[v]=E+"FullYear",S[l]=E+"Hours",S[s]=E+"Minutes",S[i]=E+"Seconds",S[r]=E+"Milliseconds",S)[w],B=w===c?this.$D+(f-this.$W):f;if(w===p||w===v){var H=this.clone().set(M,1);H.$d[U](B),H.init(),this.$d=H.set(M,Math.min(this.$D,H.daysInMonth())).$d}else U&&this.$d[U](B);return this.init(),this},h.set=function(m,f){return this.clone().$set(m,f)},h.get=function(m){return this[R.p(m)]()},h.add=function(m,f){var S,w=this;m=Number(m);var E=R.p(f),U=function(W){var q=b(w);return R.w(q.date(q.date()+Math.round(W*m)),w)};if(E===p)return this.set(p,this.$M+m);if(E===v)return this.set(v,this.$y+m);if(E===c)return U(1);if(E===d)return U(7);var B=(S={},S[s]=t,S[l]=a,S[i]=e,S)[E]||1,H=this.$d.getTime()+m*B;return R.w(H,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||C;var w=m||"YYYY-MM-DDTHH:mm:ssZ",E=R.z(this),U=this.$H,B=this.$m,H=this.$M,W=S.weekdays,q=S.months,z=S.meridiem,X=function(Q,J,ne,te){return Q&&(Q[J]||Q(f,w))||ne[J].slice(0,te)},K=function(Q){return R.s(U%12||12,Q,"0")},ee=z||function(Q,J,ne){var te=Q<12?"AM":"PM";return ne?te.toLowerCase():te};return w.replace(T,function(Q,J){return J||function(ne){switch(ne){case"YY":return String(f.$y).slice(-2);case"YYYY":return R.s(f.$y,4,"0");case"M":return H+1;case"MM":return R.s(H+1,2,"0");case"MMM":return X(S.monthsShort,H,q,3);case"MMMM":return X(q,H);case"D":return f.$D;case"DD":return R.s(f.$D,2,"0");case"d":return String(f.$W);case"dd":return X(S.weekdaysMin,f.$W,W,2);case"ddd":return X(S.weekdaysShort,f.$W,W,3);case"dddd":return W[f.$W];case"H":return String(U);case"HH":return R.s(U,2,"0");case"h":return K(1);case"hh":return K(2);case"a":return ee(U,B,!0);case"A":return ee(U,B,!1);case"m":return String(B);case"mm":return R.s(B,2,"0");case"s":return String(f.$s);case"ss":return R.s(f.$s,2,"0");case"SSS":return R.s(f.$ms,3,"0");case"Z":return E}return null}(Q)||E.replace(":","")})},h.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},h.diff=function(m,f,S){var w,E=this,U=R.p(f),B=b(m),H=(B.utcOffset()-this.utcOffset())*t,W=this-B,q=function(){return R.m(E,B)};switch(U){case v:w=q()/12;break;case p:w=q();break;case g:w=q()/3;break;case d:w=(W-H)/6048e5;break;case c:w=(W-H)/864e5;break;case l:w=W/a;break;case s:w=W/t;break;case i:w=W/e;break;default:w=W}return S?w:R.a(w)},h.daysInMonth=function(){return this.endOf(p).$D},h.$locale=function(){return x[this.$L]},h.locale=function(m,f){if(!m)return this.$L;var S=this.clone(),w=P(m,f,!0);return w&&(S.$L=w),S},h.clone=function(){return R.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}(),_=D.prototype;return b.prototype=_,[["$ms",r],["$s",i],["$m",s],["$H",l],["$W",c],["$M",p],["$y",v],["$D",M]].forEach(function(y){_[y[1]]=function(h){return this.$g(h,y[0],y[1])}}),b.extend=function(y,h){return y.$i||(y(h,D,b),y.$i=!0),b},b.locale=P,b.isDayjs=V,b.unix=function(y){return b(1e3*y)},b.en=x[$],b.Ls=x,b.p={},b})})($r);var no=$r.exports;const xe=Mr(no),oo="univer-dv-date-dropdown",io={dvDateDropdown:oo};function so(o){var T,F,A;const{location:n,hideFn:e}=o,{worksheet:t,row:a,col:r,unitId:i,subUnitId:s}=n,l=re.useDependency(u.ICommandService),[c,d]=G.useState();if(!t)return null;const p=t.getCell(a,r),g=(T=p==null?void 0:p.dataValidation)==null?void 0:T.rule,v=(F=p==null?void 0:p.dataValidation)==null?void 0:F.validator;if(!p||!g||!v)return;const M=me(p),C=(A=v.transformDate(M))!=null?A:xe(),O=C.isValid()?C:xe();return L.jsx("div",{className:io.dvDateDropdown,children:L.jsx(Z.DatePanel,{pickerValue:c!=null?c:O,onSelect:N=>{const $=N.format("YYYY/MM/DD");l.executeCommand(he.SetRangeValuesCommand.id,{unitId:i,subUnitId:s,range:{startColumn:r,endColumn:r,startRow:a,endRow:a},value:{v:$,p:null,f:null,si:null}}),e()},onPanelChange:N=>{d(N)}})})}const Ma="data-validation.list.dropdown",qr="data-validation.date.dropdown";function lo(o){var l;const{unitId:n,subUnitId:e,value:t,onChange:a,showError:r,validResult:i}=o,s=r?i==null?void 0:i.formula1:"";return L.jsx(Z.FormLayout,{error:s,children:L.jsx(oe.TextEditor,{value:(l=t==null?void 0:t.formula1)!=null?l:"",id:`dataValidation-custom-formula-${n}-${e}`,onChange:c=>{a==null||a({...t,formula1:c!=null?c:""})},onlyInputFormula:!0})})}const uo="univer-data-validation-formula",co="univer-data-validation-formula-and",fo="univer-data-validation-formula-list-item",po="univer-data-validation-formula-list-item-icon",ho="univer-data-validation-formula-list-item-drag",mo="univer-data-validation-formula-list-add",vo="univer-data-validation-formula-color-select",go="univer-data-validation-formula-color-select-panel",_o="univer-data-validation-formula-color-item",pe={dataValidationFormula:uo,dataValidationFormulaAnd:co,dataValidationFormulaListItem:fo,dataValidationFormulaListItemIcon:po,dataValidationFormulaListItemDrag:ho,dataValidationFormulaListAdd:mo,dataValidationFormulaColorSelect:vo,dataValidationFormulaColorSelectPanel:go,dataValidationFormulaColorItem:_o},So=o=>{const{isTwoFormula:n=!1,value:e,onChange:t,showError:a,validResult:r}=o,i=re.useDependency(u.LocaleService),s=a?r==null?void 0:r.formula1:"",l=a?r==null?void 0:r.formula2:"";return n?L.jsxs(L.Fragment,{children:[L.jsx(Z.FormLayout,{error:s,children:L.jsx(Z.Input,{className:pe.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:c=>{t==null||t({...e,formula1:c})}})}),L.jsx("div",{className:pe.dataValidationFormulaAnd,children:i.t("dataValidation.panel.formulaAnd")}),L.jsx(Z.FormLayout,{error:l,children:L.jsx(Z.Input,{className:pe.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula2,onChange:c=>{t==null||t({...e,formula2:c})}})})]}):L.jsx(Z.FormLayout,{error:s,children:L.jsx(Z.Input,{className:pe.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:c=>{t==null||t({formula1:c})}})})};var ma={exports:{}},Wr={exports:{}};(function(o){function n(e){return e&&e.__esModule?e:{default:e}}o.exports=n,o.exports.__esModule=!0,o.exports.default=o.exports})(Wr);var ot=Wr.exports,Br={exports:{}};(function(o){function n(e){"@babel/helpers - typeof";return o.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},o.exports.__esModule=!0,o.exports.default=o.exports,n(e)}o.exports=n,o.exports.__esModule=!0,o.exports.default=o.exports})(Br);var je=Br.exports,Gt={exports:{}},Fa;function it(){return Fa||(Fa=1,function(o){function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}o.exports=n,o.exports.__esModule=!0,o.exports.default=o.exports}(Gt)),Gt.exports}var Xt={exports:{}},Qt={exports:{}},Zt={exports:{}},Aa;function yo(){return Aa||(Aa=1,function(o){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 i=r.call(t,a||"default");if(n(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(t)}o.exports=e,o.exports.__esModule=!0,o.exports.default=o.exports}(Zt)),Zt.exports}var Pa;function kr(){return Pa||(Pa=1,function(o){var n=je.default,e=yo();function t(a){var r=e(a,"string");return n(r)=="symbol"?r:r+""}o.exports=t,o.exports.__esModule=!0,o.exports.default=o.exports}(Qt)),Qt.exports}var La;function st(){return La||(La=1,function(o){var n=kr();function e(a,r){for(var i=0;i<r.length;i++){var s=r[i];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,i){return r&&e(a.prototype,r),i&&e(a,i),Object.defineProperty(a,"prototype",{writable:!1}),a}o.exports=t,o.exports.__esModule=!0,o.exports.default=o.exports}(Xt)),Xt.exports}var Jt={exports:{}},ea={exports:{}},Na;function jt(){return Na||(Na=1,function(o){function n(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}o.exports=n,o.exports.__esModule=!0,o.exports.default=o.exports}(ea)),ea.exports}var xa;function $t(){return xa||(xa=1,function(o){var n=je.default,e=jt();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)}o.exports=t,o.exports.__esModule=!0,o.exports.default=o.exports}(Jt)),Jt.exports}var ta={exports:{}},Ua;function qt(){return Ua||(Ua=1,function(o){function n(e){return o.exports=n=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(a){return a.__proto__||Object.getPrototypeOf(a)},o.exports.__esModule=!0,o.exports.default=o.exports,n(e)}o.exports=n,o.exports.__esModule=!0,o.exports.default=o.exports}(ta)),ta.exports}var aa={exports:{}},ra={exports:{}},ja;function Ro(){return ja||(ja=1,function(o){function n(e,t){return o.exports=n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},o.exports.__esModule=!0,o.exports.default=o.exports,n(e,t)}o.exports=n,o.exports.__esModule=!0,o.exports.default=o.exports}(ra)),ra.exports}var $a;function Wt(){return $a||($a=1,function(o){var n=Ro();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)}o.exports=e,o.exports.__esModule=!0,o.exports.default=o.exports}(aa)),aa.exports}var na={exports:{}},qa;function Bt(){return qa||(qa=1,function(o){var n=kr();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}o.exports=e,o.exports.__esModule=!0,o.exports.default=o.exports}(na)),na.exports}var oa={exports:{}},ia,Wa;function Do(){if(Wa)return ia;Wa=1;var o="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return ia=o,ia}var sa,Ba;function Mo(){if(Ba)return sa;Ba=1;var o=Do();function n(){}function e(){}return e.resetWarningCache=n,sa=function(){function t(i,s,l,c,d,p){if(p!==o){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},sa}var ka;function kt(){return ka||(ka=1,oa.exports=Mo()()),oa.exports}var Se={},dt={exports:{}},ft={exports:{}},Ha;function Ia(){return Ha||(Ha=1,function(o,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}o.exports=n.default}(ft,ft.exports)),ft.exports}var pt={exports:{}},Ya;function Ht(){return Ya||(Ya=1,function(o,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}o.exports=n.default}(pt,pt.exports)),pt.exports}var ht={exports:{}},za;function Oa(){return za||(za=1,function(o,n){n.__esModule=!0,n.default=t;var e=[0,0];function t(a,r,i,s,l,c,d){var p=-l*(r-s),g=-c*i,v=p+g,M=i+v*a,C=r+M*a;return Math.abs(M)<d&&Math.abs(C-s)<d?(e[0]=s,e[1]=0,e):(e[0]=C,e[1]=M,e)}o.exports=n.default}(ht,ht.exports)),ht.exports}var We={exports:{}},Ka;function Va(){return Ka||(Ka=1,function(){var o,n,e;typeof performance<"u"&&performance!==null&&performance.now?We.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(We.exports=function(){return(o()-e)/1e6},n=process.hrtime,o=function(){var t;return t=n(),t[0]*1e9+t[1]},e=o()):Date.now?(We.exports=function(){return Date.now()-e},e=Date.now()):(We.exports=function(){return new Date().getTime()-e},e=new Date().getTime())}.call(Lt)),We.exports}var Ge={exports:{}},Be={exports:{}},Ga;function Io(){return Ga||(Ga=1,function(){var o,n,e,t,a,r;typeof performance<"u"&&performance!==null&&performance.now?Be.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(Be.exports=function(){return(o()-a)/1e6},n=process.hrtime,o=function(){var i;return i=n(),i[0]*1e9+i[1]},t=o(),r=process.uptime()*1e9,a=t-r):Date.now?(Be.exports=function(){return Date.now()-e},e=Date.now()):(Be.exports=function(){return new Date().getTime()-e},e=new Date().getTime())}.call(Lt)),Be.exports}var Xa;function wa(){if(Xa)return Ge.exports;Xa=1;for(var o=Io(),n=typeof window>"u"?Lt:window,e=["moz","webkit"],t="AnimationFrame",a=n["request"+t],r=n["cancel"+t]||n["cancelRequest"+t],i=0;!a&&i<e.length;i++)a=n[e[i]+"Request"+t],r=n[e[i]+"Cancel"+t]||n[e[i]+"CancelRequest"+t];if(!a||!r){var s=0,l=0,c=[],d=1e3/60;a=function(p){if(c.length===0){var g=o(),v=Math.max(0,d-(g-s));s=v+g,setTimeout(function(){var M=c.slice(0);c.length=0;for(var C=0;C<M.length;C++)if(!M[C].cancelled)try{M[C].callback(s)}catch(O){setTimeout(function(){throw O},0)}},Math.round(v))}return c.push({handle:++l,callback:p,cancelled:!1}),l},r=function(p){for(var g=0;g<c.length;g++)c[g].handle===p&&(c[g].cancelled=!0)}}return Ge.exports=function(p){return a.call(n,p)},Ge.exports.cancel=function(){r.apply(n,arguments)},Ge.exports.polyfill=function(p){p||(p=n),p.requestAnimationFrame=a,p.cancelAnimationFrame=r},Ge.exports}var mt={exports:{}},Qa;function Ca(){return Qa||(Qa=1,function(o,n){n.__esModule=!0,n.default=e;function e(t,a,r){for(var i in a)if(Object.prototype.hasOwnProperty.call(a,i)){if(r[i]!==0)return!1;var s=typeof a[i]=="number"?a[i]:a[i].val;if(t[i]!==s)return!1}return!0}o.exports=n.default}(mt,mt.exports)),mt.exports}var Za;function Oo(){return Za||(Za=1,function(o,n){n.__esModule=!0;var e=Object.assign||function(P){for(var b=1;b<arguments.length;b++){var R=arguments[b];for(var D in R)Object.prototype.hasOwnProperty.call(R,D)&&(P[D]=R[D])}return P},t=function(){function P(b,R){for(var D=0;D<R.length;D++){var _=R[D];_.enumerable=_.enumerable||!1,_.configurable=!0,"value"in _&&(_.writable=!0),Object.defineProperty(b,_.key,_)}}return function(b,R,D){return R&&P(b.prototype,R),D&&P(b,D),b}}();function a(P){return P&&P.__esModule?P:{default:P}}function r(P,b){if(!(P instanceof b))throw new TypeError("Cannot call a class as a function")}function i(P,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof b);P.prototype=Object.create(b&&b.prototype,{constructor:{value:P,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(P,b):P.__proto__=b)}var s=Ia(),l=a(s),c=Ht(),d=a(c),p=Oa(),g=a(p),v=Va(),M=a(v),C=wa(),O=a(C),T=Ca(),F=a(T),A=G,N=a(A),$=kt(),x=a($),I=1e3/60,V=function(P){i(b,P),t(b,null,[{key:"propTypes",value:{defaultStyle:x.default.objectOf(x.default.number),style:x.default.objectOf(x.default.oneOfType([x.default.number,x.default.object])).isRequired,children:x.default.func.isRequired,onRest:x.default.func},enumerable:!0}]);function b(R){var D=this;r(this,b),P.call(this,R),this.wasAnimating=!1,this.animationID=null,this.prevTime=0,this.accumulatedTime=0,this.unreadPropStyle=null,this.clearUnreadPropStyle=function(_){var y=!1,h=D.state,m=h.currentStyle,f=h.currentVelocity,S=h.lastIdealStyle,w=h.lastIdealVelocity;for(var E in _)if(Object.prototype.hasOwnProperty.call(_,E)){var U=_[E];typeof U=="number"&&(y||(y=!0,m=e({},m),f=e({},f),S=e({},S),w=e({},w)),m[E]=U,f[E]=0,S[E]=U,w[E]=0)}y&&D.setState({currentStyle:m,currentVelocity:f,lastIdealStyle:S,lastIdealVelocity:w})},this.startAnimationIfNecessary=function(){D.animationID=O.default(function(_){var y=D.props.style;if(F.default(D.state.currentStyle,y,D.state.currentVelocity)){D.wasAnimating&&D.props.onRest&&D.props.onRest(),D.animationID=null,D.wasAnimating=!1,D.accumulatedTime=0;return}D.wasAnimating=!0;var h=_||M.default(),m=h-D.prevTime;if(D.prevTime=h,D.accumulatedTime=D.accumulatedTime+m,D.accumulatedTime>I*10&&(D.accumulatedTime=0),D.accumulatedTime===0){D.animationID=null,D.startAnimationIfNecessary();return}var f=(D.accumulatedTime-Math.floor(D.accumulatedTime/I)*I)/I,S=Math.floor(D.accumulatedTime/I),w={},E={},U={},B={};for(var H in y)if(Object.prototype.hasOwnProperty.call(y,H)){var W=y[H];if(typeof W=="number")U[H]=W,B[H]=0,w[H]=W,E[H]=0;else{for(var q=D.state.lastIdealStyle[H],z=D.state.lastIdealVelocity[H],X=0;X<S;X++){var K=g.default(I/1e3,q,z,W.val,W.stiffness,W.damping,W.precision);q=K[0],z=K[1]}var ee=g.default(I/1e3,q,z,W.val,W.stiffness,W.damping,W.precision),Q=ee[0],J=ee[1];U[H]=q+(Q-q)*f,B[H]=z+(J-z)*f,w[H]=q,E[H]=z}}D.animationID=null,D.accumulatedTime-=S*I,D.setState({currentStyle:U,currentVelocity:B,lastIdealStyle:w,lastIdealVelocity:E}),D.unreadPropStyle=null,D.startAnimationIfNecessary()})},this.state=this.defaultState()}return b.prototype.defaultState=function(){var D=this.props,_=D.defaultStyle,y=D.style,h=_||d.default(y),m=l.default(h);return{currentStyle:h,currentVelocity:m,lastIdealStyle:h,lastIdealVelocity:m}},b.prototype.componentDidMount=function(){this.prevTime=M.default(),this.startAnimationIfNecessary()},b.prototype.componentWillReceiveProps=function(D){this.unreadPropStyle!=null&&this.clearUnreadPropStyle(this.unreadPropStyle),this.unreadPropStyle=D.style,this.animationID==null&&(this.prevTime=M.default(),this.startAnimationIfNecessary())},b.prototype.componentWillUnmount=function(){this.animationID!=null&&(O.default.cancel(this.animationID),this.animationID=null)},b.prototype.render=function(){var D=this.props.children(this.state.currentStyle);return D&&N.default.Children.only(D)},b}(N.default.Component);n.default=V,o.exports=n.default}(dt,dt.exports)),dt.exports}var vt={exports:{}},Ja;function Vo(){return Ja||(Ja=1,function(o,n){n.__esModule=!0;var e=Object.assign||function(b){for(var R=1;R<arguments.length;R++){var D=arguments[R];for(var _ in D)Object.prototype.hasOwnProperty.call(D,_)&&(b[_]=D[_])}return b},t=function(){function b(R,D){for(var _=0;_<D.length;_++){var y=D[_];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(R,y.key,y)}}return function(R,D,_){return D&&b(R.prototype,D),_&&b(R,_),R}}();function a(b){return b&&b.__esModule?b:{default:b}}function r(b,R){if(!(b instanceof R))throw new TypeError("Cannot call a class as a function")}function i(b,R){if(typeof R!="function"&&R!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof R);b.prototype=Object.create(R&&R.prototype,{constructor:{value:b,enumerable:!1,writable:!0,configurable:!0}}),R&&(Object.setPrototypeOf?Object.setPrototypeOf(b,R):b.__proto__=R)}var s=Ia(),l=a(s),c=Ht(),d=a(c),p=Oa(),g=a(p),v=Va(),M=a(v),C=wa(),O=a(C),T=Ca(),F=a(T),A=G,N=a(A),$=kt(),x=a($),I=1e3/60;function V(b,R,D){for(var _=0;_<b.length;_++)if(!F.default(b[_],R[_],D[_]))return!1;return!0}var P=function(b){i(R,b),t(R,null,[{key:"propTypes",value:{defaultStyles:x.default.arrayOf(x.default.objectOf(x.default.number)),styles:x.default.func.isRequired,children:x.default.func.isRequired},enumerable:!0}]);function R(D){var _=this;r(this,R),b.call(this,D),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,w=h.lastIdealVelocities,E=!1,U=0;U<y.length;U++){var B=y[U],H=!1;for(var W in B)if(Object.prototype.hasOwnProperty.call(B,W)){var q=B[W];typeof q=="number"&&(H||(H=!0,E=!0,m[U]=e({},m[U]),f[U]=e({},f[U]),S[U]=e({},S[U]),w[U]=e({},w[U])),m[U][W]=q,f[U][W]=0,S[U][W]=q,w[U][W]=0)}}E&&_.setState({currentStyles:m,currentVelocities:f,lastIdealStyles:S,lastIdealVelocities:w})},this.startAnimationIfNecessary=function(){_.animationID=O.default(function(y){var h=_.props.styles(_.state.lastIdealStyles);if(V(_.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,w=Math.floor(_.accumulatedTime/I),E=[],U=[],B=[],H=[],W=0;W<h.length;W++){var q=h[W],z={},X={},K={},ee={};for(var Q in q)if(Object.prototype.hasOwnProperty.call(q,Q)){var J=q[Q];if(typeof J=="number")z[Q]=J,X[Q]=0,K[Q]=J,ee[Q]=0;else{for(var ne=_.state.lastIdealStyles[W][Q],te=_.state.lastIdealVelocities[W][Q],le=0;le<w;le++){var ue=g.default(I/1e3,ne,te,J.val,J.stiffness,J.damping,J.precision);ne=ue[0],te=ue[1]}var ce=g.default(I/1e3,ne,te,J.val,J.stiffness,J.damping,J.precision),ae=ce[0],fe=ce[1];z[Q]=ne+(ae-ne)*S,X[Q]=te+(fe-te)*S,K[Q]=ne,ee[Q]=te}}B[W]=z,H[W]=X,E[W]=K,U[W]=ee}_.animationID=null,_.accumulatedTime-=w*I,_.setState({currentStyles:B,currentVelocities:H,lastIdealStyles:E,lastIdealVelocities:U}),_.unreadPropStyles=null,_.startAnimationIfNecessary()})},this.state=this.defaultState()}return R.prototype.defaultState=function(){var _=this.props,y=_.defaultStyles,h=_.styles,m=y||h().map(d.default),f=m.map(function(S){return l.default(S)});return{currentStyles:m,currentVelocities:f,lastIdealStyles:m,lastIdealVelocities:f}},R.prototype.componentDidMount=function(){this.prevTime=M.default(),this.startAnimationIfNecessary()},R.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())},R.prototype.componentWillUnmount=function(){this.animationID!=null&&(O.default.cancel(this.animationID),this.animationID=null)},R.prototype.render=function(){var _=this.props.children(this.state.currentStyles);return _&&N.default.Children.only(_)},R}(N.default.Component);n.default=P,o.exports=n.default}(vt,vt.exports)),vt.exports}var gt={exports:{}},_t={exports:{}},er;function wo(){return er||(er=1,function(o,n){n.__esModule=!0,n.default=e;function e(t,a,r){for(var i={},s=0;s<t.length;s++)i[t[s].key]=s;for(var l={},s=0;s<a.length;s++)l[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(l,t[s].key)){var d=r(s,t[s]);d!=null&&c.push(d)}return c.sort(function(p,g){var v=l[p.key],M=l[g.key],C=i[p.key],O=i[g.key];if(v!=null&&M!=null)return l[p.key]-l[g.key];if(C!=null&&O!=null)return i[p.key]-i[g.key];if(v!=null){for(var T=0;T<a.length;T++){var F=a[T].key;if(Object.prototype.hasOwnProperty.call(i,F)){if(v<l[F]&&O>i[F])return-1;if(v>l[F]&&O<i[F])return 1}}return 1}for(var T=0;T<a.length;T++){var F=a[T].key;if(Object.prototype.hasOwnProperty.call(i,F)){if(M<l[F]&&C>i[F])return 1;if(M>l[F]&&C<i[F])return-1}}return-1})}o.exports=n.default}(_t,_t.exports)),_t.exports}var tr;function Co(){return tr||(tr=1,function(o,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 i(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=Ia(),l=a(s),c=Ht(),d=a(c),p=Oa(),g=a(p),v=wo(),M=a(v),C=Va(),O=a(C),T=wa(),F=a(T),A=Ca(),N=a(A),$=G,x=a($),I=kt(),V=a(I),P=1e3/60;function b(y,h,m){var f=h;return f==null?y.map(function(S,w){return{key:S.key,data:S.data,style:m[w]}}):y.map(function(S,w){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[w]};return{key:S.key,data:S.data,style:m[w]}})}function R(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(!N.default(y[S],h[S].style,m[S]))return!1;return!0}function D(y,h,m,f,S,w,E,U,B){for(var H=M.default(f,S,function(le,ue){var ce=h(ue);return ce==null?(m({key:ue.key,data:ue.data}),null):N.default(w[le],ce,E[le])?(m({key:ue.key,data:ue.data}),null):{key:ue.key,data:ue.data,style:ce}}),W=[],q=[],z=[],X=[],K=0;K<H.length;K++){for(var ee=H[K],Q=null,J=0;J<f.length;J++)if(f[J].key===ee.key){Q=J;break}if(Q==null){var ne=y(ee);W[K]=ne,z[K]=ne;var te=l.default(ee.style);q[K]=te,X[K]=te}else W[K]=w[Q],z[K]=U[Q],q[K]=E[Q],X[K]=B[Q]}return[H,W,q,z,X]}var _=function(y){i(h,y),t(h,null,[{key:"propTypes",value:{defaultStyles:V.default.arrayOf(V.default.shape({key:V.default.string.isRequired,data:V.default.any,style:V.default.objectOf(V.default.number).isRequired})),styles:V.default.oneOfType([V.default.func,V.default.arrayOf(V.default.shape({key:V.default.string.isRequired,data:V.default.any,style:V.default.objectOf(V.default.oneOfType([V.default.number,V.default.object])).isRequired}))]).isRequired,children:V.default.func.isRequired,willEnter:V.default.func,willLeave:V.default.func,didLeave:V.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 w=D(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=w[0],U=w[1],B=w[2],H=w[3],W=w[4],q=0;q<S.length;q++){var z=S[q].style,X=!1;for(var K in z)if(Object.prototype.hasOwnProperty.call(z,K)){var ee=z[K];typeof ee=="number"&&(X||(X=!0,U[q]=e({},U[q]),B[q]=e({},B[q]),H[q]=e({},H[q]),W[q]=e({},W[q]),E[q]={key:E[q].key,data:E[q].data,style:e({},E[q].style)}),U[q][K]=ee,B[q][K]=0,H[q][K]=ee,W[q][K]=0,E[q].style[K]=ee)}}f.setState({currentStyles:U,currentVelocities:B,mergedPropsStyles:E,lastIdealStyles:H,lastIdealVelocities:W})},this.startAnimationIfNecessary=function(){f.unmounting||(f.animationID=F.default(function(S){if(!f.unmounting){var w=f.props.styles,E=typeof w=="function"?w(b(f.state.mergedPropsStyles,f.unreadPropStyles,f.state.lastIdealStyles)):w;if(R(f.state.currentStyles,E,f.state.currentVelocities,f.state.mergedPropsStyles)){f.animationID=null,f.accumulatedTime=0;return}var U=S||O.default(),B=U-f.prevTime;if(f.prevTime=U,f.accumulatedTime=f.accumulatedTime+B,f.accumulatedTime>P*10&&(f.accumulatedTime=0),f.accumulatedTime===0){f.animationID=null,f.startAnimationIfNecessary();return}for(var H=(f.accumulatedTime-Math.floor(f.accumulatedTime/P)*P)/P,W=Math.floor(f.accumulatedTime/P),q=D(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),z=q[0],X=q[1],K=q[2],ee=q[3],Q=q[4],J=0;J<z.length;J++){var ne=z[J].style,te={},le={},ue={},ce={};for(var ae in ne)if(Object.prototype.hasOwnProperty.call(ne,ae)){var fe=ne[ae];if(typeof fe=="number")te[ae]=fe,le[ae]=0,ue[ae]=fe,ce[ae]=0;else{for(var Ve=ee[J][ae],we=Q[J][ae],ut=0;ut<W;ut++){var $e=g.default(P/1e3,Ve,we,fe.val,fe.stiffness,fe.damping,fe.precision);Ve=$e[0],we=$e[1]}var De=g.default(P/1e3,Ve,we,fe.val,fe.stiffness,fe.damping,fe.precision),Ke=De[0],Ee=De[1];te[ae]=Ve+(Ke-Ve)*H,le[ae]=we+(Ee-we)*H,ue[ae]=Ve,ce[ae]=we}}ee[J]=ue,Q[J]=ce,X[J]=te,K[J]=le}f.animationID=null,f.accumulatedTime-=W*P,f.setState({currentStyles:X,currentVelocities:K,lastIdealStyles:ee,lastIdealVelocities:Q,mergedPropsStyles:z}),f.unreadPropStyles=null,f.startAnimationIfNecessary()}}))},this.state=this.defaultState()}return h.prototype.defaultState=function(){var f=this.props,S=f.defaultStyles,w=f.styles,E=f.willEnter,U=f.willLeave,B=f.didLeave,H=typeof w=="function"?w(S):w,W=void 0;S==null?W=H:W=S.map(function(te){for(var le=0;le<H.length;le++)if(H[le].key===te.key)return H[le];return te});var q=S==null?H.map(function(te){return d.default(te.style)}):S.map(function(te){return d.default(te.style)}),z=S==null?H.map(function(te){return l.default(te.style)}):S.map(function(te){return l.default(te.style)}),X=D(E,U,B,W,H,q,z,q,z),K=X[0],ee=X[1],Q=X[2],J=X[3],ne=X[4];return{currentStyles:ee,currentVelocities:Q,lastIdealStyles:J,lastIdealVelocities:ne,mergedPropsStyles:K}},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(b(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=b(this.state.mergedPropsStyles,this.unreadPropStyles,this.state.currentStyles),S=this.props.children(f);return S&&x.default.Children.only(S)},h}(x.default.Component);n.default=_,o.exports=n.default}(gt,gt.exports)),gt.exports}var St={exports:{}},yt={exports:{}},ar;function Hr(){return ar||(ar=1,function(o,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}},o.exports=n.default}(yt,yt.exports)),yt.exports}var rr;function bo(){return rr||(rr=1,function(o,n){n.__esModule=!0;var e=Object.assign||function(l){for(var c=1;c<arguments.length;c++){var d=arguments[c];for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(l[p]=d[p])}return l};n.default=s;function t(l){return l&&l.__esModule?l:{default:l}}var a=Hr(),r=t(a),i=e({},r.default.noWobble,{precision:.01});function s(l,c){return e({},i,c,{val:l})}o.exports=n.default}(St,St.exports)),St.exports}var Rt={exports:{}},nr;function To(){return nr||(nr=1,function(o,n){n.__esModule=!0,n.default=e;function e(){}o.exports=n.default}(Rt,Rt.exports)),Rt.exports}var or;function Eo(){if(or)return Se;or=1,Se.__esModule=!0;function o(l){return l&&l.__esModule?l.default:l}var n=Oo();Se.Motion=o(n);var e=Vo();Se.StaggeredMotion=o(e);var t=Co();Se.TransitionMotion=o(t);var a=bo();Se.spring=o(a);var r=Hr();Se.presets=o(r);var i=Ht();Se.stripStyle=o(i);var s=To();return Se.reorderKeys=o(s),Se}var Dt={exports:{}},ir;function Fo(){return ir||(ir=1,function(o,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,V){if(!I)throw t?new Error("Invariant failed"):new Error(V())}n.invariant=a;var r=Object.prototype.hasOwnProperty,i=Array.prototype.splice,s=Object.prototype.toString;function l(I){return s.call(I).slice(8,-1)}var c=Object.assign||function(I,V){return d(V).forEach(function(P){r.call(V,P)&&(I[P]=V[P])}),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):l(I)==="Map"?new Map(I):l(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(V,P){return V===P},this.update.newContext=function(){return new I().update}}return Object.defineProperty(I.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(V){this.update.isEquals=V},enumerable:!0,configurable:!0}),I.prototype.extend=function(V,P){this.commands[V]=P},I.prototype.update=function(V,P){var b=this,R=typeof P=="function"?{$apply:P}:P;Array.isArray(V)&&Array.isArray(R)||a(!Array.isArray(R),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 R=="object"&&R!==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(b.commands).join(", ")+".")});var D=V;return d(R).forEach(function(_){if(r.call(b.commands,_)){var y=V===D;D=b.commands[_](R[_],D,R,V),y&&b.isEquals(D,V)&&(D=V)}else{var h=l(V)==="Map"?b.update(V.get(_),R[_]):b.update(V[_],R[_]),m=l(D)==="Map"?D.get(_):D[_];(!b.isEquals(h,m)||typeof h>"u"&&!r.call(V,_))&&(D===V&&(D=p(V)),l(D)==="Map"?D.set(_,h):D[_]=h)}}),D},I}();n.Context=g;var v={$push:function(I,V,P){return C(V,P,"$push"),I.length?V.concat(I):V},$unshift:function(I,V,P){return C(V,P,"$unshift"),I.length?I.concat(V):V},$splice:function(I,V,P,b){return T(V,P),I.forEach(function(R){F(R),V===b&&R.length&&(V=p(b)),i.apply(V,R)}),V},$set:function(I,V,P){return N(P),I},$toggle:function(I,V){O(I,"$toggle");var P=I.length?p(V):V;return I.forEach(function(b){P[b]=!V[b]}),P},$unset:function(I,V,P,b){return O(I,"$unset"),I.forEach(function(R){Object.hasOwnProperty.call(V,R)&&(V===b&&(V=p(b)),delete V[R])}),V},$add:function(I,V,P,b){return x(V,"$add"),O(I,"$add"),l(V)==="Map"?I.forEach(function(R){var D=R[0],_=R[1];V===b&&V.get(D)!==_&&(V=p(b)),V.set(D,_)}):I.forEach(function(R){V===b&&!V.has(R)&&(V=p(b)),V.add(R)}),V},$remove:function(I,V,P,b){return x(V,"$remove"),O(I,"$remove"),I.forEach(function(R){V===b&&V.has(R)&&(V=p(b)),V.delete(R)}),V},$merge:function(I,V,P,b){return $(V,I),d(I).forEach(function(R){I[R]!==V[R]&&(V===b&&(V=p(b)),V[R]=I[R])}),V},$apply:function(I,V){return A(I),I(V)}},M=new g;n.isEquals=M.update.isEquals,n.extend=M.extend,n.default=M.update,n.default.default=o.exports=c(n.default,n);function C(I,V,P){a(Array.isArray(I),function(){return"update(): expected target of "+e(P)+" to be an array; got "+e(I)+"."}),O(V[P],P)}function O(I,V){a(Array.isArray(I),function(){return"update(): expected spec of "+e(V)+" to be an array; got "+e(I)+". Did you forget to wrap your parameter in an array?"})}function T(I,V){a(Array.isArray(I),function(){return"Expected $splice target to be an array; got "+e(I)}),F(V.$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 A(I){a(typeof I=="function",function(){return"update(): expected spec of $apply to be a function; got "+e(I)+"."})}function N(I){a(Object.keys(I).length===1,function(){return"Cannot have more than one key in an object with $set"})}function $(I,V){a(V&&typeof V=="object",function(){return"update(): $merge expects a spec of type 'object'; got "+e(V)}),a(I&&typeof I=="object",function(){return"update(): $merge expects a target of type 'object'; got "+e(I)})}function x(I,V){var P=l(I);a(P==="Map"||P==="Set",function(){return"update(): "+e(V)+" expects a target of type Set or Map; got "+e(P)})}}(Dt,Dt.exports)),Dt.exports}var la={},sr;function Ao(){return sr||(sr=1,function(o){var n=ot;Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;var e=n(it()),t=n(st()),a=n(Bt()),r=function(){function i(){(0,e.default)(this,i),(0,a.default)(this,"map",new Map),(0,a.default)(this,"_refFns",new Map)}return(0,t.default)(i,[{key:"ref",value:function(l){var c=this,d=this._refFns.get(l);if(d)return d;var p=function g(v){v==null?(c._refFns.delete(l),c.map.delete(l)):(c._refFns.set(l,g),c.map.set(l,v))};return p}}]),i}();o.default=r}(la)),la}var Mt={exports:{}},lr;function Po(){return lr||(lr=1,function(o,n){var e=ot,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(it()),r=e(st()),i=e($t()),s=e(qt()),l=e(Wt()),c=p(G);function d(M){if(typeof WeakMap!="function")return null;var C=new WeakMap,O=new WeakMap;return(d=function(F){return F?O:C})(M)}function p(M,C){if(!C&&M&&M.__esModule)return M;if(M===null||t(M)!="object"&&typeof M!="function")return{default:M};var O=d(C);if(O&&O.has(M))return O.get(M);var T={__proto__:null},F=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var A in M)if(A!=="default"&&Object.prototype.hasOwnProperty.call(M,A)){var N=F?Object.getOwnPropertyDescriptor(M,A):null;N&&(N.get||N.set)?Object.defineProperty(T,A,N):T[A]=M[A]}return T.default=M,O&&O.set(M,T),T}function g(M,C,O){return C=(0,s.default)(C),(0,i.default)(M,v()?Reflect.construct(C,O||[],(0,s.default)(M).constructor):C.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,l.default)(C,M);function C(){return(0,a.default)(this,C),g(this,C,arguments)}return(0,r.default)(C,[{key:"componentDidUpdate",value:function(){this.props.cb()}},{key:"render",value:function(){return null}}]),C}(c.Component),o.exports=n.default,o.exports.default=n.default}(Mt,Mt.exports)),Mt.exports}var It={exports:{}},Ot={exports:{}},ur;function Lo(){return ur||(ur=1,function(o,n){var e=ot,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(it()),r=e(st()),i=e($t()),s=e(qt()),l=e(jt()),c=e(Wt()),d=e(Bt()),p=v(G);function g(O){if(typeof WeakMap!="function")return null;var T=new WeakMap,F=new WeakMap;return(g=function(N){return N?F:T})(O)}function v(O,T){if(!T&&O&&O.__esModule)return O;if(O===null||t(O)!="object"&&typeof O!="function")return{default:O};var F=g(T);if(F&&F.has(O))return F.get(O);var A={__proto__:null},N=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var $ in O)if($!=="default"&&Object.prototype.hasOwnProperty.call(O,$)){var x=N?Object.getOwnPropertyDescriptor(O,$):null;x&&(x.get||x.set)?Object.defineProperty(A,$,x):A[$]=O[$]}return A.default=O,F&&F.set(O,A),A}function M(O,T,F){return T=(0,s.default)(T),(0,i.default)(O,C()?Reflect.construct(T,F||[],(0,s.default)(O).constructor):T.apply(O,F))}function C(){try{var O=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(C=function(){return!!O})()}n.default=function(O){(0,c.default)(T,O);function T(){var F;(0,a.default)(this,T);for(var A=arguments.length,N=new Array(A),$=0;$<A;$++)N[$]=arguments[$];return F=M(this,T,[].concat(N)),(0,d.default)((0,l.default)(F),"_templateSetter",function(x){F._template=x}),F}return(0,r.default)(T,[{key:"shouldComponentUpdate",value:function(A){return this.props.anySelected!==A.anySelected||this.props.itemSelected!==A.itemSelected||this.props.item!==A.item||this.props.template!==A.template||this.props.commonProps!==A.commonProps}},{key:"getTemplate",value:function(){return this._template}},{key:"render",value:function(){var A=this.props,N=A.item,$=A.itemSelected,x=A.anySelected,I=A.dragHandleProps,V=A.commonProps,P=this.props.template;return p.createElement(P,{ref:this._templateSetter,item:N,itemSelected:$,anySelected:x,dragHandleProps:I,commonProps:V})}}]),T}(p.Component),o.exports=n.default,o.exports.default=n.default}(Ot,Ot.exports)),Ot.exports}var cr;function No(){return cr||(cr=1,function(o,n){var e=ot,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(it()),r=e(st()),i=e($t()),s=e(qt()),l=e(jt()),c=e(Wt()),d=e(Bt()),p=M(G),g=e(Lo());function v(T){if(typeof WeakMap!="function")return null;var F=new WeakMap,A=new WeakMap;return(v=function($){return $?A:F})(T)}function M(T,F){if(!F&&T&&T.__esModule)return T;if(T===null||t(T)!="object"&&typeof T!="function")return{default:T};var A=v(F);if(A&&A.has(T))return A.get(T);var N={__proto__:null},$=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var x in T)if(x!=="default"&&Object.prototype.hasOwnProperty.call(T,x)){var I=$?Object.getOwnPropertyDescriptor(T,x):null;I&&(I.get||I.set)?Object.defineProperty(N,x,I):N[x]=T[x]}return N.default=T,A&&A.set(T,N),N}function C(T,F,A){return F=(0,s.default)(F),(0,i.default)(T,O()?Reflect.construct(F,A||[],(0,s.default)(T).constructor):F.apply(T,A))}function O(){try{var T=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(O=function(){return!!T})()}n.default=function(T){(0,c.default)(F,T);function F(){var A;(0,a.default)(this,F);for(var N=arguments.length,$=new Array(N),x=0;x<N;x++)$[x]=arguments[x];return A=C(this,F,[].concat($)),(0,d.default)((0,l.default)(A),"_templateContainer",p.createRef()),(0,d.default)((0,l.default)(A),"_el",p.createRef()),(0,d.default)((0,l.default)(A),"_dragHandleProps",A.props.makeDragHandleProps(function(){return A.props.y})),A}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(N){return this.props.anySelected!==N.anySelected||this.props.itemSelected!==N.itemSelected||this.props.item!==N.item||this.props.template!==N.template||this.props.y!==N.y||this.props.height!==N.height||this.props.zIndex!==N.zIndex||this.props.commonProps!==N.commonProps}},{key:"render",value:function(){var N=this.props,$=N.item,x=N.y,I=N.padding,V=N.itemSelected,P=N.anySelected,b=N.height,R=N.zIndex,D=N.template,_=N.commonProps;return p.createElement("div",{ref:this._el,style:{position:x==null?"relative":"absolute",boxSizing:"border-box",left:"0px",right:"0px",top:x==null?"0px":"".concat(x,"px"),marginBottom:"".concat(I,"px"),height:x==null?"auto":"".concat(P*(b.drag-b.natural)+b.natural,"px"),zIndex:R}},p.createElement(g.default,{ref:this._templateContainer,item:$,template:D,itemSelected:V,anySelected:P,dragHandleProps:this._dragHandleProps,commonProps:_}))}}]),F}(p.Component),o.exports=n.default,o.exports.default=n.default}(It,It.exports)),It.exports}(function(o,n){var e=ot,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(it()),r=e(st()),i=e($t()),s=e(qt()),l=e(jt()),c=e(Wt()),d=e(Bt()),p=A(G),g=A(kt()),v=Eo(),M=e(Fo()),C=e(Ao()),O=e(Po()),T=e(No());function F(R){if(typeof WeakMap!="function")return null;var D=new WeakMap,_=new WeakMap;return(F=function(h){return h?_:D})(R)}function A(R,D){if(!D&&R&&R.__esModule)return R;if(R===null||t(R)!="object"&&typeof R!="function")return{default:R};var _=F(D);if(_&&_.has(R))return _.get(R);var y={__proto__:null},h=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var m in R)if(m!=="default"&&Object.prototype.hasOwnProperty.call(R,m)){var f=h?Object.getOwnPropertyDescriptor(R,m):null;f&&(f.get||f.set)?Object.defineProperty(y,m,f):y[m]=R[m]}return y.default=R,_&&_.set(R,y),y}function N(R,D){var _=Object.keys(R);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(R);D&&(y=y.filter(function(h){return Object.getOwnPropertyDescriptor(R,h).enumerable})),_.push.apply(_,y)}return _}function $(R){for(var D=1;D<arguments.length;D++){var _=arguments[D]!=null?arguments[D]:{};D%2?N(Object(_),!0).forEach(function(y){(0,d.default)(R,y,_[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(R,Object.getOwnPropertyDescriptors(_)):N(Object(_)).forEach(function(y){Object.defineProperty(R,y,Object.getOwnPropertyDescriptor(_,y))})}return R}function x(R,D,_){return D=(0,s.default)(D),(0,i.default)(R,I()?Reflect.construct(D,_||[],(0,s.default)(R).constructor):D.apply(R,_))}function I(){try{var R=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(I=function(){return!!R})()}var V={natural:200,drag:30};function P(R,D,_){return Math.round(D-D/_*R)}var b=n.default=function(R){(0,c.default)(D,R);function D(){var _;(0,a.default)(this,D);for(var y=arguments.length,h=new Array(y),m=0;m<y;m++)h[m]=arguments[m];return _=x(this,D,[].concat(h)),(0,d.default)((0,l.default)(_),"_itemRefs",new C.default),(0,d.default)((0,l.default)(_),"_listRef",p.createRef()),(0,d.default)((0,l.default)(_),"state",{useAbsolutePositioning:!1,dragging:!1,lastDrag:null,heights:null}),(0,d.default)((0,l.default)(_),"_handleTouchMove",function(f){f.preventDefault(),_._handleMouseMove(f.touches[0])}),(0,d.default)((0,l.default)(_),"_handleMouseMove",function(f){var S=f.pageY,w=f.clientY,E=_.props.list,U=_.props.autoScrollMaxSpeed,B=_.props.autoScrollRegionSize,H=_.state,W=H.dragging,q=H.lastDrag;if(!(!W||!q)){var z=_._getContainer(),X=_._getDragVisualIndex(),K=_._getKeyFn();if(clearInterval(_._autoScrollerTimer),X!==0&&X!==E.length-1){var ee=0,Q=z&&z!==document.body&&z.getBoundingClientRect?z.getBoundingClientRect():{top:0,bottom:1/0},J=Math.max(0,Q.top),ne=w-J;if(ne>0&&ne<B)ee=-1*P(ne,U,B);else{var te=Math.min(window.innerHeight,Q.bottom),le=te-w;le>0&&le<B&&(ee=P(le,U,B))}ee!==0&&(_._scrollContainer(ee),_._autoScrollerTimer=setTimeout(function(){_._handleMouseMove({pageY:S+(z===document.body?ee:0),clientY:w})},16))}var ue=!z||z===document.body?0:z.scrollTop,ce=S-q.mouseOffset+ue;if(_.props.constrainDrag){var ae=_._getVisualListDuringDrag();ce=Math.max(ce,_._getDistanceFromTopDuringDrag(q,K(ae[0]),ae)),ce=Math.min(ce,_._getDistanceFromTopDuringDrag(q,K(ae[ae.length-1]),ae))}_.setState({lastDrag:$($({},q),{},{mouseY:ce})})}}),(0,d.default)((0,l.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,w=f.onMoveEnd,E=f.onDragEnd,U=_.state,B=U.dragging,H=U.lastDrag;if(B&&H&&w){var W=_._getDragListIndex(),q=_._getDragVisualIndex();if(E&&E(S[W]),W!==q){var z=_._getVisualListDuringDrag();w(z,S[W],W,q)}_.setState({dragging:!1})}}),(0,d.default)((0,l.default)(_),"_lastScrollDelta",0),_}return(0,r.default)(D,[{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 w=this.props.list,E=w[D._getIndexOfItemWithKey(S,w,y)];this.props.onDragStart(E)}{var U=this._listRef.current;if(!U)throw new Error("Should not happen");U.contains&&document.activeElement&&U.contains(document.activeElement)&&document.activeElement instanceof HTMLElement&&document.activeElement.blur()}var B=null;if(this.state.heights==null){var H=Object.create(null);this.props.list.forEach(function(q){var z=S(q),X=f._itemRefs.map.get(z),K=X?X.getDOMNode().firstElementChild:null,ee=X?X.getTemplate():null,Q=K instanceof HTMLElement?K.offsetHeight:V.natural,J=ee&&typeof ee.getDragHeight=="function"&&ee.getDragHeight()||Q;H[z]={natural:Q,drag:J}}),B=H}var W=function(){var z=D._getIndexOfItemWithKey(S,f.props.list,y),X=h==null?f._getDistance(0,z,!1):h,K=f._getContainer(),ee=!K||K===document.body?0:K.scrollTop;f.setState({useAbsolutePositioning:!0,dragging:!0,lastDrag:{itemKey:y,startY:X,mouseY:X,mouseOffset:m-X+ee}})};B?this.setState({heights:B},W):W()}},{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 D._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 w=this._getDragListIndex(),E=S.mouseY,U=S.startY,B=E-U,H=B>0?1:B<0?-1:0,W=w;if(H!==0)for(var q=this._getKeyFn(),z=Math.abs(B),X=w+H;X<y.length&&X>=0;X+=H){var K=this._getItemHeight(q(y[X])).drag;if(z<K/2+h)break;z-=K+h,W=X}return W}},{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(),w=this._getDragVisualIndex();return(0,M.default)(y,{$splice:[[S,1],[w,0,y[S]]]})}},{key:"_getItemHeight",value:function(y){return this.state.heights!=null&&y in this.state.heights?this.state.heights[y]:V}},{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,w=this._getKeyFn(),E=0,U=y;U<h;U++){var B=this._getItemHeight(w(f[U]));E+=(m?B.drag:B.natural)+S}return E}},{key:"_getDistanceFromTopDuringDrag",value:function(y,h,m){var f=this._getKeyFn(),S=D._getIndexOfItemWithKey(f,m,h),w=this._getDragListIndex(),E=D._getIndexOfItemWithKey(f,m,y.itemKey),U=0;if(E<w){var B=this._getItemHeight(y.itemKey),H=this._getItemHeight(f(m[w]));U=B.drag-H.drag}return y.startY+U+this._getDistance(w,S,!0,m)}},{key:"_getContainer",value:function(){var y=this.props.container;return y?y():null}},{key:"_getKeyFn",value:function(){return D._getKeyFn(this.props.itemKey)}},{key:"render",value:function(){var y=this,h=this.props.padding,m=this.props,f=m.list,S=m.springConfig,w=m.container,E=m.template,U=m.unsetZIndex,B=m.commonProps,H=this.state,W=H.dragging,q=H.lastDrag,z=H.useAbsolutePositioning,X=this._getKeyFn(),K=(0,v.spring)(W?1:0,S),ee=W?this._getVisualListDuringDrag():f,Q=f.map(function(ue,ce){var ae=X(ue),fe=W&&q&&q.itemKey===ae?{itemSelected:(0,v.spring)(1,S),y:q.mouseY}:{itemSelected:(0,v.spring)(0,S),y:(z?v.spring:function($e){return $e})(W&&q?y._getDistanceFromTopDuringDrag(q,ae,ee):y._getDistance(0,ce,!1),S)},Ve=$({anySelected:K},fe),we=function(De){return{onMouseDown:function(Ee){return y._handleMouseDown(ae,De(),Ee)},onTouchStart:function(Ee){return y._handleTouchStart(ae,De(),Ee)}}},ut=y._getItemHeight(ae);return p.createElement(v.Motion,{style:Ve,key:ae,children:function(De){var Ke=De.itemSelected,Ee=De.anySelected,Jr=De.y;return p.createElement(T.default,{ref:y._itemRefs.ref(ae),y:z?Jr:void 0,template:E,padding:h,item:ue,itemSelected:Ke,anySelected:Ee,height:ut,zIndex:U&&!z?"auto":q&&q.itemKey===ae?f.length:ce,makeDragHandleProps:we,commonProps:B})}})}),J=0;if(!W&&q&&z){var ne=this._getDragListIndex();J=(0,v.spring)(this._getDistance(0,ne,!1)-q.mouseY,S)}var te=0,le=0;return f.length&&(le=h,z&&(te=this._getDistance(0,f.length,!1)-h)),p.createElement("div",{style:{position:"relative"},ref:this._listRef},p.createElement(v.Motion,{style:{adjustScroll:J,anySelected:K},onRest:function(){W||y.setState({heights:null,useAbsolutePositioning:!1})},children:function(ce){var ae=ce.adjustScroll;return p.createElement("div",{style:{display:z?"block":"none",height:"".concat(te,"px"),marginBottom:"".concat(le,"px")}},w&&p.createElement(O.default,{cb:function(){!W&&q&&z&&y._adjustScrollAtEnd(ae)}}))}}),Q)}}],[{key:"getDerivedStateFromProps",value:function(y,h){var m=y.list,f=h.lastDrag;if(f){var S=D._getKeyFn(y.itemKey);try{D._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]}}}]),D}(p.Component);(0,d.default)(b,"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)(b,"defaultProps",{springConfig:{stiffness:300,damping:50},padding:10,unsetZIndex:!1,constrainDrag:!1,autoScrollMaxSpeed:15,autoScrollRegionSize:30}),o.exports=n.default,o.exports.default=n.default})(ma,ma.exports);var xo=ma.exports;const dr=Mr(xo);function Uo(o){return Number.isNaN(o.startColumn)||Number.isNaN(o.endColumn)||Number.isNaN(o.startRow)||Number.isNaN(o.endRow)}const jo=["#FFFFFF","#FEE7E7","#FEF0E6","#EFFBD0","#E4F4FE","#E8ECFD","#F1EAFA","#FDE8F3","#E5E5E5","#FDCECE","#FDC49B","#DEF6A2","#9FDAFF","#D0D9FB","#E3D5F6","#FBD0E8","#656565","#FE4B4B","#FF8C51","#8BBB11","#0B9EFB","#3A60F7","#9E6DE3","#F248A6"],$o=o=>{const{value:n,onChange:e,disabled:t}=o,[a,r]=G.useState(!1);return L.jsx(Z.Select,{disabled:t,open:a,onDropdownVisibleChange:r,dropdownStyle:{width:112},className:pe.dataValidationFormulaColorSelect,value:n,onChange:e,labelRender:i=>L.jsx("div",{className:pe.dataValidationFormulaColorItem,style:{background:i.value}}),dropdownRender:()=>L.jsx("div",{className:pe.dataValidationFormulaColorSelectPanel,children:jo.map(i=>L.jsx("div",{onClick:()=>{e(i),r(!1)},className:pe.dataValidationFormulaColorItem,style:{background:i}},i))})})},fr=o=>{const{item:n,dragHandleProps:e,commonProps:t}=o,{onMouseDown:a,onTouchStart:r}=e,{onItemChange:i,onItemDelete:s}=t;return L.jsxs("div",{className:pe.dataValidationFormulaListItem,children:[n.isRef?null:L.jsx("div",{className:pe.dataValidationFormulaListItemDrag,onTouchStart:l=>{l.preventDefault(),r(l)},onMouseDown:l=>{a(l)},children:L.jsx(bn,{})}),L.jsx($o,{value:n.color,onChange:l=>{i(n.id,n.label,l)}}),L.jsx(Z.Input,{disabled:n.isRef,value:n.label,onChange:l=>{i(n.id,l,n.color)}}),n.isRef?null:L.jsx("div",{className:pe.dataValidationFormulaListItemIcon,children:L.jsx(Pr,{onClick:()=>s(n.id)})})]})};function qo(o){const{value:n,onChange:e=()=>{},unitId:t,subUnitId:a,validResult:r,showError:i}=o,{formula1:s="",formula2:l=""}=n||{},c=G.useRef(null),[d,p]=G.useState(()=>se.isReferenceString(s)?"1":"0"),[g,v]=G.useState(d==="1"?s:""),M=re.useDependency(u.LocaleService),C=re.useDependency(u.IUniverInstanceService),O=C.getCurrentUniverSheetInstance(),T=O.getActiveSheet(),[F,A]=G.useState(()=>l.split(",")),N=i?r==null?void 0:r.formula1:"",$=oe.useEvent(e),[x,I]=G.useState(()=>{const h=d!=="1"?Oe(s):[],m=l.split(",");return h.map((f,S)=>({label:f,color:m[S]||Le,isRef:!1,id:u.Tools.generateRandomId(4)}))}),V=(h,m,f)=>{const S=x.find(w=>w.id===h);S&&(S.label=m,S.color=f,I([...x]))},P=h=>{const m=x.findIndex(f=>f.id===h);m!==-1&&(x.splice(m,1),I([...x]))},b=G.useMemo(()=>at(se.deserializeRangeWithSheet(g),C,O.getUnitId(),T.getSheetId()),[g,C,O,T]),R=l.split(","),D=G.useMemo(()=>b.map((h,m)=>({label:h,color:R[m]||Le,id:`${m}`,isRef:!0})),[R,b]),_=(h,m,f)=>{const S=[...F];S[+h]=f,A(S),$({formula1:s,formula2:S.join(",")})},y=()=>{I([...x,{label:"",color:Le,isRef:!1,id:u.Tools.generateRandomId(4)}])};return G.useEffect(()=>{const h=new Set,m=[];x.map(f=>({labelList:f.label.split(","),item:f})).forEach(({item:f,labelList:S})=>{S.forEach(w=>{h.has(w)||(h.add(w),m.push({label:w,color:f.color}))})}),$({formula1:jr(m.map(f=>f.label)),formula2:m.map(f=>f.color===Le?"":f.color).join(",")})},[x,$]),L.jsxs(L.Fragment,{children:[L.jsx(Z.FormLayout,{label:M.t("dataValidation.list.options"),children:L.jsxs(Z.RadioGroup,{value:d,onChange:h=>p(h),children:[L.jsx(Z.Radio,{value:"0",children:M.t("dataValidation.list.customOptions")}),L.jsx(Z.Radio,{value:"1",children:M.t("dataValidation.list.refOptions")})]})}),d==="1"?L.jsxs(L.Fragment,{children:[L.jsx(Z.FormLayout,{error:N,children:L.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||Uo(m.range))$==null||$({formula1:"",formula2:l}),v("");else{const w=(f=C.getUniverSheetInstance(m.unitId))!=null?f:C.getCurrentUniverSheetInstance(),E=(S=w==null?void 0:w.getSheetBySheetId(m.sheetId))!=null?S:w.getActiveSheet(),U=se.serializeRangeWithSheet(E.getName(),m.range);$==null||$({formula1:U,formula2:l}),v(U)}},isSingleChoice:!0})}),L.jsx(Z.FormLayout,{children:L.jsx("div",{ref:c,children:L.jsx(dr,{itemKey:"id",template:fr,list:D,container:()=>c.current,commonProps:{onItemChange:_}})})})]}):L.jsx(Z.FormLayout,{error:N,children:L.jsxs("div",{ref:c,children:[L.jsx(dr,{itemKey:"id",template:fr,list:x,onMoveEnd:h=>{I(h)},container:()=>c.current,commonProps:{onItemChange:V,onItemDelete:P}}),L.jsxs("a",{className:pe.dataValidationFormulaListAdd,onClick:y,children:[L.jsx(Mn,{}),M.t("dataValidation.list.add")]})]})})]})}function Wo(o){const{value:n,onChange:e,showError:t,validResult:a}=o,r=re.useDependency(u.LocaleService),i=t?a==null?void 0:a.formula1:"",s=t?a==null?void 0:a.formula2:"",[l,c]=G.useState(!((n==null?void 0:n.formula1)===void 0&&(n==null?void 0:n.formula2)===void 0));return L.jsxs(L.Fragment,{children:[L.jsx(Z.FormLayout,{children:L.jsx(Z.Checkbox,{checked:l,onChange:d=>{d?c(!0):(c(!1),e==null||e({...n,formula1:void 0,formula2:void 0}))},children:r.t("dataValidation.checkbox.tips")})}),l?L.jsx(Z.FormLayout,{label:r.t("dataValidation.checkbox.checked"),error:i,children:L.jsx(Z.Input,{className:pe.dataValidationFormula,placeholder:r.t("dataValidation.panel.formulaPlaceholder"),value:n==null?void 0:n.formula1,onChange:d=>{e==null||e({...n,formula1:d})}})}):null,l?L.jsx(Z.FormLayout,{label:r.t("dataValidation.checkbox.unchecked"),error:s,children:L.jsx(Z.Input,{className:pe.dataValidationFormula,placeholder:r.t("dataValidation.panel.formulaPlaceholder"),value:n==null?void 0:n.formula2,onChange:d=>{e==null||e({...n,formula2:d})}})}):null]})}const Yr="data-validation.custom-formula-input",lt="data-validation.formula-input",ba="data-validation.list-formula-input",zr="data-validation.checkbox-formula-input",Bo=[[Yr,lo],[lt,So],[ba,qo],[zr,Wo]],ko="LIST_RENDER_MODE_OPTION_INPUT";function Ft(o){var a;const{value:n,onChange:e}=o,t=re.useDependency(u.LocaleService);return L.jsx(Z.FormLayout,{label:t.t("dataValidation.renderMode.label"),children:L.jsxs(Z.RadioGroup,{value:`${(a=n.renderMode)!=null?a:u.DataValidationRenderMode.CUSTOM}`,onChange:r=>e({...n,renderMode:+r}),children:[L.jsx(Z.Radio,{value:`${u.DataValidationRenderMode.CUSTOM}`,children:t.t("dataValidation.renderMode.chip")}),L.jsx(Z.Radio,{value:`${u.DataValidationRenderMode.ARROW}`,children:t.t("dataValidation.renderMode.arrow")}),L.jsx(Z.Radio,{value:`${u.DataValidationRenderMode.TEXT}`,children:t.t("dataValidation.renderMode.text")})]})})}Ft.componentKey=ko;const Kr="data-validation-single",Ta="sheet.menu.data-validation";function Ho(o){return{id:Ta,type:oe.MenuItemType.SUBITEMS,positions:[oe.MenuPosition.TOOLBAR_START],group:oe.MenuGroup.TOOLBAR_FORMULAS_INSERT,icon:Kr,tooltip:"dataValidation.title",hidden$:oe.getMenuHiddenObservable(o,u.UniverInstanceType.SHEET)}}function Yo(o){return{id:nt.id,title:"dataValidation.panel.title",type:oe.MenuItemType.BUTTON,positions:[Ta]}}function zo(o){return{id:Da.id,title:"dataValidation.panel.add",type:oe.MenuItemType.BUTTON,positions:[Ta]}}var Ko=Object.defineProperty,Go=Object.getOwnPropertyDescriptor,Xo=(o,n,e,t)=>{for(var a=t>1?void 0:t?Go(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&Ko(n,e,a),a},_e=(o,n)=>(e,t)=>n(e,t,o);const Qo={tr:{size:6,color:"#fe4b4b"}};exports.DataValidationRenderController=class extends u.RxDisposable{constructor(n,e,t,a,r,i,s,l,c,d,p){super(),this._componentManager=n,this._menuService=e,this._dataValidationModel=t,this._sheetSkeletonManagerService=a,this._renderManagerService=r,this._univerInstanceService=i,this._dataValidatorRegistryService=s,this._editorBridgeService=l,this._dropdownManagerService=c,this._sheetInterceptorService=d,this._injector=p,this._init()}_init(){this._initComponents(),this._initMenu(),this._initSkeletonChange(),this._initDropdown(),this._initViewModelIntercept()}_initMenu(){[Ho,Yo,zo].forEach(n=>{this.disposeWithMe(this._menuService.addMenuItem(n(this._injector)))})}_initComponents(){[[wr,Yn],[Vr,un],[Ma,ro],[qr,so],[Ft.componentKey,Ft],...Bo].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:i}=e,s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const c=this._dataValidationModel.ensureManager(t,a).getRuleByLocation(r,i);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===i)return;this._dropdownManagerService.showDropdown({location:{unitId:t,subUnitId:a,row:r,col:i,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}),i=this._renderManagerService.getRenderById(t);r==null||r.makeDirty(!0),r==null||r.calculate(),i&&i.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 A,N,$,x;const{row:a,col:r,unitId:i,subUnitId:s}=e,l=this._dataValidationModel.ensureManager(i,s),c=(A=this._sheetSkeletonManagerService.getCurrent())==null?void 0:A.skeleton;if(!l||!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=l.getRuleIdByLocation(a,r);if(!g)return t(n);const v=l.getRuleById(g);if(!v)return t(n);const M=e.worksheet.getCellRaw(e.row,e.col),C=this._dataValidationModel.validator(me(M),v,e),O=this._dataValidatorRegistryService.getValidatorItem(v.type),T=me(n);let F={};if((v.type===u.DataValidationType.LIST||v.type===u.DataValidationType.LIST_MULTIPLE)&&(F={interceptorStyle:{...n==null?void 0:n.interceptorStyle,tb:(N=p.tb!==u.WrapStrategy.OVERFLOW?p.tb:u.WrapStrategy.CLIP)!=null?N:u.WrapStrategy.WRAP}}),v.type===u.DataValidationType.CHECKBOX){const{formula2:I}=O.parseFormulaSync(v,e.unitId,e.subUnitId);T||(F={v:I,t:1,p:null,interceptorStyle:{...n==null?void 0:n.interceptorStyle,tb:u.WrapStrategy.CLIP}})}if(v.type===u.DataValidationType.LIST&&(v.renderMode===u.DataValidationRenderMode.ARROW||v.renderMode===u.DataValidationRenderMode.TEXT)){const I=O.getListWithColorMap(v),V=`${($=me(n))!=null?$:""}`,P=I[V];P&&(F={...F,interceptorStyle:{...F.interceptorStyle,bg:{rgb:P}}})}return t({...n,...F,dataValidation:{ruleId:g,validStatus:C,rule:v,validator:O},markers:{...n==null?void 0:n.markers,...C===u.DataValidationStatus.INVALID?Qo:null},customRender:[...(x=n==null?void 0:n.customRender)!=null?x:[],...O!=null&&O.canvasRender?[O.canvasRender]:[]],fontRenderExtension:{...n==null?void 0:n.fontRenderExtension,isSkip:O==null?void 0:O.skipDefaultFontRender(v,T,e)},interceptorStyle:{...n==null?void 0:n.interceptorStyle,...F.interceptorStyle},get interceptorAutoHeight(){var P,b,R,D;const I=c.mergeData.find(_=>{const{startColumn:y,startRow:h,endColumn:m,endRow:f}=_;return a>=h&&r>=y&&a<=f&&r<=m}),V={data:{...n,dataValidation:{ruleId:g,validStatus:C,rule:v,validator:O}},style:c.getsStyles().getStyleByCell(n),primaryWithCoord:c.getCellByIndex((P=I==null?void 0:I.startRow)!=null?P:a,(b=I==null?void 0:I.startColumn)!=null?b:r),unitId:i,subUnitId:s,row:a,col:r};return(D=(R=O==null?void 0:O.canvasRender)==null?void 0:R.calcCellAutoHeight)==null?void 0:D.call(R,V)}})}}))}};exports.DataValidationRenderController=Xo([u.OnLifecycle(u.LifecycleStages.Rendered,exports.DataValidationRenderController),_e(0,Y.Inject(oe.ComponentManager)),_e(1,oe.IMenuService),_e(2,Y.Inject(k.DataValidationModel)),_e(3,Y.Inject(ie.SheetSkeletonManagerService)),_e(4,de.IRenderManagerService),_e(5,u.IUniverInstanceService),_e(6,Y.Inject(k.DataValidatorRegistryService)),_e(7,ie.IEditorBridgeService),_e(8,Y.Inject(Ne)),_e(9,Y.Inject(he.SheetInterceptorService)),_e(10,Y.Inject(Y.Injector))],exports.DataValidationRenderController);var Zo=Object.defineProperty,Jo=Object.getOwnPropertyDescriptor,ei=(o,n,e,t)=>{for(var a=t>1?void 0:t?Jo(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&Zo(n,e,a),a},ti=(o,n)=>(e,t)=>n(e,t,o);exports.SheetDataValidationService=class{constructor(n){j(this,"_currentManager");j(this,"_currentManager$",new ge.Subject);j(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)}};exports.SheetDataValidationService=ei([ti(0,Y.Inject(k.DataValidationModel))],exports.SheetDataValidationService);const et={type:u.CommandType.MUTATION,id:"sheet.mutation.data-validation-formula-mark-dirty",handler(){return!0}};var Je=(o=>(o[o.NOT_REGISTER=1]="NOT_REGISTER",o[o.SUCCESS=2]="SUCCESS",o[o.WAIT=3]="WAIT",o[o.ERROR=4]="ERROR",o))(Je||{}),ai=Object.defineProperty,ri=Object.getOwnPropertyDescriptor,ni=(o,n,e,t)=>{for(var a=t>1?void 0:t?ri(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&ai(n,e,a),a},pr=(o,n)=>(e,t)=>n(e,t,o);exports.RegisterOtherFormulaService=class extends u.Disposable{constructor(e,t){super();j(this,"_formulaCacheMap",new Map);j(this,"_formulaChange$",new ge.Subject);j(this,"formulaChange$",this._formulaChange$.asObservable());j(this,"_formulaResult$",new ge.Subject);j(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}_${u.Tools.generateRandomId(8)}`}_initFormulaRegister(){this._activeDirtyManagerService.register(et.id,{commandId:et.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:i,formulaId:s,formulaText:l}=a;return t[r]||(t[r]={}),t[r][i]||(t[r][i]={}),t[r][i][s]={f:l},t},{}))).subscribe(e=>{for(const t in e)for(const a in e[t]){const r=e[t][a],i={unitId:t,subUnitId:a,formulaMap:r};this._commandService.executeCommand(se.SetOtherFormulaMutation.id,i).then(()=>{this._commandService.executeCommand(et.id,{[t]:{[a]:r}})})}})}_initFormulaCalculationResultChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===se.SetFormulaCalculationResultMutation.id){const t=e.params,{unitOtherData:a}=t,r={};for(const i in a){const s=a[i],l={};r[i]=l;for(const c in s){const d=this._ensureCacheMap(i,c),p=s[c],g=[];l[c]=g;for(const v in p){const M=p[v];if(d.has(v)){const C=d.get(v);C.result=M,C.status=Je.SUCCESS,C.callbacks.forEach(O=>{O(M)}),C.callbacks.clear(),g.push(C)}}}}this._formulaResult$.next(r)}}))}registerFormula(e,t,a,r){const i=this._createFormulaId(e,t);return this._ensureCacheMap(e,t).set(i,{result:void 0,status:Je.WAIT,ruleId:a,formulaId:i,callbacks:new Set}),this._formulaChange$.next({unitId:e,ruleId:a,subUnitId:t,formulaText:r,formulaId:i}),i}deleteFormula(e,t,a){const r={unitId:e,subUnitId:t,formulaIdList:a};this._commandService.executeCommand(se.RemoveOtherFormulaMutation.id,r);const i=this._ensureCacheMap(e,t);a.forEach(s=>i.delete(s))}getFormulaValue(e,t,a){const r=this._ensureCacheMap(e,t),i=r.get(a);return i?i.status===Je.SUCCESS||Je.ERROR?Promise.resolve(i):new Promise(s=>{i.callbacks.add(()=>{s(r.get(a))})}):Promise.resolve(null)}getFormulaValueSync(e,t,a){return this._ensureCacheMap(e,t).get(a)}};exports.RegisterOtherFormulaService=ni([pr(0,u.ICommandService),pr(1,se.IActiveDirtyManagerService)],exports.RegisterOtherFormulaService);class ze{constructor(){j(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 u.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 i=this._ensureCache(n,e);r.forEach(s=>{u.Range.foreach(s,(l,c)=>{const d=i.getValue(l,c);d&&(d.temp=!0)})}),a.forEach(s=>{u.Range.foreach(s,(l,c)=>{const d=i.getValue(l,c);d&&d.ruleId===t?d.temp=!1:i.setValue(l,c,void 0)})}),r.forEach(s=>{u.Range.foreach(s,(l,c)=>{const d=i.getValue(l,c);d&&d.temp===!0&&i.realDeleteValue(l,c)})})}markRangeDirty(n,e,t){const a=this._ensureCache(n,e);t.forEach(r=>{u.Range.foreach(r,(i,s)=>{a.setValue(i,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=>{u.Range.foreach(r,(i,s)=>{a.realDeleteValue(i,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 oi=Object.defineProperty,ii=Object.getOwnPropertyDescriptor,si=(o,n,e,t)=>{for(var a=t>1?void 0:t?ii(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&oi(n,e,a),a},Xe=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationCustomFormulaService=class extends u.Disposable{constructor(e,t,a,r,i){super();j(this,"_formulaMap",new Map);j(this,"_ruleFormulaMap",new Map);j(this,"_formulaCellMap",new Map);this._registerOtherFormulaService=e,this._lexerTreeBuilder=t,this._univerInstanceService=a,this._dataValidationModel=r,this._dataValidationCacheService=i,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 i=a[r],{formulaCellMap:s,ruleFormulaMap:l}=this._ensureMaps(t,r),c=this._dataValidationModel.ensureManager(t,r);i.forEach(d=>{const p=l.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),i=this._formulaCellMap.get(e);(!a||!r||!i)&&(a=new Map,r=new Map,i=new Map,this._formulaMap.set(e,a),this._ruleFormulaMap.set(e,r),this._formulaCellMap.set(e,i));let s=a.get(t),l=r.get(t),c=i.get(t);return(!s||!l||!c)&&(s=new u.ObjectMatrix,a.set(t,s),l=new Map,r.set(t,l),c=new Map,i.set(t,c)),{formulaMap:s,ruleFormulaMap:l,formulaCellMap:c}}_registerFormula(e,t,a,r){return this._registerOtherFormulaService.registerFormula(e,t,a,r)}deleteByRuleId(e,t,a){const{formulaMap:r,formulaCellMap:i,ruleFormulaMap:s}=this._ensureMaps(e,t),l=this._dataValidationModel.getRuleById(e,t,a),c=new Set,d=s.get(a);!l||!d||(s.delete(a),l.ranges.forEach(p=>{u.Range.foreach(p,(g,v)=>{const M=r.getValue(g,v);if(M&&M.ruleId===a){const{formulaId:C}=M;r.realDeleteValue(g,v),c.add(C),i.delete(C)}})}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(c.values())))}_addFormulaByRange(e,t,a,r,i){const{formulaMap:s,ruleFormulaMap:l,formulaCellMap:c}=this._ensureMaps(e,t);if(!r)return;const d=se.isFormulaTransformable(this._lexerTreeBuilder,r),p=i[0].startRow,g=i[0].startColumn;let v;d?i.forEach(M=>{u.Range.foreach(M,(C,O)=>{const T=se.transformFormula(this._lexerTreeBuilder,r,p,g,C,O),F=this._registerFormula(e,t,a,T);s.setValue(C,O,{formulaId:F,ruleId:a}),c.set(F,{row:C,column:O})})}):(v=this._registerFormula(e,t,a,r),i.forEach(M=>{u.Range.foreach(M,(C,O)=>{s.setValue(C,O,{formulaId:v,ruleId:a})})})),l.set(a,{formula:r,originCol:g,originRow:p,isTransformable:d,formulaId:v})}addRule(e,t,a){const{ranges:r,formula1:i,uid:s,type:l}=a;l!==u.DataValidationType.CUSTOM||!i||!u.isFormulaString(i)||this._addFormulaByRange(e,t,s,i,r)}updateRuleRanges(e,t,a,r,i){const{formulaMap:s,ruleFormulaMap:l,formulaCellMap:c}=this._ensureMaps(e,t),d=l.get(a);if(!d)return;const{formula:p,originCol:g,originRow:v,isTransformable:M,formulaId:C}=d,O=new Set;r.forEach(T=>{u.Range.foreach(T,(F,A)=>{const N=s.getValue(F,A);N&&N.ruleId===a&&(N.temp=!0)})}),i.forEach(T=>{u.Range.foreach(T,(F,A)=>{var $;const N=($=s.getValue(F,A))!=null?$:{};if(N.ruleId!==a){const x=l.get(N.ruleId);if(x!=null&&x.isTransformable&&O.add(N.formulaId),M){const I=se.transformFormula(this._lexerTreeBuilder,p,v,g,F,A),V=this._registerFormula(e,t,a,I);s.setValue(F,A,{ruleId:a,formulaId:V}),c.set(V,{row:F,column:A})}else s.setValue(F,A,{ruleId:a,formulaId:C})}else N.temp=!1})}),r.forEach(T=>{u.Range.foreach(T,(F,A)=>{const N=s.getValue(F,A);N&&N.ruleId===a&&N.temp===!0&&(s.realDeleteValue(F,A),M&&O.add(N.formulaId))})}),O.forEach(T=>{c.delete(T)}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(O.values()))}updateRuleFormula(e,t,a,r,i){const{ruleFormulaMap:s}=this._ensureMaps(e,t),l=s.get(a);(!l||l.formula!==i)&&this._addFormulaByRange(e,t,a,i,r)}getCellFormulaValue(e,t,a,r){const{formulaMap:i}=this._ensureMaps(e,t),s=i.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)}};exports.DataValidationCustomFormulaService=si([Xe(0,Y.Inject(exports.RegisterOtherFormulaService)),Xe(1,Y.Inject(se.LexerTreeBuilder)),Xe(2,u.IUniverInstanceService),Xe(3,Y.Inject(k.DataValidationModel)),Xe(4,Y.Inject(ze))],exports.DataValidationCustomFormulaService);function Ie(o){var n,e;return(e=(n=o==null?void 0:o[0])==null?void 0:n[0])==null?void 0:e.v}class li extends k.BaseDataValidator{constructor(){super(...arguments);j(this,"id",u.DataValidationType.CUSTOM);j(this,"title","dataValidation.custom.title");j(this,"operators",[]);j(this,"scopes",["sheet"]);j(this,"formulaInput",Yr);j(this,"_customFormulaService",this.injector.get(exports.DataValidationCustomFormulaService))}validatorFormula(e){const t=u.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:i,unitId:s,subUnitId:l}=e,c=await this._customFormulaService.getCellFormulaValue(s,l,i,r);return!!Ie(c==null?void 0:c.result)}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.custom.error")}}var ui=Object.defineProperty,ci=Object.getOwnPropertyDescriptor,di=(o,n,e,t)=>{for(var a=t>1?void 0:t?ci(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&ui(n,e,a),a},ua=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationFormulaService=class extends u.Disposable{constructor(e,t,a){super();j(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 i=a[r],s=this._ensureRuleFormulaMap(t,r),l=this._dataValidationModel.ensureManager(t,r);i.forEach(c=>{if(s.get(c.ruleId)){const d=l.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,i){const s=u.isFormulaString(r),l=u.isFormulaString(i);if(!s&&!l)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(l){const p=this._registerOtherFormulaService.registerFormula(e,t,a,i);d[1]={id:p,text:i}}c.set(a,d)}removeRule(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(!i)return;const[s,l]=i,c=[s==null?void 0:s.id,l==null?void 0:l.id].filter(Boolean);c.length&&this._registerOtherFormulaService.deleteFormula(e,t,c)}updateRuleFormulaText(e,t,a,r,i){const l=this._ensureRuleFormulaMap(e,t).get(a);if(!l){this.addRule(e,t,a,r,i);return}const[c,d]=l;if((c==null?void 0:c.text)!==r)if(c&&this._registerOtherFormulaService.deleteFormula(e,t,[c.id]),u.isFormulaString(r)){const p=this._registerOtherFormulaService.registerFormula(e,t,a,r);l[0]={text:r,id:p}}else l[0]=void 0;if((d==null?void 0:d.text)!==i)if(d&&this._registerOtherFormulaService.deleteFormula(e,t,[d.id]),u.isFormulaString(i)){const p=this._registerOtherFormulaService.registerFormula(e,t,a,i);l[1]={text:i,id:p}}else l[1]=void 0}getRuleFormulaResult(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(!i)return Promise.resolve(null);const s=async l=>l&&this._registerOtherFormulaService.getFormulaValue(e,t,l.id);return Promise.all([s(i[0]),s(i[1])])}getRuleFormulaResultSync(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(i)return i.map(s=>{if(s)return this._registerOtherFormulaService.getFormulaValueSync(e,t,s.id)})}getRuleFormulaInfo(e,t,a){return this._ensureRuleFormulaMap(e,t).get(a)}};exports.DataValidationFormulaService=di([ua(0,Y.Inject(exports.RegisterOtherFormulaService)),ua(1,Y.Inject(ze)),ua(2,Y.Inject(k.DataValidationModel))],exports.DataValidationFormulaService);var fi=Object.defineProperty,pi=Object.getOwnPropertyDescriptor,hi=(o,n,e,t)=>{for(var a=t>1?void 0:t?pi(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&fi(n,e,a),a},ca=(o,n)=>(e,t)=>n(e,t,o);const Vt=6;let va=class{constructor(o,n,e){this._commandService=o,this._formulaService=n,this._themeService=e}_calc(o,n){var c,d,p;const{vt:e,ht:t}=n||{},a=o.endX-o.startX-Vt*2,r=o.endY-o.startY,i=((c=n==null?void 0:n.fs)!=null?c:10)*1.6;let s=0,l=0;switch(e){case u.VerticalAlign.TOP:l=0;break;case u.VerticalAlign.BOTTOM:l=0+(r-i);break;default:l=0+(r-i)/2;break}switch(t){case u.HorizontalAlign.LEFT:s=Vt;break;case u.HorizontalAlign.RIGHT:s=Vt+(a-i);break;default:s=Vt+(a-i)/2;break}return{left:o.startX+s,top:o.startY+l,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(o,n,e){var i,s;const{formula1:t=tt,formula2:a=Et}=o,r=await this._formulaService.getRuleFormulaResult(n,e,o.uid);return{formula1:u.isFormulaString(t)?Ie((i=r==null?void 0:r[0])==null?void 0:i.result):t,formula2:u.isFormulaString(a)?Ie((s=r==null?void 0:r[1])==null?void 0:s.result):a}}drawWith(o,n){var P,b,R,D,_;const{style:e,data:t,primaryWithCoord:a,unitId:r,subUnitId:i}=n,s=a.isMergedMainCell?a.mergeInfo:a,l=me(t),c=(P=t.dataValidation)==null?void 0:P.rule,d=(b=t.dataValidation)==null?void 0:b.validator;if(!c||!d)return;const p=this._themeService.getCurrentTheme();if(!d.skipDefaultFontRender(c,l,{unitId:r,subUnitId:i}))return;const{formula1:g=tt}=c,v=this._calc(s,e),{a:M,d:C}=o.getTransform(),O=de.fixLineWidthByScale(v.left,M),T=de.fixLineWidthByScale(v.top,C),F=de.Transform.create().composeMatrix({left:O,top:T,scaleX:1,scaleY:1,angle:0,skewX:0,skewY:0,flipX:!1,flipY:!1}),A=s.endX-s.startX,N=s.endY-s.startY;o.save(),o.beginPath(),o.rect(s.startX,s.startY,A,N),o.clip();const $=F.getMatrix();o.transform($[0],$[1],$[2],$[3],$[4],$[5]);const x=((R=e==null?void 0:e.fs)!=null?R:10)*1.6,I=String(l)===String(g),V=p.hyacinth500;de.Checkbox.drawWith(o,{checked:I,width:x,height:x,fill:(_=(D=e==null?void 0:e.cl)==null?void 0:D.rgb)!=null?_:V}),o.restore()}isHit(o,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,i=t.left,s=t.left+t.width,{x:l,y:c}=o;return l<=s&&l>=i&&c<=r&&c>=a}async onPointerDown(o,n){var g,v;if(n.button===2)return;const{primaryWithCoord:e,unitId:t,subUnitId:a,data:r}=o,i=me(r),s=(g=r.dataValidation)==null?void 0:g.rule,l=(v=r.dataValidation)==null?void 0:v.validator;if(!s||!l||!l.skipDefaultFontRender(s,i,{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(i)===String(c)?d:c,p:null}};this._commandService.executeCommand(he.SetRangeValuesCommand.id,p)}};va=hi([ca(0,u.ICommandService),ca(1,Y.Inject(exports.DataValidationFormulaService)),ca(2,Y.Inject(u.ThemeService))],va);const tt=1,Et=0;class mi extends k.BaseDataValidator{constructor(){super(...arguments);j(this,"id",u.DataValidationType.CHECKBOX);j(this,"title","dataValidation.checkbox.title");j(this,"operators",[]);j(this,"scopes",["sheet"]);j(this,"formulaInput",zr);j(this,"canvasRender",this.injector.createInstance(va));j(this,"_formulaService",this.injector.get(exports.DataValidationFormulaService))}skipDefaultFontRender(e,t,a){const{formula1:r,formula2:i}=this.parseFormulaSync(e,a.unitId,a.subUnitId),s=`${t!=null?t:""}`;return!s||s===`${r}`||s===`${i}`}validatorFormula(e){const{formula1:t=tt,formula2:a=Et}=e,r=!u.Tools.isBlank(t),i=!u.Tools.isBlank(a);return{success:r&&i,formula1:r?"":this.localeService.t("dataValidation.validFail.common"),formula2:i?"":this.localeService.t("dataValidation.validFail.common")}}async parseFormula(e,t,a){var l,c;const{formula1:r=tt,formula2:i=Et}=e,s=await this._formulaService.getRuleFormulaResult(t,a,e.uid);return{formula1:u.isFormulaString(r)?Ie((l=s==null?void 0:s[0])==null?void 0:l.result):r,formula2:u.isFormulaString(i)?Ie((c=s==null?void 0:s[1])==null?void 0:c.result):i}}parseFormulaSync(e,t,a){var l,c;const{formula1:r=tt,formula2:i=Et}=e,s=this._formulaService.getRuleFormulaResultSync(t,a,e.uid);return{formula1:u.isFormulaString(r)?Ie((l=s==null?void 0:s[0])==null?void 0:l.result):r,formula2:u.isFormulaString(i)?Ie((c=s==null?void 0:s[1])==null?void 0:c.result):i}}async isValidType(e,t,a){const{value:r,unitId:i,subUnitId:s}=e,{formula1:l,formula2:c}=await this.parseFormula(a,i,s);return!u.Tools.isDefine(l)||!u.Tools.isDefine(c)?!0:u.Tools.isDefine(r)&&(String(r)===String(l)||String(r)===String(c))}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.checkbox.error")}}const rt=[u.DataValidationOperator.BETWEEN,u.DataValidationOperator.NOT_BETWEEN],da=86400;function vi(o,n=!0){if(n&&o>=0){if(o===0)return[1900,1,0];if(o===60)return[1900,2,29];if(o<60)return[1900,o<32?1:2,(o-1)%31+1]}let e=o+68569+2415019;const t=Math.floor(4*e/146097);e=e-Math.floor((146097*t+3)/4);const a=Math.floor(4e3*(e+1)/1461001);e=e-Math.floor(1461*a/4)+31;const r=Math.floor(80*e/2447),i=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,i|0]}const gi=o=>{let n=o|0;const e=da*(o-n);let t=Math.floor(e);e-t>.9999&&(t+=1,t===da&&(t=0,n+=1));const a=t<0?da+t:t,[r,i,s]=vi(o,!0),l=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,i-1,s),p.setUTCHours(l,c,d),p.getTime()},_i={[u.DataValidationOperator.BETWEEN]:"dataValidation.date.operators.between",[u.DataValidationOperator.EQUAL]:"dataValidation.date.operators.equal",[u.DataValidationOperator.GREATER_THAN]:"dataValidation.date.operators.greaterThan",[u.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.operators.greaterThanOrEqual",[u.DataValidationOperator.LESS_THAN]:"dataValidation.date.operators.lessThan",[u.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.operators.lessThanOrEqual",[u.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.operators.notBetween",[u.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.operators.notEqual"};u.DataValidationOperator.BETWEEN+"",u.DataValidationOperator.EQUAL+"",u.DataValidationOperator.GREATER_THAN+"",u.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",u.DataValidationOperator.LESS_THAN+"",u.DataValidationOperator.LESS_THAN_OR_EQUAL+"",u.DataValidationOperator.NOT_BETWEEN+"",u.DataValidationOperator.NOT_EQUAL+"";const Si={[u.DataValidationOperator.BETWEEN]:"dataValidation.date.ruleName.between",[u.DataValidationOperator.EQUAL]:"dataValidation.date.ruleName.equal",[u.DataValidationOperator.GREATER_THAN]:"dataValidation.date.ruleName.greaterThan",[u.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.ruleName.greaterThanOrEqual",[u.DataValidationOperator.LESS_THAN]:"dataValidation.date.ruleName.lessThan",[u.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.ruleName.lessThanOrEqual",[u.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.ruleName.notBetween",[u.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.ruleName.notEqual"},yi={[u.DataValidationOperator.BETWEEN]:"dataValidation.date.errorMsg.between",[u.DataValidationOperator.EQUAL]:"dataValidation.date.errorMsg.equal",[u.DataValidationOperator.GREATER_THAN]:"dataValidation.date.errorMsg.greaterThan",[u.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.greaterThanOrEqual",[u.DataValidationOperator.LESS_THAN]:"dataValidation.date.errorMsg.lessThan",[u.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.lessThanOrEqual",[u.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.errorMsg.notBetween",[u.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.errorMsg.notEqual"},hr="{FORMULA1}",mr="{FORMULA2}",vr=o=>xe(o).isValid(),wt=o=>{if(!(o==null||typeof o=="boolean"))return typeof o=="number"||!Number.isNaN(+o)?xe(gi(+o)):xe(o)};class Ri extends k.BaseDataValidator{constructor(){super(...arguments);j(this,"id",u.DataValidationType.DATE);j(this,"title","dataValidation.date.title");j(this,"operators",[u.DataValidationOperator.BETWEEN,u.DataValidationOperator.EQUAL,u.DataValidationOperator.GREATER_THAN,u.DataValidationOperator.GREATER_THAN_OR_EQUAL,u.DataValidationOperator.LESS_THAN,u.DataValidationOperator.LESS_THAN_OR_EQUAL,u.DataValidationOperator.NOT_BETWEEN,u.DataValidationOperator.NOT_EQUAL]);j(this,"scopes",["sheet"]);j(this,"formulaInput",lt);j(this,"dropdown",qr);j(this,"_formulaService",this.injector.get(exports.DataValidationFormulaService));j(this,"transformDate",wt)}async parseFormula(e,t,a){var l,c;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:wt(u.isFormulaString(i)?Ie((l=r==null?void 0:r[0])==null?void 0:l.result):i),formula2:wt(u.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"?xe(t).isValid():typeof t=="number"}_validatorSingleFormula(e){return!u.Tools.isBlank(e)&&(u.isFormulaString(e)||!Number.isNaN(+e)||!!e&&xe(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(rt.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:i}=t;return i?r.isSame(i):!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:i}=t;if(!r||!i)return!1;const s=r.isAfter(i)?i:r,l=s===r?i:r;return(a.isAfter(s)||a.isSame(s))&&(a.isBefore(l)||a.isSame(l))}async validatorIsNotBetween(e,t){const{value:a}=e,{formula1:r,formula2:i}=t;if(!r||!i)return!1;const s=r.isAfter(i)?r:i,l=s===r?i:r;return a.isBefore(s)||a.isAfter(l)}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(!u.Tools.isDefine(e.operator))return;if(rt.includes(e.operator)){if(u.Tools.isBlank(e.formula1)||u.Tools.isBlank(e.formula2))return"";if(!vr(e.formula1)||!vr(e.formula2))return""}else if(u.Tools.isBlank(e.formula1))return""}get operatorNames(){return this.operators.map(e=>this.localeService.t(_i[e]))}generateRuleName(e){var a,r;if(!e.operator)return this.titleStr;const t=this.localeService.t(Si[e.operator]).replace(hr,(a=e.formula1)!=null?a:"").replace(mr,(r=e.formula2)!=null?r:"");return`${this.titleStr} ${t}`}generateRuleErrorMessage(e){var a,r;return e.operator?`${this.localeService.t(yi[e.operator]).replace(hr,(a=e.formula1)!=null?a:"").replace(mr,(r=e.formula2)!=null?r:"")}`:this.titleStr}}var Di=Object.defineProperty,Mi=Object.getOwnPropertyDescriptor,Ii=(o,n,e,t)=>{for(var a=t>1?void 0:t?Mi(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&Di(n,e,a),a},Ct=(o,n)=>(e,t)=>n(e,t,o);const ke=4,Oi=6,ye=14,Ae=6,Me=2,Vi="#565656",gr=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 wi(o,n){const e=o.length;return{id:"d",body:{dataStream:`${o}${u.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[{ts:{fs:11,ff:void 0,it:u.BooleanNumber.FALSE,bl:u.BooleanNumber.FALSE,ul:{s:u.BooleanNumber.FALSE},st:{s:u.BooleanNumber.FALSE},ol:{s:u.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 ga(o,n,e){const t=wi(o,e),a=new u.DocumentDataModel(t),r=new de.DocumentViewModel(a);return{documentSkeleton:de.DocumentSkeleton.create(r,n),docModel:a,docViewModel:r}}function _r(o,n,e){const{documentSkeleton:t,docModel:a,docViewModel:r}=ga(o,n,e);return{documents:new de.Documents(`DOCUMENTS_${u.Tools.generateRandomId()}`,t,{pageMarginLeft:0,pageMarginTop:0}),documentSkeleton:t,docModel:a,docViewModel:r}}var ha;let _a=(ha=class{constructor(o,n,e,t){j(this,"_dropdownInfoMap",new Map);j(this,"zIndex");j(this,"onPointerEnter");j(this,"onPointerLeave");this._localeService=o,this._commandService=n,this._dataValidationModel=e,this._dataValidatorRegistryService=t}_ensureMap(o){let n=this._dropdownInfoMap.get(o);return n||(n=new Map,this._dropdownInfoMap.set(o,n)),n}_generateKey(o,n){return`${o}.${n}`}_drawDownIcon(o,n,e,t,a){const r=e-ye+4;let i=4;switch(a){case u.VerticalAlign.MIDDLE:i=(t-ye)/2+4;break;case u.VerticalAlign.BOTTOM:i=t-ye+4;break}o.save(),o.translateWithPrecision(n.startX+r,n.startY+i),o.fillStyle="#565656",o.fill(gr),o.restore()}drawWith(o,n,e,t){var V,P;const{primaryWithCoord:a,row:r,col:i,style:s,data:l,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,i),C=(V=l.dataValidation)==null?void 0:V.rule,O=(P=l.dataValidation)==null?void 0:P.validator;if(!C||!O||!O.skipDefaultFontRender(C))return;const T=O.getListWithColor(C),F=me(l),A=`${F!=null?F:""}`,N=T.find(b=>b.label===A);let{tb:$,vt:x,ht:I}=s||{};if($=$!=null?$:u.WrapStrategy.WRAP,x=x!=null?x:u.VerticalAlign.TOP,I=I!=null?I:u.HorizontalAlign.LEFT,C.renderMode===u.DataValidationRenderMode.ARROW){this._drawDownIcon(o,d,p,g,x),o.save(),o.translateWithPrecision(d.startX,d.startY),o.beginPath(),o.rect(0,0,p,g),o.clip();const b=p-ye,{documentSkeleton:R,documents:D,docModel:_}=_r(A,this._localeService,s);$===u.WrapStrategy.WRAP&&_.updateDocumentDataPageSize(b),R.calculate(),R.getActualSize();const y=de.getDocsSkeletonPageSize(R),{height:h,width:m}=y;let f=0;switch(x){case u.VerticalAlign.BOTTOM:f=g-Me-h;break;case u.VerticalAlign.MIDDLE:f=(g-Me-h)/2;break;default:f=Me;break}let S=0;switch(I){case u.HorizontalAlign.CENTER:S=(b-m)/2;break;case u.HorizontalAlign.RIGHT:S=b-m;break}o.translate(0,f),o.save(),o.translateWithPrecision(ke,0),o.beginPath(),o.rect(0,0,b,h),o.clip(),D.render(o),o.translateWithPrecision(S,0),o.restore(),o.restore(),v.set(M,{left:d.endX+e.rowHeaderWidth-ye,top:d.startY+e.columnHeaderHeight,width:ye,height:g})}else{o.save(),o.translateWithPrecision(d.startX,d.startY),o.beginPath(),o.rect(0,0,p,g),o.clip();const b=p-Ae*2-ke-ye,{documentSkeleton:R,documents:D,docModel:_}=_r(A,this._localeService,s);$===u.WrapStrategy.WRAP&&_.updateDocumentDataPageSize(b),R.calculate();const y=de.getDocsSkeletonPageSize(R),{height:h,width:m}=y;let f=0;switch(x){case u.VerticalAlign.BOTTOM:f=g-Me-h;break;case u.VerticalAlign.MIDDLE:f=(g-Me-h)/2;break;default:f=Me;break}let S=0;switch(I){case u.HorizontalAlign.CENTER:S=(b-m)/2;break;case u.HorizontalAlign.RIGHT:S=b-m;break}o.translate(Ae,f);const w=p-Ae*2,E=h;de.Rect.drawWith(o,{width:w,height:E,fill:(N==null?void 0:N.color)||Le,radius:8}),o.save(),o.translateWithPrecision(ke,0),o.beginPath(),o.rect(0,0,b,h),o.clip(),o.translateWithPrecision(S,0),D.render(o),o.restore(),o.translate(b+ke+4,(h-Oi)/2),o.fillStyle=Vi,o.fill(gr),o.restore(),v.set(M,{left:d.startX+Ae+e.rowHeaderWidth,top:d.startY+f+e.columnHeaderHeight,width:w,height:E})}}calcCellAutoHeight(o){var d;const{primaryWithCoord:n,style:e,data:t}=o,a=n.isMergedMainCell?n.mergeInfo:n,r=a.endX-a.startX,i=me(t),s=`${i!=null?i:""}`,l=(d=t.dataValidation)==null?void 0:d.rule;if(!l||l.renderMode===u.DataValidationRenderMode.TEXT)return;let{tb:c}=e||{};if(c=c!=null?c:u.WrapStrategy.WRAP,l.renderMode===u.DataValidationRenderMode.ARROW){const p=r-ye,{documentSkeleton:g,docModel:v}=ga(s,this._localeService,e);c===u.WrapStrategy.WRAP&&v.updateDocumentDataPageSize(p),g.calculate(),g.getActualSize();const M=de.getDocsSkeletonPageSize(g),{height:C}=M;return C}else{const p=r-Ae*2-ke-ye,{documentSkeleton:g,docModel:v}=ga(s,this._localeService,e);c===u.WrapStrategy.WRAP&&v.updateDocumentDataPageSize(p),g.calculate(),g.getActualSize();const M=de.getDocsSkeletonPageSize(g),{height:C}=M;return C+Me*2}}isHit(o,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}=o;return v>=d&&v<=d+p&&M>=c&&M<=c+g}onPointerDown(o,n){if(n.button===2)return;const{unitId:e,subUnitId:t,row:a,col:r}=o,i={unitId:e,subUnitId:t,row:a,column:r};this._commandService.executeCommand(xt.id,i)}},j(ha,"padding",{l:Ae+ke,r:ye+Ae,t:Me,b:Me}),ha);_a=Ii([Ct(0,Y.Inject(u.LocaleService)),Ct(1,u.ICommandService),Ct(2,Y.Inject(k.DataValidationModel)),Ct(3,Y.Inject(k.DataValidatorRegistryService))],_a);class Ci extends k.BaseDataValidator{constructor(){super(...arguments);j(this,"id",u.DataValidationType.LIST);j(this,"title","dataValidation.list.title");j(this,"operators",[]);j(this,"scopes",["sheet"]);j(this,"formulaInput",ba);j(this,"_univerInstanceService",this.injector.get(u.IUniverInstanceService));j(this,"canvasRender",this.injector.createInstance(_a));j(this,"dropdown",Ma);j(this,"optionsInput",Ft.componentKey)}skipDefaultFontRender(e){return e.renderMode!==u.DataValidationRenderMode.TEXT}validatorFormula(e){const t=!u.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 Oe(a)}async parseFormula(e,t,a){const{formula1:r=""}=e;return{formula1:se.isReferenceString(r)?at(se.deserializeRangeWithSheet(r),this._univerInstanceService,t,a):Oe(r),formula2:void 0}}async isValidType(e,t,a){const{value:r}=e,{formula1:i}=t;return this._parseCellValue(r,a).every(l=>i.includes(l))}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,i=this.injector.get(u.IUniverInstanceService),s=(p=t?i.getUniverSheetInstance(t):void 0)!=null?p:i.getCurrentUniverSheetInstance(),l=(g=a?s.getSheetBySheetId(a):void 0)!=null?g:s.getActiveSheet(),c=s.getUnitId(),d=l.getSheetId();return se.isReferenceString(r)?at(se.deserializeRangeWithSheet(r),this._univerInstanceService,c,d):Oe(r)}getListWithColor(e,t,a){const r=this.getList(e,t,a),i=(e.formula2||"").split(",");return r.map((s,l)=>({label:s,color:i[l]}))}getListWithColorMap(e,t,a){const r=this.getListWithColor(e,t,a),i={};return r.forEach(s=>{s.color&&(i[s.label]=s.color)}),i}}function At(o){let n=o;return typeof o=="string"?((o.startsWith("¥")||o.startsWith("$"))&&(n=o.slice(1)),+n):+o}class bi extends k.BaseDataValidator{constructor(){super(...arguments);j(this,"_formulaService",this.injector.get(exports.DataValidationFormulaService));j(this,"id",u.DataValidationType.DECIMAL);j(this,"title",this.localeService.t("dataValidation.decimal.title"));j(this,"operators",[u.DataValidationOperator.BETWEEN,u.DataValidationOperator.EQUAL,u.DataValidationOperator.GREATER_THAN,u.DataValidationOperator.GREATER_THAN_OR_EQUAL,u.DataValidationOperator.LESS_THAN,u.DataValidationOperator.LESS_THAN_OR_EQUAL,u.DataValidationOperator.NOT_BETWEEN,u.DataValidationOperator.NOT_EQUAL]);j(this,"scopes",["sheet"]);j(this,"formulaInput",lt);j(this,"dropDownInput")}_isFormulaOrNumber(e){return!u.Tools.isBlank(e)&&(u.isFormulaString(e)||!Number.isNaN(+e))}async isValidType(e,t,a){const{value:r}=e;return!Number.isNaN(At(r))}transform(e,t,a){const{value:r}=e;return{...e,value:At(r)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var c,d,p,g,v,M,C,O;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(u.isFormulaString(i)?(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:i),formula2:this._parseNumber(u.isFormulaString(s)?(O=(C=(M=(v=r==null?void 0:r[1])==null?void 0:v.result)==null?void 0:M[0])==null?void 0:C[0])==null?void 0:O.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=u.Tools.isDefine(e.formula1)&&this._isFormulaOrNumber(e.formula1),r=u.Tools.isDefine(e.formula2)&&this._isFormulaOrNumber(e.formula2),i=rt.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{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:i}=e;return Number.isNaN(r)?!0:i===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:i}=t;if(Number.isNaN(r)||Number.isNaN(i))return!0;const s=Math.min(r,i),l=Math.max(r,i);return e.value>=s&&e.value<=l}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:i}=t;if(Number.isNaN(r)||Number.isNaN(i))return!0;const s=Math.min(r,i),l=Math.max(r,i);return e.value<s&&e.value>l}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 Ti extends k.BaseDataValidator{constructor(){super(...arguments);j(this,"id",u.DataValidationType.TEXT_LENGTH);j(this,"title","dataValidation.textLength.title");j(this,"operators",[u.DataValidationOperator.BETWEEN,u.DataValidationOperator.EQUAL,u.DataValidationOperator.GREATER_THAN,u.DataValidationOperator.GREATER_THAN_OR_EQUAL,u.DataValidationOperator.LESS_THAN,u.DataValidationOperator.LESS_THAN_OR_EQUAL,u.DataValidationOperator.NOT_BETWEEN,u.DataValidationOperator.NOT_EQUAL]);j(this,"scopes",["sheet"]);j(this,"formulaInput",lt);j(this,"_formulaService",this.injector.get(exports.DataValidationFormulaService))}_isFormulaOrInt(e){return!u.Tools.isBlank(e)&&(u.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=u.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),r=u.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),i=rt.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{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 l,c,d,p,g,v,M,C;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(u.isFormulaString(i)?(p=(d=(c=(l=r==null?void 0:r[0])==null?void 0:l.result)==null?void 0:c[0])==null?void 0:d[0])==null?void 0:p.v:i),formula2:this._parseNumber(u.isFormulaString(s)?(C=(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:C.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 u.Tools.isDefine(r)?e.value===r:!1}async validatorIsNotEqual(e,t,a){const{formula1:r}=t;return u.Tools.isDefine(r)?e.value!==r:!1}async validatorIsBetween(e,t,a){const{formula1:r,formula2:i}=t,{value:s}=e;if(!this._isValidFormula(r)||!this._isValidFormula(i))return!1;const l=Math.max(r,i),c=Math.min(r,i);return s>=c&&s<=l}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:i}=t,{value:s}=e;if(!this._isValidFormula(r)||!this._isValidFormula(i))return!1;const l=Math.max(r,i),c=Math.min(r,i);return s>=c&&s<=l}async validatorIsGreaterThan(e,t,a){const{formula1:r}=t,{value:i}=e;return this._isValidFormula(r)?i>r:!1}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:r}=t,{value:i}=e;return this._isValidFormula(r)?i>=r:!1}async validatorIsLessThan(e,t,a){const{formula1:r}=t,{value:i}=e;return this._isValidFormula(r)?i<r:!1}async validatorIsLessThanOrEqual(e,t,a){const{formula1:r}=t,{value:i}=e;return this._isValidFormula(r)?i<=r:!1}}class Ei extends k.BaseDataValidator{constructor(){super(...arguments);j(this,"_formulaService",this.injector.get(exports.DataValidationFormulaService));j(this,"id",u.DataValidationType.WHOLE);j(this,"title",this.localeService.t("dataValidation.whole.title"));j(this,"operators",[u.DataValidationOperator.BETWEEN,u.DataValidationOperator.EQUAL,u.DataValidationOperator.GREATER_THAN,u.DataValidationOperator.GREATER_THAN_OR_EQUAL,u.DataValidationOperator.LESS_THAN,u.DataValidationOperator.LESS_THAN_OR_EQUAL,u.DataValidationOperator.NOT_BETWEEN,u.DataValidationOperator.NOT_EQUAL]);j(this,"scopes",["sheet"]);j(this,"formulaInput",lt);j(this,"dropDownInput")}_isFormulaOrInt(e){return!u.Tools.isBlank(e)&&(u.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}async isValidType(e,t,a){const{value:r}=e,i=At(r);return!Number.isNaN(i)&&Number.isInteger(i)}transform(e,t,a){const{value:r}=e;return{...e,value:At(r)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var c,d,p,g,v,M,C,O;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(u.isFormulaString(i)?(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:i),formula2:this._parseNumber(u.isFormulaString(s)?(O=(C=(M=(v=r==null?void 0:r[1])==null?void 0:v.result)==null?void 0:M[0])==null?void 0:C[0])==null?void 0:O.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=u.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),r=u.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),i=rt.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{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:i}=e;return Number.isNaN(r)?!0:i===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:i}=t;if(Number.isNaN(r)||Number.isNaN(i))return!0;const s=Math.min(r,i),l=Math.max(r,i);return e.value>=s&&e.value<=l}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:i}=t;if(Number.isNaN(r)||Number.isNaN(i))return!0;const s=Math.min(r,i),l=Math.max(r,i);return e.value<s&&e.value>l}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 Gr=4,Fi=0,fa=4,Xr=4,Sa=6,Pt=6,Pe=14;function Ai(o,n){const e=de.FontCache.getTextSize(o,n),t=e.width+Gr*2,{ba:a,bd:r}=e,i=a+r;return{width:t,height:i+Fi*2,ba:a}}function Sr(o,n,e,t){const a=e-Pe-Sa,r=t-Pt*2,i=o.map(d=>({layout:Ai(d,n),text:d}));let s;const l=[];i.forEach(d=>{const{layout:p}=d,{width:g,height:v}=p;!s||s.width+g+fa>a?(s={width:g,height:v,items:[{...d,left:0}]},l.push(s)):(s.items.push({...d,left:s.width+fa}),s.width=s.width+g+fa)});let c=0;return l.forEach((d,p)=>{p===l.length-1?c+=d.height:c+=d.height+Xr}),{lines:l,totalHeight:c,contentWidth:a,contentHeight:r,cellAutoHeight:c+Pt*2}}const Pi=8;class Li extends de.Shape{static drawWith(n,e){const{fontFamily:t,fontString:a,fontSize:r,info:i,fill:s,color:l}=e,{layout:c,text:d}=i;n.save(),de.Rect.drawWith(n,{width:c.width,height:c.height,radius:Pi,fill:s||Le}),n.translateWithPrecision(Gr,c.ba),n.font=a,n.fillStyle=l,n.fillText(d,0,0),n.restore()}}var Ni=Object.defineProperty,xi=Object.getOwnPropertyDescriptor,Ui=(o,n,e,t)=>{for(var a=t>1?void 0:t?xi(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&Ni(n,e,a),a},ji=(o,n)=>(e,t)=>n(e,t,o);const $i=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 ya=class{constructor(o){j(this,"zIndex");j(this,"_dropdownInfoMap",new Map);this._commandService=o}_ensureMap(o){let n=this._dropdownInfoMap.get(o);return n||(n=new Map,this._dropdownInfoMap.set(o,n)),n}_generateKey(o,n){return`${o}.${n}`}_drawDownIcon(o,n,e,t,a){const r=e-Pe+4;let i=4;switch(a){case u.VerticalAlign.MIDDLE:i=(t-Pe)/2+4;break;case u.VerticalAlign.BOTTOM:i=t-Pe+4;break}o.save(),o.translateWithPrecision(n.startX+r,n.startY+i),o.fillStyle="#565656",o.fill($i),o.restore()}drawWith(o,n,e,t){var y,h;const{primaryWithCoord:a,row:r,col:i,style:s,data:l,subUnitId:c}=n,d=a.isMergedMainCell?a.mergeInfo:a,p=l.dataValidation,g=d.endX-d.startX,v=d.endY-d.startY,M=this._ensureMap(c),C=this._generateKey(r,i);if(!p)return;const{cl:O}=s||{},T=(y=typeof O=="object"?O==null?void 0:O.rgb:O)!=null?y:"#000",F=de.getFontStyleString(s!=null?s:void 0),{rule:A,validator:N}=p,$=N,{vt:x,ht:I}=s||{},V=x!=null?x:u.VerticalAlign.MIDDLE,P=(h=me(l))!=null?h:"",b=$.parseCellValue(P,A),R=$.getListWithColorMap(A),D=Sr(b,F,g,v);this._drawDownIcon(o,d,g,v,V),o.save(),o.translateWithPrecision(d.startX,d.startY),o.beginPath(),o.rect(0,0,g-Pe,v),o.clip(),o.translateWithPrecision(Sa,Pt);let _=0;switch(V){case u.VerticalAlign.MIDDLE:_=(D.contentHeight-D.totalHeight)/2;break;case u.VerticalAlign.BOTTOM:_=D.contentHeight-D.totalHeight;break}o.translateWithPrecision(0,_),D.lines.forEach((m,f)=>{o.save();const{width:S,height:w,items:E}=m;let U=0;switch(I){case u.HorizontalAlign.RIGHT:U=D.contentWidth-S;break;case u.HorizontalAlign.CENTER:U=(D.contentWidth-S)/2;break}o.translate(U,f*(w+Xr)),E.forEach(B=>{o.save(),o.translateWithPrecision(B.left,0),Li.drawWith(o,{...F,info:B,color:T,fill:R[B.text]}),o.restore()}),o.restore()}),o.restore(),M.set(C,{left:d.startX,top:d.startY,width:D.contentWidth+Sa+Pe,height:D.contentHeight+Pt*2})}calcCellAutoHeight(o){var C;const{primaryWithCoord:n,style:e,data:t}=o,a=n.isMergedMainCell?n.mergeInfo:n,r=t.dataValidation;if(!r)return;const i=a.endX-a.startX,s=a.endY-a.startY,l=(C=me(t))!=null?C:"",{rule:c,validator:d}=r,g=d.parseCellValue(l,c),v=de.getFontStyleString(e!=null?e:void 0);return Sr(g,v,i,s).cellAutoHeight}isHit(o,n){const{primaryWithCoord:e}=n,t=e.isMergedMainCell?e.mergeInfo:e,{endX:a}=t,{x:r}=o;return r>=a-Pe&&r<=a}onPointerDown(o,n){if(n.button===2)return;const{unitId:e,subUnitId:t,row:a,col:r}=o,i={unitId:e,subUnitId:t,row:a,column:r};this._commandService.executeCommand(xt.id,i)}};ya=Ui([ji(0,u.ICommandService)],ya);class qi extends k.BaseDataValidator{constructor(){super(...arguments);j(this,"id",u.DataValidationType.LIST_MULTIPLE);j(this,"title","dataValidation.listMultiple.title");j(this,"operators",[]);j(this,"scopes",["sheet"]);j(this,"formulaInput",ba);j(this,"_univerInstanceService",this.injector.get(u.IUniverInstanceService));j(this,"canvasRender",this.injector.createInstance(ya));j(this,"dropdown",Ma)}skipDefaultFontRender(){return!0}validatorFormula(e){const t=!u.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?Oe(a):[]}async parseFormula(e,t,a){const{formula1:r=""}=e;return{formula1:se.isReferenceString(r)?at(se.deserializeRangeWithSheet(r),this._univerInstanceService,t,a):Oe(r),formula2:void 0}}async isValidType(e,t,a){const{value:r}=e,{formula1:i}=t;return this.parseCellValue(r,a).every(l=>i.includes(l))}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,i=this.injector.get(u.IUniverInstanceService),s=(p=t?i.getUniverSheetInstance(t):void 0)!=null?p:i.getCurrentUniverSheetInstance(),l=(g=a?s.getSheetBySheetId(a):void 0)!=null?g:s.getActiveSheet(),c=s.getUnitId(),d=l.getSheetId();return se.isReferenceString(r)?at(se.deserializeRangeWithSheet(r),this._univerInstanceService,c,d):Oe(r)}getListWithColor(e,t,a){const r=this.getList(e,t,a),i=e.formula2?e.formula2.split(","):[];return r.map((s,l)=>({label:s,color:i[l]}))}getListWithColorMap(e,t,a){const r=this.getListWithColor(e,t,a),i={};return r.forEach(s=>{s.color&&(i[s.label]=s.color)}),i}}var Wi=Object.defineProperty,Bi=Object.getOwnPropertyDescriptor,ki=(o,n,e,t)=>{for(var a=t>1?void 0:t?Bi(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&Wi(n,e,a),a},be=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationController=class extends u.RxDisposable{constructor(n,e,t,a,r,i,s,l){super(),this._univerInstanceService=n,this._sheetDataValidationService=e,this._dataValidatorRegistryService=t,this._injector=a,this._componentManger=r,this._selectionManagerService=i,this._sheetInterceptorService=s,this._dataValidationModel=l,this._init()}_init(){this._registerValidators(),this._initInstanceChange(),this._componentManger.register(Kr,Fr),this._initCommandInterceptor()}_registerValidators(){[bi,Ei,Ti,Ri,mi,Ci,qi,li].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(),i=this._selectionManagerService.getSelectionRanges(),s=this._dataValidationModel.ensureManager(t,r),l=s.getRuleObjectMatrix().clone();i&&l.removeRange(i);const c=l.diff(s.getDataValidations()),{redoMutations:d,undoMutations:p}=He(t,r,c);return{undos:p,redos:d}}return{undos:[],redos:[]}}})}};exports.DataValidationController=ki([u.OnLifecycle(u.LifecycleStages.Rendered,exports.DataValidationController),be(0,u.IUniverInstanceService),be(1,Y.Inject(exports.SheetDataValidationService)),be(2,Y.Inject(k.DataValidatorRegistryService)),be(3,Y.Inject(Y.Injector)),be(4,Y.Inject(oe.ComponentManager)),be(5,Y.Inject(he.SelectionManagerService)),be(6,Y.Inject(he.SheetInterceptorService)),be(7,Y.Inject(k.DataValidationModel))],exports.DataValidationController);var Hi=Object.defineProperty,Yi=Object.getOwnPropertyDescriptor,zi=(o,n,e,t)=>{for(var a=t>1?void 0:t?Yi(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&Hi(n,e,a),a},Qe=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationAlertController=class extends u.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 i=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=(e=this._sheetDataValidationService.currentManager)==null?void 0:e.manager,l=i.getCell(n.location.row,n.location.col);if(((t=l==null?void 0:l.dataValidation)==null?void 0:t.validStatus)===u.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:ie.CellAlertType.ERROR,title:this._localeService.t("dataValidation.error.title"),message:s==null?void 0:s.getRuleErrorMsg(l.dataValidation.ruleId),location:n.location,width:200,height:74});return}}this._cellAlertManagerService.clearAlert()}))}};exports.DataValidationAlertController=zi([u.OnLifecycle(u.LifecycleStages.Rendered,exports.DataValidationAlertController),Qe(0,Y.Inject(ie.HoverManagerService)),Qe(1,Y.Inject(ie.CellAlertManagerService)),Qe(2,u.IUniverInstanceService),Qe(3,Y.Inject(exports.SheetDataValidationService)),Qe(4,Y.Inject(u.LocaleService))],exports.DataValidationAlertController);var Ki=Object.defineProperty,Gi=Object.getOwnPropertyDescriptor,Xi=(o,n,e,t)=>{for(var a=t>1?void 0:t?Gi(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&Ki(n,e,a),a},Re=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationRefRangeController=class extends u.Disposable{constructor(e,t,a,r,i,s,l,c,d,p){super();j(this,"_disposableMap",new Map);this._dataValidationModel=e,this._univerInstanceService=t,this._injector=a,this._sheetSkeletonManagerService=r,this._refRangeService=i,this._dataValidationCustomFormulaService=s,this._dataValidationFormulaService=l,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,i=this._getIdWithUnitId(e,t,r),s=(c=this._disposableMap.get(i))!=null?c:new Set,l=(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:k.UpdateRuleType.SETTING,payload:{type:g.type,formula1:g.formula1,formula2:g.formula2,[d]:p}}},C={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:k.UpdateRuleType.SETTING,payload:{type:g.type,formula1:g.formula1,formula2:g.formula2,[d]:p}}},O=[{id:k.UpdateDataValidationMutation.id,params:M}],T=[{id:k.UpdateDataValidationMutation.id,params:C}];return{redos:O,undos:T}};if(a.type===u.DataValidationType.CUSTOM){const d=this._dataValidationCustomFormulaService.getRuleFormulaInfo(e,t,r);if(d){const p=this._formulaRefRangeService.registerFormula(d.formula,g=>l("formula1",g));s.add(()=>p.dispose())}}if(a.type!==u.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=>l("formula1",M));s.add(()=>v.dispose())}if(g){const v=this._formulaRefRangeService.registerFormula(g.text,M=>l("formula1",M));s.add(()=>v.dispose())}}}}register(e,t,a){var c;const r=d=>{const p=[...a.ranges],v=p.map(C=>he.handleOtherDefaultRangeChangeWithEffectRefCommands(C,d)).filter(C=>!!C).flat();if(u.isRangesEqual(v,p))return{redos:[],undos:[]};if(v.length){const C={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:k.UpdateRuleType.RANGE,payload:v}},O=[{id:k.UpdateDataValidationMutation.id,params:C}],T=[{id:k.UpdateDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:k.UpdateRuleType.RANGE,payload:p}}}];return{redos:O,undos:T}}else{const C={unitId:e,subUnitId:t,ruleId:a.uid},O=[{id:k.RemoveDataValidationMutation.id,params:C}],T=k.removeDataValidationUndoFactory(this._injector,C);return{redos:O,undos:T}}},i=[];a.ranges.forEach(d=>{const p=this._refRangeService.registerRefRange(d,r);i.push(()=>p.dispose())});const s=this._getIdWithUnitId(e,t,a.uid),l=(c=this._disposableMap.get(s))!=null?c:new Set;l.add(()=>i.forEach(d=>d())),this._disposableMap.set(s,l)}registerRange(e,t,a){var A,N,$,x,I;const{uid:r,formula1:i,type:s}=a;if(s!==u.DataValidationType.LIST&&s!==u.DataValidationType.LIST_MULTIPLE||!se.isReferenceString(i!=null?i:""))return;const l=se.deserializeRangeWithSheet(i!=null?i:""),c=this._getIdWithUnitId(e,t,r),d=l.unitId||e,p=(A=this._univerInstanceService.getUniverSheetInstance(d))!=null?A:this._univerInstanceService.getCurrentUniverSheetInstance(),g=($=(N=p.getSheetBySheetName(l.sheetName))==null?void 0:N.getSheetId())!=null?$:t,v=(x=p.getSheetBySheetId(g))!=null?x:p.getActiveSheet(),M=new u.DisposableCollection,C=l.range,O=p.getUnitId(),T=v.getSheetId();M.add(this._refRangeService.registerRefRange(C,V=>{let P=he.handleDefaultRangeChangeWithEffectRefCommands(C,V);if(P||(P={startColumn:-1,endColumn:-1,startRow:-1,endRow:-1}),u.Rectangle.equals(P,C))return{redos:[],undos:[]};const b=se.serializeRangeWithSpreadsheet(O,T,P),R=this._dataValidationModel.getRuleById(e,t,r);if(!R)return{redos:[],undos:[]};const D={unitId:e,subUnitId:t,ruleId:r,payload:{type:k.UpdateRuleType.SETTING,payload:{formula1:b,formula2:R.formula2,type:R.type}}},_={unitId:e,subUnitId:t,ruleId:r,payload:{type:k.UpdateRuleType.SETTING,payload:{formula1:R.formula1,formula2:R.formula2,type:R.type}}};return{redos:[{id:k.UpdateDataValidationMutation.id,params:D}],undos:[{id:k.UpdateDataValidationMutation.id,params:_}]}},O,O)),M.add(this.disposeWithMe(this._commandService.onCommandExecuted(V=>{if(V.id===he.SetRangeValuesMutation.id&&V.params){const P=V.params,{cellValue:b,unitId:R,subUnitId:D}=P;if(R===O&&D===T)if(b){let _=!1;u.Range.foreach(C,(y,h)=>{const m=b[y];if(m&&h in m){if(_)return;_=!0,this._dataValidationCacheService.markRangeDirty(R,D,a.ranges)}})}else this._dataValidationCacheService.markRangeDirty(R,D,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(Yt.map(e=>e==null?void 0:e.sheetId),Yt.distinctUntilChanged())).pipe(Yt.switchMap(()=>new ge.Observable(e=>{const t=new u.DisposableCollection;return e.next(t),()=>{t.dispose()}}))).subscribe(e=>{e.add(u.toDisposable(this._dataValidationModel.ruleChange$.subscribe(t=>{const{unitId:a,subUnitId:r,rule:i}=t,s=this._univerInstanceService.getCurrentUniverSheetInstance(),l=s.getActiveSheet();if(!(t.unitId!==s.getUnitId()||t.subUnitId!==l.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,i.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(u.toDisposable(()=>{this._disposableMap.forEach(e=>{e.forEach(t=>t())}),this._disposableMap.clear()}))}};exports.DataValidationRefRangeController=Xi([u.OnLifecycle(u.LifecycleStages.Rendered,exports.DataValidationRefRangeController),Re(0,Y.Inject(k.DataValidationModel)),Re(1,Y.Inject(u.IUniverInstanceService)),Re(2,Y.Inject(Y.Injector)),Re(3,Y.Inject(ie.SheetSkeletonManagerService)),Re(4,Y.Inject(he.RefRangeService)),Re(5,Y.Inject(exports.DataValidationCustomFormulaService)),Re(6,Y.Inject(exports.DataValidationFormulaService)),Re(7,Y.Inject(Dr.FormulaRefRangeService)),Re(8,u.ICommandService),Re(9,Y.Inject(ze))],exports.DataValidationRefRangeController);const Qr={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"}}},Zr={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 Qi=Object.defineProperty,Zi=Object.getOwnPropertyDescriptor,Ji=(o,n,e,t)=>{for(var a=t>1?void 0:t?Zi(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&Qi(n,e,a),a},yr=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationAutoFillController=class extends u.Disposable{constructor(n,e){super(),this._autoFillService=n,this._dataValidationModel=e,this._initAutoFill()}_initAutoFill(){const n=()=>({redos:[],undos:[]}),e=a=>{const{source:r,target:i,unitId:s,subUnitId:l}=a,c=this._dataValidationModel.ensureManager(s,l),d=c.getRuleObjectMatrix().clone(),p={row:r.startRow,col:r.startColumn};ie.getAutoFillRepeatRange(r,i).forEach(O=>{const T=O.repeatStartCell,F=O.relativeRange,A={startRow:p.row,startColumn:p.col,endColumn:p.col,endRow:p.row},N={startRow:T.row,startColumn:T.col,endColumn:T.col,endRow:T.row};u.Range.foreach(F,($,x)=>{const I=u.Rectangle.getPositionRange({startRow:$,startColumn:x,endColumn:x,endRow:$},A),V=c.getRuleIdByLocation(I.startRow,I.startColumn);if(V){const P=u.Rectangle.getPositionRange({startRow:$,startColumn:x,endColumn:x,endRow:$},N);d.setValue(P.startRow,P.startColumn,V)}})});const v=d.diff(c.getDataValidations()),{redoMutations:M,undoMutations:C}=He(s,l,v);return{undos:C,redos:M}},t={id:Ye,onFillData:(a,r,i)=>i===ie.APPLY_TYPE.COPY||i===ie.APPLY_TYPE.ONLY_FORMAT||i===ie.APPLY_TYPE.SERIES?e(a):n()};this.disposeWithMe(this._autoFillService.addHook(t))}};exports.DataValidationAutoFillController=Ji([u.OnLifecycle(u.LifecycleStages.Ready,exports.DataValidationAutoFillController),yr(0,ie.IAutoFillService),yr(1,Y.Inject(k.DataValidationModel))],exports.DataValidationAutoFillController);var es=Object.defineProperty,ts=Object.getOwnPropertyDescriptor,as=(o,n,e,t)=>{for(var a=t>1?void 0:t?ts(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&es(n,e,a),a},bt=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationSheetController=class extends u.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(),i=this._dataValidationModel.ensureManager(t,r);if(!i)return{redos:[],undos:[]};const s=i.getDataValidations(),l=s.map(p=>p.uid),c={unitId:t,subUnitId:r,ruleId:l},d={unitId:t,subUnitId:r,rule:s};return{redos:[{id:k.RemoveDataValidationMutation.id,params:c}],undos:[{id:k.AddDataValidationMutation.id,params:d}]}}return{redos:[],undos:[]}}}))}};exports.DataValidationSheetController=as([u.OnLifecycle(u.LifecycleStages.Ready,exports.DataValidationSheetController),bt(0,Y.Inject(he.SheetInterceptorService)),bt(1,Y.Inject(u.IUniverInstanceService)),bt(2,Y.Inject(k.DataValidationModel)),bt(3,Y.Inject(Y.Injector))],exports.DataValidationSheetController);var rs=Object.defineProperty,ns=Object.getOwnPropertyDescriptor,os=(o,n,e,t)=>{for(var a=t>1?void 0:t?ns(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&rs(n,e,a),a},Rr=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationCopyPasteController=class extends u.Disposable{constructor(e,t){super();j(this,"_copyInfo");this._sheetClipboardService=e,this._dataValidationModel=t,this._initCopyPaste()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:Ye,onBeforeCopy:(e,t,a)=>this._collect(e,t,a),onPasteCells:(e,t,a,r)=>{const{copyType:i=ie.COPY_TYPE.COPY,pasteType:s}=r,{range:l}=e||{},{range:c,unitId:d,subUnitId:p}=t;return this._generateMutations(c,{copyType:i,pasteType:s,copyRange:l,unitId:d,subUnitId:p})}})}_collect(e,t,a){const r=new u.ObjectMatrix;this._copyInfo={unitId:e,subUnitId:t,matrix:r};const i=this._dataValidationModel.ensureManager(e,t);u.Range.foreach(a,(s,l)=>{const c=i.getRuleIdByLocation(s,l),d=u.Rectangle.getRelativeRange({startRow:s,endRow:s,startColumn:l,endColumn:l},a);r.setValue(d.startRow,d.startColumn,c!=null?c:"")})}_generateMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};if(t.copyType===ie.COPY_TYPE.CUT)return this._copyInfo=null,{redos:[],undos:[]};if(!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange)return{redos:[],undos:[]};if([ie.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,ie.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,ie.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,Dr.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};const{unitId:a,subUnitId:r}=this._copyInfo;if(t.unitId!==a||r!==t.subUnitId){const i=this._dataValidationModel.ensureManager(a,r),s=this._dataValidationModel.ensureManager(t.unitId,t.subUnitId),l=s.getRuleObjectMatrix().clone(),c=ie.getRepeatRange(t.copyRange,e,!0),d=new Map;c.forEach(({startRange:v})=>{var M;(M=this._copyInfo)==null||M.matrix.forValue((C,O,T)=>{const F=u.Rectangle.getPositionRange({startRow:C,endRow:C,startColumn:O,endColumn:O},v),A=`${r}-${T}`,N=i.getRuleById(T);!s.getRuleById(A)&&N&&d.set(A,{...N,uid:A}),l.setValue(F.startRow,F.startColumn,A)})});const{redoMutations:p,undoMutations:g}=He(t.unitId,t.subUnitId,l.diffWithAddition(s.getDataValidations(),d.values()));return{redos:p,undos:g}}else{const i=this._dataValidationModel.ensureManager(a,r),s=i.getRuleObjectMatrix().clone();ie.getRepeatRange(t.copyRange,e,!0).forEach(({startRange:p})=>{var g;(g=this._copyInfo)==null||g.matrix.forValue((v,M,C)=>{const O=u.Rectangle.getPositionRange({startRow:v,endRow:v,startColumn:M,endColumn:M},p);s.setValue(O.startRow,O.startColumn,C)})});const{redoMutations:c,undoMutations:d}=He(a,r,s.diff(i.getDataValidations()));return{redos:c,undos:d}}}};exports.DataValidationCopyPasteController=os([u.OnLifecycle(u.LifecycleStages.Ready,exports.DataValidationCopyPasteController),Rr(0,ie.ISheetClipboardService),Rr(1,Y.Inject(k.DataValidationModel))],exports.DataValidationCopyPasteController);class Ea{constructor(n){j(this,"value");this.value=n}addRule(n){const e=n.uid;n.ranges.forEach(t=>{u.Range.foreach(t,(a,r)=>{this.value.setValue(a,r,e)})})}removeRange(n){n.forEach(e=>{u.Range.foreach(e,(t,a)=>{this.value.realDeleteValue(t,a)})})}removeRule(n){n.ranges.forEach(e=>{u.Range.foreach(e,(t,a)=>{this.value.setValue(t,a,"")})})}updateRange(n,e,t){const a=`${n}$`;e.forEach(r=>{u.Range.foreach(r,(i,s)=>{this.value.getValue(i,s)===n&&this.value.setValue(i,s,a)})}),t.forEach(r=>{u.Range.foreach(r,(i,s)=>{this.value.setValue(i,s,n)})}),e.forEach(r=>{u.Range.foreach(r,(i,s)=>{this.value.getValue(i,s)===a&&this.value.realDeleteValue(i,s)})})}diff(n){const e=[];let t=0;return n.forEach((a,r)=>{const i=u.queryObjectMatrix(this.value,l=>l===a.uid),s=a.ranges;(i.length!==s.length||i.some((l,c)=>!u.Rectangle.equals(l,s[c])))&&e.push({type:"update",ruleId:a.uid,oldRanges:s,newRanges:i}),i.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,i)=>{const s=u.queryObjectMatrix(this.value,c=>c===r.uid),l=r.ranges;(s.length!==l.length||s.some((c,d)=>!u.Rectangle.equals(c,l[d])))&&t.push({type:"update",ruleId:r.uid,oldRanges:l,newRanges:s}),s.length===0&&(t.push({type:"delete",rule:r,index:i-a}),a++)}),Array.from(e).forEach(r=>{const i=u.queryObjectMatrix(this.value,s=>s===r.uid);t.push({type:"add",rule:{...r,ranges:i}})}),t}clone(){return new Ea(new u.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 is extends k.DataValidationManager{constructor(e,t,a,r){super(e,t,a);j(this,"_ruleMatrix");j(this,"_dataValidatorRegistryService");j(this,"_dataValidationCacheService");j(this,"_dataValidationFormulaService");j(this,"_dataValidationCustomFormulaService");j(this,"_cache");j(this,"_dataValidationRefRangeController");this._injector=r,this._dataValidatorRegistryService=this._injector.get(k.DataValidatorRegistryService),this._dataValidationCacheService=this._injector.get(ze),this._dataValidationFormulaService=this._injector.get(exports.DataValidationFormulaService),this._dataValidationCustomFormulaService=this._injector.get(exports.DataValidationCustomFormulaService),this._dataValidationRefRangeController=this._injector.get(exports.DataValidationRefRangeController),this._cache=this._dataValidationCacheService.ensureCache(e,t);const i=new u.ObjectMatrix;a==null||a.forEach(s=>{const l=s.uid;s.ranges.forEach(c=>{u.Range.foreach(c,(d,p)=>{i.setValue(d,p,l)})})}),a==null||a.forEach(s=>{this._dataValidationRefRangeController.register(e,t,s)}),this._ruleMatrix=new Ea(i)}addRule(e,t){this._ruleMatrix.addRule(e),this._dataValidationCacheService.addRule(this.unitId,this.subUnitId,e),this._dataValidationFormulaService.addRule(this.unitId,this.subUnitId,e.uid,e.formula1,e.formula2),this._dataValidationCustomFormulaService.addRule(this.unitId,this.subUnitId,e),super.addRule(e,t)}updateRule(e,t){const a=this.getRuleById(e);if(!a)throw new Error(`Rule not found! id: ${e}`);return t.type===k.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===k.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:i,row:s,unitId:l,subUnitId:c}=a,d=t.uid,p=this._dataValidatorRegistryService.getValidatorItem(t.type);if(p){const g=this._cache.getValue(s,i);return!g||g.value!==e?(this._cache.setValue(s,i,{value:e,status:u.DataValidationStatus.VALIDATING,ruleId:d}),p.validator({value:e,unitId:l,subUnitId:c,row:s,column:i},t).then(v=>{const M=v?u.DataValidationStatus.VALID:u.DataValidationStatus.INVALID;this._cache.setValue(s,i,{value:e,status:M,ruleId:d}),r(M)}),u.DataValidationStatus.VALIDATING):g.status}else return u.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 ss=Object.defineProperty,ls=Object.getOwnPropertyDescriptor,us=(o,n,e,t)=>{for(var a=t>1?void 0:t?ls(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&ss(n,e,a),a},Tt=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationResourceController=class extends u.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 is(n,e,[],this._injector)}_initDataValidationDataSource(){this._dataValidationModel.setManagerCreator(this._createSheetDataValidationManager.bind(this))}_initSnapshot(){const n=r=>{const i=this._dataValidationModel.getUnitRules(r),s={};return i?(i.forEach(([l,c])=>{s[l]=c}),JSON.stringify(s)):""},e=r=>{if(!r)return{};try{return JSON.parse(r)}catch{return{}}},t=r=>{const i=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(i,Ye,{toJson:s=>n(s),parseJson:s=>e(s),onChange:(s,l)=>{Object.keys(l).forEach(c=>{l[c].forEach(p=>{this._dataValidationModel.addRule(s,c,p)})})}}))};this.disposeWithMe(u.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(t))),this.disposeWithMe(u.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const i=r.getUnitId();this._resourceManagerService.disposePluginResource(i,Ye)})));const a=this._univerInstanceService.getCurrentUniverSheetInstance();t(a)}};exports.DataValidationResourceController=us([u.OnLifecycle(u.LifecycleStages.Ready,exports.DataValidationResourceController),Tt(0,u.IResourceManagerService),Tt(1,u.IUniverInstanceService),Tt(2,Y.Inject(k.DataValidationModel)),Tt(3,Y.Inject(Y.Injector))],exports.DataValidationResourceController);var cs=Object.defineProperty,ds=Object.getOwnPropertyDescriptor,fs=(o,n,e,t)=>{for(var a=t>1?void 0:t?ds(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&cs(n,e,a),a},Ze=(o,n)=>(e,t)=>n(e,t,o);exports.DataValidationRejectInputController=class extends u.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:i,col:s,unitId:l,subUnitId:c}=e,d=this._dataValidationModel.ensureManager(l,c),p=d.getRuleIdByLocation(i,s),g=p?d.getRuleById(p):void 0;if(!g||g.errorStyle!==u.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:me(M),row:i,column:s,unitId:l,subUnitId:c},g))return t(Promise.resolve(a));const O=r.getCellRaw(i,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:G.createElement(Z.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))}})}};exports.DataValidationRejectInputController=fs([u.OnLifecycle(u.LifecycleStages.Ready,exports.DataValidationRejectInputController),Ze(0,ie.IEditorBridgeService),Ze(1,Y.Inject(k.DataValidationModel)),Ze(2,Y.Inject(k.DataValidatorRegistryService)),Ze(3,oe.IDialogService),Ze(4,Y.Inject(u.LocaleService))],exports.DataValidationRejectInputController);var ps=Object.defineProperty,hs=Object.getOwnPropertyDescriptor,ms=(o,n,e,t)=>{for(var a=t>1?void 0:t?hs(n,e):n,r=o.length-1,i;r>=0;r--)(i=o[r])&&(a=(t?i(n,e,a):i(a))||a);return t&&a&&ps(n,e,a),a},pa=(o,n)=>(e,t)=>n(e,t,o);exports.UniverSheetsDataValidationPlugin=class extends u.Plugin{constructor(n,e,t){super(Ye),this._injector=n,this._commandService=e,this._localeService=t}onStarting(n){[[Ue],[exports.SheetDataValidationService],[ze],[exports.DataValidationFormulaService],[exports.DataValidationCustomFormulaService],[exports.RegisterOtherFormulaService],[Ne],[exports.DataValidationResourceController],[exports.DataValidationController],[exports.DataValidationRenderController],[exports.DataValidationAlertController],[exports.DataValidationRefRangeController],[exports.DataValidationAutoFillController],[exports.DataValidationSheetController],[exports.DataValidationCopyPasteController],[exports.DataValidationRejectInputController]].forEach(e=>{n.add(e)}),[Ut,Da,Ra,et,xt,br,Cr,nt,pn].forEach(e=>{this._commandService.registerCommand(e)}),this._localeService.load({zhCN:Zr,enUS:Qr})}};exports.UniverSheetsDataValidationPlugin=ms([pa(0,Y.Inject(Y.Injector)),pa(1,u.ICommandService),pa(2,Y.Inject(u.LocaleService))],exports.UniverSheetsDataValidationPlugin);Object.defineProperty(exports,"ICommandService",{enumerable:!0,get:()=>u.ICommandService});Object.defineProperty(exports,"LocaleService",{enumerable:!0,get:()=>u.LocaleService});Object.defineProperty(exports,"Plugin",{enumerable:!0,get:()=>u.Plugin});exports.AddSheetDataValidationAndOpenCommand=Da;exports.AddSheetDataValidationCommand=Ut;exports.DATA_VALIDATION_PLUGIN_NAME=Ye;exports.DataValidationCacheService=ze;exports.DataValidationFormulaMarkDirty=et;exports.HideDataValidationDropdown=br;exports.ShowDataValidationDropdown=xt;exports.UpdateSheetDataValidationRangeCommand=Ra;exports.enUS=Qr;exports.zhCN=Zr;
9
+ */var da=P,ca=Symbol.for("react.element"),ua=Symbol.for("react.fragment"),ha=Object.prototype.hasOwnProperty,ma=da.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,pa={key:!0,ref:!0,__self:!0,__source:!0};function At(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)ha.call(n,t)&&!pa.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:ca,type:i,key:r,ref:o,props:a,_owner:ma.current}}Ze.Fragment=ua;Ze.jsx=At;Ze.jsxs=At;Lt.exports=Ze;var f=Lt.exports;function fa(){const i=q.useDependency(Me),n=Y.useObservable(i.activeDropdown$,i.activeDropdown),e=q.useDependency(Y.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 f.jsx(r,{location:t,hideFn:s},o)}const Nt="sheet.ui.dropdown";var ga=Object.defineProperty,va=Object.getOwnPropertyDescriptor,Sa=(i,n,e,t)=>{for(var a=t>1?void 0:t?va(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&&ga(n,e,a),a},Se=(i,n)=>(e,t)=>n(e,t,i);let Me=class extends l.Disposable{constructor(n,e,t,a,r,o,s){super();R(this,"_activeDropdown");R(this,"_activeDropdown$",new ne.Subject);R(this,"_currentPopup",null);R(this,"activeDropdown$",this._activeDropdown$.asObservable());R(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=this._renderManagerService.getRenderById(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),o=this._canvasPopupManagerService.attachPopupToCell(t,a,{componentKey:Nt,onClickOutside:()=>{this.hideDropdown()},offset:[0,3],excludeOutside:[r==null?void 0:r.engine.getCanvasElement()].filter(Boolean)});if(!o)throw new Error("[DataValidationDropdownManagerService]: cannot show dropdown!");const s=new l.DisposableCollection;s.add(o),s.add({dispose:()=>{var d,c;(c=(d=this._activeDropdown)==null?void 0:d.onHide)==null||c.call(d)}}),this._currentPopup=s}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 h=this._dataValidatorRegistryService.getValidatorItem(c.type);if(!h||!h.dropdown){this.hideDropdown();return}this.showDropdown({location:{workbook:o,worksheet:s,row:t,col:a,unitId:n,subUnitId:e},componentKey:h.dropdown,onHide:r})}};Me=Sa([Se(0,F.Inject(G.SheetCanvasPopManagerService)),Se(1,l.IUniverInstanceService),Se(2,F.Inject(G.SheetSkeletonManagerService)),Se(3,F.Inject(C.DataValidatorRegistryService)),Se(4,Y.IZenZoneService),Se(5,Q.IRenderManagerService),Se(6,F.Inject(C.DataValidationModel))],Me);class Ie extends l.Disposable{constructor(){super(...arguments);R(this,"_open$",new ne.BehaviorSubject(!1));R(this,"_activeRule");R(this,"_activeRule$",new ne.BehaviorSubject(void 0));R(this,"open$",this._open$.pipe(ne.distinctUntilChanged()));R(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 Ut="DataValidationPanel",$e={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(Ie),r=i.get(C.DataValidationModel),o=i.get(l.IUniverInstanceService),s=i.get(Y.ISidebarService),d=o.getCurrentUniverSheetInstance(),c=d.getActiveSheet(),u=d.getUnitId(),h=c.getSheetId(),p=e?r.getRuleById(u,h,e):void 0;return a.open(),a.setActiveRule(p&&{unitId:u,subUnitId:h,rule:p}),s.open({header:{title:t?"dataValidation.panel.addTitle":"dataValidation.panel.title"},children:{label:Ut},width:312}),!0}},jt={id:"data-validation.operation.close-validation-panel",type:l.CommandType.OPERATION,handler(i){return i.get(Ie).close(),!0}},_a={id:"data-validation.operation.toggle-validation-panel",type:l.CommandType.OPERATION,handler(i){const n=i.get(l.ICommandService),e=i.get(Ie);return e.open(),e.isOpen?n.executeCommand(jt.id):n.executeCommand($e.id),!0}},Je={type:l.CommandType.OPERATION,id:"sheet.operation.show-data-validation-dropdown",handler(i,n){if(!n)return!1;const e=i.get(Me),{unitId:t,subUnitId:a,row:r,column:o}=n,s=e.activeDropdown,d=s==null?void 0:s.location;return d&&d.unitId===t&&d.subUnitId===a&&d.row===r&&d.col===o||e.showDataValidationDropdown(t,a,r,o),!0}},Pt={type:l.CommandType.OPERATION,id:"sheet.operation.hide-data-validation-dropdown",handler(i,n){return n?(i.get(Me).hideDropdown(),!0):!1}};function ye(i,n,e){const t=[],a=[];return e.forEach(r=>{switch(r.type){case"delete":t.push({id:C.RemoveDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.rule.uid}}),a.unshift({id:C.AddDataValidationMutation.id,params:{unitId:i,subUnitId:n,rule:r.rule,index:r.index}});break;case"update":{t.push({id:C.UpdateDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.ruleId,payload:{type:C.UpdateRuleType.RANGE,payload:r.newRanges}}}),a.unshift({id:C.UpdateDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.ruleId,payload:{type:C.UpdateRuleType.RANGE,payload:r.oldRanges}}});break}case"add":{t.push({id:C.AddDataValidationMutation.id,params:{unitId:i,subUnitId:n,rule:r.rule}}),a.unshift({id:C.RemoveDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.rule.uid}});break}}}),{redoMutations:t,undoMutations:a}}const gt={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(C.DataValidationModel),s=i.get(l.ICommandService),d=i.get(l.IUndoRedoService),c=o.ensureManager(e,t),u=c.getRuleById(r);if(!u)return!1;const h=u.ranges,p=c.getRuleObjectMatrix().clone();p.updateRange(r,h,a);const m=p.diff(c.getDataValidations()),{redoMutations:g,undoMutations:_}=ye(e,t,m);return d.pushUndoRedo({undoMutations:_,redoMutations:g,unitID:e}),await l.sequenceExecuteAsync(g,s),!0}},et={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(C.DataValidationModel),o=i.get(l.ICommandService),s=i.get(l.IUndoRedoService),d=r.ensureManager(e,t),c=d.getRuleObjectMatrix().clone();c.addRule(a);const u=c.diff(d.getDataValidations()),h={unitId:e,subUnitId:t,rule:a},{redoMutations:p,undoMutations:m}=ye(e,t,u);return p.push({id:C.AddDataValidationMutation.id,params:h}),m.unshift({id:C.RemoveDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid}}),s.pushUndoRedo({unitID:e,redoMutations:p,undoMutations:m}),await l.sequenceExecuteAsync(p,o),!0}},vt={type:l.CommandType.COMMAND,id:"data-validation.command.addRuleAndOpen",async handler(i){const e=i.get(l.IUniverInstanceService).getCurrentUniverSheetInstance(),t=e.getActiveSheet(),a=C.createDefaultNewRule(i),r=i.get(l.ICommandService),o=e.getUnitId(),s=t.getSheetId(),d={rule:a,unitId:o,subUnitId:s};return await r.executeCommand(et.id,d)?(r.executeCommand($e.id,{ruleId:a.uid,isAdd:!0}),!0):!1}};var re=function(){return re=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},re.apply(this,arguments)},Ra=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},fe=P.forwardRef(function(i,n){var e=i.icon,t=i.id,a=i.className,r=i.extend,o=Ra(i,["icon","id","className","extend"]),s="univerjs-icon univerjs-icon-".concat(t," ").concat(a||"").trim(),d=P.useRef("_".concat(Da()));return $t(e,"".concat(t),{defIds:e.defIds,idSuffix:d.current},re({ref:n,className:s},o),r)});function $t(i,n,e,t,a){return P.createElement(i.tag,re(re({key:n},Va(i,e,a)),t),(Ma(i,e).children||[]).map(function(r,o){return $t(r,"".concat(n,"-").concat(i.tag,"-").concat(o),e,void 0,a)}))}function Va(i,n,e){var t=re({},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 Ma(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)?re(re({},i),{children:i.children.map(function(a){return typeof a.attrs.id=="string"&&t&&t.indexOf(a.attrs.id)>-1?re(re({},a),{attrs:re(re({},a.attrs),{id:a.attrs.id+n.idSuffix})}):a})}):i}function Da(){return Math.random().toString(36).substring(2,8)}fe.displayName="UniverIcon";var Ia={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"}}]},xt=P.forwardRef(function(i,n){return P.createElement(fe,Object.assign({},i,{id:"check-mark-single",ref:n,icon:Ia}))});xt.displayName="CheckMarkSingle";const Ca=xt;var Oa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{stroke:"currentColor",d:"M6.06964 2.57153H2.73631C2.36812 2.57153 2.06964 2.87001 2.06964 3.2382V6.57153C2.06964 6.93973 2.36812 7.2382 2.73631 7.2382H6.06964C6.43784 7.2382 6.73631 6.93973 6.73631 6.57153V3.2382C6.73631 2.87001 6.43784 2.57153 6.06964 2.57153zM6.06964 9.90479H2.73631C2.36812 9.90479 2.06964 10.2033 2.06964 10.5715V13.9048C2.06964 14.273 2.36812 14.5715 2.73631 14.5715H6.06964C6.43784 14.5715 6.73631 14.273 6.73631 13.9048V10.5715C6.73631 10.2033 6.43784 9.90479 6.06964 9.90479z",strokeLinejoin:"round",strokeWidth:1.33}},{tag:"path",attrs:{stroke:"currentColor",d:"M9.20471 5.06981L11.2023 6.73445 14.2047 3.73213M13.7047 10.238L9.70465 14.238M9.70477 10.238L13.7048 14.238",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.33}}]},Bt=P.forwardRef(function(i,n){return P.createElement(fe,Object.assign({},i,{id:"data-validation-single",ref:n,icon:Oa}))});Bt.displayName="DataValidationSingle";var wa={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"}}]},kt=P.forwardRef(function(i,n){return P.createElement(fe,Object.assign({},i,{id:"delete-single",ref:n,icon:wa}))});kt.displayName="DeleteSingle";const Wt=kt;var ya={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"}}]}]},Ht=P.forwardRef(function(i,n){return P.createElement(fe,Object.assign({},i,{id:"increase-single",ref:n,icon:ya}))});Ht.displayName="IncreaseSingle";const Fa=Ht;var Ea={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_556",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_556)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M0.629584 3.99986C1.13729 3.4922 1.9604 3.49224 2.46806 3.99995L7.57569 9.10806C7.81 9.3424 8.18992 9.3424 8.42424 9.10808L13.5323 3.99998C14.04 3.4923 14.8631 3.4923 15.3708 3.99998C15.8785 4.50766 15.8785 5.33078 15.3708 5.83846L9.41415 11.7951C8.63307 12.5762 7.36669 12.5762 6.58565 11.7951L0.629497 5.83834C0.121839 5.33063 0.121879 4.50752 0.629584 3.99986Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},qt=P.forwardRef(function(i,n){return P.createElement(fe,Object.assign({},i,{id:"more-down-single",ref:n,icon:Ea}))});qt.displayName="MoreDownSingle";const ba=qt;var Ta={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_506_5",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M16 16H32V32H16z",transform:"rotate(180 16 16)"}}]},{tag:"g",attrs:{mask:"url(#mask0_506_5)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15.3704 12.0001C14.8627 12.5078 14.0396 12.5078 13.5319 12.0001L8.42431 6.89194C8.19 6.6576 7.81008 6.6576 7.57576 6.89192L2.46766 12C1.95998 12.5077 1.13687 12.5077 0.629185 12C0.121504 11.4923 0.121504 10.6692 0.629185 10.1615L6.58585 4.20487C7.36693 3.4238 8.63331 3.42383 9.41435 4.20494L15.3705 10.1617C15.8782 10.6694 15.8781 11.4925 15.3704 12.0001Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},Yt=P.forwardRef(function(i,n){return P.createElement(fe,Object.assign({},i,{id:"more-up-single",ref:n,icon:Ta}))});Yt.displayName="MoreUpSingle";const La=Yt;var Aa={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"}}]}]},zt=P.forwardRef(function(i,n){return P.createElement(fe,Object.assign({},i,{id:"sequence-single",ref:n,icon:Aa}))});zt.displayName="SequenceSingle";const Na=zt,Ua="univer-data-validation-options-button",ja="univer-data-validation-options-button-icon",rt={dataValidationOptionsButton:Ua,dataValidationOptionsButtonIcon:ja};function Pa(i){var c;const n=q.useDependency(l.LocaleService),e=q.useDependency(Y.ComponentManager),{value:t,onChange:a,extraComponent:r}=i,[o,s]=P.useState(!1),d=r?e.get(r):null;return f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:rt.dataValidationOptionsButton,onClick:()=>s(!o),children:[n.t("dataValidation.panel.options"),o?f.jsx(La,{className:rt.dataValidationOptionsButtonIcon}):f.jsx(ba,{className:rt.dataValidationOptionsButtonIcon})]}),o&&f.jsxs(f.Fragment,{children:[d?f.jsx(d,{value:t,onChange:a}):null,f.jsx(N.FormLayout,{label:n.t("dataValidation.panel.invalid"),children:f.jsxs(N.RadioGroup,{value:`${(c=t.errorStyle)!=null?c:l.DataValidationErrorStyle.WARNING}`,onChange:u=>a({...t,errorStyle:+u}),children:[f.jsx(N.Radio,{value:`${l.DataValidationErrorStyle.WARNING}`,children:n.t("dataValidation.panel.showWarning")}),f.jsx(N.Radio,{value:`${l.DataValidationErrorStyle.STOP}`,children:n.t("dataValidation.panel.rejectInput")})]})}),f.jsx(N.FormLayout,{label:n.t("dataValidation.panel.messageInfo"),children:f.jsx(N.Checkbox,{checked:t.showInputMessage,onChange:()=>a({...t,showInputMessage:!t.showInputMessage}),children:n.t("dataValidation.panel.showInfo")})}),t.showInputMessage?f.jsx(N.FormLayout,{children:f.jsx(N.Input,{value:t.error,onChange:u=>a({...t,error:u})})}):null]})]})}const $a="univer-data-validation-detail-form-item",xa="univer-data-validation-detail-buttons",Ba="univer-data-validation-detail-button",Oe={dataValidationDetailFormItem:$a,dataValidationDetailButtons:xa,dataValidationDetailButton:Ba},ka=i=>l.debounce(async(n,e,t,a)=>{const r=await i.executeCommand(n,e,t);a==null||a(r)},275);function Wa(){const[i,n]=P.useState(0),e=q.useDependency(Ie),t=Y.useObservable(e.activeRule$,e.activeRule),{unitId:a,subUnitId:r,rule:o}=t||{},s=o.uid,d=q.useDependency(C.DataValidatorRegistryService),c=q.useDependency(Y.ComponentManager),u=q.useDependency(l.ICommandService),h=q.useDependency(C.DataValidationModel),p=q.useDependency(l.LocaleService),[m,g]=P.useState(o),_=d.getValidatorItem(m.type),[M,E]=P.useState(!1),b=d.getValidatorsByScope(C.DataValidatorRegistryScope.SHEET),[U,j]=P.useState(()=>m.ranges.map(D=>({unitId:"",sheetId:"",range:D}))),L=P.useMemo(()=>ka(u),[u]);if(P.useEffect(()=>{u.onCommandExecuted(D=>{(D.id===l.UndoCommand.id||D.id===l.RedoCommand.id)&&setTimeout(()=>{const O=h.getRuleById(a,r,s);n(x=>x+1),O&&(g(O),j(O.ranges.map(x=>({unitId:"",sheetId:"",range:x}))))},20)})},[u,h,s,r,a]),!_)return null;const A=_.operators,$=_.operatorNames,H=m.operator?C.TWO_FORMULA_OPERATOR_COUNT.includes(m.operator):!1,k=()=>{_.validatorFormula(m).success?e.setActiveRule(null):E(!0)},T=Y.useEvent(D=>{if(l.isUnitRangesEqual(D,U))return;j(D);const O=D.filter(W=>(!W.unitId||W.unitId===a)&&(!W.sheetId||W.sheetId===r)).map(W=>W.range);g({...m,ranges:O});const x={unitId:a,subUnitId:r,ruleId:s,ranges:O};L(gt.id,x)}),w=D=>{if(l.shallowEqual(D,C.getRuleSetting(m)))return;g({...m,...D});const O={unitId:a,subUnitId:r,ruleId:s,setting:D};L(C.UpdateDataValidationSettingCommand.id,O,void 0)},B=async()=>{await u.executeCommand(C.RemoveDataValidationCommand.id,{ruleId:s,unitId:a,subUnitId:r}),e.setActiveRule(null)},z={type:m.type,operator:m.operator,formula1:m.formula1,formula2:m.formula2,allowBlank:m.allowBlank},y=D=>{const O=d.getValidatorItem(D);if(!O)return;const x=O.operators,W={...m,type:D,operator:x[0],...D===l.DataValidationType.CHECKBOX?{formula1:void 0,formula2:void 0}:null};g(W),u.executeCommand(C.UpdateDataValidationSettingCommand.id,{unitId:a,subUnitId:r,ruleId:m.uid,setting:C.getRuleSetting(W)})},v=c.get(_.formulaInput),S=U.map(D=>X.serializeRange(D.range)).join(","),I=C.getRuleOptions(m),V=D=>{l.shallowEqual(D,C.getRuleOptions(m))||(g({...m,...D}),L(C.UpdateDataValidationOptionsCommand.id,{unitId:a,subUnitId:r,ruleId:s,options:D}))};return f.jsxs("div",{children:[f.jsx(N.FormLayout,{label:p.t("dataValidation.panel.range"),children:f.jsx(Y.RangeSelector,{className:Oe.dataValidationDetailFormItem,value:S,id:l.createInternalEditorID("data-validation-detail"),openForSheetUnitId:a,openForSheetSubUnitId:r,onChange:D=>{D.some(O=>!l.isValidRange(O.range)||O.range.endColumn<O.range.startColumn||O.range.endRow<O.range.startRow)||T(D)}},i)}),f.jsx(N.FormLayout,{label:p.t("dataValidation.panel.type"),children:f.jsx(N.Select,{options:b==null?void 0:b.map(D=>({label:p.t(D.title),value:D.id})),value:m.type,onChange:y,className:Oe.dataValidationDetailFormItem})}),A!=null&&A.length?f.jsx(N.FormLayout,{label:p.t("dataValidation.panel.operator"),children:f.jsx(N.Select,{options:A.map((D,O)=>({value:`${D}`,label:$[O]})),value:`${m.operator}`,onChange:D=>{w({...z,operator:D})},className:Oe.dataValidationDetailFormItem})}):null,v?f.jsx(v,{isTwoFormula:H,value:{formula1:m.formula1,formula2:m.formula2},onChange:D=>{w({...z,...D})},showError:M,validResult:_.validatorFormula(m),unitId:a,subUnitId:r},i):null,f.jsx(Pa,{value:I,onChange:V,extraComponent:_.optionsInput}),f.jsxs("div",{className:Oe.dataValidationDetailButtons,children:[f.jsx(N.Button,{className:Oe.dataValidationDetailButton,onClick:B,children:p.t("dataValidation.panel.removeRule")}),f.jsx(N.Button,{className:Oe.dataValidationDetailButton,type:"primary",onClick:k,children:p.t("dataValidation.panel.done")})]})]})}const Ha="univer-data-validation-item-container",qa="univer-data-validation-item-title",Ya="univer-data-validation-item-content",za="univer-data-validation-item-icon",ke={dataValidationItemContainer:Ha,dataValidationItemTitle:qa,dataValidationItemContent:Ya,dataValidationItemIcon:za},Ga=i=>{const{rule:n,onClick:e,unitId:t,subUnitId:a}=i,r=q.useDependency(C.DataValidatorRegistryService),o=q.useDependency(l.ICommandService),s=q.useDependency(G.IMarkSelectionService),d=r.getValidatorItem(n.type),c=P.useRef(),[u,h]=P.useState(!1),p=m=>{o.executeCommand(C.RemoveDataValidationCommand.id,{ruleId:n.uid,unitId:t,subUnitId:a}),m.stopPropagation()};return P.useEffect(()=>()=>{var m;c.current&&((m=c.current)==null||m.forEach(g=>{g&&s.removeShape(g)}))},[s]),f.jsxs("div",{className:ke.dataValidationItemContainer,onClick:e,onMouseEnter:()=>{h(!0),c.current=n.ranges.map(m=>s.addShape({range:m,style:{hasAutoFill:!1,fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:m.startColumn,endColumn:m.endColumn,startRow:m.startRow,endRow:m.endRow,actualRow:m.startRow,actualColumn:m.startColumn,isMerged:!1,isMergedMainCell:!1}}))},onMouseLeave:()=>{var m;h(!1),(m=c.current)==null||m.forEach(g=>{g&&s.removeShape(g)}),c.current=void 0},children:[f.jsx("div",{className:ke.dataValidationItemTitle,children:d==null?void 0:d.generateRuleName(n)}),f.jsx("div",{className:ke.dataValidationItemContent,children:n.ranges.map(m=>X.serializeRange(m)).join(",")}),u?f.jsx("div",{className:ke.dataValidationItemIcon,onClick:p,children:f.jsx(Wt,{})}):null]})},Xa="univer-data-validation-list-buttons",Qa="univer-data-validation-list-button",nt={dataValidationListButtons:Xa,dataValidationListButton:Qa},Ka=P.memo(()=>{var _,M;const i=q.useDependency(l.IUniverInstanceService),n=q.useDependency(C.DataValidationModel),e=q.useDependency(l.ICommandService),t=q.useDependency(F.Injector),a=q.useDependency(Ie),r=(_=Y.useObservable(i.currentSheet$,i.getCurrentUniverSheetInstance()))!=null?_:i.getCurrentUniverSheetInstance(),o=q.useDependency(l.LocaleService),[s,d]=P.useState([]),c=(M=Y.useObservable(r.activeSheet$,r.getActiveSheet()))!=null?M:r.getActiveSheet(),u=r.getUnitId(),h=c.getSheetId(),p=n.ensureManager(u,h);P.useEffect(()=>{d(p.getDataValidations());const E=p.dataValidations$.subscribe(b=>{d([...b])});return()=>{E.unsubscribe()}},[p]);const m=async()=>{const E=C.createDefaultNewRule(t),b={unitId:u,subUnitId:h,rule:E};await e.executeCommand(et.id,b),a.setActiveRule({unitId:u,subUnitId:h,rule:E})},g=()=>{e.executeCommand(C.RemoveAllDataValidationCommand.id,{unitId:u,subUnitId:h})};return f.jsxs("div",{children:[s.map(E=>f.jsx(Ga,{unitId:u,subUnitId:h,onClick:()=>a.setActiveRule({unitId:u,subUnitId:h,rule:E}),rule:E},E.uid)),f.jsxs("div",{className:nt.dataValidationListButtons,children:[s.length?f.jsx(N.Button,{className:nt.dataValidationListButton,onClick:g,children:o.t("dataValidation.panel.removeAll")}):null,f.jsx(N.Button,{className:nt.dataValidationListButton,type:"primary",onClick:m,children:o.t("dataValidation.panel.add")})]})]})}),Za=()=>{const i=q.useDependency(Ie),n=Y.useObservable(i.activeRule$,i.activeRule);return n?f.jsx(Wa,{},n.rule.uid):f.jsx(Ka,{})};function te(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 je(i,n,e,t){var d,c,u;const a=new Set,r=i.unitId||e,o=(d=n.getUniverSheetInstance(r))!=null?d:n.getCurrentUniverSheetInstance(),s=(u=(c=o.getSheetBySheetName(i.sheetName))!=null?c:o.getSheetBySheetId(t))!=null?u:o.getActiveSheet();return l.Range.foreach(i.range,(h,p)=>{const m=s.getCellRaw(h,p);if(!m)return;const g=te(m);if(g==null||g==="")return;he(`${g}`).forEach(M=>{M&&a.add(`${g}`)})}),Array.from(a)}function Gt(i){return i.filter(Boolean).join(",")}function he(i){return i.split(",").filter(Boolean)}function Ja(i){const n=te(i);return n==null?"":n.toString()}const tt="SHEET_DATA_VALIDATION",Ve="#ECECEC",er="univer-dv-list-dropdown",tr="univer-dv-list-dropdown-title",ar="univer-dv-list-dropdown-list",rr="univer-dv-list-dropdown-list-container",nr="univer-dv-list-dropdown-selected-icon",or="univer-dv-list-dropdown-item-container",ir="univer-dv-list-dropdown-item",sr="univer-dv-list-dropdown-split",lr="univer-dv-list-dropdown-edit",de={dvListDropdown:er,dvListDropdownTitle:tr,dvListDropdownList:ar,dvListDropdownListContainer:rr,dvListDropdownSelectedIcon:nr,dvListDropdownItemContainer:or,dvListDropdownItem:ir,dvListDropdownSplit:sr,dvListDropdownEdit:lr},dr=i=>{const{value:n,onChange:e,multiple:t,options:a,title:r,onEdit:o,style:s}=i;return f.jsxs("div",{className:de.dvListDropdown,style:s,children:[f.jsx("div",{className:de.dvListDropdownTitle,children:r}),f.jsx("div",{className:de.dvListDropdownList,children:f.jsx(N.Scrollbar,{children:f.jsx("div",{className:de.dvListDropdownListContainer,children:a.map((d,c)=>{const u=n.indexOf(d.value)>-1,h=()=>{let p;u?p=new Set(n.filter(g=>g!==d.value)):p=new Set(t?[...n,d.value]:[d.value]);const m=[];a.forEach(g=>{p.has(g.value)&&m.push(g.value)}),e(m)};return f.jsxs("div",{className:de.dvListDropdownItemContainer,onClick:h,children:[f.jsx("div",{className:de.dvListDropdownItem,style:{background:d.color||Ve},children:d.label}),f.jsx("div",{className:de.dvListDropdownSelectedIcon,children:u?f.jsx(Ca,{}):null})]},c)})})})}),f.jsx("div",{className:de.dvListDropdownSplit}),f.jsx("div",{className:de.dvListDropdownEdit,children:f.jsx("a",{onClick:o,children:"编辑"})})]})};function cr(i){var H,k;const{location:n,hideFn:e}=i,{worksheet:t,row:a,col:r,unitId:o,subUnitId:s}=n,d=q.useDependency(l.ICommandService),c=q.useDependency(l.LocaleService),[u,h]=P.useState(""),p=q.useDependency(G.IEditorBridgeService),m=N.RectPopup.useContext(),g=m.right-m.left;if(!t)return null;const _=t.getCell(a,r),M=(H=_==null?void 0:_.dataValidation)==null?void 0:H.rule,E=(k=_==null?void 0:_.dataValidation)==null?void 0:k.validator,b=(M==null?void 0:M.renderMode)===l.DataValidationRenderMode.CUSTOM||(M==null?void 0:M.renderMode)===void 0;if(!_||!M||!E)return;const U=M.type===l.DataValidationType.LIST_MULTIPLE,j=E.getListWithColor(M,o,s),L=u||Ja(_),A=he(L),$=()=>{d.executeCommand($e.id,{ruleId:M.uid}),e()};return f.jsx(dr,{style:{minWidth:g,maxWidth:Math.max(g,200)},title:U?c.t("dataValidation.listMultiple.dropdown"):c.t("dataValidation.list.dropdown"),value:A,multiple:U,onChange:T=>{const w=Gt(T),B={unitId:o,subUnitId:s,range:{startColumn:r,endColumn:r,startRow:a,endRow:a},value:{v:w,p:null,f:null,si:null}};p.isVisible()&&p.changeVisible({visible:!1,keycode:Y.KeyCode.ESC,eventType:Q.DeviceInputEventType.Keyboard}),d.executeCommand(oe.SetRangeValuesCommand.id,B),h(w),U||e()},options:j.map(T=>({label:T.label,value:T.label,color:b?T.color:"transparent"})),onEdit:$})}var Xt={exports:{}};(function(i,n){(function(e,t){i.exports=t()})(sa,function(){var e=1e3,t=6e4,a=36e5,r="millisecond",o="second",s="minute",d="hour",c="day",u="week",h="month",p="quarter",m="year",g="date",_="Invalid Date",M=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,E=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(y){var v=["th","st","nd","rd"],S=y%100;return"["+y+(v[(S-20)%10]||v[S]||v[0])+"]"}},U=function(y,v,S){var I=String(y);return!I||I.length>=v?y:""+Array(v+1-I.length).join(S)+y},j={s:U,z:function(y){var v=-y.utcOffset(),S=Math.abs(v),I=Math.floor(S/60),V=S%60;return(v<=0?"+":"-")+U(I,2,"0")+":"+U(V,2,"0")},m:function y(v,S){if(v.date()<S.date())return-y(S,v);var I=12*(S.year()-v.year())+(S.month()-v.month()),V=v.clone().add(I,h),D=S-V<0,O=v.clone().add(I+(D?-1:1),h);return+(-(I+(S-V)/(D?V-O:O-V))||0)},a:function(y){return y<0?Math.ceil(y)||0:Math.floor(y)},p:function(y){return{M:h,y:m,w:u,d:c,D:g,h:d,m:s,s:o,ms:r,Q:p}[y]||String(y||"").toLowerCase().replace(/s$/,"")},u:function(y){return y===void 0}},L="en",A={};A[L]=b;var $="$isDayjsObject",H=function(y){return y instanceof B||!(!y||!y[$])},k=function y(v,S,I){var V;if(!v)return L;if(typeof v=="string"){var D=v.toLowerCase();A[D]&&(V=D),S&&(A[D]=S,V=D);var O=v.split("-");if(!V&&O.length>1)return y(O[0])}else{var x=v.name;A[x]=v,V=x}return!I&&V&&(L=V),V||!I&&L},T=function(y,v){if(H(y))return y.clone();var S=typeof v=="object"?v:{};return S.date=y,S.args=arguments,new B(S)},w=j;w.l=k,w.i=H,w.w=function(y,v){return T(y,{locale:v.$L,utc:v.$u,x:v.$x,$offset:v.$offset})};var B=function(){function y(S){this.$L=k(S.locale,null,!0),this.parse(S),this.$x=this.$x||S.x||{},this[$]=!0}var v=y.prototype;return v.parse=function(S){this.$d=function(I){var V=I.date,D=I.utc;if(V===null)return new Date(NaN);if(w.u(V))return new Date;if(V instanceof Date)return new Date(V);if(typeof V=="string"&&!/Z$/i.test(V)){var O=V.match(M);if(O){var x=O[2]-1||0,W=(O[7]||"0").substring(0,3);return D?new Date(Date.UTC(O[1],x,O[3]||1,O[4]||0,O[5]||0,O[6]||0,W)):new Date(O[1],x,O[3]||1,O[4]||0,O[5]||0,O[6]||0,W)}}return new Date(V)}(S),this.init()},v.init=function(){var S=this.$d;this.$y=S.getFullYear(),this.$M=S.getMonth(),this.$D=S.getDate(),this.$W=S.getDay(),this.$H=S.getHours(),this.$m=S.getMinutes(),this.$s=S.getSeconds(),this.$ms=S.getMilliseconds()},v.$utils=function(){return w},v.isValid=function(){return this.$d.toString()!==_},v.isSame=function(S,I){var V=T(S);return this.startOf(I)<=V&&V<=this.endOf(I)},v.isAfter=function(S,I){return T(S)<this.startOf(I)},v.isBefore=function(S,I){return this.endOf(I)<T(S)},v.$g=function(S,I,V){return w.u(S)?this[I]:this.set(V,S)},v.unix=function(){return Math.floor(this.valueOf()/1e3)},v.valueOf=function(){return this.$d.getTime()},v.startOf=function(S,I){var V=this,D=!!w.u(I)||I,O=w.p(S),x=function(ve,J){var me=w.w(V.$u?Date.UTC(V.$y,J,ve):new Date(V.$y,J,ve),V);return D?me:me.endOf(c)},W=function(ve,J){return w.w(V.toDate()[ve].apply(V.toDate("s"),(D?[0,0,0,0]:[23,59,59,999]).slice(J)),V)},K=this.$W,Z=this.$M,ae=this.$D,Ce="set"+(this.$u?"UTC":"");switch(O){case m:return D?x(1,0):x(31,11);case h:return D?x(1,Z):x(0,Z+1);case u:var ge=this.$locale().weekStart||0,Ee=(K<ge?K+7:K)-ge;return x(D?ae-Ee:ae+(6-Ee),Z);case c:case g:return W(Ce+"Hours",0);case d:return W(Ce+"Minutes",1);case s:return W(Ce+"Seconds",2);case o:return W(Ce+"Milliseconds",3);default:return this.clone()}},v.endOf=function(S){return this.startOf(S,!1)},v.$set=function(S,I){var V,D=w.p(S),O="set"+(this.$u?"UTC":""),x=(V={},V[c]=O+"Date",V[g]=O+"Date",V[h]=O+"Month",V[m]=O+"FullYear",V[d]=O+"Hours",V[s]=O+"Minutes",V[o]=O+"Seconds",V[r]=O+"Milliseconds",V)[D],W=D===c?this.$D+(I-this.$W):I;if(D===h||D===m){var K=this.clone().set(g,1);K.$d[x](W),K.init(),this.$d=K.set(g,Math.min(this.$D,K.daysInMonth())).$d}else x&&this.$d[x](W);return this.init(),this},v.set=function(S,I){return this.clone().$set(S,I)},v.get=function(S){return this[w.p(S)]()},v.add=function(S,I){var V,D=this;S=Number(S);var O=w.p(I),x=function(Z){var ae=T(D);return w.w(ae.date(ae.date()+Math.round(Z*S)),D)};if(O===h)return this.set(h,this.$M+S);if(O===m)return this.set(m,this.$y+S);if(O===c)return x(1);if(O===u)return x(7);var W=(V={},V[s]=t,V[d]=a,V[o]=e,V)[O]||1,K=this.$d.getTime()+S*W;return w.w(K,this)},v.subtract=function(S,I){return this.add(-1*S,I)},v.format=function(S){var I=this,V=this.$locale();if(!this.isValid())return V.invalidDate||_;var D=S||"YYYY-MM-DDTHH:mm:ssZ",O=w.z(this),x=this.$H,W=this.$m,K=this.$M,Z=V.weekdays,ae=V.months,Ce=V.meridiem,ge=function(J,me,be,Be){return J&&(J[me]||J(I,D))||be[me].slice(0,Be)},Ee=function(J){return w.s(x%12||12,J,"0")},ve=Ce||function(J,me,be){var Be=J<12?"AM":"PM";return be?Be.toLowerCase():Be};return D.replace(E,function(J,me){return me||function(be){switch(be){case"YY":return String(I.$y).slice(-2);case"YYYY":return w.s(I.$y,4,"0");case"M":return K+1;case"MM":return w.s(K+1,2,"0");case"MMM":return ge(V.monthsShort,K,ae,3);case"MMMM":return ge(ae,K);case"D":return I.$D;case"DD":return w.s(I.$D,2,"0");case"d":return String(I.$W);case"dd":return ge(V.weekdaysMin,I.$W,Z,2);case"ddd":return ge(V.weekdaysShort,I.$W,Z,3);case"dddd":return Z[I.$W];case"H":return String(x);case"HH":return w.s(x,2,"0");case"h":return Ee(1);case"hh":return Ee(2);case"a":return ve(x,W,!0);case"A":return ve(x,W,!1);case"m":return String(W);case"mm":return w.s(W,2,"0");case"s":return String(I.$s);case"ss":return w.s(I.$s,2,"0");case"SSS":return w.s(I.$ms,3,"0");case"Z":return O}return null}(J)||O.replace(":","")})},v.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},v.diff=function(S,I,V){var D,O=this,x=w.p(I),W=T(S),K=(W.utcOffset()-this.utcOffset())*t,Z=this-W,ae=function(){return w.m(O,W)};switch(x){case m:D=ae()/12;break;case h:D=ae();break;case p:D=ae()/3;break;case u:D=(Z-K)/6048e5;break;case c:D=(Z-K)/864e5;break;case d:D=Z/a;break;case s:D=Z/t;break;case o:D=Z/e;break;default:D=Z}return V?D:w.a(D)},v.daysInMonth=function(){return this.endOf(h).$D},v.$locale=function(){return A[this.$L]},v.locale=function(S,I){if(!S)return this.$L;var V=this.clone(),D=k(S,I,!0);return D&&(V.$L=D),V},v.clone=function(){return w.w(this.$d,this)},v.toDate=function(){return new Date(this.valueOf())},v.toJSON=function(){return this.isValid()?this.toISOString():null},v.toISOString=function(){return this.$d.toISOString()},v.toString=function(){return this.$d.toUTCString()},y}(),z=B.prototype;return T.prototype=z,[["$ms",r],["$s",o],["$m",s],["$H",d],["$W",c],["$M",h],["$y",m],["$D",g]].forEach(function(y){z[y[1]]=function(v){return this.$g(v,y[0],y[1])}}),T.extend=function(y,v){return y.$i||(y(v,B,T),y.$i=!0),T},T.locale=k,T.isDayjs=H,T.unix=function(y){return T(1e3*y)},T.en=A[L],T.Ls=A,T.p={},T})})(Xt);var ur=Xt.exports;const De=la(ur),hr="univer-dv-date-dropdown",mr={dvDateDropdown:hr};function pr(i){var E,b,U;const{location:n,hideFn:e}=i,{worksheet:t,row:a,col:r,unitId:o,subUnitId:s}=n,d=q.useDependency(l.ICommandService),[c,u]=P.useState();if(!t)return null;const h=t.getCell(a,r),p=(E=h==null?void 0:h.dataValidation)==null?void 0:E.rule,m=(b=h==null?void 0:h.dataValidation)==null?void 0:b.validator;if(!h||!p||!m)return;const g=te(h),_=(U=m.transformDate(g))!=null?U:De(),M=_.isValid()?_:De();return f.jsx("div",{className:mr.dvDateDropdown,children:f.jsx(N.DatePanel,{pickerValue:c!=null?c:M,onSelect:j=>{const L=j.format("YYYY/MM/DD");d.executeCommand(oe.SetRangeValuesCommand.id,{unitId:o,subUnitId:s,range:{startColumn:r,endColumn:r,startRow:a,endRow:a},value:{v:L,p:null,f:null,si:null}}),e()},onPanelChange:j=>{u(j)}})})}const St="data-validation.list.dropdown",Qt="data-validation.date.dropdown";function fr(i){var d;const{unitId:n,subUnitId:e,value:t,onChange:a,showError:r,validResult:o}=i,s=r?o==null?void 0:o.formula1:"";return f.jsx(N.FormLayout,{error:s,children:f.jsx(Y.TextEditor,{value:(d=t==null?void 0:t.formula1)!=null?d:"",id:l.createInternalEditorID(`dataValidation-custom-formula-${n}-${e}`),onChange:c=>{a==null||a({...t,formula1:c!=null?c:""})},onlyInputFormula:!0})})}const gr="univer-data-validation-formula",vr="univer-data-validation-formula-and",Sr="univer-data-validation-formula-list-item",_r="univer-data-validation-formula-list-item-icon",Rr="univer-data-validation-formula-list-item-drag",Vr="univer-data-validation-formula-list-add",Mr="univer-data-validation-formula-color-select",Dr="univer-data-validation-formula-color-select-panel",Ir="univer-data-validation-formula-color-item",ee={dataValidationFormula:gr,dataValidationFormulaAnd:vr,dataValidationFormulaListItem:Sr,dataValidationFormulaListItemIcon:_r,dataValidationFormulaListItemDrag:Rr,dataValidationFormulaListAdd:Vr,dataValidationFormulaColorSelect:Mr,dataValidationFormulaColorSelectPanel:Dr,dataValidationFormulaColorItem:Ir},Cr=i=>{const{isTwoFormula:n=!1,value:e,onChange:t,showError:a,validResult:r}=i,o=q.useDependency(l.LocaleService),s=a?r==null?void 0:r.formula1:"",d=a?r==null?void 0:r.formula2:"";return n?f.jsxs(f.Fragment,{children:[f.jsx(N.FormLayout,{error:s,children:f.jsx(N.Input,{className:ee.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:c=>{t==null||t({...e,formula1:c})}})}),f.jsx("div",{className:ee.dataValidationFormulaAnd,children:o.t("dataValidation.panel.formulaAnd")}),f.jsx(N.FormLayout,{error:d,children:f.jsx(N.Input,{className:ee.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula2,onChange:c=>{t==null||t({...e,formula2:c})}})})]}):f.jsx(N.FormLayout,{error:s,children:f.jsx(N.Input,{className:ee.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:c=>{t==null||t({formula1:c})}})})};function Or(i){return Number.isNaN(i.startColumn)||Number.isNaN(i.endColumn)||Number.isNaN(i.startRow)||Number.isNaN(i.endRow)}const wr=["#FFFFFF","#FEE7E7","#FEF0E6","#EFFBD0","#E4F4FE","#E8ECFD","#F1EAFA","#FDE8F3","#E5E5E5","#FDCECE","#FDC49B","#DEF6A2","#9FDAFF","#D0D9FB","#E3D5F6","#FBD0E8","#656565","#FE4B4B","#FF8C51","#8BBB11","#0B9EFB","#3A60F7","#9E6DE3","#F248A6"],yr=i=>{const{value:n,onChange:e,disabled:t}=i,[a,r]=P.useState(!1);return f.jsx(N.Select,{disabled:t,open:a,onDropdownVisibleChange:r,dropdownStyle:{width:112},className:ee.dataValidationFormulaColorSelect,value:n,onChange:e,labelRender:o=>f.jsx("div",{className:ee.dataValidationFormulaColorItem,style:{background:o.value}}),dropdownRender:()=>f.jsx("div",{className:ee.dataValidationFormulaColorSelectPanel,children:wr.map(o=>f.jsx("div",{onClick:()=>{e(o),r(!1)},className:ee.dataValidationFormulaColorItem,style:{background:o}},o))})})},Mt=i=>{const{item:n,commonProps:e,style:t}=i,{onItemChange:a,onItemDelete:r}=e;return f.jsxs("div",{className:ee.dataValidationFormulaListItem,style:t,children:[n.isRef?null:f.jsx("div",{className:ia(ee.dataValidationFormulaListItemDrag,"draggableHandle"),children:f.jsx(Na,{})}),f.jsx(yr,{value:n.color,onChange:o=>{a(n.id,n.label,o)}}),f.jsx(N.Input,{disabled:n.isRef,value:n.label,onChange:o=>{a(n.id,o,n.color)}}),n.isRef?null:f.jsx("div",{className:ee.dataValidationFormulaListItemIcon,children:f.jsx(Wt,{onClick:()=>r(n.id)})})]})};function Fr(i){const{value:n,onChange:e=()=>{},unitId:t,subUnitId:a,validResult:r,showError:o}=i,{formula1:s="",formula2:d=""}=n||{},c=P.useRef(null),[u,h]=P.useState(()=>X.isReferenceString(s)?"1":"0"),[p,m]=P.useState(u==="1"?s:""),g=q.useDependency(l.LocaleService),_=q.useDependency(l.IUniverInstanceService),M=_.getCurrentUniverSheetInstance(),E=M.getActiveSheet(),[b,U]=P.useState(()=>d.split(",")),j=o?r==null?void 0:r.formula1:"",L=Y.useEvent(e),[A,$]=P.useState(()=>{const v=u!=="1"?he(s):[],S=d.split(",");return v.map((I,V)=>({label:I,color:S[V]||Ve,isRef:!1,id:l.Tools.generateRandomId(4)}))}),H=(v,S,I)=>{const V=A.find(D=>D.id===v);V&&(V.label=S,V.color=I,$([...A]))},k=v=>{const S=A.findIndex(I=>I.id===v);S!==-1&&(A.splice(S,1),$([...A]))},T=P.useMemo(()=>je(X.deserializeRangeWithSheet(p),_,M.getUnitId(),E.getSheetId()),[p,_,M,E]),w=d.split(","),B=P.useMemo(()=>T.map((v,S)=>({label:v,color:w[S]||Ve,id:`${S}`,isRef:!0})),[w,T]),z=(v,S,I)=>{const V=[...b];V[+v]=I,U(V),L({formula1:s,formula2:V.join(",")})},y=()=>{$([...A,{label:"",color:Ve,isRef:!1,id:l.Tools.generateRandomId(4)}])};return P.useEffect(()=>{const v=new Set,S=[];A.map(I=>({labelList:I.label.split(","),item:I})).forEach(({item:I,labelList:V})=>{V.forEach(D=>{v.has(D)||(v.add(D),S.push({label:D,color:I.color}))})}),L({formula1:Gt(S.map(I=>I.label)),formula2:S.map(I=>I.color===Ve?"":I.color).join(",")})},[A,L]),f.jsxs(f.Fragment,{children:[f.jsx(N.FormLayout,{label:g.t("dataValidation.list.options"),children:f.jsxs(N.RadioGroup,{value:u,onChange:v=>h(v),children:[f.jsx(N.Radio,{value:"0",children:g.t("dataValidation.list.customOptions")}),f.jsx(N.Radio,{value:"1",children:g.t("dataValidation.list.refOptions")})]})}),u==="1"?f.jsxs(f.Fragment,{children:[f.jsx(N.FormLayout,{error:j,children:f.jsx(Y.RangeSelector,{id:l.createInternalEditorID(`list-ref-range-${t}-${a}`),value:p,openForSheetUnitId:t,openForSheetSubUnitId:a,onChange:v=>{var I,V;const S=v[0];if(!S||Or(S.range))L==null||L({formula1:"",formula2:d}),m("");else{const D=(I=_.getUniverSheetInstance(S.unitId))!=null?I:_.getCurrentUniverSheetInstance(),O=(V=D==null?void 0:D.getSheetBySheetId(S.sheetId))!=null?V:D.getActiveSheet(),x=X.serializeRangeWithSheet(O.getName(),S.range);L==null||L({formula1:x,formula2:d}),m(x)}},isSingleChoice:!0})}),f.jsx(N.FormLayout,{children:f.jsx("div",{ref:c,children:B.map(v=>f.jsx(Mt,{item:v,commonProps:{onItemChange:z},style:{marginBottom:12}},v.id))})})]}):f.jsx(N.FormLayout,{error:j,children:f.jsxs("div",{ref:c,style:{margin:"-12px 0"},children:[f.jsx(N.DraggableList,{list:A,onListChange:$,rowHeight:32,margin:[0,12],itemRender:v=>f.jsx(Mt,{item:v,commonProps:{onItemChange:H,onItemDelete:k}},v.id),idKey:"id"}),f.jsxs("a",{className:ee.dataValidationFormulaListAdd,onClick:y,children:[f.jsx(Fa,{}),g.t("dataValidation.list.add")]})]})})]})}function Er(i){const{value:n,onChange:e,showError:t,validResult:a}=i,r=q.useDependency(l.LocaleService),o=t?a==null?void 0:a.formula1:"",s=t?a==null?void 0:a.formula2:"",[d,c]=P.useState(!((n==null?void 0:n.formula1)===void 0&&(n==null?void 0:n.formula2)===void 0));return f.jsxs(f.Fragment,{children:[f.jsx(N.FormLayout,{children:f.jsx(N.Checkbox,{checked:d,onChange:u=>{u?c(!0):(c(!1),e==null||e({...n,formula1:void 0,formula2:void 0}))},children:r.t("dataValidation.checkbox.tips")})}),d?f.jsx(N.FormLayout,{label:r.t("dataValidation.checkbox.checked"),error:o,children:f.jsx(N.Input,{className:ee.dataValidationFormula,placeholder:r.t("dataValidation.panel.formulaPlaceholder"),value:n==null?void 0:n.formula1,onChange:u=>{e==null||e({...n,formula1:u})}})}):null,d?f.jsx(N.FormLayout,{label:r.t("dataValidation.checkbox.unchecked"),error:s,children:f.jsx(N.Input,{className:ee.dataValidationFormula,placeholder:r.t("dataValidation.panel.formulaPlaceholder"),value:n==null?void 0:n.formula2,onChange:u=>{e==null||e({...n,formula2:u})}})}):null]})}const Kt="data-validation.custom-formula-input",xe="data-validation.formula-input",_t="data-validation.list-formula-input",Zt="data-validation.checkbox-formula-input",br=[[Kt,fr],[xe,Cr],[_t,Fr],[Zt,Er]],Tr="LIST_RENDER_MODE_OPTION_INPUT";function Xe(i){var a;const{value:n,onChange:e}=i,t=q.useDependency(l.LocaleService);return f.jsx(N.FormLayout,{label:t.t("dataValidation.renderMode.label"),children:f.jsxs(N.RadioGroup,{value:`${(a=n.renderMode)!=null?a:l.DataValidationRenderMode.CUSTOM}`,onChange:r=>e({...n,renderMode:+r}),children:[f.jsx(N.Radio,{value:`${l.DataValidationRenderMode.CUSTOM}`,children:t.t("dataValidation.renderMode.chip")}),f.jsx(N.Radio,{value:`${l.DataValidationRenderMode.ARROW}`,children:t.t("dataValidation.renderMode.arrow")}),f.jsx(N.Radio,{value:`${l.DataValidationRenderMode.TEXT}`,children:t.t("dataValidation.renderMode.text")})]})})}Xe.componentKey=Tr;const Jt="data-validation-single",Rt="sheet.menu.data-validation";function Lr(i){return{id:Rt,type:Y.MenuItemType.SUBITEMS,positions:[Y.MenuPosition.TOOLBAR_START],group:Y.MenuGroup.TOOLBAR_FORMULAS_INSERT,icon:Jt,tooltip:"dataValidation.title",hidden$:Y.getMenuHiddenObservable(i,l.UniverInstanceType.SHEET)}}function Ar(i){return{id:$e.id,title:"dataValidation.panel.title",type:Y.MenuItemType.BUTTON,positions:[Rt]}}function Nr(i){return{id:vt.id,title:"dataValidation.panel.add",type:Y.MenuItemType.BUTTON,positions:[Rt]}}var Ur=Object.defineProperty,jr=Object.getOwnPropertyDescriptor,Pr=(i,n,e,t)=>{for(var a=t>1?void 0:t?jr(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&&Ur(n,e,a),a},ie=(i,n)=>(e,t)=>n(e,t,i);const $r={tr:{size:6,color:"#fe4b4b"}};exports.DataValidationRenderController=class extends l.RxDisposable{constructor(n,e,t,a,r,o,s,d,c,u,h){super(),this._componentManager=n,this._menuService=e,this._dataValidationModel=t,this._sheetSkeletonManagerService=a,this._renderManagerService=r,this._univerInstanceService=o,this._dataValidatorRegistryService=s,this._editorBridgeService=d,this._dropdownManagerService=c,this._sheetInterceptorService=u,this._injector=h,this._init()}_init(){this._initComponents(),this._initMenu(),this._initSkeletonChange(),this._initDropdown(),this._initViewModelIntercept()}_initMenu(){[Lr,Ar,Nr].forEach(n=>{this.disposeWithMe(this._menuService.addMenuItem(n(this._injector)))})}_initComponents(){[[Ut,Za],[Nt,fa],[St,cr],[Qt,pr],[Xe.componentKey,Xe],...br].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 u=this._dataValidatorRegistryService.getValidatorItem(c.type);if(!(u!=null&&u.dropdown))return;const h=s.getActiveSheet(),p=this._dropdownManagerService.activeDropdown,m=p==null?void 0:p.location;if(m&&m.unitId===t&&m.subUnitId===a&&m.row===r&&m.col===o)return;this._dropdownManagerService.showDropdown({location:{unitId:t,subUnitId:a,row:r,col:o,workbook:s,worksheet:h},componentKey:u.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(oe.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(n,e,t)=>{var U,j,L,A;const{row:a,col:r,unitId:o,subUnitId:s}=e,d=this._dataValidationModel.ensureManager(o,s),c=(U=this._sheetSkeletonManagerService.getCurrent())==null?void 0:U.skeleton;if(!d||!c)return t(n);const u=e.workbook.getStyles(),h=(typeof(n==null?void 0:n.s)=="string"?u.get(n==null?void 0:n.s):n==null?void 0:n.s)||{},p=d.getRuleIdByLocation(a,r);if(!p)return t(n);const m=d.getRuleById(p);if(!m)return t(n);const g=e.worksheet.getCellRaw(e.row,e.col),_=this._dataValidationModel.validator(te(g),m,e),M=this._dataValidatorRegistryService.getValidatorItem(m.type),E=te(n);let b={};if((m.type===l.DataValidationType.LIST||m.type===l.DataValidationType.LIST_MULTIPLE)&&(b={interceptorStyle:{...n==null?void 0:n.interceptorStyle,tb:(j=h.tb!==l.WrapStrategy.OVERFLOW?h.tb:l.WrapStrategy.CLIP)!=null?j:l.WrapStrategy.WRAP}}),m.type===l.DataValidationType.CHECKBOX){const{formula2:$}=M.parseFormulaSync(m,e.unitId,e.subUnitId);E||(b={v:$,t:1,p:null,interceptorStyle:{...n==null?void 0:n.interceptorStyle,tb:l.WrapStrategy.CLIP}})}if(m.type===l.DataValidationType.LIST&&(m.renderMode===l.DataValidationRenderMode.ARROW||m.renderMode===l.DataValidationRenderMode.TEXT)){const $=M.getListWithColorMap(m),H=`${(L=te(n))!=null?L:""}`,k=$[H];k&&(b={...b,interceptorStyle:{...b.interceptorStyle,bg:{rgb:k}}})}return t({...n,...b,dataValidation:{ruleId:p,validStatus:_,rule:m,validator:M},markers:{...n==null?void 0:n.markers,..._===l.DataValidationStatus.INVALID?$r:null},customRender:[...(A=n==null?void 0:n.customRender)!=null?A:[],...M!=null&&M.canvasRender?[M.canvasRender]:[]],fontRenderExtension:{...n==null?void 0:n.fontRenderExtension,isSkip:M==null?void 0:M.skipDefaultFontRender(m,E,e)},interceptorStyle:{...n==null?void 0:n.interceptorStyle,...b.interceptorStyle},get interceptorAutoHeight(){var k,T,w,B;const $=c.mergeData.find(z=>{const{startColumn:y,startRow:v,endColumn:S,endRow:I}=z;return a>=v&&r>=y&&a<=I&&r<=S}),H={data:{...n,dataValidation:{ruleId:p,validStatus:_,rule:m,validator:M}},style:c.getsStyles().getStyleByCell(n),primaryWithCoord:c.getCellByIndex((k=$==null?void 0:$.startRow)!=null?k:a,(T=$==null?void 0:$.startColumn)!=null?T:r),unitId:o,subUnitId:s,row:a,col:r};return(B=(w=M==null?void 0:M.canvasRender)==null?void 0:w.calcCellAutoHeight)==null?void 0:B.call(w,H)}})}}))}};exports.DataValidationRenderController=Pr([l.OnLifecycle(l.LifecycleStages.Rendered,exports.DataValidationRenderController),ie(0,F.Inject(Y.ComponentManager)),ie(1,Y.IMenuService),ie(2,F.Inject(C.DataValidationModel)),ie(3,F.Inject(G.SheetSkeletonManagerService)),ie(4,Q.IRenderManagerService),ie(5,l.IUniverInstanceService),ie(6,F.Inject(C.DataValidatorRegistryService)),ie(7,G.IEditorBridgeService),ie(8,F.Inject(Me)),ie(9,F.Inject(oe.SheetInterceptorService)),ie(10,F.Inject(F.Injector))],exports.DataValidationRenderController);var xr=Object.defineProperty,Br=Object.getOwnPropertyDescriptor,kr=(i,n,e,t)=>{for(var a=t>1?void 0:t?Br(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&&xr(n,e,a),a},Wr=(i,n)=>(e,t)=>n(e,t,i);exports.SheetDataValidationService=class{constructor(n){R(this,"_currentManager");R(this,"_currentManager$",new ne.Subject);R(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)}};exports.SheetDataValidationService=kr([Wr(0,F.Inject(C.DataValidationModel))],exports.SheetDataValidationService);var Ne=(i=>(i[i.NOT_REGISTER=1]="NOT_REGISTER",i[i.SUCCESS=2]="SUCCESS",i[i.WAIT=3]="WAIT",i[i.ERROR=4]="ERROR",i))(Ne||{}),Hr=Object.defineProperty,qr=Object.getOwnPropertyDescriptor,Yr=(i,n,e,t)=>{for(var a=t>1?void 0:t?qr(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&&Hr(n,e,a),a},Dt=(i,n)=>(e,t)=>n(e,t,i);exports.RegisterOtherFormulaService=class extends l.Disposable{constructor(e,t){super();R(this,"_formulaCacheMap",new Map);R(this,"_formulaChange$",new ne.Subject);R(this,"formulaChange$",this._formulaChange$.asObservable());R(this,"_formulaResult$",new ne.Subject);R(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(C.DataValidationFormulaMarkDirty.id,{commandId:C.DataValidationFormulaMarkDirty.id,getDirtyData(e){return{dirtyUnitOtherFormulaMap:e.params}}}),this.formulaChange$.pipe(ne.bufferTime(16),ne.filter(e=>!!e.length),ne.map(e=>e.reduce((t,a)=>{const{unitId:r,subUnitId:o,formulaId:s,formulaText:d}=a;return t[r]||(t[r]={}),t[r][o]||(t[r][o]={}),t[r][o][s]={f:d},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(X.SetOtherFormulaMutation.id,o).then(()=>{this._commandService.executeCommand(C.DataValidationFormulaMarkDirty.id,{[t]:{[a]:r}})})}})}_initFormulaCalculationResultChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===X.SetFormulaCalculationResultMutation.id){const t=e.params,{unitOtherData:a}=t,r={};for(const o in a){const s=a[o],d={};r[o]=d;for(const c in s){const u=this._ensureCacheMap(o,c),h=s[c],p=[];d[c]=p;for(const m in h){const g=h[m];if(u.has(m)){const _=u.get(m);_.result=g,_.status=Ne.SUCCESS,_.callbacks.forEach(M=>{M(g)}),_.callbacks.clear(),p.push(_)}}}}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:Ne.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(X.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===Ne.SUCCESS||Ne.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)}};exports.RegisterOtherFormulaService=Yr([Dt(0,l.ICommandService),Dt(1,X.IActiveDirtyManagerService)],exports.RegisterOtherFormulaService);class Fe{constructor(){R(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,(d,c)=>{const u=o.getValue(d,c);u&&(u.temp=!0)})}),a.forEach(s=>{l.Range.foreach(s,(d,c)=>{const u=o.getValue(d,c);u&&u.ruleId===t?u.temp=!1:o.setValue(d,c,void 0)})}),r.forEach(s=>{l.Range.foreach(s,(d,c)=>{const u=o.getValue(d,c);u&&u.temp===!0&&o.realDeleteValue(d,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 zr=Object.defineProperty,Gr=Object.getOwnPropertyDescriptor,Xr=(i,n,e,t)=>{for(var a=t>1?void 0:t?Gr(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&&zr(n,e,a),a},Te=(i,n)=>(e,t)=>n(e,t,i);exports.DataValidationCustomFormulaService=class extends l.Disposable{constructor(e,t,a,r,o){super();R(this,"_formulaMap",new Map);R(this,"_ruleFormulaMap",new Map);R(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:d}=this._ensureMaps(t,r),c=this._dataValidationModel.ensureManager(t,r);o.forEach(u=>{const h=d.get(u.ruleId),p=s.get(u.formulaId),m=c.getRuleById(u.ruleId);m&&h&&!h.isTransformable&&this._dataValidationCacheService.markRangeDirty(t,r,m.ranges),p&&this._dataValidationCacheService.markCellDirty(t,r,p.row,p.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),d=r.get(t),c=o.get(t);return(!s||!d||!c)&&(s=new l.ObjectMatrix,a.set(t,s),d=new Map,r.set(t,d),c=new Map,o.set(t,c)),{formulaMap:s,ruleFormulaMap:d,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),d=this._dataValidationModel.getRuleById(e,t,a),c=new Set,u=s.get(a);!d||!u||(s.delete(a),d.ranges.forEach(h=>{l.Range.foreach(h,(p,m)=>{const g=r.getValue(p,m);if(g&&g.ruleId===a){const{formulaId:_}=g;r.realDeleteValue(p,m),c.add(_),o.delete(_)}})}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(c.values())))}_addFormulaByRange(e,t,a,r,o){const{formulaMap:s,ruleFormulaMap:d,formulaCellMap:c}=this._ensureMaps(e,t);if(!r)return;const u=X.isFormulaTransformable(this._lexerTreeBuilder,r),h=o[0].startRow,p=o[0].startColumn;let m;u?o.forEach(g=>{l.Range.foreach(g,(_,M)=>{const E=X.transformFormula(this._lexerTreeBuilder,r,h,p,_,M),b=this._registerFormula(e,t,a,E);s.setValue(_,M,{formulaId:b,ruleId:a}),c.set(b,{row:_,column:M})})}):(m=this._registerFormula(e,t,a,r),o.forEach(g=>{l.Range.foreach(g,(_,M)=>{s.setValue(_,M,{formulaId:m,ruleId:a})})})),d.set(a,{formula:r,originCol:p,originRow:h,isTransformable:u,formulaId:m})}addRule(e,t,a){const{ranges:r,formula1:o,uid:s,type:d}=a;d!==l.DataValidationType.CUSTOM||!o||!l.isFormulaString(o)||this._addFormulaByRange(e,t,s,o,r)}updateRuleRanges(e,t,a,r,o){const{formulaMap:s,ruleFormulaMap:d,formulaCellMap:c}=this._ensureMaps(e,t),u=d.get(a);if(!u)return;const{formula:h,originCol:p,originRow:m,isTransformable:g,formulaId:_}=u,M=new Set;r.forEach(E=>{l.Range.foreach(E,(b,U)=>{const j=s.getValue(b,U);j&&j.ruleId===a&&(j.temp=!0)})}),o.forEach(E=>{l.Range.foreach(E,(b,U)=>{var L;const j=(L=s.getValue(b,U))!=null?L:{};if(j.ruleId!==a){const A=d.get(j.ruleId);if(A!=null&&A.isTransformable&&M.add(j.formulaId),g){const $=X.transformFormula(this._lexerTreeBuilder,h,m,p,b,U),H=this._registerFormula(e,t,a,$);s.setValue(b,U,{ruleId:a,formulaId:H}),c.set(H,{row:b,column:U})}else s.setValue(b,U,{ruleId:a,formulaId:_})}else j.temp=!1})}),r.forEach(E=>{l.Range.foreach(E,(b,U)=>{const j=s.getValue(b,U);j&&j.ruleId===a&&j.temp===!0&&(s.realDeleteValue(b,U),g&&M.add(j.formulaId))})}),M.forEach(E=>{c.delete(E)}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(M.values()))}updateRuleFormula(e,t,a,r,o){const{ruleFormulaMap:s}=this._ensureMaps(e,t),d=s.get(a);(!d||d.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)}};exports.DataValidationCustomFormulaService=Xr([Te(0,F.Inject(exports.RegisterOtherFormulaService)),Te(1,F.Inject(X.LexerTreeBuilder)),Te(2,l.IUniverInstanceService),Te(3,F.Inject(C.DataValidationModel)),Te(4,F.Inject(Fe))],exports.DataValidationCustomFormulaService);function ue(i){var n,e;return(e=(n=i==null?void 0:i[0])==null?void 0:n[0])==null?void 0:e.v}class Qr extends C.BaseDataValidator{constructor(){super(...arguments);R(this,"id",l.DataValidationType.CUSTOM);R(this,"title","dataValidation.custom.title");R(this,"operators",[]);R(this,"scopes",["sheet"]);R(this,"formulaInput",Kt);R(this,"_customFormulaService",this.injector.get(exports.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:d}=e,c=await this._customFormulaService.getCellFormulaValue(s,d,o,r);return!!ue(c==null?void 0:c.result)}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.custom.error")}}var Kr=Object.defineProperty,Zr=Object.getOwnPropertyDescriptor,Jr=(i,n,e,t)=>{for(var a=t>1?void 0:t?Zr(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&&Kr(n,e,a),a},ot=(i,n)=>(e,t)=>n(e,t,i);exports.DataValidationFormulaService=class extends l.Disposable{constructor(e,t,a){super();R(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),d=this._dataValidationModel.ensureManager(t,r);o.forEach(c=>{if(s.get(c.ruleId)){const u=d.getRuleById(c.ruleId);u&&this._dataValidationCacheService.markRangeDirty(t,r,u.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),d=l.isFormulaString(o);if(!s&&!d)return;const c=this._ensureRuleFormulaMap(e,t),u=[void 0,void 0];if(s){const h=this._registerOtherFormulaService.registerFormula(e,t,a,r);u[0]={id:h,text:r}}if(d){const h=this._registerOtherFormulaService.registerFormula(e,t,a,o);u[1]={id:h,text:o}}c.set(a,u)}removeRule(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(!o)return;const[s,d]=o,c=[s==null?void 0:s.id,d==null?void 0:d.id].filter(Boolean);c.length&&this._registerOtherFormulaService.deleteFormula(e,t,c)}updateRuleFormulaText(e,t,a,r,o){const d=this._ensureRuleFormulaMap(e,t).get(a);if(!d){this.addRule(e,t,a,r,o);return}const[c,u]=d;if((c==null?void 0:c.text)!==r)if(c&&this._registerOtherFormulaService.deleteFormula(e,t,[c.id]),l.isFormulaString(r)){const h=this._registerOtherFormulaService.registerFormula(e,t,a,r);d[0]={text:r,id:h}}else d[0]=void 0;if((u==null?void 0:u.text)!==o)if(u&&this._registerOtherFormulaService.deleteFormula(e,t,[u.id]),l.isFormulaString(o)){const h=this._registerOtherFormulaService.registerFormula(e,t,a,o);d[1]={text:o,id:h}}else d[1]=void 0}getRuleFormulaResult(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(!o)return Promise.resolve(null);const s=async d=>d&&this._registerOtherFormulaService.getFormulaValue(e,t,d.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)}};exports.DataValidationFormulaService=Jr([ot(0,F.Inject(exports.RegisterOtherFormulaService)),ot(1,F.Inject(Fe)),ot(2,F.Inject(C.DataValidationModel))],exports.DataValidationFormulaService);var en=Object.defineProperty,tn=Object.getOwnPropertyDescriptor,an=(i,n,e,t)=>{for(var a=t>1?void 0:t?tn(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&&en(n,e,a),a},it=(i,n)=>(e,t)=>n(e,t,i);const We=6;let ut=class{constructor(i,n,e){this._commandService=i,this._formulaService=n,this._themeService=e}_calc(i,n){var c,u,h;const{vt:e,ht:t}=n||{},a=i.endX-i.startX-We*2,r=i.endY-i.startY,o=((c=n==null?void 0:n.fs)!=null?c:10)*1.6;let s=0,d=0;switch(e){case l.VerticalAlign.TOP:d=0;break;case l.VerticalAlign.BOTTOM:d=0+(r-o);break;default:d=0+(r-o)/2;break}switch(t){case l.HorizontalAlign.LEFT:s=We;break;case l.HorizontalAlign.RIGHT:s=We+(a-o);break;default:s=We+(a-o)/2;break}return{left:i.startX+s,top:i.startY+d,width:((u=n==null?void 0:n.fs)!=null?u:10)*1.6,height:((h=n==null?void 0:n.fs)!=null?h:10)*1.6}}calcCellAutoHeight(){}async _parseFormula(i,n,e){var o,s;const{formula1:t=Ue,formula2:a=ze}=i,r=await this._formulaService.getRuleFormulaResult(n,e,i.uid);return{formula1:l.isFormulaString(t)?ue((o=r==null?void 0:r[0])==null?void 0:o.result):t,formula2:l.isFormulaString(a)?ue((s=r==null?void 0:r[1])==null?void 0:s.result):a}}drawWith(i,n){var k,T,w,B,z;const{style:e,data:t,primaryWithCoord:a,unitId:r,subUnitId:o}=n,s=a.isMergedMainCell?a.mergeInfo:a,d=te(t),c=(k=t.dataValidation)==null?void 0:k.rule,u=(T=t.dataValidation)==null?void 0:T.validator;if(!c||!u)return;const h=this._themeService.getCurrentTheme();if(!u.skipDefaultFontRender(c,d,{unitId:r,subUnitId:o}))return;const{formula1:p=Ue}=c,m=this._calc(s,e),{a:g,d:_}=i.getTransform(),M=Q.fixLineWidthByScale(m.left,g),E=Q.fixLineWidthByScale(m.top,_),b=Q.Transform.create().composeMatrix({left:M,top:E,scaleX:1,scaleY:1,angle:0,skewX:0,skewY:0,flipX:!1,flipY:!1}),U=s.endX-s.startX,j=s.endY-s.startY;i.save(),i.beginPath(),i.rect(s.startX,s.startY,U,j),i.clip();const L=b.getMatrix();i.transform(L[0],L[1],L[2],L[3],L[4],L[5]);const A=((w=e==null?void 0:e.fs)!=null?w:10)*1.6,$=String(d)===String(p),H=h.hyacinth500;Q.Checkbox.drawWith(i,{checked:$,width:A,height:A,fill:(z=(B=e==null?void 0:e.cl)==null?void 0:B.rgb)!=null?z:H}),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:d,y:c}=i;return d<=s&&d>=o&&c<=r&&c>=a}async onPointerDown(i,n){var p,m;if(n.button===2)return;const{primaryWithCoord:e,unitId:t,subUnitId:a,data:r}=i,o=te(r),s=(p=r.dataValidation)==null?void 0:p.rule,d=(m=r.dataValidation)==null?void 0:m.validator;if(!s||!d||!d.skipDefaultFontRender(s,o,{unitId:t,subUnitId:a}))return;const{formula1:c,formula2:u}=await this._parseFormula(s,t,a),h={range:{startColumn:e.actualColumn,endColumn:e.actualColumn,startRow:e.actualRow,endRow:e.actualRow},value:{v:String(o)===String(c)?u:c,p:null}};this._commandService.executeCommand(oe.SetRangeValuesCommand.id,h)}};ut=an([it(0,l.ICommandService),it(1,F.Inject(exports.DataValidationFormulaService)),it(2,F.Inject(l.ThemeService))],ut);const Ue=1,ze=0;class rn extends C.BaseDataValidator{constructor(){super(...arguments);R(this,"id",l.DataValidationType.CHECKBOX);R(this,"title","dataValidation.checkbox.title");R(this,"operators",[]);R(this,"scopes",["sheet"]);R(this,"formulaInput",Zt);R(this,"canvasRender",this.injector.createInstance(ut));R(this,"_formulaService",this.injector.get(exports.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=Ue,formula2:a=ze}=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 d,c;const{formula1:r=Ue,formula2:o=ze}=e,s=await this._formulaService.getRuleFormulaResult(t,a,e.uid);return{formula1:l.isFormulaString(r)?ue((d=s==null?void 0:s[0])==null?void 0:d.result):r,formula2:l.isFormulaString(o)?ue((c=s==null?void 0:s[1])==null?void 0:c.result):o}}parseFormulaSync(e,t,a){var d,c;const{formula1:r=Ue,formula2:o=ze}=e,s=this._formulaService.getRuleFormulaResultSync(t,a,e.uid);return{formula1:l.isFormulaString(r)?ue((d=s==null?void 0:s[0])==null?void 0:d.result):r,formula2:l.isFormulaString(o)?ue((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:d,formula2:c}=await this.parseFormula(a,o,s);return!l.Tools.isDefine(d)||!l.Tools.isDefine(c)?!0:l.Tools.isDefine(r)&&(String(r)===String(d)||String(r)===String(c))}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.checkbox.error")}}const Pe=[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.NOT_BETWEEN],st=86400;function nn(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 on=i=>{let n=i|0;const e=st*(i-n);let t=Math.floor(e);e-t>.9999&&(t+=1,t===st&&(t=0,n+=1));const a=t<0?st+t:t,[r,o,s]=nn(i,!0),d=Math.floor(a/60/60)%60,c=Math.floor(a/60)%60,u=Math.floor(a)%60,h=new Date(0);return h.setUTCFullYear(r,o-1,s),h.setUTCHours(d,c,u),h.getTime()},sn={[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 ln={[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"},dn={[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"},It="{FORMULA1}",Ct="{FORMULA2}",Ot=i=>De(i).isValid(),He=i=>{if(!(i==null||typeof i=="boolean"))return typeof i=="number"||!Number.isNaN(+i)?De(on(+i)):De(i)};class cn extends C.BaseDataValidator{constructor(){super(...arguments);R(this,"id",l.DataValidationType.DATE);R(this,"title","dataValidation.date.title");R(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]);R(this,"scopes",["sheet"]);R(this,"formulaInput",xe);R(this,"dropdown",Qt);R(this,"_formulaService",this.injector.get(exports.DataValidationFormulaService));R(this,"transformDate",He)}async parseFormula(e,t,a){var d,c;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:He(l.isFormulaString(o)?ue((d=r==null?void 0:r[0])==null?void 0:d.result):o),formula2:He(l.isFormulaString(s)?ue((c=r==null?void 0:r[1])==null?void 0:c.result):s)}}async isValidType(e){const{value:t}=e;return typeof t=="string"?De(t).isValid():typeof t=="number"}_validatorSingleFormula(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)||!!e&&De(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(Pe.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:He(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,d=s===r?o:r;return(a.isAfter(s)||a.isSame(s))&&(a.isBefore(d)||a.isSame(d))}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,d=s===r?o:r;return a.isBefore(s)||a.isAfter(d)}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(Pe.includes(e.operator)){if(l.Tools.isBlank(e.formula1)||l.Tools.isBlank(e.formula2))return"";if(!Ot(e.formula1)||!Ot(e.formula2))return""}else if(l.Tools.isBlank(e.formula1))return""}get operatorNames(){return this.operators.map(e=>this.localeService.t(sn[e]))}generateRuleName(e){var a,r;if(!e.operator)return this.titleStr;const t=this.localeService.t(ln[e.operator]).replace(It,(a=e.formula1)!=null?a:"").replace(Ct,(r=e.formula2)!=null?r:"");return`${this.titleStr} ${t}`}generateRuleErrorMessage(e){var a,r;return e.operator?`${this.localeService.t(dn[e.operator]).replace(It,(a=e.formula1)!=null?a:"").replace(Ct,(r=e.formula2)!=null?r:"")}`:this.titleStr}}var un=Object.defineProperty,hn=Object.getOwnPropertyDescriptor,mn=(i,n,e,t)=>{for(var a=t>1?void 0:t?hn(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&&un(n,e,a),a},qe=(i,n)=>(e,t)=>n(e,t,i);const we=4,pn=6,se=14,_e=6,ce=2,fn="#565656",wt=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 gn(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 ht(i,n,e){const t=gn(i,e),a=new l.DocumentDataModel(t),r=new Q.DocumentViewModel(a);return{documentSkeleton:Q.DocumentSkeleton.create(r,n),docModel:a,docViewModel:r}}function yt(i,n,e){const{documentSkeleton:t,docModel:a,docViewModel:r}=ht(i,n,e);return{documents:new Q.Documents(`DOCUMENTS_${l.Tools.generateRandomId()}`,t,{pageMarginLeft:0,pageMarginTop:0}),documentSkeleton:t,docModel:a,docViewModel:r}}var ct;let mt=(ct=class{constructor(i,n,e,t){R(this,"_dropdownInfoMap",new Map);R(this,"zIndex");R(this,"onPointerEnter");R(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-se+4;let o=4;switch(a){case l.VerticalAlign.MIDDLE:o=(t-se)/2+4;break;case l.VerticalAlign.BOTTOM:o=t-se+4;break}i.save(),i.translateWithPrecision(n.startX+r,n.startY+o),i.fillStyle="#565656",i.fill(wt),i.restore()}drawWith(i,n,e,t){var H,k;const{primaryWithCoord:a,row:r,col:o,style:s,data:d,subUnitId:c}=n,u=a.isMergedMainCell?a.mergeInfo:a,h=u.endX-u.startX,p=u.endY-u.startY,m=this._ensureMap(c),g=this._generateKey(r,o),_=(H=d.dataValidation)==null?void 0:H.rule,M=(k=d.dataValidation)==null?void 0:k.validator;if(!_||!M||!M.skipDefaultFontRender(_))return;const E=M.getListWithColor(_),b=te(d),U=`${b!=null?b:""}`,j=E.find(T=>T.label===U);let{tb:L,vt:A,ht:$}=s||{};if(L=L!=null?L:l.WrapStrategy.WRAP,A=A!=null?A:l.VerticalAlign.TOP,$=$!=null?$:l.HorizontalAlign.LEFT,_.renderMode===l.DataValidationRenderMode.ARROW){this._drawDownIcon(i,u,h,p,A),i.save(),i.translateWithPrecision(u.startX,u.startY),i.beginPath(),i.rect(0,0,h,p),i.clip();const T=h-se,{documentSkeleton:w,documents:B,docModel:z}=yt(U,this._localeService,s);L===l.WrapStrategy.WRAP&&z.updateDocumentDataPageSize(T),w.calculate(),w.getActualSize();const y=Q.getDocsSkeletonPageSize(w),{height:v,width:S}=y;let I=0;switch(A){case l.VerticalAlign.BOTTOM:I=p-ce-v;break;case l.VerticalAlign.MIDDLE:I=(p-ce-v)/2;break;default:I=ce;break}let V=0;switch($){case l.HorizontalAlign.CENTER:V=(T-S)/2;break;case l.HorizontalAlign.RIGHT:V=T-S;break}i.translate(0,I),i.save(),i.translateWithPrecision(we,0),i.beginPath(),i.rect(0,0,T,v),i.clip(),B.render(i),i.translateWithPrecision(V,0),i.restore(),i.restore(),m.set(g,{left:u.endX+e.rowHeaderWidth-se,top:u.startY+e.columnHeaderHeight,width:se,height:p})}else{i.save(),i.translateWithPrecision(u.startX,u.startY),i.beginPath(),i.rect(0,0,h,p),i.clip();const T=h-_e*2-we-se,{documentSkeleton:w,documents:B,docModel:z}=yt(U,this._localeService,s);L===l.WrapStrategy.WRAP&&z.updateDocumentDataPageSize(T),w.calculate();const y=Q.getDocsSkeletonPageSize(w),{height:v,width:S}=y;let I=0;switch(A){case l.VerticalAlign.BOTTOM:I=p-ce-v;break;case l.VerticalAlign.MIDDLE:I=(p-ce-v)/2;break;default:I=ce;break}let V=0;switch($){case l.HorizontalAlign.CENTER:V=(T-S)/2;break;case l.HorizontalAlign.RIGHT:V=T-S;break}i.translate(_e,I);const D=h-_e*2,O=v;Q.Rect.drawWith(i,{width:D,height:O,fill:(j==null?void 0:j.color)||Ve,radius:8}),i.save(),i.translateWithPrecision(we,0),i.beginPath(),i.rect(0,0,T,v),i.clip(),i.translateWithPrecision(V,0),B.render(i),i.restore(),i.translate(T+we+4,(v-pn)/2),i.fillStyle=fn,i.fill(wt),i.restore(),m.set(g,{left:u.startX+_e+e.rowHeaderWidth,top:u.startY+I+e.columnHeaderHeight,width:D,height:O})}}calcCellAutoHeight(i){var u;const{primaryWithCoord:n,style:e,data:t}=i,a=n.isMergedMainCell?n.mergeInfo:n,r=a.endX-a.startX,o=te(t),s=`${o!=null?o:""}`,d=(u=t.dataValidation)==null?void 0:u.rule;if(!d||d.renderMode===l.DataValidationRenderMode.TEXT)return;let{tb:c}=e||{};if(c=c!=null?c:l.WrapStrategy.WRAP,d.renderMode===l.DataValidationRenderMode.ARROW){const h=r-se,{documentSkeleton:p,docModel:m}=ht(s,this._localeService,e);c===l.WrapStrategy.WRAP&&m.updateDocumentDataPageSize(h),p.calculate(),p.getActualSize();const g=Q.getDocsSkeletonPageSize(p),{height:_}=g;return _}else{const h=r-_e*2-we-se,{documentSkeleton:p,docModel:m}=ht(s,this._localeService,e);c===l.WrapStrategy.WRAP&&m.updateDocumentDataPageSize(h),p.calculate(),p.getActualSize();const g=Q.getDocsSkeletonPageSize(p),{height:_}=g;return _+ce*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:u,width:h,height:p}=s,{x:m,y:g}=i;return m>=u&&m<=u+h&&g>=c&&g<=c+p}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(Je.id,o)}},R(ct,"padding",{l:_e+we,r:se+_e,t:ce,b:ce}),ct);mt=mn([qe(0,F.Inject(l.LocaleService)),qe(1,l.ICommandService),qe(2,F.Inject(C.DataValidationModel)),qe(3,F.Inject(C.DataValidatorRegistryService))],mt);class vn extends C.BaseDataValidator{constructor(){super(...arguments);R(this,"id",l.DataValidationType.LIST);R(this,"title","dataValidation.list.title");R(this,"operators",[]);R(this,"scopes",["sheet"]);R(this,"formulaInput",_t);R(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));R(this,"canvasRender",this.injector.createInstance(mt));R(this,"dropdown",St);R(this,"optionsInput",Xe.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 he(a)}async parseFormula(e,t,a){const{formula1:r=""}=e;return{formula1:X.isReferenceString(r)?je(X.deserializeRangeWithSheet(r),this._univerInstanceService,t,a):he(r),formula2:void 0}}async isValidType(e,t,a){const{value:r}=e,{formula1:o}=t;return this._parseCellValue(r,a).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 h,p;const{formula1:r=""}=e,o=this.injector.get(l.IUniverInstanceService),s=(h=t?o.getUniverSheetInstance(t):void 0)!=null?h:o.getCurrentUniverSheetInstance(),d=(p=a?s.getSheetBySheetId(a):void 0)!=null?p:s.getActiveSheet(),c=s.getUnitId(),u=d.getSheetId();return X.isReferenceString(r)?je(X.deserializeRangeWithSheet(r),this._univerInstanceService,c,u):he(r)}getListWithColor(e,t,a){const r=this.getList(e,t,a),o=(e.formula2||"").split(",");return r.map((s,d)=>({label:s,color:o[d]}))}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 Qe(i){let n=i;return typeof i=="string"?((i.startsWith("¥")||i.startsWith("$"))&&(n=i.slice(1)),+n):+i}class Sn extends C.BaseDataValidator{constructor(){super(...arguments);R(this,"_formulaService",this.injector.get(exports.DataValidationFormulaService));R(this,"id",l.DataValidationType.DECIMAL);R(this,"title",this.localeService.t("dataValidation.decimal.title"));R(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]);R(this,"scopes",["sheet"]);R(this,"formulaInput",xe);R(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(Qe(r))}transform(e,t,a){const{value:r}=e;return{...e,value:Qe(r)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var c,u,h,p,m,g,_,M;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(p=(h=(u=(c=r==null?void 0:r[0])==null?void 0:c.result)==null?void 0:u[0])==null?void 0:h[0])==null?void 0:p.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(M=(_=(g=(m=r==null?void 0:r[1])==null?void 0:m.result)==null?void 0:g[0])==null?void 0:_[0])==null?void 0:M.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=Pe.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),d=Math.max(r,o);return e.value>=s&&e.value<=d}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),d=Math.max(r,o);return e.value<s&&e.value>d}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 _n="{FORMULA1}",Rn="{FORMULA2}";class Vn extends C.BaseDataValidator{constructor(){super(...arguments);R(this,"id",l.DataValidationType.TEXT_LENGTH);R(this,"title","dataValidation.textLength.title");R(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]);R(this,"scopes",["sheet"]);R(this,"formulaInput",xe);R(this,"_formulaService",this.injector.get(exports.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=Pe.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 d,c,u,h,p,m,g,_;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(h=(u=(c=(d=r==null?void 0:r[0])==null?void 0:d.result)==null?void 0:c[0])==null?void 0:u[0])==null?void 0:h.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(_=(g=(m=(p=r==null?void 0:r[1])==null?void 0:p.result)==null?void 0:m[0])==null?void 0:g[0])==null?void 0:_.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 d=Math.max(r,o),c=Math.min(r,o);return s>=c&&s<=d}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:o}=t,{value:s}=e;if(!this._isValidFormula(r)||!this._isValidFormula(o))return!1;const d=Math.max(r,o),c=Math.min(r,o);return s>=c&&s<=d}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}generateRuleErrorMessage(e){var a,r;return e.operator?`${this.localeService.t(C.TextLengthErrorTitleMap[e.operator]).replace(_n,(a=e.formula1)!=null?a:"").replace(Rn,(r=e.formula2)!=null?r:"")}`:this.titleStr}}class Mn extends C.BaseDataValidator{constructor(){super(...arguments);R(this,"_formulaService",this.injector.get(exports.DataValidationFormulaService));R(this,"id",l.DataValidationType.WHOLE);R(this,"title",this.localeService.t("dataValidation.whole.title"));R(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]);R(this,"scopes",["sheet"]);R(this,"formulaInput",xe);R(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=Qe(r);return!Number.isNaN(o)&&Number.isInteger(o)}transform(e,t,a){const{value:r}=e;return{...e,value:Qe(r)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var c,u,h,p,m,g,_,M;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(p=(h=(u=(c=r==null?void 0:r[0])==null?void 0:c.result)==null?void 0:u[0])==null?void 0:h[0])==null?void 0:p.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(M=(_=(g=(m=r==null?void 0:r[1])==null?void 0:m.result)==null?void 0:g[0])==null?void 0:_[0])==null?void 0:M.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=Pe.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),d=Math.max(r,o);return e.value>=s&&e.value<=d}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),d=Math.max(r,o);return e.value<s&&e.value>d}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 ea=4,Dn=0,lt=4,ta=4,pt=6,Ke=6,Re=14;function In(i,n){const e=Q.FontCache.getTextSize(i,n),t=e.width+ea*2,{ba:a,bd:r}=e,o=a+r;return{width:t,height:o+Dn*2,ba:a}}function Ft(i,n,e,t){const a=e-Re-pt,r=t-Ke*2,o=i.map(u=>({layout:In(u,n),text:u}));let s;const d=[];o.forEach(u=>{const{layout:h}=u,{width:p,height:m}=h;!s||s.width+p+lt>a?(s={width:p,height:m,items:[{...u,left:0}]},d.push(s)):(s.items.push({...u,left:s.width+lt}),s.width=s.width+p+lt)});let c=0;return d.forEach((u,h)=>{h===d.length-1?c+=u.height:c+=u.height+ta}),{lines:d,totalHeight:c,contentWidth:a,contentHeight:r,cellAutoHeight:c+Ke*2}}const Cn=8;class On extends Q.Shape{static drawWith(n,e){const{fontFamily:t,fontString:a,fontSize:r,info:o,fill:s,color:d}=e,{layout:c,text:u}=o;n.save(),Q.Rect.drawWith(n,{width:c.width,height:c.height,radius:Cn,fill:s||Ve}),n.translateWithPrecision(ea,c.ba),n.font=a,n.fillStyle=d,n.fillText(u,0,0),n.restore()}}var wn=Object.defineProperty,yn=Object.getOwnPropertyDescriptor,Fn=(i,n,e,t)=>{for(var a=t>1?void 0:t?yn(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&&wn(n,e,a),a},En=(i,n)=>(e,t)=>n(e,t,i);const bn=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 ft=class{constructor(i){R(this,"zIndex");R(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-Re+4;let o=4;switch(a){case l.VerticalAlign.MIDDLE:o=(t-Re)/2+4;break;case l.VerticalAlign.BOTTOM:o=t-Re+4;break}i.save(),i.translateWithPrecision(n.startX+r,n.startY+o),i.fillStyle="#565656",i.fill(bn),i.restore()}drawWith(i,n,e,t){var y,v;const{primaryWithCoord:a,row:r,col:o,style:s,data:d,subUnitId:c}=n,u=a.isMergedMainCell?a.mergeInfo:a,h=d.dataValidation,p=u.endX-u.startX,m=u.endY-u.startY,g=this._ensureMap(c),_=this._generateKey(r,o);if(!h)return;const{cl:M}=s||{},E=(y=typeof M=="object"?M==null?void 0:M.rgb:M)!=null?y:"#000",b=Q.getFontStyleString(s!=null?s:void 0),{rule:U,validator:j}=h,L=j,{vt:A,ht:$}=s||{},H=A!=null?A:l.VerticalAlign.MIDDLE,k=(v=te(d))!=null?v:"",T=L.parseCellValue(k,U),w=L.getListWithColorMap(U),B=Ft(T,b,p,m);this._drawDownIcon(i,u,p,m,H),i.save(),i.translateWithPrecision(u.startX,u.startY),i.beginPath(),i.rect(0,0,p-Re,m),i.clip(),i.translateWithPrecision(pt,Ke);let z=0;switch(H){case l.VerticalAlign.MIDDLE:z=(B.contentHeight-B.totalHeight)/2;break;case l.VerticalAlign.BOTTOM:z=B.contentHeight-B.totalHeight;break}i.translateWithPrecision(0,z),B.lines.forEach((S,I)=>{i.save();const{width:V,height:D,items:O}=S;let x=0;switch($){case l.HorizontalAlign.RIGHT:x=B.contentWidth-V;break;case l.HorizontalAlign.CENTER:x=(B.contentWidth-V)/2;break}i.translate(x,I*(D+ta)),O.forEach(W=>{i.save(),i.translateWithPrecision(W.left,0),On.drawWith(i,{...b,info:W,color:E,fill:w[W.text]}),i.restore()}),i.restore()}),i.restore(),g.set(_,{left:u.startX,top:u.startY,width:B.contentWidth+pt+Re,height:B.contentHeight+Ke*2})}calcCellAutoHeight(i){var _;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,d=(_=te(t))!=null?_:"",{rule:c,validator:u}=r,p=u.parseCellValue(d,c),m=Q.getFontStyleString(e!=null?e:void 0);return Ft(p,m,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-Re&&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(Je.id,o)}};ft=Fn([En(0,l.ICommandService)],ft);class Tn extends C.BaseDataValidator{constructor(){super(...arguments);R(this,"id",l.DataValidationType.LIST_MULTIPLE);R(this,"title","dataValidation.listMultiple.title");R(this,"operators",[]);R(this,"scopes",["sheet"]);R(this,"formulaInput",_t);R(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));R(this,"canvasRender",this.injector.createInstance(ft));R(this,"dropdown",St)}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?he(a):[]}async parseFormula(e,t,a){const{formula1:r=""}=e;return{formula1:X.isReferenceString(r)?je(X.deserializeRangeWithSheet(r),this._univerInstanceService,t,a):he(r),formula2:void 0}}async isValidType(e,t,a){const{value:r}=e,{formula1:o}=t;return this.parseCellValue(r,a).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 h,p;const{formula1:r=""}=e,o=this.injector.get(l.IUniverInstanceService),s=(h=t?o.getUniverSheetInstance(t):void 0)!=null?h:o.getCurrentUniverSheetInstance(),d=(p=a?s.getSheetBySheetId(a):void 0)!=null?p:s.getActiveSheet(),c=s.getUnitId(),u=d.getSheetId();return X.isReferenceString(r)?je(X.deserializeRangeWithSheet(r),this._univerInstanceService,c,u):he(r)}getListWithColor(e,t,a){const r=this.getList(e,t,a),o=e.formula2?e.formula2.split(","):[];return r.map((s,d)=>({label:s,color:o[d]}))}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 Ln=Object.defineProperty,An=Object.getOwnPropertyDescriptor,Nn=(i,n,e,t)=>{for(var a=t>1?void 0:t?An(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},pe=(i,n)=>(e,t)=>n(e,t,i);exports.DataValidationController=class extends l.RxDisposable{constructor(n,e,t,a,r,o,s,d){super(),this._univerInstanceService=n,this._sheetDataValidationService=e,this._dataValidatorRegistryService=t,this._injector=a,this._componentManger=r,this._selectionManagerService=o,this._sheetInterceptorService=s,this._dataValidationModel=d,this._init()}_init(){this._registerValidators(),this._initInstanceChange(),this._componentManger.register(Jt,Bt),this._initCommandInterceptor()}_registerValidators(){[Sn,Mn,Vn,cn,rn,vn,Tn,Qr].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===oe.ClearSelectionAllCommand.id){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),r=e.getActiveSheet().getSheetId(),o=this._selectionManagerService.getSelectionRanges(),s=this._dataValidationModel.ensureManager(t,r),d=s.getRuleObjectMatrix().clone();o&&d.removeRange(o);const c=d.diff(s.getDataValidations()),{redoMutations:u,undoMutations:h}=ye(t,r,c);return{undos:h,redos:u}}return{undos:[],redos:[]}}})}};exports.DataValidationController=Nn([l.OnLifecycle(l.LifecycleStages.Rendered,exports.DataValidationController),pe(0,l.IUniverInstanceService),pe(1,F.Inject(exports.SheetDataValidationService)),pe(2,F.Inject(C.DataValidatorRegistryService)),pe(3,F.Inject(F.Injector)),pe(4,F.Inject(Y.ComponentManager)),pe(5,F.Inject(oe.SelectionManagerService)),pe(6,F.Inject(oe.SheetInterceptorService)),pe(7,F.Inject(C.DataValidationModel))],exports.DataValidationController);var Un=Object.defineProperty,jn=Object.getOwnPropertyDescriptor,Pn=(i,n,e,t)=>{for(var a=t>1?void 0:t?jn(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&&Un(n,e,a),a},Le=(i,n)=>(e,t)=>n(e,t,i);exports.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,d=o.getCell(n.location.row,n.location.col);if(((t=d==null?void 0:d.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:G.CellAlertType.ERROR,title:this._localeService.t("dataValidation.error.title"),message:s==null?void 0:s.getRuleErrorMsg(d.dataValidation.ruleId),location:n.location,width:200,height:74});return}}this._cellAlertManagerService.clearAlert()}))}};exports.DataValidationAlertController=Pn([l.OnLifecycle(l.LifecycleStages.Rendered,exports.DataValidationAlertController),Le(0,F.Inject(G.HoverManagerService)),Le(1,F.Inject(G.CellAlertManagerService)),Le(2,l.IUniverInstanceService),Le(3,F.Inject(exports.SheetDataValidationService)),Le(4,F.Inject(l.LocaleService))],exports.DataValidationAlertController);var $n=Object.defineProperty,xn=Object.getOwnPropertyDescriptor,Bn=(i,n,e,t)=>{for(var a=t>1?void 0:t?xn(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&&$n(n,e,a),a},le=(i,n)=>(e,t)=>n(e,t,i);exports.DataValidationRefRangeController=class extends l.Disposable{constructor(e,t,a,r,o,s,d,c,u,h){super();R(this,"_disposableMap",new Map);R(this,"registerRule",(e,t,a)=>{this.register(e,t,a),this.registerFormula(e,t,a),this.registerRange(e,t,a)});this._dataValidationModel=e,this._univerInstanceService=t,this._injector=a,this._sheetSkeletonManagerService=r,this._refRangeService=o,this._dataValidationCustomFormulaService=s,this._dataValidationFormulaService=d,this._formulaRefRangeService=c,this._commandService=u,this._dataValidationCacheService=h,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,d=(u,h)=>{const p=this._dataValidationModel.getRuleById(e,t,r);if(!p)return{redos:[],undos:[]};const m=p[u];if(!m||m===h)return{redos:[],undos:[]};const g={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:C.UpdateRuleType.SETTING,payload:{type:p.type,formula1:p.formula1,formula2:p.formula2,[u]:h}}},_={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:C.UpdateRuleType.SETTING,payload:{type:p.type,formula1:p.formula1,formula2:p.formula2,[u]:h}}},M=[{id:C.UpdateDataValidationMutation.id,params:g}],E=[{id:C.UpdateDataValidationMutation.id,params:_}];return{redos:M,undos:E}};if(a.type===l.DataValidationType.CUSTOM){const u=this._dataValidationCustomFormulaService.getRuleFormulaInfo(e,t,r);if(u){const h=this._formulaRefRangeService.registerFormula(u.formula,p=>d("formula1",p));s.add(()=>h.dispose())}}if(a.type!==l.DataValidationType.CUSTOM){const u=this._dataValidationFormulaService.getRuleFormulaInfo(e,t,r);if(u){const[h,p]=u;if(h){const m=this._formulaRefRangeService.registerFormula(h.text,g=>d("formula1",g));s.add(()=>m.dispose())}if(p){const m=this._formulaRefRangeService.registerFormula(p.text,g=>d("formula1",g));s.add(()=>m.dispose())}}}}register(e,t,a){var c;const r=u=>{const h=[...a.ranges],m=h.map(_=>oe.handleCommonDefaultRangeChangeWithEffectRefCommands(_,u)).filter(_=>!!_).flat();if(l.isRangesEqual(m,h))return{redos:[],undos:[]};if(m.length){const _={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:C.UpdateRuleType.RANGE,payload:m}},M=[{id:C.UpdateDataValidationMutation.id,params:_}],E=[{id:C.UpdateDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:C.UpdateRuleType.RANGE,payload:h}}}];return{redos:M,undos:E}}else{const _={unitId:e,subUnitId:t,ruleId:a.uid},M=[{id:C.RemoveDataValidationMutation.id,params:_}],E=C.removeDataValidationUndoFactory(this._injector,_);return{redos:M,undos:E}}},o=[];a.ranges.forEach(u=>{const h=this._refRangeService.registerRefRange(u,r,e,t);o.push(()=>h.dispose())});const s=this._getIdWithUnitId(e,t,a.uid),d=(c=this._disposableMap.get(s))!=null?c:new Set;d.add(()=>o.forEach(u=>u())),this._disposableMap.set(s,d)}registerRange(e,t,a){var U,j,L,A,$;const{uid:r,formula1:o,type:s}=a;if(s!==l.DataValidationType.LIST&&s!==l.DataValidationType.LIST_MULTIPLE||!X.isReferenceString(o!=null?o:""))return;const d=X.deserializeRangeWithSheet(o!=null?o:""),c=this._getIdWithUnitId(e,t,r),u=d.unitId||e,h=(U=this._univerInstanceService.getUniverSheetInstance(u))!=null?U:this._univerInstanceService.getCurrentUniverSheetInstance(),p=(L=(j=h.getSheetBySheetName(d.sheetName))==null?void 0:j.getSheetId())!=null?L:t,m=(A=h.getSheetBySheetId(p))!=null?A:h.getActiveSheet(),g=new l.DisposableCollection,_=d.range,M=h.getUnitId(),E=m.getSheetId();g.add(this._refRangeService.registerRefRange(_,H=>{let k=oe.handleDefaultRangeChangeWithEffectRefCommands(_,H);if(k||(k={startColumn:-1,endColumn:-1,startRow:-1,endRow:-1}),l.Rectangle.equals(k,_))return{redos:[],undos:[]};const T=X.serializeRangeWithSpreadsheet(M,E,k),w=this._dataValidationModel.getRuleById(e,t,r);if(!w)return{redos:[],undos:[]};const B={unitId:e,subUnitId:t,ruleId:r,payload:{type:C.UpdateRuleType.SETTING,payload:{formula1:T,formula2:w.formula2,type:w.type}}},z={unitId:e,subUnitId:t,ruleId:r,payload:{type:C.UpdateRuleType.SETTING,payload:{formula1:w.formula1,formula2:w.formula2,type:w.type}}};return{redos:[{id:C.UpdateDataValidationMutation.id,params:B}],undos:[{id:C.UpdateDataValidationMutation.id,params:z}]}},M,M)),g.add(this.disposeWithMe(this._commandService.onCommandExecuted(H=>{if(H.id===oe.SetRangeValuesMutation.id&&H.params){const k=H.params,{cellValue:T,unitId:w,subUnitId:B}=k;if(w===M&&B===E)if(T){let z=!1;l.Range.foreach(_,(y,v)=>{const S=T[y];if(S&&v in S){if(z)return;z=!0,this._dataValidationCacheService.markRangeDirty(w,B,a.ranges)}})}else this._dataValidationCacheService.markRangeDirty(w,B,a.ranges)}})));const b=($=this._disposableMap.get(c))!=null?$:new Set;b.add(()=>g.dispose()),this._disposableMap.set(c,b)}_initRefRange(){this.disposeWithMe(ne.merge(this._sheetSkeletonManagerService.currentSkeleton$.pipe(at.map(e=>e==null?void 0:e.sheetId),at.distinctUntilChanged())).pipe(at.switchMap(()=>new ne.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;switch(t.type){case"add":{const s=t.rule;this.registerRule(t.unitId,t.subUnitId,s);break}case"remove":{const s=this._disposableMap.get(this._getIdWithUnitId(a,r,o.uid));s&&s.forEach(d=>d());break}case"update":{const s=t.rule,d=this._disposableMap.get(this._getIdWithUnitId(a,r,s.uid));d&&d.forEach(c=>c()),this.registerRule(t.unitId,t.subUnitId,s);break}}})))})),this.disposeWithMe(l.toDisposable(()=>{this._disposableMap.forEach(e=>{e.forEach(t=>t())}),this._disposableMap.clear()}))}};exports.DataValidationRefRangeController=Bn([l.OnLifecycle(l.LifecycleStages.Rendered,exports.DataValidationRefRangeController),le(0,F.Inject(C.DataValidationModel)),le(1,F.Inject(l.IUniverInstanceService)),le(2,F.Inject(F.Injector)),le(3,F.Inject(G.SheetSkeletonManagerService)),le(4,F.Inject(oe.RefRangeService)),le(5,F.Inject(exports.DataValidationCustomFormulaService)),le(6,F.Inject(exports.DataValidationFormulaService)),le(7,F.Inject(Tt.FormulaRefRangeService)),le(8,l.ICommandService),le(9,F.Inject(Fe))],exports.DataValidationRefRangeController);const aa={dataValidation:{title:"Data validation",validFail:{common:"Please input value or formula",number:"Please input number or formula",formula:"Please input formula",integer:"Please input integer or formula",date:"Please input date or formula",list:"Please input options"},panel:{title:"Data validation management",addTitle:"Create new data validation",removeAll:"Remove All",add:"Create Data validation",range:"Ranges",type:"Type",options:"Advance options",operator:"Operator",removeRule:"Remove",done:"Done",formulaPlaceholder:"Please input value or formula",formulaAnd:"and",invalid:"Invalid",showWarning:"Show warning",rejectInput:"Reject input",messageInfo:"Helper message",showInfo:"Show help text for a selected cell"},operators:{between:"between",greaterThan:"greater than",greaterThanOrEqual:"greater than or equal",lessThan:"less than",lessThanOrEqual:"less than or equal",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is greater than {FORMULA1}",greaterThanOrEqual:"is greater than or equal to {FORMULA1}",lessThan:"is less than {FORMULA1}",lessThanOrEqual:"is less than or equal to {FORMULA1}",equal:"is equal to {FORMULA1}",notEqual:"is not equal to {FORMULA1}",notBetween:"is not between {FORMULA1} and {FORMULA2}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be greater than {FORMULA1}",greaterThanOrEqual:"Value must be greater than or equal to {FORMULA1}",lessThan:"Value must be less than {FORMULA1}",lessThanOrEqual:"Value must be less than or equal to {FORMULA1}",equal:"Value must be equal to {FORMULA1}",notEqual:"Value must be not equal to {FORMULA1}",notBetween:"Value must be not between {FORMULA1} and {FORMULA2}"},date:{title:"Date",operators:{between:"between",greaterThan:"after",greaterThanOrEqual:"on or after",lessThan:"before",lessThanOrEqual:"on or before",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is after {FORMULA1}",greaterThanOrEqual:"is on or after {FORMULA1}",lessThan:"is before {FORMULA1}",lessThanOrEqual:"is on or before {FORMULA1}",equal:"is {FORMULA1}",notEqual:"is not {FORMULA1}",notBetween:"is not between {FORMULA1}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be after {FORMULA1}",greaterThanOrEqual:"Value must be on or after {FORMULA1}",lessThan:"Value must be before {FORMULA1}",lessThanOrEqual:"Value must be on or before {FORMULA1}",equal:"Value must be {FORMULA1}",notEqual:"Value must be not {FORMULA1}",notBetween:"Value must be not between {FORMULA1}"}},list:{title:"Dropdown",name:"Value contains one from range",error:"Input must fall within specified range",emptyError:"Please enter a value",add:"Add",dropdown:"Select",options:"Options",customOptions:"Custom",refOptions:"From a range"},listMultiple:{title:"Dropdown-Multiple",dropdown:"Multiple select"},textLength:{title:"Text length",errorMsg:{between:"Text length must be between {FORMULA1} and {FORMULA2}",greaterThan:"Text length must be after {FORMULA1}",greaterThanOrEqual:"Text length must be on or after {FORMULA1}",lessThan:"Text length must be before {FORMULA1}",lessThanOrEqual:"Text length must be on or before {FORMULA1}",equal:"Text length must be {FORMULA1}",notEqual:"Text length must be not {FORMULA1}",notBetween:"Text length must be not between {FORMULA1}"}},decimal:{title:"Number"},whole:{title:"Integer"},checkbox:{title:"Checkbox",error:"This cell's contents violate its validation rule",tips:"Use custom values within cells",checked:"Selected value",unchecked:"Unselected value"},custom:{title:"Custom formula",error:"This cell's contents violate its validation rule",validFail:"Please input a valid formula"},alert:{title:"Error",ok:"OK"},error:{title:"Invalid:"},renderMode:{arrow:"Arrow",chip:"Chip",text:"Plain text",label:"Display style"}}},ra={dataValidation:{title:"数据验证",validFail:{common:"请输入值或公式",number:"请输入合法的数字或公式",formula:"请输入合法的公式或公式",integer:"请输入合法的整数或公式",date:"请输入合法的日期或公式",list:"请输入至少一个合法选项"},panel:{title:"管理数据验证",addTitle:"新建数据验证",removeAll:"全部删除",add:"新建规则",range:"应用范围",type:"条件类型",options:"高级设置",operator:"数据",removeRule:"删除规则",done:"确认",formulaPlaceholder:"请输入值或公式",formulaAnd:"与",invalid:"数据无效时",showWarning:"显示警告",rejectInput:"拒绝输入",messageInfo:"文字提示",showInfo:"显示所选单元格的提示文字"},operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"大于 {FORMULA1}",greaterThanOrEqual:"大于或等于 {FORMULA1}",lessThan:"小于 {FORMULA1}",lessThanOrEqual:"小于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"值必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"值必须大于 {FORMULA1}",greaterThanOrEqual:"值必须大于或等于 {FORMULA1}",lessThan:"值必须小于 {FORMULA1}",lessThanOrEqual:"值必须小于或等于 {FORMULA1}",equal:"值必须等于 {FORMULA1}",notEqual:"值必须不等于 {FORMULA1}",notBetween:"值必须在 {FORMULA1} 和 {FORMULA2} 范围之外"},date:{title:"日期",operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"晚于 {FORMULA1}",greaterThanOrEqual:"晚于或等于 {FORMULA1}",lessThan:"早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"日期必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"日期必须晚于 {FORMULA1}",greaterThanOrEqual:"日期必须晚于或等于 {FORMULA1}",lessThan:"日期必须早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"日期必须等于 {FORMULA1}",notEqual:"日期必须不等于 {FORMULA1}",notBetween:"日期必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},list:{title:"下拉菜单",name:"值必须是列表中的值",error:"输入必须在指定的范围内",emptyError:"请输入一个值",add:"添加选项",dropdown:"单选",options:"选项来源",customOptions:"自定义",refOptions:"引用数据"},listMultiple:{title:"下拉菜单-多选",dropdown:"多选"},textLength:{title:"文本长度",errorMsg:{between:"文本长度必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"文本长度必须大于 {FORMULA1}",greaterThanOrEqual:"文本长度必须大于或等于 {FORMULA1}",lessThan:"文本长度必须小于 {FORMULA1}",lessThanOrEqual:"文本长度必须小于或等于 {FORMULA1}",equal:"文本长度必须等于 {FORMULA1}",notEqual:"文本长度必须不等于 {FORMULA1}",notBetween:"文本长度必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},decimal:{title:"数字"},whole:{title:"整数"},checkbox:{title:"复选框",error:"此单元格的内容违反了验证规则",tips:"在单元格内使用自定义值",checked:"选中值",unchecked:"未选中值"},custom:{title:"自定义公式",error:"此单元格的内容违反了验证规则",validFail:"请输入合法的公式"},alert:{title:"提示",ok:"确定"},error:{title:"无效:"},renderMode:{arrow:"箭头",chip:"条状标签",text:"纯文本",label:"显示样式"}}};var kn=Object.defineProperty,Wn=Object.getOwnPropertyDescriptor,Hn=(i,n,e,t)=>{for(var a=t>1?void 0:t?Wn(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&&kn(n,e,a),a},Et=(i,n)=>(e,t)=>n(e,t,i);exports.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:d}=a,c=this._dataValidationModel.ensureManager(s,d),u=c.getRuleObjectMatrix().clone(),h={row:r.startRow,col:r.startColumn};G.getAutoFillRepeatRange(r,o).forEach(M=>{const E=M.repeatStartCell,b=M.relativeRange,U={startRow:h.row,startColumn:h.col,endColumn:h.col,endRow:h.row},j={startRow:E.row,startColumn:E.col,endColumn:E.col,endRow:E.row};l.Range.foreach(b,(L,A)=>{const $=l.Rectangle.getPositionRange({startRow:L,startColumn:A,endColumn:A,endRow:L},U),H=c.getRuleIdByLocation($.startRow,$.startColumn);if(H){const k=l.Rectangle.getPositionRange({startRow:L,startColumn:A,endColumn:A,endRow:L},j);u.setValue(k.startRow,k.startColumn,H)}})});const m=u.diff(c.getDataValidations()),{redoMutations:g,undoMutations:_}=ye(s,d,m);return{undos:_,redos:g}},t={id:tt,onFillData:(a,r,o)=>o===G.APPLY_TYPE.COPY||o===G.APPLY_TYPE.ONLY_FORMAT||o===G.APPLY_TYPE.SERIES?e(a):n()};this.disposeWithMe(this._autoFillService.addHook(t))}};exports.DataValidationAutoFillController=Hn([l.OnLifecycle(l.LifecycleStages.Ready,exports.DataValidationAutoFillController),Et(0,G.IAutoFillService),Et(1,F.Inject(C.DataValidationModel))],exports.DataValidationAutoFillController);var qn=Object.defineProperty,Yn=Object.getOwnPropertyDescriptor,zn=(i,n,e,t)=>{for(var a=t>1?void 0:t?Yn(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&&qn(n,e,a),a},bt=(i,n)=>(e,t)=>n(e,t,i);exports.DataValidationCopyPasteController=class extends l.Disposable{constructor(e,t){super();R(this,"_copyInfo");this._sheetClipboardService=e,this._dataValidationModel=t,this._initCopyPaste()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:tt,onBeforeCopy:(e,t,a)=>this._collect(e,t,a),onPasteCells:(e,t,a,r)=>{const{copyType:o=G.COPY_TYPE.COPY,pasteType:s}=r,{range:d}=e||{},{range:c,unitId:u,subUnitId:h}=t;return this._generateMutations(c,{copyType:o,pasteType:s,copyRange:d,unitId:u,subUnitId:h})}})}_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,d)=>{const c=o.getRuleIdByLocation(s,d),u=l.Rectangle.getRelativeRange({startRow:s,endRow:s,startColumn:d,endColumn:d},a);r.setValue(u.startRow,u.startColumn,c!=null?c:"")})}_generateMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};if(t.copyType===G.COPY_TYPE.CUT)return this._copyInfo=null,{redos:[],undos:[]};if(!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange)return{redos:[],undos:[]};if([G.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,G.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,G.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,Tt.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),d=s.getRuleObjectMatrix().clone(),c=G.getRepeatRange(t.copyRange,e,!0),u=new Map;c.forEach(({startRange:m})=>{var g;(g=this._copyInfo)==null||g.matrix.forValue((_,M,E)=>{const b=l.Rectangle.getPositionRange({startRow:_,endRow:_,startColumn:M,endColumn:M},m),U=`${r}-${E}`,j=o.getRuleById(E);!s.getRuleById(U)&&j&&u.set(U,{...j,uid:U}),d.setValue(b.startRow,b.startColumn,U)})});const{redoMutations:h,undoMutations:p}=ye(t.unitId,t.subUnitId,d.diffWithAddition(s.getDataValidations(),u.values()));return{redos:h,undos:p}}else{const o=this._dataValidationModel.ensureManager(a,r),s=o.getRuleObjectMatrix().clone();G.getRepeatRange(t.copyRange,e,!0).forEach(({startRange:h})=>{var p;(p=this._copyInfo)==null||p.matrix.forValue((m,g,_)=>{const M=l.Rectangle.getPositionRange({startRow:m,endRow:m,startColumn:g,endColumn:g},h);s.setValue(M.startRow,M.startColumn,_)})});const{redoMutations:c,undoMutations:u}=ye(a,r,s.diff(o.getDataValidations()));return{redos:c,undos:u}}}};exports.DataValidationCopyPasteController=zn([l.OnLifecycle(l.LifecycleStages.Ready,exports.DataValidationCopyPasteController),bt(0,G.ISheetClipboardService),bt(1,F.Inject(C.DataValidationModel))],exports.DataValidationCopyPasteController);class Vt{constructor(n){R(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,d=>d===a.uid),s=a.ranges;(o.length!==s.length||o.some((d,c)=>!l.Rectangle.equals(d,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),d=r.ranges;(s.length!==d.length||s.some((c,u)=>!l.Rectangle.equals(c,d[u])))&&t.push({type:"update",ruleId:r.uid,oldRanges:d,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 Vt(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 Gn extends C.DataValidationManager{constructor(e,t,a,r){super(e,t,a);R(this,"_ruleMatrix");R(this,"_dataValidatorRegistryService");R(this,"_dataValidationCacheService");R(this,"_dataValidationFormulaService");R(this,"_dataValidationCustomFormulaService");R(this,"_cache");R(this,"_dataValidationRefRangeController");this._injector=r,this._dataValidatorRegistryService=this._injector.get(C.DataValidatorRegistryService),this._dataValidationCacheService=this._injector.get(Fe),this._dataValidationFormulaService=this._injector.get(exports.DataValidationFormulaService),this._dataValidationCustomFormulaService=this._injector.get(exports.DataValidationCustomFormulaService),this._dataValidationRefRangeController=this._injector.get(exports.DataValidationRefRangeController),this._cache=this._dataValidationCacheService.ensureCache(e,t);const o=new l.ObjectMatrix;a==null||a.forEach(s=>{const d=s.uid;s.ranges.forEach(c=>{l.Range.foreach(c,(u,h)=>{o.setValue(u,h,d)})})}),a==null||a.forEach(s=>{this._dataValidationRefRangeController.register(e,t,s)}),this._ruleMatrix=new Vt(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===C.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===C.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:d,subUnitId:c}=a,u=t.uid,h=this._dataValidatorRegistryService.getValidatorItem(t.type);if(h){const p=this._cache.getValue(s,o);return!p||p.value!==e?(this._cache.setValue(s,o,{value:e,status:l.DataValidationStatus.VALIDATING,ruleId:u}),h.validator({value:e,unitId:d,subUnitId:c,row:s,column:o},t).then(m=>{const g=m?l.DataValidationStatus.VALID:l.DataValidationStatus.INVALID;this._cache.setValue(s,o,{value:e,status:g,ruleId:u}),r(g)}),l.DataValidationStatus.VALIDATING):p.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 Xn=Object.defineProperty,Qn=Object.getOwnPropertyDescriptor,Kn=(i,n,e,t)=>{for(var a=t>1?void 0:t?Qn(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&&Xn(n,e,a),a},Ye=(i,n)=>(e,t)=>n(e,t,i);let Ge=class extends l.Disposable{constructor(i,n,e,t){super(),this._resourceManagerService=i,this._univerInstanceService=n,this._dataValidationModel=e,this._injector=t,this._initDataValidationDataSource()}_createSheetDataValidationManager(i,n){return new Gn(i,n,[],this._injector)}_initDataValidationDataSource(){this._dataValidationModel.setManagerCreator(this._createSheetDataValidationManager.bind(this))}};Ge=Kn([l.OnLifecycle(l.LifecycleStages.Starting,Ge),Ye(0,l.IResourceManagerService),Ye(1,l.IUniverInstanceService),Ye(2,F.Inject(C.DataValidationModel)),Ye(3,F.Inject(F.Injector))],Ge);var Zn=Object.defineProperty,Jn=Object.getOwnPropertyDescriptor,eo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Jn(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&&Zn(n,e,a),a},Ae=(i,n)=>(e,t)=>n(e,t,i);exports.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:d,subUnitId:c}=e,u=this._dataValidationModel.ensureManager(d,c),h=u.getRuleIdByLocation(o,s),p=h?u.getRuleById(h):void 0;if(!p||p.errorStyle!==l.DataValidationErrorStyle.STOP)return t(Promise.resolve(a));const m=await this._dataValidatorRegistryService.getValidatorItem(p.type);if(!m)return t(Promise.resolve(a));const g=e.worksheet.getCellRaw(e.row,e.col);if(await m.validator({value:te(g),row:o,column:s,unitId:d,subUnitId:c},p))return t(Promise.resolve(a));const M=r.getCellRaw(o,s);return this._dialogService.open({width:368,title:{title:this._localeService.t("dataValidation.alert.title")},id:"reject-input-dialog",children:{title:m.generateRuleErrorMessage(p)},footer:{title:P.createElement(N.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(M))}})}};exports.DataValidationRejectInputController=eo([l.OnLifecycle(l.LifecycleStages.Ready,exports.DataValidationRejectInputController),Ae(0,G.IEditorBridgeService),Ae(1,F.Inject(C.DataValidationModel)),Ae(2,F.Inject(C.DataValidatorRegistryService)),Ae(3,Y.IDialogService),Ae(4,F.Inject(l.LocaleService))],exports.DataValidationRejectInputController);var to=Object.defineProperty,ao=Object.getOwnPropertyDescriptor,ro=(i,n,e,t)=>{for(var a=t>1?void 0:t?ao(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&&to(n,e,a),a},dt=(i,n)=>(e,t)=>n(e,t,i);exports.UniverSheetsDataValidationPlugin=class extends l.Plugin{constructor(n,e,t,a){super(tt),this._injector=e,this._commandService=t,this._localeService=a}onStarting(n){[[Ie],[exports.SheetDataValidationService],[Fe],[exports.DataValidationFormulaService],[exports.DataValidationCustomFormulaService],[exports.RegisterOtherFormulaService],[Me],[Ge],[exports.DataValidationController],[exports.DataValidationRenderController],[exports.DataValidationAlertController],[exports.DataValidationRefRangeController],[exports.DataValidationAutoFillController],[exports.DataValidationCopyPasteController],[exports.DataValidationRejectInputController]].forEach(e=>{n.add(e)}),[et,vt,gt,Je,Pt,jt,$e,_a].forEach(e=>{this._commandService.registerCommand(e)}),this._localeService.load({zhCN:ra,enUS:aa})}};exports.UniverSheetsDataValidationPlugin=ro([dt(1,F.Inject(F.Injector)),dt(2,l.ICommandService),dt(3,F.Inject(l.LocaleService))],exports.UniverSheetsDataValidationPlugin);Object.defineProperty(exports,"ICommandService",{enumerable:!0,get:()=>l.ICommandService});Object.defineProperty(exports,"LocaleService",{enumerable:!0,get:()=>l.LocaleService});Object.defineProperty(exports,"Plugin",{enumerable:!0,get:()=>l.Plugin});exports.AddSheetDataValidationAndOpenCommand=vt;exports.AddSheetDataValidationCommand=et;exports.DATA_VALIDATION_PLUGIN_NAME=tt;exports.DataValidationCacheService=Fe;exports.HideDataValidationDropdown=Pt;exports.ShowDataValidationDropdown=Je;exports.UpdateSheetDataValidationRangeCommand=gt;exports.enUS=aa;exports.zhCN=ra;