@univerjs/data-validation 0.4.2 → 0.5.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,7 +41,7 @@ export declare abstract class BaseDataValidator<DataType = CellValue> {
41
41
  generateRuleErrorMessage(rule: IDataValidationRuleBase): string;
42
42
  getExtraStyle(rule: IDataValidationRuleBase, value: Nullable<CellValue>, ctx: {
43
43
  style: IStyleData;
44
- }): Nullable<IStyleData>;
44
+ }, row: number, column: number): Nullable<IStyleData>;
45
45
  getRuleFinalError(rule: IDataValidationRule): string;
46
46
  isEmptyCellValue(cellValue: Nullable<CellValue>): cellValue is null | undefined | void;
47
47
  abstract parseFormula(rule: IDataValidationRule, unitId: string, subUnitId: string): Promise<IFormulaResult>;
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports,require("@univerjs/core"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.UniverDataValidation={},global.UniverCore,global.rxjs))})(this,function(exports2,core,rxjs){"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);var _a,_b,_c,_d;function getRuleSetting(rule){return{type:rule.type,operator:rule.operator,formula1:rule.formula1,formula2:rule.formula2,allowBlank:rule.allowBlank}}__name(getRuleSetting,"getRuleSetting");function getRuleOptions(rule){return{error:rule.error,errorStyle:rule.errorStyle,errorTitle:rule.errorTitle,imeMode:rule.imeMode,prompt:rule.prompt,promptTitle:rule.promptTitle,showDropDown:rule.showDropDown,showErrorMessage:rule.showErrorMessage,showInputMessage:rule.showInputMessage,renderMode:rule.renderMode,bizInfo:rule.bizInfo}}__name(getRuleOptions,"getRuleOptions");var UpdateRuleType=(UpdateRuleType2=>(UpdateRuleType2[UpdateRuleType2.SETTING=0]="SETTING",UpdateRuleType2[UpdateRuleType2.RANGE=1]="RANGE",UpdateRuleType2[UpdateRuleType2.OPTIONS=2]="OPTIONS",UpdateRuleType2))(UpdateRuleType||{}),__defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3");exports2.DataValidationModel=(_a=class extends core.Disposable{constructor(_logService){super();__publicField(this,"_model",new Map);__publicField(this,"_ruleChange$",new rxjs.Subject);__publicField(this,"ruleChange$",this._ruleChange$.asObservable());__publicField(this,"ruleChangeDebounce$",this.ruleChange$.pipe(rxjs.debounceTime(20)));this._logService=_logService,this.disposeWithMe({dispose:__name(()=>{this._ruleChange$.complete()},"dispose")})}_ensureMap(unitId,subUnitId){this._model.has(unitId)||this._model.set(unitId,new Map);const unitMap=this._model.get(unitId);if(unitMap.has(subUnitId))return unitMap.get(subUnitId);const map={map:new Map,list:[]};return unitMap.set(subUnitId,map),map}_addSubUnitRule(subUnit,rule,index){const{map:dataValidationMap,list:dataValidations}=subUnit,rules=(Array.isArray(rule)?rule:[rule]).filter(item=>!dataValidationMap.has(item.uid));typeof index=="number"&&index<dataValidations.length?dataValidations.splice(index,0,...rules):dataValidations.push(...rules),rules.forEach(item=>{dataValidationMap.set(item.uid,item)})}_removeSubUnitRule(subUnit,ruleId){const{map:dataValidationMap,list:dataValidations}=subUnit,index=dataValidations.findIndex(item=>item.uid===ruleId);index>-1&&(dataValidations.splice(index,1),dataValidationMap.delete(ruleId))}_updateSubUnitRule(subUnit,ruleId,payload){const{map:dataValidationMap,list:dataValidations}=subUnit,oldRule=dataValidationMap.get(ruleId),index=dataValidations.findIndex(rule2=>ruleId===rule2.uid);if(!oldRule)throw new Error(`Data validation rule is not found, ruleId: ${ruleId}.`);const rule={...oldRule};switch(payload.type){case UpdateRuleType.RANGE:{rule.ranges=payload.payload;break}case UpdateRuleType.SETTING:{Object.assign(rule,getRuleSetting(payload.payload));break}case UpdateRuleType.OPTIONS:{Object.assign(rule,getRuleOptions(payload.payload));break}}return dataValidations[index]=rule,dataValidationMap.set(ruleId,rule),rule}_addRuleSideEffect(unitId,subUnitId,rule,source){if(!this._ensureMap(unitId,subUnitId).map.get(rule.uid))return{rule,type:"add",unitId,subUnitId,source}}addRule(unitId,subUnitId,rule,source,index){try{const subUnitMap=this._ensureMap(unitId,subUnitId),effects=(Array.isArray(rule)?rule:[rule]).map(item=>this._addRuleSideEffect(unitId,subUnitId,item,source));this._addSubUnitRule(subUnitMap,rule,index),effects.forEach(effect=>{effect&&this._ruleChange$.next(effect)})}catch(error){this._logService.error(error)}}updateRule(unitId,subUnitId,ruleId,payload,source){try{const subUnitMap=this._ensureMap(unitId,subUnitId),oldRule=core.Tools.deepClone(subUnitMap.map.get(ruleId));if(!oldRule)throw new Error(`Data validation rule is not found, ruleId: ${ruleId}.`);const rule=this._updateSubUnitRule(subUnitMap,ruleId,payload);this._ruleChange$.next({rule,type:"update",unitId,subUnitId,source,updatePayload:payload,oldRule})}catch(error){this._logService.error(error)}}removeRule(unitId,subUnitId,ruleId,source){try{const map=this._ensureMap(unitId,subUnitId),oldRule=map.map.get(ruleId);oldRule&&(this._removeSubUnitRule(map,ruleId),this._ruleChange$.next({rule:oldRule,type:"remove",unitId,subUnitId,source}))}catch(error){this._logService.error(error)}}getRuleById(unitId,subUnitId,ruleId){return this._ensureMap(unitId,subUnitId).map.get(ruleId)}getRuleIndex(unitId,subUnitId,ruleId){return this._ensureMap(unitId,subUnitId).list.findIndex(rule=>rule.uid===ruleId)}getRules(unitId,subUnitId){return[...this._ensureMap(unitId,subUnitId).list]}getUnitRules(unitId){const unitMap=this._model.get(unitId);if(!unitMap)return[];const res=[];return unitMap.forEach((manager,subUnitId)=>{res.push([subUnitId,manager.list])}),res}deleteUnitRules(unitId){this._model.delete(unitId)}getSubUnitIds(unitId){var _a2,_b2;return Array.from((_b2=(_a2=this._model.get(unitId))==null?void 0:_a2.keys())!=null?_b2:[])}getAll(){return Array.from(this._model.keys()).map(unitId=>[unitId,this.getUnitRules(unitId)])}},__name(_a,"DataValidationModel"),_a),exports2.DataValidationModel=__decorateClass$3([__decorateParam$3(0,core.ILogService)],exports2.DataValidationModel);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");const DATA_VALIDATION_PLUGIN_NAME="SHEET_DATA_VALIDATION_PLUGIN";exports2.DataValidationResourceController=(_b=class extends core.Disposable{constructor(_resourceManagerService,_univerInstanceService,_dataValidationModel){super(),this._resourceManagerService=_resourceManagerService,this._univerInstanceService=_univerInstanceService,this._dataValidationModel=_dataValidationModel,this._initSnapshot()}_initSnapshot(){const toJson=__name(unitID=>{const map=this._dataValidationModel.getUnitRules(unitID),resultMap={};return map?(map.forEach(([key,v])=>{resultMap[key]=v}),JSON.stringify(resultMap)):""},"toJson"),parseJson=__name(json=>{if(!json)return{};try{return JSON.parse(json)}catch{return{}}},"parseJson");this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:DATA_VALIDATION_PLUGIN_NAME,businesses:[core.UniverInstanceType.UNIVER_SHEET],toJson:__name(unitID=>toJson(unitID),"toJson"),parseJson:__name(json=>parseJson(json),"parseJson"),onUnLoad:__name(unitID=>{this._dataValidationModel.deleteUnitRules(unitID)},"onUnLoad"),onLoad:__name((unitID,value)=>{Object.keys(value).forEach(subunitId=>{value[subunitId].forEach(rule=>{this._dataValidationModel.addRule(unitID,subunitId,rule,"patched")})})},"onLoad")}))}},__name(_b,"DataValidationResourceController"),_b),exports2.DataValidationResourceController=__decorateClass$2([__decorateParam$2(0,core.IResourceManagerService),__decorateParam$2(1,core.IUniverInstanceService),__decorateParam$2(2,core.Inject(exports2.DataValidationModel))],exports2.DataValidationResourceController);var DataValidatorRegistryScope=(DataValidatorRegistryScope2=>(DataValidatorRegistryScope2.SHEET="sheet",DataValidatorRegistryScope2))(DataValidatorRegistryScope||{});const _DataValidatorRegistryService=class _DataValidatorRegistryService{constructor(){__publicField(this,"_validatorByScopes",new Map);__publicField(this,"_validatorMap",new Map);__publicField(this,"_validatorsChange$",new rxjs.BehaviorSubject(void 0));__publicField(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(validator,scope){this._validatorByScopes.has(scope)||this._validatorByScopes.set(scope,[]);const validators=this._validatorByScopes.get(scope);if(validators.findIndex(m=>m.id===validator.id)>-1)throw new Error(`Validator item with the same id ${validator.id} has already been added!`);validators.push(validator)}_removeValidatorFromScope(validator,scope){const validators=this._validatorByScopes.get(scope);if(!validators)return;const index=validators.findIndex(v=>v.id===validator.id);index>-1&&validators.splice(index,1)}register(validator){return this._validatorMap.set(validator.id,validator),Array.isArray(validator.scopes)?validator.scopes.forEach(scope=>{this._addValidatorToScope(validator,scope)}):this._addValidatorToScope(validator,validator.scopes),this._validatorsChange$.next(),core.toDisposable(()=>{this._validatorMap.delete(validator.id),Array.isArray(validator.scopes)?validator.scopes.forEach(scope=>{this._removeValidatorFromScope(validator,scope)}):this._removeValidatorFromScope(validator,validator.scopes),this._validatorsChange$.next()})}getValidatorItem(id){return this._validatorMap.get(id)}getValidatorsByScope(scope){return this._validatorByScopes.get(scope)}};__name(_DataValidatorRegistryService,"DataValidatorRegistryService");let DataValidatorRegistryService=_DataValidatorRegistryService;const AddDataValidationMutation={type:core.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(accessor,params){if(!params)return!1;const{unitId,subUnitId,rule,index,source="command"}=params;return accessor.get(exports2.DataValidationModel).addRule(unitId,subUnitId,rule,source,index),!0}},RemoveDataValidationMutation={type:core.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(accessor,params){if(!params)return!1;const{unitId,subUnitId,ruleId,source="command"}=params,dataValidationModel=accessor.get(exports2.DataValidationModel);return Array.isArray(ruleId)?ruleId.forEach(item=>{dataValidationModel.removeRule(unitId,subUnitId,item,source)}):dataValidationModel.removeRule(unitId,subUnitId,ruleId,source),!0}},UpdateDataValidationMutation={type:core.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(accessor,params){if(!params)return!1;const{unitId,subUnitId,ruleId,payload,source="command"}=params;return accessor.get(exports2.DataValidationModel).updateRule(unitId,subUnitId,ruleId,payload,source),!0}},AddDataValidationCommand={type:core.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(accessor,params){if(accessor.get(core.ILogService).error("[Deprecated]: `AddDataValidationCommand` is deprecated, please use `AddSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!params)return!1;const{rule,unitId,subUnitId}=params,commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),mutationParams={...params,rule:{...params.rule,ranges:[params.rule.range]}},redoMutations=[{id:AddDataValidationMutation.id,params:mutationParams}],undoMutations=[{id:RemoveDataValidationMutation.id,params:{unitId,subUnitId,ruleId:rule.uid}}];return undoRedoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations}),await commandService.executeCommand(AddDataValidationMutation.id,mutationParams),!0}},RemoveDataValidationCommand={type:core.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(accessor,params){if(accessor.get(core.ILogService).error("[Deprecated]: `RemoveDataValidationCommand` is deprecated, please use `RemoveSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!params)return!1;const{unitId,subUnitId,ruleId}=params,commandService=accessor.get(core.ICommandService),undoRedoService=accessor.get(core.IUndoRedoService),dataValidationModel=accessor.get(exports2.DataValidationModel),redoMutations=[{id:RemoveDataValidationMutation.id,params}],undoMutations=[{id:AddDataValidationMutation.id,params:{unitId,subUnitId,rule:{...dataValidationModel.getRuleById(unitId,subUnitId,ruleId)},index:dataValidationModel.getRuleIndex(unitId,subUnitId,ruleId)}}];return undoRedoService.pushUndoRedo({undoMutations,redoMutations,unitID:params.unitId}),commandService.executeCommand(RemoveDataValidationMutation.id,params),!0}},UpdateDataValidationOptionsCommand={type:core.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(accessor,params){if(accessor.get(core.ILogService).warn("[Deprecated]: `UpdateDataValidationOptionsCommand` is deprecated, please use `UpdateSheetDataValidationOptionsCommand` in `@univerjs/sheets-data-validation` instead!"),!params)return!1;const commandService=accessor.get(core.ICommandService),redoUndoService=accessor.get(core.IUndoRedoService),dataValidationModel=accessor.get(exports2.DataValidationModel),{unitId,subUnitId,ruleId,options}=params,rule=dataValidationModel.getRuleById(unitId,subUnitId,ruleId);if(!rule)return!1;const mutationParams={unitId,subUnitId,ruleId,payload:{type:UpdateRuleType.OPTIONS,payload:options}},redoMutations=[{id:UpdateDataValidationMutation.id,params:mutationParams}],undoMutationParams={unitId,subUnitId,ruleId,payload:{type:UpdateRuleType.OPTIONS,payload:getRuleOptions(rule)}},undoMutations=[{id:UpdateDataValidationMutation.id,params:undoMutationParams}];return redoUndoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations}),commandService.executeCommand(UpdateDataValidationMutation.id,mutationParams),!0}},UpdateDataValidationSettingCommand={type:core.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(accessor,params){if(accessor.get(core.ILogService).error("[Deprecated]: `UpdateDataValidationSettingCommand` is deprecated, please use `UpdateSheetDataValidationSettingCommand` in `@univerjs/sheets-data-validation` instead!"),!params)return!1;const commandService=accessor.get(core.ICommandService),redoUndoService=accessor.get(core.IUndoRedoService),dataValidationModel=accessor.get(exports2.DataValidationModel),dataValidatorRegistryService=accessor.get(DataValidatorRegistryService),{unitId,subUnitId,ruleId,setting}=params,validator=dataValidatorRegistryService.getValidatorItem(setting.type);if(!validator)return!1;const rule=dataValidationModel.getRuleById(unitId,subUnitId,ruleId);if(!rule)return!1;const newRule={...rule,...setting};if(!validator.validatorFormula(newRule,unitId,subUnitId).success)return!1;const mutationParams={unitId,subUnitId,ruleId,payload:{type:UpdateRuleType.SETTING,payload:{...setting,...validator.normalizeFormula(newRule,unitId,subUnitId)}}},redoMutations=[{id:UpdateDataValidationMutation.id,params:mutationParams}],undoMutationParams={unitId,subUnitId,ruleId,payload:{type:UpdateRuleType.SETTING,payload:getRuleSetting(rule)}},undoMutations=[{id:UpdateDataValidationMutation.id,params:undoMutationParams}];return redoUndoService.pushUndoRedo({unitID:unitId,redoMutations,undoMutations}),commandService.executeCommand(UpdateDataValidationMutation.id,mutationParams),!0}},RemoveAllDataValidationCommand={type:core.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(accessor,params){if(accessor.get(core.ILogService).error("[Deprecated]: `RemoveAllDataValidationCommand` is deprecated, please use `RemoveSheetAllDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!params)return!1;const{unitId,subUnitId}=params,commandService=accessor.get(core.ICommandService),dataValidationModel=accessor.get(exports2.DataValidationModel),undoRedoService=accessor.get(core.IUndoRedoService),currentRules=[...dataValidationModel.getRules(unitId,subUnitId)],redoParams={unitId,subUnitId,ruleId:currentRules.map(rule=>rule.uid)},redoMutations=[{id:RemoveDataValidationMutation.id,params:redoParams}],undoMutations=[{id:AddDataValidationMutation.id,params:{unitId,subUnitId,rule:currentRules}}];return undoRedoService.pushUndoRedo({redoMutations,undoMutations,unitID:unitId}),commandService.executeCommand(RemoveDataValidationMutation.id,redoParams),!0}},PLUGIN_CONFIG_KEY="data-validation.config",defaultPluginConfig={};var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");const PLUGIN_NAME="UNIVER_DATA_VALIDATION_PLUGIN";exports2.UniverDataValidationPlugin=(_c=class extends core.Plugin{constructor(_config=defaultPluginConfig,_injector,_commandService,_configService){super(),this._config=_config,this._injector=_injector,this._commandService=_commandService,this._configService=_configService;const{...rest}=this._config;this._configService.setConfig(PLUGIN_CONFIG_KEY,rest)}onStarting(){[[exports2.DataValidationModel],[DataValidatorRegistryService],[exports2.DataValidationResourceController]].forEach(d=>this._injector.add(d)),[AddDataValidationCommand,RemoveAllDataValidationCommand,UpdateDataValidationOptionsCommand,UpdateDataValidationSettingCommand,RemoveDataValidationCommand,AddDataValidationMutation,UpdateDataValidationMutation,RemoveDataValidationMutation].forEach(command=>{this._commandService.registerCommand(command)})}onReady(){this._injector.get(exports2.DataValidationResourceController)}},__name(_c,"UniverDataValidationPlugin"),__publicField(_c,"pluginName",PLUGIN_NAME),__publicField(_c,"type",core.UniverInstanceType.UNIVER_SHEET),_c),exports2.UniverDataValidationPlugin=__decorateClass$1([__decorateParam$1(1,core.Inject(core.Injector)),__decorateParam$1(2,core.ICommandService),__decorateParam$1(3,core.IConfigService)],exports2.UniverDataValidationPlugin),core.DataValidationOperator.BETWEEN+"",core.DataValidationOperator.EQUAL+"",core.DataValidationOperator.GREATER_THAN+"",core.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",core.DataValidationOperator.LESS_THAN+"",core.DataValidationOperator.LESS_THAN_OR_EQUAL+"",core.DataValidationOperator.NOT_BETWEEN+"",core.DataValidationOperator.NOT_EQUAL+"";const OperatorTitleMap={[core.DataValidationOperator.BETWEEN]:"dataValidation.ruleName.between",[core.DataValidationOperator.EQUAL]:"dataValidation.ruleName.equal",[core.DataValidationOperator.GREATER_THAN]:"dataValidation.ruleName.greaterThan",[core.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.ruleName.greaterThanOrEqual",[core.DataValidationOperator.LESS_THAN]:"dataValidation.ruleName.lessThan",[core.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.ruleName.lessThanOrEqual",[core.DataValidationOperator.NOT_BETWEEN]:"dataValidation.ruleName.notBetween",[core.DataValidationOperator.NOT_EQUAL]:"dataValidation.ruleName.notEqual"},OperatorErrorTitleMap={[core.DataValidationOperator.BETWEEN]:"dataValidation.errorMsg.between",[core.DataValidationOperator.EQUAL]:"dataValidation.errorMsg.equal",[core.DataValidationOperator.GREATER_THAN]:"dataValidation.errorMsg.greaterThan",[core.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.errorMsg.greaterThanOrEqual",[core.DataValidationOperator.LESS_THAN]:"dataValidation.errorMsg.lessThan",[core.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.errorMsg.lessThanOrEqual",[core.DataValidationOperator.NOT_BETWEEN]:"dataValidation.errorMsg.notBetween",[core.DataValidationOperator.NOT_EQUAL]:"dataValidation.errorMsg.notEqual"},TextLengthErrorTitleMap={[core.DataValidationOperator.BETWEEN]:"dataValidation.textLength.errorMsg.between",[core.DataValidationOperator.EQUAL]:"dataValidation.textLength.errorMsg.equal",[core.DataValidationOperator.GREATER_THAN]:"dataValidation.textLength.errorMsg.greaterThan",[core.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.greaterThanOrEqual",[core.DataValidationOperator.LESS_THAN]:"dataValidation.textLength.errorMsg.lessThan",[core.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.lessThanOrEqual",[core.DataValidationOperator.NOT_BETWEEN]:"dataValidation.textLength.errorMsg.notBetween",[core.DataValidationOperator.NOT_EQUAL]:"dataValidation.textLength.errorMsg.notEqual"},TWO_FORMULA_OPERATOR_COUNT=[core.DataValidationOperator.BETWEEN,core.DataValidationOperator.NOT_BETWEEN];var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const FORMULA1="{FORMULA1}",FORMULA2="{FORMULA2}",operatorNameMap={[core.DataValidationOperator.BETWEEN]:"dataValidation.operators.between",[core.DataValidationOperator.EQUAL]:"dataValidation.operators.equal",[core.DataValidationOperator.GREATER_THAN]:"dataValidation.operators.greaterThan",[core.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.operators.greaterThanOrEqual",[core.DataValidationOperator.LESS_THAN]:"dataValidation.operators.lessThan",[core.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.operators.lessThanOrEqual",[core.DataValidationOperator.NOT_BETWEEN]:"dataValidation.operators.notBetween",[core.DataValidationOperator.NOT_EQUAL]:"dataValidation.operators.notEqual"};exports2.BaseDataValidator=(_d=class{constructor(localeService,injector){__publicField(this,"formulaInput");__publicField(this,"canvasRender",null);__publicField(this,"dropdown");__publicField(this,"optionsInput");__publicField(this,"skipDefaultFontRender");this.localeService=localeService,this.injector=injector}get operatorNames(){return this.operators.map(operator=>this.localeService.t(operatorNameMap[operator]))}get titleStr(){return this.localeService.t(this.title)}generateRuleName(rule){var _a2,_b2;if(!rule.operator)return this.titleStr;const ruleName=this.localeService.t(OperatorTitleMap[rule.operator]).replace(FORMULA1,(_a2=rule.formula1)!=null?_a2:"").replace(FORMULA2,(_b2=rule.formula2)!=null?_b2:"");return`${this.titleStr} ${ruleName}`}generateRuleErrorMessage(rule){var _a2,_b2;return rule.operator?`${this.localeService.t(OperatorErrorTitleMap[rule.operator]).replace(FORMULA1,(_a2=rule.formula1)!=null?_a2:"").replace(FORMULA2,(_b2=rule.formula2)!=null?_b2:"")}`:this.titleStr}getExtraStyle(rule,value,ctx){}getRuleFinalError(rule){return rule.showErrorMessage&&rule.error?rule.error:this.generateRuleErrorMessage(rule)}isEmptyCellValue(cellValue){return cellValue===""||cellValue===void 0||cellValue===null}normalizeFormula(rule,unitId,subUnitId){return{formula1:rule.formula1,formula2:rule.formula2}}async isValidType(cellInfo,formula,rule){return!0}transform(cellInfo,formula,rule){return cellInfo}async validatorIsEqual(cellInfo,formula,rule){return!0}async validatorIsNotEqual(cellInfo,formula,rule){return!0}async validatorIsBetween(cellInfo,formula,rule){return!0}async validatorIsNotBetween(cellInfo,formula,rule){return!0}async validatorIsGreaterThan(cellInfo,formula,rule){return!0}async validatorIsGreaterThanOrEqual(cellInfo,formula,rule){return!0}async validatorIsLessThan(cellInfo,formula,rule){return!0}async validatorIsLessThanOrEqual(cellInfo,formula,rule){return!0}async validator(cellInfo,rule){const{value:cellValue,unitId,subUnitId}=cellInfo,isEmpty=this.isEmptyCellValue(cellValue),{allowBlank=!0,operator}=rule;if(isEmpty)return allowBlank;const formulaInfo=await this.parseFormula(rule,unitId,subUnitId);if(!formulaInfo.isFormulaValid||!await this.isValidType(cellInfo,formulaInfo,rule))return!1;if(!core.Tools.isDefine(operator))return!0;const transformedCell=this.transform(cellInfo,formulaInfo,rule);switch(operator){case core.DataValidationOperator.BETWEEN:return this.validatorIsBetween(transformedCell,formulaInfo,rule);case core.DataValidationOperator.EQUAL:return this.validatorIsEqual(transformedCell,formulaInfo,rule);case core.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(transformedCell,formulaInfo,rule);case core.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(transformedCell,formulaInfo,rule);case core.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(transformedCell,formulaInfo,rule);case core.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(transformedCell,formulaInfo,rule);case core.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(transformedCell,formulaInfo,rule);case core.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(transformedCell,formulaInfo,rule);default:throw new Error("Unknown operator.")}}},__name(_d,"BaseDataValidator"),_d),exports2.BaseDataValidator=__decorateClass([__decorateParam(0,core.Inject(core.LocaleService)),__decorateParam(1,core.Inject(core.Injector))],exports2.BaseDataValidator),exports2.AddDataValidationMutation=AddDataValidationMutation,exports2.DataValidatorRegistryScope=DataValidatorRegistryScope,exports2.DataValidatorRegistryService=DataValidatorRegistryService,exports2.RemoveDataValidationMutation=RemoveDataValidationMutation,exports2.TWO_FORMULA_OPERATOR_COUNT=TWO_FORMULA_OPERATOR_COUNT,exports2.TextLengthErrorTitleMap=TextLengthErrorTitleMap,exports2.UpdateDataValidationMutation=UpdateDataValidationMutation,exports2.UpdateRuleType=UpdateRuleType,exports2.getRuleOptions=getRuleOptions,exports2.getRuleSetting=getRuleSetting,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});
1
+ (function(l,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("@univerjs/core"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs"],n):(l=typeof globalThis<"u"?globalThis:l||self,n(l.UniverDataValidation={},l.UniverCore,l.rxjs))})(this,function(l,n,g){"use strict";var sa=Object.defineProperty;var ua=(l,n,g)=>n in l?sa(l,n,{enumerable:!0,configurable:!0,writable:!0,value:g}):l[n]=g;var m=(l,n,g)=>ua(l,typeof n!="symbol"?n+"":n,g);var O;function D(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,bizInfo:r.bizInfo}}var h=(r=>(r[r.SETTING=0]="SETTING",r[r.RANGE=1]="RANGE",r[r.OPTIONS=2]="OPTIONS",r))(h||{}),L=Object.defineProperty,w=Object.getOwnPropertyDescriptor,b=(r,a,e,t)=>{for(var i=t>1?void 0:t?w(a,e):a,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(a,e,i):d(i))||i);return t&&i&&L(a,e,i),i},P=(r,a)=>(e,t)=>a(e,t,r);l.DataValidationModel=class extends n.Disposable{constructor(e){super();m(this,"_model",new Map);m(this,"_ruleChange$",new g.Subject);m(this,"ruleChange$",this._ruleChange$.asObservable());m(this,"ruleChangeDebounce$",this.ruleChange$.pipe(g.debounceTime(20)));this._logService=e,this.disposeWithMe({dispose:()=>{this._ruleChange$.complete()}})}_ensureMap(e,t){this._model.has(e)||this._model.set(e,new Map);const i=this._model.get(e);if(i.has(t))return i.get(t);const o={map:new Map,list:[]};return i.set(t,o),o}_addSubUnitRule(e,t,i){const{map:o,list:d}=e,p=(Array.isArray(t)?t:[t]).filter(u=>!o.has(u.uid));typeof i=="number"&&i<d.length?d.splice(i,0,...p):d.push(...p),p.forEach(u=>{o.set(u.uid,u)})}_removeSubUnitRule(e,t){const{map:i,list:o}=e,d=o.findIndex(s=>s.uid===t);d>-1&&(o.splice(d,1),i.delete(t))}_updateSubUnitRule(e,t,i){const{map:o,list:d}=e,s=o.get(t),p=d.findIndex(c=>t===c.uid);if(!s)throw new Error(`Data validation rule is not found, ruleId: ${t}.`);const u={...s};switch(i.type){case h.RANGE:{u.ranges=i.payload;break}case h.SETTING:{Object.assign(u,D(i.payload));break}case h.OPTIONS:{Object.assign(u,R(i.payload));break}}return d[p]=u,o.set(t,u),u}_addRuleSideEffect(e,t,i,o){if(!this._ensureMap(e,t).map.get(i.uid))return{rule:i,type:"add",unitId:e,subUnitId:t,source:o}}addRule(e,t,i,o,d){try{const s=this._ensureMap(e,t),u=(Array.isArray(i)?i:[i]).map(c=>this._addRuleSideEffect(e,t,c,o));this._addSubUnitRule(s,i,d),u.forEach(c=>{c&&this._ruleChange$.next(c)})}catch(s){this._logService.error(s)}}updateRule(e,t,i,o,d){try{const s=this._ensureMap(e,t),p=n.Tools.deepClone(s.map.get(i));if(!p)throw new Error(`Data validation rule is not found, ruleId: ${i}.`);const u=this._updateSubUnitRule(s,i,o);this._ruleChange$.next({rule:u,type:"update",unitId:e,subUnitId:t,source:d,updatePayload:o,oldRule:p})}catch(s){this._logService.error(s)}}removeRule(e,t,i,o){try{const d=this._ensureMap(e,t),s=d.map.get(i);s&&(this._removeSubUnitRule(d,i),this._ruleChange$.next({rule:s,type:"remove",unitId:e,subUnitId:t,source:o}))}catch(d){this._logService.error(d)}}getRuleById(e,t,i){return this._ensureMap(e,t).map.get(i)}getRuleIndex(e,t,i){return this._ensureMap(e,t).list.findIndex(d=>d.uid===i)}getRules(e,t){return[...this._ensureMap(e,t).list]}getUnitRules(e){const t=this._model.get(e);if(!t)return[];const i=[];return t.forEach((o,d)=>{i.push([d,o.list])}),i}deleteUnitRules(e){this._model.delete(e)}getSubUnitIds(e){var t,i;return Array.from((i=(t=this._model.get(e))==null?void 0:t.keys())!=null?i:[])}getAll(){return Array.from(this._model.keys()).map(e=>[e,this.getUnitRules(e)])}},l.DataValidationModel=b([P(0,n.ILogService)],l.DataValidationModel);var B=Object.defineProperty,j=Object.getOwnPropertyDescriptor,$=(r,a,e,t)=>{for(var i=t>1?void 0:t?j(a,e):a,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(a,e,i):d(i))||i);return t&&i&&B(a,e,i),i},M=(r,a)=>(e,t)=>a(e,t,r);const q="SHEET_DATA_VALIDATION_PLUGIN";l.DataValidationResourceController=class extends n.Disposable{constructor(a,e,t){super(),this._resourceManagerService=a,this._univerInstanceService=e,this._dataValidationModel=t,this._initSnapshot()}_initSnapshot(){const a=t=>{const i=this._dataValidationModel.getUnitRules(t),o={};return i?(i.forEach(([d,s])=>{o[d]=s}),JSON.stringify(o)):""},e=t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:q,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:t=>a(t),parseJson:t=>e(t),onUnLoad:t=>{this._dataValidationModel.deleteUnitRules(t)},onLoad:(t,i)=>{Object.keys(i).forEach(o=>{i[o].forEach(s=>{this._dataValidationModel.addRule(t,o,s,"patched")})})}}))}},l.DataValidationResourceController=$([M(0,n.IResourceManagerService),M(1,n.IUniverInstanceService),M(2,n.Inject(l.DataValidationModel))],l.DataValidationResourceController);var N=(r=>(r.SHEET="sheet",r))(N||{});class I{constructor(){m(this,"_validatorByScopes",new Map);m(this,"_validatorMap",new Map);m(this,"_validatorsChange$",new g.BehaviorSubject(void 0));m(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(a,e){this._validatorByScopes.has(e)||this._validatorByScopes.set(e,[]);const t=this._validatorByScopes.get(e);if(t.findIndex(i=>i.id===a.id)>-1)throw new Error(`Validator item with the same id ${a.id} has already been added!`);t.push(a)}_removeValidatorFromScope(a,e){const t=this._validatorByScopes.get(e);if(!t)return;const i=t.findIndex(o=>o.id===a.id);i>-1&&t.splice(i,1)}register(a){return this._validatorMap.set(a.id,a),Array.isArray(a.scopes)?a.scopes.forEach(e=>{this._addValidatorToScope(a,e)}):this._addValidatorToScope(a,a.scopes),this._validatorsChange$.next(),n.toDisposable(()=>{this._validatorMap.delete(a.id),Array.isArray(a.scopes)?a.scopes.forEach(e=>{this._removeValidatorFromScope(a,e)}):this._removeValidatorFromScope(a,a.scopes),this._validatorsChange$.next()})}getValidatorItem(a){return this._validatorMap.get(a)}getValidatorsByScope(a){return this._validatorByScopes.get(a)}}const f={type:n.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(r,a){if(!a)return!1;const{unitId:e,subUnitId:t,rule:i,index:o,source:d="command"}=a;return r.get(l.DataValidationModel).addRule(e,t,i,d,o),!0}},E={type:n.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(r,a){if(!a)return!1;const{unitId:e,subUnitId:t,ruleId:i,source:o="command"}=a,d=r.get(l.DataValidationModel);return Array.isArray(i)?i.forEach(s=>{d.removeRule(e,t,s,o)}):d.removeRule(e,t,i,o),!0}},_={type:n.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(r,a){if(!a)return!1;const{unitId:e,subUnitId:t,ruleId:i,payload:o,source:d="command"}=a;return r.get(l.DataValidationModel).updateRule(e,t,i,o,d),!0}},G={type:n.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(r,a){if(r.get(n.ILogService).error("[Deprecated]: `AddDataValidationCommand` is deprecated, please use `AddSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{rule:t,unitId:i,subUnitId:o}=a,d=r.get(n.ICommandService),s=r.get(n.IUndoRedoService),p={...a,rule:{...a.rule,ranges:[a.rule.range]}},u=[{id:f.id,params:p}],c=[{id:E.id,params:{unitId:i,subUnitId:o,ruleId:t.uid}}];return s.pushUndoRedo({unitID:i,redoMutations:u,undoMutations:c}),await d.executeCommand(f.id,p),!0}},H={type:n.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(r,a){if(r.get(n.ILogService).error("[Deprecated]: `RemoveDataValidationCommand` is deprecated, please use `RemoveSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{unitId:t,subUnitId:i,ruleId:o}=a,d=r.get(n.ICommandService),s=r.get(n.IUndoRedoService),p=r.get(l.DataValidationModel),u=[{id:E.id,params:a}],c=[{id:f.id,params:{unitId:t,subUnitId:i,rule:{...p.getRuleById(t,i,o)},index:p.getRuleIndex(t,i,o)}}];return s.pushUndoRedo({undoMutations:c,redoMutations:u,unitID:a.unitId}),d.executeCommand(E.id,a),!0}},Q={type:n.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(r,a){if(r.get(n.ILogService).warn("[Deprecated]: `UpdateDataValidationOptionsCommand` is deprecated, please use `UpdateSheetDataValidationOptionsCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const t=r.get(n.ICommandService),i=r.get(n.IUndoRedoService),o=r.get(l.DataValidationModel),{unitId:d,subUnitId:s,ruleId:p,options:u}=a,c=o.getRuleById(d,s,p);if(!c)return!1;const V={unitId:d,subUnitId:s,ruleId:p,payload:{type:h.OPTIONS,payload:u}},v=[{id:_.id,params:V}],T={unitId:d,subUnitId:s,ruleId:p,payload:{type:h.OPTIONS,payload:R(c)}},S=[{id:_.id,params:T}];return i.pushUndoRedo({unitID:d,redoMutations:v,undoMutations:S}),t.executeCommand(_.id,V),!0}},W={type:n.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(r,a){if(r.get(n.ILogService).error("[Deprecated]: `UpdateDataValidationSettingCommand` is deprecated, please use `UpdateSheetDataValidationSettingCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const t=r.get(n.ICommandService),i=r.get(n.IUndoRedoService),o=r.get(l.DataValidationModel),d=r.get(I),{unitId:s,subUnitId:p,ruleId:u,setting:c}=a,V=d.getValidatorItem(c.type);if(!V)return!1;const v=o.getRuleById(s,p,u);if(!v)return!1;const T={...v,...c};if(!V.validatorFormula(T,s,p).success)return!1;const S={unitId:s,subUnitId:p,ruleId:u,payload:{type:h.SETTING,payload:{...c,...V.normalizeFormula(T,s,p)}}},oa=[{id:_.id,params:S}],da={unitId:s,subUnitId:p,ruleId:u,payload:{type:h.SETTING,payload:D(v)}},la=[{id:_.id,params:da}];return i.pushUndoRedo({unitID:s,redoMutations:oa,undoMutations:la}),t.executeCommand(_.id,S),!0}},F={type:n.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(r,a){if(r.get(n.ILogService).error("[Deprecated]: `RemoveAllDataValidationCommand` is deprecated, please use `RemoveSheetAllDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{unitId:t,subUnitId:i}=a,o=r.get(n.ICommandService),d=r.get(l.DataValidationModel),s=r.get(n.IUndoRedoService),p=[...d.getRules(t,i)],u={unitId:t,subUnitId:i,ruleId:p.map(v=>v.uid)},c=[{id:E.id,params:u}],V=[{id:f.id,params:{unitId:t,subUnitId:i,rule:p}}];return s.pushUndoRedo({redoMutations:c,undoMutations:V,unitID:t}),o.executeCommand(E.id,u),!0}},x="data-validation.config",J={};var z=Object.defineProperty,K=Object.getOwnPropertyDescriptor,Y=(r,a,e,t)=>{for(var i=t>1?void 0:t?K(a,e):a,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(a,e,i):d(i))||i);return t&&i&&z(a,e,i),i},A=(r,a)=>(e,t)=>a(e,t,r);const X="UNIVER_DATA_VALIDATION_PLUGIN";l.UniverDataValidationPlugin=(O=class extends n.Plugin{constructor(a=J,e,t,i){super(),this._config=a,this._injector=e,this._commandService=t,this._configService=i;const{...o}=this._config;this._configService.setConfig(x,o)}onStarting(){[[l.DataValidationModel],[I],[l.DataValidationResourceController]].forEach(a=>this._injector.add(a)),[G,F,Q,W,H,f,_,E].forEach(a=>{this._commandService.registerCommand(a)})}onReady(){this._injector.get(l.DataValidationResourceController)}},m(O,"pluginName",X),m(O,"type",n.UniverInstanceType.UNIVER_SHEET),O),l.UniverDataValidationPlugin=Y([A(1,n.Inject(n.Injector)),A(2,n.ICommandService),A(3,n.IConfigService)],l.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 Z={[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"},k={[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"},aa={[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"},ta=[n.DataValidationOperator.BETWEEN,n.DataValidationOperator.NOT_BETWEEN];var ea=Object.defineProperty,ia=Object.getOwnPropertyDescriptor,na=(r,a,e,t)=>{for(var i=t>1?void 0:t?ia(a,e):a,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(t?d(a,e,i):d(i))||i);return t&&i&&ea(a,e,i),i},y=(r,a)=>(e,t)=>a(e,t,r);const U="{FORMULA1}",C="{FORMULA2}",ra={[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"};l.BaseDataValidator=class{constructor(a,e){m(this,"formulaInput");m(this,"canvasRender",null);m(this,"dropdown");m(this,"optionsInput");m(this,"skipDefaultFontRender");this.localeService=a,this.injector=e}get operatorNames(){return this.operators.map(a=>this.localeService.t(ra[a]))}get titleStr(){return this.localeService.t(this.title)}generateRuleName(a){var t,i;if(!a.operator)return this.titleStr;const e=this.localeService.t(Z[a.operator]).replace(U,(t=a.formula1)!=null?t:"").replace(C,(i=a.formula2)!=null?i:"");return`${this.titleStr} ${e}`}generateRuleErrorMessage(a){var t,i;return a.operator?`${this.localeService.t(k[a.operator]).replace(U,(t=a.formula1)!=null?t:"").replace(C,(i=a.formula2)!=null?i:"")}`:this.titleStr}getExtraStyle(a,e,t,i,o){}getRuleFinalError(a){return a.showErrorMessage&&a.error?a.error:this.generateRuleErrorMessage(a)}isEmptyCellValue(a){return a===""||a===void 0||a===null}normalizeFormula(a,e,t){return{formula1:a.formula1,formula2:a.formula2}}async isValidType(a,e,t){return!0}transform(a,e,t){return a}async validatorIsEqual(a,e,t){return!0}async validatorIsNotEqual(a,e,t){return!0}async validatorIsBetween(a,e,t){return!0}async validatorIsNotBetween(a,e,t){return!0}async validatorIsGreaterThan(a,e,t){return!0}async validatorIsGreaterThanOrEqual(a,e,t){return!0}async validatorIsLessThan(a,e,t){return!0}async validatorIsLessThanOrEqual(a,e,t){return!0}async validator(a,e){const{value:t,unitId:i,subUnitId:o}=a,d=this.isEmptyCellValue(t),{allowBlank:s=!0,operator:p}=e;if(d)return s;const u=await this.parseFormula(e,i,o);if(!u.isFormulaValid||!await this.isValidType(a,u,e))return!1;if(!n.Tools.isDefine(p))return!0;const c=this.transform(a,u,e);switch(p){case n.DataValidationOperator.BETWEEN:return this.validatorIsBetween(c,u,e);case n.DataValidationOperator.EQUAL:return this.validatorIsEqual(c,u,e);case n.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(c,u,e);case n.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(c,u,e);case n.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(c,u,e);case n.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(c,u,e);case n.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(c,u,e);case n.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(c,u,e);default:throw new Error("Unknown operator.")}}},l.BaseDataValidator=na([y(0,n.Inject(n.LocaleService)),y(1,n.Inject(n.Injector))],l.BaseDataValidator),l.AddDataValidationMutation=f,l.DataValidatorRegistryScope=N,l.DataValidatorRegistryService=I,l.RemoveDataValidationMutation=E,l.TWO_FORMULA_OPERATOR_COUNT=ta,l.TextLengthErrorTitleMap=aa,l.UpdateDataValidationMutation=_,l.UpdateRuleType=h,l.getRuleOptions=R,l.getRuleSetting=D,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/data-validation",
3
- "version": "0.4.2",
3
+ "version": "0.5.0-alpha.0",
4
4
  "private": false,
5
5
  "description": "Data validation library for Univer",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -33,8 +33,7 @@
33
33
  },
34
34
  "./lib/*": "./lib/*"
35
35
  },
36
- "main": "./lib/cjs/index.js",
37
- "module": "./lib/es/index.js",
36
+ "main": "./lib/es/index.js",
38
37
  "types": "./lib/types/index.d.ts",
39
38
  "publishConfig": {
40
39
  "access": "public"
@@ -50,18 +49,19 @@
50
49
  },
51
50
  "dependencies": {
52
51
  "@univerjs/protocol": "0.1.39-alpha.38",
53
- "@univerjs/core": "0.4.2",
54
- "@univerjs/sheets": "0.4.2"
52
+ "@vitejs/plugin-react": "4.3.3",
53
+ "@univerjs/core": "0.5.0-alpha.0",
54
+ "@univerjs/sheets": "0.5.0-alpha.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "rxjs": "^7.8.1",
58
58
  "typescript": "^5.6.3",
59
- "vite": "^5.4.8",
60
- "vitest": "^2.1.2",
61
- "@univerjs-infra/shared": "0.4.2",
62
- "@univerjs/core": "0.4.2"
59
+ "vite": "^5.4.10",
60
+ "vitest": "^2.1.4",
61
+ "@univerjs/core": "0.5.0-alpha.0",
62
+ "@univerjs-infra/shared": "0.5.0-alpha.0"
63
63
  },
64
- "univerSpace": {
64
+ "space": {
65
65
  ".": {
66
66
  "import": "./lib/es/index.js",
67
67
  "require": "./lib/cjs/index.js",
@@ -79,6 +79,7 @@
79
79
  "test": "vitest run",
80
80
  "test:watch": "vitest",
81
81
  "coverage": "vitest run --coverage",
82
- "build": "tsc && vite build"
83
- }
82
+ "build": "tsx build.ts"
83
+ },
84
+ "module": "./lib/es/index.js"
84
85
  }