@univerjs/data-validation 0.1.16 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var H=Object.defineProperty;var G=(o,e,a)=>e in o?H(o,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[e]=a;var c=(o,e,a)=>G(o,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@univerjs/core"),_=require("@wendellhu/redi"),O=require("rxjs"),M=require("@univerjs/sheets");var L=(o=>(o.SHEET="sheet",o))(L||{});class I{constructor(){c(this,"_validatorByScopes",new Map);c(this,"_validatorMap",new Map);c(this,"_validatorsChange$",new O.BehaviorSubject(void 0));c(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(e,a){this._validatorByScopes.has(a)||this._validatorByScopes.set(a,[]);const t=this._validatorByScopes.get(a);if(t.findIndex(r=>r.id===e.id)>-1)throw new Error(`Validator item with the same id ${e.id} has already been added!`);t.push(e)}_removeValidatorFromScope(e,a){const t=this._validatorByScopes.get(a);if(!t)return;const r=t.findIndex(n=>n.id===e.id);r>-1&&t.splice(r,1)}register(e){return this._validatorMap.set(e.id,e),Array.isArray(e.scopes)?e.scopes.forEach(a=>{this._addValidatorToScope(e,a)}):this._addValidatorToScope(e,e.scopes),this._validatorsChange$.next(),i.toDisposable(()=>{this._validatorMap.delete(e.id),Array.isArray(e.scopes)?e.scopes.forEach(a=>{this._removeValidatorFromScope(e,a)}):this._removeValidatorFromScope(e,e.scopes),this._validatorsChange$.next()})}getValidatorItem(e){return this._validatorMap.get(e)}getValidatorsByScope(e){return this._validatorByScopes.get(e)}}var m=(o=>(o[o.SETTING=0]="SETTING",o[o.RANGE=1]="RANGE",o[o.OPTIONS=2]="OPTIONS",o))(m||{});function R(o){return{type:o.type,operator:o.operator,formula1:o.formula1,formula2:o.formula2,allowBlank:o.allowBlank}}function A(o){return{error:o.error,errorStyle:o.errorStyle,errorTitle:o.errorTitle,imeMode:o.imeMode,prompt:o.prompt,promptTitle:o.promptTitle,showDropDown:o.showDropDown,showErrorMessage:o.showErrorMessage,showInputMessage:o.showInputMessage,renderMode:o.renderMode}}function Q(o){const a=o.get(M.SelectionManagerService).getSelectionRanges();return{uid:i.Tools.generateRandomId(6),type:i.DataValidationType.DECIMAL,operator:i.DataValidationOperator.EQUAL,formula1:"100",ranges:a!=null?a:[{startColumn:0,endColumn:0,startRow:0,endRow:0}]}}class w extends i.Disposable{constructor(a,t,r){super();c(this,"_dataValidations");c(this,"_dataValidationMap",new Map);c(this,"_dataValidations$",new O.Subject);c(this,"unitId");c(this,"subUnitId");c(this,"dataValidations$",this._dataValidations$.asObservable());this.unitId=a,this.subUnitId=t,r&&(this._insertRules(r),this._notice(),this.disposeWithMe({dispose:()=>{this._dataValidations$.complete()}}))}_notice(){this._dataValidations$.next(this._dataValidations)}_insertRules(a){this._dataValidations=a,a.forEach(t=>{this._dataValidationMap.set(t.uid,t)})}getRuleById(a){return this._dataValidationMap.get(a)}getRuleIndex(a){return this._dataValidations.findIndex(t=>t.uid===a)}addRule(a,t){const n=(Array.isArray(a)?a:[a]).filter(d=>!this._dataValidationMap.has(d.uid));typeof t=="number"&&t<this._dataValidations.length?this._dataValidations.splice(t,0,...n):this._dataValidations.push(...n),n.forEach(d=>{this._dataValidationMap.set(d.uid,d)}),this._notice()}removeRule(a){const t=this._dataValidations.findIndex(r=>r.uid===a);t>-1&&(this._dataValidations.splice(t,1),this._dataValidationMap.delete(a),this._notice())}updateRule(a,t){const r=this._dataValidationMap.get(a),n=this._dataValidations.findIndex(s=>a===s.uid);if(!r)throw new Error(`Data validation rule is not found, ruleId: ${a}.`);const d={...r};switch(t.type){case m.RANGE:{d.ranges=t.payload;break}case m.SETTING:{Object.assign(d,R(t.payload));break}case m.OPTIONS:{Object.assign(d,A(t.payload));break}}return this._dataValidations[n]=d,this._dataValidationMap.set(a,d),this._notice(),d}getDataValidations(){return this._dataValidations}toJSON(){return this._dataValidations}validator(a,t,r,n){return i.DataValidationStatus.VALID}}var W=Object.defineProperty,F=Object.getOwnPropertyDescriptor,J=(o,e,a,t)=>{for(var r=t>1?void 0:t?F(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&W(e,a,r),r},z=(o,e)=>(a,t)=>e(a,t,o);exports.DataValidationModel=class extends i.Disposable{constructor(a){super();c(this,"_model",new Map);c(this,"_managerCreator",(a,t)=>new w(a,t,[]));c(this,"_ruleChange$",new O.Subject);c(this,"_validStatusChange$",new O.Subject);c(this,"ruleChange$",this._ruleChange$.asObservable());c(this,"ruleChangeDebounce$",this.ruleChange$.pipe(O.debounceTime(20)));c(this,"validStatusChange$",this._validStatusChange$.asObservable().pipe(O.debounceTime(20)));this._logService=a,this.disposeWithMe({dispose:()=>{this._ruleChange$.complete(),this._validStatusChange$.complete()}})}setManagerCreator(a){this._managerCreator=a}ensureManager(a,t){this._model.has(a)||this._model.set(a,new Map);const r=this._model.get(a);if(r.has(t))return r.get(t);const n=this._managerCreator(a,t);return r.set(t,n),n}_addRuleSideEffect(a,t,r){this.ensureManager(a,t).getRuleById(r.uid)||this._ruleChange$.next({rule:r,type:"add",unitId:a,subUnitId:t})}addRule(a,t,r,n){try{const d=this.ensureManager(a,t);(Array.isArray(r)?r:[r]).forEach(u=>{this._addRuleSideEffect(a,t,u)}),d.addRule(r,n)}catch(d){this._logService.error(d)}}updateRule(a,t,r,n){try{const s=this.ensureManager(a,t).updateRule(r,n);this._ruleChange$.next({rule:s,type:"update",unitId:a,subUnitId:t})}catch(d){this._logService.error(d)}}removeRule(a,t,r){try{const n=this.ensureManager(a,t),d=n.getRuleById(r);d&&(n.removeRule(r),this._ruleChange$.next({rule:d,type:"remove",unitId:a,subUnitId:t}))}catch(n){this._logService.error(n)}}getRuleById(a,t,r){return this.ensureManager(a,t).getRuleById(r)}getRuleIndex(a,t,r){return this.ensureManager(a,t).getRuleIndex(r)}getRules(a,t){return this.ensureManager(a,t).getDataValidations()}validator(a,t,r){const{unitId:n,subUnitId:d}=r;return this.ensureManager(n,d).validator(a,t,r,(u,l)=>{l&&this._validStatusChange$.next({unitId:n,subUnitId:d,ruleId:t.uid,status:u})})}getUnitRules(a){const t=this._model.get(a);if(!t)return[];const r=[];return t.forEach(n=>{r.push([n.subUnitId,n.getDataValidations()])}),r}deleteUnitRules(a){this._model.delete(a)}getSubUnitIds(a){var t,r;return Array.from((r=(t=this._model.get(a))==null?void 0:t.keys())!=null?r:[])}};exports.DataValidationModel=J([z(0,i.ILogService)],exports.DataValidationModel);const V={type:i.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t,rule:r,index:n}=e;return o.get(exports.DataValidationModel).addRule(a,t,r,n),!0}},E={type:i.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:r}=e,n=o.get(exports.DataValidationModel);return Array.isArray(r)?r.forEach(d=>{n.removeRule(a,t,d)}):n.removeRule(a,t,r),!0}},g={type:i.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:r,payload:n}=e;return o.get(exports.DataValidationModel).updateRule(a,t,r,n),!0}},b={type:i.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(o,e){if(!e)return!1;const{rule:a,unitId:t,subUnitId:r}=e,n=o.get(i.ICommandService),d=o.get(i.IUndoRedoService),s={...e,rule:{...e.rule,ranges:[e.rule.range]}},u=[{id:V.id,params:s}],l=[{id:E.id,params:{unitId:t,subUnitId:r,ruleId:a.uid}}];return d.pushUndoRedo({unitID:t,redoMutations:u,undoMutations:l}),await n.executeCommand(V.id,s),!0}},K=(o,e)=>{const a=o.get(exports.DataValidationModel),{unitId:t,subUnitId:r,ruleId:n}=e;if(Array.isArray(n)){const s=n.map(u=>a.getRuleById(t,r,u)).filter(Boolean);return[{id:V.id,params:{unitId:t,subUnitId:r,rule:s}}]}return[{id:V.id,params:{unitId:t,subUnitId:r,rule:{...a.getRuleById(t,r,n)},index:a.getRuleIndex(t,r,n)}}]},P={type:i.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:r}=e,n=o.get(i.ICommandService),d=o.get(i.IUndoRedoService),s=o.get(exports.DataValidationModel),u=[{id:E.id,params:e}],l=[{id:V.id,params:{unitId:a,subUnitId:t,rule:{...s.getRuleById(a,t,r)},index:s.getRuleIndex(a,t,r)}}];return d.pushUndoRedo({undoMutations:l,redoMutations:u,unitID:e.unitId}),n.executeCommand(E.id,e),!0}},B={type:i.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(o,e){if(!e)return!1;const a=o.get(i.ICommandService),t=o.get(i.IUndoRedoService),r=o.get(exports.DataValidationModel),{unitId:n,subUnitId:d,ruleId:s,options:u}=e,l=r.getRuleById(n,d,s);if(!l)return!1;const p={unitId:n,subUnitId:d,ruleId:s,payload:{type:m.OPTIONS,payload:u}},h=[{id:g.id,params:p}],v={unitId:n,subUnitId:d,ruleId:s,payload:{type:m.OPTIONS,payload:A(l)}},T=[{id:g.id,params:v}];return t.pushUndoRedo({unitID:n,redoMutations:h,undoMutations:T}),a.executeCommand(g.id,p),!0}},$={type:i.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(o,e){if(!e)return!1;const a=o.get(i.ICommandService),t=o.get(i.IUndoRedoService),r=o.get(exports.DataValidationModel),n=o.get(I),{unitId:d,subUnitId:s,ruleId:u,setting:l}=e,p=n.getValidatorItem(l.type);if(!p)return!1;const h=r.getRuleById(d,s,u);if(!h||!p.validatorFormula({...h,...l},d,s).success)return!1;const v={unitId:d,subUnitId:s,ruleId:u,payload:{type:m.SETTING,payload:l}},T=[{id:g.id,params:v}],q={unitId:d,subUnitId:s,ruleId:u,payload:{type:m.SETTING,payload:R(h)}},j=[{id:g.id,params:q}];return t.pushUndoRedo({unitID:d,redoMutations:T,undoMutations:j}),a.executeCommand(g.id,v),!0}},x={type:i.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t}=e,r=o.get(i.ICommandService),n=o.get(exports.DataValidationModel),d=o.get(i.IUndoRedoService),s=[...n.getRules(a,t)],u={unitId:a,subUnitId:t,ruleId:s.map(h=>h.uid)},l=[{id:E.id,params:u}],p=[{id:V.id,params:{unitId:a,subUnitId:t,rule:s}}];return d.pushUndoRedo({redoMutations:l,undoMutations:p,unitID:a}),r.executeCommand(E.id,u),!0}};var X=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,Z=(o,e,a,t)=>{for(var r=t>1?void 0:t?Y(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&X(e,a,r),r},f=(o,e)=>(a,t)=>e(a,t,o);const k="SHEET_DATA_VALIDATION_PLUGIN";exports.DataValidationResourceController=class extends i.Disposable{constructor(e,a,t){super(),this._resourceManagerService=e,this._univerInstanceService=a,this._dataValidationModel=t,this._initSnapshot()}_initSnapshot(){const e=t=>{const r=this._dataValidationModel.getUnitRules(t),n={};return r?(r.forEach(([d,s])=>{n[d]=s}),JSON.stringify(n)):""},a=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:k,businesses:[i.UniverInstanceType.UNIVER_SHEET],toJson:t=>e(t),parseJson:t=>a(t),onUnLoad:t=>{this._dataValidationModel.deleteUnitRules(t)},onLoad:(t,r)=>{Object.keys(r).forEach(n=>{r[n].forEach(s=>{this._dataValidationModel.addRule(t,n,s)})})}}))}};exports.DataValidationResourceController=Z([i.OnLifecycle(i.LifecycleStages.Ready,exports.DataValidationResourceController),f(0,i.IResourceManagerService),f(1,i.IUniverInstanceService),f(2,_.Inject(exports.DataValidationModel))],exports.DataValidationResourceController);var aa=Object.defineProperty,ta=Object.getOwnPropertyDescriptor,ea=(o,e,a,t)=>{for(var r=t>1?void 0:t?ta(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&aa(e,a,r),r},S=(o,e)=>(a,t)=>e(a,t,o);exports.DataValidationSheetController=class extends i.Disposable{constructor(e,a,t){super(),this._sheetInterceptorService=e,this._univerInstanceService=a,this._dataValidationModel=t,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{var a;if(e.id===M.RemoveSheetCommand.id){const t=e.params,r=t.unitId||this._univerInstanceService.getCurrentUnitForType(i.UniverInstanceType.UNIVER_SHEET).getUnitId(),n=this._univerInstanceService.getUniverSheetInstance(r);if(!n)return{redos:[],undos:[]};const d=t.subUnitId||((a=n.getActiveSheet())==null?void 0:a.getSheetId());if(!d)return{redos:[],undos:[]};const s=this._dataValidationModel.ensureManager(r,d);if(!s)return{redos:[],undos:[]};const u=s.getDataValidations(),l=u.map(v=>v.uid),p={unitId:r,subUnitId:d,ruleId:l},h={unitId:r,subUnitId:d,rule:u};return{redos:[{id:E.id,params:p}],undos:[{id:V.id,params:h}]}}return{redos:[],undos:[]}}}))}};exports.DataValidationSheetController=ea([i.OnLifecycle(i.LifecycleStages.Ready,exports.DataValidationSheetController),S(0,_.Inject(M.SheetInterceptorService)),S(1,_.Inject(i.IUniverInstanceService)),S(2,_.Inject(exports.DataValidationModel))],exports.DataValidationSheetController);var ra=Object.defineProperty,oa=Object.getOwnPropertyDescriptor,ia=(o,e,a,t)=>{for(var r=t>1?void 0:t?oa(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&ra(e,a,r),r},y=(o,e)=>(a,t)=>e(a,t,o);const na="UNIVER_DATA_VALIDATION_PLUGIN";var D;exports.UniverDataValidationPlugin=(D=class extends i.Plugin{constructor(e,a,t){super(),this._injector=a,this._commandService=t}onStarting(e){[[exports.DataValidationModel],[I],[exports.DataValidationResourceController],[exports.DataValidationSheetController]].forEach(a=>{e.add(a)}),[b,x,B,$,P,V,g,E].forEach(a=>{this._commandService.registerCommand(a)})}},c(D,"pluginName",na),c(D,"type",i.UniverInstanceType.UNIVER_SHEET),D);exports.UniverDataValidationPlugin=ia([y(1,_.Inject(_.Injector)),y(2,i.ICommandService)],exports.UniverDataValidationPlugin);i.DataValidationOperator.BETWEEN+"",i.DataValidationOperator.EQUAL+"",i.DataValidationOperator.GREATER_THAN+"",i.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",i.DataValidationOperator.LESS_THAN+"",i.DataValidationOperator.LESS_THAN_OR_EQUAL+"",i.DataValidationOperator.NOT_BETWEEN+"",i.DataValidationOperator.NOT_EQUAL+"";const da={[i.DataValidationOperator.BETWEEN]:"dataValidation.ruleName.between",[i.DataValidationOperator.EQUAL]:"dataValidation.ruleName.equal",[i.DataValidationOperator.GREATER_THAN]:"dataValidation.ruleName.greaterThan",[i.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.ruleName.greaterThanOrEqual",[i.DataValidationOperator.LESS_THAN]:"dataValidation.ruleName.lessThan",[i.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.ruleName.lessThanOrEqual",[i.DataValidationOperator.NOT_BETWEEN]:"dataValidation.ruleName.notBetween",[i.DataValidationOperator.NOT_EQUAL]:"dataValidation.ruleName.notEqual"},sa={[i.DataValidationOperator.BETWEEN]:"dataValidation.errorMsg.between",[i.DataValidationOperator.EQUAL]:"dataValidation.errorMsg.equal",[i.DataValidationOperator.GREATER_THAN]:"dataValidation.errorMsg.greaterThan",[i.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.errorMsg.greaterThanOrEqual",[i.DataValidationOperator.LESS_THAN]:"dataValidation.errorMsg.lessThan",[i.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.errorMsg.lessThanOrEqual",[i.DataValidationOperator.NOT_BETWEEN]:"dataValidation.errorMsg.notBetween",[i.DataValidationOperator.NOT_EQUAL]:"dataValidation.errorMsg.notEqual"},la={[i.DataValidationOperator.BETWEEN]:"dataValidation.textLength.errorMsg.between",[i.DataValidationOperator.EQUAL]:"dataValidation.textLength.errorMsg.equal",[i.DataValidationOperator.GREATER_THAN]:"dataValidation.textLength.errorMsg.greaterThan",[i.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.greaterThanOrEqual",[i.DataValidationOperator.LESS_THAN]:"dataValidation.textLength.errorMsg.lessThan",[i.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.lessThanOrEqual",[i.DataValidationOperator.NOT_BETWEEN]:"dataValidation.textLength.errorMsg.notBetween",[i.DataValidationOperator.NOT_EQUAL]:"dataValidation.textLength.errorMsg.notEqual"};var ua=Object.defineProperty,ca=Object.getOwnPropertyDescriptor,pa=(o,e,a,t)=>{for(var r=t>1?void 0:t?ca(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&ua(e,a,r),r},N=(o,e)=>(a,t)=>e(a,t,o);const C="{FORMULA1}",U="{FORMULA2}",ha={[i.DataValidationOperator.BETWEEN]:"dataValidation.operators.between",[i.DataValidationOperator.EQUAL]:"dataValidation.operators.equal",[i.DataValidationOperator.GREATER_THAN]:"dataValidation.operators.greaterThan",[i.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.operators.greaterThanOrEqual",[i.DataValidationOperator.LESS_THAN]:"dataValidation.operators.lessThan",[i.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.operators.lessThanOrEqual",[i.DataValidationOperator.NOT_BETWEEN]:"dataValidation.operators.notBetween",[i.DataValidationOperator.NOT_EQUAL]:"dataValidation.operators.notEqual"};exports.BaseDataValidator=class{constructor(e,a){c(this,"canvasRender",null);c(this,"dropdown");c(this,"optionsInput");this.localeService=e,this.injector=a}get operatorNames(){return this.operators.map(e=>this.localeService.t(ha[e]))}get titleStr(){return this.localeService.t(this.title)}skipDefaultFontRender(e,a,t){return!1}generateRuleName(e){var t,r;if(!e.operator)return this.titleStr;const a=this.localeService.t(da[e.operator]).replace(C,(t=e.formula1)!=null?t:"").replace(U,(r=e.formula2)!=null?r:"");return`${this.titleStr} ${a}`}generateRuleErrorMessage(e){var t,r;return e.operator?`${this.localeService.t(sa[e.operator]).replace(C,(t=e.formula1)!=null?t:"").replace(U,(r=e.formula2)!=null?r:"")}`:this.titleStr}getRuleFinalError(e){return e.showInputMessage&&e.error?e.error:this.generateRuleErrorMessage(e)}isEmptyCellValue(e){return e===""||e===void 0||e===null}async isValidType(e,a,t){return!0}transform(e,a,t){return e}async validatorIsEqual(e,a,t){return!0}async validatorIsNotEqual(e,a,t){return!0}async validatorIsBetween(e,a,t){return!0}async validatorIsNotBetween(e,a,t){return!0}async validatorIsGreaterThan(e,a,t){return!0}async validatorIsGreaterThanOrEqual(e,a,t){return!0}async validatorIsLessThan(e,a,t){return!0}async validatorIsLessThanOrEqual(e,a,t){return!0}async validator(e,a){const{value:t,unitId:r,subUnitId:n}=e,d=this.isEmptyCellValue(t),{allowBlank:s=!0,operator:u}=a;if(d)return s;const l=await this.parseFormula(a,r,n);if(!await this.isValidType(e,l,a))return!1;if(!i.Tools.isDefine(u))return!0;const p=this.transform(e,l,a);switch(u){case i.DataValidationOperator.BETWEEN:return this.validatorIsBetween(p,l,a);case i.DataValidationOperator.EQUAL:return this.validatorIsEqual(p,l,a);case i.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(p,l,a);case i.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(p,l,a);case i.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(p,l,a);case i.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(p,l,a);case i.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(p,l,a);case i.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(p,l,a);default:throw new Error("Unknown operator.")}}};exports.BaseDataValidator=pa([N(0,_.Inject(i.LocaleService)),N(1,_.Inject(_.Injector))],exports.BaseDataValidator);const _a=[i.DataValidationOperator.BETWEEN,i.DataValidationOperator.NOT_BETWEEN];exports.AddDataValidationCommand=b;exports.AddDataValidationMutation=V;exports.DataValidationManager=w;exports.DataValidatorRegistryScope=L;exports.DataValidatorRegistryService=I;exports.RemoveAllDataValidationCommand=x;exports.RemoveDataValidationCommand=P;exports.RemoveDataValidationMutation=E;exports.TWO_FORMULA_OPERATOR_COUNT=_a;exports.TextLengthErrorTitleMap=la;exports.UpdateDataValidationMutation=g;exports.UpdateDataValidationOptionsCommand=B;exports.UpdateDataValidationSettingCommand=$;exports.UpdateRuleType=m;exports.createDefaultNewRule=Q;exports.getRuleOptions=A;exports.getRuleSetting=R;exports.removeDataValidationUndoFactory=K;
1
+ "use strict";var G=Object.defineProperty;var Q=(o,e,a)=>e in o?G(o,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[e]=a;var c=(o,e,a)=>Q(o,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@univerjs/core"),m=require("@wendellhu/redi"),D=require("rxjs"),I=require("@univerjs/sheets");var w=(o=>(o.SHEET="sheet",o))(w||{});class R{constructor(){c(this,"_validatorByScopes",new Map);c(this,"_validatorMap",new Map);c(this,"_validatorsChange$",new D.BehaviorSubject(void 0));c(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(e,a){this._validatorByScopes.has(a)||this._validatorByScopes.set(a,[]);const t=this._validatorByScopes.get(a);if(t.findIndex(r=>r.id===e.id)>-1)throw new Error(`Validator item with the same id ${e.id} has already been added!`);t.push(e)}_removeValidatorFromScope(e,a){const t=this._validatorByScopes.get(a);if(!t)return;const r=t.findIndex(n=>n.id===e.id);r>-1&&t.splice(r,1)}register(e){return this._validatorMap.set(e.id,e),Array.isArray(e.scopes)?e.scopes.forEach(a=>{this._addValidatorToScope(e,a)}):this._addValidatorToScope(e,e.scopes),this._validatorsChange$.next(),i.toDisposable(()=>{this._validatorMap.delete(e.id),Array.isArray(e.scopes)?e.scopes.forEach(a=>{this._removeValidatorFromScope(e,a)}):this._removeValidatorFromScope(e,e.scopes),this._validatorsChange$.next()})}getValidatorItem(e){return this._validatorMap.get(e)}getValidatorsByScope(e){return this._validatorByScopes.get(e)}}var g=(o=>(o[o.SETTING=0]="SETTING",o[o.RANGE=1]="RANGE",o[o.OPTIONS=2]="OPTIONS",o))(g||{});function A(o){return{type:o.type,operator:o.operator,formula1:o.formula1,formula2:o.formula2,allowBlank:o.allowBlank}}function y(o){return{error:o.error,errorStyle:o.errorStyle,errorTitle:o.errorTitle,imeMode:o.imeMode,prompt:o.prompt,promptTitle:o.promptTitle,showDropDown:o.showDropDown,showErrorMessage:o.showErrorMessage,showInputMessage:o.showInputMessage,renderMode:o.renderMode}}function W(o){const a=o.get(I.SelectionManagerService).getSelectionRanges();return{uid:i.Tools.generateRandomId(6),type:i.DataValidationType.DECIMAL,operator:i.DataValidationOperator.EQUAL,formula1:"100",ranges:a!=null?a:[{startColumn:0,endColumn:0,startRow:0,endRow:0}]}}class b extends i.Disposable{constructor(a,t,r){super();c(this,"_dataValidations");c(this,"_dataValidationMap",new Map);c(this,"_dataValidations$",new D.Subject);c(this,"unitId");c(this,"subUnitId");c(this,"dataValidations$",this._dataValidations$.asObservable());this.unitId=a,this.subUnitId=t,r&&(this._insertRules(r),this._notice(),this.disposeWithMe({dispose:()=>{this._dataValidations$.complete()}}))}_notice(){this._dataValidations$.next(this._dataValidations)}_insertRules(a){this._dataValidations=a,a.forEach(t=>{this._dataValidationMap.set(t.uid,t)})}getRuleById(a){return this._dataValidationMap.get(a)}getRuleIndex(a){return this._dataValidations.findIndex(t=>t.uid===a)}addRule(a,t){const n=(Array.isArray(a)?a:[a]).filter(d=>!this._dataValidationMap.has(d.uid));typeof t=="number"&&t<this._dataValidations.length?this._dataValidations.splice(t,0,...n):this._dataValidations.push(...n),n.forEach(d=>{this._dataValidationMap.set(d.uid,d)}),this._notice()}removeRule(a){const t=this._dataValidations.findIndex(r=>r.uid===a);t>-1&&(this._dataValidations.splice(t,1),this._dataValidationMap.delete(a),this._notice())}updateRule(a,t){const r=this._dataValidationMap.get(a),n=this._dataValidations.findIndex(s=>a===s.uid);if(!r)throw new Error(`Data validation rule is not found, ruleId: ${a}.`);const d={...r};switch(t.type){case g.RANGE:{d.ranges=t.payload;break}case g.SETTING:{Object.assign(d,A(t.payload));break}case g.OPTIONS:{Object.assign(d,y(t.payload));break}}return this._dataValidations[n]=d,this._dataValidationMap.set(a,d),this._notice(),d}getDataValidations(){return this._dataValidations}toJSON(){return this._dataValidations}validator(a,t,r,n){return i.DataValidationStatus.VALID}}var F=Object.defineProperty,J=Object.getOwnPropertyDescriptor,z=(o,e,a,t)=>{for(var r=t>1?void 0:t?J(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&F(e,a,r),r},K=(o,e)=>(a,t)=>e(a,t,o);exports.DataValidationModel=class extends i.Disposable{constructor(a){super();c(this,"_model",new Map);c(this,"_managerCreator",(a,t)=>new b(a,t,[]));c(this,"_ruleChange$",new D.Subject);c(this,"_validStatusChange$",new D.Subject);c(this,"ruleChange$",this._ruleChange$.asObservable());c(this,"ruleChangeDebounce$",this.ruleChange$.pipe(D.debounceTime(20)));c(this,"validStatusChange$",this._validStatusChange$.asObservable().pipe(D.debounceTime(20)));this._logService=a,this.disposeWithMe({dispose:()=>{this._ruleChange$.complete(),this._validStatusChange$.complete()}})}setManagerCreator(a){this._managerCreator=a}ensureManager(a,t){this._model.has(a)||this._model.set(a,new Map);const r=this._model.get(a);if(r.has(t))return r.get(t);const n=this._managerCreator(a,t);return r.set(t,n),n}_addRuleSideEffect(a,t,r){this.ensureManager(a,t).getRuleById(r.uid)||this._ruleChange$.next({rule:r,type:"add",unitId:a,subUnitId:t})}addRule(a,t,r,n){try{const d=this.ensureManager(a,t);(Array.isArray(r)?r:[r]).forEach(l=>{this._addRuleSideEffect(a,t,l)}),d.addRule(r,n)}catch(d){this._logService.error(d)}}updateRule(a,t,r,n){try{const s=this.ensureManager(a,t).updateRule(r,n);this._ruleChange$.next({rule:s,type:"update",unitId:a,subUnitId:t})}catch(d){this._logService.error(d)}}removeRule(a,t,r){try{const n=this.ensureManager(a,t),d=n.getRuleById(r);d&&(n.removeRule(r),this._ruleChange$.next({rule:d,type:"remove",unitId:a,subUnitId:t}))}catch(n){this._logService.error(n)}}getRuleById(a,t,r){return this.ensureManager(a,t).getRuleById(r)}getRuleIndex(a,t,r){return this.ensureManager(a,t).getRuleIndex(r)}getRules(a,t){return this.ensureManager(a,t).getDataValidations()}validator(a,t,r){const{unitId:n,subUnitId:d}=r;return this.ensureManager(n,d).validator(a,t,r,(l,u)=>{u&&this._validStatusChange$.next({unitId:n,subUnitId:d,ruleId:t.uid,status:l})})}getUnitRules(a){const t=this._model.get(a);if(!t)return[];const r=[];return t.forEach(n=>{r.push([n.subUnitId,n.getDataValidations()])}),r}deleteUnitRules(a){this._model.delete(a)}getSubUnitIds(a){var t,r;return Array.from((r=(t=this._model.get(a))==null?void 0:t.keys())!=null?r:[])}};exports.DataValidationModel=z([K(0,i.ILogService)],exports.DataValidationModel);const V={type:i.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t,rule:r,index:n}=e;return o.get(exports.DataValidationModel).addRule(a,t,r,n),!0}},v={type:i.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:r}=e,n=o.get(exports.DataValidationModel);return Array.isArray(r)?r.forEach(d=>{n.removeRule(a,t,d)}):n.removeRule(a,t,r),!0}},_={type:i.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:r,payload:n}=e;return o.get(exports.DataValidationModel).updateRule(a,t,r,n),!0}},P={type:i.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(o,e){if(o.get(i.ILogService).warn("[Deprecated] AddDataValidationCommand is deprecated, please use AddSheetDataValidationCommand in @univerjs/sheets-data-validation instead!"),!e)return!1;const{rule:t,unitId:r,subUnitId:n}=e,d=o.get(i.ICommandService),s=o.get(i.IUndoRedoService),l={...e,rule:{...e.rule,ranges:[e.rule.range]}},u=[{id:V.id,params:l}],p=[{id:v.id,params:{unitId:r,subUnitId:n,ruleId:t.uid}}];return s.pushUndoRedo({unitID:r,redoMutations:u,undoMutations:p}),await d.executeCommand(V.id,l),!0}},X=(o,e)=>{const a=o.get(exports.DataValidationModel),{unitId:t,subUnitId:r,ruleId:n}=e;if(Array.isArray(n)){const s=n.map(l=>a.getRuleById(t,r,l)).filter(Boolean);return[{id:V.id,params:{unitId:t,subUnitId:r,rule:s}}]}return[{id:V.id,params:{unitId:t,subUnitId:r,rule:{...a.getRuleById(t,r,n)},index:a.getRuleIndex(t,r,n)}}]},B={type:i.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:r}=e,n=o.get(i.ICommandService),d=o.get(i.IUndoRedoService),s=o.get(exports.DataValidationModel),l=[{id:v.id,params:e}],u=[{id:V.id,params:{unitId:a,subUnitId:t,rule:{...s.getRuleById(a,t,r)},index:s.getRuleIndex(a,t,r)}}];return d.pushUndoRedo({undoMutations:u,redoMutations:l,unitID:e.unitId}),n.executeCommand(v.id,e),!0}},$={type:i.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(o,e){if(o.get(i.ILogService).warn("[Deprecated] UpdateDataValidationOptionsCommand is deprecated, please use UpdateSheetDataValidationOptionsCommand in @univerjs/sheets-data-validation instead!"),!e)return!1;const t=o.get(i.ICommandService),r=o.get(i.IUndoRedoService),n=o.get(exports.DataValidationModel),{unitId:d,subUnitId:s,ruleId:l,options:u}=e,p=n.getRuleById(d,s,l);if(!p)return!1;const h={unitId:d,subUnitId:s,ruleId:l,payload:{type:g.OPTIONS,payload:u}},E=[{id:_.id,params:h}],S={unitId:d,subUnitId:s,ruleId:l,payload:{type:g.OPTIONS,payload:y(p)}},T=[{id:_.id,params:S}];return r.pushUndoRedo({unitID:d,redoMutations:E,undoMutations:T}),t.executeCommand(_.id,h),!0}},x={type:i.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(o,e){if(o.get(i.ILogService).warn("[Deprecated] UpdateDataValidationSettingCommand is deprecated, please use UpdateSheetDataValidationSettingCommand in @univerjs/sheets-data-validation instead!"),!e)return!1;const t=o.get(i.ICommandService),r=o.get(i.IUndoRedoService),n=o.get(exports.DataValidationModel),d=o.get(R),{unitId:s,subUnitId:l,ruleId:u,setting:p}=e,h=d.getValidatorItem(p.type);if(!h)return!1;const E=n.getRuleById(s,l,u);if(!E||!h.validatorFormula({...E,...p},s,l).success)return!1;const S={unitId:s,subUnitId:l,ruleId:u,payload:{type:g.SETTING,payload:p}},T=[{id:_.id,params:S}],q={unitId:s,subUnitId:l,ruleId:u,payload:{type:g.SETTING,payload:A(E)}},H=[{id:_.id,params:q}];return r.pushUndoRedo({unitID:s,redoMutations:T,undoMutations:H}),t.executeCommand(_.id,S),!0}},j={type:i.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(o,e){if(!e)return!1;const{unitId:a,subUnitId:t}=e,r=o.get(i.ICommandService),n=o.get(exports.DataValidationModel),d=o.get(i.IUndoRedoService),s=[...n.getRules(a,t)],l={unitId:a,subUnitId:t,ruleId:s.map(h=>h.uid)},u=[{id:v.id,params:l}],p=[{id:V.id,params:{unitId:a,subUnitId:t,rule:s}}];return d.pushUndoRedo({redoMutations:u,undoMutations:p,unitID:a}),r.executeCommand(v.id,l),!0}};var Y=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,k=(o,e,a,t)=>{for(var r=t>1?void 0:t?Z(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&Y(e,a,r),r},f=(o,e)=>(a,t)=>e(a,t,o);const aa="SHEET_DATA_VALIDATION_PLUGIN";exports.DataValidationResourceController=class extends i.Disposable{constructor(e,a,t){super(),this._resourceManagerService=e,this._univerInstanceService=a,this._dataValidationModel=t,this._initSnapshot()}_initSnapshot(){const e=t=>{const r=this._dataValidationModel.getUnitRules(t),n={};return r?(r.forEach(([d,s])=>{n[d]=s}),JSON.stringify(n)):""},a=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:aa,businesses:[i.UniverInstanceType.UNIVER_SHEET],toJson:t=>e(t),parseJson:t=>a(t),onUnLoad:t=>{this._dataValidationModel.deleteUnitRules(t)},onLoad:(t,r)=>{Object.keys(r).forEach(n=>{r[n].forEach(s=>{this._dataValidationModel.addRule(t,n,s)})})}}))}};exports.DataValidationResourceController=k([i.OnLifecycle(i.LifecycleStages.Ready,exports.DataValidationResourceController),f(0,i.IResourceManagerService),f(1,i.IUniverInstanceService),f(2,m.Inject(exports.DataValidationModel))],exports.DataValidationResourceController);var ta=Object.defineProperty,ea=Object.getOwnPropertyDescriptor,ra=(o,e,a,t)=>{for(var r=t>1?void 0:t?ea(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&ta(e,a,r),r},M=(o,e)=>(a,t)=>e(a,t,o);exports.DataValidationSheetController=class extends i.Disposable{constructor(e,a,t){super(),this._sheetInterceptorService=e,this._univerInstanceService=a,this._dataValidationModel=t,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{var a;if(e.id===I.RemoveSheetCommand.id){const t=e.params,r=t.unitId||this._univerInstanceService.getCurrentUnitForType(i.UniverInstanceType.UNIVER_SHEET).getUnitId(),n=this._univerInstanceService.getUniverSheetInstance(r);if(!n)return{redos:[],undos:[]};const d=t.subUnitId||((a=n.getActiveSheet())==null?void 0:a.getSheetId());if(!d)return{redos:[],undos:[]};const s=this._dataValidationModel.ensureManager(r,d);if(!s)return{redos:[],undos:[]};const l=s.getDataValidations(),u=l.map(E=>E.uid),p={unitId:r,subUnitId:d,ruleId:u},h={unitId:r,subUnitId:d,rule:l};return{redos:[{id:v.id,params:p}],undos:[{id:V.id,params:h}]}}return{redos:[],undos:[]}}}))}};exports.DataValidationSheetController=ra([i.OnLifecycle(i.LifecycleStages.Ready,exports.DataValidationSheetController),M(0,m.Inject(I.SheetInterceptorService)),M(1,m.Inject(i.IUniverInstanceService)),M(2,m.Inject(exports.DataValidationModel))],exports.DataValidationSheetController);var oa=Object.defineProperty,ia=Object.getOwnPropertyDescriptor,na=(o,e,a,t)=>{for(var r=t>1?void 0:t?ia(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&oa(e,a,r),r},N=(o,e)=>(a,t)=>e(a,t,o);const da="UNIVER_DATA_VALIDATION_PLUGIN";var O;exports.UniverDataValidationPlugin=(O=class extends i.Plugin{constructor(e,a,t){super(),this._injector=a,this._commandService=t}onStarting(e){[[exports.DataValidationModel],[R],[exports.DataValidationResourceController],[exports.DataValidationSheetController]].forEach(a=>{e.add(a)}),[P,j,$,x,B,V,_,v].forEach(a=>{this._commandService.registerCommand(a)})}},c(O,"pluginName",da),c(O,"type",i.UniverInstanceType.UNIVER_SHEET),O);exports.UniverDataValidationPlugin=na([N(1,m.Inject(m.Injector)),N(2,i.ICommandService)],exports.UniverDataValidationPlugin);i.DataValidationOperator.BETWEEN+"",i.DataValidationOperator.EQUAL+"",i.DataValidationOperator.GREATER_THAN+"",i.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",i.DataValidationOperator.LESS_THAN+"",i.DataValidationOperator.LESS_THAN_OR_EQUAL+"",i.DataValidationOperator.NOT_BETWEEN+"",i.DataValidationOperator.NOT_EQUAL+"";const sa={[i.DataValidationOperator.BETWEEN]:"dataValidation.ruleName.between",[i.DataValidationOperator.EQUAL]:"dataValidation.ruleName.equal",[i.DataValidationOperator.GREATER_THAN]:"dataValidation.ruleName.greaterThan",[i.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.ruleName.greaterThanOrEqual",[i.DataValidationOperator.LESS_THAN]:"dataValidation.ruleName.lessThan",[i.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.ruleName.lessThanOrEqual",[i.DataValidationOperator.NOT_BETWEEN]:"dataValidation.ruleName.notBetween",[i.DataValidationOperator.NOT_EQUAL]:"dataValidation.ruleName.notEqual"},la={[i.DataValidationOperator.BETWEEN]:"dataValidation.errorMsg.between",[i.DataValidationOperator.EQUAL]:"dataValidation.errorMsg.equal",[i.DataValidationOperator.GREATER_THAN]:"dataValidation.errorMsg.greaterThan",[i.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.errorMsg.greaterThanOrEqual",[i.DataValidationOperator.LESS_THAN]:"dataValidation.errorMsg.lessThan",[i.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.errorMsg.lessThanOrEqual",[i.DataValidationOperator.NOT_BETWEEN]:"dataValidation.errorMsg.notBetween",[i.DataValidationOperator.NOT_EQUAL]:"dataValidation.errorMsg.notEqual"},ua={[i.DataValidationOperator.BETWEEN]:"dataValidation.textLength.errorMsg.between",[i.DataValidationOperator.EQUAL]:"dataValidation.textLength.errorMsg.equal",[i.DataValidationOperator.GREATER_THAN]:"dataValidation.textLength.errorMsg.greaterThan",[i.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.greaterThanOrEqual",[i.DataValidationOperator.LESS_THAN]:"dataValidation.textLength.errorMsg.lessThan",[i.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.lessThanOrEqual",[i.DataValidationOperator.NOT_BETWEEN]:"dataValidation.textLength.errorMsg.notBetween",[i.DataValidationOperator.NOT_EQUAL]:"dataValidation.textLength.errorMsg.notEqual"};var ca=Object.defineProperty,pa=Object.getOwnPropertyDescriptor,ha=(o,e,a,t)=>{for(var r=t>1?void 0:t?pa(e,a):e,n=o.length-1,d;n>=0;n--)(d=o[n])&&(r=(t?d(e,a,r):d(r))||r);return t&&r&&ca(e,a,r),r},C=(o,e)=>(a,t)=>e(a,t,o);const U="{FORMULA1}",L="{FORMULA2}",ma={[i.DataValidationOperator.BETWEEN]:"dataValidation.operators.between",[i.DataValidationOperator.EQUAL]:"dataValidation.operators.equal",[i.DataValidationOperator.GREATER_THAN]:"dataValidation.operators.greaterThan",[i.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.operators.greaterThanOrEqual",[i.DataValidationOperator.LESS_THAN]:"dataValidation.operators.lessThan",[i.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.operators.lessThanOrEqual",[i.DataValidationOperator.NOT_BETWEEN]:"dataValidation.operators.notBetween",[i.DataValidationOperator.NOT_EQUAL]:"dataValidation.operators.notEqual"};exports.BaseDataValidator=class{constructor(e,a){c(this,"canvasRender",null);c(this,"dropdown");c(this,"optionsInput");this.localeService=e,this.injector=a}get operatorNames(){return this.operators.map(e=>this.localeService.t(ma[e]))}get titleStr(){return this.localeService.t(this.title)}skipDefaultFontRender(e,a,t){return!1}generateRuleName(e){var t,r;if(!e.operator)return this.titleStr;const a=this.localeService.t(sa[e.operator]).replace(U,(t=e.formula1)!=null?t:"").replace(L,(r=e.formula2)!=null?r:"");return`${this.titleStr} ${a}`}generateRuleErrorMessage(e){var t,r;return e.operator?`${this.localeService.t(la[e.operator]).replace(U,(t=e.formula1)!=null?t:"").replace(L,(r=e.formula2)!=null?r:"")}`:this.titleStr}getRuleFinalError(e){return e.showInputMessage&&e.error?e.error:this.generateRuleErrorMessage(e)}isEmptyCellValue(e){return e===""||e===void 0||e===null}async isValidType(e,a,t){return!0}transform(e,a,t){return e}async validatorIsEqual(e,a,t){return!0}async validatorIsNotEqual(e,a,t){return!0}async validatorIsBetween(e,a,t){return!0}async validatorIsNotBetween(e,a,t){return!0}async validatorIsGreaterThan(e,a,t){return!0}async validatorIsGreaterThanOrEqual(e,a,t){return!0}async validatorIsLessThan(e,a,t){return!0}async validatorIsLessThanOrEqual(e,a,t){return!0}async validator(e,a){const{value:t,unitId:r,subUnitId:n}=e,d=this.isEmptyCellValue(t),{allowBlank:s=!0,operator:l}=a;if(d)return s;const u=await this.parseFormula(a,r,n);if(!await this.isValidType(e,u,a))return!1;if(!i.Tools.isDefine(l))return!0;const p=this.transform(e,u,a);switch(l){case i.DataValidationOperator.BETWEEN:return this.validatorIsBetween(p,u,a);case i.DataValidationOperator.EQUAL:return this.validatorIsEqual(p,u,a);case i.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(p,u,a);case i.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(p,u,a);case i.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(p,u,a);case i.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(p,u,a);case i.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(p,u,a);case i.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(p,u,a);default:throw new Error("Unknown operator.")}}};exports.BaseDataValidator=ha([C(0,m.Inject(i.LocaleService)),C(1,m.Inject(m.Injector))],exports.BaseDataValidator);const ga=[i.DataValidationOperator.BETWEEN,i.DataValidationOperator.NOT_BETWEEN];exports.AddDataValidationCommand=P;exports.AddDataValidationMutation=V;exports.DataValidationManager=b;exports.DataValidatorRegistryScope=w;exports.DataValidatorRegistryService=R;exports.RemoveAllDataValidationCommand=j;exports.RemoveDataValidationCommand=B;exports.RemoveDataValidationMutation=v;exports.TWO_FORMULA_OPERATOR_COUNT=ga;exports.TextLengthErrorTitleMap=ua;exports.UpdateDataValidationMutation=_;exports.UpdateDataValidationOptionsCommand=$;exports.UpdateDataValidationSettingCommand=x;exports.UpdateRuleType=g;exports.createDefaultNewRule=W;exports.getRuleOptions=y;exports.getRuleSetting=A;exports.removeDataValidationUndoFactory=X;
package/lib/es/index.js CHANGED
@@ -1,17 +1,17 @@
1
- var X = Object.defineProperty;
2
- var Y = (a, e, t) => e in a ? X(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
3
- var c = (a, e, t) => Y(a, typeof e != "symbol" ? e + "" : e, t);
4
- import { toDisposable as Z, Tools as H, DataValidationType as k, DataValidationOperator as s, Disposable as N, DataValidationStatus as ee, ILogService as te, CommandType as E, ICommandService as M, IUndoRedoService as S, UniverInstanceType as w, OnLifecycle as q, LifecycleStages as G, IResourceManagerService as ae, IUniverInstanceService as Q, Plugin as re, LocaleService as ne } from "@univerjs/core";
5
- import { Inject as f, Injector as W } from "@wendellhu/redi";
6
- import { BehaviorSubject as oe, Subject as U, debounceTime as D } from "rxjs";
7
- import { SelectionManagerService as ie, RemoveSheetCommand as se, SheetInterceptorService as de } from "@univerjs/sheets";
8
- var le = /* @__PURE__ */ ((a) => (a.SHEET = "sheet", a))(le || {});
9
- class j {
1
+ var Z = Object.defineProperty;
2
+ var k = (a, e, t) => e in a ? Z(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
3
+ var u = (a, e, t) => k(a, typeof e != "symbol" ? e + "" : e, t);
4
+ import { toDisposable as ee, Tools as G, DataValidationType as te, DataValidationOperator as s, Disposable as O, DataValidationStatus as ae, ILogService as y, CommandType as E, ICommandService as T, IUndoRedoService as M, UniverInstanceType as C, OnLifecycle as Q, LifecycleStages as j, IResourceManagerService as re, IUniverInstanceService as W, Plugin as ne, LocaleService as oe } from "@univerjs/core";
5
+ import { Inject as v, Injector as F } from "@wendellhu/redi";
6
+ import { BehaviorSubject as ie, Subject as w, debounceTime as b } from "rxjs";
7
+ import { SelectionManagerService as se, RemoveSheetCommand as de, SheetInterceptorService as le } from "@univerjs/sheets";
8
+ var ue = /* @__PURE__ */ ((a) => (a.SHEET = "sheet", a))(ue || {});
9
+ class J {
10
10
  constructor() {
11
- c(this, "_validatorByScopes", /* @__PURE__ */ new Map());
12
- c(this, "_validatorMap", /* @__PURE__ */ new Map());
13
- c(this, "_validatorsChange$", new oe(void 0));
14
- c(this, "validatorsChange$", this._validatorsChange$.asObservable());
11
+ u(this, "_validatorByScopes", /* @__PURE__ */ new Map());
12
+ u(this, "_validatorMap", /* @__PURE__ */ new Map());
13
+ u(this, "_validatorsChange$", new ie(void 0));
14
+ u(this, "validatorsChange$", this._validatorsChange$.asObservable());
15
15
  }
16
16
  _addValidatorToScope(e, t) {
17
17
  this._validatorByScopes.has(t) || this._validatorByScopes.set(t, []);
@@ -30,7 +30,7 @@ class j {
30
30
  register(e) {
31
31
  return this._validatorMap.set(e.id, e), Array.isArray(e.scopes) ? e.scopes.forEach((t) => {
32
32
  this._addValidatorToScope(e, t);
33
- }) : this._addValidatorToScope(e, e.scopes), this._validatorsChange$.next(), Z(() => {
33
+ }) : this._addValidatorToScope(e, e.scopes), this._validatorsChange$.next(), ee(() => {
34
34
  this._validatorMap.delete(e.id), Array.isArray(e.scopes) ? e.scopes.forEach((t) => {
35
35
  this._removeValidatorFromScope(e, t);
36
36
  }) : this._removeValidatorFromScope(e, e.scopes), this._validatorsChange$.next();
@@ -44,7 +44,7 @@ class j {
44
44
  }
45
45
  }
46
46
  var g = /* @__PURE__ */ ((a) => (a[a.SETTING = 0] = "SETTING", a[a.RANGE = 1] = "RANGE", a[a.OPTIONS = 2] = "OPTIONS", a))(g || {});
47
- function F(a) {
47
+ function z(a) {
48
48
  return {
49
49
  type: a.type,
50
50
  operator: a.operator,
@@ -53,7 +53,7 @@ function F(a) {
53
53
  allowBlank: a.allowBlank
54
54
  };
55
55
  }
56
- function J(a) {
56
+ function K(a) {
57
57
  return {
58
58
  error: a.error,
59
59
  errorStyle: a.errorStyle,
@@ -67,25 +67,25 @@ function J(a) {
67
67
  renderMode: a.renderMode
68
68
  };
69
69
  }
70
- function Ge(a) {
71
- const t = a.get(ie).getSelectionRanges();
70
+ function Qe(a) {
71
+ const t = a.get(se).getSelectionRanges();
72
72
  return {
73
- uid: H.generateRandomId(6),
74
- type: k.DECIMAL,
73
+ uid: G.generateRandomId(6),
74
+ type: te.DECIMAL,
75
75
  operator: s.EQUAL,
76
76
  formula1: "100",
77
77
  ranges: t != null ? t : [{ startColumn: 0, endColumn: 0, startRow: 0, endRow: 0 }]
78
78
  };
79
79
  }
80
- class ue extends N {
80
+ class ce extends O {
81
81
  constructor(t, r, n) {
82
82
  super();
83
- c(this, "_dataValidations");
84
- c(this, "_dataValidationMap", /* @__PURE__ */ new Map());
85
- c(this, "_dataValidations$", new U());
86
- c(this, "unitId");
87
- c(this, "subUnitId");
88
- c(this, "dataValidations$", this._dataValidations$.asObservable());
83
+ u(this, "_dataValidations");
84
+ u(this, "_dataValidationMap", /* @__PURE__ */ new Map());
85
+ u(this, "_dataValidations$", new w());
86
+ u(this, "unitId");
87
+ u(this, "subUnitId");
88
+ u(this, "dataValidations$", this._dataValidations$.asObservable());
89
89
  this.unitId = t, this.subUnitId = r, n && (this._insertRules(n), this._notice(), this.disposeWithMe({
90
90
  dispose: () => {
91
91
  this._dataValidations$.complete();
@@ -117,7 +117,7 @@ class ue extends N {
117
117
  r > -1 && (this._dataValidations.splice(r, 1), this._dataValidationMap.delete(t), this._notice());
118
118
  }
119
119
  updateRule(t, r) {
120
- const n = this._dataValidationMap.get(t), o = this._dataValidations.findIndex((d) => t === d.uid);
120
+ const n = this._dataValidationMap.get(t), o = this._dataValidations.findIndex((l) => t === l.uid);
121
121
  if (!n)
122
122
  throw new Error(`Data validation rule is not found, ruleId: ${t}.`);
123
123
  const i = { ...n };
@@ -127,11 +127,11 @@ class ue extends N {
127
127
  break;
128
128
  }
129
129
  case g.SETTING: {
130
- Object.assign(i, F(r.payload));
130
+ Object.assign(i, z(r.payload));
131
131
  break;
132
132
  }
133
133
  case g.OPTIONS: {
134
- Object.assign(i, J(r.payload));
134
+ Object.assign(i, K(r.payload));
135
135
  break;
136
136
  }
137
137
  }
@@ -144,24 +144,24 @@ class ue extends N {
144
144
  return this._dataValidations;
145
145
  }
146
146
  validator(t, r, n, o) {
147
- return ee.VALID;
147
+ return ae.VALID;
148
148
  }
149
149
  }
150
- var ce = Object.defineProperty, he = Object.getOwnPropertyDescriptor, _e = (a, e, t, r) => {
151
- for (var n = r > 1 ? void 0 : r ? he(e, t) : e, o = a.length - 1, i; o >= 0; o--)
150
+ var he = Object.defineProperty, pe = Object.getOwnPropertyDescriptor, _e = (a, e, t, r) => {
151
+ for (var n = r > 1 ? void 0 : r ? pe(e, t) : e, o = a.length - 1, i; o >= 0; o--)
152
152
  (i = a[o]) && (n = (r ? i(e, t, n) : i(n)) || n);
153
- return r && n && ce(e, t, n), n;
154
- }, pe = (a, e) => (t, r) => e(t, r, a);
155
- let h = class extends N {
153
+ return r && n && he(e, t, n), n;
154
+ }, ge = (a, e) => (t, r) => e(t, r, a);
155
+ let h = class extends O {
156
156
  constructor(e) {
157
157
  super();
158
- c(this, "_model", /* @__PURE__ */ new Map());
159
- c(this, "_managerCreator", (e, t) => new ue(e, t, []));
160
- c(this, "_ruleChange$", new U());
161
- c(this, "_validStatusChange$", new U());
162
- c(this, "ruleChange$", this._ruleChange$.asObservable());
163
- c(this, "ruleChangeDebounce$", this.ruleChange$.pipe(D(20)));
164
- c(this, "validStatusChange$", this._validStatusChange$.asObservable().pipe(D(20)));
158
+ u(this, "_model", /* @__PURE__ */ new Map());
159
+ u(this, "_managerCreator", (e, t) => new ce(e, t, []));
160
+ u(this, "_ruleChange$", new w());
161
+ u(this, "_validStatusChange$", new w());
162
+ u(this, "ruleChange$", this._ruleChange$.asObservable());
163
+ u(this, "ruleChangeDebounce$", this.ruleChange$.pipe(b(20)));
164
+ u(this, "validStatusChange$", this._validStatusChange$.asObservable().pipe(b(20)));
165
165
  this._logService = e, this.disposeWithMe({
166
166
  dispose: () => {
167
167
  this._ruleChange$.complete(), this._validStatusChange$.complete();
@@ -190,8 +190,8 @@ let h = class extends N {
190
190
  addRule(e, t, r, n) {
191
191
  try {
192
192
  const o = this.ensureManager(e, t);
193
- (Array.isArray(r) ? r : [r]).forEach((d) => {
194
- this._addRuleSideEffect(e, t, d);
193
+ (Array.isArray(r) ? r : [r]).forEach((l) => {
194
+ this._addRuleSideEffect(e, t, l);
195
195
  }), o.addRule(r, n);
196
196
  } catch (o) {
197
197
  this._logService.error(o);
@@ -234,12 +234,12 @@ let h = class extends N {
234
234
  }
235
235
  validator(e, t, r) {
236
236
  const { unitId: n, subUnitId: o } = r;
237
- return this.ensureManager(n, o).validator(e, t, r, (d, l) => {
238
- l && this._validStatusChange$.next({
237
+ return this.ensureManager(n, o).validator(e, t, r, (l, d) => {
238
+ d && this._validStatusChange$.next({
239
239
  unitId: n,
240
240
  subUnitId: o,
241
241
  ruleId: t.uid,
242
- status: d
242
+ status: l
243
243
  });
244
244
  });
245
245
  }
@@ -261,7 +261,7 @@ let h = class extends N {
261
261
  }
262
262
  };
263
263
  h = _e([
264
- pe(0, te)
264
+ ge(0, y)
265
265
  ], h);
266
266
  const m = {
267
267
  type: E.MUTATION,
@@ -272,7 +272,7 @@ const m = {
272
272
  const { unitId: t, subUnitId: r, rule: n, index: o } = e;
273
273
  return a.get(h).addRule(t, r, n, o), !0;
274
274
  }
275
- }, T = {
275
+ }, S = {
276
276
  type: E.MUTATION,
277
277
  id: "data-validation.mutation.removeRule",
278
278
  handler(a, e) {
@@ -283,7 +283,7 @@ const m = {
283
283
  o.removeRule(t, r, i);
284
284
  }) : o.removeRule(t, r, n), !0;
285
285
  }
286
- }, v = {
286
+ }, f = {
287
287
  type: E.MUTATION,
288
288
  id: "data-validation.mutation.updateRule",
289
289
  handler(a, e) {
@@ -292,45 +292,45 @@ const m = {
292
292
  const { unitId: t, subUnitId: r, ruleId: n, payload: o } = e;
293
293
  return a.get(h).updateRule(t, r, n, o), !0;
294
294
  }
295
- }, ge = {
295
+ }, me = {
296
296
  type: E.COMMAND,
297
297
  id: "data-validation.command.addRule",
298
298
  async handler(a, e) {
299
- if (!e)
299
+ if (a.get(y).warn("[Deprecated] AddDataValidationCommand is deprecated, please use AddSheetDataValidationCommand in @univerjs/sheets-data-validation instead!"), !e)
300
300
  return !1;
301
- const { rule: t, unitId: r, subUnitId: n } = e, o = a.get(M), i = a.get(S), d = {
301
+ const { rule: r, unitId: n, subUnitId: o } = e, i = a.get(T), l = a.get(M), d = {
302
302
  ...e,
303
303
  rule: {
304
304
  ...e.rule,
305
305
  ranges: [e.rule.range]
306
306
  }
307
- }, l = [{
307
+ }, c = [{
308
308
  id: m.id,
309
309
  params: d
310
- }], u = [{
311
- id: T.id,
310
+ }], p = [{
311
+ id: S.id,
312
312
  params: {
313
- unitId: r,
314
- subUnitId: n,
315
- ruleId: t.uid
313
+ unitId: n,
314
+ subUnitId: o,
315
+ ruleId: r.uid
316
316
  }
317
317
  }];
318
- return i.pushUndoRedo({
319
- unitID: r,
320
- redoMutations: l,
321
- undoMutations: u
322
- }), await o.executeCommand(m.id, d), !0;
318
+ return l.pushUndoRedo({
319
+ unitID: n,
320
+ redoMutations: c,
321
+ undoMutations: p
322
+ }), await i.executeCommand(m.id, d), !0;
323
323
  }
324
- }, Qe = (a, e) => {
324
+ }, je = (a, e) => {
325
325
  const t = a.get(h), { unitId: r, subUnitId: n, ruleId: o } = e;
326
326
  if (Array.isArray(o)) {
327
- const d = o.map((l) => t.getRuleById(r, n, l)).filter(Boolean);
327
+ const l = o.map((d) => t.getRuleById(r, n, d)).filter(Boolean);
328
328
  return [{
329
329
  id: m.id,
330
330
  params: {
331
331
  unitId: r,
332
332
  subUnitId: n,
333
- rule: d
333
+ rule: l
334
334
  }
335
335
  }];
336
336
  }
@@ -345,146 +345,146 @@ const m = {
345
345
  index: t.getRuleIndex(r, n, o)
346
346
  }
347
347
  }];
348
- }, me = {
348
+ }, Ee = {
349
349
  type: E.COMMAND,
350
350
  id: "data-validation.command.removeRule",
351
351
  handler(a, e) {
352
352
  if (!e)
353
353
  return !1;
354
- const { unitId: t, subUnitId: r, ruleId: n } = e, o = a.get(M), i = a.get(S), d = a.get(h), l = [{
355
- id: T.id,
354
+ const { unitId: t, subUnitId: r, ruleId: n } = e, o = a.get(T), i = a.get(M), l = a.get(h), d = [{
355
+ id: S.id,
356
356
  params: e
357
- }], u = [{
357
+ }], c = [{
358
358
  id: m.id,
359
359
  params: {
360
360
  unitId: t,
361
361
  subUnitId: r,
362
362
  rule: {
363
- ...d.getRuleById(t, r, n)
363
+ ...l.getRuleById(t, r, n)
364
364
  },
365
- index: d.getRuleIndex(t, r, n)
365
+ index: l.getRuleIndex(t, r, n)
366
366
  }
367
367
  }];
368
368
  return i.pushUndoRedo({
369
- undoMutations: u,
370
- redoMutations: l,
369
+ undoMutations: c,
370
+ redoMutations: d,
371
371
  unitID: e.unitId
372
- }), o.executeCommand(T.id, e), !0;
372
+ }), o.executeCommand(S.id, e), !0;
373
373
  }
374
- }, Ee = {
374
+ }, ve = {
375
375
  type: E.COMMAND,
376
376
  id: "data-validation.command.updateDataValidationSetting",
377
377
  handler(a, e) {
378
- if (!e)
378
+ if (a.get(y).warn("[Deprecated] UpdateDataValidationOptionsCommand is deprecated, please use UpdateSheetDataValidationOptionsCommand in @univerjs/sheets-data-validation instead!"), !e)
379
379
  return !1;
380
- const t = a.get(M), r = a.get(S), n = a.get(h), { unitId: o, subUnitId: i, ruleId: d, options: l } = e, u = n.getRuleById(o, i, d);
381
- if (!u)
380
+ const r = a.get(T), n = a.get(M), o = a.get(h), { unitId: i, subUnitId: l, ruleId: d, options: c } = e, p = o.getRuleById(i, l, d);
381
+ if (!p)
382
382
  return !1;
383
383
  const _ = {
384
- unitId: o,
385
- subUnitId: i,
384
+ unitId: i,
385
+ subUnitId: l,
386
386
  ruleId: d,
387
387
  payload: {
388
388
  type: g.OPTIONS,
389
- payload: l
389
+ payload: c
390
390
  }
391
- }, p = [{
392
- id: v.id,
391
+ }, V = [{
392
+ id: f.id,
393
393
  params: _
394
- }], V = {
395
- unitId: o,
396
- subUnitId: i,
394
+ }], I = {
395
+ unitId: i,
396
+ subUnitId: l,
397
397
  ruleId: d,
398
398
  payload: {
399
399
  type: g.OPTIONS,
400
- payload: J(u)
400
+ payload: K(p)
401
401
  }
402
- }, O = [{
403
- id: v.id,
404
- params: V
402
+ }, U = [{
403
+ id: f.id,
404
+ params: I
405
405
  }];
406
- return r.pushUndoRedo({
407
- unitID: o,
408
- redoMutations: p,
409
- undoMutations: O
410
- }), t.executeCommand(v.id, _), !0;
406
+ return n.pushUndoRedo({
407
+ unitID: i,
408
+ redoMutations: V,
409
+ undoMutations: U
410
+ }), r.executeCommand(f.id, _), !0;
411
411
  }
412
412
  }, fe = {
413
413
  type: E.COMMAND,
414
414
  id: "data-validation.command.updateDataValidationOptions",
415
415
  handler(a, e) {
416
- if (!e)
416
+ if (a.get(y).warn("[Deprecated] UpdateDataValidationSettingCommand is deprecated, please use UpdateSheetDataValidationSettingCommand in @univerjs/sheets-data-validation instead!"), !e)
417
417
  return !1;
418
- const t = a.get(M), r = a.get(S), n = a.get(h), o = a.get(j), { unitId: i, subUnitId: d, ruleId: l, setting: u } = e, _ = o.getValidatorItem(u.type);
418
+ const r = a.get(T), n = a.get(M), o = a.get(h), i = a.get(J), { unitId: l, subUnitId: d, ruleId: c, setting: p } = e, _ = i.getValidatorItem(p.type);
419
419
  if (!_)
420
420
  return !1;
421
- const p = n.getRuleById(i, d, l);
422
- if (!p || !_.validatorFormula({ ...p, ...u }, i, d).success)
421
+ const V = o.getRuleById(l, d, c);
422
+ if (!V || !_.validatorFormula({ ...V, ...p }, l, d).success)
423
423
  return !1;
424
- const V = {
425
- unitId: i,
424
+ const I = {
425
+ unitId: l,
426
426
  subUnitId: d,
427
- ruleId: l,
427
+ ruleId: c,
428
428
  payload: {
429
429
  type: g.SETTING,
430
- payload: u
430
+ payload: p
431
431
  }
432
- }, O = [{
433
- id: v.id,
434
- params: V
435
- }], z = {
436
- unitId: i,
432
+ }, U = [{
433
+ id: f.id,
434
+ params: I
435
+ }], X = {
436
+ unitId: l,
437
437
  subUnitId: d,
438
- ruleId: l,
438
+ ruleId: c,
439
439
  payload: {
440
440
  type: g.SETTING,
441
- payload: F(p)
441
+ payload: z(V)
442
442
  }
443
- }, K = [{
444
- id: v.id,
445
- params: z
443
+ }, Y = [{
444
+ id: f.id,
445
+ params: X
446
446
  }];
447
- return r.pushUndoRedo({
448
- unitID: i,
449
- redoMutations: O,
450
- undoMutations: K
451
- }), t.executeCommand(v.id, V), !0;
447
+ return n.pushUndoRedo({
448
+ unitID: l,
449
+ redoMutations: U,
450
+ undoMutations: Y
451
+ }), r.executeCommand(f.id, I), !0;
452
452
  }
453
- }, ve = {
453
+ }, Se = {
454
454
  type: E.COMMAND,
455
455
  id: "data-validation.command.removeAll",
456
456
  handler(a, e) {
457
457
  if (!e)
458
458
  return !1;
459
- const { unitId: t, subUnitId: r } = e, n = a.get(M), o = a.get(h), i = a.get(S), d = [...o.getRules(t, r)], l = {
459
+ const { unitId: t, subUnitId: r } = e, n = a.get(T), o = a.get(h), i = a.get(M), l = [...o.getRules(t, r)], d = {
460
460
  unitId: t,
461
461
  subUnitId: r,
462
- ruleId: d.map((p) => p.uid)
463
- }, u = [{
464
- id: T.id,
465
- params: l
466
- }], _ = [{
462
+ ruleId: l.map((_) => _.uid)
463
+ }, c = [{
464
+ id: S.id,
465
+ params: d
466
+ }], p = [{
467
467
  id: m.id,
468
468
  params: {
469
469
  unitId: t,
470
470
  subUnitId: r,
471
- rule: d
471
+ rule: l
472
472
  }
473
473
  }];
474
474
  return i.pushUndoRedo({
475
- redoMutations: u,
476
- undoMutations: _,
475
+ redoMutations: c,
476
+ undoMutations: p,
477
477
  unitID: t
478
- }), n.executeCommand(T.id, l), !0;
478
+ }), n.executeCommand(S.id, d), !0;
479
479
  }
480
480
  };
481
- var Te = Object.defineProperty, Me = Object.getOwnPropertyDescriptor, Se = (a, e, t, r) => {
482
- for (var n = r > 1 ? void 0 : r ? Me(e, t) : e, o = a.length - 1, i; o >= 0; o--)
481
+ var Te = Object.defineProperty, Ve = Object.getOwnPropertyDescriptor, Me = (a, e, t, r) => {
482
+ for (var n = r > 1 ? void 0 : r ? Ve(e, t) : e, o = a.length - 1, i; o >= 0; o--)
483
483
  (i = a[o]) && (n = (r ? i(e, t, n) : i(n)) || n);
484
484
  return r && n && Te(e, t, n), n;
485
- }, y = (a, e) => (t, r) => e(t, r, a);
486
- const Ve = "SHEET_DATA_VALIDATION_PLUGIN";
487
- let R = class extends N {
485
+ }, D = (a, e) => (t, r) => e(t, r, a);
486
+ const Ie = "SHEET_DATA_VALIDATION_PLUGIN";
487
+ let A = class extends O {
488
488
  constructor(a, e, t) {
489
489
  super(), this._resourceManagerService = a, this._univerInstanceService = e, this._dataValidationModel = t, this._initSnapshot();
490
490
  }
@@ -505,8 +505,8 @@ let R = class extends N {
505
505
  };
506
506
  this.disposeWithMe(
507
507
  this._resourceManagerService.registerPluginResource({
508
- pluginName: Ve,
509
- businesses: [w.UNIVER_SHEET],
508
+ pluginName: Ie,
509
+ businesses: [C.UNIVER_SHEET],
510
510
  toJson: (t) => a(t),
511
511
  parseJson: (t) => e(t),
512
512
  onUnLoad: (t) => {
@@ -523,18 +523,18 @@ let R = class extends N {
523
523
  );
524
524
  }
525
525
  };
526
- R = Se([
527
- q(G.Ready, R),
528
- y(0, ae),
529
- y(1, Q),
530
- y(2, f(h))
531
- ], R);
532
- var Ie = Object.defineProperty, Re = Object.getOwnPropertyDescriptor, Ae = (a, e, t, r) => {
533
- for (var n = r > 1 ? void 0 : r ? Re(e, t) : e, o = a.length - 1, i; o >= 0; o--)
526
+ A = Me([
527
+ Q(j.Ready, A),
528
+ D(0, re),
529
+ D(1, W),
530
+ D(2, v(h))
531
+ ], A);
532
+ var Re = Object.defineProperty, Ae = Object.getOwnPropertyDescriptor, Ne = (a, e, t, r) => {
533
+ for (var n = r > 1 ? void 0 : r ? Ae(e, t) : e, o = a.length - 1, i; o >= 0; o--)
534
534
  (i = a[o]) && (n = (r ? i(e, t, n) : i(n)) || n);
535
- return r && n && Ie(e, t, n), n;
535
+ return r && n && Re(e, t, n), n;
536
536
  }, L = (a, e) => (t, r) => e(t, r, a);
537
- let A = class extends N {
537
+ let N = class extends O {
538
538
  constructor(a, e, t) {
539
539
  super(), this._sheetInterceptorService = a, this._univerInstanceService = e, this._dataValidationModel = t, this._initSheetChange();
540
540
  }
@@ -543,8 +543,8 @@ let A = class extends N {
543
543
  this._sheetInterceptorService.interceptCommand({
544
544
  getMutations: (a) => {
545
545
  var e;
546
- if (a.id === se.id) {
547
- const t = a.params, r = t.unitId || this._univerInstanceService.getCurrentUnitForType(w.UNIVER_SHEET).getUnitId(), n = this._univerInstanceService.getUniverSheetInstance(r);
546
+ if (a.id === de.id) {
547
+ const t = a.params, r = t.unitId || this._univerInstanceService.getCurrentUnitForType(C.UNIVER_SHEET).getUnitId(), n = this._univerInstanceService.getUniverSheetInstance(r);
548
548
  if (!n)
549
549
  return { redos: [], undos: [] };
550
550
  const o = t.subUnitId || ((e = n.getActiveSheet()) == null ? void 0 : e.getSheetId());
@@ -553,23 +553,23 @@ let A = class extends N {
553
553
  const i = this._dataValidationModel.ensureManager(r, o);
554
554
  if (!i)
555
555
  return { redos: [], undos: [] };
556
- const d = i.getDataValidations(), l = d.map((p) => p.uid), u = {
556
+ const l = i.getDataValidations(), d = l.map((_) => _.uid), c = {
557
557
  unitId: r,
558
558
  subUnitId: o,
559
- ruleId: l
560
- }, _ = {
559
+ ruleId: d
560
+ }, p = {
561
561
  unitId: r,
562
562
  subUnitId: o,
563
- rule: d
563
+ rule: l
564
564
  };
565
565
  return {
566
566
  redos: [{
567
- id: T.id,
568
- params: u
567
+ id: S.id,
568
+ params: c
569
569
  }],
570
570
  undos: [{
571
571
  id: m.id,
572
- params: _
572
+ params: p
573
573
  }]
574
574
  };
575
575
  }
@@ -579,20 +579,20 @@ let A = class extends N {
579
579
  );
580
580
  }
581
581
  };
582
- A = Ae([
583
- q(G.Ready, A),
584
- L(0, f(de)),
585
- L(1, f(Q)),
586
- L(2, f(h))
587
- ], A);
588
- var Ne = Object.defineProperty, Oe = Object.getOwnPropertyDescriptor, ye = (a, e, t, r) => {
589
- for (var n = r > 1 ? void 0 : r ? Oe(e, t) : e, o = a.length - 1, i; o >= 0; o--)
582
+ N = Ne([
583
+ Q(j.Ready, N),
584
+ L(0, v(le)),
585
+ L(1, v(W)),
586
+ L(2, v(h))
587
+ ], N);
588
+ var Oe = Object.defineProperty, ye = Object.getOwnPropertyDescriptor, Ue = (a, e, t, r) => {
589
+ for (var n = r > 1 ? void 0 : r ? ye(e, t) : e, o = a.length - 1, i; o >= 0; o--)
590
590
  (i = a[o]) && (n = (r ? i(e, t, n) : i(n)) || n);
591
- return r && n && Ne(e, t, n), n;
592
- }, C = (a, e) => (t, r) => e(t, r, a);
593
- const Le = "UNIVER_DATA_VALIDATION_PLUGIN";
594
- var I;
595
- let b = (I = class extends re {
591
+ return r && n && Oe(e, t, n), n;
592
+ }, B = (a, e) => (t, r) => e(t, r, a);
593
+ const De = "UNIVER_DATA_VALIDATION_PLUGIN";
594
+ var R;
595
+ let P = (R = class extends ne {
596
596
  constructor(a, e, t) {
597
597
  super(), this._injector = e, this._commandService = t;
598
598
  }
@@ -601,35 +601,35 @@ let b = (I = class extends re {
601
601
  // model
602
602
  [h],
603
603
  // service
604
- [j],
605
- [R],
606
- [A]
604
+ [J],
605
+ [A],
606
+ [N]
607
607
  ].forEach(
608
608
  (e) => {
609
609
  a.add(e);
610
610
  }
611
611
  ), [
612
612
  // command
613
- ge,
613
+ me,
614
+ Se,
614
615
  ve,
615
- Ee,
616
616
  fe,
617
- me,
617
+ Ee,
618
618
  // mutation
619
619
  m,
620
- v,
621
- T
620
+ f,
621
+ S
622
622
  ].forEach((e) => {
623
623
  this._commandService.registerCommand(e);
624
624
  });
625
625
  }
626
- }, c(I, "pluginName", Le), c(I, "type", w.UNIVER_SHEET), I);
627
- b = ye([
628
- C(1, f(W)),
629
- C(2, M)
630
- ], b);
626
+ }, u(R, "pluginName", De), u(R, "type", C.UNIVER_SHEET), R);
627
+ P = Ue([
628
+ B(1, v(F)),
629
+ B(2, T)
630
+ ], P);
631
631
  s.BETWEEN + "", s.EQUAL + "", s.GREATER_THAN + "", s.GREATER_THAN_OR_EQUAL + "", s.LESS_THAN + "", s.LESS_THAN_OR_EQUAL + "", s.NOT_BETWEEN + "", s.NOT_EQUAL + "";
632
- const Ue = {
632
+ const Le = {
633
633
  [s.BETWEEN]: "dataValidation.ruleName.between",
634
634
  [s.EQUAL]: "dataValidation.ruleName.equal",
635
635
  [s.GREATER_THAN]: "dataValidation.ruleName.greaterThan",
@@ -657,12 +657,12 @@ const Ue = {
657
657
  [s.NOT_BETWEEN]: "dataValidation.textLength.errorMsg.notBetween",
658
658
  [s.NOT_EQUAL]: "dataValidation.textLength.errorMsg.notEqual"
659
659
  };
660
- var De = Object.defineProperty, Ce = Object.getOwnPropertyDescriptor, be = (a, e, t, r) => {
661
- for (var n = r > 1 ? void 0 : r ? Ce(e, t) : e, o = a.length - 1, i; o >= 0; o--)
660
+ var Ce = Object.defineProperty, be = Object.getOwnPropertyDescriptor, Be = (a, e, t, r) => {
661
+ for (var n = r > 1 ? void 0 : r ? be(e, t) : e, o = a.length - 1, i; o >= 0; o--)
662
662
  (i = a[o]) && (n = (r ? i(e, t, n) : i(n)) || n);
663
- return r && n && De(e, t, n), n;
664
- }, B = (a, e) => (t, r) => e(t, r, a);
665
- const P = "{FORMULA1}", $ = "{FORMULA2}", Be = {
663
+ return r && n && Ce(e, t, n), n;
664
+ }, $ = (a, e) => (t, r) => e(t, r, a);
665
+ const x = "{FORMULA1}", H = "{FORMULA2}", Pe = {
666
666
  [s.BETWEEN]: "dataValidation.operators.between",
667
667
  [s.EQUAL]: "dataValidation.operators.equal",
668
668
  [s.GREATER_THAN]: "dataValidation.operators.greaterThan",
@@ -672,15 +672,15 @@ const P = "{FORMULA1}", $ = "{FORMULA2}", Be = {
672
672
  [s.NOT_BETWEEN]: "dataValidation.operators.notBetween",
673
673
  [s.NOT_EQUAL]: "dataValidation.operators.notEqual"
674
674
  };
675
- let x = class {
675
+ let q = class {
676
676
  constructor(a, e) {
677
- c(this, "canvasRender", null);
678
- c(this, "dropdown");
679
- c(this, "optionsInput");
677
+ u(this, "canvasRender", null);
678
+ u(this, "dropdown");
679
+ u(this, "optionsInput");
680
680
  this.localeService = a, this.injector = e;
681
681
  }
682
682
  get operatorNames() {
683
- return this.operators.map((a) => this.localeService.t(Be[a]));
683
+ return this.operators.map((a) => this.localeService.t(Pe[a]));
684
684
  }
685
685
  get titleStr() {
686
686
  return this.localeService.t(this.title);
@@ -692,12 +692,12 @@ let x = class {
692
692
  var t, r;
693
693
  if (!a.operator)
694
694
  return this.titleStr;
695
- const e = this.localeService.t(Ue[a.operator]).replace(P, (t = a.formula1) != null ? t : "").replace($, (r = a.formula2) != null ? r : "");
695
+ const e = this.localeService.t(Le[a.operator]).replace(x, (t = a.formula1) != null ? t : "").replace(H, (r = a.formula2) != null ? r : "");
696
696
  return `${this.titleStr} ${e}`;
697
697
  }
698
698
  generateRuleErrorMessage(a) {
699
699
  var t, r;
700
- return a.operator ? `${this.localeService.t(we[a.operator]).replace(P, (t = a.formula1) != null ? t : "").replace($, (r = a.formula2) != null ? r : "")}` : this.titleStr;
700
+ return a.operator ? `${this.localeService.t(we[a.operator]).replace(x, (t = a.formula1) != null ? t : "").replace(H, (r = a.formula2) != null ? r : "")}` : this.titleStr;
701
701
  }
702
702
  getRuleFinalError(a) {
703
703
  return a.showInputMessage && a.error ? a.error : this.generateRuleErrorMessage(a);
@@ -736,67 +736,67 @@ let x = class {
736
736
  return !0;
737
737
  }
738
738
  async validator(a, e) {
739
- const { value: t, unitId: r, subUnitId: n } = a, o = this.isEmptyCellValue(t), { allowBlank: i = !0, operator: d } = e;
739
+ const { value: t, unitId: r, subUnitId: n } = a, o = this.isEmptyCellValue(t), { allowBlank: i = !0, operator: l } = e;
740
740
  if (o)
741
741
  return i;
742
- const l = await this.parseFormula(e, r, n);
743
- if (!await this.isValidType(a, l, e))
742
+ const d = await this.parseFormula(e, r, n);
743
+ if (!await this.isValidType(a, d, e))
744
744
  return !1;
745
- if (!H.isDefine(d))
745
+ if (!G.isDefine(l))
746
746
  return !0;
747
- const u = this.transform(a, l, e);
748
- switch (d) {
747
+ const c = this.transform(a, d, e);
748
+ switch (l) {
749
749
  case s.BETWEEN:
750
- return this.validatorIsBetween(u, l, e);
750
+ return this.validatorIsBetween(c, d, e);
751
751
  case s.EQUAL:
752
- return this.validatorIsEqual(u, l, e);
752
+ return this.validatorIsEqual(c, d, e);
753
753
  case s.GREATER_THAN:
754
- return this.validatorIsGreaterThan(u, l, e);
754
+ return this.validatorIsGreaterThan(c, d, e);
755
755
  case s.GREATER_THAN_OR_EQUAL:
756
- return this.validatorIsGreaterThanOrEqual(u, l, e);
756
+ return this.validatorIsGreaterThanOrEqual(c, d, e);
757
757
  case s.LESS_THAN:
758
- return this.validatorIsLessThan(u, l, e);
758
+ return this.validatorIsLessThan(c, d, e);
759
759
  case s.LESS_THAN_OR_EQUAL:
760
- return this.validatorIsLessThanOrEqual(u, l, e);
760
+ return this.validatorIsLessThanOrEqual(c, d, e);
761
761
  case s.NOT_BETWEEN:
762
- return this.validatorIsNotBetween(u, l, e);
762
+ return this.validatorIsNotBetween(c, d, e);
763
763
  case s.NOT_EQUAL:
764
- return this.validatorIsNotEqual(u, l, e);
764
+ return this.validatorIsNotEqual(c, d, e);
765
765
  default:
766
766
  throw new Error("Unknown operator.");
767
767
  }
768
768
  }
769
769
  };
770
- x = be([
771
- B(0, f(ne)),
772
- B(1, f(W))
773
- ], x);
774
- const je = [
770
+ q = Be([
771
+ $(0, v(oe)),
772
+ $(1, v(F))
773
+ ], q);
774
+ const Fe = [
775
775
  s.BETWEEN,
776
776
  s.NOT_BETWEEN
777
777
  ];
778
778
  export {
779
- ge as AddDataValidationCommand,
779
+ me as AddDataValidationCommand,
780
780
  m as AddDataValidationMutation,
781
- x as BaseDataValidator,
782
- ue as DataValidationManager,
781
+ q as BaseDataValidator,
782
+ ce as DataValidationManager,
783
783
  h as DataValidationModel,
784
- R as DataValidationResourceController,
785
- A as DataValidationSheetController,
786
- le as DataValidatorRegistryScope,
787
- j as DataValidatorRegistryService,
788
- ve as RemoveAllDataValidationCommand,
789
- me as RemoveDataValidationCommand,
790
- T as RemoveDataValidationMutation,
791
- je as TWO_FORMULA_OPERATOR_COUNT,
784
+ A as DataValidationResourceController,
785
+ N as DataValidationSheetController,
786
+ ue as DataValidatorRegistryScope,
787
+ J as DataValidatorRegistryService,
788
+ Se as RemoveAllDataValidationCommand,
789
+ Ee as RemoveDataValidationCommand,
790
+ S as RemoveDataValidationMutation,
791
+ Fe as TWO_FORMULA_OPERATOR_COUNT,
792
792
  We as TextLengthErrorTitleMap,
793
- b as UniverDataValidationPlugin,
794
- v as UpdateDataValidationMutation,
795
- Ee as UpdateDataValidationOptionsCommand,
793
+ P as UniverDataValidationPlugin,
794
+ f as UpdateDataValidationMutation,
795
+ ve as UpdateDataValidationOptionsCommand,
796
796
  fe as UpdateDataValidationSettingCommand,
797
797
  g as UpdateRuleType,
798
- Ge as createDefaultNewRule,
799
- J as getRuleOptions,
800
- F as getRuleSetting,
801
- Qe as removeDataValidationUndoFactory
798
+ Qe as createDefaultNewRule,
799
+ K as getRuleOptions,
800
+ z as getRuleSetting,
801
+ je as removeDataValidationUndoFactory
802
802
  };
@@ -9,6 +9,9 @@ export interface IAddDataValidationCommandParams extends ISheetCommandSharedPara
9
9
  };
10
10
  index?: number;
11
11
  }
12
+ /**
13
+ * @deprecated
14
+ */
12
15
  export declare const AddDataValidationCommand: ICommand<IAddDataValidationCommandParams>;
13
16
  export interface IRemoveDataValidationCommandParams extends ISheetCommandSharedParams {
14
17
  ruleId: string;
@@ -19,11 +22,17 @@ export interface IUpdateDataValidationOptionsCommandParams extends ISheetCommand
19
22
  ruleId: string;
20
23
  options: IDataValidationRuleOptions;
21
24
  }
25
+ /**
26
+ * @deprecated
27
+ */
22
28
  export declare const UpdateDataValidationOptionsCommand: ICommand<IUpdateDataValidationOptionsCommandParams>;
23
29
  export interface IUpdateDataValidationSettingCommandParams extends ISheetCommandSharedParams {
24
30
  ruleId: string;
25
31
  setting: IDataValidationRuleBase;
26
32
  }
33
+ /**
34
+ * @deprecated
35
+ */
27
36
  export declare const UpdateDataValidationSettingCommand: ICommand<IUpdateDataValidationSettingCommandParams>;
28
37
  export interface IRemoveAllDataValidationCommandParams extends ISheetCommandSharedParams {
29
38
  }
@@ -16,10 +16,6 @@
16
16
  export { UniverDataValidationPlugin } from './plugin';
17
17
  export { DataValidatorRegistryService, DataValidatorRegistryScope } from './services/data-validator-registry.service';
18
18
  export { DataValidationModel } from './models/data-validation-model';
19
- export { AddDataValidationCommand, RemoveDataValidationCommand, RemoveAllDataValidationCommand, UpdateDataValidationOptionsCommand, UpdateDataValidationSettingCommand, } from './commands/commands/data-validation.command';
20
- export type { IRemoveDataValidationCommandParams, IAddDataValidationCommandParams, IUpdateDataValidationOptionsCommandParams, IUpdateDataValidationSettingCommandParams, IRemoveAllDataValidationCommandParams, } from './commands/commands/data-validation.command';
21
- export { AddDataValidationMutation, RemoveDataValidationMutation, UpdateDataValidationMutation, } from './commands/mutations/data-validation.mutation';
22
- export type { IAddDataValidationMutationParams, IRemoveDataValidationMutationParams, IUpdateDataValidationMutationParams, } from './commands/mutations/data-validation.mutation';
23
19
  export { createDefaultNewRule, getRuleOptions, getRuleSetting, } from './common/util';
24
20
  export { UpdateRuleType } from './types/enum/update-rule-type';
25
21
  export type { IDataValidatorOperatorConfig } from './types/interfaces/i-data-validator-operator-config';
@@ -31,8 +27,9 @@ export type { IFormulaResult, IValidatorCellInfo } from './validators/base-data-
31
27
  export type { IBaseDataValidationWidget } from './validators/base-widget';
32
28
  export { DataValidationManager } from './models/data-validation-manager';
33
29
  export type { IFormulaValidResult } from './validators/base-data-validator';
34
- export { removeDataValidationUndoFactory } from './commands/commands/data-validation.command';
35
30
  export { TWO_FORMULA_OPERATOR_COUNT } from './types/const/two-formula-operators';
36
31
  export { DataValidationResourceController } from './controllers/dv-resource.controller';
37
32
  export { DataValidationSheetController } from './controllers/dv-sheet.controller';
38
33
  export { TextLengthErrorTitleMap } from './types/const/operator-text-map';
34
+ export { AddDataValidationCommand, RemoveDataValidationCommand, UpdateDataValidationOptionsCommand, UpdateDataValidationSettingCommand, RemoveAllDataValidationCommand, removeDataValidationUndoFactory, type IRemoveDataValidationCommandParams, type IAddDataValidationCommandParams, type IRemoveAllDataValidationCommandParams, } from './commands/commands/data-validation.command';
35
+ export { AddDataValidationMutation, RemoveDataValidationMutation, UpdateDataValidationMutation, type IAddDataValidationMutationParams, type IRemoveDataValidationMutationParams, type IUpdateDataValidationMutationParams, } from './commands/mutations/data-validation.mutation';
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(s,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/sheets"],n):(s=typeof globalThis<"u"?globalThis:s||self,n(s.UniverDataValidation={},s.UniverCore,s["@wendellhu/redi"],s.rxjs,s.UniverSheets))})(this,function(s,n,_,f,T){"use strict";var _a=Object.defineProperty;var ma=(s,n,_)=>n in s?_a(s,n,{enumerable:!0,configurable:!0,writable:!0,value:_}):s[n]=_;var h=(s,n,_)=>ma(s,typeof n!="symbol"?n+"":n,_);var D;var N=(r=>(r.SHEET="sheet",r))(N||{});class S{constructor(){h(this,"_validatorByScopes",new Map);h(this,"_validatorMap",new Map);h(this,"_validatorsChange$",new f.BehaviorSubject(void 0));h(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(e,a){this._validatorByScopes.has(a)||this._validatorByScopes.set(a,[]);const t=this._validatorByScopes.get(a);if(t.findIndex(i=>i.id===e.id)>-1)throw new Error(`Validator item with the same id ${e.id} has already been added!`);t.push(e)}_removeValidatorFromScope(e,a){const t=this._validatorByScopes.get(a);if(!t)return;const i=t.findIndex(o=>o.id===e.id);i>-1&&t.splice(i,1)}register(e){return this._validatorMap.set(e.id,e),Array.isArray(e.scopes)?e.scopes.forEach(a=>{this._addValidatorToScope(e,a)}):this._addValidatorToScope(e,e.scopes),this._validatorsChange$.next(),n.toDisposable(()=>{this._validatorMap.delete(e.id),Array.isArray(e.scopes)?e.scopes.forEach(a=>{this._removeValidatorFromScope(e,a)}):this._removeValidatorFromScope(e,e.scopes),this._validatorsChange$.next()})}getValidatorItem(e){return this._validatorMap.get(e)}getValidatorsByScope(e){return this._validatorByScopes.get(e)}}var m=(r=>(r[r.SETTING=0]="SETTING",r[r.RANGE=1]="RANGE",r[r.OPTIONS=2]="OPTIONS",r))(m||{});function M(r){return{type:r.type,operator:r.operator,formula1:r.formula1,formula2:r.formula2,allowBlank:r.allowBlank}}function I(r){return{error:r.error,errorStyle:r.errorStyle,errorTitle:r.errorTitle,imeMode:r.imeMode,prompt:r.prompt,promptTitle:r.promptTitle,showDropDown:r.showDropDown,showErrorMessage:r.showErrorMessage,showInputMessage:r.showInputMessage,renderMode:r.renderMode}}function H(r){const a=r.get(T.SelectionManagerService).getSelectionRanges();return{uid:n.Tools.generateRandomId(6),type:n.DataValidationType.DECIMAL,operator:n.DataValidationOperator.EQUAL,formula1:"100",ranges:a!=null?a:[{startColumn:0,endColumn:0,startRow:0,endRow:0}]}}class U extends n.Disposable{constructor(a,t,i){super();h(this,"_dataValidations");h(this,"_dataValidationMap",new Map);h(this,"_dataValidations$",new f.Subject);h(this,"unitId");h(this,"subUnitId");h(this,"dataValidations$",this._dataValidations$.asObservable());this.unitId=a,this.subUnitId=t,i&&(this._insertRules(i),this._notice(),this.disposeWithMe({dispose:()=>{this._dataValidations$.complete()}}))}_notice(){this._dataValidations$.next(this._dataValidations)}_insertRules(a){this._dataValidations=a,a.forEach(t=>{this._dataValidationMap.set(t.uid,t)})}getRuleById(a){return this._dataValidationMap.get(a)}getRuleIndex(a){return this._dataValidations.findIndex(t=>t.uid===a)}addRule(a,t){const o=(Array.isArray(a)?a:[a]).filter(d=>!this._dataValidationMap.has(d.uid));typeof t=="number"&&t<this._dataValidations.length?this._dataValidations.splice(t,0,...o):this._dataValidations.push(...o),o.forEach(d=>{this._dataValidationMap.set(d.uid,d)}),this._notice()}removeRule(a){const t=this._dataValidations.findIndex(i=>i.uid===a);t>-1&&(this._dataValidations.splice(t,1),this._dataValidationMap.delete(a),this._notice())}updateRule(a,t){const i=this._dataValidationMap.get(a),o=this._dataValidations.findIndex(l=>a===l.uid);if(!i)throw new Error(`Data validation rule is not found, ruleId: ${a}.`);const d={...i};switch(t.type){case m.RANGE:{d.ranges=t.payload;break}case m.SETTING:{Object.assign(d,M(t.payload));break}case m.OPTIONS:{Object.assign(d,I(t.payload));break}}return this._dataValidations[o]=d,this._dataValidationMap.set(a,d),this._notice(),d}getDataValidations(){return this._dataValidations}toJSON(){return this._dataValidations}validator(a,t,i,o){return n.DataValidationStatus.VALID}}var G=Object.defineProperty,Q=Object.getOwnPropertyDescriptor,W=(r,e,a,t)=>{for(var i=t>1?void 0:t?Q(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&G(e,a,i),i},F=(r,e)=>(a,t)=>e(a,t,r);s.DataValidationModel=class extends n.Disposable{constructor(a){super();h(this,"_model",new Map);h(this,"_managerCreator",(a,t)=>new U(a,t,[]));h(this,"_ruleChange$",new f.Subject);h(this,"_validStatusChange$",new f.Subject);h(this,"ruleChange$",this._ruleChange$.asObservable());h(this,"ruleChangeDebounce$",this.ruleChange$.pipe(f.debounceTime(20)));h(this,"validStatusChange$",this._validStatusChange$.asObservable().pipe(f.debounceTime(20)));this._logService=a,this.disposeWithMe({dispose:()=>{this._ruleChange$.complete(),this._validStatusChange$.complete()}})}setManagerCreator(a){this._managerCreator=a}ensureManager(a,t){this._model.has(a)||this._model.set(a,new Map);const i=this._model.get(a);if(i.has(t))return i.get(t);const o=this._managerCreator(a,t);return i.set(t,o),o}_addRuleSideEffect(a,t,i){this.ensureManager(a,t).getRuleById(i.uid)||this._ruleChange$.next({rule:i,type:"add",unitId:a,subUnitId:t})}addRule(a,t,i,o){try{const d=this.ensureManager(a,t);(Array.isArray(i)?i:[i]).forEach(c=>{this._addRuleSideEffect(a,t,c)}),d.addRule(i,o)}catch(d){this._logService.error(d)}}updateRule(a,t,i,o){try{const l=this.ensureManager(a,t).updateRule(i,o);this._ruleChange$.next({rule:l,type:"update",unitId:a,subUnitId:t})}catch(d){this._logService.error(d)}}removeRule(a,t,i){try{const o=this.ensureManager(a,t),d=o.getRuleById(i);d&&(o.removeRule(i),this._ruleChange$.next({rule:d,type:"remove",unitId:a,subUnitId:t}))}catch(o){this._logService.error(o)}}getRuleById(a,t,i){return this.ensureManager(a,t).getRuleById(i)}getRuleIndex(a,t,i){return this.ensureManager(a,t).getRuleIndex(i)}getRules(a,t){return this.ensureManager(a,t).getDataValidations()}validator(a,t,i){const{unitId:o,subUnitId:d}=i;return this.ensureManager(o,d).validator(a,t,i,(c,u)=>{u&&this._validStatusChange$.next({unitId:o,subUnitId:d,ruleId:t.uid,status:c})})}getUnitRules(a){const t=this._model.get(a);if(!t)return[];const i=[];return t.forEach(o=>{i.push([o.subUnitId,o.getDataValidations()])}),i}deleteUnitRules(a){this._model.delete(a)}getSubUnitIds(a){var t,i;return Array.from((i=(t=this._model.get(a))==null?void 0:t.keys())!=null?i:[])}},s.DataValidationModel=W([F(0,n.ILogService)],s.DataValidationModel);const V={type:n.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t,rule:i,index:o}=e;return r.get(s.DataValidationModel).addRule(a,t,i,o),!0}},v={type:n.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:i}=e,o=r.get(s.DataValidationModel);return Array.isArray(i)?i.forEach(d=>{o.removeRule(a,t,d)}):o.removeRule(a,t,i),!0}},E={type:n.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:i,payload:o}=e;return r.get(s.DataValidationModel).updateRule(a,t,i,o),!0}},C={type:n.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(r,e){if(!e)return!1;const{rule:a,unitId:t,subUnitId:i}=e,o=r.get(n.ICommandService),d=r.get(n.IUndoRedoService),l={...e,rule:{...e.rule,ranges:[e.rule.range]}},c=[{id:V.id,params:l}],u=[{id:v.id,params:{unitId:t,subUnitId:i,ruleId:a.uid}}];return d.pushUndoRedo({unitID:t,redoMutations:c,undoMutations:u}),await o.executeCommand(V.id,l),!0}},J=(r,e)=>{const a=r.get(s.DataValidationModel),{unitId:t,subUnitId:i,ruleId:o}=e;if(Array.isArray(o)){const l=o.map(c=>a.getRuleById(t,i,c)).filter(Boolean);return[{id:V.id,params:{unitId:t,subUnitId:i,rule:l}}]}return[{id:V.id,params:{unitId:t,subUnitId:i,rule:{...a.getRuleById(t,i,o)},index:a.getRuleIndex(t,i,o)}}]},L={type:n.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:i}=e,o=r.get(n.ICommandService),d=r.get(n.IUndoRedoService),l=r.get(s.DataValidationModel),c=[{id:v.id,params:e}],u=[{id:V.id,params:{unitId:a,subUnitId:t,rule:{...l.getRuleById(a,t,i)},index:l.getRuleIndex(a,t,i)}}];return d.pushUndoRedo({undoMutations:u,redoMutations:c,unitID:e.unitId}),o.executeCommand(v.id,e),!0}},w={type:n.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(r,e){if(!e)return!1;const a=r.get(n.ICommandService),t=r.get(n.IUndoRedoService),i=r.get(s.DataValidationModel),{unitId:o,subUnitId:d,ruleId:l,options:c}=e,u=i.getRuleById(o,d,l);if(!u)return!1;const p={unitId:o,subUnitId:d,ruleId:l,payload:{type:m.OPTIONS,payload:c}},g=[{id:E.id,params:p}],O={unitId:o,subUnitId:d,ruleId:l,payload:{type:m.OPTIONS,payload:I(u)}},y=[{id:E.id,params:O}];return t.pushUndoRedo({unitID:o,redoMutations:g,undoMutations:y}),a.executeCommand(E.id,p),!0}},b={type:n.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(r,e){if(!e)return!1;const a=r.get(n.ICommandService),t=r.get(n.IUndoRedoService),i=r.get(s.DataValidationModel),o=r.get(S),{unitId:d,subUnitId:l,ruleId:c,setting:u}=e,p=o.getValidatorItem(u.type);if(!p)return!1;const g=i.getRuleById(d,l,c);if(!g||!p.validatorFormula({...g,...u},d,l).success)return!1;const O={unitId:d,subUnitId:l,ruleId:c,payload:{type:m.SETTING,payload:u}},y=[{id:E.id,params:O}],ha={unitId:d,subUnitId:l,ruleId:c,payload:{type:m.SETTING,payload:M(g)}},pa=[{id:E.id,params:ha}];return t.pushUndoRedo({unitID:d,redoMutations:y,undoMutations:pa}),a.executeCommand(E.id,O),!0}},P={type:n.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t}=e,i=r.get(n.ICommandService),o=r.get(s.DataValidationModel),d=r.get(n.IUndoRedoService),l=[...o.getRules(a,t)],c={unitId:a,subUnitId:t,ruleId:l.map(g=>g.uid)},u=[{id:v.id,params:c}],p=[{id:V.id,params:{unitId:a,subUnitId:t,rule:l}}];return d.pushUndoRedo({redoMutations:u,undoMutations:p,unitID:a}),i.executeCommand(v.id,c),!0}};var z=Object.defineProperty,K=Object.getOwnPropertyDescriptor,X=(r,e,a,t)=>{for(var i=t>1?void 0:t?K(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&z(e,a,i),i},R=(r,e)=>(a,t)=>e(a,t,r);const Y="SHEET_DATA_VALIDATION_PLUGIN";s.DataValidationResourceController=class extends n.Disposable{constructor(e,a,t){super(),this._resourceManagerService=e,this._univerInstanceService=a,this._dataValidationModel=t,this._initSnapshot()}_initSnapshot(){const e=t=>{const i=this._dataValidationModel.getUnitRules(t),o={};return i?(i.forEach(([d,l])=>{o[d]=l}),JSON.stringify(o)):""},a=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Y,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:t=>e(t),parseJson:t=>a(t),onUnLoad:t=>{this._dataValidationModel.deleteUnitRules(t)},onLoad:(t,i)=>{Object.keys(i).forEach(o=>{i[o].forEach(l=>{this._dataValidationModel.addRule(t,o,l)})})}}))}},s.DataValidationResourceController=X([n.OnLifecycle(n.LifecycleStages.Ready,s.DataValidationResourceController),R(0,n.IResourceManagerService),R(1,n.IUniverInstanceService),R(2,_.Inject(s.DataValidationModel))],s.DataValidationResourceController);var Z=Object.defineProperty,x=Object.getOwnPropertyDescriptor,k=(r,e,a,t)=>{for(var i=t>1?void 0:t?x(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&Z(e,a,i),i},A=(r,e)=>(a,t)=>e(a,t,r);s.DataValidationSheetController=class extends n.Disposable{constructor(e,a,t){super(),this._sheetInterceptorService=e,this._univerInstanceService=a,this._dataValidationModel=t,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{var a;if(e.id===T.RemoveSheetCommand.id){const t=e.params,i=t.unitId||this._univerInstanceService.getCurrentUnitForType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),o=this._univerInstanceService.getUniverSheetInstance(i);if(!o)return{redos:[],undos:[]};const d=t.subUnitId||((a=o.getActiveSheet())==null?void 0:a.getSheetId());if(!d)return{redos:[],undos:[]};const l=this._dataValidationModel.ensureManager(i,d);if(!l)return{redos:[],undos:[]};const c=l.getDataValidations(),u=c.map(O=>O.uid),p={unitId:i,subUnitId:d,ruleId:u},g={unitId:i,subUnitId:d,rule:c};return{redos:[{id:v.id,params:p}],undos:[{id:V.id,params:g}]}}return{redos:[],undos:[]}}}))}},s.DataValidationSheetController=k([n.OnLifecycle(n.LifecycleStages.Ready,s.DataValidationSheetController),A(0,_.Inject(T.SheetInterceptorService)),A(1,_.Inject(n.IUniverInstanceService)),A(2,_.Inject(s.DataValidationModel))],s.DataValidationSheetController);var aa=Object.defineProperty,ta=Object.getOwnPropertyDescriptor,ea=(r,e,a,t)=>{for(var i=t>1?void 0:t?ta(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&aa(e,a,i),i},B=(r,e)=>(a,t)=>e(a,t,r);const ia="UNIVER_DATA_VALIDATION_PLUGIN";s.UniverDataValidationPlugin=(D=class extends n.Plugin{constructor(e,a,t){super(),this._injector=a,this._commandService=t}onStarting(e){[[s.DataValidationModel],[S],[s.DataValidationResourceController],[s.DataValidationSheetController]].forEach(a=>{e.add(a)}),[C,P,w,b,L,V,E,v].forEach(a=>{this._commandService.registerCommand(a)})}},h(D,"pluginName",ia),h(D,"type",n.UniverInstanceType.UNIVER_SHEET),D),s.UniverDataValidationPlugin=ea([B(1,_.Inject(_.Injector)),B(2,n.ICommandService)],s.UniverDataValidationPlugin),n.DataValidationOperator.BETWEEN+"",n.DataValidationOperator.EQUAL+"",n.DataValidationOperator.GREATER_THAN+"",n.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",n.DataValidationOperator.LESS_THAN+"",n.DataValidationOperator.LESS_THAN_OR_EQUAL+"",n.DataValidationOperator.NOT_BETWEEN+"",n.DataValidationOperator.NOT_EQUAL+"";const na={[n.DataValidationOperator.BETWEEN]:"dataValidation.ruleName.between",[n.DataValidationOperator.EQUAL]:"dataValidation.ruleName.equal",[n.DataValidationOperator.GREATER_THAN]:"dataValidation.ruleName.greaterThan",[n.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.ruleName.greaterThanOrEqual",[n.DataValidationOperator.LESS_THAN]:"dataValidation.ruleName.lessThan",[n.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.ruleName.lessThanOrEqual",[n.DataValidationOperator.NOT_BETWEEN]:"dataValidation.ruleName.notBetween",[n.DataValidationOperator.NOT_EQUAL]:"dataValidation.ruleName.notEqual"},ra={[n.DataValidationOperator.BETWEEN]:"dataValidation.errorMsg.between",[n.DataValidationOperator.EQUAL]:"dataValidation.errorMsg.equal",[n.DataValidationOperator.GREATER_THAN]:"dataValidation.errorMsg.greaterThan",[n.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.errorMsg.greaterThanOrEqual",[n.DataValidationOperator.LESS_THAN]:"dataValidation.errorMsg.lessThan",[n.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.errorMsg.lessThanOrEqual",[n.DataValidationOperator.NOT_BETWEEN]:"dataValidation.errorMsg.notBetween",[n.DataValidationOperator.NOT_EQUAL]:"dataValidation.errorMsg.notEqual"},oa={[n.DataValidationOperator.BETWEEN]:"dataValidation.textLength.errorMsg.between",[n.DataValidationOperator.EQUAL]:"dataValidation.textLength.errorMsg.equal",[n.DataValidationOperator.GREATER_THAN]:"dataValidation.textLength.errorMsg.greaterThan",[n.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.greaterThanOrEqual",[n.DataValidationOperator.LESS_THAN]:"dataValidation.textLength.errorMsg.lessThan",[n.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.lessThanOrEqual",[n.DataValidationOperator.NOT_BETWEEN]:"dataValidation.textLength.errorMsg.notBetween",[n.DataValidationOperator.NOT_EQUAL]:"dataValidation.textLength.errorMsg.notEqual"};var da=Object.defineProperty,sa=Object.getOwnPropertyDescriptor,la=(r,e,a,t)=>{for(var i=t>1?void 0:t?sa(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&da(e,a,i),i},$=(r,e)=>(a,t)=>e(a,t,r);const q="{FORMULA1}",j="{FORMULA2}",ua={[n.DataValidationOperator.BETWEEN]:"dataValidation.operators.between",[n.DataValidationOperator.EQUAL]:"dataValidation.operators.equal",[n.DataValidationOperator.GREATER_THAN]:"dataValidation.operators.greaterThan",[n.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.operators.greaterThanOrEqual",[n.DataValidationOperator.LESS_THAN]:"dataValidation.operators.lessThan",[n.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.operators.lessThanOrEqual",[n.DataValidationOperator.NOT_BETWEEN]:"dataValidation.operators.notBetween",[n.DataValidationOperator.NOT_EQUAL]:"dataValidation.operators.notEqual"};s.BaseDataValidator=class{constructor(e,a){h(this,"canvasRender",null);h(this,"dropdown");h(this,"optionsInput");this.localeService=e,this.injector=a}get operatorNames(){return this.operators.map(e=>this.localeService.t(ua[e]))}get titleStr(){return this.localeService.t(this.title)}skipDefaultFontRender(e,a,t){return!1}generateRuleName(e){var t,i;if(!e.operator)return this.titleStr;const a=this.localeService.t(na[e.operator]).replace(q,(t=e.formula1)!=null?t:"").replace(j,(i=e.formula2)!=null?i:"");return`${this.titleStr} ${a}`}generateRuleErrorMessage(e){var t,i;return e.operator?`${this.localeService.t(ra[e.operator]).replace(q,(t=e.formula1)!=null?t:"").replace(j,(i=e.formula2)!=null?i:"")}`:this.titleStr}getRuleFinalError(e){return e.showInputMessage&&e.error?e.error:this.generateRuleErrorMessage(e)}isEmptyCellValue(e){return e===""||e===void 0||e===null}async isValidType(e,a,t){return!0}transform(e,a,t){return e}async validatorIsEqual(e,a,t){return!0}async validatorIsNotEqual(e,a,t){return!0}async validatorIsBetween(e,a,t){return!0}async validatorIsNotBetween(e,a,t){return!0}async validatorIsGreaterThan(e,a,t){return!0}async validatorIsGreaterThanOrEqual(e,a,t){return!0}async validatorIsLessThan(e,a,t){return!0}async validatorIsLessThanOrEqual(e,a,t){return!0}async validator(e,a){const{value:t,unitId:i,subUnitId:o}=e,d=this.isEmptyCellValue(t),{allowBlank:l=!0,operator:c}=a;if(d)return l;const u=await this.parseFormula(a,i,o);if(!await this.isValidType(e,u,a))return!1;if(!n.Tools.isDefine(c))return!0;const p=this.transform(e,u,a);switch(c){case n.DataValidationOperator.BETWEEN:return this.validatorIsBetween(p,u,a);case n.DataValidationOperator.EQUAL:return this.validatorIsEqual(p,u,a);case n.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(p,u,a);case n.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(p,u,a);case n.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(p,u,a);case n.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(p,u,a);case n.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(p,u,a);case n.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(p,u,a);default:throw new Error("Unknown operator.")}}},s.BaseDataValidator=la([$(0,_.Inject(n.LocaleService)),$(1,_.Inject(_.Injector))],s.BaseDataValidator);const ca=[n.DataValidationOperator.BETWEEN,n.DataValidationOperator.NOT_BETWEEN];s.AddDataValidationCommand=C,s.AddDataValidationMutation=V,s.DataValidationManager=U,s.DataValidatorRegistryScope=N,s.DataValidatorRegistryService=S,s.RemoveAllDataValidationCommand=P,s.RemoveDataValidationCommand=L,s.RemoveDataValidationMutation=v,s.TWO_FORMULA_OPERATOR_COUNT=ca,s.TextLengthErrorTitleMap=oa,s.UpdateDataValidationMutation=E,s.UpdateDataValidationOptionsCommand=w,s.UpdateDataValidationSettingCommand=b,s.UpdateRuleType=m,s.createDefaultNewRule=H,s.getRuleOptions=I,s.getRuleSetting=M,s.removeDataValidationUndoFactory=J,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
1
+ (function(s,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/sheets"],n):(s=typeof globalThis<"u"?globalThis:s||self,n(s.UniverDataValidation={},s.UniverCore,s["@wendellhu/redi"],s.rxjs,s.UniverSheets))})(this,function(s,n,m,S,T){"use strict";var ga=Object.defineProperty;var Va=(s,n,m)=>n in s?ga(s,n,{enumerable:!0,configurable:!0,writable:!0,value:m}):s[n]=m;var h=(s,n,m)=>Va(s,typeof n!="symbol"?n+"":n,m);var O;var C=(r=>(r.SHEET="sheet",r))(C||{});class M{constructor(){h(this,"_validatorByScopes",new Map);h(this,"_validatorMap",new Map);h(this,"_validatorsChange$",new S.BehaviorSubject(void 0));h(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(e,a){this._validatorByScopes.has(a)||this._validatorByScopes.set(a,[]);const t=this._validatorByScopes.get(a);if(t.findIndex(i=>i.id===e.id)>-1)throw new Error(`Validator item with the same id ${e.id} has already been added!`);t.push(e)}_removeValidatorFromScope(e,a){const t=this._validatorByScopes.get(a);if(!t)return;const i=t.findIndex(o=>o.id===e.id);i>-1&&t.splice(i,1)}register(e){return this._validatorMap.set(e.id,e),Array.isArray(e.scopes)?e.scopes.forEach(a=>{this._addValidatorToScope(e,a)}):this._addValidatorToScope(e,e.scopes),this._validatorsChange$.next(),n.toDisposable(()=>{this._validatorMap.delete(e.id),Array.isArray(e.scopes)?e.scopes.forEach(a=>{this._removeValidatorFromScope(e,a)}):this._removeValidatorFromScope(e,e.scopes),this._validatorsChange$.next()})}getValidatorItem(e){return this._validatorMap.get(e)}getValidatorsByScope(e){return this._validatorByScopes.get(e)}}var g=(r=>(r[r.SETTING=0]="SETTING",r[r.RANGE=1]="RANGE",r[r.OPTIONS=2]="OPTIONS",r))(g||{});function I(r){return{type:r.type,operator:r.operator,formula1:r.formula1,formula2:r.formula2,allowBlank:r.allowBlank}}function R(r){return{error:r.error,errorStyle:r.errorStyle,errorTitle:r.errorTitle,imeMode:r.imeMode,prompt:r.prompt,promptTitle:r.promptTitle,showDropDown:r.showDropDown,showErrorMessage:r.showErrorMessage,showInputMessage:r.showInputMessage,renderMode:r.renderMode}}function G(r){const a=r.get(T.SelectionManagerService).getSelectionRanges();return{uid:n.Tools.generateRandomId(6),type:n.DataValidationType.DECIMAL,operator:n.DataValidationOperator.EQUAL,formula1:"100",ranges:a!=null?a:[{startColumn:0,endColumn:0,startRow:0,endRow:0}]}}class U extends n.Disposable{constructor(a,t,i){super();h(this,"_dataValidations");h(this,"_dataValidationMap",new Map);h(this,"_dataValidations$",new S.Subject);h(this,"unitId");h(this,"subUnitId");h(this,"dataValidations$",this._dataValidations$.asObservable());this.unitId=a,this.subUnitId=t,i&&(this._insertRules(i),this._notice(),this.disposeWithMe({dispose:()=>{this._dataValidations$.complete()}}))}_notice(){this._dataValidations$.next(this._dataValidations)}_insertRules(a){this._dataValidations=a,a.forEach(t=>{this._dataValidationMap.set(t.uid,t)})}getRuleById(a){return this._dataValidationMap.get(a)}getRuleIndex(a){return this._dataValidations.findIndex(t=>t.uid===a)}addRule(a,t){const o=(Array.isArray(a)?a:[a]).filter(d=>!this._dataValidationMap.has(d.uid));typeof t=="number"&&t<this._dataValidations.length?this._dataValidations.splice(t,0,...o):this._dataValidations.push(...o),o.forEach(d=>{this._dataValidationMap.set(d.uid,d)}),this._notice()}removeRule(a){const t=this._dataValidations.findIndex(i=>i.uid===a);t>-1&&(this._dataValidations.splice(t,1),this._dataValidationMap.delete(a),this._notice())}updateRule(a,t){const i=this._dataValidationMap.get(a),o=this._dataValidations.findIndex(l=>a===l.uid);if(!i)throw new Error(`Data validation rule is not found, ruleId: ${a}.`);const d={...i};switch(t.type){case g.RANGE:{d.ranges=t.payload;break}case g.SETTING:{Object.assign(d,I(t.payload));break}case g.OPTIONS:{Object.assign(d,R(t.payload));break}}return this._dataValidations[o]=d,this._dataValidationMap.set(a,d),this._notice(),d}getDataValidations(){return this._dataValidations}toJSON(){return this._dataValidations}validator(a,t,i,o){return n.DataValidationStatus.VALID}}var Q=Object.defineProperty,W=Object.getOwnPropertyDescriptor,F=(r,e,a,t)=>{for(var i=t>1?void 0:t?W(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&Q(e,a,i),i},J=(r,e)=>(a,t)=>e(a,t,r);s.DataValidationModel=class extends n.Disposable{constructor(a){super();h(this,"_model",new Map);h(this,"_managerCreator",(a,t)=>new U(a,t,[]));h(this,"_ruleChange$",new S.Subject);h(this,"_validStatusChange$",new S.Subject);h(this,"ruleChange$",this._ruleChange$.asObservable());h(this,"ruleChangeDebounce$",this.ruleChange$.pipe(S.debounceTime(20)));h(this,"validStatusChange$",this._validStatusChange$.asObservable().pipe(S.debounceTime(20)));this._logService=a,this.disposeWithMe({dispose:()=>{this._ruleChange$.complete(),this._validStatusChange$.complete()}})}setManagerCreator(a){this._managerCreator=a}ensureManager(a,t){this._model.has(a)||this._model.set(a,new Map);const i=this._model.get(a);if(i.has(t))return i.get(t);const o=this._managerCreator(a,t);return i.set(t,o),o}_addRuleSideEffect(a,t,i){this.ensureManager(a,t).getRuleById(i.uid)||this._ruleChange$.next({rule:i,type:"add",unitId:a,subUnitId:t})}addRule(a,t,i,o){try{const d=this.ensureManager(a,t);(Array.isArray(i)?i:[i]).forEach(u=>{this._addRuleSideEffect(a,t,u)}),d.addRule(i,o)}catch(d){this._logService.error(d)}}updateRule(a,t,i,o){try{const l=this.ensureManager(a,t).updateRule(i,o);this._ruleChange$.next({rule:l,type:"update",unitId:a,subUnitId:t})}catch(d){this._logService.error(d)}}removeRule(a,t,i){try{const o=this.ensureManager(a,t),d=o.getRuleById(i);d&&(o.removeRule(i),this._ruleChange$.next({rule:d,type:"remove",unitId:a,subUnitId:t}))}catch(o){this._logService.error(o)}}getRuleById(a,t,i){return this.ensureManager(a,t).getRuleById(i)}getRuleIndex(a,t,i){return this.ensureManager(a,t).getRuleIndex(i)}getRules(a,t){return this.ensureManager(a,t).getDataValidations()}validator(a,t,i){const{unitId:o,subUnitId:d}=i;return this.ensureManager(o,d).validator(a,t,i,(u,c)=>{c&&this._validStatusChange$.next({unitId:o,subUnitId:d,ruleId:t.uid,status:u})})}getUnitRules(a){const t=this._model.get(a);if(!t)return[];const i=[];return t.forEach(o=>{i.push([o.subUnitId,o.getDataValidations()])}),i}deleteUnitRules(a){this._model.delete(a)}getSubUnitIds(a){var t,i;return Array.from((i=(t=this._model.get(a))==null?void 0:t.keys())!=null?i:[])}},s.DataValidationModel=F([J(0,n.ILogService)],s.DataValidationModel);const V={type:n.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t,rule:i,index:o}=e;return r.get(s.DataValidationModel).addRule(a,t,i,o),!0}},v={type:n.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:i}=e,o=r.get(s.DataValidationModel);return Array.isArray(i)?i.forEach(d=>{o.removeRule(a,t,d)}):o.removeRule(a,t,i),!0}},E={type:n.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:i,payload:o}=e;return r.get(s.DataValidationModel).updateRule(a,t,i,o),!0}},L={type:n.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(r,e){if(r.get(n.ILogService).warn("[Deprecated] AddDataValidationCommand is deprecated, please use AddSheetDataValidationCommand in @univerjs/sheets-data-validation instead!"),!e)return!1;const{rule:t,unitId:i,subUnitId:o}=e,d=r.get(n.ICommandService),l=r.get(n.IUndoRedoService),u={...e,rule:{...e.rule,ranges:[e.rule.range]}},c=[{id:V.id,params:u}],p=[{id:v.id,params:{unitId:i,subUnitId:o,ruleId:t.uid}}];return l.pushUndoRedo({unitID:i,redoMutations:c,undoMutations:p}),await d.executeCommand(V.id,u),!0}},z=(r,e)=>{const a=r.get(s.DataValidationModel),{unitId:t,subUnitId:i,ruleId:o}=e;if(Array.isArray(o)){const l=o.map(u=>a.getRuleById(t,i,u)).filter(Boolean);return[{id:V.id,params:{unitId:t,subUnitId:i,rule:l}}]}return[{id:V.id,params:{unitId:t,subUnitId:i,rule:{...a.getRuleById(t,i,o)},index:a.getRuleIndex(t,i,o)}}]},w={type:n.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t,ruleId:i}=e,o=r.get(n.ICommandService),d=r.get(n.IUndoRedoService),l=r.get(s.DataValidationModel),u=[{id:v.id,params:e}],c=[{id:V.id,params:{unitId:a,subUnitId:t,rule:{...l.getRuleById(a,t,i)},index:l.getRuleIndex(a,t,i)}}];return d.pushUndoRedo({undoMutations:c,redoMutations:u,unitID:e.unitId}),o.executeCommand(v.id,e),!0}},b={type:n.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(r,e){if(r.get(n.ILogService).warn("[Deprecated] UpdateDataValidationOptionsCommand is deprecated, please use UpdateSheetDataValidationOptionsCommand in @univerjs/sheets-data-validation instead!"),!e)return!1;const t=r.get(n.ICommandService),i=r.get(n.IUndoRedoService),o=r.get(s.DataValidationModel),{unitId:d,subUnitId:l,ruleId:u,options:c}=e,p=o.getRuleById(d,l,u);if(!p)return!1;const _={unitId:d,subUnitId:l,ruleId:u,payload:{type:g.OPTIONS,payload:c}},D=[{id:E.id,params:_}],f={unitId:d,subUnitId:l,ruleId:u,payload:{type:g.OPTIONS,payload:R(p)}},N=[{id:E.id,params:f}];return i.pushUndoRedo({unitID:d,redoMutations:D,undoMutations:N}),t.executeCommand(E.id,_),!0}},P={type:n.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(r,e){if(r.get(n.ILogService).warn("[Deprecated] UpdateDataValidationSettingCommand is deprecated, please use UpdateSheetDataValidationSettingCommand in @univerjs/sheets-data-validation instead!"),!e)return!1;const t=r.get(n.ICommandService),i=r.get(n.IUndoRedoService),o=r.get(s.DataValidationModel),d=r.get(M),{unitId:l,subUnitId:u,ruleId:c,setting:p}=e,_=d.getValidatorItem(p.type);if(!_)return!1;const D=o.getRuleById(l,u,c);if(!D||!_.validatorFormula({...D,...p},l,u).success)return!1;const f={unitId:l,subUnitId:u,ruleId:c,payload:{type:g.SETTING,payload:p}},N=[{id:E.id,params:f}],pa={unitId:l,subUnitId:u,ruleId:c,payload:{type:g.SETTING,payload:I(D)}},ma=[{id:E.id,params:pa}];return i.pushUndoRedo({unitID:l,redoMutations:N,undoMutations:ma}),t.executeCommand(E.id,f),!0}},B={type:n.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(r,e){if(!e)return!1;const{unitId:a,subUnitId:t}=e,i=r.get(n.ICommandService),o=r.get(s.DataValidationModel),d=r.get(n.IUndoRedoService),l=[...o.getRules(a,t)],u={unitId:a,subUnitId:t,ruleId:l.map(_=>_.uid)},c=[{id:v.id,params:u}],p=[{id:V.id,params:{unitId:a,subUnitId:t,rule:l}}];return d.pushUndoRedo({redoMutations:c,undoMutations:p,unitID:a}),i.executeCommand(v.id,u),!0}};var K=Object.defineProperty,X=Object.getOwnPropertyDescriptor,Y=(r,e,a,t)=>{for(var i=t>1?void 0:t?X(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&K(e,a,i),i},A=(r,e)=>(a,t)=>e(a,t,r);const Z="SHEET_DATA_VALIDATION_PLUGIN";s.DataValidationResourceController=class extends n.Disposable{constructor(e,a,t){super(),this._resourceManagerService=e,this._univerInstanceService=a,this._dataValidationModel=t,this._initSnapshot()}_initSnapshot(){const e=t=>{const i=this._dataValidationModel.getUnitRules(t),o={};return i?(i.forEach(([d,l])=>{o[d]=l}),JSON.stringify(o)):""},a=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Z,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:t=>e(t),parseJson:t=>a(t),onUnLoad:t=>{this._dataValidationModel.deleteUnitRules(t)},onLoad:(t,i)=>{Object.keys(i).forEach(o=>{i[o].forEach(l=>{this._dataValidationModel.addRule(t,o,l)})})}}))}},s.DataValidationResourceController=Y([n.OnLifecycle(n.LifecycleStages.Ready,s.DataValidationResourceController),A(0,n.IResourceManagerService),A(1,n.IUniverInstanceService),A(2,m.Inject(s.DataValidationModel))],s.DataValidationResourceController);var x=Object.defineProperty,k=Object.getOwnPropertyDescriptor,aa=(r,e,a,t)=>{for(var i=t>1?void 0:t?k(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&x(e,a,i),i},y=(r,e)=>(a,t)=>e(a,t,r);s.DataValidationSheetController=class extends n.Disposable{constructor(e,a,t){super(),this._sheetInterceptorService=e,this._univerInstanceService=a,this._dataValidationModel=t,this._initSheetChange()}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{var a;if(e.id===T.RemoveSheetCommand.id){const t=e.params,i=t.unitId||this._univerInstanceService.getCurrentUnitForType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),o=this._univerInstanceService.getUniverSheetInstance(i);if(!o)return{redos:[],undos:[]};const d=t.subUnitId||((a=o.getActiveSheet())==null?void 0:a.getSheetId());if(!d)return{redos:[],undos:[]};const l=this._dataValidationModel.ensureManager(i,d);if(!l)return{redos:[],undos:[]};const u=l.getDataValidations(),c=u.map(D=>D.uid),p={unitId:i,subUnitId:d,ruleId:c},_={unitId:i,subUnitId:d,rule:u};return{redos:[{id:v.id,params:p}],undos:[{id:V.id,params:_}]}}return{redos:[],undos:[]}}}))}},s.DataValidationSheetController=aa([n.OnLifecycle(n.LifecycleStages.Ready,s.DataValidationSheetController),y(0,m.Inject(T.SheetInterceptorService)),y(1,m.Inject(n.IUniverInstanceService)),y(2,m.Inject(s.DataValidationModel))],s.DataValidationSheetController);var ta=Object.defineProperty,ea=Object.getOwnPropertyDescriptor,ia=(r,e,a,t)=>{for(var i=t>1?void 0:t?ea(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&ta(e,a,i),i},$=(r,e)=>(a,t)=>e(a,t,r);const na="UNIVER_DATA_VALIDATION_PLUGIN";s.UniverDataValidationPlugin=(O=class extends n.Plugin{constructor(e,a,t){super(),this._injector=a,this._commandService=t}onStarting(e){[[s.DataValidationModel],[M],[s.DataValidationResourceController],[s.DataValidationSheetController]].forEach(a=>{e.add(a)}),[L,B,b,P,w,V,E,v].forEach(a=>{this._commandService.registerCommand(a)})}},h(O,"pluginName",na),h(O,"type",n.UniverInstanceType.UNIVER_SHEET),O),s.UniverDataValidationPlugin=ia([$(1,m.Inject(m.Injector)),$(2,n.ICommandService)],s.UniverDataValidationPlugin),n.DataValidationOperator.BETWEEN+"",n.DataValidationOperator.EQUAL+"",n.DataValidationOperator.GREATER_THAN+"",n.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",n.DataValidationOperator.LESS_THAN+"",n.DataValidationOperator.LESS_THAN_OR_EQUAL+"",n.DataValidationOperator.NOT_BETWEEN+"",n.DataValidationOperator.NOT_EQUAL+"";const ra={[n.DataValidationOperator.BETWEEN]:"dataValidation.ruleName.between",[n.DataValidationOperator.EQUAL]:"dataValidation.ruleName.equal",[n.DataValidationOperator.GREATER_THAN]:"dataValidation.ruleName.greaterThan",[n.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.ruleName.greaterThanOrEqual",[n.DataValidationOperator.LESS_THAN]:"dataValidation.ruleName.lessThan",[n.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.ruleName.lessThanOrEqual",[n.DataValidationOperator.NOT_BETWEEN]:"dataValidation.ruleName.notBetween",[n.DataValidationOperator.NOT_EQUAL]:"dataValidation.ruleName.notEqual"},oa={[n.DataValidationOperator.BETWEEN]:"dataValidation.errorMsg.between",[n.DataValidationOperator.EQUAL]:"dataValidation.errorMsg.equal",[n.DataValidationOperator.GREATER_THAN]:"dataValidation.errorMsg.greaterThan",[n.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.errorMsg.greaterThanOrEqual",[n.DataValidationOperator.LESS_THAN]:"dataValidation.errorMsg.lessThan",[n.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.errorMsg.lessThanOrEqual",[n.DataValidationOperator.NOT_BETWEEN]:"dataValidation.errorMsg.notBetween",[n.DataValidationOperator.NOT_EQUAL]:"dataValidation.errorMsg.notEqual"},da={[n.DataValidationOperator.BETWEEN]:"dataValidation.textLength.errorMsg.between",[n.DataValidationOperator.EQUAL]:"dataValidation.textLength.errorMsg.equal",[n.DataValidationOperator.GREATER_THAN]:"dataValidation.textLength.errorMsg.greaterThan",[n.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.greaterThanOrEqual",[n.DataValidationOperator.LESS_THAN]:"dataValidation.textLength.errorMsg.lessThan",[n.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.lessThanOrEqual",[n.DataValidationOperator.NOT_BETWEEN]:"dataValidation.textLength.errorMsg.notBetween",[n.DataValidationOperator.NOT_EQUAL]:"dataValidation.textLength.errorMsg.notEqual"};var sa=Object.defineProperty,la=Object.getOwnPropertyDescriptor,ua=(r,e,a,t)=>{for(var i=t>1?void 0:t?la(e,a):e,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(e,a,i):d(i))||i);return t&&i&&sa(e,a,i),i},j=(r,e)=>(a,t)=>e(a,t,r);const q="{FORMULA1}",H="{FORMULA2}",ca={[n.DataValidationOperator.BETWEEN]:"dataValidation.operators.between",[n.DataValidationOperator.EQUAL]:"dataValidation.operators.equal",[n.DataValidationOperator.GREATER_THAN]:"dataValidation.operators.greaterThan",[n.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.operators.greaterThanOrEqual",[n.DataValidationOperator.LESS_THAN]:"dataValidation.operators.lessThan",[n.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.operators.lessThanOrEqual",[n.DataValidationOperator.NOT_BETWEEN]:"dataValidation.operators.notBetween",[n.DataValidationOperator.NOT_EQUAL]:"dataValidation.operators.notEqual"};s.BaseDataValidator=class{constructor(e,a){h(this,"canvasRender",null);h(this,"dropdown");h(this,"optionsInput");this.localeService=e,this.injector=a}get operatorNames(){return this.operators.map(e=>this.localeService.t(ca[e]))}get titleStr(){return this.localeService.t(this.title)}skipDefaultFontRender(e,a,t){return!1}generateRuleName(e){var t,i;if(!e.operator)return this.titleStr;const a=this.localeService.t(ra[e.operator]).replace(q,(t=e.formula1)!=null?t:"").replace(H,(i=e.formula2)!=null?i:"");return`${this.titleStr} ${a}`}generateRuleErrorMessage(e){var t,i;return e.operator?`${this.localeService.t(oa[e.operator]).replace(q,(t=e.formula1)!=null?t:"").replace(H,(i=e.formula2)!=null?i:"")}`:this.titleStr}getRuleFinalError(e){return e.showInputMessage&&e.error?e.error:this.generateRuleErrorMessage(e)}isEmptyCellValue(e){return e===""||e===void 0||e===null}async isValidType(e,a,t){return!0}transform(e,a,t){return e}async validatorIsEqual(e,a,t){return!0}async validatorIsNotEqual(e,a,t){return!0}async validatorIsBetween(e,a,t){return!0}async validatorIsNotBetween(e,a,t){return!0}async validatorIsGreaterThan(e,a,t){return!0}async validatorIsGreaterThanOrEqual(e,a,t){return!0}async validatorIsLessThan(e,a,t){return!0}async validatorIsLessThanOrEqual(e,a,t){return!0}async validator(e,a){const{value:t,unitId:i,subUnitId:o}=e,d=this.isEmptyCellValue(t),{allowBlank:l=!0,operator:u}=a;if(d)return l;const c=await this.parseFormula(a,i,o);if(!await this.isValidType(e,c,a))return!1;if(!n.Tools.isDefine(u))return!0;const p=this.transform(e,c,a);switch(u){case n.DataValidationOperator.BETWEEN:return this.validatorIsBetween(p,c,a);case n.DataValidationOperator.EQUAL:return this.validatorIsEqual(p,c,a);case n.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(p,c,a);case n.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(p,c,a);case n.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(p,c,a);case n.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(p,c,a);case n.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(p,c,a);case n.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(p,c,a);default:throw new Error("Unknown operator.")}}},s.BaseDataValidator=ua([j(0,m.Inject(n.LocaleService)),j(1,m.Inject(m.Injector))],s.BaseDataValidator);const ha=[n.DataValidationOperator.BETWEEN,n.DataValidationOperator.NOT_BETWEEN];s.AddDataValidationCommand=L,s.AddDataValidationMutation=V,s.DataValidationManager=U,s.DataValidatorRegistryScope=C,s.DataValidatorRegistryService=M,s.RemoveAllDataValidationCommand=B,s.RemoveDataValidationCommand=w,s.RemoveDataValidationMutation=v,s.TWO_FORMULA_OPERATOR_COUNT=ha,s.TextLengthErrorTitleMap=da,s.UpdateDataValidationMutation=E,s.UpdateDataValidationOptionsCommand=b,s.UpdateDataValidationSettingCommand=P,s.UpdateRuleType=g,s.createDefaultNewRule=G,s.getRuleOptions=R,s.getRuleSetting=I,s.removeDataValidationUndoFactory=z,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/data-validation",
3
- "version": "0.1.16",
3
+ "version": "0.2.0",
4
4
  "private": false,
5
5
  "description": "Data validation library for Univer",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -49,23 +49,23 @@
49
49
  "lib"
50
50
  ],
51
51
  "peerDependencies": {
52
- "@wendellhu/redi": "0.15.4",
52
+ "@wendellhu/redi": "0.15.5",
53
53
  "rxjs": ">=7.0.0",
54
- "@univerjs/core": "0.1.16",
55
- "@univerjs/sheets": "0.1.16"
54
+ "@univerjs/core": "0.2.0",
55
+ "@univerjs/sheets": "0.2.0"
56
56
  },
57
57
  "dependencies": {
58
- "@univerjs/protocol": "0.1.38-alpha.6"
58
+ "@univerjs/protocol": "0.1.38-alpha.11"
59
59
  },
60
60
  "devDependencies": {
61
- "@wendellhu/redi": "0.15.4",
61
+ "@wendellhu/redi": "0.15.5",
62
62
  "rxjs": "^7.8.1",
63
- "typescript": "^5.4.5",
64
- "vite": "^5.3.1",
63
+ "typescript": "^5.5.3",
64
+ "vite": "^5.3.3",
65
65
  "vitest": "^1.6.0",
66
- "@univerjs/core": "0.1.16",
67
- "@univerjs/shared": "0.1.16",
68
- "@univerjs/sheets": "0.1.16"
66
+ "@univerjs/core": "0.2.0",
67
+ "@univerjs/shared": "0.2.0",
68
+ "@univerjs/sheets": "0.2.0"
69
69
  },
70
70
  "univerSpace": {
71
71
  ".": {