@univerjs/data-validation 0.1.17 → 0.2.1
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 +1 -1
- package/lib/es/index.js +234 -234
- package/lib/types/commands/commands/data-validation.command.d.ts +9 -0
- package/lib/types/index.d.ts +2 -5
- package/lib/umd/index.js +1 -1
- package/package.json +11 -11
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
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { toDisposable as
|
|
5
|
-
import { Inject as
|
|
6
|
-
import { BehaviorSubject as
|
|
7
|
-
import { SelectionManagerService as
|
|
8
|
-
var
|
|
9
|
-
class
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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(),
|
|
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
|
|
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
|
|
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
|
|
71
|
-
const t = a.get(
|
|
70
|
+
function Qe(a) {
|
|
71
|
+
const t = a.get(se).getSelectionRanges();
|
|
72
72
|
return {
|
|
73
|
-
uid:
|
|
74
|
-
type:
|
|
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
|
|
80
|
+
class ce extends O {
|
|
81
81
|
constructor(t, r, n) {
|
|
82
82
|
super();
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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((
|
|
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,
|
|
130
|
+
Object.assign(i, z(r.payload));
|
|
131
131
|
break;
|
|
132
132
|
}
|
|
133
133
|
case g.OPTIONS: {
|
|
134
|
-
Object.assign(i,
|
|
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
|
|
147
|
+
return ae.VALID;
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
-
var
|
|
151
|
-
for (var n = r > 1 ? void 0 : r ?
|
|
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 &&
|
|
154
|
-
},
|
|
155
|
-
let h = class extends
|
|
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
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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((
|
|
194
|
-
this._addRuleSideEffect(e, t,
|
|
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, (
|
|
238
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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:
|
|
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
|
-
},
|
|
307
|
+
}, c = [{
|
|
308
308
|
id: m.id,
|
|
309
309
|
params: d
|
|
310
|
-
}],
|
|
311
|
-
id:
|
|
310
|
+
}], p = [{
|
|
311
|
+
id: S.id,
|
|
312
312
|
params: {
|
|
313
|
-
unitId:
|
|
314
|
-
subUnitId:
|
|
315
|
-
ruleId:
|
|
313
|
+
unitId: n,
|
|
314
|
+
subUnitId: o,
|
|
315
|
+
ruleId: r.uid
|
|
316
316
|
}
|
|
317
317
|
}];
|
|
318
|
-
return
|
|
319
|
-
unitID:
|
|
320
|
-
redoMutations:
|
|
321
|
-
undoMutations:
|
|
322
|
-
}), await
|
|
318
|
+
return l.pushUndoRedo({
|
|
319
|
+
unitID: n,
|
|
320
|
+
redoMutations: c,
|
|
321
|
+
undoMutations: p
|
|
322
|
+
}), await i.executeCommand(m.id, d), !0;
|
|
323
323
|
}
|
|
324
|
-
},
|
|
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
|
|
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:
|
|
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
|
-
},
|
|
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(
|
|
355
|
-
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
|
-
}],
|
|
357
|
+
}], c = [{
|
|
358
358
|
id: m.id,
|
|
359
359
|
params: {
|
|
360
360
|
unitId: t,
|
|
361
361
|
subUnitId: r,
|
|
362
362
|
rule: {
|
|
363
|
-
...
|
|
363
|
+
...l.getRuleById(t, r, n)
|
|
364
364
|
},
|
|
365
|
-
index:
|
|
365
|
+
index: l.getRuleIndex(t, r, n)
|
|
366
366
|
}
|
|
367
367
|
}];
|
|
368
368
|
return i.pushUndoRedo({
|
|
369
|
-
undoMutations:
|
|
370
|
-
redoMutations:
|
|
369
|
+
undoMutations: c,
|
|
370
|
+
redoMutations: d,
|
|
371
371
|
unitID: e.unitId
|
|
372
|
-
}), o.executeCommand(
|
|
372
|
+
}), o.executeCommand(S.id, e), !0;
|
|
373
373
|
}
|
|
374
|
-
},
|
|
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
|
|
381
|
-
if (!
|
|
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:
|
|
385
|
-
subUnitId:
|
|
384
|
+
unitId: i,
|
|
385
|
+
subUnitId: l,
|
|
386
386
|
ruleId: d,
|
|
387
387
|
payload: {
|
|
388
388
|
type: g.OPTIONS,
|
|
389
|
-
payload:
|
|
389
|
+
payload: c
|
|
390
390
|
}
|
|
391
|
-
},
|
|
392
|
-
id:
|
|
391
|
+
}, V = [{
|
|
392
|
+
id: f.id,
|
|
393
393
|
params: _
|
|
394
|
-
}],
|
|
395
|
-
unitId:
|
|
396
|
-
subUnitId:
|
|
394
|
+
}], I = {
|
|
395
|
+
unitId: i,
|
|
396
|
+
subUnitId: l,
|
|
397
397
|
ruleId: d,
|
|
398
398
|
payload: {
|
|
399
399
|
type: g.OPTIONS,
|
|
400
|
-
payload:
|
|
400
|
+
payload: K(p)
|
|
401
401
|
}
|
|
402
|
-
},
|
|
403
|
-
id:
|
|
404
|
-
params:
|
|
402
|
+
}, U = [{
|
|
403
|
+
id: f.id,
|
|
404
|
+
params: I
|
|
405
405
|
}];
|
|
406
|
-
return
|
|
407
|
-
unitID:
|
|
408
|
-
redoMutations:
|
|
409
|
-
undoMutations:
|
|
410
|
-
}),
|
|
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
|
|
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
|
|
422
|
-
if (!
|
|
421
|
+
const V = o.getRuleById(l, d, c);
|
|
422
|
+
if (!V || !_.validatorFormula({ ...V, ...p }, l, d).success)
|
|
423
423
|
return !1;
|
|
424
|
-
const
|
|
425
|
-
unitId:
|
|
424
|
+
const I = {
|
|
425
|
+
unitId: l,
|
|
426
426
|
subUnitId: d,
|
|
427
|
-
ruleId:
|
|
427
|
+
ruleId: c,
|
|
428
428
|
payload: {
|
|
429
429
|
type: g.SETTING,
|
|
430
|
-
payload:
|
|
430
|
+
payload: p
|
|
431
431
|
}
|
|
432
|
-
},
|
|
433
|
-
id:
|
|
434
|
-
params:
|
|
435
|
-
}],
|
|
436
|
-
unitId:
|
|
432
|
+
}, U = [{
|
|
433
|
+
id: f.id,
|
|
434
|
+
params: I
|
|
435
|
+
}], X = {
|
|
436
|
+
unitId: l,
|
|
437
437
|
subUnitId: d,
|
|
438
|
-
ruleId:
|
|
438
|
+
ruleId: c,
|
|
439
439
|
payload: {
|
|
440
440
|
type: g.SETTING,
|
|
441
|
-
payload:
|
|
441
|
+
payload: z(V)
|
|
442
442
|
}
|
|
443
|
-
},
|
|
444
|
-
id:
|
|
445
|
-
params:
|
|
443
|
+
}, Y = [{
|
|
444
|
+
id: f.id,
|
|
445
|
+
params: X
|
|
446
446
|
}];
|
|
447
|
-
return
|
|
448
|
-
unitID:
|
|
449
|
-
redoMutations:
|
|
450
|
-
undoMutations:
|
|
451
|
-
}),
|
|
447
|
+
return n.pushUndoRedo({
|
|
448
|
+
unitID: l,
|
|
449
|
+
redoMutations: U,
|
|
450
|
+
undoMutations: Y
|
|
451
|
+
}), r.executeCommand(f.id, I), !0;
|
|
452
452
|
}
|
|
453
|
-
},
|
|
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(
|
|
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:
|
|
463
|
-
},
|
|
464
|
-
id:
|
|
465
|
-
params:
|
|
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:
|
|
471
|
+
rule: l
|
|
472
472
|
}
|
|
473
473
|
}];
|
|
474
474
|
return i.pushUndoRedo({
|
|
475
|
-
redoMutations:
|
|
476
|
-
undoMutations:
|
|
475
|
+
redoMutations: c,
|
|
476
|
+
undoMutations: p,
|
|
477
477
|
unitID: t
|
|
478
|
-
}), n.executeCommand(
|
|
478
|
+
}), n.executeCommand(S.id, d), !0;
|
|
479
479
|
}
|
|
480
480
|
};
|
|
481
|
-
var Te = Object.defineProperty,
|
|
482
|
-
for (var n = r > 1 ? void 0 : r ?
|
|
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
|
-
},
|
|
486
|
-
const
|
|
487
|
-
let
|
|
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:
|
|
509
|
-
businesses: [
|
|
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
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
],
|
|
532
|
-
var
|
|
533
|
-
for (var n = r > 1 ? void 0 : r ?
|
|
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 &&
|
|
535
|
+
return r && n && Re(e, t, n), n;
|
|
536
536
|
}, L = (a, e) => (t, r) => e(t, r, a);
|
|
537
|
-
let
|
|
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 ===
|
|
547
|
-
const t = a.params, r = t.unitId || this._univerInstanceService.getCurrentUnitForType(
|
|
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
|
|
556
|
+
const l = i.getDataValidations(), d = l.map((_) => _.uid), c = {
|
|
557
557
|
unitId: r,
|
|
558
558
|
subUnitId: o,
|
|
559
|
-
ruleId:
|
|
560
|
-
},
|
|
559
|
+
ruleId: d
|
|
560
|
+
}, p = {
|
|
561
561
|
unitId: r,
|
|
562
562
|
subUnitId: o,
|
|
563
|
-
rule:
|
|
563
|
+
rule: l
|
|
564
564
|
};
|
|
565
565
|
return {
|
|
566
566
|
redos: [{
|
|
567
|
-
id:
|
|
568
|
-
params:
|
|
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
|
-
|
|
583
|
-
|
|
584
|
-
L(0,
|
|
585
|
-
L(1,
|
|
586
|
-
L(2,
|
|
587
|
-
],
|
|
588
|
-
var
|
|
589
|
-
for (var n = r > 1 ? void 0 : r ?
|
|
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 &&
|
|
592
|
-
},
|
|
593
|
-
const
|
|
594
|
-
var
|
|
595
|
-
let
|
|
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
|
-
[
|
|
605
|
-
[
|
|
606
|
-
[
|
|
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
|
-
|
|
613
|
+
me,
|
|
614
|
+
Se,
|
|
614
615
|
ve,
|
|
615
|
-
Ee,
|
|
616
616
|
fe,
|
|
617
|
-
|
|
617
|
+
Ee,
|
|
618
618
|
// mutation
|
|
619
619
|
m,
|
|
620
|
-
|
|
621
|
-
|
|
620
|
+
f,
|
|
621
|
+
S
|
|
622
622
|
].forEach((e) => {
|
|
623
623
|
this._commandService.registerCommand(e);
|
|
624
624
|
});
|
|
625
625
|
}
|
|
626
|
-
},
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
],
|
|
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
|
|
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
|
|
661
|
-
for (var n = r > 1 ? void 0 : r ?
|
|
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 &&
|
|
664
|
-
},
|
|
665
|
-
const
|
|
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
|
|
675
|
+
let q = class {
|
|
676
676
|
constructor(a, e) {
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
|
743
|
-
if (!await this.isValidType(a,
|
|
742
|
+
const d = await this.parseFormula(e, r, n);
|
|
743
|
+
if (!await this.isValidType(a, d, e))
|
|
744
744
|
return !1;
|
|
745
|
-
if (!
|
|
745
|
+
if (!G.isDefine(l))
|
|
746
746
|
return !0;
|
|
747
|
-
const
|
|
748
|
-
switch (
|
|
747
|
+
const c = this.transform(a, d, e);
|
|
748
|
+
switch (l) {
|
|
749
749
|
case s.BETWEEN:
|
|
750
|
-
return this.validatorIsBetween(
|
|
750
|
+
return this.validatorIsBetween(c, d, e);
|
|
751
751
|
case s.EQUAL:
|
|
752
|
-
return this.validatorIsEqual(
|
|
752
|
+
return this.validatorIsEqual(c, d, e);
|
|
753
753
|
case s.GREATER_THAN:
|
|
754
|
-
return this.validatorIsGreaterThan(
|
|
754
|
+
return this.validatorIsGreaterThan(c, d, e);
|
|
755
755
|
case s.GREATER_THAN_OR_EQUAL:
|
|
756
|
-
return this.validatorIsGreaterThanOrEqual(
|
|
756
|
+
return this.validatorIsGreaterThanOrEqual(c, d, e);
|
|
757
757
|
case s.LESS_THAN:
|
|
758
|
-
return this.validatorIsLessThan(
|
|
758
|
+
return this.validatorIsLessThan(c, d, e);
|
|
759
759
|
case s.LESS_THAN_OR_EQUAL:
|
|
760
|
-
return this.validatorIsLessThanOrEqual(
|
|
760
|
+
return this.validatorIsLessThanOrEqual(c, d, e);
|
|
761
761
|
case s.NOT_BETWEEN:
|
|
762
|
-
return this.validatorIsNotBetween(
|
|
762
|
+
return this.validatorIsNotBetween(c, d, e);
|
|
763
763
|
case s.NOT_EQUAL:
|
|
764
|
-
return this.validatorIsNotEqual(
|
|
764
|
+
return this.validatorIsNotEqual(c, d, e);
|
|
765
765
|
default:
|
|
766
766
|
throw new Error("Unknown operator.");
|
|
767
767
|
}
|
|
768
768
|
}
|
|
769
769
|
};
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
],
|
|
774
|
-
const
|
|
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
|
-
|
|
779
|
+
me as AddDataValidationCommand,
|
|
780
780
|
m as AddDataValidationMutation,
|
|
781
|
-
|
|
782
|
-
|
|
781
|
+
q as BaseDataValidator,
|
|
782
|
+
ce as DataValidationManager,
|
|
783
783
|
h as DataValidationModel,
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
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
|
-
|
|
794
|
-
|
|
795
|
-
|
|
793
|
+
P as UniverDataValidationPlugin,
|
|
794
|
+
f as UpdateDataValidationMutation,
|
|
795
|
+
ve as UpdateDataValidationOptionsCommand,
|
|
796
796
|
fe as UpdateDataValidationSettingCommand,
|
|
797
797
|
g as UpdateRuleType,
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
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
|
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -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
|
|
3
|
+
"version": "0.2.1",
|
|
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.
|
|
52
|
+
"@wendellhu/redi": "0.15.5",
|
|
53
53
|
"rxjs": ">=7.0.0",
|
|
54
|
-
"@univerjs/sheets": "0.1
|
|
55
|
-
"@univerjs/core": "0.1
|
|
54
|
+
"@univerjs/sheets": "0.2.1",
|
|
55
|
+
"@univerjs/core": "0.2.1"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@univerjs/protocol": "0.1.38-alpha.
|
|
58
|
+
"@univerjs/protocol": "0.1.38-alpha.11"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@wendellhu/redi": "0.15.
|
|
61
|
+
"@wendellhu/redi": "0.15.5",
|
|
62
62
|
"rxjs": "^7.8.1",
|
|
63
|
-
"typescript": "^5.
|
|
64
|
-
"vite": "^5.3.
|
|
63
|
+
"typescript": "^5.5.3",
|
|
64
|
+
"vite": "^5.3.3",
|
|
65
65
|
"vitest": "^1.6.0",
|
|
66
|
-
"@univerjs/core": "0.1
|
|
67
|
-
"@univerjs/
|
|
68
|
-
"@univerjs/
|
|
66
|
+
"@univerjs/core": "0.2.1",
|
|
67
|
+
"@univerjs/sheets": "0.2.1",
|
|
68
|
+
"@univerjs/shared": "0.2.1"
|
|
69
69
|
},
|
|
70
70
|
"univerSpace": {
|
|
71
71
|
".": {
|