@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 +2 -2
- package/lib/es/index.js +2461 -4383
- package/lib/index.css +1 -1
- package/lib/types/controllers/{dv-resource.controller.d.ts → dv-model.controller.d.ts} +1 -2
- package/lib/types/controllers/dv-ref-range.controller.d.ts +1 -0
- package/lib/types/index.d.ts +0 -3
- package/lib/types/locale/zh-CN.d.ts +10 -0
- package/lib/types/plugin.d.ts +1 -1
- package/lib/types/validators/text-length-validator.d.ts +1 -0
- package/lib/umd/index.js +2 -2
- package/package.json +45 -30
- package/lib/types/commands/mutations/formula.mutation.d.ts +0 -10
- package/lib/types/controllers/dv-sheet.controller.d.ts +0 -13
package/lib/umd/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(v,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/data-validation"),require("@univerjs/ui"),require("@univerjs/sheets-ui"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("react"),require("@wendellhu/redi/react-bindings"),require("@univerjs/design"),require("@univerjs/engine-formula"),require("rxjs"),require("clsx"),require("rxjs/operators"),require("@univerjs/sheets-formula")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/data-validation","@univerjs/ui","@univerjs/sheets-ui","@univerjs/engine-render","@univerjs/sheets","react","@wendellhu/redi/react-bindings","@univerjs/design","@univerjs/engine-formula","rxjs","clsx","rxjs/operators","@univerjs/sheets-formula"],l):(v=typeof globalThis<"u"?globalThis:v||self,l(v.UniverSheetsDataValidation={},v.UniverCore,v["@wendellhu/redi"],v.UniverDataValidation,v.UniverUi,v.UniverSheetsUi,v.UniverEngineRender,v.UniverSheets,v.React,v["@wendellhu/redi/react-bindings"],v.UniverDesign,v.UniverEngineFormula,v.rxjs,v.clsx,v.rxjs.operators,v.UniverSheetsFormula))})(this,function(v,l,y,O,z,X,K,ne,B,Y,j,Q,re,ia,nt,Vt){"use strict";var wr=Object.defineProperty;var yr=(v,l,y)=>l in v?wr(v,l,{enumerable:!0,configurable:!0,writable:!0,value:y}):v[l]=y;var M=(v,l,y)=>(yr(v,typeof l!="symbol"?l+"":l,y),y);var Dt;var oa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function sa(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var It={exports:{}},ke={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.min.js
|
|
4
4
|
*
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var en=X,tn=Symbol.for("react.element"),an=Symbol.for("react.fragment"),rn=Object.prototype.hasOwnProperty,nn=en.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,on={key:!0,ref:!0,__self:!0,__source:!0};function Na(i,n,e){var t,a={},r=null,o=null;e!==void 0&&(r=""+e),n.key!==void 0&&(r=""+n.key),n.ref!==void 0&&(o=n.ref);for(t in n)rn.call(n,t)&&!on.hasOwnProperty(t)&&(a[t]=n[t]);if(i&&i.defaultProps)for(t in n=i.defaultProps,n)a[t]===void 0&&(a[t]=n[t]);return{$$typeof:tn,type:i,key:r,ref:o,props:a,_owner:nn.current}}dt.Fragment=an,dt.jsx=Na,dt.jsxs=Na,La.exports=dt;var N=La.exports;function sn(){const i=ne.useDependency(Ae),n=oe.useObservable(i.activeDropdown$,i.activeDropdown),e=ne.useDependency(oe.ComponentManager);if(!n)return null;const{location:t,componentKey:a}=n,r=e.get(a),o=`${t.unitId}-${t.subUnitId}-${t.row}-${t.col}`;if(!r)return null;const s=()=>{i.hideDropdown()};return N.jsx(r,{location:t,hideFn:s},o)}const ja="sheet.ui.dropdown";var ln=Object.defineProperty,un=Object.getOwnPropertyDescriptor,cn=(i,n,e,t)=>{for(var a=t>1?void 0:t?un(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&ln(n,e,a),a},Fe=(i,n)=>(e,t)=>n(e,t,i);let Ae=class extends l.Disposable{constructor(n,e,t,a,r,o,s){super();W(this,"_activeDropdown");W(this,"_activeDropdown$",new ge.Subject);W(this,"_currentPopup",null);W(this,"activeDropdown$",this._activeDropdown$.asObservable());W(this,"_zenVisible",!1);this._canvasPopupManagerService=n,this._univerInstanceService=e,this._sheetSkeletonManagerService=t,this._dataValidatorRegistryService=a,this._zenZoneService=r,this._renderManagerService=o,this._dataValidationModel=s,this._init()}get activeDropdown(){return this._activeDropdown}_init(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(n=>{this._zenVisible=n,n&&this.hideDropdown()}))}showDropdown(n){const{location:e}=n,{row:t,col:a}=e;if(this._currentPopup&&this._currentPopup.dispose(),this._zenVisible)return;this._activeDropdown=n,this._activeDropdown$.next(this._activeDropdown);const r=new l.DisposableCollection,o=this._renderManagerService.getRenderById(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);r.add(this._canvasPopupManagerService.attachPopupToCell(t,a,{componentKey:ja,onClickOutside:()=>{this.hideDropdown()},offset:[0,3],excludeOutside:[o==null?void 0:o.engine.getCanvasElement()].filter(Boolean)})),r.add({dispose:()=>{var s,u;(u=(s=this._activeDropdown)==null?void 0:s.onHide)==null||u.call(s)}}),this._currentPopup=r}hideDropdown(){this._activeDropdown&&(this._currentPopup&&this._currentPopup.dispose(),this._currentPopup=null,this._activeDropdown=null,this._activeDropdown$.next(null))}showDataValidationDropdown(n,e,t,a,r){const o=this._univerInstanceService.getUniverSheetInstance(n);if(!o)return;const s=o.getSheetBySheetId(e);if(!s)return;const c=this._dataValidationModel.ensureManager(n,e).getRuleByLocation(t,a);if(!this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:n,sheetId:e})||!c)return;const p=this._dataValidatorRegistryService.getValidatorItem(c.type);if(!p||!p.dropdown){this.hideDropdown();return}this.showDropdown({location:{workbook:o,worksheet:s,row:t,col:a,unitId:n,subUnitId:e},componentKey:p.dropdown,onHide:r})}};Ae=cn([Fe(0,z.Inject(se.SheetCanvasPopManagerService)),Fe(1,l.IUniverInstanceService),Fe(2,z.Inject(se.SheetSkeletonManagerService)),Fe(3,z.Inject(H.DataValidatorRegistryService)),Fe(4,oe.IZenZoneService),Fe(5,fe.IRenderManagerService),Fe(6,z.Inject(H.DataValidationModel))],Ae);class Pe extends l.Disposable{constructor(){super(...arguments);W(this,"_open$",new ge.BehaviorSubject(!1));W(this,"_activeRule");W(this,"_activeRule$",new ge.BehaviorSubject(void 0));W(this,"open$",this._open$.pipe(ge.distinctUntilChanged()));W(this,"activeRule$",this._activeRule$.asObservable())}get activeRule(){return this._activeRule}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}setActiveRule(e){this._activeRule=e,this._activeRule$.next(e)}}const Ua="DataValidationPanel",Ge={id:"data-validation.operation.open-validation-panel",type:l.CommandType.OPERATION,handler(i,n){if(!n)return!1;const{ruleId:e,isAdd:t}=n,a=i.get(Pe),r=i.get(H.DataValidationModel),o=i.get(l.IUniverInstanceService),s=i.get(oe.ISidebarService),u=o.getCurrentUniverSheetInstance(),c=u.getActiveSheet(),d=u.getUnitId(),p=c.getSheetId(),g=e?r.getRuleById(d,p,e):void 0;return a.open(),a.setActiveRule(g&&{unitId:d,subUnitId:p,rule:g}),s.open({header:{title:t?"dataValidation.panel.addTitle":"dataValidation.panel.title"},children:{label:Ua},width:312}),!0}},xa={id:"data-validation.operation.close-validation-panel",type:l.CommandType.OPERATION,handler(i){return i.get(Pe).close(),!0}},dn={id:"data-validation.operation.toggle-validation-panel",type:l.CommandType.OPERATION,handler(i){const n=i.get(l.ICommandService),e=i.get(Pe);return e.open(),e.isOpen?n.executeCommand(xa.id):n.executeCommand(Ge.id),!0}},ft={type:l.CommandType.OPERATION,id:"sheet.operation.show-data-validation-dropdown",handler(i,n){if(!n)return!1;const e=i.get(Ae),{unitId:t,subUnitId:a,row:r,column:o}=n,s=e.activeDropdown,u=s==null?void 0:s.location;return u&&u.unitId===t&&u.subUnitId===a&&u.row===r&&u.col===o||e.showDataValidationDropdown(t,a,r,o),!0}},Wa={type:l.CommandType.OPERATION,id:"sheet.operation.hide-data-validation-dropdown",handler(i,n){return n?(i.get(Ae).hideDropdown(),!0):!1}};function $e(i,n,e){const t=[],a=[];return e.forEach(r=>{switch(r.type){case"delete":t.push({id:H.RemoveDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.rule.uid}}),a.unshift({id:H.AddDataValidationMutation.id,params:{unitId:i,subUnitId:n,rule:r.rule,index:r.index}});break;case"update":{t.push({id:H.UpdateDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.ruleId,payload:{type:H.UpdateRuleType.RANGE,payload:r.newRanges}}}),a.unshift({id:H.UpdateDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.ruleId,payload:{type:H.UpdateRuleType.RANGE,payload:r.oldRanges}}});break}case"add":{t.push({id:H.AddDataValidationMutation.id,params:{unitId:i,subUnitId:n,rule:r.rule}}),a.unshift({id:H.RemoveDataValidationMutation.id,params:{unitId:i,subUnitId:n,ruleId:r.rule.uid}});break}}}),{redoMutations:t,undoMutations:a}}const Kt={type:l.CommandType.COMMAND,id:"sheets.command.updateDataValidationRuleRange",async handler(i,n){if(!n)return!1;const{unitId:e,subUnitId:t,ranges:a,ruleId:r}=n,o=i.get(H.DataValidationModel),s=i.get(l.ICommandService),u=i.get(l.IUndoRedoService),c=o.ensureManager(e,t),d=c.getRuleById(r);if(!d)return!1;const p=d.ranges,g=c.getRuleObjectMatrix().clone();g.updateRange(r,p,a);const v=g.diff(c.getDataValidations()),{redoMutations:M,undoMutations:V}=$e(e,t,v);return u.pushUndoRedo({undoMutations:V,redoMutations:M,unitID:e}),await l.sequenceExecuteAsync(M,s),!0}},pt={type:l.CommandType.COMMAND,id:"sheets.command.addDataValidation",async handler(i,n){if(!n)return!1;const{unitId:e,subUnitId:t,rule:a}=n,r=i.get(H.DataValidationModel),o=i.get(l.ICommandService),s=i.get(l.IUndoRedoService),u=r.ensureManager(e,t),c=u.getRuleObjectMatrix().clone();c.addRule(a);const d=c.diff(u.getDataValidations()),p={unitId:e,subUnitId:t,rule:a},{redoMutations:g,undoMutations:v}=$e(e,t,d);return g.push({id:H.AddDataValidationMutation.id,params:p}),v.unshift({id:H.RemoveDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid}}),s.pushUndoRedo({unitID:e,redoMutations:g,undoMutations:v}),await l.sequenceExecuteAsync(g,o),!0}},Gt={type:l.CommandType.COMMAND,id:"data-validation.command.addRuleAndOpen",async handler(i){const e=i.get(l.IUniverInstanceService).getCurrentUniverSheetInstance(),t=e.getActiveSheet(),a=H.createDefaultNewRule(i),r=i.get(l.ICommandService),o=e.getUnitId(),s=t.getSheetId(),u={rule:a,unitId:o,subUnitId:s};return await r.executeCommand(pt.id,u)?(r.executeCommand(Ge.id,{ruleId:a.uid,isAdd:!0}),!0):!1}};var _e=function(){return _e=Object.assign||function(i){for(var n,e=1,t=arguments.length;e<t;e++){n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])}return i},_e.apply(this,arguments)},fn=function(i,n){var e={};for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&n.indexOf(t)<0&&(e[t]=i[t]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,t=Object.getOwnPropertySymbols(i);a<t.length;a++)n.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(i,t[a])&&(e[t[a]]=i[t[a]]);return e},Ce=X.forwardRef(function(i,n){var e=i.icon,t=i.id,a=i.className,r=i.extend,o=fn(i,["icon","id","className","extend"]),s="univerjs-icon univerjs-icon-".concat(t," ").concat(a||"").trim(),u=X.useRef("_".concat(mn()));return $a(e,"".concat(t),{defIds:e.defIds,idSuffix:u.current},_e({ref:n,className:s},o),r)});function $a(i,n,e,t,a){return X.createElement(i.tag,_e(_e({key:n},pn(i,e,a)),t),(hn(i,e).children||[]).map(function(r,o){return $a(r,"".concat(n,"-").concat(i.tag,"-").concat(o),e,void 0,a)}))}function pn(i,n,e){var t=_e({},i.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var a=n.defIds;return!a||a.length===0||(i.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+n.idSuffix),Object.entries(t).forEach(function(r){var o=r[0],s=r[1];typeof s=="string"&&(t[o]=s.replace(/url\(#(.*)\)/,"url(#$1".concat(n.idSuffix,")")))})),t}function hn(i,n){var e,t=n.defIds;return!t||t.length===0?i:i.tag==="defs"&&(!((e=i.children)===null||e===void 0)&&e.length)?_e(_e({},i),{children:i.children.map(function(a){return typeof a.attrs.id=="string"&&t&&t.indexOf(a.attrs.id)>-1?_e(_e({},a),{attrs:_e(_e({},a.attrs),{id:a.attrs.id+n.idSuffix})}):a})}):i}function mn(){return Math.random().toString(36).substring(2,8)}Ce.displayName="UniverIcon";var vn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.44 3.57291C14.698 3.83093 14.698 4.24927 14.44 4.50729L6.44342 12.5037C6.28721 12.6599 6.03395 12.6599 5.87774 12.5037L1.55992 8.18578C1.3019 7.92776 1.3019 7.50942 1.55993 7.2514C1.81795 6.99338 2.23629 6.99338 2.49431 7.25141L6.01916 10.7763C6.09727 10.8544 6.2239 10.8544 6.30201 10.7763L13.5056 3.57291C13.7636 3.31489 14.1819 3.31489 14.44 3.57291Z",fillRule:"evenodd",clipRule:"evenodd"}}]},ka=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"check-mark-single",ref:n,icon:vn}))});ka.displayName="CheckMarkSingle";const gn=ka;var _n={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{stroke:"currentColor",d:"M6.06964 2.57153H2.73631C2.36812 2.57153 2.06964 2.87001 2.06964 3.2382V6.57153C2.06964 6.93973 2.36812 7.2382 2.73631 7.2382H6.06964C6.43784 7.2382 6.73631 6.93973 6.73631 6.57153V3.2382C6.73631 2.87001 6.43784 2.57153 6.06964 2.57153zM6.06964 9.90479H2.73631C2.36812 9.90479 2.06964 10.2033 2.06964 10.5715V13.9048C2.06964 14.273 2.36812 14.5715 2.73631 14.5715H6.06964C6.43784 14.5715 6.73631 14.273 6.73631 13.9048V10.5715C6.73631 10.2033 6.43784 9.90479 6.06964 9.90479z",strokeLinejoin:"round",strokeWidth:1.33}},{tag:"path",attrs:{stroke:"currentColor",d:"M9.20471 5.06981L11.2023 6.73445 14.2047 3.73213M13.7047 10.238L9.70465 14.238M9.70477 10.238L13.7048 14.238",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.33}}]},Ba=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"data-validation-single",ref:n,icon:_n}))});Ba.displayName="DataValidationSingle";var Sn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.78662 6.17993C7.12169 6.17993 7.39331 6.45156 7.39331 6.78662V10.7301C7.39331 11.0652 7.12169 11.3368 6.78662 11.3368 6.45156 11.3368 6.17993 11.0652 6.17993 10.7301V6.78662C6.17993 6.45156 6.45156 6.17993 6.78662 6.17993zM9.82007 6.78662C9.82007 6.45156 9.54844 6.17993 9.21338 6.17993 8.87831 6.17993 8.60669 6.45156 8.60669 6.78662V10.7301C8.60669 11.0652 8.87831 11.3368 9.21338 11.3368 9.54844 11.3368 9.82007 11.0652 9.82007 10.7301V6.78662z"}},{tag:"path",attrs:{fill:"currentColor",d:"M6.57094 1.32642C6.34938 1.32642 6.14544 1.44719 6.03894 1.64148L5.21395 3.14648H1.93311C1.59804 3.14648 1.32642 3.41811 1.32642 3.75317C1.32642 4.08824 1.59804 4.35986 1.93311 4.35986H2.84314V14.0669C2.84314 14.402 3.11476 14.6736 3.44983 14.6736H12.5502C12.8852 14.6736 13.1569 14.402 13.1569 14.0669V4.35986H14.0669C14.402 4.35986 14.6736 4.08824 14.6736 3.75317C14.6736 3.41811 14.402 3.14648 14.0669 3.14648H10.7895L9.98357 1.64602C9.87785 1.4492 9.67252 1.32642 9.44911 1.32642H6.57094ZM9.4122 3.14648L9.08632 2.53979H6.93024L6.59767 3.14648H9.4122ZM4.05652 4.35986V13.4602H11.9435V4.35986H4.05652Z",fillRule:"evenodd",clipRule:"evenodd"}}]},qa=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"delete-single",ref:n,icon:Sn}))});qa.displayName="DeleteSingle";const Ha=qa;var yn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_249",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_249)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.74717 2.0944C8.74717 1.68671 8.41279 1.3562 8.00032 1.3562C7.58785 1.3562 7.25347 1.68671 7.25347 2.0944V7.26186H2.02541C1.61294 7.26186 1.27856 7.59237 1.27856 8.00007C1.27856 8.40777 1.61294 8.73827 2.02541 8.73827H7.25347V13.9057C7.25347 14.3134 7.58785 14.6439 8.00032 14.6439C8.41279 14.6439 8.74717 14.3134 8.74717 13.9057V8.73827H13.975C14.3874 8.73827 14.7218 8.40777 14.7218 8.00007C14.7218 7.59237 14.3874 7.26186 13.975 7.26186H8.74717V2.0944Z"}}]}]},Ya=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"increase-single",ref:n,icon:yn}))});Ya.displayName="IncreaseSingle";const Dn=Ya;var Rn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_556",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_556)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M0.629584 3.99986C1.13729 3.4922 1.9604 3.49224 2.46806 3.99995L7.57569 9.10806C7.81 9.3424 8.18992 9.3424 8.42424 9.10808L13.5323 3.99998C14.04 3.4923 14.8631 3.4923 15.3708 3.99998C15.8785 4.50766 15.8785 5.33078 15.3708 5.83846L9.41415 11.7951C8.63307 12.5762 7.36669 12.5762 6.58565 11.7951L0.629497 5.83834C0.121839 5.33063 0.121879 4.50752 0.629584 3.99986Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},za=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"more-down-single",ref:n,icon:Rn}))});za.displayName="MoreDownSingle";const Mn=za;var In={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_506_5",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M16 16H32V32H16z",transform:"rotate(180 16 16)"}}]},{tag:"g",attrs:{mask:"url(#mask0_506_5)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15.3704 12.0001C14.8627 12.5078 14.0396 12.5078 13.5319 12.0001L8.42431 6.89194C8.19 6.6576 7.81008 6.6576 7.57576 6.89192L2.46766 12C1.95998 12.5077 1.13687 12.5077 0.629185 12C0.121504 11.4923 0.121504 10.6692 0.629185 10.1615L6.58585 4.20487C7.36693 3.4238 8.63331 3.42383 9.41435 4.20494L15.3705 10.1617C15.8782 10.6694 15.8781 11.4925 15.3704 12.0001Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},Ka=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"more-up-single",ref:n,icon:In}))});Ka.displayName="MoreUpSingle";const On=Ka;var wn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_622_8",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{fill:"currentColor",mask:"url(#mask0_622_8)"},children:[{tag:"path",attrs:{d:"M6 5C6.55228 5 7 4.55228 7 4 7 3.44772 6.55228 3 6 3 5.44772 3 5 3.44772 5 4 5 4.55228 5.44772 5 6 5zM6 9C6.55228 9 7 8.55229 7 8 7 7.44772 6.55228 7 6 7 5.44772 7 5 7.44772 5 8 5 8.55229 5.44772 9 6 9zM7 12C7 12.5523 6.55228 13 6 13 5.44772 13 5 12.5523 5 12 5 11.4477 5.44772 11 6 11 6.55228 11 7 11.4477 7 12zM10 5C10.5523 5 11 4.55228 11 4 11 3.44772 10.5523 3 10 3 9.44771 3 9 3.44772 9 4 9 4.55228 9.44771 5 10 5zM11 8C11 8.55229 10.5523 9 10 9 9.44771 9 9 8.55229 9 8 9 7.44772 9.44771 7 10 7 10.5523 7 11 7.44772 11 8zM10 13C10.5523 13 11 12.5523 11 12 11 11.4477 10.5523 11 10 11 9.44771 11 9 11.4477 9 12 9 12.5523 9.44771 13 10 13z"}}]}]},Ga=X.forwardRef(function(i,n){return X.createElement(Ce,Object.assign({},i,{id:"sequence-single",ref:n,icon:wn}))});Ga.displayName="SequenceSingle";const Cn=Ga,Xt={dataValidationOptionsButton:"univer-data-validation-options-button",dataValidationOptionsButtonIcon:"univer-data-validation-options-button-icon"};function Vn(i){var c;const n=ne.useDependency(l.LocaleService),e=ne.useDependency(oe.ComponentManager),{value:t,onChange:a,extraComponent:r}=i,[o,s]=X.useState(!1),u=r?e.get(r):null;return N.jsxs(N.Fragment,{children:[N.jsxs("div",{className:Xt.dataValidationOptionsButton,onClick:()=>s(!o),children:[n.t("dataValidation.panel.options"),o?N.jsx(On,{className:Xt.dataValidationOptionsButtonIcon}):N.jsx(Mn,{className:Xt.dataValidationOptionsButtonIcon})]}),o&&N.jsxs(N.Fragment,{children:[u?N.jsx(u,{value:t,onChange:a}):null,N.jsx(J.FormLayout,{label:n.t("dataValidation.panel.invalid"),children:N.jsxs(J.RadioGroup,{value:`${(c=t.errorStyle)!=null?c:l.DataValidationErrorStyle.WARNING}`,onChange:d=>a({...t,errorStyle:+d}),children:[N.jsx(J.Radio,{value:`${l.DataValidationErrorStyle.WARNING}`,children:n.t("dataValidation.panel.showWarning")}),N.jsx(J.Radio,{value:`${l.DataValidationErrorStyle.STOP}`,children:n.t("dataValidation.panel.rejectInput")})]})}),N.jsx(J.FormLayout,{label:n.t("dataValidation.panel.messageInfo"),children:N.jsx(J.Checkbox,{checked:t.showInputMessage,onChange:()=>a({...t,showInputMessage:!t.showInputMessage}),children:n.t("dataValidation.panel.showInfo")})}),t.showInputMessage?N.jsx(J.FormLayout,{children:N.jsx(J.Input,{value:t.error,onChange:d=>a({...t,error:d})})}):null]})]})}const ke={dataValidationDetailFormItem:"univer-data-validation-detail-form-item",dataValidationDetailButtons:"univer-data-validation-detail-buttons",dataValidationDetailButton:"univer-data-validation-detail-button"},Tn=i=>l.debounce(async(n,e,t,a)=>{const r=await i.executeCommand(n,e,t);a==null||a(r)},275);function bn(){const[i,n]=X.useState(0),e=ne.useDependency(Pe),t=oe.useObservable(e.activeRule$,e.activeRule),{unitId:a,subUnitId:r,rule:o}=t||{},s=o.uid,u=ne.useDependency(H.DataValidatorRegistryService),c=ne.useDependency(oe.ComponentManager),d=ne.useDependency(l.ICommandService),p=ne.useDependency(H.DataValidationModel),g=ne.useDependency(l.LocaleService),[v,M]=X.useState(o),V=u.getValidatorItem(v.type),[O,b]=X.useState(!1),F=u.getValidatorsByScope(H.DataValidatorRegistryScope.SHEET),[P,j]=X.useState(()=>v.ranges.map(C=>({unitId:"",sheetId:"",range:C}))),$=X.useMemo(()=>Tn(d),[d]);if(X.useEffect(()=>{d.onCommandExecuted(C=>{(C.id===l.UndoCommand.id||C.id===l.RedoCommand.id)&&setTimeout(()=>{const E=p.getRuleById(a,r,s);n(x=>x+1),E&&(M(E),j(E.ranges.map(x=>({unitId:"",sheetId:"",range:x}))))},20)})},[d,p,s,r,a]),!V)return null;const U=V.operators,I=V.operatorNames,w=v.operator?H.TWO_FORMULA_OPERATOR_COUNT.includes(v.operator):!1,L=()=>{V.validatorFormula(v).success?e.setActiveRule(null):b(!0)},T=oe.useEvent(C=>{if(l.isUnitRangesEqual(C,P))return;j(C);const E=C.filter(q=>(!q.unitId||q.unitId===a)&&(!q.sheetId||q.sheetId===r)).map(q=>q.range);M({...v,ranges:E});const x={unitId:a,subUnitId:r,ruleId:s,ranges:E};$(Kt.id,x)}),D=C=>{if(l.shallowEqual(C,H.getRuleSetting(v)))return;M({...v,...C});const E={unitId:a,subUnitId:r,ruleId:s,setting:C};$(H.UpdateDataValidationSettingCommand.id,E,void 0)},R=async()=>{await d.executeCommand(H.RemoveDataValidationCommand.id,{ruleId:s,unitId:a,subUnitId:r}),e.setActiveRule(null)},_={type:v.type,operator:v.operator,formula1:v.formula1,formula2:v.formula2,allowBlank:v.allowBlank},y=C=>{const E=u.getValidatorItem(C);if(!E)return;const x=E.operators,q={...v,type:C,operator:x[0],...C===l.DataValidationType.CHECKBOX?{formula1:void 0,formula2:void 0}:null};M(q),d.executeCommand(H.UpdateDataValidationSettingCommand.id,{unitId:a,subUnitId:r,ruleId:v.uid,setting:H.getRuleSetting(q)})},h=c.get(V.formulaInput),m=P.map(C=>le.serializeRange(C.range)).join(","),f=H.getRuleOptions(v),S=C=>{l.shallowEqual(C,H.getRuleOptions(v))||(M({...v,...C}),$(H.UpdateDataValidationOptionsCommand.id,{unitId:a,subUnitId:r,ruleId:s,options:C}))};return N.jsxs("div",{children:[N.jsx(J.FormLayout,{label:g.t("dataValidation.panel.range"),children:N.jsx(oe.RangeSelector,{className:ke.dataValidationDetailFormItem,value:m,id:"data-validation-detail",openForSheetUnitId:a,openForSheetSubUnitId:r,onChange:C=>{C.some(E=>!l.isValidRange(E.range)||E.range.endColumn<E.range.startColumn||E.range.endRow<E.range.startRow)||T(C)}},i)}),N.jsx(J.FormLayout,{label:g.t("dataValidation.panel.type"),children:N.jsx(J.Select,{options:F==null?void 0:F.map(C=>({label:g.t(C.title),value:C.id})),value:v.type,onChange:y,className:ke.dataValidationDetailFormItem})}),U!=null&&U.length?N.jsx(J.FormLayout,{label:g.t("dataValidation.panel.operator"),children:N.jsx(J.Select,{options:U.map((C,E)=>({value:`${C}`,label:I[E]})),value:`${v.operator}`,onChange:C=>{D({..._,operator:C})},className:ke.dataValidationDetailFormItem})}):null,h?N.jsx(h,{isTwoFormula:w,value:{formula1:v.formula1,formula2:v.formula2},onChange:C=>{D({..._,...C})},showError:O,validResult:V.validatorFormula(v),unitId:a,subUnitId:r},i):null,N.jsx(Vn,{value:f,onChange:S,extraComponent:V.optionsInput}),N.jsxs("div",{className:ke.dataValidationDetailButtons,children:[N.jsx(J.Button,{className:ke.dataValidationDetailButton,onClick:R,children:g.t("dataValidation.panel.removeRule")}),N.jsx(J.Button,{className:ke.dataValidationDetailButton,type:"primary",onClick:L,children:g.t("dataValidation.panel.done")})]})]})}const ht={dataValidationItemContainer:"univer-data-validation-item-container",dataValidationItemTitle:"univer-data-validation-item-title",dataValidationItemContent:"univer-data-validation-item-content",dataValidationItemIcon:"univer-data-validation-item-icon"},En=i=>{const{rule:n,onClick:e,unitId:t,subUnitId:a}=i,r=ne.useDependency(H.DataValidatorRegistryService),o=ne.useDependency(l.ICommandService),s=ne.useDependency(se.IMarkSelectionService),u=r.getValidatorItem(n.type),c=X.useRef(),[d,p]=X.useState(!1),g=v=>{o.executeCommand(H.RemoveDataValidationCommand.id,{ruleId:n.uid,unitId:t,subUnitId:a}),v.stopPropagation()};return X.useEffect(()=>()=>{var v;c.current&&((v=c.current)==null||v.forEach(M=>{M&&s.removeShape(M)}))},[s]),N.jsxs("div",{className:ht.dataValidationItemContainer,onClick:e,onMouseEnter:()=>{p(!0),c.current=n.ranges.map(v=>s.addShape({range:v,style:{hasAutoFill:!1,fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:v.startColumn,endColumn:v.endColumn,startRow:v.startRow,endRow:v.endRow,actualRow:v.startRow,actualColumn:v.startColumn,isMerged:!1,isMergedMainCell:!1}}))},onMouseLeave:()=>{var v;p(!1),(v=c.current)==null||v.forEach(M=>{M&&s.removeShape(M)}),c.current=void 0},children:[N.jsx("div",{className:ht.dataValidationItemTitle,children:u==null?void 0:u.generateRuleName(n)}),N.jsx("div",{className:ht.dataValidationItemContent,children:n.ranges.map(v=>le.serializeRange(v)).join(",")}),d?N.jsx("div",{className:ht.dataValidationItemIcon,onClick:g,children:N.jsx(Ha,{})}):null]})},Qt={dataValidationListButtons:"univer-data-validation-list-buttons",dataValidationListButton:"univer-data-validation-list-button"},Fn=X.memo(()=>{var V,O;const i=ne.useDependency(l.IUniverInstanceService),n=ne.useDependency(H.DataValidationModel),e=ne.useDependency(l.ICommandService),t=ne.useDependency(z.Injector),a=ne.useDependency(Pe),r=(V=oe.useObservable(i.currentSheet$,i.getCurrentUniverSheetInstance()))!=null?V:i.getCurrentUniverSheetInstance(),o=ne.useDependency(l.LocaleService),[s,u]=X.useState([]),c=(O=oe.useObservable(r.activeSheet$,r.getActiveSheet()))!=null?O:r.getActiveSheet(),d=r.getUnitId(),p=c.getSheetId(),g=n.ensureManager(d,p);X.useEffect(()=>{u(g.getDataValidations());const b=g.dataValidations$.subscribe(F=>{u([...F])});return()=>{b.unsubscribe()}},[g]);const v=async()=>{const b=H.createDefaultNewRule(t),F={unitId:d,subUnitId:p,rule:b};await e.executeCommand(pt.id,F),a.setActiveRule({unitId:d,subUnitId:p,rule:b})},M=()=>{e.executeCommand(H.RemoveAllDataValidationCommand.id,{unitId:d,subUnitId:p})};return N.jsxs("div",{children:[s.map(b=>N.jsx(En,{unitId:d,subUnitId:p,onClick:()=>a.setActiveRule({unitId:d,subUnitId:p,rule:b}),rule:b},b.uid)),N.jsxs("div",{className:Qt.dataValidationListButtons,children:[s.length?N.jsx(J.Button,{className:Qt.dataValidationListButton,onClick:M,children:o.t("dataValidation.panel.removeAll")}):null,N.jsx(J.Button,{className:Qt.dataValidationListButton,type:"primary",onClick:v,children:o.t("dataValidation.panel.add")})]})]})}),An=()=>{const i=ne.useDependency(Pe),n=oe.useObservable(i.activeRule$,i.activeRule);return n?N.jsx(bn,{},n.rule.uid):N.jsx(Fn,{})};function ve(i){if(i===null)return"";if(i!=null&&i.p){const n=i==null?void 0:i.p.body;if(n==null)return"";const e=n.dataStream;return e.substring(e.length-2,e.length)===l.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return i==null?void 0:i.v}function Xe(i,n,e,t){var u,c,d;const a=new Set,r=i.unitId||e,o=(u=n.getUniverSheetInstance(r))!=null?u:n.getCurrentUniverSheetInstance(),s=(d=(c=o.getSheetBySheetName(i.sheetName))!=null?c:o.getSheetBySheetId(t))!=null?d:o.getActiveSheet();return l.Range.foreach(i.range,(p,g)=>{const v=s.getCellRaw(p,g);if(!v)return;const M=ve(v);if(M==null||M==="")return;Me(`${M}`).forEach(O=>{O&&a.add(`${M}`)})}),Array.from(a)}function Xa(i){return i.filter(Boolean).join(",")}function Me(i){return i.split(",").filter(Boolean)}function Pn(i){const n=ve(i);return n==null?"":n.toString()}const Be="SHEET_DATA_VALIDATION",Le="#ECECEC",Ve={dvListDropdown:"univer-dv-list-dropdown",dvListDropdownTitle:"univer-dv-list-dropdown-title",dvListDropdownList:"univer-dv-list-dropdown-list",dvListDropdownSelectedIcon:"univer-dv-list-dropdown-selected-icon",dvListDropdownItemContainer:"univer-dv-list-dropdown-item-container",dvListDropdownItem:"univer-dv-list-dropdown-item",dvListDropdownSplit:"univer-dv-list-dropdown-split",dvListDropdownEdit:"univer-dv-list-dropdown-edit"},Ln=i=>{const{value:n,onChange:e,multiple:t,options:a,title:r,onEdit:o,style:s}=i;return N.jsxs("div",{className:Ve.dvListDropdown,style:s,children:[N.jsx("div",{className:Ve.dvListDropdownTitle,children:r}),N.jsx("div",{className:Ve.dvListDropdownList,children:a.map((u,c)=>{const d=n.indexOf(u.value)>-1,p=()=>{let g;d?g=new Set(n.filter(M=>M!==u.value)):g=new Set(t?[...n,u.value]:[u.value]);const v=[];a.forEach(M=>{g.has(M.value)&&v.push(M.value)}),e(v)};return N.jsxs("div",{className:Ve.dvListDropdownItemContainer,onClick:p,children:[N.jsx("div",{className:Ve.dvListDropdownItem,style:{background:u.color||Le},children:u.label}),N.jsx("div",{className:Ve.dvListDropdownSelectedIcon,children:d?N.jsx(gn,{}):null})]},c)})}),N.jsx("div",{className:Ve.dvListDropdownSplit}),N.jsx("div",{className:Ve.dvListDropdownEdit,onClick:o,children:"编辑"})]})};function Nn(i){var w,L;const{location:n,hideFn:e}=i,{worksheet:t,row:a,col:r,unitId:o,subUnitId:s}=n,u=ne.useDependency(l.ICommandService),c=ne.useDependency(l.LocaleService),[d,p]=X.useState(""),g=ne.useDependency(se.IEditorBridgeService),v=J.RectPopup.useContext(),M=v.right-v.left;if(!t)return null;const V=t.getCell(a,r),O=(w=V==null?void 0:V.dataValidation)==null?void 0:w.rule,b=(L=V==null?void 0:V.dataValidation)==null?void 0:L.validator,F=(O==null?void 0:O.renderMode)===l.DataValidationRenderMode.CUSTOM||(O==null?void 0:O.renderMode)===void 0;if(!V||!O||!b)return;const P=O.type===l.DataValidationType.LIST_MULTIPLE,j=b.getListWithColor(O,o,s),$=d||Pn(V),U=Me($),I=()=>{u.executeCommand(Ge.id,{ruleId:O.uid}),e()};return N.jsx(Ln,{style:{minWidth:M,maxWidth:Math.max(M,200)},title:P?c.t("dataValidation.listMultiple.dropdown"):c.t("dataValidation.list.dropdown"),value:U,multiple:P,onChange:T=>{const D=Xa(T),R={unitId:o,subUnitId:s,range:{startColumn:r,endColumn:r,startRow:a,endRow:a},value:{v:D,p:null,f:null,si:null}};g.isVisible()&&g.changeVisible({visible:!1,keycode:oe.KeyCode.ESC,eventType:fe.DeviceInputEventType.Keyboard}),u.executeCommand(he.SetRangeValuesCommand.id,R),p(D),P||e()},options:j.map(T=>({label:T.label,value:T.label,color:F?T.color:"transparent"})),onEdit:I})}var Qa={exports:{}};(function(i,n){(function(e,t){i.exports=t()})(ct,function(){var e=1e3,t=6e4,a=36e5,r="millisecond",o="second",s="minute",u="hour",c="day",d="week",p="month",g="quarter",v="year",M="date",V="Invalid Date",O=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,F={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(y){var h=["th","st","nd","rd"],m=y%100;return"["+y+(h[(m-20)%10]||h[m]||h[0])+"]"}},P=function(y,h,m){var f=String(y);return!f||f.length>=h?y:""+Array(h+1-f.length).join(m)+y},j={s:P,z:function(y){var h=-y.utcOffset(),m=Math.abs(h),f=Math.floor(m/60),S=m%60;return(h<=0?"+":"-")+P(f,2,"0")+":"+P(S,2,"0")},m:function y(h,m){if(h.date()<m.date())return-y(m,h);var f=12*(m.year()-h.year())+(m.month()-h.month()),S=h.clone().add(f,p),C=m-S<0,E=h.clone().add(f+(C?-1:1),p);return+(-(f+(m-S)/(C?S-E:E-S))||0)},a:function(y){return y<0?Math.ceil(y)||0:Math.floor(y)},p:function(y){return{M:p,y:v,w:d,d:c,D:M,h:u,m:s,s:o,ms:r,Q:g}[y]||String(y||"").toLowerCase().replace(/s$/,"")},u:function(y){return y===void 0}},$="en",U={};U[$]=F;var I="$isDayjsObject",w=function(y){return y instanceof R||!(!y||!y[I])},L=function y(h,m,f){var S;if(!h)return $;if(typeof h=="string"){var C=h.toLowerCase();U[C]&&(S=C),m&&(U[C]=m,S=C);var E=h.split("-");if(!S&&E.length>1)return y(E[0])}else{var x=h.name;U[x]=h,S=x}return!f&&S&&($=S),S||!f&&$},T=function(y,h){if(w(y))return y.clone();var m=typeof h=="object"?h:{};return m.date=y,m.args=arguments,new R(m)},D=j;D.l=L,D.i=w,D.w=function(y,h){return T(y,{locale:h.$L,utc:h.$u,x:h.$x,$offset:h.$offset})};var R=function(){function y(m){this.$L=L(m.locale,null,!0),this.parse(m),this.$x=this.$x||m.x||{},this[I]=!0}var h=y.prototype;return h.parse=function(m){this.$d=function(f){var S=f.date,C=f.utc;if(S===null)return new Date(NaN);if(D.u(S))return new Date;if(S instanceof Date)return new Date(S);if(typeof S=="string"&&!/Z$/i.test(S)){var E=S.match(O);if(E){var x=E[2]-1||0,q=(E[7]||"0").substring(0,3);return C?new Date(Date.UTC(E[1],x,E[3]||1,E[4]||0,E[5]||0,E[6]||0,q)):new Date(E[1],x,E[3]||1,E[4]||0,E[5]||0,E[6]||0,q)}}return new Date(S)}(m),this.init()},h.init=function(){var m=this.$d;this.$y=m.getFullYear(),this.$M=m.getMonth(),this.$D=m.getDate(),this.$W=m.getDay(),this.$H=m.getHours(),this.$m=m.getMinutes(),this.$s=m.getSeconds(),this.$ms=m.getMilliseconds()},h.$utils=function(){return D},h.isValid=function(){return this.$d.toString()!==V},h.isSame=function(m,f){var S=T(m);return this.startOf(f)<=S&&S<=this.endOf(f)},h.isAfter=function(m,f){return T(m)<this.startOf(f)},h.isBefore=function(m,f){return this.endOf(f)<T(m)},h.$g=function(m,f,S){return D.u(m)?this[f]:this.set(S,m)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(m,f){var S=this,C=!!D.u(f)||f,E=D.p(m),x=function(te,Z){var ee=D.w(S.$u?Date.UTC(S.$y,Z,te):new Date(S.$y,Z,te),S);return C?ee:ee.endOf(c)},q=function(te,Z){return D.w(S.toDate()[te].apply(S.toDate("s"),(C?[0,0,0,0]:[23,59,59,999]).slice(Z)),S)},Y=this.$W,B=this.$M,k=this.$D,K="set"+(this.$u?"UTC":"");switch(E){case v:return C?x(1,0):x(31,11);case p:return C?x(1,B):x(0,B+1);case d:var Q=this.$locale().weekStart||0,G=(Y<Q?Y+7:Y)-Q;return x(C?k-G:k+(6-G),B);case c:case M:return q(K+"Hours",0);case u:return q(K+"Minutes",1);case s:return q(K+"Seconds",2);case o:return q(K+"Milliseconds",3);default:return this.clone()}},h.endOf=function(m){return this.startOf(m,!1)},h.$set=function(m,f){var S,C=D.p(m),E="set"+(this.$u?"UTC":""),x=(S={},S[c]=E+"Date",S[M]=E+"Date",S[p]=E+"Month",S[v]=E+"FullYear",S[u]=E+"Hours",S[s]=E+"Minutes",S[o]=E+"Seconds",S[r]=E+"Milliseconds",S)[C],q=C===c?this.$D+(f-this.$W):f;if(C===p||C===v){var Y=this.clone().set(M,1);Y.$d[x](q),Y.init(),this.$d=Y.set(M,Math.min(this.$D,Y.daysInMonth())).$d}else x&&this.$d[x](q);return this.init(),this},h.set=function(m,f){return this.clone().$set(m,f)},h.get=function(m){return this[D.p(m)]()},h.add=function(m,f){var S,C=this;m=Number(m);var E=D.p(f),x=function(B){var k=T(C);return D.w(k.date(k.date()+Math.round(B*m)),C)};if(E===p)return this.set(p,this.$M+m);if(E===v)return this.set(v,this.$y+m);if(E===c)return x(1);if(E===d)return x(7);var q=(S={},S[s]=t,S[u]=a,S[o]=e,S)[E]||1,Y=this.$d.getTime()+m*q;return D.w(Y,this)},h.subtract=function(m,f){return this.add(-1*m,f)},h.format=function(m){var f=this,S=this.$locale();if(!this.isValid())return S.invalidDate||V;var C=m||"YYYY-MM-DDTHH:mm:ssZ",E=D.z(this),x=this.$H,q=this.$m,Y=this.$M,B=S.weekdays,k=S.months,K=S.meridiem,Q=function(Z,ee,ie,ae){return Z&&(Z[ee]||Z(f,C))||ie[ee].slice(0,ae)},G=function(Z){return D.s(x%12||12,Z,"0")},te=K||function(Z,ee,ie){var ae=Z<12?"AM":"PM";return ie?ae.toLowerCase():ae};return C.replace(b,function(Z,ee){return ee||function(ie){switch(ie){case"YY":return String(f.$y).slice(-2);case"YYYY":return D.s(f.$y,4,"0");case"M":return Y+1;case"MM":return D.s(Y+1,2,"0");case"MMM":return Q(S.monthsShort,Y,k,3);case"MMMM":return Q(k,Y);case"D":return f.$D;case"DD":return D.s(f.$D,2,"0");case"d":return String(f.$W);case"dd":return Q(S.weekdaysMin,f.$W,B,2);case"ddd":return Q(S.weekdaysShort,f.$W,B,3);case"dddd":return B[f.$W];case"H":return String(x);case"HH":return D.s(x,2,"0");case"h":return G(1);case"hh":return G(2);case"a":return te(x,q,!0);case"A":return te(x,q,!1);case"m":return String(q);case"mm":return D.s(q,2,"0");case"s":return String(f.$s);case"ss":return D.s(f.$s,2,"0");case"SSS":return D.s(f.$ms,3,"0");case"Z":return E}return null}(Z)||E.replace(":","")})},h.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},h.diff=function(m,f,S){var C,E=this,x=D.p(f),q=T(m),Y=(q.utcOffset()-this.utcOffset())*t,B=this-q,k=function(){return D.m(E,q)};switch(x){case v:C=k()/12;break;case p:C=k();break;case g:C=k()/3;break;case d:C=(B-Y)/6048e5;break;case c:C=(B-Y)/864e5;break;case u:C=B/a;break;case s:C=B/t;break;case o:C=B/e;break;default:C=B}return S?C:D.a(C)},h.daysInMonth=function(){return this.endOf(p).$D},h.$locale=function(){return U[this.$L]},h.locale=function(m,f){if(!m)return this.$L;var S=this.clone(),C=L(m,f,!0);return C&&(S.$L=C),S},h.clone=function(){return D.w(this.$d,this)},h.toDate=function(){return new Date(this.valueOf())},h.toJSON=function(){return this.isValid()?this.toISOString():null},h.toISOString=function(){return this.$d.toISOString()},h.toString=function(){return this.$d.toUTCString()},y}(),_=R.prototype;return T.prototype=_,[["$ms",r],["$s",o],["$m",s],["$H",u],["$W",c],["$M",p],["$y",v],["$D",M]].forEach(function(y){_[y[1]]=function(h){return this.$g(h,y[0],y[1])}}),T.extend=function(y,h){return y.$i||(y(h,R,T),y.$i=!0),T},T.locale=L,T.isDayjs=w,T.unix=function(y){return T(1e3*y)},T.en=U[$],T.Ls=U,T.p={},T})})(Qa);var jn=Qa.exports;const Ne=Pa(jn),Un={dvDateDropdown:"univer-dv-date-dropdown"};function xn(i){var b,F,P;const{location:n,hideFn:e}=i,{worksheet:t,row:a,col:r,unitId:o,subUnitId:s}=n,u=ne.useDependency(l.ICommandService),[c,d]=X.useState();if(!t)return null;const p=t.getCell(a,r),g=(b=p==null?void 0:p.dataValidation)==null?void 0:b.rule,v=(F=p==null?void 0:p.dataValidation)==null?void 0:F.validator;if(!p||!g||!v)return;const M=ve(p),V=(P=v.transformDate(M))!=null?P:Ne(),O=V.isValid()?V:Ne();return N.jsx("div",{className:Un.dvDateDropdown,children:N.jsx(J.DatePanel,{pickerValue:c!=null?c:O,onSelect:j=>{const $=j.format("YYYY/MM/DD");u.executeCommand(he.SetRangeValuesCommand.id,{unitId:o,subUnitId:s,range:{startColumn:r,endColumn:r,startRow:a,endRow:a},value:{v:$,p:null,f:null,si:null}}),e()},onPanelChange:j=>{d(j)}})})}const Zt="data-validation.list.dropdown",Za="data-validation.date.dropdown";function Wn(i){var u;const{unitId:n,subUnitId:e,value:t,onChange:a,showError:r,validResult:o}=i,s=r?o==null?void 0:o.formula1:"";return N.jsx(J.FormLayout,{error:s,children:N.jsx(oe.TextEditor,{value:(u=t==null?void 0:t.formula1)!=null?u:"",id:`dataValidation-custom-formula-${n}-${e}`,onChange:c=>{a==null||a({...t,formula1:c!=null?c:""})},onlyInputFormula:!0})})}const me={dataValidationFormula:"univer-data-validation-formula",dataValidationFormulaAnd:"univer-data-validation-formula-and",dataValidationFormulaListItem:"univer-data-validation-formula-list-item",dataValidationFormulaListItemIcon:"univer-data-validation-formula-list-item-icon",dataValidationFormulaListItemDrag:"univer-data-validation-formula-list-item-drag",dataValidationFormulaListAdd:"univer-data-validation-formula-list-add",dataValidationFormulaColorSelect:"univer-data-validation-formula-color-select",dataValidationFormulaColorSelectPanel:"univer-data-validation-formula-color-select-panel",dataValidationFormulaColorItem:"univer-data-validation-formula-color-item"},$n=i=>{const{isTwoFormula:n=!1,value:e,onChange:t,showError:a,validResult:r}=i,o=ne.useDependency(l.LocaleService),s=a?r==null?void 0:r.formula1:"",u=a?r==null?void 0:r.formula2:"";return n?N.jsxs(N.Fragment,{children:[N.jsx(J.FormLayout,{error:s,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:c=>{t==null||t({...e,formula1:c})}})}),N.jsx("div",{className:me.dataValidationFormulaAnd,children:o.t("dataValidation.panel.formulaAnd")}),N.jsx(J.FormLayout,{error:u,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula2,onChange:c=>{t==null||t({...e,formula2:c})}})})]}):N.jsx(J.FormLayout,{error:s,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:o.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:c=>{t==null||t({formula1:c})}})})};var Jt={exports:{}},Ja={exports:{}};(function(i){function n(e){return e&&e.__esModule?e:{default:e}}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports})(Ja);var Qe=Ja.exports,er={exports:{}};(function(i){function n(e){"@babel/helpers - typeof";return i.exports=n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i.exports.__esModule=!0,i.exports.default=i.exports,n(e)}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports})(er);var je=er.exports,ea={exports:{}},tr;function Ze(){return tr||(tr=1,function(i){function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports}(ea)),ea.exports}var ta={exports:{}},aa={exports:{}},ra={exports:{}},ar;function kn(){return ar||(ar=1,function(i){var n=je.default;function e(t,a){if(n(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var o=r.call(t,a||"default");if(n(o)!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(t)}i.exports=e,i.exports.__esModule=!0,i.exports.default=i.exports}(ra)),ra.exports}var rr;function nr(){return rr||(rr=1,function(i){var n=je.default,e=kn();function t(a){var r=e(a,"string");return n(r)=="symbol"?r:r+""}i.exports=t,i.exports.__esModule=!0,i.exports.default=i.exports}(aa)),aa.exports}var ir;function Je(){return ir||(ir=1,function(i){var n=nr();function e(a,r){for(var o=0;o<r.length;o++){var s=r[o];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(a,n(s.key),s)}}function t(a,r,o){return r&&e(a.prototype,r),o&&e(a,o),Object.defineProperty(a,"prototype",{writable:!1}),a}i.exports=t,i.exports.__esModule=!0,i.exports.default=i.exports}(ta)),ta.exports}var na={exports:{}},ia={exports:{}},or;function mt(){return or||(or=1,function(i){function n(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports}(ia)),ia.exports}var sr;function vt(){return sr||(sr=1,function(i){var n=je.default,e=mt();function t(a,r){if(r&&(n(r)==="object"||typeof r=="function"))return r;if(r!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return e(a)}i.exports=t,i.exports.__esModule=!0,i.exports.default=i.exports}(na)),na.exports}var oa={exports:{}},lr;function gt(){return lr||(lr=1,function(i){function n(e){return i.exports=n=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(a){return a.__proto__||Object.getPrototypeOf(a)},i.exports.__esModule=!0,i.exports.default=i.exports,n(e)}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports}(oa)),oa.exports}var sa={exports:{}},la={exports:{}},ur;function Bn(){return ur||(ur=1,function(i){function n(e,t){return i.exports=n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},i.exports.__esModule=!0,i.exports.default=i.exports,n(e,t)}i.exports=n,i.exports.__esModule=!0,i.exports.default=i.exports}(la)),la.exports}var cr;function _t(){return cr||(cr=1,function(i){var n=Bn();function e(t,a){if(typeof a!="function"&&a!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(a&&a.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),a&&n(t,a)}i.exports=e,i.exports.__esModule=!0,i.exports.default=i.exports}(sa)),sa.exports}var ua={exports:{}},dr;function St(){return dr||(dr=1,function(i){var n=nr();function e(t,a,r){return a=n(a),a in t?Object.defineProperty(t,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[a]=r,t}i.exports=e,i.exports.__esModule=!0,i.exports.default=i.exports}(ua)),ua.exports}var ca={exports:{}},da,fr;function qn(){if(fr)return da;fr=1;var i="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return da=i,da}var fa,pr;function Hn(){if(pr)return fa;pr=1;var i=qn();function n(){}function e(){}return e.resetWarningCache=n,fa=function(){function t(o,s,u,c,d,p){if(p!==i){var g=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw g.name="Invariant Violation",g}}t.isRequired=t;function a(){return t}var r={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:a,element:t,elementType:t,instanceOf:a,node:t,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:e,resetWarningCache:n};return r.PropTypes=r,r},fa}var hr;function yt(){return hr||(hr=1,ca.exports=Hn()()),ca.exports}var ye={},Dt={exports:{}},Rt={exports:{}},mr;function pa(){return mr||(mr=1,function(i,n){n.__esModule=!0,n.default=e;function e(t){var a={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[r]=0);return a}i.exports=n.default}(Rt,Rt.exports)),Rt.exports}var Mt={exports:{}},vr;function It(){return vr||(vr=1,function(i,n){n.__esModule=!0,n.default=e;function e(t){var a={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[r]=typeof t[r]=="number"?t[r]:t[r].val);return a}i.exports=n.default}(Mt,Mt.exports)),Mt.exports}var Ot={exports:{}},gr;function ha(){return gr||(gr=1,function(i,n){n.__esModule=!0,n.default=t;var e=[0,0];function t(a,r,o,s,u,c,d){var p=-u*(r-s),g=-c*o,v=p+g,M=o+v*a,V=r+M*a;return Math.abs(M)<d&&Math.abs(V-s)<d?(e[0]=s,e[1]=0,e):(e[0]=V,e[1]=M,e)}i.exports=n.default}(Ot,Ot.exports)),Ot.exports}var qe={exports:{}},_r;function ma(){return _r||(_r=1,function(){var i,n,e;typeof performance<"u"&&performance!==null&&performance.now?qe.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(qe.exports=function(){return(i()-e)/1e6},n=process.hrtime,i=function(){var t;return t=n(),t[0]*1e9+t[1]},e=i()):Date.now?(qe.exports=function(){return Date.now()-e},e=Date.now()):(qe.exports=function(){return new Date().getTime()-e},e=new Date().getTime())}.call(ct)),qe.exports}var et={exports:{}},He={exports:{}},Sr;function Yn(){return Sr||(Sr=1,function(){var i,n,e,t,a,r;typeof performance<"u"&&performance!==null&&performance.now?He.exports=function(){return performance.now()}:typeof process<"u"&&process!==null&&process.hrtime?(He.exports=function(){return(i()-a)/1e6},n=process.hrtime,i=function(){var o;return o=n(),o[0]*1e9+o[1]},t=i(),r=process.uptime()*1e9,a=t-r):Date.now?(He.exports=function(){return Date.now()-e},e=Date.now()):(He.exports=function(){return new Date().getTime()-e},e=new Date().getTime())}.call(ct)),He.exports}var yr;function va(){if(yr)return et.exports;yr=1;for(var i=Yn(),n=typeof window>"u"?ct:window,e=["moz","webkit"],t="AnimationFrame",a=n["request"+t],r=n["cancel"+t]||n["cancelRequest"+t],o=0;!a&&o<e.length;o++)a=n[e[o]+"Request"+t],r=n[e[o]+"Cancel"+t]||n[e[o]+"CancelRequest"+t];if(!a||!r){var s=0,u=0,c=[],d=1e3/60;a=function(p){if(c.length===0){var g=i(),v=Math.max(0,d-(g-s));s=v+g,setTimeout(function(){var M=c.slice(0);c.length=0;for(var V=0;V<M.length;V++)if(!M[V].cancelled)try{M[V].callback(s)}catch(O){setTimeout(function(){throw O},0)}},Math.round(v))}return c.push({handle:++u,callback:p,cancelled:!1}),u},r=function(p){for(var g=0;g<c.length;g++)c[g].handle===p&&(c[g].cancelled=!0)}}return et.exports=function(p){return a.call(n,p)},et.exports.cancel=function(){r.apply(n,arguments)},et.exports.polyfill=function(p){p||(p=n),p.requestAnimationFrame=a,p.cancelAnimationFrame=r},et.exports}var wt={exports:{}},Dr;function ga(){return Dr||(Dr=1,function(i,n){n.__esModule=!0,n.default=e;function e(t,a,r){for(var o in a)if(Object.prototype.hasOwnProperty.call(a,o)){if(r[o]!==0)return!1;var s=typeof a[o]=="number"?a[o]:a[o].val;if(t[o]!==s)return!1}return!0}i.exports=n.default}(wt,wt.exports)),wt.exports}var Rr;function zn(){return Rr||(Rr=1,function(i,n){n.__esModule=!0;var e=Object.assign||function(L){for(var T=1;T<arguments.length;T++){var D=arguments[T];for(var R in D)Object.prototype.hasOwnProperty.call(D,R)&&(L[R]=D[R])}return L},t=function(){function L(T,D){for(var R=0;R<D.length;R++){var _=D[R];_.enumerable=_.enumerable||!1,_.configurable=!0,"value"in _&&(_.writable=!0),Object.defineProperty(T,_.key,_)}}return function(T,D,R){return D&&L(T.prototype,D),R&&L(T,R),T}}();function a(L){return L&&L.__esModule?L:{default:L}}function r(L,T){if(!(L instanceof T))throw new TypeError("Cannot call a class as a function")}function o(L,T){if(typeof T!="function"&&T!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof T);L.prototype=Object.create(T&&T.prototype,{constructor:{value:L,enumerable:!1,writable:!0,configurable:!0}}),T&&(Object.setPrototypeOf?Object.setPrototypeOf(L,T):L.__proto__=T)}var s=pa(),u=a(s),c=It(),d=a(c),p=ha(),g=a(p),v=ma(),M=a(v),V=va(),O=a(V),b=ga(),F=a(b),P=X,j=a(P),$=yt(),U=a($),I=1e3/60,w=function(L){o(T,L),t(T,null,[{key:"propTypes",value:{defaultStyle:U.default.objectOf(U.default.number),style:U.default.objectOf(U.default.oneOfType([U.default.number,U.default.object])).isRequired,children:U.default.func.isRequired,onRest:U.default.func},enumerable:!0}]);function T(D){var R=this;r(this,T),L.call(this,D),this.wasAnimating=!1,this.animationID=null,this.prevTime=0,this.accumulatedTime=0,this.unreadPropStyle=null,this.clearUnreadPropStyle=function(_){var y=!1,h=R.state,m=h.currentStyle,f=h.currentVelocity,S=h.lastIdealStyle,C=h.lastIdealVelocity;for(var E in _)if(Object.prototype.hasOwnProperty.call(_,E)){var x=_[E];typeof x=="number"&&(y||(y=!0,m=e({},m),f=e({},f),S=e({},S),C=e({},C)),m[E]=x,f[E]=0,S[E]=x,C[E]=0)}y&&R.setState({currentStyle:m,currentVelocity:f,lastIdealStyle:S,lastIdealVelocity:C})},this.startAnimationIfNecessary=function(){R.animationID=O.default(function(_){var y=R.props.style;if(F.default(R.state.currentStyle,y,R.state.currentVelocity)){R.wasAnimating&&R.props.onRest&&R.props.onRest(),R.animationID=null,R.wasAnimating=!1,R.accumulatedTime=0;return}R.wasAnimating=!0;var h=_||M.default(),m=h-R.prevTime;if(R.prevTime=h,R.accumulatedTime=R.accumulatedTime+m,R.accumulatedTime>I*10&&(R.accumulatedTime=0),R.accumulatedTime===0){R.animationID=null,R.startAnimationIfNecessary();return}var f=(R.accumulatedTime-Math.floor(R.accumulatedTime/I)*I)/I,S=Math.floor(R.accumulatedTime/I),C={},E={},x={},q={};for(var Y in y)if(Object.prototype.hasOwnProperty.call(y,Y)){var B=y[Y];if(typeof B=="number")x[Y]=B,q[Y]=0,C[Y]=B,E[Y]=0;else{for(var k=R.state.lastIdealStyle[Y],K=R.state.lastIdealVelocity[Y],Q=0;Q<S;Q++){var G=g.default(I/1e3,k,K,B.val,B.stiffness,B.damping,B.precision);k=G[0],K=G[1]}var te=g.default(I/1e3,k,K,B.val,B.stiffness,B.damping,B.precision),Z=te[0],ee=te[1];x[Y]=k+(Z-k)*f,q[Y]=K+(ee-K)*f,C[Y]=k,E[Y]=K}}R.animationID=null,R.accumulatedTime-=S*I,R.setState({currentStyle:x,currentVelocity:q,lastIdealStyle:C,lastIdealVelocity:E}),R.unreadPropStyle=null,R.startAnimationIfNecessary()})},this.state=this.defaultState()}return T.prototype.defaultState=function(){var R=this.props,_=R.defaultStyle,y=R.style,h=_||d.default(y),m=u.default(h);return{currentStyle:h,currentVelocity:m,lastIdealStyle:h,lastIdealVelocity:m}},T.prototype.componentDidMount=function(){this.prevTime=M.default(),this.startAnimationIfNecessary()},T.prototype.componentWillReceiveProps=function(R){this.unreadPropStyle!=null&&this.clearUnreadPropStyle(this.unreadPropStyle),this.unreadPropStyle=R.style,this.animationID==null&&(this.prevTime=M.default(),this.startAnimationIfNecessary())},T.prototype.componentWillUnmount=function(){this.animationID!=null&&(O.default.cancel(this.animationID),this.animationID=null)},T.prototype.render=function(){var R=this.props.children(this.state.currentStyle);return R&&j.default.Children.only(R)},T}(j.default.Component);n.default=w,i.exports=n.default}(Dt,Dt.exports)),Dt.exports}var Ct={exports:{}},Mr;function Kn(){return Mr||(Mr=1,function(i,n){n.__esModule=!0;var e=Object.assign||function(T){for(var D=1;D<arguments.length;D++){var R=arguments[D];for(var _ in R)Object.prototype.hasOwnProperty.call(R,_)&&(T[_]=R[_])}return T},t=function(){function T(D,R){for(var _=0;_<R.length;_++){var y=R[_];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(D,y.key,y)}}return function(D,R,_){return R&&T(D.prototype,R),_&&T(D,_),D}}();function a(T){return T&&T.__esModule?T:{default:T}}function r(T,D){if(!(T instanceof D))throw new TypeError("Cannot call a class as a function")}function o(T,D){if(typeof D!="function"&&D!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof D);T.prototype=Object.create(D&&D.prototype,{constructor:{value:T,enumerable:!1,writable:!0,configurable:!0}}),D&&(Object.setPrototypeOf?Object.setPrototypeOf(T,D):T.__proto__=D)}var s=pa(),u=a(s),c=It(),d=a(c),p=ha(),g=a(p),v=ma(),M=a(v),V=va(),O=a(V),b=ga(),F=a(b),P=X,j=a(P),$=yt(),U=a($),I=1e3/60;function w(T,D,R){for(var _=0;_<T.length;_++)if(!F.default(T[_],D[_],R[_]))return!1;return!0}var L=function(T){o(D,T),t(D,null,[{key:"propTypes",value:{defaultStyles:U.default.arrayOf(U.default.objectOf(U.default.number)),styles:U.default.func.isRequired,children:U.default.func.isRequired},enumerable:!0}]);function D(R){var _=this;r(this,D),T.call(this,R),this.animationID=null,this.prevTime=0,this.accumulatedTime=0,this.unreadPropStyles=null,this.clearUnreadPropStyle=function(y){for(var h=_.state,m=h.currentStyles,f=h.currentVelocities,S=h.lastIdealStyles,C=h.lastIdealVelocities,E=!1,x=0;x<y.length;x++){var q=y[x],Y=!1;for(var B in q)if(Object.prototype.hasOwnProperty.call(q,B)){var k=q[B];typeof k=="number"&&(Y||(Y=!0,E=!0,m[x]=e({},m[x]),f[x]=e({},f[x]),S[x]=e({},S[x]),C[x]=e({},C[x])),m[x][B]=k,f[x][B]=0,S[x][B]=k,C[x][B]=0)}}E&&_.setState({currentStyles:m,currentVelocities:f,lastIdealStyles:S,lastIdealVelocities:C})},this.startAnimationIfNecessary=function(){_.animationID=O.default(function(y){var h=_.props.styles(_.state.lastIdealStyles);if(w(_.state.currentStyles,h,_.state.currentVelocities)){_.animationID=null,_.accumulatedTime=0;return}var m=y||M.default(),f=m-_.prevTime;if(_.prevTime=m,_.accumulatedTime=_.accumulatedTime+f,_.accumulatedTime>I*10&&(_.accumulatedTime=0),_.accumulatedTime===0){_.animationID=null,_.startAnimationIfNecessary();return}for(var S=(_.accumulatedTime-Math.floor(_.accumulatedTime/I)*I)/I,C=Math.floor(_.accumulatedTime/I),E=[],x=[],q=[],Y=[],B=0;B<h.length;B++){var k=h[B],K={},Q={},G={},te={};for(var Z in k)if(Object.prototype.hasOwnProperty.call(k,Z)){var ee=k[Z];if(typeof ee=="number")K[Z]=ee,Q[Z]=0,G[Z]=ee,te[Z]=0;else{for(var ie=_.state.lastIdealStyles[B][Z],ae=_.state.lastIdealVelocities[B][Z],ue=0;ue<C;ue++){var ce=g.default(I/1e3,ie,ae,ee.val,ee.stiffness,ee.damping,ee.precision);ie=ce[0],ae=ce[1]}var de=g.default(I/1e3,ie,ae,ee.val,ee.stiffness,ee.damping,ee.precision),re=de[0],pe=de[1];K[Z]=ie+(re-ie)*S,Q[Z]=ae+(pe-ae)*S,G[Z]=ie,te[Z]=ae}}q[B]=K,Y[B]=Q,E[B]=G,x[B]=te}_.animationID=null,_.accumulatedTime-=C*I,_.setState({currentStyles:q,currentVelocities:Y,lastIdealStyles:E,lastIdealVelocities:x}),_.unreadPropStyles=null,_.startAnimationIfNecessary()})},this.state=this.defaultState()}return D.prototype.defaultState=function(){var _=this.props,y=_.defaultStyles,h=_.styles,m=y||h().map(d.default),f=m.map(function(S){return u.default(S)});return{currentStyles:m,currentVelocities:f,lastIdealStyles:m,lastIdealVelocities:f}},D.prototype.componentDidMount=function(){this.prevTime=M.default(),this.startAnimationIfNecessary()},D.prototype.componentWillReceiveProps=function(_){this.unreadPropStyles!=null&&this.clearUnreadPropStyle(this.unreadPropStyles),this.unreadPropStyles=_.styles(this.state.lastIdealStyles),this.animationID==null&&(this.prevTime=M.default(),this.startAnimationIfNecessary())},D.prototype.componentWillUnmount=function(){this.animationID!=null&&(O.default.cancel(this.animationID),this.animationID=null)},D.prototype.render=function(){var _=this.props.children(this.state.currentStyles);return _&&j.default.Children.only(_)},D}(j.default.Component);n.default=L,i.exports=n.default}(Ct,Ct.exports)),Ct.exports}var Vt={exports:{}},Tt={exports:{}},Ir;function Gn(){return Ir||(Ir=1,function(i,n){n.__esModule=!0,n.default=e;function e(t,a,r){for(var o={},s=0;s<t.length;s++)o[t[s].key]=s;for(var u={},s=0;s<a.length;s++)u[a[s].key]=s;for(var c=[],s=0;s<a.length;s++)c[s]=a[s];for(var s=0;s<t.length;s++)if(!Object.prototype.hasOwnProperty.call(u,t[s].key)){var d=r(s,t[s]);d!=null&&c.push(d)}return c.sort(function(p,g){var v=u[p.key],M=u[g.key],V=o[p.key],O=o[g.key];if(v!=null&&M!=null)return u[p.key]-u[g.key];if(V!=null&&O!=null)return o[p.key]-o[g.key];if(v!=null){for(var b=0;b<a.length;b++){var F=a[b].key;if(Object.prototype.hasOwnProperty.call(o,F)){if(v<u[F]&&O>o[F])return-1;if(v>u[F]&&O<o[F])return 1}}return 1}for(var b=0;b<a.length;b++){var F=a[b].key;if(Object.prototype.hasOwnProperty.call(o,F)){if(M<u[F]&&V>o[F])return 1;if(M>u[F]&&V<o[F])return-1}}return-1})}i.exports=n.default}(Tt,Tt.exports)),Tt.exports}var Or;function Xn(){return Or||(Or=1,function(i,n){n.__esModule=!0;var e=Object.assign||function(y){for(var h=1;h<arguments.length;h++){var m=arguments[h];for(var f in m)Object.prototype.hasOwnProperty.call(m,f)&&(y[f]=m[f])}return y},t=function(){function y(h,m){for(var f=0;f<m.length;f++){var S=m[f];S.enumerable=S.enumerable||!1,S.configurable=!0,"value"in S&&(S.writable=!0),Object.defineProperty(h,S.key,S)}}return function(h,m,f){return m&&y(h.prototype,m),f&&y(h,f),h}}();function a(y){return y&&y.__esModule?y:{default:y}}function r(y,h){if(!(y instanceof h))throw new TypeError("Cannot call a class as a function")}function o(y,h){if(typeof h!="function"&&h!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof h);y.prototype=Object.create(h&&h.prototype,{constructor:{value:y,enumerable:!1,writable:!0,configurable:!0}}),h&&(Object.setPrototypeOf?Object.setPrototypeOf(y,h):y.__proto__=h)}var s=pa(),u=a(s),c=It(),d=a(c),p=ha(),g=a(p),v=Gn(),M=a(v),V=ma(),O=a(V),b=va(),F=a(b),P=ga(),j=a(P),$=X,U=a($),I=yt(),w=a(I),L=1e3/60;function T(y,h,m){var f=h;return f==null?y.map(function(S,C){return{key:S.key,data:S.data,style:m[C]}}):y.map(function(S,C){for(var E=0;E<f.length;E++)if(f[E].key===S.key)return{key:f[E].key,data:f[E].data,style:m[C]};return{key:S.key,data:S.data,style:m[C]}})}function D(y,h,m,f){if(f.length!==h.length)return!1;for(var S=0;S<f.length;S++)if(f[S].key!==h[S].key)return!1;for(var S=0;S<f.length;S++)if(!j.default(y[S],h[S].style,m[S]))return!1;return!0}function R(y,h,m,f,S,C,E,x,q){for(var Y=M.default(f,S,function(ue,ce){var de=h(ce);return de==null?(m({key:ce.key,data:ce.data}),null):j.default(C[ue],de,E[ue])?(m({key:ce.key,data:ce.data}),null):{key:ce.key,data:ce.data,style:de}}),B=[],k=[],K=[],Q=[],G=0;G<Y.length;G++){for(var te=Y[G],Z=null,ee=0;ee<f.length;ee++)if(f[ee].key===te.key){Z=ee;break}if(Z==null){var ie=y(te);B[G]=ie,K[G]=ie;var ae=u.default(te.style);k[G]=ae,Q[G]=ae}else B[G]=C[Z],K[G]=x[Z],k[G]=E[Z],Q[G]=q[Z]}return[Y,B,k,K,Q]}var _=function(y){o(h,y),t(h,null,[{key:"propTypes",value:{defaultStyles:w.default.arrayOf(w.default.shape({key:w.default.string.isRequired,data:w.default.any,style:w.default.objectOf(w.default.number).isRequired})),styles:w.default.oneOfType([w.default.func,w.default.arrayOf(w.default.shape({key:w.default.string.isRequired,data:w.default.any,style:w.default.objectOf(w.default.oneOfType([w.default.number,w.default.object])).isRequired}))]).isRequired,children:w.default.func.isRequired,willEnter:w.default.func,willLeave:w.default.func,didLeave:w.default.func},enumerable:!0},{key:"defaultProps",value:{willEnter:function(f){return d.default(f.style)},willLeave:function(){return null},didLeave:function(){}},enumerable:!0}]);function h(m){var f=this;r(this,h),y.call(this,m),this.unmounting=!1,this.animationID=null,this.prevTime=0,this.accumulatedTime=0,this.unreadPropStyles=null,this.clearUnreadPropStyle=function(S){for(var C=R(f.props.willEnter,f.props.willLeave,f.props.didLeave,f.state.mergedPropsStyles,S,f.state.currentStyles,f.state.currentVelocities,f.state.lastIdealStyles,f.state.lastIdealVelocities),E=C[0],x=C[1],q=C[2],Y=C[3],B=C[4],k=0;k<S.length;k++){var K=S[k].style,Q=!1;for(var G in K)if(Object.prototype.hasOwnProperty.call(K,G)){var te=K[G];typeof te=="number"&&(Q||(Q=!0,x[k]=e({},x[k]),q[k]=e({},q[k]),Y[k]=e({},Y[k]),B[k]=e({},B[k]),E[k]={key:E[k].key,data:E[k].data,style:e({},E[k].style)}),x[k][G]=te,q[k][G]=0,Y[k][G]=te,B[k][G]=0,E[k].style[G]=te)}}f.setState({currentStyles:x,currentVelocities:q,mergedPropsStyles:E,lastIdealStyles:Y,lastIdealVelocities:B})},this.startAnimationIfNecessary=function(){f.unmounting||(f.animationID=F.default(function(S){if(!f.unmounting){var C=f.props.styles,E=typeof C=="function"?C(T(f.state.mergedPropsStyles,f.unreadPropStyles,f.state.lastIdealStyles)):C;if(D(f.state.currentStyles,E,f.state.currentVelocities,f.state.mergedPropsStyles)){f.animationID=null,f.accumulatedTime=0;return}var x=S||O.default(),q=x-f.prevTime;if(f.prevTime=x,f.accumulatedTime=f.accumulatedTime+q,f.accumulatedTime>L*10&&(f.accumulatedTime=0),f.accumulatedTime===0){f.animationID=null,f.startAnimationIfNecessary();return}for(var Y=(f.accumulatedTime-Math.floor(f.accumulatedTime/L)*L)/L,B=Math.floor(f.accumulatedTime/L),k=R(f.props.willEnter,f.props.willLeave,f.props.didLeave,f.state.mergedPropsStyles,E,f.state.currentStyles,f.state.currentVelocities,f.state.lastIdealStyles,f.state.lastIdealVelocities),K=k[0],Q=k[1],G=k[2],te=k[3],Z=k[4],ee=0;ee<K.length;ee++){var ie=K[ee].style,ae={},ue={},ce={},de={};for(var re in ie)if(Object.prototype.hasOwnProperty.call(ie,re)){var pe=ie[re];if(typeof pe=="number")ae[re]=pe,ue[re]=0,ce[re]=pe,de[re]=0;else{for(var be=te[ee][re],Ee=Z[ee][re],Yt=0;Yt<B;Yt++){var Ke=g.default(L/1e3,be,Ee,pe.val,pe.stiffness,pe.damping,pe.precision);be=Ke[0],Ee=Ke[1]}var we=g.default(L/1e3,be,Ee,pe.val,pe.stiffness,pe.damping,pe.precision),ut=we[0],We=we[1];ae[re]=be+(ut-be)*Y,ue[re]=Ee+(We-Ee)*Y,ce[re]=be,de[re]=Ee}}te[ee]=ce,Z[ee]=de,Q[ee]=ae,G[ee]=ue}f.animationID=null,f.accumulatedTime-=B*L,f.setState({currentStyles:Q,currentVelocities:G,lastIdealStyles:te,lastIdealVelocities:Z,mergedPropsStyles:K}),f.unreadPropStyles=null,f.startAnimationIfNecessary()}}))},this.state=this.defaultState()}return h.prototype.defaultState=function(){var f=this.props,S=f.defaultStyles,C=f.styles,E=f.willEnter,x=f.willLeave,q=f.didLeave,Y=typeof C=="function"?C(S):C,B=void 0;S==null?B=Y:B=S.map(function(ae){for(var ue=0;ue<Y.length;ue++)if(Y[ue].key===ae.key)return Y[ue];return ae});var k=S==null?Y.map(function(ae){return d.default(ae.style)}):S.map(function(ae){return d.default(ae.style)}),K=S==null?Y.map(function(ae){return u.default(ae.style)}):S.map(function(ae){return u.default(ae.style)}),Q=R(E,x,q,B,Y,k,K,k,K),G=Q[0],te=Q[1],Z=Q[2],ee=Q[3],ie=Q[4];return{currentStyles:te,currentVelocities:Z,lastIdealStyles:ee,lastIdealVelocities:ie,mergedPropsStyles:G}},h.prototype.componentDidMount=function(){this.prevTime=O.default(),this.startAnimationIfNecessary()},h.prototype.componentWillReceiveProps=function(f){this.unreadPropStyles&&this.clearUnreadPropStyle(this.unreadPropStyles);var S=f.styles;typeof S=="function"?this.unreadPropStyles=S(T(this.state.mergedPropsStyles,this.unreadPropStyles,this.state.lastIdealStyles)):this.unreadPropStyles=S,this.animationID==null&&(this.prevTime=O.default(),this.startAnimationIfNecessary())},h.prototype.componentWillUnmount=function(){this.unmounting=!0,this.animationID!=null&&(F.default.cancel(this.animationID),this.animationID=null)},h.prototype.render=function(){var f=T(this.state.mergedPropsStyles,this.unreadPropStyles,this.state.currentStyles),S=this.props.children(f);return S&&U.default.Children.only(S)},h}(U.default.Component);n.default=_,i.exports=n.default}(Vt,Vt.exports)),Vt.exports}var bt={exports:{}},Et={exports:{}},wr;function Cr(){return wr||(wr=1,function(i,n){n.__esModule=!0,n.default={noWobble:{stiffness:170,damping:26},gentle:{stiffness:120,damping:14},wobbly:{stiffness:180,damping:12},stiff:{stiffness:210,damping:20}},i.exports=n.default}(Et,Et.exports)),Et.exports}var Vr;function Qn(){return Vr||(Vr=1,function(i,n){n.__esModule=!0;var e=Object.assign||function(u){for(var c=1;c<arguments.length;c++){var d=arguments[c];for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(u[p]=d[p])}return u};n.default=s;function t(u){return u&&u.__esModule?u:{default:u}}var a=Cr(),r=t(a),o=e({},r.default.noWobble,{precision:.01});function s(u,c){return e({},o,c,{val:u})}i.exports=n.default}(bt,bt.exports)),bt.exports}var Ft={exports:{}},Tr;function Zn(){return Tr||(Tr=1,function(i,n){n.__esModule=!0,n.default=e;function e(){}i.exports=n.default}(Ft,Ft.exports)),Ft.exports}var br;function Jn(){if(br)return ye;br=1,ye.__esModule=!0;function i(u){return u&&u.__esModule?u.default:u}var n=zn();ye.Motion=i(n);var e=Kn();ye.StaggeredMotion=i(e);var t=Xn();ye.TransitionMotion=i(t);var a=Qn();ye.spring=i(a);var r=Cr();ye.presets=i(r);var o=It();ye.stripStyle=i(o);var s=Zn();return ye.reorderKeys=i(s),ye}var At={exports:{}},Er;function ei(){return Er||(Er=1,function(i,n){Object.defineProperty(n,"__esModule",{value:!0});function e(I){return typeof I=="object"&&!("toString"in I)?Object.prototype.toString.call(I).slice(8,-1):I}var t=typeof process=="object"&&!0;function a(I,w){if(!I)throw t?new Error("Invariant failed"):new Error(w())}n.invariant=a;var r=Object.prototype.hasOwnProperty,o=Array.prototype.splice,s=Object.prototype.toString;function u(I){return s.call(I).slice(8,-1)}var c=Object.assign||function(I,w){return d(w).forEach(function(L){r.call(w,L)&&(I[L]=w[L])}),I},d=typeof Object.getOwnPropertySymbols=="function"?function(I){return Object.keys(I).concat(Object.getOwnPropertySymbols(I))}:function(I){return Object.keys(I)};function p(I){return Array.isArray(I)?c(I.constructor(I.length),I):u(I)==="Map"?new Map(I):u(I)==="Set"?new Set(I):I&&typeof I=="object"?c(Object.create(Object.getPrototypeOf(I)),I):I}var g=function(){function I(){this.commands=c({},v),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(w,L){return w===L},this.update.newContext=function(){return new I().update}}return Object.defineProperty(I.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(w){this.update.isEquals=w},enumerable:!0,configurable:!0}),I.prototype.extend=function(w,L){this.commands[w]=L},I.prototype.update=function(w,L){var T=this,D=typeof L=="function"?{$apply:L}:L;Array.isArray(w)&&Array.isArray(D)||a(!Array.isArray(D),function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."}),a(typeof D=="object"&&D!==null,function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the "+("following commands: "+Object.keys(T.commands).join(", ")+".")});var R=w;return d(D).forEach(function(_){if(r.call(T.commands,_)){var y=w===R;R=T.commands[_](D[_],R,D,w),y&&T.isEquals(R,w)&&(R=w)}else{var h=u(w)==="Map"?T.update(w.get(_),D[_]):T.update(w[_],D[_]),m=u(R)==="Map"?R.get(_):R[_];(!T.isEquals(h,m)||typeof h>"u"&&!r.call(w,_))&&(R===w&&(R=p(w)),u(R)==="Map"?R.set(_,h):R[_]=h)}}),R},I}();n.Context=g;var v={$push:function(I,w,L){return V(w,L,"$push"),I.length?w.concat(I):w},$unshift:function(I,w,L){return V(w,L,"$unshift"),I.length?I.concat(w):w},$splice:function(I,w,L,T){return b(w,L),I.forEach(function(D){F(D),w===T&&D.length&&(w=p(T)),o.apply(w,D)}),w},$set:function(I,w,L){return j(L),I},$toggle:function(I,w){O(I,"$toggle");var L=I.length?p(w):w;return I.forEach(function(T){L[T]=!w[T]}),L},$unset:function(I,w,L,T){return O(I,"$unset"),I.forEach(function(D){Object.hasOwnProperty.call(w,D)&&(w===T&&(w=p(T)),delete w[D])}),w},$add:function(I,w,L,T){return U(w,"$add"),O(I,"$add"),u(w)==="Map"?I.forEach(function(D){var R=D[0],_=D[1];w===T&&w.get(R)!==_&&(w=p(T)),w.set(R,_)}):I.forEach(function(D){w===T&&!w.has(D)&&(w=p(T)),w.add(D)}),w},$remove:function(I,w,L,T){return U(w,"$remove"),O(I,"$remove"),I.forEach(function(D){w===T&&w.has(D)&&(w=p(T)),w.delete(D)}),w},$merge:function(I,w,L,T){return $(w,I),d(I).forEach(function(D){I[D]!==w[D]&&(w===T&&(w=p(T)),w[D]=I[D])}),w},$apply:function(I,w){return P(I),I(w)}},M=new g;n.isEquals=M.update.isEquals,n.extend=M.extend,n.default=M.update,n.default.default=i.exports=c(n.default,n);function V(I,w,L){a(Array.isArray(I),function(){return"update(): expected target of "+e(L)+" to be an array; got "+e(I)+"."}),O(w[L],L)}function O(I,w){a(Array.isArray(I),function(){return"update(): expected spec of "+e(w)+" to be an array; got "+e(I)+". Did you forget to wrap your parameter in an array?"})}function b(I,w){a(Array.isArray(I),function(){return"Expected $splice target to be an array; got "+e(I)}),F(w.$splice)}function F(I){a(Array.isArray(I),function(){return"update(): expected spec of $splice to be an array of arrays; got "+e(I)+". Did you forget to wrap your parameters in an array?"})}function P(I){a(typeof I=="function",function(){return"update(): expected spec of $apply to be a function; got "+e(I)+"."})}function j(I){a(Object.keys(I).length===1,function(){return"Cannot have more than one key in an object with $set"})}function $(I,w){a(w&&typeof w=="object",function(){return"update(): $merge expects a spec of type 'object'; got "+e(w)}),a(I&&typeof I=="object",function(){return"update(): $merge expects a target of type 'object'; got "+e(I)})}function U(I,w){var L=u(I);a(L==="Map"||L==="Set",function(){return"update(): "+e(w)+" expects a target of type Set or Map; got "+e(L)})}}(At,At.exports)),At.exports}var _a={},Fr;function ti(){return Fr||(Fr=1,function(i){var n=Qe;Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var e=n(Ze()),t=n(Je()),a=n(St()),r=function(){function o(){(0,e.default)(this,o),(0,a.default)(this,"map",new Map),(0,a.default)(this,"_refFns",new Map)}return(0,t.default)(o,[{key:"ref",value:function(u){var c=this,d=this._refFns.get(u);if(d)return d;var p=function g(v){v==null?(c._refFns.delete(u),c.map.delete(u)):(c._refFns.set(u,g),c.map.set(u,v))};return p}}]),o}();i.default=r}(_a)),_a}var Pt={exports:{}},Ar;function ai(){return Ar||(Ar=1,function(i,n){var e=Qe,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(Ze()),r=e(Je()),o=e(vt()),s=e(gt()),u=e(_t()),c=p(X);function d(M){if(typeof WeakMap!="function")return null;var V=new WeakMap,O=new WeakMap;return(d=function(F){return F?O:V})(M)}function p(M,V){if(!V&&M&&M.__esModule)return M;if(M===null||t(M)!="object"&&typeof M!="function")return{default:M};var O=d(V);if(O&&O.has(M))return O.get(M);var b={__proto__:null},F=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var P in M)if(P!=="default"&&Object.prototype.hasOwnProperty.call(M,P)){var j=F?Object.getOwnPropertyDescriptor(M,P):null;j&&(j.get||j.set)?Object.defineProperty(b,P,j):b[P]=M[P]}return b.default=M,O&&O.set(M,b),b}function g(M,V,O){return V=(0,s.default)(V),(0,o.default)(M,v()?Reflect.construct(V,O||[],(0,s.default)(M).constructor):V.apply(M,O))}function v(){try{var M=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(v=function(){return!!M})()}n.default=function(M){(0,u.default)(V,M);function V(){return(0,a.default)(this,V),g(this,V,arguments)}return(0,r.default)(V,[{key:"componentDidUpdate",value:function(){this.props.cb()}},{key:"render",value:function(){return null}}]),V}(c.Component),i.exports=n.default,i.exports.default=n.default}(Pt,Pt.exports)),Pt.exports}var Lt={exports:{}},Nt={exports:{}},Pr;function ri(){return Pr||(Pr=1,function(i,n){var e=Qe,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(Ze()),r=e(Je()),o=e(vt()),s=e(gt()),u=e(mt()),c=e(_t()),d=e(St()),p=v(X);function g(O){if(typeof WeakMap!="function")return null;var b=new WeakMap,F=new WeakMap;return(g=function(j){return j?F:b})(O)}function v(O,b){if(!b&&O&&O.__esModule)return O;if(O===null||t(O)!="object"&&typeof O!="function")return{default:O};var F=g(b);if(F&&F.has(O))return F.get(O);var P={__proto__:null},j=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var $ in O)if($!=="default"&&Object.prototype.hasOwnProperty.call(O,$)){var U=j?Object.getOwnPropertyDescriptor(O,$):null;U&&(U.get||U.set)?Object.defineProperty(P,$,U):P[$]=O[$]}return P.default=O,F&&F.set(O,P),P}function M(O,b,F){return b=(0,s.default)(b),(0,o.default)(O,V()?Reflect.construct(b,F||[],(0,s.default)(O).constructor):b.apply(O,F))}function V(){try{var O=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(V=function(){return!!O})()}n.default=function(O){(0,c.default)(b,O);function b(){var F;(0,a.default)(this,b);for(var P=arguments.length,j=new Array(P),$=0;$<P;$++)j[$]=arguments[$];return F=M(this,b,[].concat(j)),(0,d.default)((0,u.default)(F),"_templateSetter",function(U){F._template=U}),F}return(0,r.default)(b,[{key:"shouldComponentUpdate",value:function(P){return this.props.anySelected!==P.anySelected||this.props.itemSelected!==P.itemSelected||this.props.item!==P.item||this.props.template!==P.template||this.props.commonProps!==P.commonProps}},{key:"getTemplate",value:function(){return this._template}},{key:"render",value:function(){var P=this.props,j=P.item,$=P.itemSelected,U=P.anySelected,I=P.dragHandleProps,w=P.commonProps,L=this.props.template;return p.createElement(L,{ref:this._templateSetter,item:j,itemSelected:$,anySelected:U,dragHandleProps:I,commonProps:w})}}]),b}(p.Component),i.exports=n.default,i.exports.default=n.default}(Nt,Nt.exports)),Nt.exports}var Lr;function ni(){return Lr||(Lr=1,function(i,n){var e=Qe,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(Ze()),r=e(Je()),o=e(vt()),s=e(gt()),u=e(mt()),c=e(_t()),d=e(St()),p=M(X),g=e(ri());function v(b){if(typeof WeakMap!="function")return null;var F=new WeakMap,P=new WeakMap;return(v=function($){return $?P:F})(b)}function M(b,F){if(!F&&b&&b.__esModule)return b;if(b===null||t(b)!="object"&&typeof b!="function")return{default:b};var P=v(F);if(P&&P.has(b))return P.get(b);var j={__proto__:null},$=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var U in b)if(U!=="default"&&Object.prototype.hasOwnProperty.call(b,U)){var I=$?Object.getOwnPropertyDescriptor(b,U):null;I&&(I.get||I.set)?Object.defineProperty(j,U,I):j[U]=b[U]}return j.default=b,P&&P.set(b,j),j}function V(b,F,P){return F=(0,s.default)(F),(0,o.default)(b,O()?Reflect.construct(F,P||[],(0,s.default)(b).constructor):F.apply(b,P))}function O(){try{var b=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(O=function(){return!!b})()}n.default=function(b){(0,c.default)(F,b);function F(){var P;(0,a.default)(this,F);for(var j=arguments.length,$=new Array(j),U=0;U<j;U++)$[U]=arguments[U];return P=V(this,F,[].concat($)),(0,d.default)((0,u.default)(P),"_templateContainer",p.createRef()),(0,d.default)((0,u.default)(P),"_el",p.createRef()),(0,d.default)((0,u.default)(P),"_dragHandleProps",P.props.makeDragHandleProps(function(){return P.props.y})),P}return(0,r.default)(F,[{key:"getDOMNode",value:function(){return this._el.current}},{key:"getTemplate",value:function(){return this._templateContainer.current.getTemplate()}},{key:"shouldComponentUpdate",value:function(j){return this.props.anySelected!==j.anySelected||this.props.itemSelected!==j.itemSelected||this.props.item!==j.item||this.props.template!==j.template||this.props.y!==j.y||this.props.height!==j.height||this.props.zIndex!==j.zIndex||this.props.commonProps!==j.commonProps}},{key:"render",value:function(){var j=this.props,$=j.item,U=j.y,I=j.padding,w=j.itemSelected,L=j.anySelected,T=j.height,D=j.zIndex,R=j.template,_=j.commonProps;return p.createElement("div",{ref:this._el,style:{position:U==null?"relative":"absolute",boxSizing:"border-box",left:"0px",right:"0px",top:U==null?"0px":"".concat(U,"px"),marginBottom:"".concat(I,"px"),height:U==null?"auto":"".concat(L*(T.drag-T.natural)+T.natural,"px"),zIndex:D}},p.createElement(g.default,{ref:this._templateContainer,item:$,template:R,itemSelected:w,anySelected:L,dragHandleProps:this._dragHandleProps,commonProps:_}))}}]),F}(p.Component),i.exports=n.default,i.exports.default=n.default}(Lt,Lt.exports)),Lt.exports}(function(i,n){var e=Qe,t=je;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=e(Ze()),r=e(Je()),o=e(vt()),s=e(gt()),u=e(mt()),c=e(_t()),d=e(St()),p=P(X),g=P(yt()),v=Jn(),M=e(ei()),V=e(ti()),O=e(ai()),b=e(ni());function F(D){if(typeof WeakMap!="function")return null;var R=new WeakMap,_=new WeakMap;return(F=function(h){return h?_:R})(D)}function P(D,R){if(!R&&D&&D.__esModule)return D;if(D===null||t(D)!="object"&&typeof D!="function")return{default:D};var _=F(R);if(_&&_.has(D))return _.get(D);var y={__proto__:null},h=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var m in D)if(m!=="default"&&Object.prototype.hasOwnProperty.call(D,m)){var f=h?Object.getOwnPropertyDescriptor(D,m):null;f&&(f.get||f.set)?Object.defineProperty(y,m,f):y[m]=D[m]}return y.default=D,_&&_.set(D,y),y}function j(D,R){var _=Object.keys(D);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(D);R&&(y=y.filter(function(h){return Object.getOwnPropertyDescriptor(D,h).enumerable})),_.push.apply(_,y)}return _}function $(D){for(var R=1;R<arguments.length;R++){var _=arguments[R]!=null?arguments[R]:{};R%2?j(Object(_),!0).forEach(function(y){(0,d.default)(D,y,_[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(_)):j(Object(_)).forEach(function(y){Object.defineProperty(D,y,Object.getOwnPropertyDescriptor(_,y))})}return D}function U(D,R,_){return R=(0,s.default)(R),(0,o.default)(D,I()?Reflect.construct(R,_||[],(0,s.default)(D).constructor):R.apply(D,_))}function I(){try{var D=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(I=function(){return!!D})()}var w={natural:200,drag:30};function L(D,R,_){return Math.round(R-R/_*D)}var T=n.default=function(D){(0,c.default)(R,D);function R(){var _;(0,a.default)(this,R);for(var y=arguments.length,h=new Array(y),m=0;m<y;m++)h[m]=arguments[m];return _=U(this,R,[].concat(h)),(0,d.default)((0,u.default)(_),"_itemRefs",new V.default),(0,d.default)((0,u.default)(_),"_listRef",p.createRef()),(0,d.default)((0,u.default)(_),"state",{useAbsolutePositioning:!1,dragging:!1,lastDrag:null,heights:null}),(0,d.default)((0,u.default)(_),"_handleTouchMove",function(f){f.preventDefault(),_._handleMouseMove(f.touches[0])}),(0,d.default)((0,u.default)(_),"_handleMouseMove",function(f){var S=f.pageY,C=f.clientY,E=_.props.list,x=_.props.autoScrollMaxSpeed,q=_.props.autoScrollRegionSize,Y=_.state,B=Y.dragging,k=Y.lastDrag;if(!(!B||!k)){var K=_._getContainer(),Q=_._getDragVisualIndex(),G=_._getKeyFn();if(clearInterval(_._autoScrollerTimer),Q!==0&&Q!==E.length-1){var te=0,Z=K&&K!==document.body&&K.getBoundingClientRect?K.getBoundingClientRect():{top:0,bottom:1/0},ee=Math.max(0,Z.top),ie=C-ee;if(ie>0&&ie<q)te=-1*L(ie,x,q);else{var ae=Math.min(window.innerHeight,Z.bottom),ue=ae-C;ue>0&&ue<q&&(te=L(ue,x,q))}te!==0&&(_._scrollContainer(te),_._autoScrollerTimer=setTimeout(function(){_._handleMouseMove({pageY:S+(K===document.body?te:0),clientY:C})},16))}var ce=!K||K===document.body?0:K.scrollTop,de=S-k.mouseOffset+ce;if(_.props.constrainDrag){var re=_._getVisualListDuringDrag();de=Math.max(de,_._getDistanceFromTopDuringDrag(k,G(re[0]),re)),de=Math.min(de,_._getDistanceFromTopDuringDrag(k,G(re[re.length-1]),re))}_.setState({lastDrag:$($({},k),{},{mouseY:de})})}}),(0,d.default)((0,u.default)(_),"_handleMouseUp",function(){clearInterval(_._autoScrollerTimer),window.removeEventListener("mouseup",_._handleMouseUp),window.removeEventListener("touchend",_._handleMouseUp),window.removeEventListener("touchmove",_._handleTouchMove),window.removeEventListener("mousemove",_._handleMouseMove),document.documentElement&&(document.documentElement.style.cursor=""),_._lastScrollDelta=0;var f=_.props,S=f.list,C=f.onMoveEnd,E=f.onDragEnd,x=_.state,q=x.dragging,Y=x.lastDrag;if(q&&Y&&C){var B=_._getDragListIndex(),k=_._getDragVisualIndex();if(E&&E(S[B]),B!==k){var K=_._getVisualListDuringDrag();C(K,S[B],B,k)}_.setState({dragging:!1})}}),(0,d.default)((0,u.default)(_),"_lastScrollDelta",0),_}return(0,r.default)(R,[{key:"getItemInstance",value:function(y){var h=this._itemRefs.map.get(y);if(!h)throw new Error("key not found");return h.getTemplate()}},{key:"componentWillUnmount",value:function(){this._handleMouseUp()}},{key:"_handleTouchStart",value:function(y,h,m){m.stopPropagation(),this._handleStartDrag(y,h,m.touches[0].pageY)}},{key:"_handleMouseDown",value:function(y,h,m){m.preventDefault(),this._handleStartDrag(y,h,m.pageY)}},{key:"_handleStartDrag",value:function(y,h,m){var f=this;document.documentElement&&(document.documentElement.style.cursor="move"),window.addEventListener("mouseup",this._handleMouseUp),window.addEventListener("touchend",this._handleMouseUp),window.addEventListener("touchmove",this._handleTouchMove),window.addEventListener("mousemove",this._handleMouseMove);var S=this._getKeyFn();if(this.props.onDragStart){var C=this.props.list,E=C[R._getIndexOfItemWithKey(S,C,y)];this.props.onDragStart(E)}{var x=this._listRef.current;if(!x)throw new Error("Should not happen");x.contains&&document.activeElement&&x.contains(document.activeElement)&&document.activeElement instanceof HTMLElement&&document.activeElement.blur()}var q=null;if(this.state.heights==null){var Y=Object.create(null);this.props.list.forEach(function(k){var K=S(k),Q=f._itemRefs.map.get(K),G=Q?Q.getDOMNode().firstElementChild:null,te=Q?Q.getTemplate():null,Z=G instanceof HTMLElement?G.offsetHeight:w.natural,ee=te&&typeof te.getDragHeight=="function"&&te.getDragHeight()||Z;Y[K]={natural:Z,drag:ee}}),q=Y}var B=function(){var K=R._getIndexOfItemWithKey(S,f.props.list,y),Q=h==null?f._getDistance(0,K,!1):h,G=f._getContainer(),te=!G||G===document.body?0:G.scrollTop;f.setState({useAbsolutePositioning:!0,dragging:!0,lastDrag:{itemKey:y,startY:Q,mouseY:Q,mouseOffset:m-Q+te}})};q?this.setState({heights:q},B):B()}},{key:"_scrollContainer",value:function(y){var h=this._getContainer();h&&(window.scrollBy&&h===document.body?window.scrollBy(0,y):h.scrollTop+=y)}},{key:"_adjustScrollAtEnd",value:function(y){var h=Math.round(y-this._lastScrollDelta);this._scrollContainer(h),this._lastScrollDelta+=h}},{key:"_getDragListIndex",value:function(){var y=this.props.list,h=this.state.lastDrag;if(!h)throw new Error("No drag happened");var m=this._getKeyFn();return R._getIndexOfItemWithKey(m,y,h.itemKey)}},{key:"_getDragVisualIndex",value:function(){var y=this.props.list,h=this.props.padding,m=this.state,f=m.dragging,S=m.lastDrag;if(!f||!S)throw new Error("Should not happen");var C=this._getDragListIndex(),E=S.mouseY,x=S.startY,q=E-x,Y=q>0?1:q<0?-1:0,B=C;if(Y!==0)for(var k=this._getKeyFn(),K=Math.abs(q),Q=C+Y;Q<y.length&&Q>=0;Q+=Y){var G=this._getItemHeight(k(y[Q])).drag;if(K<G/2+h)break;K-=G+h,B=Q}return B}},{key:"_getVisualListDuringDrag",value:function(){var y=this.props.list,h=this.state,m=h.dragging,f=h.lastDrag;if(!m||!f)throw new Error("Should not happen: _getVisualListDuringDrag called outside of drag");var S=this._getDragListIndex(),C=this._getDragVisualIndex();return(0,M.default)(y,{$splice:[[S,1],[C,0,y[S]]]})}},{key:"_getItemHeight",value:function(y){return this.state.heights!=null&&y in this.state.heights?this.state.heights[y]:w}},{key:"_getDistance",value:function(y,h,m){var f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:this.props.list;if(h<y)return-this._getDistance(h,y,m,f);for(var S=this.props.padding,C=this._getKeyFn(),E=0,x=y;x<h;x++){var q=this._getItemHeight(C(f[x]));E+=(m?q.drag:q.natural)+S}return E}},{key:"_getDistanceFromTopDuringDrag",value:function(y,h,m){var f=this._getKeyFn(),S=R._getIndexOfItemWithKey(f,m,h),C=this._getDragListIndex(),E=R._getIndexOfItemWithKey(f,m,y.itemKey),x=0;if(E<C){var q=this._getItemHeight(y.itemKey),Y=this._getItemHeight(f(m[C]));x=q.drag-Y.drag}return y.startY+x+this._getDistance(C,S,!0,m)}},{key:"_getContainer",value:function(){var y=this.props.container;return y?y():null}},{key:"_getKeyFn",value:function(){return R._getKeyFn(this.props.itemKey)}},{key:"render",value:function(){var y=this,h=this.props.padding,m=this.props,f=m.list,S=m.springConfig,C=m.container,E=m.template,x=m.unsetZIndex,q=m.commonProps,Y=this.state,B=Y.dragging,k=Y.lastDrag,K=Y.useAbsolutePositioning,Q=this._getKeyFn(),G=(0,v.spring)(B?1:0,S),te=B?this._getVisualListDuringDrag():f,Z=f.map(function(ce,de){var re=Q(ce),pe=B&&k&&k.itemKey===re?{itemSelected:(0,v.spring)(1,S),y:k.mouseY}:{itemSelected:(0,v.spring)(0,S),y:(K?v.spring:function(Ke){return Ke})(B&&k?y._getDistanceFromTopDuringDrag(k,re,te):y._getDistance(0,de,!1),S)},be=$({anySelected:G},pe),Ee=function(we){return{onMouseDown:function(We){return y._handleMouseDown(re,we(),We)},onTouchStart:function(We){return y._handleTouchStart(re,we(),We)}}},Yt=y._getItemHeight(re);return p.createElement(v.Motion,{style:be,key:re,children:function(we){var ut=we.itemSelected,We=we.anySelected,xo=we.y;return p.createElement(b.default,{ref:y._itemRefs.ref(re),y:K?xo:void 0,template:E,padding:h,item:ce,itemSelected:ut,anySelected:We,height:Yt,zIndex:x&&!K?"auto":k&&k.itemKey===re?f.length:de,makeDragHandleProps:Ee,commonProps:q})}})}),ee=0;if(!B&&k&&K){var ie=this._getDragListIndex();ee=(0,v.spring)(this._getDistance(0,ie,!1)-k.mouseY,S)}var ae=0,ue=0;return f.length&&(ue=h,K&&(ae=this._getDistance(0,f.length,!1)-h)),p.createElement("div",{style:{position:"relative"},ref:this._listRef},p.createElement(v.Motion,{style:{adjustScroll:ee,anySelected:G},onRest:function(){B||y.setState({heights:null,useAbsolutePositioning:!1})},children:function(de){var re=de.adjustScroll;return p.createElement("div",{style:{display:K?"block":"none",height:"".concat(ae,"px"),marginBottom:"".concat(ue,"px")}},C&&p.createElement(O.default,{cb:function(){!B&&k&&K&&y._adjustScrollAtEnd(re)}}))}}),Z)}}],[{key:"getDerivedStateFromProps",value:function(y,h){var m=y.list,f=h.lastDrag;if(f){var S=R._getKeyFn(y.itemKey);try{R._getIndexOfItemWithKey(S,m,f.itemKey)}catch{return{dragging:!1,lastDrag:null}}}return null}},{key:"_getIndexOfItemWithKey",value:function(y,h,m){for(var f=0,S=h.length;f<S;f++)if(y(h[f])===m)return f;throw new Error("Failed to find drag index")}},{key:"_getKeyFn",value:function(y){return typeof y=="function"?y:function(h){return h[y]}}}]),R}(p.Component);(0,d.default)(T,"propTypes",{itemKey:g.oneOfType([g.string,g.func]).isRequired,template:g.func,list:g.array.isRequired,onMoveEnd:g.func,container:g.func,springConfig:g.object,constrainDrag:g.bool,padding:g.number,unsetZIndex:g.bool,autoScrollMaxSpeed:g.number.isRequired,autoScrollRegionSize:g.number.isRequired,commonProps:g.object}),(0,d.default)(T,"defaultProps",{springConfig:{stiffness:300,damping:50},padding:10,unsetZIndex:!1,constrainDrag:!1,autoScrollMaxSpeed:15,autoScrollRegionSize:30}),i.exports=n.default,i.exports.default=n.default})(Jt,Jt.exports);var ii=Jt.exports;const Nr=Pa(ii);function oi(i){return Number.isNaN(i.startColumn)||Number.isNaN(i.endColumn)||Number.isNaN(i.startRow)||Number.isNaN(i.endRow)}const si=["#FFFFFF","#FEE7E7","#FEF0E6","#EFFBD0","#E4F4FE","#E8ECFD","#F1EAFA","#FDE8F3","#E5E5E5","#FDCECE","#FDC49B","#DEF6A2","#9FDAFF","#D0D9FB","#E3D5F6","#FBD0E8","#656565","#FE4B4B","#FF8C51","#8BBB11","#0B9EFB","#3A60F7","#9E6DE3","#F248A6"],li=i=>{const{value:n,onChange:e,disabled:t}=i,[a,r]=X.useState(!1);return N.jsx(J.Select,{disabled:t,open:a,onDropdownVisibleChange:r,dropdownStyle:{width:112},className:me.dataValidationFormulaColorSelect,value:n,onChange:e,labelRender:o=>N.jsx("div",{className:me.dataValidationFormulaColorItem,style:{background:o.value}}),dropdownRender:()=>N.jsx("div",{className:me.dataValidationFormulaColorSelectPanel,children:si.map(o=>N.jsx("div",{onClick:()=>{e(o),r(!1)},className:me.dataValidationFormulaColorItem,style:{background:o}},o))})})},jr=i=>{const{item:n,dragHandleProps:e,commonProps:t}=i,{onMouseDown:a,onTouchStart:r}=e,{onItemChange:o,onItemDelete:s}=t;return N.jsxs("div",{className:me.dataValidationFormulaListItem,children:[n.isRef?null:N.jsx("div",{className:me.dataValidationFormulaListItemDrag,onTouchStart:u=>{u.preventDefault(),r(u)},onMouseDown:u=>{a(u)},children:N.jsx(Cn,{})}),N.jsx(li,{value:n.color,onChange:u=>{o(n.id,n.label,u)}}),N.jsx(J.Input,{disabled:n.isRef,value:n.label,onChange:u=>{o(n.id,u,n.color)}}),n.isRef?null:N.jsx("div",{className:me.dataValidationFormulaListItemIcon,children:N.jsx(Ha,{onClick:()=>s(n.id)})})]})};function ui(i){const{value:n,onChange:e=()=>{},unitId:t,subUnitId:a,validResult:r,showError:o}=i,{formula1:s="",formula2:u=""}=n||{},c=X.useRef(null),[d,p]=X.useState(()=>le.isReferenceString(s)?"1":"0"),[g,v]=X.useState(d==="1"?s:""),M=ne.useDependency(l.LocaleService),V=ne.useDependency(l.IUniverInstanceService),O=V.getCurrentUniverSheetInstance(),b=O.getActiveSheet(),[F,P]=X.useState(()=>u.split(",")),j=o?r==null?void 0:r.formula1:"",$=oe.useEvent(e),[U,I]=X.useState(()=>{const h=d!=="1"?Me(s):[],m=u.split(",");return h.map((f,S)=>({label:f,color:m[S]||Le,isRef:!1,id:l.Tools.generateRandomId(4)}))}),w=(h,m,f)=>{const S=U.find(C=>C.id===h);S&&(S.label=m,S.color=f,I([...U]))},L=h=>{const m=U.findIndex(f=>f.id===h);m!==-1&&(U.splice(m,1),I([...U]))},T=X.useMemo(()=>Xe(le.deserializeRangeWithSheet(g),V,O.getUnitId(),b.getSheetId()),[g,V,O,b]),D=u.split(","),R=X.useMemo(()=>T.map((h,m)=>({label:h,color:D[m]||Le,id:`${m}`,isRef:!0})),[D,T]),_=(h,m,f)=>{const S=[...F];S[+h]=f,P(S),$({formula1:s,formula2:S.join(",")})},y=()=>{I([...U,{label:"",color:Le,isRef:!1,id:l.Tools.generateRandomId(4)}])};return X.useEffect(()=>{const h=new Set,m=[];U.map(f=>({labelList:f.label.split(","),item:f})).forEach(({item:f,labelList:S})=>{S.forEach(C=>{h.has(C)||(h.add(C),m.push({label:C,color:f.color}))})}),$({formula1:Xa(m.map(f=>f.label)),formula2:m.map(f=>f.color===Le?"":f.color).join(",")})},[U,$]),N.jsxs(N.Fragment,{children:[N.jsx(J.FormLayout,{label:M.t("dataValidation.list.options"),children:N.jsxs(J.RadioGroup,{value:d,onChange:h=>p(h),children:[N.jsx(J.Radio,{value:"0",children:M.t("dataValidation.list.customOptions")}),N.jsx(J.Radio,{value:"1",children:M.t("dataValidation.list.refOptions")})]})}),d==="1"?N.jsxs(N.Fragment,{children:[N.jsx(J.FormLayout,{error:j,children:N.jsx(oe.RangeSelector,{id:`list-ref-range-${t}-${a}`,value:g,openForSheetUnitId:t,openForSheetSubUnitId:a,onChange:h=>{var f,S;const m=h[0];if(!m||oi(m.range))$==null||$({formula1:"",formula2:u}),v("");else{const C=(f=V.getUniverSheetInstance(m.unitId))!=null?f:V.getCurrentUniverSheetInstance(),E=(S=C==null?void 0:C.getSheetBySheetId(m.sheetId))!=null?S:C.getActiveSheet(),x=le.serializeRangeWithSheet(E.getName(),m.range);$==null||$({formula1:x,formula2:u}),v(x)}},isSingleChoice:!0})}),N.jsx(J.FormLayout,{children:N.jsx("div",{ref:c,children:N.jsx(Nr,{itemKey:"id",template:jr,list:R,container:()=>c.current,commonProps:{onItemChange:_}})})})]}):N.jsx(J.FormLayout,{error:j,children:N.jsxs("div",{ref:c,children:[N.jsx(Nr,{itemKey:"id",template:jr,list:U,onMoveEnd:h=>{I(h)},container:()=>c.current,commonProps:{onItemChange:w,onItemDelete:L}}),N.jsxs("a",{className:me.dataValidationFormulaListAdd,onClick:y,children:[N.jsx(Dn,{}),M.t("dataValidation.list.add")]})]})})]})}function ci(i){const{value:n,onChange:e,showError:t,validResult:a}=i,r=ne.useDependency(l.LocaleService),o=t?a==null?void 0:a.formula1:"",s=t?a==null?void 0:a.formula2:"",[u,c]=X.useState(!((n==null?void 0:n.formula1)===void 0&&(n==null?void 0:n.formula2)===void 0));return N.jsxs(N.Fragment,{children:[N.jsx(J.FormLayout,{children:N.jsx(J.Checkbox,{checked:u,onChange:d=>{d?c(!0):(c(!1),e==null||e({...n,formula1:void 0,formula2:void 0}))},children:r.t("dataValidation.checkbox.tips")})}),u?N.jsx(J.FormLayout,{label:r.t("dataValidation.checkbox.checked"),error:o,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:r.t("dataValidation.panel.formulaPlaceholder"),value:n==null?void 0:n.formula1,onChange:d=>{e==null||e({...n,formula1:d})}})}):null,u?N.jsx(J.FormLayout,{label:r.t("dataValidation.checkbox.unchecked"),error:s,children:N.jsx(J.Input,{className:me.dataValidationFormula,placeholder:r.t("dataValidation.panel.formulaPlaceholder"),value:n==null?void 0:n.formula2,onChange:d=>{e==null||e({...n,formula2:d})}})}):null]})}const Ur="data-validation.custom-formula-input",tt="data-validation.formula-input",Sa="data-validation.list-formula-input",xr="data-validation.checkbox-formula-input",di=[[Ur,Wn],[tt,$n],[Sa,ui],[xr,ci]],fi="LIST_RENDER_MODE_OPTION_INPUT";function jt(i){var a;const{value:n,onChange:e}=i,t=ne.useDependency(l.LocaleService);return N.jsx(J.FormLayout,{label:t.t("dataValidation.renderMode.label"),children:N.jsxs(J.RadioGroup,{value:`${(a=n.renderMode)!=null?a:l.DataValidationRenderMode.CUSTOM}`,onChange:r=>e({...n,renderMode:+r}),children:[N.jsx(J.Radio,{value:`${l.DataValidationRenderMode.CUSTOM}`,children:t.t("dataValidation.renderMode.chip")}),N.jsx(J.Radio,{value:`${l.DataValidationRenderMode.ARROW}`,children:t.t("dataValidation.renderMode.arrow")}),N.jsx(J.Radio,{value:`${l.DataValidationRenderMode.TEXT}`,children:t.t("dataValidation.renderMode.text")})]})})}jt.componentKey=fi;const Wr="data-validation-single",ya="sheet.menu.data-validation";function pi(i){return{id:ya,type:oe.MenuItemType.SUBITEMS,positions:[oe.MenuPosition.TOOLBAR_START],group:oe.MenuGroup.TOOLBAR_FORMULAS_INSERT,icon:Wr,tooltip:"dataValidation.title",hidden$:oe.getMenuHiddenObservable(i,l.UniverInstanceType.SHEET)}}function hi(i){return{id:Ge.id,title:"dataValidation.panel.title",type:oe.MenuItemType.BUTTON,positions:[ya]}}function mi(i){return{id:Gt.id,title:"dataValidation.panel.add",type:oe.MenuItemType.BUTTON,positions:[ya]}}var vi=Object.defineProperty,gi=Object.getOwnPropertyDescriptor,_i=(i,n,e,t)=>{for(var a=t>1?void 0:t?gi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&vi(n,e,a),a},Se=(i,n)=>(e,t)=>n(e,t,i);const Si={tr:{size:6,color:"#fe4b4b"}};A.DataValidationRenderController=class extends l.RxDisposable{constructor(n,e,t,a,r,o,s,u,c,d,p){super(),this._componentManager=n,this._menuService=e,this._dataValidationModel=t,this._sheetSkeletonManagerService=a,this._renderManagerService=r,this._univerInstanceService=o,this._dataValidatorRegistryService=s,this._editorBridgeService=u,this._dropdownManagerService=c,this._sheetInterceptorService=d,this._injector=p,this._init()}_init(){this._initComponents(),this._initMenu(),this._initSkeletonChange(),this._initDropdown(),this._initViewModelIntercept()}_initMenu(){[pi,hi,mi].forEach(n=>{this.disposeWithMe(this._menuService.addMenuItem(n(this._injector)))})}_initComponents(){[[Ua,An],[ja,sn],[Zt,Nn],[Za,xn],[jt.componentKey,jt],...di].forEach(([n,e])=>{this.disposeWithMe(this._componentManager.register(n,e))})}_initDropdown(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(n=>{if(!n.visible)return;const e=this._editorBridgeService.getEditCellState();if(e){const{unitId:t,sheetId:a,row:r,column:o}=e,s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const c=this._dataValidationModel.ensureManager(t,a).getRuleByLocation(r,o);if(!c)return;const d=this._dataValidatorRegistryService.getValidatorItem(c.type);if(!(d!=null&&d.dropdown))return;const p=s.getActiveSheet(),g=this._dropdownManagerService.activeDropdown,v=g==null?void 0:g.location;if(v&&v.unitId===t&&v.subUnitId===a&&v.row===r&&v.col===o)return;this._dropdownManagerService.showDropdown({location:{unitId:t,subUnitId:a,row:r,col:o,workbook:s,worksheet:p},componentKey:d.dropdown,onHide:()=>{}})}}))}_initSkeletonChange(){const n=()=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),a=e.getActiveSheet().getSheetId(),r=this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:t,sheetId:a}),o=this._renderManagerService.getRenderById(t);r==null||r.makeDirty(!0),r==null||r.calculate(),o&&o.mainComponent.makeForceDirty()};this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(()=>{n()})),this.disposeWithMe(this._dataValidationModel.validStatusChange$.subscribe(()=>{n()}))}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(he.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(n,e,t)=>{var P,j,$,U;const{row:a,col:r,unitId:o,subUnitId:s}=e,u=this._dataValidationModel.ensureManager(o,s),c=(P=this._sheetSkeletonManagerService.getCurrent())==null?void 0:P.skeleton;if(!u||!c)return t(n);const d=e.workbook.getStyles(),p=(typeof(n==null?void 0:n.s)=="string"?d.get(n==null?void 0:n.s):n==null?void 0:n.s)||{},g=u.getRuleIdByLocation(a,r);if(!g)return t(n);const v=u.getRuleById(g);if(!v)return t(n);const M=e.worksheet.getCellRaw(e.row,e.col),V=this._dataValidationModel.validator(ve(M),v,e),O=this._dataValidatorRegistryService.getValidatorItem(v.type),b=ve(n);let F={};if((v.type===l.DataValidationType.LIST||v.type===l.DataValidationType.LIST_MULTIPLE)&&(F={interceptorStyle:{...n==null?void 0:n.interceptorStyle,tb:(j=p.tb!==l.WrapStrategy.OVERFLOW?p.tb:l.WrapStrategy.CLIP)!=null?j:l.WrapStrategy.WRAP}}),v.type===l.DataValidationType.CHECKBOX){const{formula2:I}=O.parseFormulaSync(v,e.unitId,e.subUnitId);b||(F={v:I,t:1,p:null,interceptorStyle:{...n==null?void 0:n.interceptorStyle,tb:l.WrapStrategy.CLIP}})}if(v.type===l.DataValidationType.LIST&&(v.renderMode===l.DataValidationRenderMode.ARROW||v.renderMode===l.DataValidationRenderMode.TEXT)){const I=O.getListWithColorMap(v),w=`${($=ve(n))!=null?$:""}`,L=I[w];L&&(F={...F,interceptorStyle:{...F.interceptorStyle,bg:{rgb:L}}})}return t({...n,...F,dataValidation:{ruleId:g,validStatus:V,rule:v,validator:O},markers:{...n==null?void 0:n.markers,...V===l.DataValidationStatus.INVALID?Si:null},customRender:[...(U=n==null?void 0:n.customRender)!=null?U:[],...O!=null&&O.canvasRender?[O.canvasRender]:[]],fontRenderExtension:{...n==null?void 0:n.fontRenderExtension,isSkip:O==null?void 0:O.skipDefaultFontRender(v,b,e)},interceptorStyle:{...n==null?void 0:n.interceptorStyle,...F.interceptorStyle},get interceptorAutoHeight(){var L,T,D,R;const I=c.mergeData.find(_=>{const{startColumn:y,startRow:h,endColumn:m,endRow:f}=_;return a>=h&&r>=y&&a<=f&&r<=m}),w={data:{...n,dataValidation:{ruleId:g,validStatus:V,rule:v,validator:O}},style:c.getsStyles().getStyleByCell(n),primaryWithCoord:c.getCellByIndex((L=I==null?void 0:I.startRow)!=null?L:a,(T=I==null?void 0:I.startColumn)!=null?T:r),unitId:o,subUnitId:s,row:a,col:r};return(R=(D=O==null?void 0:O.canvasRender)==null?void 0:D.calcCellAutoHeight)==null?void 0:R.call(D,w)}})}}))}},A.DataValidationRenderController=_i([l.OnLifecycle(l.LifecycleStages.Rendered,A.DataValidationRenderController),Se(0,z.Inject(oe.ComponentManager)),Se(1,oe.IMenuService),Se(2,z.Inject(H.DataValidationModel)),Se(3,z.Inject(se.SheetSkeletonManagerService)),Se(4,fe.IRenderManagerService),Se(5,l.IUniverInstanceService),Se(6,z.Inject(H.DataValidatorRegistryService)),Se(7,se.IEditorBridgeService),Se(8,z.Inject(Ae)),Se(9,z.Inject(he.SheetInterceptorService)),Se(10,z.Inject(z.Injector))],A.DataValidationRenderController);var yi=Object.defineProperty,Di=Object.getOwnPropertyDescriptor,Ri=(i,n,e,t)=>{for(var a=t>1?void 0:t?Di(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&yi(n,e,a),a},Mi=(i,n)=>(e,t)=>n(e,t,i);A.SheetDataValidationService=class{constructor(n){W(this,"_currentManager");W(this,"_currentManager$",new ge.Subject);W(this,"currentManager$",this._currentManager$.asObservable());this._dataValidationModel=n}get currentManager(){return this._currentManager}_ensureManager(n,e){return this._dataValidationModel.ensureManager(n,e)}switchCurrent(n,e){var a,r;if(n===((a=this.currentManager)==null?void 0:a.unitId)&&e===((r=this._currentManager)==null?void 0:r.subUnitId))return;const t=this._ensureManager(n,e);this._currentManager={manager:t,unitId:n,subUnitId:e},this._currentManager$.next(this._currentManager)}get(n,e){return this._ensureManager(n,e)}},A.SheetDataValidationService=Ri([Mi(0,z.Inject(H.DataValidationModel))],A.SheetDataValidationService);const at={type:l.CommandType.MUTATION,id:"sheet.mutation.data-validation-formula-mark-dirty",handler(){return!0}};var rt=(i=>(i[i.NOT_REGISTER=1]="NOT_REGISTER",i[i.SUCCESS=2]="SUCCESS",i[i.WAIT=3]="WAIT",i[i.ERROR=4]="ERROR",i))(rt||{}),Ii=Object.defineProperty,Oi=Object.getOwnPropertyDescriptor,wi=(i,n,e,t)=>{for(var a=t>1?void 0:t?Oi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Ii(n,e,a),a},$r=(i,n)=>(e,t)=>n(e,t,i);A.RegisterOtherFormulaService=class extends l.Disposable{constructor(e,t){super();W(this,"_formulaCacheMap",new Map);W(this,"_formulaChange$",new ge.Subject);W(this,"formulaChange$",this._formulaChange$.asObservable());W(this,"_formulaResult$",new ge.Subject);W(this,"formulaResult$",this._formulaResult$.asObservable());this._commandService=e,this._activeDirtyManagerService=t,this._initFormulaRegister(),this._initFormulaCalculationResultChange()}_ensureCacheMap(e,t){let a=this._formulaCacheMap.get(e);a||(a=new Map,this._formulaCacheMap.set(e,a));let r=a.get(t);return r||(r=new Map,a.set(t,r)),r}_createFormulaId(e,t){return`sheet.dv_${e}_${t}_${l.Tools.generateRandomId(8)}`}_initFormulaRegister(){this._activeDirtyManagerService.register(at.id,{commandId:at.id,getDirtyData(e){return{dirtyUnitOtherFormulaMap:e.params}}}),this.formulaChange$.pipe(ge.bufferTime(16),ge.filter(e=>!!e.length),ge.map(e=>e.reduce((t,a)=>{const{unitId:r,subUnitId:o,formulaId:s,formulaText:u}=a;return t[r]||(t[r]={}),t[r][o]||(t[r][o]={}),t[r][o][s]={f:u},t},{}))).subscribe(e=>{for(const t in e)for(const a in e[t]){const r=e[t][a],o={unitId:t,subUnitId:a,formulaMap:r};this._commandService.executeCommand(le.SetOtherFormulaMutation.id,o).then(()=>{this._commandService.executeCommand(at.id,{[t]:{[a]:r}})})}})}_initFormulaCalculationResultChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===le.SetFormulaCalculationResultMutation.id){const t=e.params,{unitOtherData:a}=t,r={};for(const o in a){const s=a[o],u={};r[o]=u;for(const c in s){const d=this._ensureCacheMap(o,c),p=s[c],g=[];u[c]=g;for(const v in p){const M=p[v];if(d.has(v)){const V=d.get(v);V.result=M,V.status=rt.SUCCESS,V.callbacks.forEach(O=>{O(M)}),V.callbacks.clear(),g.push(V)}}}}this._formulaResult$.next(r)}}))}registerFormula(e,t,a,r){const o=this._createFormulaId(e,t);return this._ensureCacheMap(e,t).set(o,{result:void 0,status:rt.WAIT,ruleId:a,formulaId:o,callbacks:new Set}),this._formulaChange$.next({unitId:e,ruleId:a,subUnitId:t,formulaText:r,formulaId:o}),o}deleteFormula(e,t,a){const r={unitId:e,subUnitId:t,formulaIdList:a};this._commandService.executeCommand(le.RemoveOtherFormulaMutation.id,r);const o=this._ensureCacheMap(e,t);a.forEach(s=>o.delete(s))}getFormulaValue(e,t,a){const r=this._ensureCacheMap(e,t),o=r.get(a);return o?o.status===rt.SUCCESS||rt.ERROR?Promise.resolve(o):new Promise(s=>{o.callbacks.add(()=>{s(r.get(a))})}):Promise.resolve(null)}getFormulaValueSync(e,t,a){return this._ensureCacheMap(e,t).get(a)}},A.RegisterOtherFormulaService=wi([$r(0,l.ICommandService),$r(1,le.IActiveDirtyManagerService)],A.RegisterOtherFormulaService);class Ye{constructor(){W(this,"_cacheMatrix",new Map)}_ensureCache(n,e){let t=this._cacheMatrix.get(n);t||(t=new Map,this._cacheMatrix.set(n,t));let a=t.get(e);return a||(a=new l.ObjectMatrix,t.set(e,a)),a}ensureCache(n,e){return this._ensureCache(n,e)}addRule(n,e,t){this.markRangeDirty(n,e,t.ranges)}removeRule(n,e,t){this._deleteRange(n,e,t.ranges)}updateRuleRanges(n,e,t,a,r){const o=this._ensureCache(n,e);r.forEach(s=>{l.Range.foreach(s,(u,c)=>{const d=o.getValue(u,c);d&&(d.temp=!0)})}),a.forEach(s=>{l.Range.foreach(s,(u,c)=>{const d=o.getValue(u,c);d&&d.ruleId===t?d.temp=!1:o.setValue(u,c,void 0)})}),r.forEach(s=>{l.Range.foreach(s,(u,c)=>{const d=o.getValue(u,c);d&&d.temp===!0&&o.realDeleteValue(u,c)})})}markRangeDirty(n,e,t){const a=this._ensureCache(n,e);t.forEach(r=>{l.Range.foreach(r,(o,s)=>{a.setValue(o,s,void 0)})})}markCellDirty(n,e,t,a){this._ensureCache(n,e).setValue(t,a,void 0)}_deleteRange(n,e,t){const a=this._ensureCache(n,e);t.forEach(r=>{l.Range.foreach(r,(o,s)=>{a.realDeleteValue(o,s)})})}getValue(n,e,t,a){return this._ensureCache(n,e).getValue(t,a)}setValue(n,e,t,a,r){return this._ensureCache(n,e).setValue(t,a,r)}}var Ci=Object.defineProperty,Vi=Object.getOwnPropertyDescriptor,Ti=(i,n,e,t)=>{for(var a=t>1?void 0:t?Vi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Ci(n,e,a),a},nt=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationCustomFormulaService=class extends l.Disposable{constructor(e,t,a,r,o){super();W(this,"_formulaMap",new Map);W(this,"_ruleFormulaMap",new Map);W(this,"_formulaCellMap",new Map);this._registerOtherFormulaService=e,this._lexerTreeBuilder=t,this._univerInstanceService=a,this._dataValidationModel=r,this._dataValidationCacheService=o,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const r in a){const o=a[r],{formulaCellMap:s,ruleFormulaMap:u}=this._ensureMaps(t,r),c=this._dataValidationModel.ensureManager(t,r);o.forEach(d=>{const p=u.get(d.ruleId),g=s.get(d.formulaId),v=c.getRuleById(d.ruleId);v&&p&&!p.isTransformable&&this._dataValidationCacheService.markRangeDirty(t,r,v.ranges),g&&this._dataValidationCacheService.markCellDirty(t,r,g.row,g.column)})}}}))}_ensureMaps(e,t){let a=this._formulaMap.get(e),r=this._ruleFormulaMap.get(e),o=this._formulaCellMap.get(e);(!a||!r||!o)&&(a=new Map,r=new Map,o=new Map,this._formulaMap.set(e,a),this._ruleFormulaMap.set(e,r),this._formulaCellMap.set(e,o));let s=a.get(t),u=r.get(t),c=o.get(t);return(!s||!u||!c)&&(s=new l.ObjectMatrix,a.set(t,s),u=new Map,r.set(t,u),c=new Map,o.set(t,c)),{formulaMap:s,ruleFormulaMap:u,formulaCellMap:c}}_registerFormula(e,t,a,r){return this._registerOtherFormulaService.registerFormula(e,t,a,r)}deleteByRuleId(e,t,a){const{formulaMap:r,formulaCellMap:o,ruleFormulaMap:s}=this._ensureMaps(e,t),u=this._dataValidationModel.getRuleById(e,t,a),c=new Set,d=s.get(a);!u||!d||(s.delete(a),u.ranges.forEach(p=>{l.Range.foreach(p,(g,v)=>{const M=r.getValue(g,v);if(M&&M.ruleId===a){const{formulaId:V}=M;r.realDeleteValue(g,v),c.add(V),o.delete(V)}})}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(c.values())))}_addFormulaByRange(e,t,a,r,o){const{formulaMap:s,ruleFormulaMap:u,formulaCellMap:c}=this._ensureMaps(e,t);if(!r)return;const d=le.isFormulaTransformable(this._lexerTreeBuilder,r),p=o[0].startRow,g=o[0].startColumn;let v;d?o.forEach(M=>{l.Range.foreach(M,(V,O)=>{const b=le.transformFormula(this._lexerTreeBuilder,r,p,g,V,O),F=this._registerFormula(e,t,a,b);s.setValue(V,O,{formulaId:F,ruleId:a}),c.set(F,{row:V,column:O})})}):(v=this._registerFormula(e,t,a,r),o.forEach(M=>{l.Range.foreach(M,(V,O)=>{s.setValue(V,O,{formulaId:v,ruleId:a})})})),u.set(a,{formula:r,originCol:g,originRow:p,isTransformable:d,formulaId:v})}addRule(e,t,a){const{ranges:r,formula1:o,uid:s,type:u}=a;u!==l.DataValidationType.CUSTOM||!o||!l.isFormulaString(o)||this._addFormulaByRange(e,t,s,o,r)}updateRuleRanges(e,t,a,r,o){const{formulaMap:s,ruleFormulaMap:u,formulaCellMap:c}=this._ensureMaps(e,t),d=u.get(a);if(!d)return;const{formula:p,originCol:g,originRow:v,isTransformable:M,formulaId:V}=d,O=new Set;r.forEach(b=>{l.Range.foreach(b,(F,P)=>{const j=s.getValue(F,P);j&&j.ruleId===a&&(j.temp=!0)})}),o.forEach(b=>{l.Range.foreach(b,(F,P)=>{var $;const j=($=s.getValue(F,P))!=null?$:{};if(j.ruleId!==a){const U=u.get(j.ruleId);if(U!=null&&U.isTransformable&&O.add(j.formulaId),M){const I=le.transformFormula(this._lexerTreeBuilder,p,v,g,F,P),w=this._registerFormula(e,t,a,I);s.setValue(F,P,{ruleId:a,formulaId:w}),c.set(w,{row:F,column:P})}else s.setValue(F,P,{ruleId:a,formulaId:V})}else j.temp=!1})}),r.forEach(b=>{l.Range.foreach(b,(F,P)=>{const j=s.getValue(F,P);j&&j.ruleId===a&&j.temp===!0&&(s.realDeleteValue(F,P),M&&O.add(j.formulaId))})}),O.forEach(b=>{c.delete(b)}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(O.values()))}updateRuleFormula(e,t,a,r,o){const{ruleFormulaMap:s}=this._ensureMaps(e,t),u=s.get(a);(!u||u.formula!==o)&&this._addFormulaByRange(e,t,a,o,r)}getCellFormulaValue(e,t,a,r){const{formulaMap:o}=this._ensureMaps(e,t),s=o.getValue(a,r);return s?this._registerOtherFormulaService.getFormulaValue(e,t,s.formulaId):Promise.resolve(void 0)}getRuleFormulaInfo(e,t,a){const{ruleFormulaMap:r}=this._ensureMaps(e,t);return r.get(a)}},A.DataValidationCustomFormulaService=Ti([nt(0,z.Inject(A.RegisterOtherFormulaService)),nt(1,z.Inject(le.LexerTreeBuilder)),nt(2,l.IUniverInstanceService),nt(3,z.Inject(H.DataValidationModel)),nt(4,z.Inject(Ye))],A.DataValidationCustomFormulaService);function Ie(i){var n,e;return(e=(n=i==null?void 0:i[0])==null?void 0:n[0])==null?void 0:e.v}class bi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.CUSTOM);W(this,"title","dataValidation.custom.title");W(this,"operators",[]);W(this,"scopes",["sheet"]);W(this,"formulaInput",Ur);W(this,"_customFormulaService",this.injector.get(A.DataValidationCustomFormulaService))}validatorFormula(e){const t=l.isFormulaString(e.formula1);return{success:t,formula1:t?"":this.localeService.t("dataValidation.validFail.formula")}}async parseFormula(e,t,a){return{formula1:void 0,formula2:void 0}}async isValidType(e,t,a){const{column:r,row:o,unitId:s,subUnitId:u}=e,c=await this._customFormulaService.getCellFormulaValue(s,u,o,r);return!!Ie(c==null?void 0:c.result)}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.custom.error")}}var Ei=Object.defineProperty,Fi=Object.getOwnPropertyDescriptor,Ai=(i,n,e,t)=>{for(var a=t>1?void 0:t?Fi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Ei(n,e,a),a},Da=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationFormulaService=class extends l.Disposable{constructor(e,t,a){super();W(this,"_formulaRuleMap",new Map);this._registerOtherFormulaService=e,this._dataValidationCacheService=t,this._dataValidationModel=a,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const r in a){const o=a[r],s=this._ensureRuleFormulaMap(t,r),u=this._dataValidationModel.ensureManager(t,r);o.forEach(c=>{if(s.get(c.ruleId)){const d=u.getRuleById(c.ruleId);d&&this._dataValidationCacheService.markRangeDirty(t,r,d.ranges)}})}}}))}_ensureRuleFormulaMap(e,t){let a=this._formulaRuleMap.get(e);a||(a=new Map,this._formulaRuleMap.set(e,a));let r=a.get(t);return r||(r=new Map,a.set(t,r)),r}addRule(e,t,a,r,o){const s=l.isFormulaString(r),u=l.isFormulaString(o);if(!s&&!u)return;const c=this._ensureRuleFormulaMap(e,t),d=[void 0,void 0];if(s){const p=this._registerOtherFormulaService.registerFormula(e,t,a,r);d[0]={id:p,text:r}}if(u){const p=this._registerOtherFormulaService.registerFormula(e,t,a,o);d[1]={id:p,text:o}}c.set(a,d)}removeRule(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(!o)return;const[s,u]=o,c=[s==null?void 0:s.id,u==null?void 0:u.id].filter(Boolean);c.length&&this._registerOtherFormulaService.deleteFormula(e,t,c)}updateRuleFormulaText(e,t,a,r,o){const u=this._ensureRuleFormulaMap(e,t).get(a);if(!u){this.addRule(e,t,a,r,o);return}const[c,d]=u;if((c==null?void 0:c.text)!==r)if(c&&this._registerOtherFormulaService.deleteFormula(e,t,[c.id]),l.isFormulaString(r)){const p=this._registerOtherFormulaService.registerFormula(e,t,a,r);u[0]={text:r,id:p}}else u[0]=void 0;if((d==null?void 0:d.text)!==o)if(d&&this._registerOtherFormulaService.deleteFormula(e,t,[d.id]),l.isFormulaString(o)){const p=this._registerOtherFormulaService.registerFormula(e,t,a,o);u[1]={text:o,id:p}}else u[1]=void 0}getRuleFormulaResult(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(!o)return Promise.resolve(null);const s=async u=>u&&this._registerOtherFormulaService.getFormulaValue(e,t,u.id);return Promise.all([s(o[0]),s(o[1])])}getRuleFormulaResultSync(e,t,a){const o=this._ensureRuleFormulaMap(e,t).get(a);if(o)return o.map(s=>{if(s)return this._registerOtherFormulaService.getFormulaValueSync(e,t,s.id)})}getRuleFormulaInfo(e,t,a){return this._ensureRuleFormulaMap(e,t).get(a)}},A.DataValidationFormulaService=Ai([Da(0,z.Inject(A.RegisterOtherFormulaService)),Da(1,z.Inject(Ye)),Da(2,z.Inject(H.DataValidationModel))],A.DataValidationFormulaService);var Pi=Object.defineProperty,Li=Object.getOwnPropertyDescriptor,Ni=(i,n,e,t)=>{for(var a=t>1?void 0:t?Li(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Pi(n,e,a),a},Ra=(i,n)=>(e,t)=>n(e,t,i);const Ut=6;let Ma=class{constructor(i,n,e){this._commandService=i,this._formulaService=n,this._themeService=e}_calc(i,n){var c,d,p;const{vt:e,ht:t}=n||{},a=i.endX-i.startX-Ut*2,r=i.endY-i.startY,o=((c=n==null?void 0:n.fs)!=null?c:10)*1.6;let s=0,u=0;switch(e){case l.VerticalAlign.TOP:u=0;break;case l.VerticalAlign.BOTTOM:u=0+(r-o);break;default:u=0+(r-o)/2;break}switch(t){case l.HorizontalAlign.LEFT:s=Ut;break;case l.HorizontalAlign.RIGHT:s=Ut+(a-o);break;default:s=Ut+(a-o)/2;break}return{left:i.startX+s,top:i.startY+u,width:((d=n==null?void 0:n.fs)!=null?d:10)*1.6,height:((p=n==null?void 0:n.fs)!=null?p:10)*1.6}}calcCellAutoHeight(){}async _parseFormula(i,n,e){var o,s;const{formula1:t=it,formula2:a=xt}=i,r=await this._formulaService.getRuleFormulaResult(n,e,i.uid);return{formula1:l.isFormulaString(t)?Ie((o=r==null?void 0:r[0])==null?void 0:o.result):t,formula2:l.isFormulaString(a)?Ie((s=r==null?void 0:r[1])==null?void 0:s.result):a}}drawWith(i,n){var L,T,D,R,_;const{style:e,data:t,primaryWithCoord:a,unitId:r,subUnitId:o}=n,s=a.isMergedMainCell?a.mergeInfo:a,u=ve(t),c=(L=t.dataValidation)==null?void 0:L.rule,d=(T=t.dataValidation)==null?void 0:T.validator;if(!c||!d)return;const p=this._themeService.getCurrentTheme();if(!d.skipDefaultFontRender(c,u,{unitId:r,subUnitId:o}))return;const{formula1:g=it}=c,v=this._calc(s,e),{a:M,d:V}=i.getTransform(),O=fe.fixLineWidthByScale(v.left,M),b=fe.fixLineWidthByScale(v.top,V),F=fe.Transform.create().composeMatrix({left:O,top:b,scaleX:1,scaleY:1,angle:0,skewX:0,skewY:0,flipX:!1,flipY:!1}),P=s.endX-s.startX,j=s.endY-s.startY;i.save(),i.beginPath(),i.rect(s.startX,s.startY,P,j),i.clip();const $=F.getMatrix();i.transform($[0],$[1],$[2],$[3],$[4],$[5]);const U=((D=e==null?void 0:e.fs)!=null?D:10)*1.6,I=String(u)===String(g),w=p.hyacinth500;fe.Checkbox.drawWith(i,{checked:I,width:U,height:U,fill:(_=(R=e==null?void 0:e.cl)==null?void 0:R.rgb)!=null?_:w}),i.restore()}isHit(i,n){const e=n.primaryWithCoord.isMergedMainCell?n.primaryWithCoord.mergeInfo:n.primaryWithCoord,t=this._calc(e,n.style),a=t.top,r=t.top+t.height,o=t.left,s=t.left+t.width,{x:u,y:c}=i;return u<=s&&u>=o&&c<=r&&c>=a}async onPointerDown(i,n){var g,v;if(n.button===2)return;const{primaryWithCoord:e,unitId:t,subUnitId:a,data:r}=i,o=ve(r),s=(g=r.dataValidation)==null?void 0:g.rule,u=(v=r.dataValidation)==null?void 0:v.validator;if(!s||!u||!u.skipDefaultFontRender(s,o,{unitId:t,subUnitId:a}))return;const{formula1:c,formula2:d}=await this._parseFormula(s,t,a),p={range:{startColumn:e.actualColumn,endColumn:e.actualColumn,startRow:e.actualRow,endRow:e.actualRow},value:{v:String(o)===String(c)?d:c,p:null}};this._commandService.executeCommand(he.SetRangeValuesCommand.id,p)}};Ma=Ni([Ra(0,l.ICommandService),Ra(1,z.Inject(A.DataValidationFormulaService)),Ra(2,z.Inject(l.ThemeService))],Ma);const it=1,xt=0;class ji extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.CHECKBOX);W(this,"title","dataValidation.checkbox.title");W(this,"operators",[]);W(this,"scopes",["sheet"]);W(this,"formulaInput",xr);W(this,"canvasRender",this.injector.createInstance(Ma));W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService))}skipDefaultFontRender(e,t,a){const{formula1:r,formula2:o}=this.parseFormulaSync(e,a.unitId,a.subUnitId),s=`${t!=null?t:""}`;return!s||s===`${r}`||s===`${o}`}validatorFormula(e){const{formula1:t=it,formula2:a=xt}=e,r=!l.Tools.isBlank(t),o=!l.Tools.isBlank(a);return{success:r&&o,formula1:r?"":this.localeService.t("dataValidation.validFail.common"),formula2:o?"":this.localeService.t("dataValidation.validFail.common")}}async parseFormula(e,t,a){var u,c;const{formula1:r=it,formula2:o=xt}=e,s=await this._formulaService.getRuleFormulaResult(t,a,e.uid);return{formula1:l.isFormulaString(r)?Ie((u=s==null?void 0:s[0])==null?void 0:u.result):r,formula2:l.isFormulaString(o)?Ie((c=s==null?void 0:s[1])==null?void 0:c.result):o}}parseFormulaSync(e,t,a){var u,c;const{formula1:r=it,formula2:o=xt}=e,s=this._formulaService.getRuleFormulaResultSync(t,a,e.uid);return{formula1:l.isFormulaString(r)?Ie((u=s==null?void 0:s[0])==null?void 0:u.result):r,formula2:l.isFormulaString(o)?Ie((c=s==null?void 0:s[1])==null?void 0:c.result):o}}async isValidType(e,t,a){const{value:r,unitId:o,subUnitId:s}=e,{formula1:u,formula2:c}=await this.parseFormula(a,o,s);return!l.Tools.isDefine(u)||!l.Tools.isDefine(c)?!0:l.Tools.isDefine(r)&&(String(r)===String(u)||String(r)===String(c))}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.checkbox.error")}}const ot=[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.NOT_BETWEEN],Ia=86400;function Ui(i,n=!0){if(n&&i>=0){if(i===0)return[1900,1,0];if(i===60)return[1900,2,29];if(i<60)return[1900,i<32?1:2,(i-1)%31+1]}let e=i+68569+2415019;const t=Math.floor(4*e/146097);e=e-Math.floor((146097*t+3)/4);const a=Math.floor(4e3*(e+1)/1461001);e=e-Math.floor(1461*a/4)+31;const r=Math.floor(80*e/2447),o=e-Math.floor(2447*r/80);e=Math.floor(r/11);const s=r+2-12*e;return[100*(t-49)+a+e|0,s|0,o|0]}const xi=i=>{let n=i|0;const e=Ia*(i-n);let t=Math.floor(e);e-t>.9999&&(t+=1,t===Ia&&(t=0,n+=1));const a=t<0?Ia+t:t,[r,o,s]=Ui(i,!0),u=Math.floor(a/60/60)%60,c=Math.floor(a/60)%60,d=Math.floor(a)%60,p=new Date(0);return p.setUTCFullYear(r,o-1,s),p.setUTCHours(u,c,d),p.getTime()},Wi={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.operators.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.operators.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.operators.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.operators.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.operators.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.operators.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.operators.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.operators.notEqual"};l.DataValidationOperator.BETWEEN+"",l.DataValidationOperator.EQUAL+"",l.DataValidationOperator.GREATER_THAN+"",l.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",l.DataValidationOperator.LESS_THAN+"",l.DataValidationOperator.LESS_THAN_OR_EQUAL+"",l.DataValidationOperator.NOT_BETWEEN+"",l.DataValidationOperator.NOT_EQUAL+"";const $i={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.ruleName.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.ruleName.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.ruleName.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.ruleName.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.ruleName.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.ruleName.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.ruleName.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.ruleName.notEqual"},ki={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.errorMsg.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.errorMsg.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.errorMsg.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.errorMsg.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.errorMsg.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.errorMsg.notEqual"},kr="{FORMULA1}",Br="{FORMULA2}",qr=i=>Ne(i).isValid(),Wt=i=>{if(!(i==null||typeof i=="boolean"))return typeof i=="number"||!Number.isNaN(+i)?Ne(xi(+i)):Ne(i)};class Bi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.DATE);W(this,"title","dataValidation.date.title");W(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);W(this,"scopes",["sheet"]);W(this,"formulaInput",tt);W(this,"dropdown",Za);W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService));W(this,"transformDate",Wt)}async parseFormula(e,t,a){var u,c;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:Wt(l.isFormulaString(o)?Ie((u=r==null?void 0:r[0])==null?void 0:u.result):o),formula2:Wt(l.isFormulaString(s)?Ie((c=r==null?void 0:r[1])==null?void 0:c.result):s)}}async isValidType(e){const{value:t}=e;return typeof t=="string"?Ne(t).isValid():typeof t=="number"}_validatorSingleFormula(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)||!!e&&Ne(e).isValid())}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=this._validatorSingleFormula(e.formula1),r=this.localeService.t("dataValidation.validFail.date");if(ot.includes(t)){const s=this._validatorSingleFormula(e.formula2);return{success:a&&s,formula1:a?void 0:r,formula2:s?void 0:r}}return{success:a,formula1:a?void 0:r}}transform(e,t,a){const{value:r}=e;return{...e,value:Wt(r)}}async validatorIsEqual(e,t,a){const{value:r}=e,{formula1:o}=t;return o?r.isSame(o):!0}async validatorIsNotEqual(e,t){const{value:a}=e,{formula1:r}=t;return r?!a.isSame(r):!0}async validatorIsBetween(e,t){const{value:a}=e,{formula1:r,formula2:o}=t;if(!r||!o)return!1;const s=r.isAfter(o)?o:r,u=s===r?o:r;return(a.isAfter(s)||a.isSame(s))&&(a.isBefore(u)||a.isSame(u))}async validatorIsNotBetween(e,t){const{value:a}=e,{formula1:r,formula2:o}=t;if(!r||!o)return!1;const s=r.isAfter(o)?r:o,u=s===r?o:r;return a.isBefore(s)||a.isAfter(u)}async validatorIsGreaterThan(e,t){const{value:a}=e,{formula1:r}=t;return r?a.isAfter(r):!0}async validatorIsGreaterThanOrEqual(e,t){const{value:a}=e,{formula1:r}=t;return r?a.isAfter(r)||a.isSame(r):!0}async validatorIsLessThan(e,t){const{value:a}=e,{formula1:r}=t;return r?a.isBefore(r)||a.isSame(r):!0}async validatorIsLessThanOrEqual(e,t){const{value:a}=e,{formula1:r}=t;return r?a.isBefore(r)||a.isSame(r):!0}validatorFormulaValue(e){if(!l.Tools.isDefine(e.operator))return;if(ot.includes(e.operator)){if(l.Tools.isBlank(e.formula1)||l.Tools.isBlank(e.formula2))return"";if(!qr(e.formula1)||!qr(e.formula2))return""}else if(l.Tools.isBlank(e.formula1))return""}get operatorNames(){return this.operators.map(e=>this.localeService.t(Wi[e]))}generateRuleName(e){var a,r;if(!e.operator)return this.titleStr;const t=this.localeService.t($i[e.operator]).replace(kr,(a=e.formula1)!=null?a:"").replace(Br,(r=e.formula2)!=null?r:"");return`${this.titleStr} ${t}`}generateRuleErrorMessage(e){var a,r;return e.operator?`${this.localeService.t(ki[e.operator]).replace(kr,(a=e.formula1)!=null?a:"").replace(Br,(r=e.formula2)!=null?r:"")}`:this.titleStr}}var qi=Object.defineProperty,Hi=Object.getOwnPropertyDescriptor,Yi=(i,n,e,t)=>{for(var a=t>1?void 0:t?Hi(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&qi(n,e,a),a},$t=(i,n)=>(e,t)=>n(e,t,i);const ze=4,zi=6,De=14,Ue=6,Oe=2,Ki="#565656",Hr=new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");function Gi(i,n){const e=i.length;return{id:"d",body:{dataStream:`${i}${l.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[{ts:{fs:11,ff:void 0,it:l.BooleanNumber.FALSE,bl:l.BooleanNumber.FALSE,ul:{s:l.BooleanNumber.FALSE},st:{s:l.BooleanNumber.FALSE},ol:{s:l.BooleanNumber.FALSE},cl:void 0,...n,bg:void 0,bd:void 0},st:0,ed:e}]},documentStyle:{pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY}}}}function Oa(i,n,e){const t=Gi(i,e),a=new l.DocumentDataModel(t),r=new fe.DocumentViewModel(a);return{documentSkeleton:fe.DocumentSkeleton.create(r,n),docModel:a,docViewModel:r}}function Yr(i,n,e){const{documentSkeleton:t,docModel:a,docViewModel:r}=Oa(i,n,e);return{documents:new fe.Documents(`DOCUMENTS_${l.Tools.generateRandomId()}`,t,{pageMarginLeft:0,pageMarginTop:0}),documentSkeleton:t,docModel:a,docViewModel:r}}let wa=(Fa=class{constructor(i,n,e,t){W(this,"_dropdownInfoMap",new Map);W(this,"zIndex");W(this,"onPointerEnter");W(this,"onPointerLeave");this._localeService=i,this._commandService=n,this._dataValidationModel=e,this._dataValidatorRegistryService=t}_ensureMap(i){let n=this._dropdownInfoMap.get(i);return n||(n=new Map,this._dropdownInfoMap.set(i,n)),n}_generateKey(i,n){return`${i}.${n}`}_drawDownIcon(i,n,e,t,a){const r=e-De+4;let o=4;switch(a){case l.VerticalAlign.MIDDLE:o=(t-De)/2+4;break;case l.VerticalAlign.BOTTOM:o=t-De+4;break}i.save(),i.translateWithPrecision(n.startX+r,n.startY+o),i.fillStyle="#565656",i.fill(Hr),i.restore()}drawWith(i,n,e,t){var w,L;const{primaryWithCoord:a,row:r,col:o,style:s,data:u,subUnitId:c}=n,d=a.isMergedMainCell?a.mergeInfo:a,p=d.endX-d.startX,g=d.endY-d.startY,v=this._ensureMap(c),M=this._generateKey(r,o),V=(w=u.dataValidation)==null?void 0:w.rule,O=(L=u.dataValidation)==null?void 0:L.validator;if(!V||!O||!O.skipDefaultFontRender(V))return;const b=O.getListWithColor(V),F=ve(u),P=`${F!=null?F:""}`,j=b.find(T=>T.label===P);let{tb:$,vt:U,ht:I}=s||{};if($=$!=null?$:l.WrapStrategy.WRAP,U=U!=null?U:l.VerticalAlign.TOP,I=I!=null?I:l.HorizontalAlign.LEFT,V.renderMode===l.DataValidationRenderMode.ARROW){this._drawDownIcon(i,d,p,g,U),i.save(),i.translateWithPrecision(d.startX,d.startY),i.beginPath(),i.rect(0,0,p,g),i.clip();const T=p-De,{documentSkeleton:D,documents:R,docModel:_}=Yr(P,this._localeService,s);$===l.WrapStrategy.WRAP&&_.updateDocumentDataPageSize(T),D.calculate(),D.getActualSize();const y=fe.getDocsSkeletonPageSize(D),{height:h,width:m}=y;let f=0;switch(U){case l.VerticalAlign.BOTTOM:f=g-Oe-h;break;case l.VerticalAlign.MIDDLE:f=(g-Oe-h)/2;break;default:f=Oe;break}let S=0;switch(I){case l.HorizontalAlign.CENTER:S=(T-m)/2;break;case l.HorizontalAlign.RIGHT:S=T-m;break}i.translate(0,f),i.save(),i.translateWithPrecision(ze,0),i.beginPath(),i.rect(0,0,T,h),i.clip(),R.render(i),i.translateWithPrecision(S,0),i.restore(),i.restore(),v.set(M,{left:d.endX+e.rowHeaderWidth-De,top:d.startY+e.columnHeaderHeight,width:De,height:g})}else{i.save(),i.translateWithPrecision(d.startX,d.startY),i.beginPath(),i.rect(0,0,p,g),i.clip();const T=p-Ue*2-ze-De,{documentSkeleton:D,documents:R,docModel:_}=Yr(P,this._localeService,s);$===l.WrapStrategy.WRAP&&_.updateDocumentDataPageSize(T),D.calculate();const y=fe.getDocsSkeletonPageSize(D),{height:h,width:m}=y;let f=0;switch(U){case l.VerticalAlign.BOTTOM:f=g-Oe-h;break;case l.VerticalAlign.MIDDLE:f=(g-Oe-h)/2;break;default:f=Oe;break}let S=0;switch(I){case l.HorizontalAlign.CENTER:S=(T-m)/2;break;case l.HorizontalAlign.RIGHT:S=T-m;break}i.translate(Ue,f);const C=p-Ue*2,E=h;fe.Rect.drawWith(i,{width:C,height:E,fill:(j==null?void 0:j.color)||Le,radius:8}),i.save(),i.translateWithPrecision(ze,0),i.beginPath(),i.rect(0,0,T,h),i.clip(),i.translateWithPrecision(S,0),R.render(i),i.restore(),i.translate(T+ze+4,(h-zi)/2),i.fillStyle=Ki,i.fill(Hr),i.restore(),v.set(M,{left:d.startX+Ue+e.rowHeaderWidth,top:d.startY+f+e.columnHeaderHeight,width:C,height:E})}}calcCellAutoHeight(i){var d;const{primaryWithCoord:n,style:e,data:t}=i,a=n.isMergedMainCell?n.mergeInfo:n,r=a.endX-a.startX,o=ve(t),s=`${o!=null?o:""}`,u=(d=t.dataValidation)==null?void 0:d.rule;if(!u||u.renderMode===l.DataValidationRenderMode.TEXT)return;let{tb:c}=e||{};if(c=c!=null?c:l.WrapStrategy.WRAP,u.renderMode===l.DataValidationRenderMode.ARROW){const p=r-De,{documentSkeleton:g,docModel:v}=Oa(s,this._localeService,e);c===l.WrapStrategy.WRAP&&v.updateDocumentDataPageSize(p),g.calculate(),g.getActualSize();const M=fe.getDocsSkeletonPageSize(g),{height:V}=M;return V}else{const p=r-Ue*2-ze-De,{documentSkeleton:g,docModel:v}=Oa(s,this._localeService,e);c===l.WrapStrategy.WRAP&&v.updateDocumentDataPageSize(p),g.calculate(),g.getActualSize();const M=fe.getDocsSkeletonPageSize(g),{height:V}=M;return V+Oe*2}}isHit(i,n){const{data:e,subUnitId:t,row:a,col:r}=n,s=this._ensureMap(t).get(this._generateKey(a,r));if(!e.dataValidation||!s)return!1;const{top:c,left:d,width:p,height:g}=s,{x:v,y:M}=i;return v>=d&&v<=d+p&&M>=c&&M<=c+g}onPointerDown(i,n){if(n.button===2)return;const{unitId:e,subUnitId:t,row:a,col:r}=i,o={unitId:e,subUnitId:t,row:a,column:r};this._commandService.executeCommand(ft.id,o)}},W(Fa,"padding",{l:Ue+ze,r:De+Ue,t:Oe,b:Oe}),Fa);wa=Yi([$t(0,z.Inject(l.LocaleService)),$t(1,l.ICommandService),$t(2,z.Inject(H.DataValidationModel)),$t(3,z.Inject(H.DataValidatorRegistryService))],wa);class Xi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.LIST);W(this,"title","dataValidation.list.title");W(this,"operators",[]);W(this,"scopes",["sheet"]);W(this,"formulaInput",Sa);W(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));W(this,"canvasRender",this.injector.createInstance(wa));W(this,"dropdown",Zt);W(this,"optionsInput",jt.componentKey)}skipDefaultFontRender(e){return e.renderMode!==l.DataValidationRenderMode.TEXT}validatorFormula(e){const t=!l.Tools.isBlank(e.formula1);return{success:t,formula1:t?void 0:this.localeService.t("dataValidation.validFail.list")}}_parseCellValue(e,t){const a=e.toString();return Me(a)}async parseFormula(e,t,a){const{formula1:r=""}=e;return{formula1:le.isReferenceString(r)?Xe(le.deserializeRangeWithSheet(r),this._univerInstanceService,t,a):Me(r),formula2:void 0}}async isValidType(e,t,a){const{value:r}=e,{formula1:o}=t;return this._parseCellValue(r,a).every(u=>o.includes(u))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var p,g;const{formula1:r=""}=e,o=this.injector.get(l.IUniverInstanceService),s=(p=t?o.getUniverSheetInstance(t):void 0)!=null?p:o.getCurrentUniverSheetInstance(),u=(g=a?s.getSheetBySheetId(a):void 0)!=null?g:s.getActiveSheet(),c=s.getUnitId(),d=u.getSheetId();return le.isReferenceString(r)?Xe(le.deserializeRangeWithSheet(r),this._univerInstanceService,c,d):Me(r)}getListWithColor(e,t,a){const r=this.getList(e,t,a),o=(e.formula2||"").split(",");return r.map((s,u)=>({label:s,color:o[u]}))}getListWithColorMap(e,t,a){const r=this.getListWithColor(e,t,a),o={};return r.forEach(s=>{s.color&&(o[s.label]=s.color)}),o}}function kt(i){let n=i;return typeof i=="string"?((i.startsWith("¥")||i.startsWith("$"))&&(n=i.slice(1)),+n):+i}class Qi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService));W(this,"id",l.DataValidationType.DECIMAL);W(this,"title",this.localeService.t("dataValidation.decimal.title"));W(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);W(this,"scopes",["sheet"]);W(this,"formulaInput",tt);W(this,"dropDownInput")}_isFormulaOrNumber(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e))}async isValidType(e,t,a){const{value:r}=e;return!Number.isNaN(kt(r))}transform(e,t,a){const{value:r}=e;return{...e,value:kt(r)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var c,d,p,g,v,M,V,O;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(g=(p=(d=(c=r==null?void 0:r[0])==null?void 0:c.result)==null?void 0:d[0])==null?void 0:p[0])==null?void 0:g.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(O=(V=(M=(v=r==null?void 0:r[1])==null?void 0:v.result)==null?void 0:M[0])==null?void 0:V[0])==null?void 0:O.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrNumber(e.formula1),r=l.Tools.isDefine(e.formula2)&&this._isFormulaOrNumber(e.formula2),o=ot.includes(t),s=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&r,formula1:a?void 0:s,formula2:r?void 0:s}:{success:a,formula1:a?"":s}}async validatorIsEqual(e,t,a){const{formula1:r}=t,{value:o}=e;return Number.isNaN(r)?!0:o===r}async validatorIsNotEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value!==r}async validatorIsBetween(e,t,a){const{formula1:r,formula2:o}=t;if(Number.isNaN(r)||Number.isNaN(o))return!0;const s=Math.min(r,o),u=Math.max(r,o);return e.value>=s&&e.value<=u}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:o}=t;if(Number.isNaN(r)||Number.isNaN(o))return!0;const s=Math.min(r,o),u=Math.max(r,o);return e.value<s&&e.value>u}async validatorIsGreaterThan(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value>r}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value>=r}async validatorIsLessThan(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value<r}async validatorIsLessThanOrEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value<=r}}class Zi extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.TEXT_LENGTH);W(this,"title","dataValidation.textLength.title");W(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);W(this,"scopes",["sheet"]);W(this,"formulaInput",tt);W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService))}_isFormulaOrInt(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),r=l.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=ot.includes(t),s=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&r,formula1:a?void 0:s,formula2:r?void 0:s}:{success:a,formula1:s}}_parseNumber(e){return e==null?Number.NaN:+e}_isValidFormula(e){return!Number.isNaN(e)}async parseFormula(e,t,a){var u,c,d,p,g,v,M,V;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(p=(d=(c=(u=r==null?void 0:r[0])==null?void 0:u.result)==null?void 0:c[0])==null?void 0:d[0])==null?void 0:p.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(V=(M=(v=(g=r==null?void 0:r[1])==null?void 0:g.result)==null?void 0:v[0])==null?void 0:M[0])==null?void 0:V.v:s)}}transform(e,t,a){return{...e,value:e.value.toString().length}}async isValidType(e,t,a){const{value:r}=e;return typeof r=="string"||typeof r=="number"}async validatorIsEqual(e,t,a){const{formula1:r}=t;return l.Tools.isDefine(r)?e.value===r:!1}async validatorIsNotEqual(e,t,a){const{formula1:r}=t;return l.Tools.isDefine(r)?e.value!==r:!1}async validatorIsBetween(e,t,a){const{formula1:r,formula2:o}=t,{value:s}=e;if(!this._isValidFormula(r)||!this._isValidFormula(o))return!1;const u=Math.max(r,o),c=Math.min(r,o);return s>=c&&s<=u}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:o}=t,{value:s}=e;if(!this._isValidFormula(r)||!this._isValidFormula(o))return!1;const u=Math.max(r,o),c=Math.min(r,o);return s>=c&&s<=u}async validatorIsGreaterThan(e,t,a){const{formula1:r}=t,{value:o}=e;return this._isValidFormula(r)?o>r:!1}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:r}=t,{value:o}=e;return this._isValidFormula(r)?o>=r:!1}async validatorIsLessThan(e,t,a){const{formula1:r}=t,{value:o}=e;return this._isValidFormula(r)?o<r:!1}async validatorIsLessThanOrEqual(e,t,a){const{formula1:r}=t,{value:o}=e;return this._isValidFormula(r)?o<=r:!1}}class Ji extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"_formulaService",this.injector.get(A.DataValidationFormulaService));W(this,"id",l.DataValidationType.WHOLE);W(this,"title",this.localeService.t("dataValidation.whole.title"));W(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);W(this,"scopes",["sheet"]);W(this,"formulaInput",tt);W(this,"dropDownInput")}_isFormulaOrInt(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}async isValidType(e,t,a){const{value:r}=e,o=kt(r);return!Number.isNaN(o)&&Number.isInteger(o)}transform(e,t,a){const{value:r}=e;return{...e,value:kt(r)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var c,d,p,g,v,M,V,O;const r=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:o,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(o)?(g=(p=(d=(c=r==null?void 0:r[0])==null?void 0:c.result)==null?void 0:d[0])==null?void 0:p[0])==null?void 0:g.v:o),formula2:this._parseNumber(l.isFormulaString(s)?(O=(V=(M=(v=r==null?void 0:r[1])==null?void 0:v.result)==null?void 0:M[0])==null?void 0:V[0])==null?void 0:O.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),r=l.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),o=ot.includes(t),s=this.localeService.t("dataValidation.validFail.number");return o?{success:a&&r,formula1:a?void 0:s,formula2:r?void 0:s}:{success:a,formula1:s}}async validatorIsEqual(e,t,a){const{formula1:r}=t,{value:o}=e;return Number.isNaN(r)?!0:o===r}async validatorIsNotEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value!==r}async validatorIsBetween(e,t,a){const{formula1:r,formula2:o}=t;if(Number.isNaN(r)||Number.isNaN(o))return!0;const s=Math.min(r,o),u=Math.max(r,o);return e.value>=s&&e.value<=u}async validatorIsNotBetween(e,t,a){const{formula1:r,formula2:o}=t;if(Number.isNaN(r)||Number.isNaN(o))return!0;const s=Math.min(r,o),u=Math.max(r,o);return e.value<s&&e.value>u}async validatorIsGreaterThan(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value>r}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value>=r}async validatorIsLessThan(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value<r}async validatorIsLessThanOrEqual(e,t,a){const{formula1:r}=t;return Number.isNaN(r)?!0:e.value<=r}}const zr=4,eo=0,Ca=4,Kr=4,Va=6,Bt=6,xe=14;function to(i,n){const e=fe.FontCache.getTextSize(i,n),t=e.width+zr*2,{ba:a,bd:r}=e,o=a+r;return{width:t,height:o+eo*2,ba:a}}function Gr(i,n,e,t){const a=e-xe-Va,r=t-Bt*2,o=i.map(d=>({layout:to(d,n),text:d}));let s;const u=[];o.forEach(d=>{const{layout:p}=d,{width:g,height:v}=p;!s||s.width+g+Ca>a?(s={width:g,height:v,items:[{...d,left:0}]},u.push(s)):(s.items.push({...d,left:s.width+Ca}),s.width=s.width+g+Ca)});let c=0;return u.forEach((d,p)=>{p===u.length-1?c+=d.height:c+=d.height+Kr}),{lines:u,totalHeight:c,contentWidth:a,contentHeight:r,cellAutoHeight:c+Bt*2}}const ao=8;class ro extends fe.Shape{static drawWith(n,e){const{fontFamily:t,fontString:a,fontSize:r,info:o,fill:s,color:u}=e,{layout:c,text:d}=o;n.save(),fe.Rect.drawWith(n,{width:c.width,height:c.height,radius:ao,fill:s||Le}),n.translateWithPrecision(zr,c.ba),n.font=a,n.fillStyle=u,n.fillText(d,0,0),n.restore()}}var no=Object.defineProperty,io=Object.getOwnPropertyDescriptor,oo=(i,n,e,t)=>{for(var a=t>1?void 0:t?io(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&no(n,e,a),a},so=(i,n)=>(e,t)=>n(e,t,i);const lo=new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");let Ta=class{constructor(i){W(this,"zIndex");W(this,"_dropdownInfoMap",new Map);this._commandService=i}_ensureMap(i){let n=this._dropdownInfoMap.get(i);return n||(n=new Map,this._dropdownInfoMap.set(i,n)),n}_generateKey(i,n){return`${i}.${n}`}_drawDownIcon(i,n,e,t,a){const r=e-xe+4;let o=4;switch(a){case l.VerticalAlign.MIDDLE:o=(t-xe)/2+4;break;case l.VerticalAlign.BOTTOM:o=t-xe+4;break}i.save(),i.translateWithPrecision(n.startX+r,n.startY+o),i.fillStyle="#565656",i.fill(lo),i.restore()}drawWith(i,n,e,t){var y,h;const{primaryWithCoord:a,row:r,col:o,style:s,data:u,subUnitId:c}=n,d=a.isMergedMainCell?a.mergeInfo:a,p=u.dataValidation,g=d.endX-d.startX,v=d.endY-d.startY,M=this._ensureMap(c),V=this._generateKey(r,o);if(!p)return;const{cl:O}=s||{},b=(y=typeof O=="object"?O==null?void 0:O.rgb:O)!=null?y:"#000",F=fe.getFontStyleString(s!=null?s:void 0),{rule:P,validator:j}=p,$=j,{vt:U,ht:I}=s||{},w=U!=null?U:l.VerticalAlign.MIDDLE,L=(h=ve(u))!=null?h:"",T=$.parseCellValue(L,P),D=$.getListWithColorMap(P),R=Gr(T,F,g,v);this._drawDownIcon(i,d,g,v,w),i.save(),i.translateWithPrecision(d.startX,d.startY),i.beginPath(),i.rect(0,0,g-xe,v),i.clip(),i.translateWithPrecision(Va,Bt);let _=0;switch(w){case l.VerticalAlign.MIDDLE:_=(R.contentHeight-R.totalHeight)/2;break;case l.VerticalAlign.BOTTOM:_=R.contentHeight-R.totalHeight;break}i.translateWithPrecision(0,_),R.lines.forEach((m,f)=>{i.save();const{width:S,height:C,items:E}=m;let x=0;switch(I){case l.HorizontalAlign.RIGHT:x=R.contentWidth-S;break;case l.HorizontalAlign.CENTER:x=(R.contentWidth-S)/2;break}i.translate(x,f*(C+Kr)),E.forEach(q=>{i.save(),i.translateWithPrecision(q.left,0),ro.drawWith(i,{...F,info:q,color:b,fill:D[q.text]}),i.restore()}),i.restore()}),i.restore(),M.set(V,{left:d.startX,top:d.startY,width:R.contentWidth+Va+xe,height:R.contentHeight+Bt*2})}calcCellAutoHeight(i){var V;const{primaryWithCoord:n,style:e,data:t}=i,a=n.isMergedMainCell?n.mergeInfo:n,r=t.dataValidation;if(!r)return;const o=a.endX-a.startX,s=a.endY-a.startY,u=(V=ve(t))!=null?V:"",{rule:c,validator:d}=r,g=d.parseCellValue(u,c),v=fe.getFontStyleString(e!=null?e:void 0);return Gr(g,v,o,s).cellAutoHeight}isHit(i,n){const{primaryWithCoord:e}=n,t=e.isMergedMainCell?e.mergeInfo:e,{endX:a}=t,{x:r}=i;return r>=a-xe&&r<=a}onPointerDown(i,n){if(n.button===2)return;const{unitId:e,subUnitId:t,row:a,col:r}=i,o={unitId:e,subUnitId:t,row:a,column:r};this._commandService.executeCommand(ft.id,o)}};Ta=oo([so(0,l.ICommandService)],Ta);class uo extends H.BaseDataValidator{constructor(){super(...arguments);W(this,"id",l.DataValidationType.LIST_MULTIPLE);W(this,"title","dataValidation.listMultiple.title");W(this,"operators",[]);W(this,"scopes",["sheet"]);W(this,"formulaInput",Sa);W(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));W(this,"canvasRender",this.injector.createInstance(Ta));W(this,"dropdown",Zt)}skipDefaultFontRender(){return!0}validatorFormula(e){const t=!l.Tools.isBlank(e.formula1);return{success:t,formula1:t?void 0:this.localeService.t("dataValidation.validFail.list")}}parseCellValue(e,t){const a=e.toString();return a?Me(a):[]}async parseFormula(e,t,a){const{formula1:r=""}=e;return{formula1:le.isReferenceString(r)?Xe(le.deserializeRangeWithSheet(r),this._univerInstanceService,t,a):Me(r),formula2:void 0}}async isValidType(e,t,a){const{value:r}=e,{formula1:o}=t;return this.parseCellValue(r,a).every(u=>o.includes(u))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var p,g;const{formula1:r=""}=e,o=this.injector.get(l.IUniverInstanceService),s=(p=t?o.getUniverSheetInstance(t):void 0)!=null?p:o.getCurrentUniverSheetInstance(),u=(g=a?s.getSheetBySheetId(a):void 0)!=null?g:s.getActiveSheet(),c=s.getUnitId(),d=u.getSheetId();return le.isReferenceString(r)?Xe(le.deserializeRangeWithSheet(r),this._univerInstanceService,c,d):Me(r)}getListWithColor(e,t,a){const r=this.getList(e,t,a),o=e.formula2?e.formula2.split(","):[];return r.map((s,u)=>({label:s,color:o[u]}))}getListWithColorMap(e,t,a){const r=this.getListWithColor(e,t,a),o={};return r.forEach(s=>{s.color&&(o[s.label]=s.color)}),o}}var co=Object.defineProperty,fo=Object.getOwnPropertyDescriptor,po=(i,n,e,t)=>{for(var a=t>1?void 0:t?fo(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&co(n,e,a),a},Te=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationController=class extends l.RxDisposable{constructor(n,e,t,a,r,o,s,u){super(),this._univerInstanceService=n,this._sheetDataValidationService=e,this._dataValidatorRegistryService=t,this._injector=a,this._componentManger=r,this._selectionManagerService=o,this._sheetInterceptorService=s,this._dataValidationModel=u,this._init()}_init(){this._registerValidators(),this._initInstanceChange(),this._componentManger.register(Wr,Ba),this._initCommandInterceptor()}_registerValidators(){[Qi,Ji,Zi,Bi,ji,Xi,uo,bi].forEach(n=>{const e=this._injector.createInstance(n);this.disposeWithMe(this._dataValidatorRegistryService.register(e)),this.disposeWithMe({dispose:()=>{this._injector.delete(n)}})})}_initInstanceChange(){const n=this._univerInstanceService.getCurrentUniverSheetInstance();this._sheetDataValidationService.switchCurrent(n.getUnitId(),n.getActiveSheet().getSheetId()),this.disposeWithMe(n.activeSheet$.subscribe(e=>{if(e){const t=n.getUnitId(),a=e.getSheetId();this._sheetDataValidationService.switchCurrent(t,a)}}))}_initCommandInterceptor(){this._sheetInterceptorService.interceptCommand({getMutations:n=>{if(n.id===he.ClearSelectionAllCommand.id){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),r=e.getActiveSheet().getSheetId(),o=this._selectionManagerService.getSelectionRanges(),s=this._dataValidationModel.ensureManager(t,r),u=s.getRuleObjectMatrix().clone();o&&u.removeRange(o);const c=u.diff(s.getDataValidations()),{redoMutations:d,undoMutations:p}=$e(t,r,c);return{undos:p,redos:d}}return{undos:[],redos:[]}}})}},A.DataValidationController=po([l.OnLifecycle(l.LifecycleStages.Rendered,A.DataValidationController),Te(0,l.IUniverInstanceService),Te(1,z.Inject(A.SheetDataValidationService)),Te(2,z.Inject(H.DataValidatorRegistryService)),Te(3,z.Inject(z.Injector)),Te(4,z.Inject(oe.ComponentManager)),Te(5,z.Inject(he.SelectionManagerService)),Te(6,z.Inject(he.SheetInterceptorService)),Te(7,z.Inject(H.DataValidationModel))],A.DataValidationController);var ho=Object.defineProperty,mo=Object.getOwnPropertyDescriptor,vo=(i,n,e,t)=>{for(var a=t>1?void 0:t?mo(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&ho(n,e,a),a},st=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationAlertController=class extends l.Disposable{constructor(n,e,t,a,r){super(),this._hoverManagerService=n,this._cellAlertManagerService=e,this._univerInstanceService=t,this._sheetDataValidationService=a,this._localeService=r,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(n=>{var e,t,a;if(n){const o=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=(e=this._sheetDataValidationService.currentManager)==null?void 0:e.manager,u=o.getCell(n.location.row,n.location.col);if(((t=u==null?void 0:u.dataValidation)==null?void 0:t.validStatus)===l.DataValidationStatus.INVALID){const c=(a=this._cellAlertManagerService.currentAlert)==null?void 0:a.location;if(c&&c.row===n.location.row&&c.col===n.location.col&&c.subUnitId===n.location.subUnitId&&c.unitId===n.location.unitId)return;this._cellAlertManagerService.showAlert({type:se.CellAlertType.ERROR,title:this._localeService.t("dataValidation.error.title"),message:s==null?void 0:s.getRuleErrorMsg(u.dataValidation.ruleId),location:n.location,width:200,height:74});return}}this._cellAlertManagerService.clearAlert()}))}},A.DataValidationAlertController=vo([l.OnLifecycle(l.LifecycleStages.Rendered,A.DataValidationAlertController),st(0,z.Inject(se.HoverManagerService)),st(1,z.Inject(se.CellAlertManagerService)),st(2,l.IUniverInstanceService),st(3,z.Inject(A.SheetDataValidationService)),st(4,z.Inject(l.LocaleService))],A.DataValidationAlertController);var go=Object.defineProperty,_o=Object.getOwnPropertyDescriptor,So=(i,n,e,t)=>{for(var a=t>1?void 0:t?_o(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&go(n,e,a),a},Re=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationRefRangeController=class extends l.Disposable{constructor(e,t,a,r,o,s,u,c,d,p){super();W(this,"_disposableMap",new Map);this._dataValidationModel=e,this._univerInstanceService=t,this._injector=a,this._sheetSkeletonManagerService=r,this._refRangeService=o,this._dataValidationCustomFormulaService=s,this._dataValidationFormulaService=u,this._formulaRefRangeService=c,this._commandService=d,this._dataValidationCacheService=p,this._initRefRange()}_getIdWithUnitId(e,t,a){return`${e}_${t}_${a}`}registerFormula(e,t,a){var c;const r=a.uid,o=this._getIdWithUnitId(e,t,r),s=(c=this._disposableMap.get(o))!=null?c:new Set,u=(d,p)=>{const g=this._dataValidationModel.getRuleById(e,t,r);if(!g)return{redos:[],undos:[]};const v=g[d];if(!v||v===p)return{redos:[],undos:[]};const M={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:H.UpdateRuleType.SETTING,payload:{type:g.type,formula1:g.formula1,formula2:g.formula2,[d]:p}}},V={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:H.UpdateRuleType.SETTING,payload:{type:g.type,formula1:g.formula1,formula2:g.formula2,[d]:p}}},O=[{id:H.UpdateDataValidationMutation.id,params:M}],b=[{id:H.UpdateDataValidationMutation.id,params:V}];return{redos:O,undos:b}};if(a.type===l.DataValidationType.CUSTOM){const d=this._dataValidationCustomFormulaService.getRuleFormulaInfo(e,t,r);if(d){const p=this._formulaRefRangeService.registerFormula(d.formula,g=>u("formula1",g));s.add(()=>p.dispose())}}if(a.type!==l.DataValidationType.CUSTOM){const d=this._dataValidationFormulaService.getRuleFormulaInfo(e,t,r);if(d){const[p,g]=d;if(p){const v=this._formulaRefRangeService.registerFormula(p.text,M=>u("formula1",M));s.add(()=>v.dispose())}if(g){const v=this._formulaRefRangeService.registerFormula(g.text,M=>u("formula1",M));s.add(()=>v.dispose())}}}}register(e,t,a){var c;const r=d=>{const p=[...a.ranges],v=p.map(V=>he.handleOtherDefaultRangeChangeWithEffectRefCommands(V,d)).filter(V=>!!V).flat();if(l.isRangesEqual(v,p))return{redos:[],undos:[]};if(v.length){const V={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:H.UpdateRuleType.RANGE,payload:v}},O=[{id:H.UpdateDataValidationMutation.id,params:V}],b=[{id:H.UpdateDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:H.UpdateRuleType.RANGE,payload:p}}}];return{redos:O,undos:b}}else{const V={unitId:e,subUnitId:t,ruleId:a.uid},O=[{id:H.RemoveDataValidationMutation.id,params:V}],b=H.removeDataValidationUndoFactory(this._injector,V);return{redos:O,undos:b}}},o=[];a.ranges.forEach(d=>{const p=this._refRangeService.registerRefRange(d,r);o.push(()=>p.dispose())});const s=this._getIdWithUnitId(e,t,a.uid),u=(c=this._disposableMap.get(s))!=null?c:new Set;u.add(()=>o.forEach(d=>d())),this._disposableMap.set(s,u)}registerRange(e,t,a){var P,j,$,U,I;const{uid:r,formula1:o,type:s}=a;if(s!==l.DataValidationType.LIST&&s!==l.DataValidationType.LIST_MULTIPLE||!le.isReferenceString(o!=null?o:""))return;const u=le.deserializeRangeWithSheet(o!=null?o:""),c=this._getIdWithUnitId(e,t,r),d=u.unitId||e,p=(P=this._univerInstanceService.getUniverSheetInstance(d))!=null?P:this._univerInstanceService.getCurrentUniverSheetInstance(),g=($=(j=p.getSheetBySheetName(u.sheetName))==null?void 0:j.getSheetId())!=null?$:t,v=(U=p.getSheetBySheetId(g))!=null?U:p.getActiveSheet(),M=new l.DisposableCollection,V=u.range,O=p.getUnitId(),b=v.getSheetId();M.add(this._refRangeService.registerRefRange(V,w=>{let L=he.handleDefaultRangeChangeWithEffectRefCommands(V,w);if(L||(L={startColumn:-1,endColumn:-1,startRow:-1,endRow:-1}),l.Rectangle.equals(L,V))return{redos:[],undos:[]};const T=le.serializeRangeWithSpreadsheet(O,b,L),D=this._dataValidationModel.getRuleById(e,t,r);if(!D)return{redos:[],undos:[]};const R={unitId:e,subUnitId:t,ruleId:r,payload:{type:H.UpdateRuleType.SETTING,payload:{formula1:T,formula2:D.formula2,type:D.type}}},_={unitId:e,subUnitId:t,ruleId:r,payload:{type:H.UpdateRuleType.SETTING,payload:{formula1:D.formula1,formula2:D.formula2,type:D.type}}};return{redos:[{id:H.UpdateDataValidationMutation.id,params:R}],undos:[{id:H.UpdateDataValidationMutation.id,params:_}]}},O,O)),M.add(this.disposeWithMe(this._commandService.onCommandExecuted(w=>{if(w.id===he.SetRangeValuesMutation.id&&w.params){const L=w.params,{cellValue:T,unitId:D,subUnitId:R}=L;if(D===O&&R===b)if(T){let _=!1;l.Range.foreach(V,(y,h)=>{const m=T[y];if(m&&h in m){if(_)return;_=!0,this._dataValidationCacheService.markRangeDirty(D,R,a.ranges)}})}else this._dataValidationCacheService.markRangeDirty(D,R,a.ranges)}})));const F=(I=this._disposableMap.get(c))!=null?I:new Set;F.add(()=>M.dispose()),this._disposableMap.set(c,F)}_initRefRange(){this.disposeWithMe(ge.merge(this._sheetSkeletonManagerService.currentSkeleton$.pipe(zt.map(e=>e==null?void 0:e.sheetId),zt.distinctUntilChanged())).pipe(zt.switchMap(()=>new ge.Observable(e=>{const t=new l.DisposableCollection;return e.next(t),()=>{t.dispose()}}))).subscribe(e=>{e.add(l.toDisposable(this._dataValidationModel.ruleChange$.subscribe(t=>{const{unitId:a,subUnitId:r,rule:o}=t,s=this._univerInstanceService.getCurrentUniverSheetInstance(),u=s.getActiveSheet();if(!(t.unitId!==s.getUnitId()||t.subUnitId!==u.getSheetId()))switch(t.type){case"add":{const c=t.rule;this.register(t.unitId,t.subUnitId,c),this.registerFormula(t.unitId,t.subUnitId,c),this.registerRange(t.unitId,t.subUnitId,c);break}case"remove":{const c=this._disposableMap.get(this._getIdWithUnitId(a,r,o.uid));c&&c.forEach(d=>d());break}case"update":{const c=t.rule,d=this._disposableMap.get(this._getIdWithUnitId(a,r,c.uid));d&&d.forEach(p=>p()),this.register(t.unitId,t.subUnitId,c),this.registerFormula(t.unitId,t.subUnitId,c),this.registerRange(t.unitId,t.subUnitId,c)}}})))})),this.disposeWithMe(l.toDisposable(()=>{this._disposableMap.forEach(e=>{e.forEach(t=>t())}),this._disposableMap.clear()}))}},A.DataValidationRefRangeController=So([l.OnLifecycle(l.LifecycleStages.Rendered,A.DataValidationRefRangeController),Re(0,z.Inject(H.DataValidationModel)),Re(1,z.Inject(l.IUniverInstanceService)),Re(2,z.Inject(z.Injector)),Re(3,z.Inject(se.SheetSkeletonManagerService)),Re(4,z.Inject(he.RefRangeService)),Re(5,z.Inject(A.DataValidationCustomFormulaService)),Re(6,z.Inject(A.DataValidationFormulaService)),Re(7,z.Inject(Aa.FormulaRefRangeService)),Re(8,l.ICommandService),Re(9,z.Inject(Ye))],A.DataValidationRefRangeController);const Xr={dataValidation:{title:"Data validation",validFail:{common:"Please input value or formula",number:"Please input number or formula",formula:"Please input formula",integer:"Please input integer or formula",date:"Please input date or formula",list:"Please input options"},panel:{title:"Data validation management",addTitle:"Create new data validation",removeAll:"Remove All",add:"Create Data validation",range:"Ranges",type:"Type",options:"Advance options",operator:"Operator",removeRule:"Remove",done:"Done",formulaPlaceholder:"Please input value or formula",formulaAnd:"and",invalid:"Invalid",showWarning:"Show warning",rejectInput:"Reject input",messageInfo:"Helper message",showInfo:"Show help text for a selected cell"},operators:{between:"between",greaterThan:"greater than",greaterThanOrEqual:"greater than or equal",lessThan:"less than",lessThanOrEqual:"less than or equal",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is greater than {FORMULA1}",greaterThanOrEqual:"is greater than or equal to {FORMULA1}",lessThan:"is less than {FORMULA1}",lessThanOrEqual:"is less than or equal to {FORMULA1}",equal:"is equal to {FORMULA1}",notEqual:"is not equal to {FORMULA1}",notBetween:"is not between {FORMULA1} and {FORMULA2}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be greater than {FORMULA1}",greaterThanOrEqual:"Value must be greater than or equal to {FORMULA1}",lessThan:"Value must be less than {FORMULA1}",lessThanOrEqual:"Value must be less than or equal to {FORMULA1}",equal:"Value must be equal to {FORMULA1}",notEqual:"Value must be not equal to {FORMULA1}",notBetween:"Value must be not between {FORMULA1} and {FORMULA2}"},date:{title:"Date",operators:{between:"between",greaterThan:"after",greaterThanOrEqual:"on or after",lessThan:"before",lessThanOrEqual:"on or before",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is after {FORMULA1}",greaterThanOrEqual:"is on or after {FORMULA1}",lessThan:"is before {FORMULA1}",lessThanOrEqual:"is on or before {FORMULA1}",equal:"is {FORMULA1}",notEqual:"is not {FORMULA1}",notBetween:"is not between {FORMULA1}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be after {FORMULA1}",greaterThanOrEqual:"Value must be on or after {FORMULA1}",lessThan:"Value must be before {FORMULA1}",lessThanOrEqual:"Value must be on or before {FORMULA1}",equal:"Value must be {FORMULA1}",notEqual:"Value must be not {FORMULA1}",notBetween:"Value must be not between {FORMULA1}"}},list:{title:"Dropdown",name:"Value contains one from range",error:"Input must fall within specified range",emptyError:"Please enter a value",add:"Add",dropdown:"Select",options:"Options",customOptions:"Custom",refOptions:"From a range"},listMultiple:{title:"Dropdown-Multiple",dropdown:"Multiple select"},textLength:{title:"Text length"},decimal:{title:"Number"},whole:{title:"Integer"},checkbox:{title:"Checkbox",error:"This cell's contents violate its validation rule",tips:"Use custom values within cells",checked:"Selected value",unchecked:"Unselected value"},custom:{title:"Custom formula",error:"This cell's contents violate its validation rule",validFail:"Please input a valid formula"},alert:{title:"Error",ok:"OK"},error:{title:"Invalid:"},renderMode:{arrow:"Arrow",chip:"Chip",text:"Plain text",label:"Display style"}}},Qr={dataValidation:{title:"数据验证",validFail:{common:"请输入值或公式",number:"请输入合法的数字或公式",formula:"请输入合法的公式或公式",integer:"请输入合法的整数或公式",date:"请输入合法的日期或公式",list:"请输入至少一个合法选项"},panel:{title:"管理数据验证",addTitle:"新建数据验证",removeAll:"全部删除",add:"新建规则",range:"应用范围",type:"条件类型",options:"高级设置",operator:"数据",removeRule:"删除规则",done:"确认",formulaPlaceholder:"请输入值或公式",formulaAnd:"与",invalid:"数据无效时",showWarning:"显示警告",rejectInput:"拒绝输入",messageInfo:"文字提示",showInfo:"显示所选单元格的提示文字"},operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"大于 {FORMULA1}",greaterThanOrEqual:"大于或等于 {FORMULA1}",lessThan:"小于 {FORMULA1}",lessThanOrEqual:"小于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"值必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"值必须大于 {FORMULA1}",greaterThanOrEqual:"值必须大于或等于 {FORMULA1}",lessThan:"值必须小于 {FORMULA1}",lessThanOrEqual:"值必须小于或等于 {FORMULA1}",equal:"值必须等于 {FORMULA1}",notEqual:"值必须不等于 {FORMULA1}",notBetween:"值必须在 {FORMULA1} 和 {FORMULA2} 范围之外"},date:{title:"日期",operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"晚于 {FORMULA1}",greaterThanOrEqual:"晚于或等于 {FORMULA1}",lessThan:"早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"日期必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"日期必须晚于 {FORMULA1}",greaterThanOrEqual:"日期必须晚于或等于 {FORMULA1}",lessThan:"日期必须早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"日期必须等于 {FORMULA1}",notEqual:"日期必须不等于 {FORMULA1}",notBetween:"日期必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},list:{title:"下拉菜单",name:"值必须是列表中的值",error:"输入必须在指定的范围内",emptyError:"请输入一个值",add:"添加选项",dropdown:"单选",options:"选项来源",customOptions:"自定义",refOptions:"引用数据"},listMultiple:{title:"下拉菜单-多选",dropdown:"多选"},textLength:{title:"文本长度"},decimal:{title:"数字"},whole:{title:"整数"},checkbox:{title:"复选框",error:"此单元格的内容违反了验证规则",tips:"在单元格内使用自定义值",checked:"选中值",unchecked:"未选中值"},custom:{title:"自定义公式",error:"此单元格的内容违反了验证规则",validFail:"请输入合法的公式"},alert:{title:"提示",ok:"确定"},error:{title:"无效:"},renderMode:{arrow:"箭头",chip:"条状标签",text:"纯文本",label:"显示样式"}}};var yo=Object.defineProperty,Do=Object.getOwnPropertyDescriptor,Ro=(i,n,e,t)=>{for(var a=t>1?void 0:t?Do(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&yo(n,e,a),a},Zr=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationAutoFillController=class extends l.Disposable{constructor(n,e){super(),this._autoFillService=n,this._dataValidationModel=e,this._initAutoFill()}_initAutoFill(){const n=()=>({redos:[],undos:[]}),e=a=>{const{source:r,target:o,unitId:s,subUnitId:u}=a,c=this._dataValidationModel.ensureManager(s,u),d=c.getRuleObjectMatrix().clone(),p={row:r.startRow,col:r.startColumn};se.getAutoFillRepeatRange(r,o).forEach(O=>{const b=O.repeatStartCell,F=O.relativeRange,P={startRow:p.row,startColumn:p.col,endColumn:p.col,endRow:p.row},j={startRow:b.row,startColumn:b.col,endColumn:b.col,endRow:b.row};l.Range.foreach(F,($,U)=>{const I=l.Rectangle.getPositionRange({startRow:$,startColumn:U,endColumn:U,endRow:$},P),w=c.getRuleIdByLocation(I.startRow,I.startColumn);if(w){const L=l.Rectangle.getPositionRange({startRow:$,startColumn:U,endColumn:U,endRow:$},j);d.setValue(L.startRow,L.startColumn,w)}})});const v=d.diff(c.getDataValidations()),{redoMutations:M,undoMutations:V}=$e(s,u,v);return{undos:V,redos:M}},t={id:Be,onFillData:(a,r,o)=>o===se.APPLY_TYPE.COPY||o===se.APPLY_TYPE.ONLY_FORMAT||o===se.APPLY_TYPE.SERIES?e(a):n()};this.disposeWithMe(this._autoFillService.addHook(t))}},A.DataValidationAutoFillController=Ro([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationAutoFillController),Zr(0,se.IAutoFillService),Zr(1,z.Inject(H.DataValidationModel))],A.DataValidationAutoFillController);var Mo=Object.defineProperty,Io=Object.getOwnPropertyDescriptor,Oo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Io(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Mo(n,e,a),a},qt=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationSheetController=class extends l.Disposable{constructor(n,e,t,a){super(),this._sheetInterceptorService=n,this._univerInstanceService=e,this._dataValidationModel=t,this._injector=a,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:n=>{if(n.id===he.RemoveSheetCommand.id){const e=n.params,t=e.unitId||this._univerInstanceService.getCurrentUniverSheetInstance().getUnitId(),a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return{redos:[],undos:[]};const r=e.subUnitId||a.getActiveSheet().getSheetId(),o=this._dataValidationModel.ensureManager(t,r);if(!o)return{redos:[],undos:[]};const s=o.getDataValidations(),u=s.map(p=>p.uid),c={unitId:t,subUnitId:r,ruleId:u},d={unitId:t,subUnitId:r,rule:s};return{redos:[{id:H.RemoveDataValidationMutation.id,params:c}],undos:[{id:H.AddDataValidationMutation.id,params:d}]}}return{redos:[],undos:[]}}}))}},A.DataValidationSheetController=Oo([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationSheetController),qt(0,z.Inject(he.SheetInterceptorService)),qt(1,z.Inject(l.IUniverInstanceService)),qt(2,z.Inject(H.DataValidationModel)),qt(3,z.Inject(z.Injector))],A.DataValidationSheetController);var wo=Object.defineProperty,Co=Object.getOwnPropertyDescriptor,Vo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Co(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&wo(n,e,a),a},Jr=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationCopyPasteController=class extends l.Disposable{constructor(e,t){super();W(this,"_copyInfo");this._sheetClipboardService=e,this._dataValidationModel=t,this._initCopyPaste()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:Be,onBeforeCopy:(e,t,a)=>this._collect(e,t,a),onPasteCells:(e,t,a,r)=>{const{copyType:o=se.COPY_TYPE.COPY,pasteType:s}=r,{range:u}=e||{},{range:c,unitId:d,subUnitId:p}=t;return this._generateMutations(c,{copyType:o,pasteType:s,copyRange:u,unitId:d,subUnitId:p})}})}_collect(e,t,a){const r=new l.ObjectMatrix;this._copyInfo={unitId:e,subUnitId:t,matrix:r};const o=this._dataValidationModel.ensureManager(e,t);l.Range.foreach(a,(s,u)=>{const c=o.getRuleIdByLocation(s,u),d=l.Rectangle.getRelativeRange({startRow:s,endRow:s,startColumn:u,endColumn:u},a);r.setValue(d.startRow,d.startColumn,c!=null?c:"")})}_generateMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};if(t.copyType===se.COPY_TYPE.CUT)return this._copyInfo=null,{redos:[],undos:[]};if(!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange)return{redos:[],undos:[]};if([se.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,se.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,se.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,Aa.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};const{unitId:a,subUnitId:r}=this._copyInfo;if(t.unitId!==a||r!==t.subUnitId){const o=this._dataValidationModel.ensureManager(a,r),s=this._dataValidationModel.ensureManager(t.unitId,t.subUnitId),u=s.getRuleObjectMatrix().clone(),c=se.getRepeatRange(t.copyRange,e,!0),d=new Map;c.forEach(({startRange:v})=>{var M;(M=this._copyInfo)==null||M.matrix.forValue((V,O,b)=>{const F=l.Rectangle.getPositionRange({startRow:V,endRow:V,startColumn:O,endColumn:O},v),P=`${r}-${b}`,j=o.getRuleById(b);!s.getRuleById(P)&&j&&d.set(P,{...j,uid:P}),u.setValue(F.startRow,F.startColumn,P)})});const{redoMutations:p,undoMutations:g}=$e(t.unitId,t.subUnitId,u.diffWithAddition(s.getDataValidations(),d.values()));return{redos:p,undos:g}}else{const o=this._dataValidationModel.ensureManager(a,r),s=o.getRuleObjectMatrix().clone();se.getRepeatRange(t.copyRange,e,!0).forEach(({startRange:p})=>{var g;(g=this._copyInfo)==null||g.matrix.forValue((v,M,V)=>{const O=l.Rectangle.getPositionRange({startRow:v,endRow:v,startColumn:M,endColumn:M},p);s.setValue(O.startRow,O.startColumn,V)})});const{redoMutations:c,undoMutations:d}=$e(a,r,s.diff(o.getDataValidations()));return{redos:c,undos:d}}}},A.DataValidationCopyPasteController=Vo([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationCopyPasteController),Jr(0,se.ISheetClipboardService),Jr(1,z.Inject(H.DataValidationModel))],A.DataValidationCopyPasteController);class ba{constructor(n){W(this,"value");this.value=n}addRule(n){const e=n.uid;n.ranges.forEach(t=>{l.Range.foreach(t,(a,r)=>{this.value.setValue(a,r,e)})})}removeRange(n){n.forEach(e=>{l.Range.foreach(e,(t,a)=>{this.value.realDeleteValue(t,a)})})}removeRule(n){n.ranges.forEach(e=>{l.Range.foreach(e,(t,a)=>{this.value.setValue(t,a,"")})})}updateRange(n,e,t){const a=`${n}$`;e.forEach(r=>{l.Range.foreach(r,(o,s)=>{this.value.getValue(o,s)===n&&this.value.setValue(o,s,a)})}),t.forEach(r=>{l.Range.foreach(r,(o,s)=>{this.value.setValue(o,s,n)})}),e.forEach(r=>{l.Range.foreach(r,(o,s)=>{this.value.getValue(o,s)===a&&this.value.realDeleteValue(o,s)})})}diff(n){const e=[];let t=0;return n.forEach((a,r)=>{const o=l.queryObjectMatrix(this.value,u=>u===a.uid),s=a.ranges;(o.length!==s.length||o.some((u,c)=>!l.Rectangle.equals(u,s[c])))&&e.push({type:"update",ruleId:a.uid,oldRanges:s,newRanges:o}),o.length===0&&(e.push({type:"delete",rule:a,index:r-t}),t++)}),e}diffWithAddition(n,e){const t=[];let a=0;return n.forEach((r,o)=>{const s=l.queryObjectMatrix(this.value,c=>c===r.uid),u=r.ranges;(s.length!==u.length||s.some((c,d)=>!l.Rectangle.equals(c,u[d])))&&t.push({type:"update",ruleId:r.uid,oldRanges:u,newRanges:s}),s.length===0&&(t.push({type:"delete",rule:r,index:o-a}),a++)}),Array.from(e).forEach(r=>{const o=l.queryObjectMatrix(this.value,s=>s===r.uid);t.push({type:"add",rule:{...r,ranges:o}})}),t}clone(){return new ba(new l.ObjectMatrix(this.value.clone()))}getValue(n,e){return this.value.getValue(n,e)}setValue(n,e,t){return this.value.setValue(n,e,t)}}class To extends H.DataValidationManager{constructor(e,t,a,r){super(e,t,a);W(this,"_ruleMatrix");W(this,"_dataValidatorRegistryService");W(this,"_dataValidationCacheService");W(this,"_dataValidationFormulaService");W(this,"_dataValidationCustomFormulaService");W(this,"_cache");W(this,"_dataValidationRefRangeController");this._injector=r,this._dataValidatorRegistryService=this._injector.get(H.DataValidatorRegistryService),this._dataValidationCacheService=this._injector.get(Ye),this._dataValidationFormulaService=this._injector.get(A.DataValidationFormulaService),this._dataValidationCustomFormulaService=this._injector.get(A.DataValidationCustomFormulaService),this._dataValidationRefRangeController=this._injector.get(A.DataValidationRefRangeController),this._cache=this._dataValidationCacheService.ensureCache(e,t);const o=new l.ObjectMatrix;a==null||a.forEach(s=>{const u=s.uid;s.ranges.forEach(c=>{l.Range.foreach(c,(d,p)=>{o.setValue(d,p,u)})})}),a==null||a.forEach(s=>{this._dataValidationRefRangeController.register(e,t,s)}),this._ruleMatrix=new ba(o)}addRule(e,t){this._ruleMatrix.addRule(e),this._dataValidationCacheService.addRule(this.unitId,this.subUnitId,e),this._dataValidationFormulaService.addRule(this.unitId,this.subUnitId,e.uid,e.formula1,e.formula2),this._dataValidationCustomFormulaService.addRule(this.unitId,this.subUnitId,e),super.addRule(e,t)}updateRule(e,t){const a=this.getRuleById(e);if(!a)throw new Error(`Rule not found! id: ${e}`);return t.type===H.UpdateRuleType.RANGE?(this._ruleMatrix.updateRange(e,a.ranges,t.payload),this._dataValidationCacheService.updateRuleRanges(this.unitId,this.subUnitId,e,t.payload,a.ranges),this._dataValidationCustomFormulaService.updateRuleRanges(this.unitId,this.subUnitId,e,a.ranges,t.payload)):t.type===H.UpdateRuleType.SETTING&&(this._dataValidationCacheService.markRangeDirty(this.unitId,this.subUnitId,a.ranges),this._dataValidationFormulaService.updateRuleFormulaText(this.unitId,this.subUnitId,e,t.payload.formula1,t.payload.formula2),this._dataValidationCustomFormulaService.updateRuleFormula(this.unitId,this.subUnitId,e,a.ranges,t.payload.formula1)),super.updateRule(e,t)}removeRule(e){const t=this.getRuleById(e);t&&(this._ruleMatrix.removeRule(t),this._dataValidationCacheService.removeRule(this.unitId,this.subUnitId,t)),super.removeRule(e)}getRuleIdByLocation(e,t){return this._ruleMatrix.getValue(e,t)}getRuleByLocation(e,t){const a=this.getRuleIdByLocation(e,t);if(a)return this.getRuleById(a)}validator(e,t,a,r){const{col:o,row:s,unitId:u,subUnitId:c}=a,d=t.uid,p=this._dataValidatorRegistryService.getValidatorItem(t.type);if(p){const g=this._cache.getValue(s,o);return!g||g.value!==e?(this._cache.setValue(s,o,{value:e,status:l.DataValidationStatus.VALIDATING,ruleId:d}),p.validator({value:e,unitId:u,subUnitId:c,row:s,column:o},t).then(v=>{const M=v?l.DataValidationStatus.VALID:l.DataValidationStatus.INVALID;this._cache.setValue(s,o,{value:e,status:M,ruleId:d}),r(M)}),l.DataValidationStatus.VALIDATING):g.status}else return l.DataValidationStatus.VALID}getRuleErrorMsg(e){const t=this.getRuleById(e);if(!t)return"";const a=this._dataValidatorRegistryService.getValidatorItem(t.type);return t.error?t.error:a?a.getRuleFinalError(t):""}getRuleObjectMatrix(){return this._ruleMatrix}}var bo=Object.defineProperty,Eo=Object.getOwnPropertyDescriptor,Fo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Eo(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&bo(n,e,a),a},Ht=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationResourceController=class extends l.Disposable{constructor(n,e,t,a){super(),this._resourceManagerService=n,this._univerInstanceService=e,this._dataValidationModel=t,this._injector=a,this._initDataValidationDataSource(),this._initSnapshot()}_createSheetDataValidationManager(n,e){return new To(n,e,[],this._injector)}_initDataValidationDataSource(){this._dataValidationModel.setManagerCreator(this._createSheetDataValidationManager.bind(this))}_initSnapshot(){const n=r=>{const o=this._dataValidationModel.getUnitRules(r),s={};return o?(o.forEach(([u,c])=>{s[u]=c}),JSON.stringify(s)):""},e=r=>{if(!r)return{};try{return JSON.parse(r)}catch{return{}}},t=r=>{const o=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(o,Be,{toJson:s=>n(s),parseJson:s=>e(s),onChange:(s,u)=>{Object.keys(u).forEach(c=>{u[c].forEach(p=>{this._dataValidationModel.addRule(s,c,p)})})}}))};this.disposeWithMe(l.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(t))),this.disposeWithMe(l.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const o=r.getUnitId();this._resourceManagerService.disposePluginResource(o,Be)})));const a=this._univerInstanceService.getCurrentUniverSheetInstance();t(a)}},A.DataValidationResourceController=Fo([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationResourceController),Ht(0,l.IResourceManagerService),Ht(1,l.IUniverInstanceService),Ht(2,z.Inject(H.DataValidationModel)),Ht(3,z.Inject(z.Injector))],A.DataValidationResourceController);var Ao=Object.defineProperty,Po=Object.getOwnPropertyDescriptor,Lo=(i,n,e,t)=>{for(var a=t>1?void 0:t?Po(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&Ao(n,e,a),a},lt=(i,n)=>(e,t)=>n(e,t,i);A.DataValidationRejectInputController=class extends l.Disposable{constructor(n,e,t,a,r){super(),this._editorBridgeService=n,this._dataValidationModel=e,this._dataValidatorRegistryService=t,this._dialogService=a,this._localeService=r,this._initEditorBridgeInterceptor()}_initEditorBridgeInterceptor(){this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,{handler:async(n,e,t)=>{const a=await n,{worksheet:r,row:o,col:s,unitId:u,subUnitId:c}=e,d=this._dataValidationModel.ensureManager(u,c),p=d.getRuleIdByLocation(o,s),g=p?d.getRuleById(p):void 0;if(!g||g.errorStyle!==l.DataValidationErrorStyle.STOP)return t(Promise.resolve(a));const v=await this._dataValidatorRegistryService.getValidatorItem(g.type);if(!v)return t(Promise.resolve(a));const M=e.worksheet.getCellRaw(e.row,e.col);if(await v.validator({value:ve(M),row:o,column:s,unitId:u,subUnitId:c},g))return t(Promise.resolve(a));const O=r.getCellRaw(o,s);return this._dialogService.open({width:368,title:{title:this._localeService.t("dataValidation.alert.title")},id:"reject-input-dialog",children:{title:v.generateRuleErrorMessage(g)},footer:{title:X.createElement(J.Button,{type:"primary",onClick:()=>this._dialogService.close("reject-input-dialog")},this._localeService.t("dataValidation.alert.ok"))},onClose:()=>{this._dialogService.close("reject-input-dialog")}}),t(Promise.resolve(O))}})}},A.DataValidationRejectInputController=Lo([l.OnLifecycle(l.LifecycleStages.Ready,A.DataValidationRejectInputController),lt(0,se.IEditorBridgeService),lt(1,z.Inject(H.DataValidationModel)),lt(2,z.Inject(H.DataValidatorRegistryService)),lt(3,oe.IDialogService),lt(4,z.Inject(l.LocaleService))],A.DataValidationRejectInputController);var No=Object.defineProperty,jo=Object.getOwnPropertyDescriptor,Uo=(i,n,e,t)=>{for(var a=t>1?void 0:t?jo(n,e):n,r=i.length-1,o;r>=0;r--)(o=i[r])&&(a=(t?o(n,e,a):o(a))||a);return t&&a&&No(n,e,a),a},Ea=(i,n)=>(e,t)=>n(e,t,i);A.UniverSheetsDataValidationPlugin=class extends l.Plugin{constructor(n,e,t){super(Be),this._injector=n,this._commandService=e,this._localeService=t}onStarting(n){[[Pe],[A.SheetDataValidationService],[Ye],[A.DataValidationFormulaService],[A.DataValidationCustomFormulaService],[A.RegisterOtherFormulaService],[Ae],[A.DataValidationResourceController],[A.DataValidationController],[A.DataValidationRenderController],[A.DataValidationAlertController],[A.DataValidationRefRangeController],[A.DataValidationAutoFillController],[A.DataValidationSheetController],[A.DataValidationCopyPasteController],[A.DataValidationRejectInputController]].forEach(e=>{n.add(e)}),[pt,Gt,Kt,at,ft,Wa,xa,Ge,dn].forEach(e=>{this._commandService.registerCommand(e)}),this._localeService.load({zhCN:Qr,enUS:Xr})}},A.UniverSheetsDataValidationPlugin=Uo([Ea(0,z.Inject(z.Injector)),Ea(1,l.ICommandService),Ea(2,z.Inject(l.LocaleService))],A.UniverSheetsDataValidationPlugin),Object.defineProperty(A,"ICommandService",{enumerable:!0,get:()=>l.ICommandService}),Object.defineProperty(A,"LocaleService",{enumerable:!0,get:()=>l.LocaleService}),Object.defineProperty(A,"Plugin",{enumerable:!0,get:()=>l.Plugin}),A.AddSheetDataValidationAndOpenCommand=Gt,A.AddSheetDataValidationCommand=pt,A.DATA_VALIDATION_PLUGIN_NAME=Be,A.DataValidationCacheService=Ye,A.DataValidationFormulaMarkDirty=at,A.HideDataValidationDropdown=Wa,A.ShowDataValidationDropdown=ft,A.UpdateSheetDataValidationRangeCommand=Kt,A.enUS=Xr,A.zhCN=Qr,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})});
|
|
9
|
+
*/var la=B,ua=Symbol.for("react.element"),da=Symbol.for("react.fragment"),ca=Object.prototype.hasOwnProperty,ha=la.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ma={key:!0,ref:!0,__self:!0,__source:!0};function Ct(o,r,e){var t,a={},n=null,i=null;e!==void 0&&(n=""+e),r.key!==void 0&&(n=""+r.key),r.ref!==void 0&&(i=r.ref);for(t in r)ca.call(r,t)&&!ma.hasOwnProperty(t)&&(a[t]=r[t]);if(o&&o.defaultProps)for(t in r=o.defaultProps,r)a[t]===void 0&&(a[t]=r[t]);return{$$typeof:ua,type:o,key:n,ref:i,props:a,_owner:ha.current}}ke.Fragment=da,ke.jsx=Ct,ke.jsxs=Ct,It.exports=ke;var p=It.exports;function fa(){const o=Y.useDependency(Se),r=z.useObservable(o.activeDropdown$,o.activeDropdown),e=Y.useDependency(z.ComponentManager);if(!r)return null;const{location:t,componentKey:a}=r,n=e.get(a),i=`${t.unitId}-${t.subUnitId}-${t.row}-${t.col}`;if(!n)return null;const s=()=>{o.hideDropdown()};return p.jsx(n,{location:t,hideFn:s},i)}const Ot="sheet.ui.dropdown";var pa=Object.defineProperty,va=Object.getOwnPropertyDescriptor,ga=(o,r,e,t)=>{for(var a=t>1?void 0:t?va(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&pa(r,e,a),a},ge=(o,r)=>(e,t)=>r(e,t,o);let Se=class extends l.Disposable{constructor(r,e,t,a,n,i,s){super();M(this,"_activeDropdown");M(this,"_activeDropdown$",new re.Subject);M(this,"_currentPopup",null);M(this,"activeDropdown$",this._activeDropdown$.asObservable());M(this,"_zenVisible",!1);this._canvasPopupManagerService=r,this._univerInstanceService=e,this._sheetSkeletonManagerService=t,this._dataValidatorRegistryService=a,this._zenZoneService=n,this._renderManagerService=i,this._dataValidationModel=s,this._init()}get activeDropdown(){return this._activeDropdown}_init(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(r=>{this._zenVisible=r,r&&this.hideDropdown()}))}showDropdown(r){const{location:e}=r,{row:t,col:a}=e;if(this._currentPopup&&this._currentPopup.dispose(),this._zenVisible)return;this._activeDropdown=r,this._activeDropdown$.next(this._activeDropdown);const n=this._renderManagerService.getRenderById(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),i=this._canvasPopupManagerService.attachPopupToCell(t,a,{componentKey:Ot,onClickOutside:()=>{this.hideDropdown()},offset:[0,3],excludeOutside:[n==null?void 0:n.engine.getCanvasElement()].filter(Boolean)});if(!i)throw new Error("[DataValidationDropdownManagerService]: cannot show dropdown!");const s=new l.DisposableCollection;s.add(i),s.add({dispose:()=>{var u,d;(d=(u=this._activeDropdown)==null?void 0:u.onHide)==null||d.call(u)}}),this._currentPopup=s}hideDropdown(){this._activeDropdown&&(this._currentPopup&&this._currentPopup.dispose(),this._currentPopup=null,this._activeDropdown=null,this._activeDropdown$.next(null))}showDataValidationDropdown(r,e,t,a,n){const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const s=i.getSheetBySheetId(e);if(!s)return;const d=this._dataValidationModel.ensureManager(r,e).getRuleByLocation(t,a);if(!this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:r,sheetId:e})||!d)return;const h=this._dataValidatorRegistryService.getValidatorItem(d.type);if(!h||!h.dropdown){this.hideDropdown();return}this.showDropdown({location:{workbook:i,worksheet:s,row:t,col:a,unitId:r,subUnitId:e},componentKey:h.dropdown,onHide:n})}};Se=ga([ge(0,y.Inject(X.SheetCanvasPopManagerService)),ge(1,l.IUniverInstanceService),ge(2,y.Inject(X.SheetSkeletonManagerService)),ge(3,y.Inject(O.DataValidatorRegistryService)),ge(4,z.IZenZoneService),ge(5,K.IRenderManagerService),ge(6,y.Inject(O.DataValidationModel))],Se);class _e extends l.Disposable{constructor(){super(...arguments);M(this,"_open$",new re.BehaviorSubject(!1));M(this,"_activeRule");M(this,"_activeRule$",new re.BehaviorSubject(void 0));M(this,"open$",this._open$.pipe(re.distinctUntilChanged()));M(this,"activeRule$",this._activeRule$.asObservable())}get activeRule(){return this._activeRule}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}setActiveRule(e){this._activeRule=e,this._activeRule$.next(e)}}const wt="DataValidationPanel",Te={id:"data-validation.operation.open-validation-panel",type:l.CommandType.OPERATION,handler(o,r){if(!r)return!1;const{ruleId:e,isAdd:t}=r,a=o.get(_e),n=o.get(O.DataValidationModel),i=o.get(l.IUniverInstanceService),s=o.get(z.ISidebarService),u=i.getCurrentUniverSheetInstance(),d=u.getActiveSheet(),c=u.getUnitId(),h=d.getSheetId(),f=e?n.getRuleById(c,h,e):void 0;return a.open(),a.setActiveRule(f&&{unitId:c,subUnitId:h,rule:f}),s.open({header:{title:t?"dataValidation.panel.addTitle":"dataValidation.panel.title"},children:{label:wt},width:312}),!0}},yt={id:"data-validation.operation.close-validation-panel",type:l.CommandType.OPERATION,handler(o){return o.get(_e).close(),!0}},Sa={id:"data-validation.operation.toggle-validation-panel",type:l.CommandType.OPERATION,handler(o){const r=o.get(l.ICommandService),e=o.get(_e);return e.open(),e.isOpen?r.executeCommand(yt.id):r.executeCommand(Te.id),!0}},We={type:l.CommandType.OPERATION,id:"sheet.operation.show-data-validation-dropdown",handler(o,r){if(!r)return!1;const e=o.get(Se),{unitId:t,subUnitId:a,row:n,column:i}=r,s=e.activeDropdown,u=s==null?void 0:s.location;return u&&u.unitId===t&&u.subUnitId===a&&u.row===n&&u.col===i||e.showDataValidationDropdown(t,a,n,i),!0}},Et={type:l.CommandType.OPERATION,id:"sheet.operation.hide-data-validation-dropdown",handler(o,r){return r?(o.get(Se).hideDropdown(),!0):!1}};function Oe(o,r,e){const t=[],a=[];return e.forEach(n=>{switch(n.type){case"delete":t.push({id:O.RemoveDataValidationMutation.id,params:{unitId:o,subUnitId:r,ruleId:n.rule.uid}}),a.unshift({id:O.AddDataValidationMutation.id,params:{unitId:o,subUnitId:r,rule:n.rule,index:n.index}});break;case"update":{t.push({id:O.UpdateDataValidationMutation.id,params:{unitId:o,subUnitId:r,ruleId:n.ruleId,payload:{type:O.UpdateRuleType.RANGE,payload:n.newRanges}}}),a.unshift({id:O.UpdateDataValidationMutation.id,params:{unitId:o,subUnitId:r,ruleId:n.ruleId,payload:{type:O.UpdateRuleType.RANGE,payload:n.oldRanges}}});break}case"add":{t.push({id:O.AddDataValidationMutation.id,params:{unitId:o,subUnitId:r,rule:n.rule}}),a.unshift({id:O.RemoveDataValidationMutation.id,params:{unitId:o,subUnitId:r,ruleId:n.rule.uid}});break}}}),{redoMutations:t,undoMutations:a}}const rt={type:l.CommandType.COMMAND,id:"sheets.command.updateDataValidationRuleRange",async handler(o,r){if(!r)return!1;const{unitId:e,subUnitId:t,ranges:a,ruleId:n}=r,i=o.get(O.DataValidationModel),s=o.get(l.ICommandService),u=o.get(l.IUndoRedoService),d=i.ensureManager(e,t),c=d.getRuleById(n);if(!c)return!1;const h=c.ranges,f=d.getRuleObjectMatrix().clone();f.updateRange(n,h,a);const m=f.diff(d.getDataValidations()),{redoMutations:g,undoMutations:R}=Oe(e,t,m);return u.pushUndoRedo({undoMutations:R,redoMutations:g,unitID:e}),await l.sequenceExecuteAsync(g,s),!0}},He={type:l.CommandType.COMMAND,id:"sheets.command.addDataValidation",async handler(o,r){if(!r)return!1;const{unitId:e,subUnitId:t,rule:a}=r,n=o.get(O.DataValidationModel),i=o.get(l.ICommandService),s=o.get(l.IUndoRedoService),u=n.ensureManager(e,t),d=u.getRuleObjectMatrix().clone();d.addRule(a);const c=d.diff(u.getDataValidations()),h={unitId:e,subUnitId:t,rule:a},{redoMutations:f,undoMutations:m}=Oe(e,t,c);return f.push({id:O.AddDataValidationMutation.id,params:h}),m.unshift({id:O.RemoveDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid}}),s.pushUndoRedo({unitID:e,redoMutations:f,undoMutations:m}),await l.sequenceExecuteAsync(f,i),!0}},it={type:l.CommandType.COMMAND,id:"data-validation.command.addRuleAndOpen",async handler(o){const e=o.get(l.IUniverInstanceService).getCurrentUniverSheetInstance(),t=e.getActiveSheet(),a=O.createDefaultNewRule(o),n=o.get(l.ICommandService),i=e.getUnitId(),s=t.getSheetId(),u={rule:a,unitId:i,subUnitId:s};return await n.executeCommand(He.id,u)?(n.executeCommand(Te.id,{ruleId:a.uid,isAdd:!0}),!0):!1}};var ie=function(){return ie=Object.assign||function(o){for(var r,e=1,t=arguments.length;e<t;e++){r=arguments[e];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(o[a]=r[a])}return o},ie.apply(this,arguments)},_a=function(o,r){var e={};for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&r.indexOf(t)<0&&(e[t]=o[t]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,t=Object.getOwnPropertySymbols(o);a<t.length;a++)r.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(o,t[a])&&(e[t[a]]=o[t[a]]);return e},fe=B.forwardRef(function(o,r){var e=o.icon,t=o.id,a=o.className,n=o.extend,i=_a(o,["icon","id","className","extend"]),s="univerjs-icon univerjs-icon-".concat(t," ").concat(a||"").trim(),u=B.useRef("_".concat(Da()));return Ft(e,"".concat(t),{defIds:e.defIds,idSuffix:u.current},ie({ref:r,className:s},i),n)});function Ft(o,r,e,t,a){return B.createElement(o.tag,ie(ie({key:r},Ra(o,e,a)),t),(Ma(o,e).children||[]).map(function(n,i){return Ft(n,"".concat(r,"-").concat(o.tag,"-").concat(i),e,void 0,a)}))}function Ra(o,r,e){var t=ie({},o.attrs);e!=null&&e.colorChannel1&&t.fill==="colorChannel1"&&(t.fill=e.colorChannel1);var a=r.defIds;return!a||a.length===0||(o.tag==="use"&&t["xlink:href"]&&(t["xlink:href"]=t["xlink:href"]+r.idSuffix),Object.entries(t).forEach(function(n){var i=n[0],s=n[1];typeof s=="string"&&(t[i]=s.replace(/url\(#(.*)\)/,"url(#$1".concat(r.idSuffix,")")))})),t}function Ma(o,r){var e,t=r.defIds;return!t||t.length===0?o:o.tag==="defs"&&(!((e=o.children)===null||e===void 0)&&e.length)?ie(ie({},o),{children:o.children.map(function(a){return typeof a.attrs.id=="string"&&t&&t.indexOf(a.attrs.id)>-1?ie(ie({},a),{attrs:ie(ie({},a.attrs),{id:a.attrs.id+r.idSuffix})}):a})}):o}function Da(){return Math.random().toString(36).substring(2,8)}fe.displayName="UniverIcon";var Va={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.44 3.57291C14.698 3.83093 14.698 4.24927 14.44 4.50729L6.44342 12.5037C6.28721 12.6599 6.03395 12.6599 5.87774 12.5037L1.55992 8.18578C1.3019 7.92776 1.3019 7.50942 1.55993 7.2514C1.81795 6.99338 2.23629 6.99338 2.49431 7.25141L6.01916 10.7763C6.09727 10.8544 6.2239 10.8544 6.30201 10.7763L13.5056 3.57291C13.7636 3.31489 14.1819 3.31489 14.44 3.57291Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Tt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"check-mark-single",ref:r,icon:Va}))});Tt.displayName="CheckMarkSingle";const Ia=Tt;var Ca={tag:"svg",attrs:{fill:"none",viewBox:"0 0 17 17",width:"1em",height:"1em"},children:[{tag:"path",attrs:{stroke:"currentColor",d:"M6.06964 2.57153H2.73631C2.36812 2.57153 2.06964 2.87001 2.06964 3.2382V6.57153C2.06964 6.93973 2.36812 7.2382 2.73631 7.2382H6.06964C6.43784 7.2382 6.73631 6.93973 6.73631 6.57153V3.2382C6.73631 2.87001 6.43784 2.57153 6.06964 2.57153zM6.06964 9.90479H2.73631C2.36812 9.90479 2.06964 10.2033 2.06964 10.5715V13.9048C2.06964 14.273 2.36812 14.5715 2.73631 14.5715H6.06964C6.43784 14.5715 6.73631 14.273 6.73631 13.9048V10.5715C6.73631 10.2033 6.43784 9.90479 6.06964 9.90479z",strokeLinejoin:"round",strokeWidth:1.33}},{tag:"path",attrs:{stroke:"currentColor",d:"M9.20471 5.06981L11.2023 6.73445 14.2047 3.73213M13.7047 10.238L9.70465 14.238M9.70477 10.238L13.7048 14.238",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.33}}]},bt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"data-validation-single",ref:r,icon:Ca}))});bt.displayName="DataValidationSingle";var Oa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6.78662 6.17993C7.12169 6.17993 7.39331 6.45156 7.39331 6.78662V10.7301C7.39331 11.0652 7.12169 11.3368 6.78662 11.3368 6.45156 11.3368 6.17993 11.0652 6.17993 10.7301V6.78662C6.17993 6.45156 6.45156 6.17993 6.78662 6.17993zM9.82007 6.78662C9.82007 6.45156 9.54844 6.17993 9.21338 6.17993 8.87831 6.17993 8.60669 6.45156 8.60669 6.78662V10.7301C8.60669 11.0652 8.87831 11.3368 9.21338 11.3368 9.54844 11.3368 9.82007 11.0652 9.82007 10.7301V6.78662z"}},{tag:"path",attrs:{fill:"currentColor",d:"M6.57094 1.32642C6.34938 1.32642 6.14544 1.44719 6.03894 1.64148L5.21395 3.14648H1.93311C1.59804 3.14648 1.32642 3.41811 1.32642 3.75317C1.32642 4.08824 1.59804 4.35986 1.93311 4.35986H2.84314V14.0669C2.84314 14.402 3.11476 14.6736 3.44983 14.6736H12.5502C12.8852 14.6736 13.1569 14.402 13.1569 14.0669V4.35986H14.0669C14.402 4.35986 14.6736 4.08824 14.6736 3.75317C14.6736 3.41811 14.402 3.14648 14.0669 3.14648H10.7895L9.98357 1.64602C9.87785 1.4492 9.67252 1.32642 9.44911 1.32642H6.57094ZM9.4122 3.14648L9.08632 2.53979H6.93024L6.59767 3.14648H9.4122ZM4.05652 4.35986V13.4602H11.9435V4.35986H4.05652Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Lt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"delete-single",ref:r,icon:Oa}))});Lt.displayName="DeleteSingle";const At=Lt;var wa={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_249",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_249)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.74717 2.0944C8.74717 1.68671 8.41279 1.3562 8.00032 1.3562C7.58785 1.3562 7.25347 1.68671 7.25347 2.0944V7.26186H2.02541C1.61294 7.26186 1.27856 7.59237 1.27856 8.00007C1.27856 8.40777 1.61294 8.73827 2.02541 8.73827H7.25347V13.9057C7.25347 14.3134 7.58785 14.6439 8.00032 14.6439C8.41279 14.6439 8.74717 14.3134 8.74717 13.9057V8.73827H13.975C14.3874 8.73827 14.7218 8.40777 14.7218 8.00007C14.7218 7.59237 14.3874 7.26186 13.975 7.26186H8.74717V2.0944Z"}}]}]},Nt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"increase-single",ref:r,icon:wa}))});Nt.displayName="IncreaseSingle";const ya=Nt;var Ea={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_102_556",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{mask:"url(#mask0_102_556)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M0.629584 3.99986C1.13729 3.4922 1.9604 3.49224 2.46806 3.99995L7.57569 9.10806C7.81 9.3424 8.18992 9.3424 8.42424 9.10808L13.5323 3.99998C14.04 3.4923 14.8631 3.4923 15.3708 3.99998C15.8785 4.50766 15.8785 5.33078 15.3708 5.83846L9.41415 11.7951C8.63307 12.5762 7.36669 12.5762 6.58565 11.7951L0.629497 5.83834C0.121839 5.33063 0.121879 4.50752 0.629584 3.99986Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},jt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"more-down-single",ref:r,icon:Ea}))});jt.displayName="MoreDownSingle";const Fa=jt;var Ta={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_506_5",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M16 16H32V32H16z",transform:"rotate(180 16 16)"}}]},{tag:"g",attrs:{mask:"url(#mask0_506_5)"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M15.3704 12.0001C14.8627 12.5078 14.0396 12.5078 13.5319 12.0001L8.42431 6.89194C8.19 6.6576 7.81008 6.6576 7.57576 6.89192L2.46766 12C1.95998 12.5077 1.13687 12.5077 0.629185 12C0.121504 11.4923 0.121504 10.6692 0.629185 10.1615L6.58585 4.20487C7.36693 3.4238 8.63331 3.42383 9.41435 4.20494L15.3705 10.1617C15.8782 10.6694 15.8781 11.4925 15.3704 12.0001Z",fillRule:"evenodd",clipRule:"evenodd"}}]}]},Ut=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"more-up-single",ref:r,icon:Ta}))});Ut.displayName="MoreUpSingle";const ba=Ut;var La={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"mask",attrs:{id:"mask0_622_8",style:{maskType:"alpha"},width:16,height:16,x:0,y:0,maskUnits:"userSpaceOnUse"},children:[{tag:"path",attrs:{fill:"#D9D9D9",d:"M0 0H16V16H0z"}}]},{tag:"g",attrs:{fill:"currentColor",mask:"url(#mask0_622_8)"},children:[{tag:"path",attrs:{d:"M6 5C6.55228 5 7 4.55228 7 4 7 3.44772 6.55228 3 6 3 5.44772 3 5 3.44772 5 4 5 4.55228 5.44772 5 6 5zM6 9C6.55228 9 7 8.55229 7 8 7 7.44772 6.55228 7 6 7 5.44772 7 5 7.44772 5 8 5 8.55229 5.44772 9 6 9zM7 12C7 12.5523 6.55228 13 6 13 5.44772 13 5 12.5523 5 12 5 11.4477 5.44772 11 6 11 6.55228 11 7 11.4477 7 12zM10 5C10.5523 5 11 4.55228 11 4 11 3.44772 10.5523 3 10 3 9.44771 3 9 3.44772 9 4 9 4.55228 9.44771 5 10 5zM11 8C11 8.55229 10.5523 9 10 9 9.44771 9 9 8.55229 9 8 9 7.44772 9.44771 7 10 7 10.5523 7 11 7.44772 11 8zM10 13C10.5523 13 11 12.5523 11 12 11 11.4477 10.5523 11 10 11 9.44771 11 9 11.4477 9 12 9 12.5523 9.44771 13 10 13z"}}]}]},Pt=B.forwardRef(function(o,r){return B.createElement(fe,Object.assign({},o,{id:"sequence-single",ref:r,icon:La}))});Pt.displayName="SequenceSingle";const Aa=Pt,ot={dataValidationOptionsButton:"univer-data-validation-options-button",dataValidationOptionsButtonIcon:"univer-data-validation-options-button-icon"};function Na(o){var d;const r=Y.useDependency(l.LocaleService),e=Y.useDependency(z.ComponentManager),{value:t,onChange:a,extraComponent:n}=o,[i,s]=B.useState(!1),u=n?e.get(n):null;return p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:ot.dataValidationOptionsButton,onClick:()=>s(!i),children:[r.t("dataValidation.panel.options"),i?p.jsx(ba,{className:ot.dataValidationOptionsButtonIcon}):p.jsx(Fa,{className:ot.dataValidationOptionsButtonIcon})]}),i&&p.jsxs(p.Fragment,{children:[u?p.jsx(u,{value:t,onChange:a}):null,p.jsx(j.FormLayout,{label:r.t("dataValidation.panel.invalid"),children:p.jsxs(j.RadioGroup,{value:`${(d=t.errorStyle)!=null?d:l.DataValidationErrorStyle.WARNING}`,onChange:c=>a({...t,errorStyle:+c}),children:[p.jsx(j.Radio,{value:`${l.DataValidationErrorStyle.WARNING}`,children:r.t("dataValidation.panel.showWarning")}),p.jsx(j.Radio,{value:`${l.DataValidationErrorStyle.STOP}`,children:r.t("dataValidation.panel.rejectInput")})]})}),p.jsx(j.FormLayout,{label:r.t("dataValidation.panel.messageInfo"),children:p.jsx(j.Checkbox,{checked:t.showInputMessage,onChange:()=>a({...t,showInputMessage:!t.showInputMessage}),children:r.t("dataValidation.panel.showInfo")})}),t.showInputMessage?p.jsx(j.FormLayout,{children:p.jsx(j.Input,{value:t.error,onChange:c=>a({...t,error:c})})}):null]})]})}const we={dataValidationDetailFormItem:"univer-data-validation-detail-form-item",dataValidationDetailButtons:"univer-data-validation-detail-buttons",dataValidationDetailButton:"univer-data-validation-detail-button"},ja=o=>l.debounce(async(r,e,t,a)=>{const n=await o.executeCommand(r,e,t);a==null||a(n)},275);function Ua(){const[o,r]=B.useState(0),e=Y.useDependency(_e),t=z.useObservable(e.activeRule$,e.activeRule),{unitId:a,subUnitId:n,rule:i}=t||{},s=i.uid,u=Y.useDependency(O.DataValidatorRegistryService),d=Y.useDependency(z.ComponentManager),c=Y.useDependency(l.ICommandService),h=Y.useDependency(O.DataValidationModel),f=Y.useDependency(l.LocaleService),[m,g]=B.useState(i),R=u.getValidatorItem(m.type),[V,T]=B.useState(!1),b=u.getValidatorsByScope(O.DataValidatorRegistryScope.SHEET),[U,P]=B.useState(()=>m.ranges.map(I=>({unitId:"",sheetId:"",range:I}))),A=B.useMemo(()=>ja(c),[c]);if(B.useEffect(()=>{c.onCommandExecuted(I=>{(I.id===l.UndoCommand.id||I.id===l.RedoCommand.id)&&setTimeout(()=>{const w=h.getRuleById(a,n,s);r(x=>x+1),w&&(g(w),P(w.ranges.map(x=>({unitId:"",sheetId:"",range:x}))))},20)})},[c,h,s,n,a]),!R)return null;const N=R.operators,$=R.operatorNames,q=m.operator?O.TWO_FORMULA_OPERATOR_COUNT.includes(m.operator):!1,W=()=>{R.validatorFormula(m).success?e.setActiveRule(null):T(!0)},L=z.useEvent(I=>{if(l.isUnitRangesEqual(I,U))return;P(I);const w=I.filter(H=>(!H.unitId||H.unitId===a)&&(!H.sheetId||H.sheetId===n)).map(H=>H.range);g({...m,ranges:w});const x={unitId:a,subUnitId:n,ruleId:s,ranges:w};A(rt.id,x)}),E=I=>{if(l.shallowEqual(I,O.getRuleSetting(m)))return;g({...m,...I});const w={unitId:a,subUnitId:n,ruleId:s,setting:I};A(O.UpdateDataValidationSettingCommand.id,w,void 0)},k=async()=>{await c.executeCommand(O.RemoveDataValidationCommand.id,{ruleId:s,unitId:a,subUnitId:n}),e.setActiveRule(null)},G={type:m.type,operator:m.operator,formula1:m.formula1,formula2:m.formula2,allowBlank:m.allowBlank},F=I=>{const w=u.getValidatorItem(I);if(!w)return;const x=w.operators,H={...m,type:I,operator:x[0],...I===l.DataValidationType.CHECKBOX?{formula1:void 0,formula2:void 0}:null};g(H),c.executeCommand(O.UpdateDataValidationSettingCommand.id,{unitId:a,subUnitId:n,ruleId:m.uid,setting:O.getRuleSetting(H)})},S=d.get(R.formulaInput),_=U.map(I=>Q.serializeRange(I.range)).join(","),C=O.getRuleOptions(m),D=I=>{l.shallowEqual(I,O.getRuleOptions(m))||(g({...m,...I}),A(O.UpdateDataValidationOptionsCommand.id,{unitId:a,subUnitId:n,ruleId:s,options:I}))};return p.jsxs("div",{children:[p.jsx(j.FormLayout,{label:f.t("dataValidation.panel.range"),children:p.jsx(z.RangeSelector,{className:we.dataValidationDetailFormItem,value:_,id:l.createInternalEditorID("data-validation-detail"),openForSheetUnitId:a,openForSheetSubUnitId:n,onChange:I=>{I.some(w=>!l.isValidRange(w.range)||w.range.endColumn<w.range.startColumn||w.range.endRow<w.range.startRow)||L(I)}},o)}),p.jsx(j.FormLayout,{label:f.t("dataValidation.panel.type"),children:p.jsx(j.Select,{options:b==null?void 0:b.map(I=>({label:f.t(I.title),value:I.id})),value:m.type,onChange:F,className:we.dataValidationDetailFormItem})}),N!=null&&N.length?p.jsx(j.FormLayout,{label:f.t("dataValidation.panel.operator"),children:p.jsx(j.Select,{options:N.map((I,w)=>({value:`${I}`,label:$[w]})),value:`${m.operator}`,onChange:I=>{E({...G,operator:I})},className:we.dataValidationDetailFormItem})}):null,S?p.jsx(S,{isTwoFormula:q,value:{formula1:m.formula1,formula2:m.formula2},onChange:I=>{E({...G,...I})},showError:V,validResult:R.validatorFormula(m),unitId:a,subUnitId:n},o):null,p.jsx(Na,{value:C,onChange:D,extraComponent:R.optionsInput}),p.jsxs("div",{className:we.dataValidationDetailButtons,children:[p.jsx(j.Button,{className:we.dataValidationDetailButton,onClick:k,children:f.t("dataValidation.panel.removeRule")}),p.jsx(j.Button,{className:we.dataValidationDetailButton,type:"primary",onClick:W,children:f.t("dataValidation.panel.done")})]})]})}const qe={dataValidationItemContainer:"univer-data-validation-item-container",dataValidationItemTitle:"univer-data-validation-item-title",dataValidationItemContent:"univer-data-validation-item-content",dataValidationItemIcon:"univer-data-validation-item-icon"},Pa=o=>{const{rule:r,onClick:e,unitId:t,subUnitId:a}=o,n=Y.useDependency(O.DataValidatorRegistryService),i=Y.useDependency(l.ICommandService),s=Y.useDependency(X.IMarkSelectionService),u=n.getValidatorItem(r.type),d=B.useRef(),[c,h]=B.useState(!1),f=m=>{i.executeCommand(O.RemoveDataValidationCommand.id,{ruleId:r.uid,unitId:t,subUnitId:a}),m.stopPropagation()};return B.useEffect(()=>()=>{var m;d.current&&((m=d.current)==null||m.forEach(g=>{g&&s.removeShape(g)}))},[s]),p.jsxs("div",{className:qe.dataValidationItemContainer,onClick:e,onMouseEnter:()=>{h(!0),d.current=r.ranges.map(m=>s.addShape({range:m,style:{hasAutoFill:!1,fill:"rgba(73, 184, 17, 0.05)",strokeWidth:1,stroke:"#49B811",widgets:{}},primary:{startColumn:m.startColumn,endColumn:m.endColumn,startRow:m.startRow,endRow:m.endRow,actualRow:m.startRow,actualColumn:m.startColumn,isMerged:!1,isMergedMainCell:!1}}))},onMouseLeave:()=>{var m;h(!1),(m=d.current)==null||m.forEach(g=>{g&&s.removeShape(g)}),d.current=void 0},children:[p.jsx("div",{className:qe.dataValidationItemTitle,children:u==null?void 0:u.generateRuleName(r)}),p.jsx("div",{className:qe.dataValidationItemContent,children:r.ranges.map(m=>Q.serializeRange(m)).join(",")}),c?p.jsx("div",{className:qe.dataValidationItemIcon,onClick:f,children:p.jsx(At,{})}):null]})},st={dataValidationListButtons:"univer-data-validation-list-buttons",dataValidationListButton:"univer-data-validation-list-button"},Ba=B.memo(()=>{var R,V;const o=Y.useDependency(l.IUniverInstanceService),r=Y.useDependency(O.DataValidationModel),e=Y.useDependency(l.ICommandService),t=Y.useDependency(y.Injector),a=Y.useDependency(_e),n=(R=z.useObservable(o.currentSheet$,o.getCurrentUniverSheetInstance()))!=null?R:o.getCurrentUniverSheetInstance(),i=Y.useDependency(l.LocaleService),[s,u]=B.useState([]),d=(V=z.useObservable(n.activeSheet$,n.getActiveSheet()))!=null?V:n.getActiveSheet(),c=n.getUnitId(),h=d.getSheetId(),f=r.ensureManager(c,h);B.useEffect(()=>{u(f.getDataValidations());const T=f.dataValidations$.subscribe(b=>{u([...b])});return()=>{T.unsubscribe()}},[f]);const m=async()=>{const T=O.createDefaultNewRule(t),b={unitId:c,subUnitId:h,rule:T};await e.executeCommand(He.id,b),a.setActiveRule({unitId:c,subUnitId:h,rule:T})},g=()=>{e.executeCommand(O.RemoveAllDataValidationCommand.id,{unitId:c,subUnitId:h})};return p.jsxs("div",{children:[s.map(T=>p.jsx(Pa,{unitId:c,subUnitId:h,onClick:()=>a.setActiveRule({unitId:c,subUnitId:h,rule:T}),rule:T},T.uid)),p.jsxs("div",{className:st.dataValidationListButtons,children:[s.length?p.jsx(j.Button,{className:st.dataValidationListButton,onClick:g,children:i.t("dataValidation.panel.removeAll")}):null,p.jsx(j.Button,{className:st.dataValidationListButton,type:"primary",onClick:m,children:i.t("dataValidation.panel.add")})]})]})}),$a=()=>{const o=Y.useDependency(_e),r=z.useObservable(o.activeRule$,o.activeRule);return r?p.jsx(Ua,{},r.rule.uid):p.jsx(Ba,{})};function ae(o){if(o===null)return"";if(o!=null&&o.p){const r=o==null?void 0:o.p.body;if(r==null)return"";const e=r.dataStream;return e.substring(e.length-2,e.length)===l.DEFAULT_EMPTY_DOCUMENT_VALUE?e.substring(0,e.length-2):e}return o==null?void 0:o.v}function be(o,r,e,t){var u,d,c;const a=new Set,n=o.unitId||e,i=(u=r.getUniverSheetInstance(n))!=null?u:r.getCurrentUniverSheetInstance(),s=(c=(d=i.getSheetBySheetName(o.sheetName))!=null?d:i.getSheetBySheetId(t))!=null?c:i.getActiveSheet();return l.Range.foreach(o.range,(h,f)=>{const m=s.getCellRaw(h,f);if(!m)return;const g=ae(m);if(g==null||g==="")return;de(`${g}`).forEach(V=>{V&&a.add(`${g}`)})}),Array.from(a)}function Bt(o){return o.filter(Boolean).join(",")}function de(o){return o.split(",").filter(Boolean)}function xa(o){const r=ae(o);return r==null?"":r.toString()}const Ye="SHEET_DATA_VALIDATION",Re="#ECECEC",ce={dvListDropdown:"univer-dv-list-dropdown",dvListDropdownTitle:"univer-dv-list-dropdown-title",dvListDropdownList:"univer-dv-list-dropdown-list",dvListDropdownListContainer:"univer-dv-list-dropdown-list-container",dvListDropdownSelectedIcon:"univer-dv-list-dropdown-selected-icon",dvListDropdownItemContainer:"univer-dv-list-dropdown-item-container",dvListDropdownItem:"univer-dv-list-dropdown-item",dvListDropdownSplit:"univer-dv-list-dropdown-split",dvListDropdownEdit:"univer-dv-list-dropdown-edit"},ka=o=>{const{value:r,onChange:e,multiple:t,options:a,title:n,onEdit:i,style:s}=o;return p.jsxs("div",{className:ce.dvListDropdown,style:s,children:[p.jsx("div",{className:ce.dvListDropdownTitle,children:n}),p.jsx("div",{className:ce.dvListDropdownList,children:p.jsx(j.Scrollbar,{children:p.jsx("div",{className:ce.dvListDropdownListContainer,children:a.map((u,d)=>{const c=r.indexOf(u.value)>-1,h=()=>{let f;c?f=new Set(r.filter(g=>g!==u.value)):f=new Set(t?[...r,u.value]:[u.value]);const m=[];a.forEach(g=>{f.has(g.value)&&m.push(g.value)}),e(m)};return p.jsxs("div",{className:ce.dvListDropdownItemContainer,onClick:h,children:[p.jsx("div",{className:ce.dvListDropdownItem,style:{background:u.color||Re},children:u.label}),p.jsx("div",{className:ce.dvListDropdownSelectedIcon,children:c?p.jsx(Ia,{}):null})]},d)})})})}),p.jsx("div",{className:ce.dvListDropdownSplit}),p.jsx("div",{className:ce.dvListDropdownEdit,children:p.jsx("a",{onClick:i,children:"编辑"})})]})};function Wa(o){var q,W;const{location:r,hideFn:e}=o,{worksheet:t,row:a,col:n,unitId:i,subUnitId:s}=r,u=Y.useDependency(l.ICommandService),d=Y.useDependency(l.LocaleService),[c,h]=B.useState(""),f=Y.useDependency(X.IEditorBridgeService),m=j.RectPopup.useContext(),g=m.right-m.left;if(!t)return null;const R=t.getCell(a,n),V=(q=R==null?void 0:R.dataValidation)==null?void 0:q.rule,T=(W=R==null?void 0:R.dataValidation)==null?void 0:W.validator,b=(V==null?void 0:V.renderMode)===l.DataValidationRenderMode.CUSTOM||(V==null?void 0:V.renderMode)===void 0;if(!R||!V||!T)return;const U=V.type===l.DataValidationType.LIST_MULTIPLE,P=T.getListWithColor(V,i,s),A=c||xa(R),N=de(A),$=()=>{u.executeCommand(Te.id,{ruleId:V.uid}),e()};return p.jsx(ka,{style:{minWidth:g,maxWidth:Math.max(g,200)},title:U?d.t("dataValidation.listMultiple.dropdown"):d.t("dataValidation.list.dropdown"),value:N,multiple:U,onChange:L=>{const E=Bt(L),k={unitId:i,subUnitId:s,range:{startColumn:n,endColumn:n,startRow:a,endRow:a},value:{v:E,p:null,f:null,si:null}};f.isVisible()&&f.changeVisible({visible:!1,keycode:z.KeyCode.ESC,eventType:K.DeviceInputEventType.Keyboard}),u.executeCommand(ne.SetRangeValuesCommand.id,k),h(E),U||e()},options:P.map(L=>({label:L.label,value:L.label,color:b?L.color:"transparent"})),onEdit:$})}var $t={exports:{}};(function(o,r){(function(e,t){o.exports=t()})(oa,function(){var e=1e3,t=6e4,a=36e5,n="millisecond",i="second",s="minute",u="hour",d="day",c="week",h="month",f="quarter",m="year",g="date",R="Invalid Date",V=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,T=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(F){var S=["th","st","nd","rd"],_=F%100;return"["+F+(S[(_-20)%10]||S[_]||S[0])+"]"}},U=function(F,S,_){var C=String(F);return!C||C.length>=S?F:""+Array(S+1-C.length).join(_)+F},P={s:U,z:function(F){var S=-F.utcOffset(),_=Math.abs(S),C=Math.floor(_/60),D=_%60;return(S<=0?"+":"-")+U(C,2,"0")+":"+U(D,2,"0")},m:function F(S,_){if(S.date()<_.date())return-F(_,S);var C=12*(_.year()-S.year())+(_.month()-S.month()),D=S.clone().add(C,h),I=_-D<0,w=S.clone().add(C+(I?-1:1),h);return+(-(C+(_-D)/(I?D-w:w-D))||0)},a:function(F){return F<0?Math.ceil(F)||0:Math.floor(F)},p:function(F){return{M:h,y:m,w:c,d,D:g,h:u,m:s,s:i,ms:n,Q:f}[F]||String(F||"").toLowerCase().replace(/s$/,"")},u:function(F){return F===void 0}},A="en",N={};N[A]=b;var $="$isDayjsObject",q=function(F){return F instanceof k||!(!F||!F[$])},W=function F(S,_,C){var D;if(!S)return A;if(typeof S=="string"){var I=S.toLowerCase();N[I]&&(D=I),_&&(N[I]=_,D=I);var w=S.split("-");if(!D&&w.length>1)return F(w[0])}else{var x=S.name;N[x]=S,D=x}return!C&&D&&(A=D),D||!C&&A},L=function(F,S){if(q(F))return F.clone();var _=typeof S=="object"?S:{};return _.date=F,_.args=arguments,new k(_)},E=P;E.l=W,E.i=q,E.w=function(F,S){return L(F,{locale:S.$L,utc:S.$u,x:S.$x,$offset:S.$offset})};var k=function(){function F(_){this.$L=W(_.locale,null,!0),this.parse(_),this.$x=this.$x||_.x||{},this[$]=!0}var S=F.prototype;return S.parse=function(_){this.$d=function(C){var D=C.date,I=C.utc;if(D===null)return new Date(NaN);if(E.u(D))return new Date;if(D instanceof Date)return new Date(D);if(typeof D=="string"&&!/Z$/i.test(D)){var w=D.match(V);if(w){var x=w[2]-1||0,H=(w[7]||"0").substring(0,3);return I?new Date(Date.UTC(w[1],x,w[3]||1,w[4]||0,w[5]||0,w[6]||0,H)):new Date(w[1],x,w[3]||1,w[4]||0,w[5]||0,w[6]||0,H)}}return new Date(D)}(_),this.init()},S.init=function(){var _=this.$d;this.$y=_.getFullYear(),this.$M=_.getMonth(),this.$D=_.getDate(),this.$W=_.getDay(),this.$H=_.getHours(),this.$m=_.getMinutes(),this.$s=_.getSeconds(),this.$ms=_.getMilliseconds()},S.$utils=function(){return E},S.isValid=function(){return this.$d.toString()!==R},S.isSame=function(_,C){var D=L(_);return this.startOf(C)<=D&&D<=this.endOf(C)},S.isAfter=function(_,C){return L(_)<this.startOf(C)},S.isBefore=function(_,C){return this.endOf(C)<L(_)},S.$g=function(_,C,D){return E.u(_)?this[C]:this.set(D,_)},S.unix=function(){return Math.floor(this.valueOf()/1e3)},S.valueOf=function(){return this.$d.getTime()},S.startOf=function(_,C){var D=this,I=!!E.u(C)||C,w=E.p(_),x=function(Ce,te){var ve=E.w(D.$u?Date.UTC(D.$y,te,Ce):new Date(D.$y,te,Ce),D);return I?ve:ve.endOf(d)},H=function(Ce,te){return E.w(D.toDate()[Ce].apply(D.toDate("s"),(I?[0,0,0,0]:[23,59,59,999]).slice(te)),D)},Z=this.$W,J=this.$M,oe=this.$D,Fe="set"+(this.$u?"UTC":"");switch(w){case m:return I?x(1,0):x(31,11);case h:return I?x(1,J):x(0,J+1);case c:var Ie=this.$locale().weekStart||0,$e=(Z<Ie?Z+7:Z)-Ie;return x(I?oe-$e:oe+(6-$e),J);case d:case g:return H(Fe+"Hours",0);case u:return H(Fe+"Minutes",1);case s:return H(Fe+"Seconds",2);case i:return H(Fe+"Milliseconds",3);default:return this.clone()}},S.endOf=function(_){return this.startOf(_,!1)},S.$set=function(_,C){var D,I=E.p(_),w="set"+(this.$u?"UTC":""),x=(D={},D[d]=w+"Date",D[g]=w+"Date",D[h]=w+"Month",D[m]=w+"FullYear",D[u]=w+"Hours",D[s]=w+"Minutes",D[i]=w+"Seconds",D[n]=w+"Milliseconds",D)[I],H=I===d?this.$D+(C-this.$W):C;if(I===h||I===m){var Z=this.clone().set(g,1);Z.$d[x](H),Z.init(),this.$d=Z.set(g,Math.min(this.$D,Z.daysInMonth())).$d}else x&&this.$d[x](H);return this.init(),this},S.set=function(_,C){return this.clone().$set(_,C)},S.get=function(_){return this[E.p(_)]()},S.add=function(_,C){var D,I=this;_=Number(_);var w=E.p(C),x=function(J){var oe=L(I);return E.w(oe.date(oe.date()+Math.round(J*_)),I)};if(w===h)return this.set(h,this.$M+_);if(w===m)return this.set(m,this.$y+_);if(w===d)return x(1);if(w===c)return x(7);var H=(D={},D[s]=t,D[u]=a,D[i]=e,D)[w]||1,Z=this.$d.getTime()+_*H;return E.w(Z,this)},S.subtract=function(_,C){return this.add(-1*_,C)},S.format=function(_){var C=this,D=this.$locale();if(!this.isValid())return D.invalidDate||R;var I=_||"YYYY-MM-DDTHH:mm:ssZ",w=E.z(this),x=this.$H,H=this.$m,Z=this.$M,J=D.weekdays,oe=D.months,Fe=D.meridiem,Ie=function(te,ve,xe,at){return te&&(te[ve]||te(C,I))||xe[ve].slice(0,at)},$e=function(te){return E.s(x%12||12,te,"0")},Ce=Fe||function(te,ve,xe){var at=te<12?"AM":"PM";return xe?at.toLowerCase():at};return I.replace(T,function(te,ve){return ve||function(xe){switch(xe){case"YY":return String(C.$y).slice(-2);case"YYYY":return E.s(C.$y,4,"0");case"M":return Z+1;case"MM":return E.s(Z+1,2,"0");case"MMM":return Ie(D.monthsShort,Z,oe,3);case"MMMM":return Ie(oe,Z);case"D":return C.$D;case"DD":return E.s(C.$D,2,"0");case"d":return String(C.$W);case"dd":return Ie(D.weekdaysMin,C.$W,J,2);case"ddd":return Ie(D.weekdaysShort,C.$W,J,3);case"dddd":return J[C.$W];case"H":return String(x);case"HH":return E.s(x,2,"0");case"h":return $e(1);case"hh":return $e(2);case"a":return Ce(x,H,!0);case"A":return Ce(x,H,!1);case"m":return String(H);case"mm":return E.s(H,2,"0");case"s":return String(C.$s);case"ss":return E.s(C.$s,2,"0");case"SSS":return E.s(C.$ms,3,"0");case"Z":return w}return null}(te)||w.replace(":","")})},S.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},S.diff=function(_,C,D){var I,w=this,x=E.p(C),H=L(_),Z=(H.utcOffset()-this.utcOffset())*t,J=this-H,oe=function(){return E.m(w,H)};switch(x){case m:I=oe()/12;break;case h:I=oe();break;case f:I=oe()/3;break;case c:I=(J-Z)/6048e5;break;case d:I=(J-Z)/864e5;break;case u:I=J/a;break;case s:I=J/t;break;case i:I=J/e;break;default:I=J}return D?I:E.a(I)},S.daysInMonth=function(){return this.endOf(h).$D},S.$locale=function(){return N[this.$L]},S.locale=function(_,C){if(!_)return this.$L;var D=this.clone(),I=W(_,C,!0);return I&&(D.$L=I),D},S.clone=function(){return E.w(this.$d,this)},S.toDate=function(){return new Date(this.valueOf())},S.toJSON=function(){return this.isValid()?this.toISOString():null},S.toISOString=function(){return this.$d.toISOString()},S.toString=function(){return this.$d.toUTCString()},F}(),G=k.prototype;return L.prototype=G,[["$ms",n],["$s",i],["$m",s],["$H",u],["$W",d],["$M",h],["$y",m],["$D",g]].forEach(function(F){G[F[1]]=function(S){return this.$g(S,F[0],F[1])}}),L.extend=function(F,S){return F.$i||(F(S,k,L),F.$i=!0),L},L.locale=W,L.isDayjs=q,L.unix=function(F){return L(1e3*F)},L.en=N[A],L.Ls=N,L.p={},L})})($t);var Ha=$t.exports;const Me=sa(Ha),qa={dvDateDropdown:"univer-dv-date-dropdown"};function Ya(o){var T,b,U;const{location:r,hideFn:e}=o,{worksheet:t,row:a,col:n,unitId:i,subUnitId:s}=r,u=Y.useDependency(l.ICommandService),[d,c]=B.useState();if(!t)return null;const h=t.getCell(a,n),f=(T=h==null?void 0:h.dataValidation)==null?void 0:T.rule,m=(b=h==null?void 0:h.dataValidation)==null?void 0:b.validator;if(!h||!f||!m)return;const g=ae(h),R=(U=m.transformDate(g))!=null?U:Me(),V=R.isValid()?R:Me();return p.jsx("div",{className:qa.dvDateDropdown,children:p.jsx(j.DatePanel,{pickerValue:d!=null?d:V,onSelect:P=>{const A=P.format("YYYY/MM/DD");u.executeCommand(ne.SetRangeValuesCommand.id,{unitId:i,subUnitId:s,range:{startColumn:n,endColumn:n,startRow:a,endRow:a},value:{v:A,p:null,f:null,si:null}}),e()},onPanelChange:P=>{c(P)}})})}const lt="data-validation.list.dropdown",xt="data-validation.date.dropdown";function za(o){var u;const{unitId:r,subUnitId:e,value:t,onChange:a,showError:n,validResult:i}=o,s=n?i==null?void 0:i.formula1:"";return p.jsx(j.FormLayout,{error:s,children:p.jsx(z.TextEditor,{value:(u=t==null?void 0:t.formula1)!=null?u:"",id:l.createInternalEditorID(`dataValidation-custom-formula-${r}-${e}`),onChange:d=>{a==null||a({...t,formula1:d!=null?d:""})},onlyInputFormula:!0})})}const ee={dataValidationFormula:"univer-data-validation-formula",dataValidationFormulaAnd:"univer-data-validation-formula-and",dataValidationFormulaListItem:"univer-data-validation-formula-list-item",dataValidationFormulaListItemIcon:"univer-data-validation-formula-list-item-icon",dataValidationFormulaListItemDrag:"univer-data-validation-formula-list-item-drag",dataValidationFormulaListAdd:"univer-data-validation-formula-list-add",dataValidationFormulaColorSelect:"univer-data-validation-formula-color-select",dataValidationFormulaColorSelectPanel:"univer-data-validation-formula-color-select-panel",dataValidationFormulaColorItem:"univer-data-validation-formula-color-item"},Ga=o=>{const{isTwoFormula:r=!1,value:e,onChange:t,showError:a,validResult:n}=o,i=Y.useDependency(l.LocaleService),s=a?n==null?void 0:n.formula1:"",u=a?n==null?void 0:n.formula2:"";return r?p.jsxs(p.Fragment,{children:[p.jsx(j.FormLayout,{error:s,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:d=>{t==null||t({...e,formula1:d})}})}),p.jsx("div",{className:ee.dataValidationFormulaAnd,children:i.t("dataValidation.panel.formulaAnd")}),p.jsx(j.FormLayout,{error:u,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula2,onChange:d=>{t==null||t({...e,formula2:d})}})})]}):p.jsx(j.FormLayout,{error:s,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:i.t("dataValidation.panel.formulaPlaceholder"),value:e==null?void 0:e.formula1,onChange:d=>{t==null||t({formula1:d})}})})};function Xa(o){return Number.isNaN(o.startColumn)||Number.isNaN(o.endColumn)||Number.isNaN(o.startRow)||Number.isNaN(o.endRow)}const Qa=["#FFFFFF","#FEE7E7","#FEF0E6","#EFFBD0","#E4F4FE","#E8ECFD","#F1EAFA","#FDE8F3","#E5E5E5","#FDCECE","#FDC49B","#DEF6A2","#9FDAFF","#D0D9FB","#E3D5F6","#FBD0E8","#656565","#FE4B4B","#FF8C51","#8BBB11","#0B9EFB","#3A60F7","#9E6DE3","#F248A6"],Ka=o=>{const{value:r,onChange:e,disabled:t}=o,[a,n]=B.useState(!1);return p.jsx(j.Select,{disabled:t,open:a,onDropdownVisibleChange:n,dropdownStyle:{width:112},className:ee.dataValidationFormulaColorSelect,value:r,onChange:e,labelRender:i=>p.jsx("div",{className:ee.dataValidationFormulaColorItem,style:{background:i.value}}),dropdownRender:()=>p.jsx("div",{className:ee.dataValidationFormulaColorSelectPanel,children:Qa.map(i=>p.jsx("div",{onClick:()=>{e(i),n(!1)},className:ee.dataValidationFormulaColorItem,style:{background:i}},i))})})},kt=o=>{const{item:r,commonProps:e,style:t}=o,{onItemChange:a,onItemDelete:n}=e;return p.jsxs("div",{className:ee.dataValidationFormulaListItem,style:t,children:[r.isRef?null:p.jsx("div",{className:ia(ee.dataValidationFormulaListItemDrag,"draggableHandle"),children:p.jsx(Aa,{})}),p.jsx(Ka,{value:r.color,onChange:i=>{a(r.id,r.label,i)}}),p.jsx(j.Input,{disabled:r.isRef,value:r.label,onChange:i=>{a(r.id,i,r.color)}}),r.isRef?null:p.jsx("div",{className:ee.dataValidationFormulaListItemIcon,children:p.jsx(At,{onClick:()=>n(r.id)})})]})};function Za(o){const{value:r,onChange:e=()=>{},unitId:t,subUnitId:a,validResult:n,showError:i}=o,{formula1:s="",formula2:u=""}=r||{},d=B.useRef(null),[c,h]=B.useState(()=>Q.isReferenceString(s)?"1":"0"),[f,m]=B.useState(c==="1"?s:""),g=Y.useDependency(l.LocaleService),R=Y.useDependency(l.IUniverInstanceService),V=R.getCurrentUniverSheetInstance(),T=V.getActiveSheet(),[b,U]=B.useState(()=>u.split(",")),P=i?n==null?void 0:n.formula1:"",A=z.useEvent(e),[N,$]=B.useState(()=>{const S=c!=="1"?de(s):[],_=u.split(",");return S.map((C,D)=>({label:C,color:_[D]||Re,isRef:!1,id:l.Tools.generateRandomId(4)}))}),q=(S,_,C)=>{const D=N.find(I=>I.id===S);D&&(D.label=_,D.color=C,$([...N]))},W=S=>{const _=N.findIndex(C=>C.id===S);_!==-1&&(N.splice(_,1),$([...N]))},L=B.useMemo(()=>be(Q.deserializeRangeWithSheet(f),R,V.getUnitId(),T.getSheetId()),[f,R,V,T]),E=u.split(","),k=B.useMemo(()=>L.map((S,_)=>({label:S,color:E[_]||Re,id:`${_}`,isRef:!0})),[E,L]),G=(S,_,C)=>{const D=[...b];D[+S]=C,U(D),A({formula1:s,formula2:D.join(",")})},F=()=>{$([...N,{label:"",color:Re,isRef:!1,id:l.Tools.generateRandomId(4)}])};return B.useEffect(()=>{const S=new Set,_=[];N.map(C=>({labelList:C.label.split(","),item:C})).forEach(({item:C,labelList:D})=>{D.forEach(I=>{S.has(I)||(S.add(I),_.push({label:I,color:C.color}))})}),A({formula1:Bt(_.map(C=>C.label)),formula2:_.map(C=>C.color===Re?"":C.color).join(",")})},[N,A]),p.jsxs(p.Fragment,{children:[p.jsx(j.FormLayout,{label:g.t("dataValidation.list.options"),children:p.jsxs(j.RadioGroup,{value:c,onChange:S=>h(S),children:[p.jsx(j.Radio,{value:"0",children:g.t("dataValidation.list.customOptions")}),p.jsx(j.Radio,{value:"1",children:g.t("dataValidation.list.refOptions")})]})}),c==="1"?p.jsxs(p.Fragment,{children:[p.jsx(j.FormLayout,{error:P,children:p.jsx(z.RangeSelector,{id:l.createInternalEditorID(`list-ref-range-${t}-${a}`),value:f,openForSheetUnitId:t,openForSheetSubUnitId:a,onChange:S=>{var C,D;const _=S[0];if(!_||Xa(_.range))A==null||A({formula1:"",formula2:u}),m("");else{const I=(C=R.getUniverSheetInstance(_.unitId))!=null?C:R.getCurrentUniverSheetInstance(),w=(D=I==null?void 0:I.getSheetBySheetId(_.sheetId))!=null?D:I.getActiveSheet(),x=Q.serializeRangeWithSheet(w.getName(),_.range);A==null||A({formula1:x,formula2:u}),m(x)}},isSingleChoice:!0})}),p.jsx(j.FormLayout,{children:p.jsx("div",{ref:d,children:k.map(S=>p.jsx(kt,{item:S,commonProps:{onItemChange:G},style:{marginBottom:12}},S.id))})})]}):p.jsx(j.FormLayout,{error:P,children:p.jsxs("div",{ref:d,style:{margin:"-12px 0"},children:[p.jsx(j.DraggableList,{list:N,onListChange:$,rowHeight:32,margin:[0,12],itemRender:S=>p.jsx(kt,{item:S,commonProps:{onItemChange:q,onItemDelete:W}},S.id),idKey:"id"}),p.jsxs("a",{className:ee.dataValidationFormulaListAdd,onClick:F,children:[p.jsx(ya,{}),g.t("dataValidation.list.add")]})]})})]})}function Ja(o){const{value:r,onChange:e,showError:t,validResult:a}=o,n=Y.useDependency(l.LocaleService),i=t?a==null?void 0:a.formula1:"",s=t?a==null?void 0:a.formula2:"",[u,d]=B.useState(!((r==null?void 0:r.formula1)===void 0&&(r==null?void 0:r.formula2)===void 0));return p.jsxs(p.Fragment,{children:[p.jsx(j.FormLayout,{children:p.jsx(j.Checkbox,{checked:u,onChange:c=>{c?d(!0):(d(!1),e==null||e({...r,formula1:void 0,formula2:void 0}))},children:n.t("dataValidation.checkbox.tips")})}),u?p.jsx(j.FormLayout,{label:n.t("dataValidation.checkbox.checked"),error:i,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:n.t("dataValidation.panel.formulaPlaceholder"),value:r==null?void 0:r.formula1,onChange:c=>{e==null||e({...r,formula1:c})}})}):null,u?p.jsx(j.FormLayout,{label:n.t("dataValidation.checkbox.unchecked"),error:s,children:p.jsx(j.Input,{className:ee.dataValidationFormula,placeholder:n.t("dataValidation.panel.formulaPlaceholder"),value:r==null?void 0:r.formula2,onChange:c=>{e==null||e({...r,formula2:c})}})}):null]})}const Wt="data-validation.custom-formula-input",Le="data-validation.formula-input",ut="data-validation.list-formula-input",Ht="data-validation.checkbox-formula-input",en=[[Wt,za],[Le,Ga],[ut,Za],[Ht,Ja]],tn="LIST_RENDER_MODE_OPTION_INPUT";function ze(o){var a;const{value:r,onChange:e}=o,t=Y.useDependency(l.LocaleService);return p.jsx(j.FormLayout,{label:t.t("dataValidation.renderMode.label"),children:p.jsxs(j.RadioGroup,{value:`${(a=r.renderMode)!=null?a:l.DataValidationRenderMode.CUSTOM}`,onChange:n=>e({...r,renderMode:+n}),children:[p.jsx(j.Radio,{value:`${l.DataValidationRenderMode.CUSTOM}`,children:t.t("dataValidation.renderMode.chip")}),p.jsx(j.Radio,{value:`${l.DataValidationRenderMode.ARROW}`,children:t.t("dataValidation.renderMode.arrow")}),p.jsx(j.Radio,{value:`${l.DataValidationRenderMode.TEXT}`,children:t.t("dataValidation.renderMode.text")})]})})}ze.componentKey=tn;const qt="data-validation-single",dt="sheet.menu.data-validation";function an(o){return{id:dt,type:z.MenuItemType.SUBITEMS,positions:[z.MenuPosition.TOOLBAR_START],group:z.MenuGroup.TOOLBAR_FORMULAS_INSERT,icon:qt,tooltip:"dataValidation.title",hidden$:z.getMenuHiddenObservable(o,l.UniverInstanceType.SHEET)}}function nn(o){return{id:Te.id,title:"dataValidation.panel.title",type:z.MenuItemType.BUTTON,positions:[dt]}}function rn(o){return{id:it.id,title:"dataValidation.panel.add",type:z.MenuItemType.BUTTON,positions:[dt]}}var on=Object.defineProperty,sn=Object.getOwnPropertyDescriptor,ln=(o,r,e,t)=>{for(var a=t>1?void 0:t?sn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&on(r,e,a),a},se=(o,r)=>(e,t)=>r(e,t,o);const un={tr:{size:6,color:"#fe4b4b"}};v.DataValidationRenderController=class extends l.RxDisposable{constructor(r,e,t,a,n,i,s,u,d,c,h){super(),this._componentManager=r,this._menuService=e,this._dataValidationModel=t,this._sheetSkeletonManagerService=a,this._renderManagerService=n,this._univerInstanceService=i,this._dataValidatorRegistryService=s,this._editorBridgeService=u,this._dropdownManagerService=d,this._sheetInterceptorService=c,this._injector=h,this._init()}_init(){this._initComponents(),this._initMenu(),this._initSkeletonChange(),this._initDropdown(),this._initViewModelIntercept()}_initMenu(){[an,nn,rn].forEach(r=>{this.disposeWithMe(this._menuService.addMenuItem(r(this._injector)))})}_initComponents(){[[wt,$a],[Ot,fa],[lt,Wa],[xt,Ya],[ze.componentKey,ze],...en].forEach(([r,e])=>{this.disposeWithMe(this._componentManager.register(r,e))})}_initDropdown(){this.disposeWithMe(this._editorBridgeService.visible$.subscribe(r=>{if(!r.visible)return;const e=this._editorBridgeService.getEditCellState();if(e){const{unitId:t,sheetId:a,row:n,column:i}=e,s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const d=this._dataValidationModel.ensureManager(t,a).getRuleByLocation(n,i);if(!d)return;const c=this._dataValidatorRegistryService.getValidatorItem(d.type);if(!(c!=null&&c.dropdown))return;const h=s.getActiveSheet(),f=this._dropdownManagerService.activeDropdown,m=f==null?void 0:f.location;if(m&&m.unitId===t&&m.subUnitId===a&&m.row===n&&m.col===i)return;this._dropdownManagerService.showDropdown({location:{unitId:t,subUnitId:a,row:n,col:i,workbook:s,worksheet:h},componentKey:c.dropdown,onHide:()=>{}})}}))}_initSkeletonChange(){const r=()=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),a=e.getActiveSheet().getSheetId(),n=this._sheetSkeletonManagerService.getOrCreateSkeleton({unitId:t,sheetId:a}),i=this._renderManagerService.getRenderById(t);n==null||n.makeDirty(!0),n==null||n.calculate(),i&&i.mainComponent.makeForceDirty()};this.disposeWithMe(this._dataValidationModel.ruleChange$.subscribe(()=>{r()})),this.disposeWithMe(this._dataValidationModel.validStatusChange$.subscribe(()=>{r()}))}_initViewModelIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(ne.INTERCEPTOR_POINT.CELL_CONTENT,{handler:(r,e,t)=>{var U,P,A,N;const{row:a,col:n,unitId:i,subUnitId:s}=e,u=this._dataValidationModel.ensureManager(i,s),d=(U=this._sheetSkeletonManagerService.getCurrent())==null?void 0:U.skeleton;if(!u||!d)return t(r);const c=e.workbook.getStyles(),h=(typeof(r==null?void 0:r.s)=="string"?c.get(r==null?void 0:r.s):r==null?void 0:r.s)||{},f=u.getRuleIdByLocation(a,n);if(!f)return t(r);const m=u.getRuleById(f);if(!m)return t(r);const g=e.worksheet.getCellRaw(e.row,e.col),R=this._dataValidationModel.validator(ae(g),m,e),V=this._dataValidatorRegistryService.getValidatorItem(m.type),T=ae(r);let b={};if((m.type===l.DataValidationType.LIST||m.type===l.DataValidationType.LIST_MULTIPLE)&&(b={interceptorStyle:{...r==null?void 0:r.interceptorStyle,tb:(P=h.tb!==l.WrapStrategy.OVERFLOW?h.tb:l.WrapStrategy.CLIP)!=null?P:l.WrapStrategy.WRAP}}),m.type===l.DataValidationType.CHECKBOX){const{formula2:$}=V.parseFormulaSync(m,e.unitId,e.subUnitId);T||(b={v:$,t:1,p:null,interceptorStyle:{...r==null?void 0:r.interceptorStyle,tb:l.WrapStrategy.CLIP}})}if(m.type===l.DataValidationType.LIST&&(m.renderMode===l.DataValidationRenderMode.ARROW||m.renderMode===l.DataValidationRenderMode.TEXT)){const $=V.getListWithColorMap(m),q=`${(A=ae(r))!=null?A:""}`,W=$[q];W&&(b={...b,interceptorStyle:{...b.interceptorStyle,bg:{rgb:W}}})}return t({...r,...b,dataValidation:{ruleId:f,validStatus:R,rule:m,validator:V},markers:{...r==null?void 0:r.markers,...R===l.DataValidationStatus.INVALID?un:null},customRender:[...(N=r==null?void 0:r.customRender)!=null?N:[],...V!=null&&V.canvasRender?[V.canvasRender]:[]],fontRenderExtension:{...r==null?void 0:r.fontRenderExtension,isSkip:V==null?void 0:V.skipDefaultFontRender(m,T,e)},interceptorStyle:{...r==null?void 0:r.interceptorStyle,...b.interceptorStyle},get interceptorAutoHeight(){var W,L,E,k;const $=d.mergeData.find(G=>{const{startColumn:F,startRow:S,endColumn:_,endRow:C}=G;return a>=S&&n>=F&&a<=C&&n<=_}),q={data:{...r,dataValidation:{ruleId:f,validStatus:R,rule:m,validator:V}},style:d.getsStyles().getStyleByCell(r),primaryWithCoord:d.getCellByIndex((W=$==null?void 0:$.startRow)!=null?W:a,(L=$==null?void 0:$.startColumn)!=null?L:n),unitId:i,subUnitId:s,row:a,col:n};return(k=(E=V==null?void 0:V.canvasRender)==null?void 0:E.calcCellAutoHeight)==null?void 0:k.call(E,q)}})}}))}},v.DataValidationRenderController=ln([l.OnLifecycle(l.LifecycleStages.Rendered,v.DataValidationRenderController),se(0,y.Inject(z.ComponentManager)),se(1,z.IMenuService),se(2,y.Inject(O.DataValidationModel)),se(3,y.Inject(X.SheetSkeletonManagerService)),se(4,K.IRenderManagerService),se(5,l.IUniverInstanceService),se(6,y.Inject(O.DataValidatorRegistryService)),se(7,X.IEditorBridgeService),se(8,y.Inject(Se)),se(9,y.Inject(ne.SheetInterceptorService)),se(10,y.Inject(y.Injector))],v.DataValidationRenderController);var dn=Object.defineProperty,cn=Object.getOwnPropertyDescriptor,hn=(o,r,e,t)=>{for(var a=t>1?void 0:t?cn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&dn(r,e,a),a},mn=(o,r)=>(e,t)=>r(e,t,o);v.SheetDataValidationService=class{constructor(r){M(this,"_currentManager");M(this,"_currentManager$",new re.Subject);M(this,"currentManager$",this._currentManager$.asObservable());this._dataValidationModel=r}get currentManager(){return this._currentManager}_ensureManager(r,e){return this._dataValidationModel.ensureManager(r,e)}switchCurrent(r,e){var a,n;if(r===((a=this.currentManager)==null?void 0:a.unitId)&&e===((n=this._currentManager)==null?void 0:n.subUnitId))return;const t=this._ensureManager(r,e);this._currentManager={manager:t,unitId:r,subUnitId:e},this._currentManager$.next(this._currentManager)}get(r,e){return this._ensureManager(r,e)}},v.SheetDataValidationService=hn([mn(0,y.Inject(O.DataValidationModel))],v.SheetDataValidationService);var Ae=(o=>(o[o.NOT_REGISTER=1]="NOT_REGISTER",o[o.SUCCESS=2]="SUCCESS",o[o.WAIT=3]="WAIT",o[o.ERROR=4]="ERROR",o))(Ae||{}),fn=Object.defineProperty,pn=Object.getOwnPropertyDescriptor,vn=(o,r,e,t)=>{for(var a=t>1?void 0:t?pn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&fn(r,e,a),a},Yt=(o,r)=>(e,t)=>r(e,t,o);v.RegisterOtherFormulaService=class extends l.Disposable{constructor(e,t){super();M(this,"_formulaCacheMap",new Map);M(this,"_formulaChange$",new re.Subject);M(this,"formulaChange$",this._formulaChange$.asObservable());M(this,"_formulaResult$",new re.Subject);M(this,"formulaResult$",this._formulaResult$.asObservable());this._commandService=e,this._activeDirtyManagerService=t,this._initFormulaRegister(),this._initFormulaCalculationResultChange()}_ensureCacheMap(e,t){let a=this._formulaCacheMap.get(e);a||(a=new Map,this._formulaCacheMap.set(e,a));let n=a.get(t);return n||(n=new Map,a.set(t,n)),n}_createFormulaId(e,t){return`sheet.dv_${e}_${t}_${l.Tools.generateRandomId(8)}`}_initFormulaRegister(){this._activeDirtyManagerService.register(O.DataValidationFormulaMarkDirty.id,{commandId:O.DataValidationFormulaMarkDirty.id,getDirtyData(e){return{dirtyUnitOtherFormulaMap:e.params}}}),this.formulaChange$.pipe(re.bufferTime(16),re.filter(e=>!!e.length),re.map(e=>e.reduce((t,a)=>{const{unitId:n,subUnitId:i,formulaId:s,formulaText:u}=a;return t[n]||(t[n]={}),t[n][i]||(t[n][i]={}),t[n][i][s]={f:u},t},{}))).subscribe(e=>{for(const t in e)for(const a in e[t]){const n=e[t][a],i={unitId:t,subUnitId:a,formulaMap:n};this._commandService.executeCommand(Q.SetOtherFormulaMutation.id,i).then(()=>{this._commandService.executeCommand(O.DataValidationFormulaMarkDirty.id,{[t]:{[a]:n}})})}})}_initFormulaCalculationResultChange(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===Q.SetFormulaCalculationResultMutation.id){const t=e.params,{unitOtherData:a}=t,n={};for(const i in a){const s=a[i],u={};n[i]=u;for(const d in s){const c=this._ensureCacheMap(i,d),h=s[d],f=[];u[d]=f;for(const m in h){const g=h[m];if(c.has(m)){const R=c.get(m);R.result=g,R.status=Ae.SUCCESS,R.callbacks.forEach(V=>{V(g)}),R.callbacks.clear(),f.push(R)}}}}this._formulaResult$.next(n)}}))}registerFormula(e,t,a,n){const i=this._createFormulaId(e,t);return this._ensureCacheMap(e,t).set(i,{result:void 0,status:Ae.WAIT,ruleId:a,formulaId:i,callbacks:new Set}),this._formulaChange$.next({unitId:e,ruleId:a,subUnitId:t,formulaText:n,formulaId:i}),i}deleteFormula(e,t,a){const n={unitId:e,subUnitId:t,formulaIdList:a};this._commandService.executeCommand(Q.RemoveOtherFormulaMutation.id,n);const i=this._ensureCacheMap(e,t);a.forEach(s=>i.delete(s))}getFormulaValue(e,t,a){const n=this._ensureCacheMap(e,t),i=n.get(a);return i?i.status===Ae.SUCCESS||Ae.ERROR?Promise.resolve(i):new Promise(s=>{i.callbacks.add(()=>{s(n.get(a))})}):Promise.resolve(null)}getFormulaValueSync(e,t,a){return this._ensureCacheMap(e,t).get(a)}},v.RegisterOtherFormulaService=vn([Yt(0,l.ICommandService),Yt(1,Q.IActiveDirtyManagerService)],v.RegisterOtherFormulaService);class ye{constructor(){M(this,"_cacheMatrix",new Map)}_ensureCache(r,e){let t=this._cacheMatrix.get(r);t||(t=new Map,this._cacheMatrix.set(r,t));let a=t.get(e);return a||(a=new l.ObjectMatrix,t.set(e,a)),a}ensureCache(r,e){return this._ensureCache(r,e)}addRule(r,e,t){this.markRangeDirty(r,e,t.ranges)}removeRule(r,e,t){this._deleteRange(r,e,t.ranges)}updateRuleRanges(r,e,t,a,n){const i=this._ensureCache(r,e);n.forEach(s=>{l.Range.foreach(s,(u,d)=>{const c=i.getValue(u,d);c&&(c.temp=!0)})}),a.forEach(s=>{l.Range.foreach(s,(u,d)=>{const c=i.getValue(u,d);c&&c.ruleId===t?c.temp=!1:i.setValue(u,d,void 0)})}),n.forEach(s=>{l.Range.foreach(s,(u,d)=>{const c=i.getValue(u,d);c&&c.temp===!0&&i.realDeleteValue(u,d)})})}markRangeDirty(r,e,t){const a=this._ensureCache(r,e);t.forEach(n=>{l.Range.foreach(n,(i,s)=>{a.setValue(i,s,void 0)})})}markCellDirty(r,e,t,a){this._ensureCache(r,e).setValue(t,a,void 0)}_deleteRange(r,e,t){const a=this._ensureCache(r,e);t.forEach(n=>{l.Range.foreach(n,(i,s)=>{a.realDeleteValue(i,s)})})}getValue(r,e,t,a){return this._ensureCache(r,e).getValue(t,a)}setValue(r,e,t,a,n){return this._ensureCache(r,e).setValue(t,a,n)}}var gn=Object.defineProperty,Sn=Object.getOwnPropertyDescriptor,_n=(o,r,e,t)=>{for(var a=t>1?void 0:t?Sn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&gn(r,e,a),a},Ne=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationCustomFormulaService=class extends l.Disposable{constructor(e,t,a,n,i){super();M(this,"_formulaMap",new Map);M(this,"_ruleFormulaMap",new Map);M(this,"_formulaCellMap",new Map);this._registerOtherFormulaService=e,this._lexerTreeBuilder=t,this._univerInstanceService=a,this._dataValidationModel=n,this._dataValidationCacheService=i,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const n in a){const i=a[n],{formulaCellMap:s,ruleFormulaMap:u}=this._ensureMaps(t,n),d=this._dataValidationModel.ensureManager(t,n);i.forEach(c=>{const h=u.get(c.ruleId),f=s.get(c.formulaId),m=d.getRuleById(c.ruleId);m&&h&&!h.isTransformable&&this._dataValidationCacheService.markRangeDirty(t,n,m.ranges),f&&this._dataValidationCacheService.markCellDirty(t,n,f.row,f.column)})}}}))}_ensureMaps(e,t){let a=this._formulaMap.get(e),n=this._ruleFormulaMap.get(e),i=this._formulaCellMap.get(e);(!a||!n||!i)&&(a=new Map,n=new Map,i=new Map,this._formulaMap.set(e,a),this._ruleFormulaMap.set(e,n),this._formulaCellMap.set(e,i));let s=a.get(t),u=n.get(t),d=i.get(t);return(!s||!u||!d)&&(s=new l.ObjectMatrix,a.set(t,s),u=new Map,n.set(t,u),d=new Map,i.set(t,d)),{formulaMap:s,ruleFormulaMap:u,formulaCellMap:d}}_registerFormula(e,t,a,n){return this._registerOtherFormulaService.registerFormula(e,t,a,n)}deleteByRuleId(e,t,a){const{formulaMap:n,formulaCellMap:i,ruleFormulaMap:s}=this._ensureMaps(e,t),u=this._dataValidationModel.getRuleById(e,t,a),d=new Set,c=s.get(a);!u||!c||(s.delete(a),u.ranges.forEach(h=>{l.Range.foreach(h,(f,m)=>{const g=n.getValue(f,m);if(g&&g.ruleId===a){const{formulaId:R}=g;n.realDeleteValue(f,m),d.add(R),i.delete(R)}})}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(d.values())))}_addFormulaByRange(e,t,a,n,i){const{formulaMap:s,ruleFormulaMap:u,formulaCellMap:d}=this._ensureMaps(e,t);if(!n)return;const c=Q.isFormulaTransformable(this._lexerTreeBuilder,n),h=i[0].startRow,f=i[0].startColumn;let m;c?i.forEach(g=>{l.Range.foreach(g,(R,V)=>{const T=Q.transformFormula(this._lexerTreeBuilder,n,h,f,R,V),b=this._registerFormula(e,t,a,T);s.setValue(R,V,{formulaId:b,ruleId:a}),d.set(b,{row:R,column:V})})}):(m=this._registerFormula(e,t,a,n),i.forEach(g=>{l.Range.foreach(g,(R,V)=>{s.setValue(R,V,{formulaId:m,ruleId:a})})})),u.set(a,{formula:n,originCol:f,originRow:h,isTransformable:c,formulaId:m})}addRule(e,t,a){const{ranges:n,formula1:i,uid:s,type:u}=a;u!==l.DataValidationType.CUSTOM||!i||!l.isFormulaString(i)||this._addFormulaByRange(e,t,s,i,n)}updateRuleRanges(e,t,a,n,i){const{formulaMap:s,ruleFormulaMap:u,formulaCellMap:d}=this._ensureMaps(e,t),c=u.get(a);if(!c)return;const{formula:h,originCol:f,originRow:m,isTransformable:g,formulaId:R}=c,V=new Set;n.forEach(T=>{l.Range.foreach(T,(b,U)=>{const P=s.getValue(b,U);P&&P.ruleId===a&&(P.temp=!0)})}),i.forEach(T=>{l.Range.foreach(T,(b,U)=>{var A;const P=(A=s.getValue(b,U))!=null?A:{};if(P.ruleId!==a){const N=u.get(P.ruleId);if(N!=null&&N.isTransformable&&V.add(P.formulaId),g){const $=Q.transformFormula(this._lexerTreeBuilder,h,m,f,b,U),q=this._registerFormula(e,t,a,$);s.setValue(b,U,{ruleId:a,formulaId:q}),d.set(q,{row:b,column:U})}else s.setValue(b,U,{ruleId:a,formulaId:R})}else P.temp=!1})}),n.forEach(T=>{l.Range.foreach(T,(b,U)=>{const P=s.getValue(b,U);P&&P.ruleId===a&&P.temp===!0&&(s.realDeleteValue(b,U),g&&V.add(P.formulaId))})}),V.forEach(T=>{d.delete(T)}),this._registerOtherFormulaService.deleteFormula(e,t,Array.from(V.values()))}updateRuleFormula(e,t,a,n,i){const{ruleFormulaMap:s}=this._ensureMaps(e,t),u=s.get(a);(!u||u.formula!==i)&&this._addFormulaByRange(e,t,a,i,n)}getCellFormulaValue(e,t,a,n){const{formulaMap:i}=this._ensureMaps(e,t),s=i.getValue(a,n);return s?this._registerOtherFormulaService.getFormulaValue(e,t,s.formulaId):Promise.resolve(void 0)}getRuleFormulaInfo(e,t,a){const{ruleFormulaMap:n}=this._ensureMaps(e,t);return n.get(a)}},v.DataValidationCustomFormulaService=_n([Ne(0,y.Inject(v.RegisterOtherFormulaService)),Ne(1,y.Inject(Q.LexerTreeBuilder)),Ne(2,l.IUniverInstanceService),Ne(3,y.Inject(O.DataValidationModel)),Ne(4,y.Inject(ye))],v.DataValidationCustomFormulaService);function he(o){var r,e;return(e=(r=o==null?void 0:o[0])==null?void 0:r[0])==null?void 0:e.v}class Rn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.CUSTOM);M(this,"title","dataValidation.custom.title");M(this,"operators",[]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Wt);M(this,"_customFormulaService",this.injector.get(v.DataValidationCustomFormulaService))}validatorFormula(e){const t=l.isFormulaString(e.formula1);return{success:t,formula1:t?"":this.localeService.t("dataValidation.validFail.formula")}}async parseFormula(e,t,a){return{formula1:void 0,formula2:void 0}}async isValidType(e,t,a){const{column:n,row:i,unitId:s,subUnitId:u}=e,d=await this._customFormulaService.getCellFormulaValue(s,u,i,n);return!!he(d==null?void 0:d.result)}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.custom.error")}}var Mn=Object.defineProperty,Dn=Object.getOwnPropertyDescriptor,Vn=(o,r,e,t)=>{for(var a=t>1?void 0:t?Dn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Mn(r,e,a),a},ct=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationFormulaService=class extends l.Disposable{constructor(e,t,a){super();M(this,"_formulaRuleMap",new Map);this._registerOtherFormulaService=e,this._dataValidationCacheService=t,this._dataValidationModel=a,this._initFormulaResultHandler()}_initFormulaResultHandler(){this.disposeWithMe(this._registerOtherFormulaService.formulaResult$.subscribe(e=>{for(const t in e){const a=e[t];for(const n in a){const i=a[n],s=this._ensureRuleFormulaMap(t,n),u=this._dataValidationModel.ensureManager(t,n);i.forEach(d=>{if(s.get(d.ruleId)){const c=u.getRuleById(d.ruleId);c&&this._dataValidationCacheService.markRangeDirty(t,n,c.ranges)}})}}}))}_ensureRuleFormulaMap(e,t){let a=this._formulaRuleMap.get(e);a||(a=new Map,this._formulaRuleMap.set(e,a));let n=a.get(t);return n||(n=new Map,a.set(t,n)),n}addRule(e,t,a,n,i){const s=l.isFormulaString(n),u=l.isFormulaString(i);if(!s&&!u)return;const d=this._ensureRuleFormulaMap(e,t),c=[void 0,void 0];if(s){const h=this._registerOtherFormulaService.registerFormula(e,t,a,n);c[0]={id:h,text:n}}if(u){const h=this._registerOtherFormulaService.registerFormula(e,t,a,i);c[1]={id:h,text:i}}d.set(a,c)}removeRule(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(!i)return;const[s,u]=i,d=[s==null?void 0:s.id,u==null?void 0:u.id].filter(Boolean);d.length&&this._registerOtherFormulaService.deleteFormula(e,t,d)}updateRuleFormulaText(e,t,a,n,i){const u=this._ensureRuleFormulaMap(e,t).get(a);if(!u){this.addRule(e,t,a,n,i);return}const[d,c]=u;if((d==null?void 0:d.text)!==n)if(d&&this._registerOtherFormulaService.deleteFormula(e,t,[d.id]),l.isFormulaString(n)){const h=this._registerOtherFormulaService.registerFormula(e,t,a,n);u[0]={text:n,id:h}}else u[0]=void 0;if((c==null?void 0:c.text)!==i)if(c&&this._registerOtherFormulaService.deleteFormula(e,t,[c.id]),l.isFormulaString(i)){const h=this._registerOtherFormulaService.registerFormula(e,t,a,i);u[1]={text:i,id:h}}else u[1]=void 0}getRuleFormulaResult(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(!i)return Promise.resolve(null);const s=async u=>u&&this._registerOtherFormulaService.getFormulaValue(e,t,u.id);return Promise.all([s(i[0]),s(i[1])])}getRuleFormulaResultSync(e,t,a){const i=this._ensureRuleFormulaMap(e,t).get(a);if(i)return i.map(s=>{if(s)return this._registerOtherFormulaService.getFormulaValueSync(e,t,s.id)})}getRuleFormulaInfo(e,t,a){return this._ensureRuleFormulaMap(e,t).get(a)}},v.DataValidationFormulaService=Vn([ct(0,y.Inject(v.RegisterOtherFormulaService)),ct(1,y.Inject(ye)),ct(2,y.Inject(O.DataValidationModel))],v.DataValidationFormulaService);var In=Object.defineProperty,Cn=Object.getOwnPropertyDescriptor,On=(o,r,e,t)=>{for(var a=t>1?void 0:t?Cn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&In(r,e,a),a},ht=(o,r)=>(e,t)=>r(e,t,o);const Ge=6;let mt=class{constructor(o,r,e){this._commandService=o,this._formulaService=r,this._themeService=e}_calc(o,r){var d,c,h;const{vt:e,ht:t}=r||{},a=o.endX-o.startX-Ge*2,n=o.endY-o.startY,i=((d=r==null?void 0:r.fs)!=null?d:10)*1.6;let s=0,u=0;switch(e){case l.VerticalAlign.TOP:u=0;break;case l.VerticalAlign.BOTTOM:u=0+(n-i);break;default:u=0+(n-i)/2;break}switch(t){case l.HorizontalAlign.LEFT:s=Ge;break;case l.HorizontalAlign.RIGHT:s=Ge+(a-i);break;default:s=Ge+(a-i)/2;break}return{left:o.startX+s,top:o.startY+u,width:((c=r==null?void 0:r.fs)!=null?c:10)*1.6,height:((h=r==null?void 0:r.fs)!=null?h:10)*1.6}}calcCellAutoHeight(){}async _parseFormula(o,r,e){var i,s;const{formula1:t=je,formula2:a=Xe}=o,n=await this._formulaService.getRuleFormulaResult(r,e,o.uid);return{formula1:l.isFormulaString(t)?he((i=n==null?void 0:n[0])==null?void 0:i.result):t,formula2:l.isFormulaString(a)?he((s=n==null?void 0:n[1])==null?void 0:s.result):a}}drawWith(o,r){var W,L,E,k,G;const{style:e,data:t,primaryWithCoord:a,unitId:n,subUnitId:i}=r,s=a.isMergedMainCell?a.mergeInfo:a,u=ae(t),d=(W=t.dataValidation)==null?void 0:W.rule,c=(L=t.dataValidation)==null?void 0:L.validator;if(!d||!c)return;const h=this._themeService.getCurrentTheme();if(!c.skipDefaultFontRender(d,u,{unitId:n,subUnitId:i}))return;const{formula1:f=je}=d,m=this._calc(s,e),{a:g,d:R}=o.getTransform(),V=K.fixLineWidthByScale(m.left,g),T=K.fixLineWidthByScale(m.top,R),b=K.Transform.create().composeMatrix({left:V,top:T,scaleX:1,scaleY:1,angle:0,skewX:0,skewY:0,flipX:!1,flipY:!1}),U=s.endX-s.startX,P=s.endY-s.startY;o.save(),o.beginPath(),o.rect(s.startX,s.startY,U,P),o.clip();const A=b.getMatrix();o.transform(A[0],A[1],A[2],A[3],A[4],A[5]);const N=((E=e==null?void 0:e.fs)!=null?E:10)*1.6,$=String(u)===String(f),q=h.hyacinth500;K.Checkbox.drawWith(o,{checked:$,width:N,height:N,fill:(G=(k=e==null?void 0:e.cl)==null?void 0:k.rgb)!=null?G:q}),o.restore()}isHit(o,r){const e=r.primaryWithCoord.isMergedMainCell?r.primaryWithCoord.mergeInfo:r.primaryWithCoord,t=this._calc(e,r.style),a=t.top,n=t.top+t.height,i=t.left,s=t.left+t.width,{x:u,y:d}=o;return u<=s&&u>=i&&d<=n&&d>=a}async onPointerDown(o,r){var f,m;if(r.button===2)return;const{primaryWithCoord:e,unitId:t,subUnitId:a,data:n}=o,i=ae(n),s=(f=n.dataValidation)==null?void 0:f.rule,u=(m=n.dataValidation)==null?void 0:m.validator;if(!s||!u||!u.skipDefaultFontRender(s,i,{unitId:t,subUnitId:a}))return;const{formula1:d,formula2:c}=await this._parseFormula(s,t,a),h={range:{startColumn:e.actualColumn,endColumn:e.actualColumn,startRow:e.actualRow,endRow:e.actualRow},value:{v:String(i)===String(d)?c:d,p:null}};this._commandService.executeCommand(ne.SetRangeValuesCommand.id,h)}};mt=On([ht(0,l.ICommandService),ht(1,y.Inject(v.DataValidationFormulaService)),ht(2,y.Inject(l.ThemeService))],mt);const je=1,Xe=0;class wn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.CHECKBOX);M(this,"title","dataValidation.checkbox.title");M(this,"operators",[]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Ht);M(this,"canvasRender",this.injector.createInstance(mt));M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService))}skipDefaultFontRender(e,t,a){const{formula1:n,formula2:i}=this.parseFormulaSync(e,a.unitId,a.subUnitId),s=`${t!=null?t:""}`;return!s||s===`${n}`||s===`${i}`}validatorFormula(e){const{formula1:t=je,formula2:a=Xe}=e,n=!l.Tools.isBlank(t),i=!l.Tools.isBlank(a);return{success:n&&i,formula1:n?"":this.localeService.t("dataValidation.validFail.common"),formula2:i?"":this.localeService.t("dataValidation.validFail.common")}}async parseFormula(e,t,a){var u,d;const{formula1:n=je,formula2:i=Xe}=e,s=await this._formulaService.getRuleFormulaResult(t,a,e.uid);return{formula1:l.isFormulaString(n)?he((u=s==null?void 0:s[0])==null?void 0:u.result):n,formula2:l.isFormulaString(i)?he((d=s==null?void 0:s[1])==null?void 0:d.result):i}}parseFormulaSync(e,t,a){var u,d;const{formula1:n=je,formula2:i=Xe}=e,s=this._formulaService.getRuleFormulaResultSync(t,a,e.uid);return{formula1:l.isFormulaString(n)?he((u=s==null?void 0:s[0])==null?void 0:u.result):n,formula2:l.isFormulaString(i)?he((d=s==null?void 0:s[1])==null?void 0:d.result):i}}async isValidType(e,t,a){const{value:n,unitId:i,subUnitId:s}=e,{formula1:u,formula2:d}=await this.parseFormula(a,i,s);return!l.Tools.isDefine(u)||!l.Tools.isDefine(d)?!0:l.Tools.isDefine(n)&&(String(n)===String(u)||String(n)===String(d))}generateRuleErrorMessage(e){return this.localeService.t("dataValidation.checkbox.error")}}const Ue=[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.NOT_BETWEEN],ft=86400;function yn(o,r=!0){if(r&&o>=0){if(o===0)return[1900,1,0];if(o===60)return[1900,2,29];if(o<60)return[1900,o<32?1:2,(o-1)%31+1]}let e=o+68569+2415019;const t=Math.floor(4*e/146097);e=e-Math.floor((146097*t+3)/4);const a=Math.floor(4e3*(e+1)/1461001);e=e-Math.floor(1461*a/4)+31;const n=Math.floor(80*e/2447),i=e-Math.floor(2447*n/80);e=Math.floor(n/11);const s=n+2-12*e;return[100*(t-49)+a+e|0,s|0,i|0]}const En=o=>{let r=o|0;const e=ft*(o-r);let t=Math.floor(e);e-t>.9999&&(t+=1,t===ft&&(t=0,r+=1));const a=t<0?ft+t:t,[n,i,s]=yn(o,!0),u=Math.floor(a/60/60)%60,d=Math.floor(a/60)%60,c=Math.floor(a)%60,h=new Date(0);return h.setUTCFullYear(n,i-1,s),h.setUTCHours(u,d,c),h.getTime()},Fn={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.operators.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.operators.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.operators.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.operators.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.operators.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.operators.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.operators.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.operators.notEqual"};l.DataValidationOperator.BETWEEN+"",l.DataValidationOperator.EQUAL+"",l.DataValidationOperator.GREATER_THAN+"",l.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",l.DataValidationOperator.LESS_THAN+"",l.DataValidationOperator.LESS_THAN_OR_EQUAL+"",l.DataValidationOperator.NOT_BETWEEN+"",l.DataValidationOperator.NOT_EQUAL+"";const Tn={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.ruleName.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.ruleName.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.ruleName.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.ruleName.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.ruleName.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.ruleName.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.ruleName.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.ruleName.notEqual"},bn={[l.DataValidationOperator.BETWEEN]:"dataValidation.date.errorMsg.between",[l.DataValidationOperator.EQUAL]:"dataValidation.date.errorMsg.equal",[l.DataValidationOperator.GREATER_THAN]:"dataValidation.date.errorMsg.greaterThan",[l.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.greaterThanOrEqual",[l.DataValidationOperator.LESS_THAN]:"dataValidation.date.errorMsg.lessThan",[l.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.date.errorMsg.lessThanOrEqual",[l.DataValidationOperator.NOT_BETWEEN]:"dataValidation.date.errorMsg.notBetween",[l.DataValidationOperator.NOT_EQUAL]:"dataValidation.date.errorMsg.notEqual"},zt="{FORMULA1}",Gt="{FORMULA2}",Xt=o=>Me(o).isValid(),Qe=o=>{if(!(o==null||typeof o=="boolean"))return typeof o=="number"||!Number.isNaN(+o)?Me(En(+o)):Me(o)};class Ln extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.DATE);M(this,"title","dataValidation.date.title");M(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Le);M(this,"dropdown",xt);M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));M(this,"transformDate",Qe)}async parseFormula(e,t,a){var u,d;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:Qe(l.isFormulaString(i)?he((u=n==null?void 0:n[0])==null?void 0:u.result):i),formula2:Qe(l.isFormulaString(s)?he((d=n==null?void 0:n[1])==null?void 0:d.result):s)}}async isValidType(e){const{value:t}=e;return typeof t=="string"?Me(t).isValid():typeof t=="number"}_validatorSingleFormula(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)||!!e&&Me(e).isValid())}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=this._validatorSingleFormula(e.formula1),n=this.localeService.t("dataValidation.validFail.date");if(Ue.includes(t)){const s=this._validatorSingleFormula(e.formula2);return{success:a&&s,formula1:a?void 0:n,formula2:s?void 0:n}}return{success:a,formula1:a?void 0:n}}transform(e,t,a){const{value:n}=e;return{...e,value:Qe(n)}}async validatorIsEqual(e,t,a){const{value:n}=e,{formula1:i}=t;return i?n.isSame(i):!0}async validatorIsNotEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?!a.isSame(n):!0}async validatorIsBetween(e,t){const{value:a}=e,{formula1:n,formula2:i}=t;if(!n||!i)return!1;const s=n.isAfter(i)?i:n,u=s===n?i:n;return(a.isAfter(s)||a.isSame(s))&&(a.isBefore(u)||a.isSame(u))}async validatorIsNotBetween(e,t){const{value:a}=e,{formula1:n,formula2:i}=t;if(!n||!i)return!1;const s=n.isAfter(i)?n:i,u=s===n?i:n;return a.isBefore(s)||a.isAfter(u)}async validatorIsGreaterThan(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isAfter(n):!0}async validatorIsGreaterThanOrEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isAfter(n)||a.isSame(n):!0}async validatorIsLessThan(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isBefore(n)||a.isSame(n):!0}async validatorIsLessThanOrEqual(e,t){const{value:a}=e,{formula1:n}=t;return n?a.isBefore(n)||a.isSame(n):!0}validatorFormulaValue(e){if(!l.Tools.isDefine(e.operator))return;if(Ue.includes(e.operator)){if(l.Tools.isBlank(e.formula1)||l.Tools.isBlank(e.formula2))return"";if(!Xt(e.formula1)||!Xt(e.formula2))return""}else if(l.Tools.isBlank(e.formula1))return""}get operatorNames(){return this.operators.map(e=>this.localeService.t(Fn[e]))}generateRuleName(e){var a,n;if(!e.operator)return this.titleStr;const t=this.localeService.t(Tn[e.operator]).replace(zt,(a=e.formula1)!=null?a:"").replace(Gt,(n=e.formula2)!=null?n:"");return`${this.titleStr} ${t}`}generateRuleErrorMessage(e){var a,n;return e.operator?`${this.localeService.t(bn[e.operator]).replace(zt,(a=e.formula1)!=null?a:"").replace(Gt,(n=e.formula2)!=null?n:"")}`:this.titleStr}}var An=Object.defineProperty,Nn=Object.getOwnPropertyDescriptor,jn=(o,r,e,t)=>{for(var a=t>1?void 0:t?Nn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&An(r,e,a),a},Ke=(o,r)=>(e,t)=>r(e,t,o);const Ee=4,Un=6,le=14,De=6,me=2,Pn="#565656",Qt=new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");function Bn(o,r){const e=o.length;return{id:"d",body:{dataStream:`${o}${l.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[{ts:{fs:11,ff:void 0,it:l.BooleanNumber.FALSE,bl:l.BooleanNumber.FALSE,ul:{s:l.BooleanNumber.FALSE},st:{s:l.BooleanNumber.FALSE},ol:{s:l.BooleanNumber.FALSE},cl:void 0,...r,bg:void 0,bd:void 0},st:0,ed:e}]},documentStyle:{pageSize:{width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY}}}}function pt(o,r,e){const t=Bn(o,e),a=new l.DocumentDataModel(t),n=new K.DocumentViewModel(a);return{documentSkeleton:K.DocumentSkeleton.create(n,r),docModel:a,docViewModel:n}}function Kt(o,r,e){const{documentSkeleton:t,docModel:a,docViewModel:n}=pt(o,r,e);return{documents:new K.Documents(`DOCUMENTS_${l.Tools.generateRandomId()}`,t,{pageMarginLeft:0,pageMarginTop:0}),documentSkeleton:t,docModel:a,docViewModel:n}}let vt=(Dt=class{constructor(o,r,e,t){M(this,"_dropdownInfoMap",new Map);M(this,"zIndex");M(this,"onPointerEnter");M(this,"onPointerLeave");this._localeService=o,this._commandService=r,this._dataValidationModel=e,this._dataValidatorRegistryService=t}_ensureMap(o){let r=this._dropdownInfoMap.get(o);return r||(r=new Map,this._dropdownInfoMap.set(o,r)),r}_generateKey(o,r){return`${o}.${r}`}_drawDownIcon(o,r,e,t,a){const n=e-le+4;let i=4;switch(a){case l.VerticalAlign.MIDDLE:i=(t-le)/2+4;break;case l.VerticalAlign.BOTTOM:i=t-le+4;break}o.save(),o.translateWithPrecision(r.startX+n,r.startY+i),o.fillStyle="#565656",o.fill(Qt),o.restore()}drawWith(o,r,e,t){var q,W;const{primaryWithCoord:a,row:n,col:i,style:s,data:u,subUnitId:d}=r,c=a.isMergedMainCell?a.mergeInfo:a,h=c.endX-c.startX,f=c.endY-c.startY,m=this._ensureMap(d),g=this._generateKey(n,i),R=(q=u.dataValidation)==null?void 0:q.rule,V=(W=u.dataValidation)==null?void 0:W.validator;if(!R||!V||!V.skipDefaultFontRender(R))return;const T=V.getListWithColor(R),b=ae(u),U=`${b!=null?b:""}`,P=T.find(L=>L.label===U);let{tb:A,vt:N,ht:$}=s||{};if(A=A!=null?A:l.WrapStrategy.WRAP,N=N!=null?N:l.VerticalAlign.TOP,$=$!=null?$:l.HorizontalAlign.LEFT,R.renderMode===l.DataValidationRenderMode.ARROW){this._drawDownIcon(o,c,h,f,N),o.save(),o.translateWithPrecision(c.startX,c.startY),o.beginPath(),o.rect(0,0,h,f),o.clip();const L=h-le,{documentSkeleton:E,documents:k,docModel:G}=Kt(U,this._localeService,s);A===l.WrapStrategy.WRAP&&G.updateDocumentDataPageSize(L),E.calculate(),E.getActualSize();const F=K.getDocsSkeletonPageSize(E),{height:S,width:_}=F;let C=0;switch(N){case l.VerticalAlign.BOTTOM:C=f-me-S;break;case l.VerticalAlign.MIDDLE:C=(f-me-S)/2;break;default:C=me;break}let D=0;switch($){case l.HorizontalAlign.CENTER:D=(L-_)/2;break;case l.HorizontalAlign.RIGHT:D=L-_;break}o.translate(0,C),o.save(),o.translateWithPrecision(Ee,0),o.beginPath(),o.rect(0,0,L,S),o.clip(),k.render(o),o.translateWithPrecision(D,0),o.restore(),o.restore(),m.set(g,{left:c.endX+e.rowHeaderWidth-le,top:c.startY+e.columnHeaderHeight,width:le,height:f})}else{o.save(),o.translateWithPrecision(c.startX,c.startY),o.beginPath(),o.rect(0,0,h,f),o.clip();const L=h-De*2-Ee-le,{documentSkeleton:E,documents:k,docModel:G}=Kt(U,this._localeService,s);A===l.WrapStrategy.WRAP&&G.updateDocumentDataPageSize(L),E.calculate();const F=K.getDocsSkeletonPageSize(E),{height:S,width:_}=F;let C=0;switch(N){case l.VerticalAlign.BOTTOM:C=f-me-S;break;case l.VerticalAlign.MIDDLE:C=(f-me-S)/2;break;default:C=me;break}let D=0;switch($){case l.HorizontalAlign.CENTER:D=(L-_)/2;break;case l.HorizontalAlign.RIGHT:D=L-_;break}o.translate(De,C);const I=h-De*2,w=S;K.Rect.drawWith(o,{width:I,height:w,fill:(P==null?void 0:P.color)||Re,radius:8}),o.save(),o.translateWithPrecision(Ee,0),o.beginPath(),o.rect(0,0,L,S),o.clip(),o.translateWithPrecision(D,0),k.render(o),o.restore(),o.translate(L+Ee+4,(S-Un)/2),o.fillStyle=Pn,o.fill(Qt),o.restore(),m.set(g,{left:c.startX+De+e.rowHeaderWidth,top:c.startY+C+e.columnHeaderHeight,width:I,height:w})}}calcCellAutoHeight(o){var c;const{primaryWithCoord:r,style:e,data:t}=o,a=r.isMergedMainCell?r.mergeInfo:r,n=a.endX-a.startX,i=ae(t),s=`${i!=null?i:""}`,u=(c=t.dataValidation)==null?void 0:c.rule;if(!u||u.renderMode===l.DataValidationRenderMode.TEXT)return;let{tb:d}=e||{};if(d=d!=null?d:l.WrapStrategy.WRAP,u.renderMode===l.DataValidationRenderMode.ARROW){const h=n-le,{documentSkeleton:f,docModel:m}=pt(s,this._localeService,e);d===l.WrapStrategy.WRAP&&m.updateDocumentDataPageSize(h),f.calculate(),f.getActualSize();const g=K.getDocsSkeletonPageSize(f),{height:R}=g;return R}else{const h=n-De*2-Ee-le,{documentSkeleton:f,docModel:m}=pt(s,this._localeService,e);d===l.WrapStrategy.WRAP&&m.updateDocumentDataPageSize(h),f.calculate(),f.getActualSize();const g=K.getDocsSkeletonPageSize(f),{height:R}=g;return R+me*2}}isHit(o,r){const{data:e,subUnitId:t,row:a,col:n}=r,s=this._ensureMap(t).get(this._generateKey(a,n));if(!e.dataValidation||!s)return!1;const{top:d,left:c,width:h,height:f}=s,{x:m,y:g}=o;return m>=c&&m<=c+h&&g>=d&&g<=d+f}onPointerDown(o,r){if(r.button===2)return;const{unitId:e,subUnitId:t,row:a,col:n}=o,i={unitId:e,subUnitId:t,row:a,column:n};this._commandService.executeCommand(We.id,i)}},M(Dt,"padding",{l:De+Ee,r:le+De,t:me,b:me}),Dt);vt=jn([Ke(0,y.Inject(l.LocaleService)),Ke(1,l.ICommandService),Ke(2,y.Inject(O.DataValidationModel)),Ke(3,y.Inject(O.DataValidatorRegistryService))],vt);class $n extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.LIST);M(this,"title","dataValidation.list.title");M(this,"operators",[]);M(this,"scopes",["sheet"]);M(this,"formulaInput",ut);M(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));M(this,"canvasRender",this.injector.createInstance(vt));M(this,"dropdown",lt);M(this,"optionsInput",ze.componentKey)}skipDefaultFontRender(e){return e.renderMode!==l.DataValidationRenderMode.TEXT}validatorFormula(e){const t=!l.Tools.isBlank(e.formula1);return{success:t,formula1:t?void 0:this.localeService.t("dataValidation.validFail.list")}}_parseCellValue(e,t){const a=e.toString();return de(a)}async parseFormula(e,t,a){const{formula1:n=""}=e;return{formula1:Q.isReferenceString(n)?be(Q.deserializeRangeWithSheet(n),this._univerInstanceService,t,a):de(n),formula2:void 0}}async isValidType(e,t,a){const{value:n}=e,{formula1:i}=t;return this._parseCellValue(n,a).every(u=>i.includes(u))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var h,f;const{formula1:n=""}=e,i=this.injector.get(l.IUniverInstanceService),s=(h=t?i.getUniverSheetInstance(t):void 0)!=null?h:i.getCurrentUniverSheetInstance(),u=(f=a?s.getSheetBySheetId(a):void 0)!=null?f:s.getActiveSheet(),d=s.getUnitId(),c=u.getSheetId();return Q.isReferenceString(n)?be(Q.deserializeRangeWithSheet(n),this._univerInstanceService,d,c):de(n)}getListWithColor(e,t,a){const n=this.getList(e,t,a),i=(e.formula2||"").split(",");return n.map((s,u)=>({label:s,color:i[u]}))}getListWithColorMap(e,t,a){const n=this.getListWithColor(e,t,a),i={};return n.forEach(s=>{s.color&&(i[s.label]=s.color)}),i}}function Ze(o){let r=o;return typeof o=="string"?((o.startsWith("¥")||o.startsWith("$"))&&(r=o.slice(1)),+r):+o}class xn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));M(this,"id",l.DataValidationType.DECIMAL);M(this,"title",this.localeService.t("dataValidation.decimal.title"));M(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Le);M(this,"dropDownInput")}_isFormulaOrNumber(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e))}async isValidType(e,t,a){const{value:n}=e;return!Number.isNaN(Ze(n))}transform(e,t,a){const{value:n}=e;return{...e,value:Ze(n)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var d,c,h,f,m,g,R,V;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(i)?(f=(h=(c=(d=n==null?void 0:n[0])==null?void 0:d.result)==null?void 0:c[0])==null?void 0:h[0])==null?void 0:f.v:i),formula2:this._parseNumber(l.isFormulaString(s)?(V=(R=(g=(m=n==null?void 0:n[1])==null?void 0:m.result)==null?void 0:g[0])==null?void 0:R[0])==null?void 0:V.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrNumber(e.formula1),n=l.Tools.isDefine(e.formula2)&&this._isFormulaOrNumber(e.formula2),i=Ue.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{success:a&&n,formula1:a?void 0:s,formula2:n?void 0:s}:{success:a,formula1:a?"":s}}async validatorIsEqual(e,t,a){const{formula1:n}=t,{value:i}=e;return Number.isNaN(n)?!0:i===n}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value!==n}async validatorIsBetween(e,t,a){const{formula1:n,formula2:i}=t;if(Number.isNaN(n)||Number.isNaN(i))return!0;const s=Math.min(n,i),u=Math.max(n,i);return e.value>=s&&e.value<=u}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:i}=t;if(Number.isNaN(n)||Number.isNaN(i))return!0;const s=Math.min(n,i),u=Math.max(n,i);return e.value<s&&e.value>u}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>n}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>=n}async validatorIsLessThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<n}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<=n}}const kn="{FORMULA1}",Wn="{FORMULA2}";class Hn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.TEXT_LENGTH);M(this,"title","dataValidation.textLength.title");M(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Le);M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService))}_isFormulaOrInt(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),n=l.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),i=Ue.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{success:a&&n,formula1:a?void 0:s,formula2:n?void 0:s}:{success:a,formula1:s}}_parseNumber(e){return e==null?Number.NaN:+e}_isValidFormula(e){return!Number.isNaN(e)}async parseFormula(e,t,a){var u,d,c,h,f,m,g,R;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(i)?(h=(c=(d=(u=n==null?void 0:n[0])==null?void 0:u.result)==null?void 0:d[0])==null?void 0:c[0])==null?void 0:h.v:i),formula2:this._parseNumber(l.isFormulaString(s)?(R=(g=(m=(f=n==null?void 0:n[1])==null?void 0:f.result)==null?void 0:m[0])==null?void 0:g[0])==null?void 0:R.v:s)}}transform(e,t,a){return{...e,value:e.value.toString().length}}async isValidType(e,t,a){const{value:n}=e;return typeof n=="string"||typeof n=="number"}async validatorIsEqual(e,t,a){const{formula1:n}=t;return l.Tools.isDefine(n)?e.value===n:!1}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return l.Tools.isDefine(n)?e.value!==n:!1}async validatorIsBetween(e,t,a){const{formula1:n,formula2:i}=t,{value:s}=e;if(!this._isValidFormula(n)||!this._isValidFormula(i))return!1;const u=Math.max(n,i),d=Math.min(n,i);return s>=d&&s<=u}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:i}=t,{value:s}=e;if(!this._isValidFormula(n)||!this._isValidFormula(i))return!1;const u=Math.max(n,i),d=Math.min(n,i);return s>=d&&s<=u}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t,{value:i}=e;return this._isValidFormula(n)?i>n:!1}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t,{value:i}=e;return this._isValidFormula(n)?i>=n:!1}async validatorIsLessThan(e,t,a){const{formula1:n}=t,{value:i}=e;return this._isValidFormula(n)?i<n:!1}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t,{value:i}=e;return this._isValidFormula(n)?i<=n:!1}generateRuleErrorMessage(e){var a,n;return e.operator?`${this.localeService.t(O.TextLengthErrorTitleMap[e.operator]).replace(kn,(a=e.formula1)!=null?a:"").replace(Wn,(n=e.formula2)!=null?n:"")}`:this.titleStr}}class qn extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"_formulaService",this.injector.get(v.DataValidationFormulaService));M(this,"id",l.DataValidationType.WHOLE);M(this,"title",this.localeService.t("dataValidation.whole.title"));M(this,"operators",[l.DataValidationOperator.BETWEEN,l.DataValidationOperator.EQUAL,l.DataValidationOperator.GREATER_THAN,l.DataValidationOperator.GREATER_THAN_OR_EQUAL,l.DataValidationOperator.LESS_THAN,l.DataValidationOperator.LESS_THAN_OR_EQUAL,l.DataValidationOperator.NOT_BETWEEN,l.DataValidationOperator.NOT_EQUAL]);M(this,"scopes",["sheet"]);M(this,"formulaInput",Le);M(this,"dropDownInput")}_isFormulaOrInt(e){return!l.Tools.isBlank(e)&&(l.isFormulaString(e)||!Number.isNaN(+e)&&Number.isInteger(+e))}async isValidType(e,t,a){const{value:n}=e,i=Ze(n);return!Number.isNaN(i)&&Number.isInteger(i)}transform(e,t,a){const{value:n}=e;return{...e,value:Ze(n)}}_parseNumber(e){return e==null?Number.NaN:+e}async parseFormula(e,t,a){var d,c,h,f,m,g,R,V;const n=await this._formulaService.getRuleFormulaResult(t,a,e.uid),{formula1:i,formula2:s}=e;return{formula1:this._parseNumber(l.isFormulaString(i)?(f=(h=(c=(d=n==null?void 0:n[0])==null?void 0:d.result)==null?void 0:c[0])==null?void 0:h[0])==null?void 0:f.v:i),formula2:this._parseNumber(l.isFormulaString(s)?(V=(R=(g=(m=n==null?void 0:n[1])==null?void 0:m.result)==null?void 0:g[0])==null?void 0:R[0])==null?void 0:V.v:s)}}validatorFormula(e){const t=e.operator;if(!t)return{success:!1};const a=l.Tools.isDefine(e.formula1)&&this._isFormulaOrInt(e.formula1),n=l.Tools.isDefine(e.formula2)&&this._isFormulaOrInt(e.formula2),i=Ue.includes(t),s=this.localeService.t("dataValidation.validFail.number");return i?{success:a&&n,formula1:a?void 0:s,formula2:n?void 0:s}:{success:a,formula1:s}}async validatorIsEqual(e,t,a){const{formula1:n}=t,{value:i}=e;return Number.isNaN(n)?!0:i===n}async validatorIsNotEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value!==n}async validatorIsBetween(e,t,a){const{formula1:n,formula2:i}=t;if(Number.isNaN(n)||Number.isNaN(i))return!0;const s=Math.min(n,i),u=Math.max(n,i);return e.value>=s&&e.value<=u}async validatorIsNotBetween(e,t,a){const{formula1:n,formula2:i}=t;if(Number.isNaN(n)||Number.isNaN(i))return!0;const s=Math.min(n,i),u=Math.max(n,i);return e.value<s&&e.value>u}async validatorIsGreaterThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>n}async validatorIsGreaterThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value>=n}async validatorIsLessThan(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<n}async validatorIsLessThanOrEqual(e,t,a){const{formula1:n}=t;return Number.isNaN(n)?!0:e.value<=n}}const Zt=4,Yn=0,gt=4,Jt=4,St=6,Je=6,Ve=14;function zn(o,r){const e=K.FontCache.getTextSize(o,r),t=e.width+Zt*2,{ba:a,bd:n}=e,i=a+n;return{width:t,height:i+Yn*2,ba:a}}function ea(o,r,e,t){const a=e-Ve-St,n=t-Je*2,i=o.map(c=>({layout:zn(c,r),text:c}));let s;const u=[];i.forEach(c=>{const{layout:h}=c,{width:f,height:m}=h;!s||s.width+f+gt>a?(s={width:f,height:m,items:[{...c,left:0}]},u.push(s)):(s.items.push({...c,left:s.width+gt}),s.width=s.width+f+gt)});let d=0;return u.forEach((c,h)=>{h===u.length-1?d+=c.height:d+=c.height+Jt}),{lines:u,totalHeight:d,contentWidth:a,contentHeight:n,cellAutoHeight:d+Je*2}}const Gn=8;class Xn extends K.Shape{static drawWith(r,e){const{fontFamily:t,fontString:a,fontSize:n,info:i,fill:s,color:u}=e,{layout:d,text:c}=i;r.save(),K.Rect.drawWith(r,{width:d.width,height:d.height,radius:Gn,fill:s||Re}),r.translateWithPrecision(Zt,d.ba),r.font=a,r.fillStyle=u,r.fillText(c,0,0),r.restore()}}var Qn=Object.defineProperty,Kn=Object.getOwnPropertyDescriptor,Zn=(o,r,e,t)=>{for(var a=t>1?void 0:t?Kn(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Qn(r,e,a),a},Jn=(o,r)=>(e,t)=>r(e,t,o);const er=new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");let _t=class{constructor(o){M(this,"zIndex");M(this,"_dropdownInfoMap",new Map);this._commandService=o}_ensureMap(o){let r=this._dropdownInfoMap.get(o);return r||(r=new Map,this._dropdownInfoMap.set(o,r)),r}_generateKey(o,r){return`${o}.${r}`}_drawDownIcon(o,r,e,t,a){const n=e-Ve+4;let i=4;switch(a){case l.VerticalAlign.MIDDLE:i=(t-Ve)/2+4;break;case l.VerticalAlign.BOTTOM:i=t-Ve+4;break}o.save(),o.translateWithPrecision(r.startX+n,r.startY+i),o.fillStyle="#565656",o.fill(er),o.restore()}drawWith(o,r,e,t){var F,S;const{primaryWithCoord:a,row:n,col:i,style:s,data:u,subUnitId:d}=r,c=a.isMergedMainCell?a.mergeInfo:a,h=u.dataValidation,f=c.endX-c.startX,m=c.endY-c.startY,g=this._ensureMap(d),R=this._generateKey(n,i);if(!h)return;const{cl:V}=s||{},T=(F=typeof V=="object"?V==null?void 0:V.rgb:V)!=null?F:"#000",b=K.getFontStyleString(s!=null?s:void 0),{rule:U,validator:P}=h,A=P,{vt:N,ht:$}=s||{},q=N!=null?N:l.VerticalAlign.MIDDLE,W=(S=ae(u))!=null?S:"",L=A.parseCellValue(W,U),E=A.getListWithColorMap(U),k=ea(L,b,f,m);this._drawDownIcon(o,c,f,m,q),o.save(),o.translateWithPrecision(c.startX,c.startY),o.beginPath(),o.rect(0,0,f-Ve,m),o.clip(),o.translateWithPrecision(St,Je);let G=0;switch(q){case l.VerticalAlign.MIDDLE:G=(k.contentHeight-k.totalHeight)/2;break;case l.VerticalAlign.BOTTOM:G=k.contentHeight-k.totalHeight;break}o.translateWithPrecision(0,G),k.lines.forEach((_,C)=>{o.save();const{width:D,height:I,items:w}=_;let x=0;switch($){case l.HorizontalAlign.RIGHT:x=k.contentWidth-D;break;case l.HorizontalAlign.CENTER:x=(k.contentWidth-D)/2;break}o.translate(x,C*(I+Jt)),w.forEach(H=>{o.save(),o.translateWithPrecision(H.left,0),Xn.drawWith(o,{...b,info:H,color:T,fill:E[H.text]}),o.restore()}),o.restore()}),o.restore(),g.set(R,{left:c.startX,top:c.startY,width:k.contentWidth+St+Ve,height:k.contentHeight+Je*2})}calcCellAutoHeight(o){var R;const{primaryWithCoord:r,style:e,data:t}=o,a=r.isMergedMainCell?r.mergeInfo:r,n=t.dataValidation;if(!n)return;const i=a.endX-a.startX,s=a.endY-a.startY,u=(R=ae(t))!=null?R:"",{rule:d,validator:c}=n,f=c.parseCellValue(u,d),m=K.getFontStyleString(e!=null?e:void 0);return ea(f,m,i,s).cellAutoHeight}isHit(o,r){const{primaryWithCoord:e}=r,t=e.isMergedMainCell?e.mergeInfo:e,{endX:a}=t,{x:n}=o;return n>=a-Ve&&n<=a}onPointerDown(o,r){if(r.button===2)return;const{unitId:e,subUnitId:t,row:a,col:n}=o,i={unitId:e,subUnitId:t,row:a,column:n};this._commandService.executeCommand(We.id,i)}};_t=Zn([Jn(0,l.ICommandService)],_t);class tr extends O.BaseDataValidator{constructor(){super(...arguments);M(this,"id",l.DataValidationType.LIST_MULTIPLE);M(this,"title","dataValidation.listMultiple.title");M(this,"operators",[]);M(this,"scopes",["sheet"]);M(this,"formulaInput",ut);M(this,"_univerInstanceService",this.injector.get(l.IUniverInstanceService));M(this,"canvasRender",this.injector.createInstance(_t));M(this,"dropdown",lt)}skipDefaultFontRender(){return!0}validatorFormula(e){const t=!l.Tools.isBlank(e.formula1);return{success:t,formula1:t?void 0:this.localeService.t("dataValidation.validFail.list")}}parseCellValue(e,t){const a=e.toString();return a?de(a):[]}async parseFormula(e,t,a){const{formula1:n=""}=e;return{formula1:Q.isReferenceString(n)?be(Q.deserializeRangeWithSheet(n),this._univerInstanceService,t,a):de(n),formula2:void 0}}async isValidType(e,t,a){const{value:n}=e,{formula1:i}=t;return this.parseCellValue(n,a).every(u=>i.includes(u))}generateRuleName(){return this.localeService.t("dataValidation.list.name")}generateRuleErrorMessage(){return this.localeService.t("dataValidation.list.error")}getList(e,t,a){var h,f;const{formula1:n=""}=e,i=this.injector.get(l.IUniverInstanceService),s=(h=t?i.getUniverSheetInstance(t):void 0)!=null?h:i.getCurrentUniverSheetInstance(),u=(f=a?s.getSheetBySheetId(a):void 0)!=null?f:s.getActiveSheet(),d=s.getUnitId(),c=u.getSheetId();return Q.isReferenceString(n)?be(Q.deserializeRangeWithSheet(n),this._univerInstanceService,d,c):de(n)}getListWithColor(e,t,a){const n=this.getList(e,t,a),i=e.formula2?e.formula2.split(","):[];return n.map((s,u)=>({label:s,color:i[u]}))}getListWithColorMap(e,t,a){const n=this.getListWithColor(e,t,a),i={};return n.forEach(s=>{s.color&&(i[s.label]=s.color)}),i}}var ar=Object.defineProperty,nr=Object.getOwnPropertyDescriptor,rr=(o,r,e,t)=>{for(var a=t>1?void 0:t?nr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&ar(r,e,a),a},pe=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationController=class extends l.RxDisposable{constructor(r,e,t,a,n,i,s,u){super(),this._univerInstanceService=r,this._sheetDataValidationService=e,this._dataValidatorRegistryService=t,this._injector=a,this._componentManger=n,this._selectionManagerService=i,this._sheetInterceptorService=s,this._dataValidationModel=u,this._init()}_init(){this._registerValidators(),this._initInstanceChange(),this._componentManger.register(qt,bt),this._initCommandInterceptor()}_registerValidators(){[xn,qn,Hn,Ln,wn,$n,tr,Rn].forEach(r=>{const e=this._injector.createInstance(r);this.disposeWithMe(this._dataValidatorRegistryService.register(e)),this.disposeWithMe({dispose:()=>{this._injector.delete(r)}})})}_initInstanceChange(){const r=this._univerInstanceService.getCurrentUniverSheetInstance();this._sheetDataValidationService.switchCurrent(r.getUnitId(),r.getActiveSheet().getSheetId()),this.disposeWithMe(r.activeSheet$.subscribe(e=>{if(e){const t=r.getUnitId(),a=e.getSheetId();this._sheetDataValidationService.switchCurrent(t,a)}}))}_initCommandInterceptor(){this._sheetInterceptorService.interceptCommand({getMutations:r=>{if(r.id===ne.ClearSelectionAllCommand.id){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),t=e.getUnitId(),n=e.getActiveSheet().getSheetId(),i=this._selectionManagerService.getSelectionRanges(),s=this._dataValidationModel.ensureManager(t,n),u=s.getRuleObjectMatrix().clone();i&&u.removeRange(i);const d=u.diff(s.getDataValidations()),{redoMutations:c,undoMutations:h}=Oe(t,n,d);return{undos:h,redos:c}}return{undos:[],redos:[]}}})}},v.DataValidationController=rr([l.OnLifecycle(l.LifecycleStages.Rendered,v.DataValidationController),pe(0,l.IUniverInstanceService),pe(1,y.Inject(v.SheetDataValidationService)),pe(2,y.Inject(O.DataValidatorRegistryService)),pe(3,y.Inject(y.Injector)),pe(4,y.Inject(z.ComponentManager)),pe(5,y.Inject(ne.SelectionManagerService)),pe(6,y.Inject(ne.SheetInterceptorService)),pe(7,y.Inject(O.DataValidationModel))],v.DataValidationController);var ir=Object.defineProperty,or=Object.getOwnPropertyDescriptor,sr=(o,r,e,t)=>{for(var a=t>1?void 0:t?or(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&ir(r,e,a),a},Pe=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationAlertController=class extends l.Disposable{constructor(r,e,t,a,n){super(),this._hoverManagerService=r,this._cellAlertManagerService=e,this._univerInstanceService=t,this._sheetDataValidationService=a,this._localeService=n,this._init()}_init(){this._initCellAlertPopup()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(r=>{var e,t,a;if(r){const i=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=(e=this._sheetDataValidationService.currentManager)==null?void 0:e.manager,u=i.getCell(r.location.row,r.location.col);if(((t=u==null?void 0:u.dataValidation)==null?void 0:t.validStatus)===l.DataValidationStatus.INVALID){const d=(a=this._cellAlertManagerService.currentAlert)==null?void 0:a.location;if(d&&d.row===r.location.row&&d.col===r.location.col&&d.subUnitId===r.location.subUnitId&&d.unitId===r.location.unitId)return;this._cellAlertManagerService.showAlert({type:X.CellAlertType.ERROR,title:this._localeService.t("dataValidation.error.title"),message:s==null?void 0:s.getRuleErrorMsg(u.dataValidation.ruleId),location:r.location,width:200,height:74});return}}this._cellAlertManagerService.clearAlert()}))}},v.DataValidationAlertController=sr([l.OnLifecycle(l.LifecycleStages.Rendered,v.DataValidationAlertController),Pe(0,y.Inject(X.HoverManagerService)),Pe(1,y.Inject(X.CellAlertManagerService)),Pe(2,l.IUniverInstanceService),Pe(3,y.Inject(v.SheetDataValidationService)),Pe(4,y.Inject(l.LocaleService))],v.DataValidationAlertController);var lr=Object.defineProperty,ur=Object.getOwnPropertyDescriptor,dr=(o,r,e,t)=>{for(var a=t>1?void 0:t?ur(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&lr(r,e,a),a},ue=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationRefRangeController=class extends l.Disposable{constructor(e,t,a,n,i,s,u,d,c,h){super();M(this,"_disposableMap",new Map);M(this,"registerRule",(e,t,a)=>{this.register(e,t,a),this.registerFormula(e,t,a),this.registerRange(e,t,a)});this._dataValidationModel=e,this._univerInstanceService=t,this._injector=a,this._sheetSkeletonManagerService=n,this._refRangeService=i,this._dataValidationCustomFormulaService=s,this._dataValidationFormulaService=u,this._formulaRefRangeService=d,this._commandService=c,this._dataValidationCacheService=h,this._initRefRange()}_getIdWithUnitId(e,t,a){return`${e}_${t}_${a}`}registerFormula(e,t,a){var d;const n=a.uid,i=this._getIdWithUnitId(e,t,n),s=(d=this._disposableMap.get(i))!=null?d:new Set,u=(c,h)=>{const f=this._dataValidationModel.getRuleById(e,t,n);if(!f)return{redos:[],undos:[]};const m=f[c];if(!m||m===h)return{redos:[],undos:[]};const g={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:O.UpdateRuleType.SETTING,payload:{type:f.type,formula1:f.formula1,formula2:f.formula2,[c]:h}}},R={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:O.UpdateRuleType.SETTING,payload:{type:f.type,formula1:f.formula1,formula2:f.formula2,[c]:h}}},V=[{id:O.UpdateDataValidationMutation.id,params:g}],T=[{id:O.UpdateDataValidationMutation.id,params:R}];return{redos:V,undos:T}};if(a.type===l.DataValidationType.CUSTOM){const c=this._dataValidationCustomFormulaService.getRuleFormulaInfo(e,t,n);if(c){const h=this._formulaRefRangeService.registerFormula(c.formula,f=>u("formula1",f));s.add(()=>h.dispose())}}if(a.type!==l.DataValidationType.CUSTOM){const c=this._dataValidationFormulaService.getRuleFormulaInfo(e,t,n);if(c){const[h,f]=c;if(h){const m=this._formulaRefRangeService.registerFormula(h.text,g=>u("formula1",g));s.add(()=>m.dispose())}if(f){const m=this._formulaRefRangeService.registerFormula(f.text,g=>u("formula1",g));s.add(()=>m.dispose())}}}}register(e,t,a){var d;const n=c=>{const h=[...a.ranges],m=h.map(R=>ne.handleCommonDefaultRangeChangeWithEffectRefCommands(R,c)).filter(R=>!!R).flat();if(l.isRangesEqual(m,h))return{redos:[],undos:[]};if(m.length){const R={unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:O.UpdateRuleType.RANGE,payload:m}},V=[{id:O.UpdateDataValidationMutation.id,params:R}],T=[{id:O.UpdateDataValidationMutation.id,params:{unitId:e,subUnitId:t,ruleId:a.uid,payload:{type:O.UpdateRuleType.RANGE,payload:h}}}];return{redos:V,undos:T}}else{const R={unitId:e,subUnitId:t,ruleId:a.uid},V=[{id:O.RemoveDataValidationMutation.id,params:R}],T=O.removeDataValidationUndoFactory(this._injector,R);return{redos:V,undos:T}}},i=[];a.ranges.forEach(c=>{const h=this._refRangeService.registerRefRange(c,n,e,t);i.push(()=>h.dispose())});const s=this._getIdWithUnitId(e,t,a.uid),u=(d=this._disposableMap.get(s))!=null?d:new Set;u.add(()=>i.forEach(c=>c())),this._disposableMap.set(s,u)}registerRange(e,t,a){var U,P,A,N,$;const{uid:n,formula1:i,type:s}=a;if(s!==l.DataValidationType.LIST&&s!==l.DataValidationType.LIST_MULTIPLE||!Q.isReferenceString(i!=null?i:""))return;const u=Q.deserializeRangeWithSheet(i!=null?i:""),d=this._getIdWithUnitId(e,t,n),c=u.unitId||e,h=(U=this._univerInstanceService.getUniverSheetInstance(c))!=null?U:this._univerInstanceService.getCurrentUniverSheetInstance(),f=(A=(P=h.getSheetBySheetName(u.sheetName))==null?void 0:P.getSheetId())!=null?A:t,m=(N=h.getSheetBySheetId(f))!=null?N:h.getActiveSheet(),g=new l.DisposableCollection,R=u.range,V=h.getUnitId(),T=m.getSheetId();g.add(this._refRangeService.registerRefRange(R,q=>{let W=ne.handleDefaultRangeChangeWithEffectRefCommands(R,q);if(W||(W={startColumn:-1,endColumn:-1,startRow:-1,endRow:-1}),l.Rectangle.equals(W,R))return{redos:[],undos:[]};const L=Q.serializeRangeWithSpreadsheet(V,T,W),E=this._dataValidationModel.getRuleById(e,t,n);if(!E)return{redos:[],undos:[]};const k={unitId:e,subUnitId:t,ruleId:n,payload:{type:O.UpdateRuleType.SETTING,payload:{formula1:L,formula2:E.formula2,type:E.type}}},G={unitId:e,subUnitId:t,ruleId:n,payload:{type:O.UpdateRuleType.SETTING,payload:{formula1:E.formula1,formula2:E.formula2,type:E.type}}};return{redos:[{id:O.UpdateDataValidationMutation.id,params:k}],undos:[{id:O.UpdateDataValidationMutation.id,params:G}]}},V,V)),g.add(this.disposeWithMe(this._commandService.onCommandExecuted(q=>{if(q.id===ne.SetRangeValuesMutation.id&&q.params){const W=q.params,{cellValue:L,unitId:E,subUnitId:k}=W;if(E===V&&k===T)if(L){let G=!1;l.Range.foreach(R,(F,S)=>{const _=L[F];if(_&&S in _){if(G)return;G=!0,this._dataValidationCacheService.markRangeDirty(E,k,a.ranges)}})}else this._dataValidationCacheService.markRangeDirty(E,k,a.ranges)}})));const b=($=this._disposableMap.get(d))!=null?$:new Set;b.add(()=>g.dispose()),this._disposableMap.set(d,b)}_initRefRange(){this.disposeWithMe(re.merge(this._sheetSkeletonManagerService.currentSkeleton$.pipe(nt.map(e=>e==null?void 0:e.sheetId),nt.distinctUntilChanged())).pipe(nt.switchMap(()=>new re.Observable(e=>{const t=new l.DisposableCollection;return e.next(t),()=>{t.dispose()}}))).subscribe(e=>{e.add(l.toDisposable(this._dataValidationModel.ruleChange$.subscribe(t=>{const{unitId:a,subUnitId:n,rule:i}=t;switch(t.type){case"add":{const s=t.rule;this.registerRule(t.unitId,t.subUnitId,s);break}case"remove":{const s=this._disposableMap.get(this._getIdWithUnitId(a,n,i.uid));s&&s.forEach(u=>u());break}case"update":{const s=t.rule,u=this._disposableMap.get(this._getIdWithUnitId(a,n,s.uid));u&&u.forEach(d=>d()),this.registerRule(t.unitId,t.subUnitId,s);break}}})))})),this.disposeWithMe(l.toDisposable(()=>{this._disposableMap.forEach(e=>{e.forEach(t=>t())}),this._disposableMap.clear()}))}},v.DataValidationRefRangeController=dr([l.OnLifecycle(l.LifecycleStages.Rendered,v.DataValidationRefRangeController),ue(0,y.Inject(O.DataValidationModel)),ue(1,y.Inject(l.IUniverInstanceService)),ue(2,y.Inject(y.Injector)),ue(3,y.Inject(X.SheetSkeletonManagerService)),ue(4,y.Inject(ne.RefRangeService)),ue(5,y.Inject(v.DataValidationCustomFormulaService)),ue(6,y.Inject(v.DataValidationFormulaService)),ue(7,y.Inject(Vt.FormulaRefRangeService)),ue(8,l.ICommandService),ue(9,y.Inject(ye))],v.DataValidationRefRangeController);const ta={dataValidation:{title:"Data validation",validFail:{common:"Please input value or formula",number:"Please input number or formula",formula:"Please input formula",integer:"Please input integer or formula",date:"Please input date or formula",list:"Please input options"},panel:{title:"Data validation management",addTitle:"Create new data validation",removeAll:"Remove All",add:"Create Data validation",range:"Ranges",type:"Type",options:"Advance options",operator:"Operator",removeRule:"Remove",done:"Done",formulaPlaceholder:"Please input value or formula",formulaAnd:"and",invalid:"Invalid",showWarning:"Show warning",rejectInput:"Reject input",messageInfo:"Helper message",showInfo:"Show help text for a selected cell"},operators:{between:"between",greaterThan:"greater than",greaterThanOrEqual:"greater than or equal",lessThan:"less than",lessThanOrEqual:"less than or equal",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is greater than {FORMULA1}",greaterThanOrEqual:"is greater than or equal to {FORMULA1}",lessThan:"is less than {FORMULA1}",lessThanOrEqual:"is less than or equal to {FORMULA1}",equal:"is equal to {FORMULA1}",notEqual:"is not equal to {FORMULA1}",notBetween:"is not between {FORMULA1} and {FORMULA2}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be greater than {FORMULA1}",greaterThanOrEqual:"Value must be greater than or equal to {FORMULA1}",lessThan:"Value must be less than {FORMULA1}",lessThanOrEqual:"Value must be less than or equal to {FORMULA1}",equal:"Value must be equal to {FORMULA1}",notEqual:"Value must be not equal to {FORMULA1}",notBetween:"Value must be not between {FORMULA1} and {FORMULA2}"},date:{title:"Date",operators:{between:"between",greaterThan:"after",greaterThanOrEqual:"on or after",lessThan:"before",lessThanOrEqual:"on or before",equal:"equal",notEqual:"not equal",notBetween:"not between"},ruleName:{between:"is between {FORMULA1} and {FORMULA2}",greaterThan:"is after {FORMULA1}",greaterThanOrEqual:"is on or after {FORMULA1}",lessThan:"is before {FORMULA1}",lessThanOrEqual:"is on or before {FORMULA1}",equal:"is {FORMULA1}",notEqual:"is not {FORMULA1}",notBetween:"is not between {FORMULA1}"},errorMsg:{between:"Value must be between {FORMULA1} and {FORMULA2}",greaterThan:"Value must be after {FORMULA1}",greaterThanOrEqual:"Value must be on or after {FORMULA1}",lessThan:"Value must be before {FORMULA1}",lessThanOrEqual:"Value must be on or before {FORMULA1}",equal:"Value must be {FORMULA1}",notEqual:"Value must be not {FORMULA1}",notBetween:"Value must be not between {FORMULA1}"}},list:{title:"Dropdown",name:"Value contains one from range",error:"Input must fall within specified range",emptyError:"Please enter a value",add:"Add",dropdown:"Select",options:"Options",customOptions:"Custom",refOptions:"From a range"},listMultiple:{title:"Dropdown-Multiple",dropdown:"Multiple select"},textLength:{title:"Text length",errorMsg:{between:"Text length must be between {FORMULA1} and {FORMULA2}",greaterThan:"Text length must be after {FORMULA1}",greaterThanOrEqual:"Text length must be on or after {FORMULA1}",lessThan:"Text length must be before {FORMULA1}",lessThanOrEqual:"Text length must be on or before {FORMULA1}",equal:"Text length must be {FORMULA1}",notEqual:"Text length must be not {FORMULA1}",notBetween:"Text length must be not between {FORMULA1}"}},decimal:{title:"Number"},whole:{title:"Integer"},checkbox:{title:"Checkbox",error:"This cell's contents violate its validation rule",tips:"Use custom values within cells",checked:"Selected value",unchecked:"Unselected value"},custom:{title:"Custom formula",error:"This cell's contents violate its validation rule",validFail:"Please input a valid formula"},alert:{title:"Error",ok:"OK"},error:{title:"Invalid:"},renderMode:{arrow:"Arrow",chip:"Chip",text:"Plain text",label:"Display style"}}},aa={dataValidation:{title:"数据验证",validFail:{common:"请输入值或公式",number:"请输入合法的数字或公式",formula:"请输入合法的公式或公式",integer:"请输入合法的整数或公式",date:"请输入合法的日期或公式",list:"请输入至少一个合法选项"},panel:{title:"管理数据验证",addTitle:"新建数据验证",removeAll:"全部删除",add:"新建规则",range:"应用范围",type:"条件类型",options:"高级设置",operator:"数据",removeRule:"删除规则",done:"确认",formulaPlaceholder:"请输入值或公式",formulaAnd:"与",invalid:"数据无效时",showWarning:"显示警告",rejectInput:"拒绝输入",messageInfo:"文字提示",showInfo:"显示所选单元格的提示文字"},operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"大于 {FORMULA1}",greaterThanOrEqual:"大于或等于 {FORMULA1}",lessThan:"小于 {FORMULA1}",lessThanOrEqual:"小于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"值必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"值必须大于 {FORMULA1}",greaterThanOrEqual:"值必须大于或等于 {FORMULA1}",lessThan:"值必须小于 {FORMULA1}",lessThanOrEqual:"值必须小于或等于 {FORMULA1}",equal:"值必须等于 {FORMULA1}",notEqual:"值必须不等于 {FORMULA1}",notBetween:"值必须在 {FORMULA1} 和 {FORMULA2} 范围之外"},date:{title:"日期",operators:{between:"介于",greaterThan:"大于",greaterThanOrEqual:"大于或等于",lessThan:"小于",lessThanOrEqual:"小于或等于",equal:"等于",notEqual:"不等于",notBetween:"未介于"},ruleName:{between:"介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"晚于 {FORMULA1}",greaterThanOrEqual:"晚于或等于 {FORMULA1}",lessThan:"早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"等于 {FORMULA1}",notEqual:"不等于 {FORMULA1}",notBetween:"在 {FORMULA1} 和 {FORMULA2} 范围之外"},errorMsg:{between:"日期必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"日期必须晚于 {FORMULA1}",greaterThanOrEqual:"日期必须晚于或等于 {FORMULA1}",lessThan:"日期必须早于 {FORMULA1}",lessThanOrEqual:"早于或等于 {FORMULA1}",equal:"日期必须等于 {FORMULA1}",notEqual:"日期必须不等于 {FORMULA1}",notBetween:"日期必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},list:{title:"下拉菜单",name:"值必须是列表中的值",error:"输入必须在指定的范围内",emptyError:"请输入一个值",add:"添加选项",dropdown:"单选",options:"选项来源",customOptions:"自定义",refOptions:"引用数据"},listMultiple:{title:"下拉菜单-多选",dropdown:"多选"},textLength:{title:"文本长度",errorMsg:{between:"文本长度必须介于 {FORMULA1} 和 {FORMULA2} 之间",greaterThan:"文本长度必须大于 {FORMULA1}",greaterThanOrEqual:"文本长度必须大于或等于 {FORMULA1}",lessThan:"文本长度必须小于 {FORMULA1}",lessThanOrEqual:"文本长度必须小于或等于 {FORMULA1}",equal:"文本长度必须等于 {FORMULA1}",notEqual:"文本长度必须不等于 {FORMULA1}",notBetween:"文本长度必须在 {FORMULA1} 和 {FORMULA2} 范围之外"}},decimal:{title:"数字"},whole:{title:"整数"},checkbox:{title:"复选框",error:"此单元格的内容违反了验证规则",tips:"在单元格内使用自定义值",checked:"选中值",unchecked:"未选中值"},custom:{title:"自定义公式",error:"此单元格的内容违反了验证规则",validFail:"请输入合法的公式"},alert:{title:"提示",ok:"确定"},error:{title:"无效:"},renderMode:{arrow:"箭头",chip:"条状标签",text:"纯文本",label:"显示样式"}}};var cr=Object.defineProperty,hr=Object.getOwnPropertyDescriptor,mr=(o,r,e,t)=>{for(var a=t>1?void 0:t?hr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&cr(r,e,a),a},na=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationAutoFillController=class extends l.Disposable{constructor(r,e){super(),this._autoFillService=r,this._dataValidationModel=e,this._initAutoFill()}_initAutoFill(){const r=()=>({redos:[],undos:[]}),e=a=>{const{source:n,target:i,unitId:s,subUnitId:u}=a,d=this._dataValidationModel.ensureManager(s,u),c=d.getRuleObjectMatrix().clone(),h={row:n.startRow,col:n.startColumn};X.getAutoFillRepeatRange(n,i).forEach(V=>{const T=V.repeatStartCell,b=V.relativeRange,U={startRow:h.row,startColumn:h.col,endColumn:h.col,endRow:h.row},P={startRow:T.row,startColumn:T.col,endColumn:T.col,endRow:T.row};l.Range.foreach(b,(A,N)=>{const $=l.Rectangle.getPositionRange({startRow:A,startColumn:N,endColumn:N,endRow:A},U),q=d.getRuleIdByLocation($.startRow,$.startColumn);if(q){const W=l.Rectangle.getPositionRange({startRow:A,startColumn:N,endColumn:N,endRow:A},P);c.setValue(W.startRow,W.startColumn,q)}})});const m=c.diff(d.getDataValidations()),{redoMutations:g,undoMutations:R}=Oe(s,u,m);return{undos:R,redos:g}},t={id:Ye,onFillData:(a,n,i)=>i===X.APPLY_TYPE.COPY||i===X.APPLY_TYPE.ONLY_FORMAT||i===X.APPLY_TYPE.SERIES?e(a):r()};this.disposeWithMe(this._autoFillService.addHook(t))}},v.DataValidationAutoFillController=mr([l.OnLifecycle(l.LifecycleStages.Ready,v.DataValidationAutoFillController),na(0,X.IAutoFillService),na(1,y.Inject(O.DataValidationModel))],v.DataValidationAutoFillController);var fr=Object.defineProperty,pr=Object.getOwnPropertyDescriptor,vr=(o,r,e,t)=>{for(var a=t>1?void 0:t?pr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&fr(r,e,a),a},ra=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationCopyPasteController=class extends l.Disposable{constructor(e,t){super();M(this,"_copyInfo");this._sheetClipboardService=e,this._dataValidationModel=t,this._initCopyPaste()}_initCopyPaste(){this._sheetClipboardService.addClipboardHook({id:Ye,onBeforeCopy:(e,t,a)=>this._collect(e,t,a),onPasteCells:(e,t,a,n)=>{const{copyType:i=X.COPY_TYPE.COPY,pasteType:s}=n,{range:u}=e||{},{range:d,unitId:c,subUnitId:h}=t;return this._generateMutations(d,{copyType:i,pasteType:s,copyRange:u,unitId:c,subUnitId:h})}})}_collect(e,t,a){const n=new l.ObjectMatrix;this._copyInfo={unitId:e,subUnitId:t,matrix:n};const i=this._dataValidationModel.ensureManager(e,t);l.Range.foreach(a,(s,u)=>{const d=i.getRuleIdByLocation(s,u),c=l.Rectangle.getRelativeRange({startRow:s,endRow:s,startColumn:u,endColumn:u},a);n.setValue(c.startRow,c.startColumn,d!=null?d:"")})}_generateMutations(e,t){if(!this._copyInfo)return{redos:[],undos:[]};if(t.copyType===X.COPY_TYPE.CUT)return this._copyInfo=null,{redos:[],undos:[]};if(!this._copyInfo||!this._copyInfo.matrix.getSizeOf()||!t.copyRange)return{redos:[],undos:[]};if([X.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH,X.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE,X.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,Vt.SPECIAL_PASTE_FORMULA].includes(t.pasteType))return{redos:[],undos:[]};const{unitId:a,subUnitId:n}=this._copyInfo;if(t.unitId!==a||n!==t.subUnitId){const i=this._dataValidationModel.ensureManager(a,n),s=this._dataValidationModel.ensureManager(t.unitId,t.subUnitId),u=s.getRuleObjectMatrix().clone(),d=X.getRepeatRange(t.copyRange,e,!0),c=new Map;d.forEach(({startRange:m})=>{var g;(g=this._copyInfo)==null||g.matrix.forValue((R,V,T)=>{const b=l.Rectangle.getPositionRange({startRow:R,endRow:R,startColumn:V,endColumn:V},m),U=`${n}-${T}`,P=i.getRuleById(T);!s.getRuleById(U)&&P&&c.set(U,{...P,uid:U}),u.setValue(b.startRow,b.startColumn,U)})});const{redoMutations:h,undoMutations:f}=Oe(t.unitId,t.subUnitId,u.diffWithAddition(s.getDataValidations(),c.values()));return{redos:h,undos:f}}else{const i=this._dataValidationModel.ensureManager(a,n),s=i.getRuleObjectMatrix().clone();X.getRepeatRange(t.copyRange,e,!0).forEach(({startRange:h})=>{var f;(f=this._copyInfo)==null||f.matrix.forValue((m,g,R)=>{const V=l.Rectangle.getPositionRange({startRow:m,endRow:m,startColumn:g,endColumn:g},h);s.setValue(V.startRow,V.startColumn,R)})});const{redoMutations:d,undoMutations:c}=Oe(a,n,s.diff(i.getDataValidations()));return{redos:d,undos:c}}}},v.DataValidationCopyPasteController=vr([l.OnLifecycle(l.LifecycleStages.Ready,v.DataValidationCopyPasteController),ra(0,X.ISheetClipboardService),ra(1,y.Inject(O.DataValidationModel))],v.DataValidationCopyPasteController);class Rt{constructor(r){M(this,"value");this.value=r}addRule(r){const e=r.uid;r.ranges.forEach(t=>{l.Range.foreach(t,(a,n)=>{this.value.setValue(a,n,e)})})}removeRange(r){r.forEach(e=>{l.Range.foreach(e,(t,a)=>{this.value.realDeleteValue(t,a)})})}removeRule(r){r.ranges.forEach(e=>{l.Range.foreach(e,(t,a)=>{this.value.setValue(t,a,"")})})}updateRange(r,e,t){const a=`${r}$`;e.forEach(n=>{l.Range.foreach(n,(i,s)=>{this.value.getValue(i,s)===r&&this.value.setValue(i,s,a)})}),t.forEach(n=>{l.Range.foreach(n,(i,s)=>{this.value.setValue(i,s,r)})}),e.forEach(n=>{l.Range.foreach(n,(i,s)=>{this.value.getValue(i,s)===a&&this.value.realDeleteValue(i,s)})})}diff(r){const e=[];let t=0;return r.forEach((a,n)=>{const i=l.queryObjectMatrix(this.value,u=>u===a.uid),s=a.ranges;(i.length!==s.length||i.some((u,d)=>!l.Rectangle.equals(u,s[d])))&&e.push({type:"update",ruleId:a.uid,oldRanges:s,newRanges:i}),i.length===0&&(e.push({type:"delete",rule:a,index:n-t}),t++)}),e}diffWithAddition(r,e){const t=[];let a=0;return r.forEach((n,i)=>{const s=l.queryObjectMatrix(this.value,d=>d===n.uid),u=n.ranges;(s.length!==u.length||s.some((d,c)=>!l.Rectangle.equals(d,u[c])))&&t.push({type:"update",ruleId:n.uid,oldRanges:u,newRanges:s}),s.length===0&&(t.push({type:"delete",rule:n,index:i-a}),a++)}),Array.from(e).forEach(n=>{const i=l.queryObjectMatrix(this.value,s=>s===n.uid);t.push({type:"add",rule:{...n,ranges:i}})}),t}clone(){return new Rt(new l.ObjectMatrix(this.value.clone()))}getValue(r,e){return this.value.getValue(r,e)}setValue(r,e,t){return this.value.setValue(r,e,t)}}class gr extends O.DataValidationManager{constructor(e,t,a,n){super(e,t,a);M(this,"_ruleMatrix");M(this,"_dataValidatorRegistryService");M(this,"_dataValidationCacheService");M(this,"_dataValidationFormulaService");M(this,"_dataValidationCustomFormulaService");M(this,"_cache");M(this,"_dataValidationRefRangeController");this._injector=n,this._dataValidatorRegistryService=this._injector.get(O.DataValidatorRegistryService),this._dataValidationCacheService=this._injector.get(ye),this._dataValidationFormulaService=this._injector.get(v.DataValidationFormulaService),this._dataValidationCustomFormulaService=this._injector.get(v.DataValidationCustomFormulaService),this._dataValidationRefRangeController=this._injector.get(v.DataValidationRefRangeController),this._cache=this._dataValidationCacheService.ensureCache(e,t);const i=new l.ObjectMatrix;a==null||a.forEach(s=>{const u=s.uid;s.ranges.forEach(d=>{l.Range.foreach(d,(c,h)=>{i.setValue(c,h,u)})})}),a==null||a.forEach(s=>{this._dataValidationRefRangeController.register(e,t,s)}),this._ruleMatrix=new Rt(i)}addRule(e,t){this._ruleMatrix.addRule(e),this._dataValidationCacheService.addRule(this.unitId,this.subUnitId,e),this._dataValidationFormulaService.addRule(this.unitId,this.subUnitId,e.uid,e.formula1,e.formula2),this._dataValidationCustomFormulaService.addRule(this.unitId,this.subUnitId,e),super.addRule(e,t)}updateRule(e,t){const a=this.getRuleById(e);if(!a)throw new Error(`Rule not found! id: ${e}`);return t.type===O.UpdateRuleType.RANGE?(this._ruleMatrix.updateRange(e,a.ranges,t.payload),this._dataValidationCacheService.updateRuleRanges(this.unitId,this.subUnitId,e,t.payload,a.ranges),this._dataValidationCustomFormulaService.updateRuleRanges(this.unitId,this.subUnitId,e,a.ranges,t.payload)):t.type===O.UpdateRuleType.SETTING&&(this._dataValidationCacheService.markRangeDirty(this.unitId,this.subUnitId,a.ranges),this._dataValidationFormulaService.updateRuleFormulaText(this.unitId,this.subUnitId,e,t.payload.formula1,t.payload.formula2),this._dataValidationCustomFormulaService.updateRuleFormula(this.unitId,this.subUnitId,e,a.ranges,t.payload.formula1)),super.updateRule(e,t)}removeRule(e){const t=this.getRuleById(e);t&&(this._ruleMatrix.removeRule(t),this._dataValidationCacheService.removeRule(this.unitId,this.subUnitId,t)),super.removeRule(e)}getRuleIdByLocation(e,t){return this._ruleMatrix.getValue(e,t)}getRuleByLocation(e,t){const a=this.getRuleIdByLocation(e,t);if(a)return this.getRuleById(a)}validator(e,t,a,n){const{col:i,row:s,unitId:u,subUnitId:d}=a,c=t.uid,h=this._dataValidatorRegistryService.getValidatorItem(t.type);if(h){const f=this._cache.getValue(s,i);return!f||f.value!==e?(this._cache.setValue(s,i,{value:e,status:l.DataValidationStatus.VALIDATING,ruleId:c}),h.validator({value:e,unitId:u,subUnitId:d,row:s,column:i},t).then(m=>{const g=m?l.DataValidationStatus.VALID:l.DataValidationStatus.INVALID;this._cache.setValue(s,i,{value:e,status:g,ruleId:c}),n(g)}),l.DataValidationStatus.VALIDATING):f.status}else return l.DataValidationStatus.VALID}getRuleErrorMsg(e){const t=this.getRuleById(e);if(!t)return"";const a=this._dataValidatorRegistryService.getValidatorItem(t.type);return t.error?t.error:a?a.getRuleFinalError(t):""}getRuleObjectMatrix(){return this._ruleMatrix}}var Sr=Object.defineProperty,_r=Object.getOwnPropertyDescriptor,Rr=(o,r,e,t)=>{for(var a=t>1?void 0:t?_r(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Sr(r,e,a),a},et=(o,r)=>(e,t)=>r(e,t,o);let tt=class extends l.Disposable{constructor(o,r,e,t){super(),this._resourceManagerService=o,this._univerInstanceService=r,this._dataValidationModel=e,this._injector=t,this._initDataValidationDataSource()}_createSheetDataValidationManager(o,r){return new gr(o,r,[],this._injector)}_initDataValidationDataSource(){this._dataValidationModel.setManagerCreator(this._createSheetDataValidationManager.bind(this))}};tt=Rr([l.OnLifecycle(l.LifecycleStages.Starting,tt),et(0,l.IResourceManagerService),et(1,l.IUniverInstanceService),et(2,y.Inject(O.DataValidationModel)),et(3,y.Inject(y.Injector))],tt);var Mr=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Vr=(o,r,e,t)=>{for(var a=t>1?void 0:t?Dr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Mr(r,e,a),a},Be=(o,r)=>(e,t)=>r(e,t,o);v.DataValidationRejectInputController=class extends l.Disposable{constructor(r,e,t,a,n){super(),this._editorBridgeService=r,this._dataValidationModel=e,this._dataValidatorRegistryService=t,this._dialogService=a,this._localeService=n,this._initEditorBridgeInterceptor()}_initEditorBridgeInterceptor(){this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,{handler:async(r,e,t)=>{const a=await r,{worksheet:n,row:i,col:s,unitId:u,subUnitId:d}=e,c=this._dataValidationModel.ensureManager(u,d),h=c.getRuleIdByLocation(i,s),f=h?c.getRuleById(h):void 0;if(!f||f.errorStyle!==l.DataValidationErrorStyle.STOP)return t(Promise.resolve(a));const m=await this._dataValidatorRegistryService.getValidatorItem(f.type);if(!m)return t(Promise.resolve(a));const g=e.worksheet.getCellRaw(e.row,e.col);if(await m.validator({value:ae(g),row:i,column:s,unitId:u,subUnitId:d},f))return t(Promise.resolve(a));const V=n.getCellRaw(i,s);return this._dialogService.open({width:368,title:{title:this._localeService.t("dataValidation.alert.title")},id:"reject-input-dialog",children:{title:m.generateRuleErrorMessage(f)},footer:{title:B.createElement(j.Button,{type:"primary",onClick:()=>this._dialogService.close("reject-input-dialog")},this._localeService.t("dataValidation.alert.ok"))},onClose:()=>{this._dialogService.close("reject-input-dialog")}}),t(Promise.resolve(V))}})}},v.DataValidationRejectInputController=Vr([l.OnLifecycle(l.LifecycleStages.Ready,v.DataValidationRejectInputController),Be(0,X.IEditorBridgeService),Be(1,y.Inject(O.DataValidationModel)),Be(2,y.Inject(O.DataValidatorRegistryService)),Be(3,z.IDialogService),Be(4,y.Inject(l.LocaleService))],v.DataValidationRejectInputController);var Ir=Object.defineProperty,Cr=Object.getOwnPropertyDescriptor,Or=(o,r,e,t)=>{for(var a=t>1?void 0:t?Cr(r,e):r,n=o.length-1,i;n>=0;n--)(i=o[n])&&(a=(t?i(r,e,a):i(a))||a);return t&&a&&Ir(r,e,a),a},Mt=(o,r)=>(e,t)=>r(e,t,o);v.UniverSheetsDataValidationPlugin=class extends l.Plugin{constructor(r,e,t,a){super(Ye),this._injector=e,this._commandService=t,this._localeService=a}onStarting(r){[[_e],[v.SheetDataValidationService],[ye],[v.DataValidationFormulaService],[v.DataValidationCustomFormulaService],[v.RegisterOtherFormulaService],[Se],[tt],[v.DataValidationController],[v.DataValidationRenderController],[v.DataValidationAlertController],[v.DataValidationRefRangeController],[v.DataValidationAutoFillController],[v.DataValidationCopyPasteController],[v.DataValidationRejectInputController]].forEach(e=>{r.add(e)}),[He,it,rt,We,Et,yt,Te,Sa].forEach(e=>{this._commandService.registerCommand(e)}),this._localeService.load({zhCN:aa,enUS:ta})}},v.UniverSheetsDataValidationPlugin=Or([Mt(1,y.Inject(y.Injector)),Mt(2,l.ICommandService),Mt(3,y.Inject(l.LocaleService))],v.UniverSheetsDataValidationPlugin),Object.defineProperty(v,"ICommandService",{enumerable:!0,get:()=>l.ICommandService}),Object.defineProperty(v,"LocaleService",{enumerable:!0,get:()=>l.LocaleService}),Object.defineProperty(v,"Plugin",{enumerable:!0,get:()=>l.Plugin}),v.AddSheetDataValidationAndOpenCommand=it,v.AddSheetDataValidationCommand=He,v.DATA_VALIDATION_PLUGIN_NAME=Ye,v.DataValidationCacheService=ye,v.HideDataValidationDropdown=Et,v.ShowDataValidationDropdown=We,v.UpdateSheetDataValidationRangeCommand=rt,v.enUS=ta,v.zhCN=aa,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
|