@univerjs/data-validation 0.1.6 → 0.1.8
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 +521 -394
- package/lib/types/common/util.d.ts +3 -3
- package/lib/types/controllers/dv-resource.controller.d.ts +10 -0
- package/lib/types/controllers/dv-sheet.controller.d.ts +11 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/models/data-validation-manager.d.ts +1 -1
- package/lib/types/models/data-validation-model.d.ts +3 -1
- package/lib/types/plugin.d.ts +4 -2
- package/lib/types/types/const/operator-text-map.d.ts +1 -0
- package/lib/types/types/interfaces/i-formula-input.d.ts +1 -0
- package/lib/umd/index.js +1 -1
- package/package.json +32 -18
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IAccessor } from '@wendellhu/redi';
|
|
2
|
-
import { DataValidationOperator, DataValidationType,
|
|
2
|
+
import { DataValidationOperator, DataValidationType, IDataValidationRuleBase, IDataValidationRuleOptions } from '@univerjs/core';
|
|
3
3
|
|
|
4
|
-
export declare function getRuleSetting(rule:
|
|
5
|
-
export declare function getRuleOptions(rule:
|
|
4
|
+
export declare function getRuleSetting(rule: IDataValidationRuleBase): IDataValidationRuleBase;
|
|
5
|
+
export declare function getRuleOptions(rule: IDataValidationRuleOptions): IDataValidationRuleOptions;
|
|
6
6
|
export declare function createDefaultNewRule(accessor: IAccessor): {
|
|
7
7
|
uid: string;
|
|
8
8
|
type: DataValidationType;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DataValidationModel } from '../models/data-validation-model';
|
|
2
|
+
import { Disposable, IResourceManagerService, IUniverInstanceService } from '@univerjs/core';
|
|
3
|
+
|
|
4
|
+
export declare class DataValidationResourceController extends Disposable {
|
|
5
|
+
private readonly _resourceManagerService;
|
|
6
|
+
private readonly _univerInstanceService;
|
|
7
|
+
private readonly _dataValidationModel;
|
|
8
|
+
constructor(_resourceManagerService: IResourceManagerService, _univerInstanceService: IUniverInstanceService, _dataValidationModel: DataValidationModel);
|
|
9
|
+
private _initSnapshot;
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DataValidationModel } from '../models/data-validation-model';
|
|
2
|
+
import { SheetInterceptorService } from '@univerjs/sheets';
|
|
3
|
+
import { Disposable, IUniverInstanceService } from '@univerjs/core';
|
|
4
|
+
|
|
5
|
+
export declare class DataValidationSheetController extends Disposable {
|
|
6
|
+
private _sheetInterceptorService;
|
|
7
|
+
private _univerInstanceService;
|
|
8
|
+
private readonly _dataValidationModel;
|
|
9
|
+
constructor(_sheetInterceptorService: SheetInterceptorService, _univerInstanceService: IUniverInstanceService, _dataValidationModel: DataValidationModel);
|
|
10
|
+
private _initSheetChange;
|
|
11
|
+
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -33,3 +33,6 @@ export { DataValidationManager } from './models/data-validation-manager';
|
|
|
33
33
|
export type { IFormulaValidResult } from './validators/base-data-validator';
|
|
34
34
|
export { removeDataValidationUndoFactory } from './commands/commands/data-validation.command';
|
|
35
35
|
export { TWO_FORMULA_OPERATOR_COUNT } from './types/const/two-formula-operators';
|
|
36
|
+
export { DataValidationResourceController } from './controllers/dv-resource.controller';
|
|
37
|
+
export { DataValidationSheetController } from './controllers/dv-sheet.controller';
|
|
38
|
+
export { TextLengthErrorTitleMap } from './types/const/operator-text-map';
|
|
@@ -13,7 +13,7 @@ export declare class DataValidationManager<T extends IDataValidationRule> extend
|
|
|
13
13
|
private _insertRules;
|
|
14
14
|
getRuleById(id: string): T | undefined;
|
|
15
15
|
getRuleIndex(id: string): number;
|
|
16
|
-
addRule(rule: T, index?: number): void;
|
|
16
|
+
addRule(rule: T | T[], index?: number): void;
|
|
17
17
|
removeRule(ruleId: string): void;
|
|
18
18
|
updateRule(ruleId: string, payload: IUpdateRulePayload): T;
|
|
19
19
|
getDataValidations(): T[];
|
|
@@ -27,7 +27,8 @@ export declare class DataValidationModel<T extends IDataValidationRule = IDataVa
|
|
|
27
27
|
constructor(_logService: ILogService);
|
|
28
28
|
setManagerCreator(creator: (unitId: string, subUnitId: string) => DataValidationManager<T>): void;
|
|
29
29
|
ensureManager(unitId: string, subUnitId: string): DataValidationManager<T>;
|
|
30
|
-
|
|
30
|
+
private _addRuleSideEffect;
|
|
31
|
+
addRule(unitId: string, subUnitId: string, rule: T | T[], index?: number): void;
|
|
31
32
|
updateRule(unitId: string, subUnitId: string, ruleId: string, payload: IUpdateRulePayload): void;
|
|
32
33
|
removeRule(unitId: string, subUnitId: string, ruleId: string): void;
|
|
33
34
|
getRuleById(unitId: string, subUnitId: string, ruleId: string): T | undefined;
|
|
@@ -35,5 +36,6 @@ export declare class DataValidationModel<T extends IDataValidationRule = IDataVa
|
|
|
35
36
|
getRules(unitId: string, subUnitId: string): T[];
|
|
36
37
|
validator(content: Nullable<CellValue>, rule: T, pos: any): DataValidationStatus;
|
|
37
38
|
getUnitRules(unitId: string): [string, IDataValidationRule[]][];
|
|
39
|
+
deleteUnitRules(unitId: string): void;
|
|
38
40
|
}
|
|
39
41
|
export {};
|
package/lib/types/plugin.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Injector } from '@wendellhu/redi';
|
|
2
|
-
import { ICommandService, Plugin } from '@univerjs/core';
|
|
2
|
+
import { ICommandService, Plugin, UniverInstanceType } from '@univerjs/core';
|
|
3
3
|
|
|
4
4
|
export declare class UniverDataValidationPlugin extends Plugin {
|
|
5
5
|
protected _injector: Injector;
|
|
6
6
|
private _commandService;
|
|
7
|
-
|
|
7
|
+
static pluginName: string;
|
|
8
|
+
static type: UniverInstanceType;
|
|
9
|
+
constructor(_config: unknown, _injector: Injector, _commandService: ICommandService);
|
|
8
10
|
onStarting(injector: Injector): void;
|
|
9
11
|
}
|
|
@@ -3,3 +3,4 @@ import { DataValidationOperator } from '@univerjs/core';
|
|
|
3
3
|
export declare const OperatorTextMap: Record<DataValidationOperator, string>;
|
|
4
4
|
export declare const OperatorTitleMap: Record<DataValidationOperator, string>;
|
|
5
5
|
export declare const OperatorErrorTitleMap: Record<DataValidationOperator, string>;
|
|
6
|
+
export declare const TextLengthErrorTitleMap: Record<DataValidationOperator, string>;
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(l,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):(l=typeof globalThis<"u"?globalThis:l||self,n(l.UniverDataValidation={},l.UniverCore,l["@wendellhu/redi"],l.rxjs,l.UniverSheets))})(this,function(l,n,h,E,b){"use strict";var ia=Object.defineProperty;var na=(l,n,h)=>n in l?ia(l,n,{enumerable:!0,configurable:!0,writable:!0,value:h}):l[n]=h;var p=(l,n,h)=>(na(l,typeof n!="symbol"?n+"":n,h),h);var M=(r=>(r.SHEET="sheet",r))(M||{});class T{constructor(){p(this,"_validatorByScopes",new Map);p(this,"_validatorMap",new Map);p(this,"_validatorsChange$",new E.BehaviorSubject(void 0));p(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(t,a){this._validatorByScopes.has(a)||this._validatorByScopes.set(a,[]);const e=this._validatorByScopes.get(a);if(e.findIndex(i=>i.id===t.id)>-1)throw new Error(`Validator item with the same id ${t.id} has already been added!`);e.push(t)}_removeValidatorFromScope(t,a){const e=this._validatorByScopes.get(a);if(!e)return;const i=e.findIndex(o=>o.id===t.id);i>-1&&e.splice(i,1)}register(t){return this._validatorMap.set(t.id,t),Array.isArray(t.scopes)?t.scopes.forEach(a=>{this._addValidatorToScope(t,a)}):this._addValidatorToScope(t,t.scopes),this._validatorsChange$.next(),n.toDisposable(()=>{this._validatorMap.delete(t.id),Array.isArray(t.scopes)?t.scopes.forEach(a=>{this._removeValidatorFromScope(t,a)}):this._removeValidatorFromScope(t,t.scopes),this._validatorsChange$.next()})}getValidatorItem(t){return this._validatorMap.get(t)}getValidatorsByScope(t){return this._validatorByScopes.get(t)}}var $=Object.defineProperty,P=Object.getOwnPropertyDescriptor,q=(r,t,a,e)=>{for(var i=e>1?void 0:e?P(t,a):t,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(e?d(t,a,i):d(i))||i);return e&&i&&$(t,a,i),i},j=(r,t)=>(a,e)=>t(a,e,r);l.DataValidationModel=class extends n.Disposable{constructor(a){super();p(this,"_model",new Map);p(this,"_managerCreator");p(this,"_ruleChange$",new E.Subject);p(this,"_validStatusChange$",new E.Subject);p(this,"ruleChange$",this._ruleChange$.asObservable());p(this,"ruleChangeDebounce$",this.ruleChange$.pipe(E.debounceTime(20)));p(this,"validStatusChange$",this._validStatusChange$.asObservable().pipe(E.debounceTime(20)));this._logService=a,this.disposeWithMe({dispose:()=>{this._ruleChange$.complete(),this._validStatusChange$.complete()}})}setManagerCreator(a){this._managerCreator=a}ensureManager(a,e){this._model.has(a)||this._model.set(a,new Map);const i=this._model.get(a);if(i.has(e))return i.get(e);const o=this._managerCreator(a,e);return i.set(e,o),o}addRule(a,e,i,o){try{this.ensureManager(a,e).addRule(i,o),this._ruleChange$.next({rule:i,type:"add",unitId:a,subUnitId:e})}catch(d){this._logService.error(d)}}updateRule(a,e,i,o){try{const s=this.ensureManager(a,e).updateRule(i,o);this._ruleChange$.next({rule:s,type:"update",unitId:a,subUnitId:e})}catch(d){this._logService.error(d)}}removeRule(a,e,i){try{const o=this.ensureManager(a,e),d=o.getRuleById(i);o.removeRule(i),this._ruleChange$.next({rule:d,type:"remove",unitId:a,subUnitId:e})}catch(o){this._logService.error(o)}}getRuleById(a,e,i){return this.ensureManager(a,e).getRuleById(i)}getRuleIndex(a,e,i){return this.ensureManager(a,e).getRuleIndex(i)}getRules(a,e){return this.ensureManager(a,e).getDataValidations()}validator(a,e,i){const{unitId:o,subUnitId:d}=i;return this.ensureManager(o,d).validator(a,e,i,c=>{this._validStatusChange$.next({unitId:o,subUnitId:d,ruleId:e.uid,status:c})})}getUnitRules(a){const e=this._model.get(a);if(!e)return[];const i=[];return e.forEach(o=>{i.push([o.subUnitId,o.getDataValidations()])}),i}},l.DataValidationModel=q([j(0,n.ILogService)],l.DataValidationModel);const g={type:n.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(r,t){if(!t)return!1;const{unitId:a,subUnitId:e,rule:i,index:o}=t,d=r.get(l.DataValidationModel);return Array.isArray(i)?i.forEach(s=>{d.addRule(a,e,s,o)}):d.addRule(a,e,i,o),!0}},v={type:n.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(r,t){if(!t)return!1;const{unitId:a,subUnitId:e,ruleId:i}=t,o=r.get(l.DataValidationModel);return Array.isArray(i)?i.forEach(d=>{o.removeRule(a,e,d)}):o.removeRule(a,e,i),!0}},_={type:n.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(r,t){if(!t)return!1;const{unitId:a,subUnitId:e,ruleId:i,payload:o}=t;return r.get(l.DataValidationModel).updateRule(a,e,i,o),!0}};function R(r){return{type:r.type,operator:r.operator,formula1:r.formula1,formula2:r.formula2,allowBlank:r.allowBlank}}function S(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(b.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}]}}var V=(r=>(r[r.SETTING=0]="SETTING",r[r.RANGE=1]="RANGE",r[r.OPTIONS=2]="OPTIONS",r))(V||{});const I={type:n.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(r,t){if(!t)return!1;const{rule:a,unitId:e,subUnitId:i}=t,o=r.get(n.ICommandService),d=r.get(n.IUndoRedoService),s={...t,rule:{...t.rule,ranges:[t.rule.range]}},c=[{id:g.id,params:s}],u=[{id:v.id,params:{unitId:e,subUnitId:i,ruleId:a.uid}}];return d.pushUndoRedo({unitID:e,redoMutations:c,undoMutations:u}),await o.executeCommand(g.id,s),!0}},H=(r,t)=>{const a=r.get(l.DataValidationModel),{unitId:e,subUnitId:i,ruleId:o}=t;if(Array.isArray(o)){const s=o.map(c=>a.getRuleById(e,i,c)).filter(Boolean);return[{id:g.id,params:{unitId:e,subUnitId:i,rule:s}}]}return[{id:g.id,params:{unitId:e,subUnitId:i,rule:{...a.getRuleById(e,i,o)},index:a.getRuleIndex(e,i,o)}}]},y={type:n.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(r,t){if(!t)return!1;const{unitId:a,subUnitId:e,ruleId:i}=t,o=r.get(n.ICommandService),d=r.get(n.IUndoRedoService),s=r.get(l.DataValidationModel),c=[{id:v.id,params:t}],u=[{id:g.id,params:{unitId:a,subUnitId:e,rule:{...s.getRuleById(a,e,i)},index:s.getRuleIndex(a,e,i)}}];return d.pushUndoRedo({undoMutations:u,redoMutations:c,unitID:t.unitId}),o.executeCommand(v.id,t),!0}},A={type:n.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(r,t){if(!t)return!1;const a=r.get(n.ICommandService),e=r.get(n.IUndoRedoService),i=r.get(l.DataValidationModel),{unitId:o,subUnitId:d,ruleId:s,options:c}=t,u=i.getRuleById(o,d,s);if(!u)return!1;const m={unitId:o,subUnitId:d,ruleId:s,payload:{type:V.OPTIONS,payload:c}},O=[{id:_.id,params:m}],f={unitId:o,subUnitId:d,ruleId:s,payload:{type:V.OPTIONS,payload:S(u)}},D=[{id:_.id,params:f}];return e.pushUndoRedo({unitID:o,redoMutations:O,undoMutations:D}),a.executeCommand(_.id,m),!0}},N={type:n.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(r,t){if(!t)return!1;const a=r.get(n.ICommandService),e=r.get(n.IUndoRedoService),i=r.get(l.DataValidationModel),o=r.get(T),{unitId:d,subUnitId:s,ruleId:c,setting:u}=t,m=o.getValidatorItem(u.type);if(!m||!m.validatorFormula(u).success)return!1;const O=i.getRuleById(d,s,c);if(!O)return!1;const f={unitId:d,subUnitId:s,ruleId:c,payload:{type:V.SETTING,payload:u}},D=[{id:_.id,params:f}],ta={unitId:d,subUnitId:s,ruleId:c,payload:{type:V.SETTING,payload:R(O)}},ea=[{id:_.id,params:ta}];return e.pushUndoRedo({unitID:d,redoMutations:D,undoMutations:ea}),a.executeCommand(_.id,f),!0}},C={type:n.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(r,t){if(!t)return!1;const{unitId:a,subUnitId:e}=t,i=r.get(n.ICommandService),o=r.get(l.DataValidationModel),d=r.get(n.IUndoRedoService),s=[...o.getRules(a,e)],c={unitId:a,subUnitId:e,ruleId:s.map(O=>O.uid)},u=[{id:v.id,params:c}],m=[{id:g.id,params:{unitId:a,subUnitId:e,rule:s}}];return d.pushUndoRedo({redoMutations:u,undoMutations:m,unitID:a}),i.executeCommand(v.id,c),!0}};var Q=Object.defineProperty,W=Object.getOwnPropertyDescriptor,F=(r,t,a,e)=>{for(var i=e>1?void 0:e?W(t,a):t,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(e?d(t,a,i):d(i))||i);return e&&i&&Q(t,a,i),i},U=(r,t)=>(a,e)=>t(a,e,r);const J="data-validation";l.UniverDataValidationPlugin=class extends n.Plugin{constructor(t,a){super(J),this._injector=t,this._commandService=a}onStarting(t){[[l.DataValidationModel],[T]].forEach(a=>{t.add(a)}),[I,C,A,N,y,g,_,v].forEach(a=>{this._commandService.registerCommand(a)})}},l.UniverDataValidationPlugin=F([U(0,h.Inject(h.Injector)),U(1,n.ICommandService)],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"};var X=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,Z=(r,t,a,e)=>{for(var i=e>1?void 0:e?Y(t,a):t,o=r.length-1,d;o>=0;o--)(d=r[o])&&(i=(e?d(t,a,i):d(i))||i);return e&&i&&X(t,a,i),i},w=(r,t)=>(a,e)=>t(a,e,r);const L="{FORMULA1}",B="{FORMULA2}",x={[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(t,a){p(this,"canvasRender",null);p(this,"dropdown");p(this,"optionsInput");this.localeService=t,this.injector=a}get operatorNames(){return this.operators.map(t=>this.localeService.t(x[t]))}get titleStr(){return this.localeService.t(this.title)}skipDefaultFontRender(t,a,e){return!1}generateRuleName(t){var e,i;if(!t.operator)return this.titleStr;const a=this.localeService.t(z[t.operator]).replace(L,(e=t.formula1)!=null?e:"").replace(B,(i=t.formula2)!=null?i:"");return`${this.titleStr} ${a}`}generateRuleErrorMessage(t){var e,i;return t.operator?`${this.localeService.t(K[t.operator]).replace(L,(e=t.formula1)!=null?e:"").replace(B,(i=t.formula2)!=null?i:"")}`:this.titleStr}getRuleFinalError(t){return t.showInputMessage&&t.error?t.error:this.generateRuleErrorMessage(t)}isEmptyCellValue(t){return t===""||t===void 0||t===null}async isValidType(t,a,e){return!0}transform(t,a,e){return t}async validatorIsEqual(t,a,e){return!0}async validatorIsNotEqual(t,a,e){return!0}async validatorIsBetween(t,a,e){return!0}async validatorIsNotBetween(t,a,e){return!0}async validatorIsGreaterThan(t,a,e){return!0}async validatorIsGreaterThanOrEqual(t,a,e){return!0}async validatorIsLessThan(t,a,e){return!0}async validatorIsLessThanOrEqual(t,a,e){return!0}async validator(t,a){const{value:e,unitId:i,subUnitId:o}=t,d=this.isEmptyCellValue(e),{allowBlank:s=!0,operator:c}=a;if(d)return s;const u=await this.parseFormula(a,i,o);if(!await this.isValidType(t,u,a))return!1;if(!n.Tools.isDefine(c))return!0;const m=this.transform(t,u,a);switch(c){case n.DataValidationOperator.BETWEEN:return this.validatorIsBetween(m,u,a);case n.DataValidationOperator.EQUAL:return this.validatorIsEqual(m,u,a);case n.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(m,u,a);case n.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(m,u,a);case n.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(m,u,a);case n.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(m,u,a);case n.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(m,u,a);case n.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(m,u,a);default:throw new Error("Unknown operator.")}}},l.BaseDataValidator=Z([w(0,h.Inject(n.LocaleService)),w(1,h.Inject(h.Injector))],l.BaseDataValidator);class k extends n.Disposable{constructor(a,e,i){super();p(this,"_dataValidations");p(this,"_dataValidationMap",new Map);p(this,"_dataValidations$",new E.Subject);p(this,"unitId");p(this,"subUnitId");p(this,"dataValidations$",this._dataValidations$.asObservable());this.unitId=a,this.subUnitId=e,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(e=>{this._dataValidationMap.set(e.uid,e)})}getRuleById(a){return this._dataValidationMap.get(a)}getRuleIndex(a){return this._dataValidations.findIndex(e=>e.uid===a)}addRule(a,e){typeof e=="number"&&e<this._dataValidations.length?this._dataValidations.splice(e,0,a):this._dataValidations.push(a),this._dataValidationMap.set(a.uid,a),this._notice()}removeRule(a){const e=this._dataValidations.findIndex(i=>i.uid===a);this._dataValidations.splice(e,1),this._dataValidationMap.delete(a),this._notice()}updateRule(a,e){const i=this._dataValidationMap.get(a),o=this._dataValidations.findIndex(s=>a===s.uid);if(!i)throw new Error(`Data validation rule is not found, ruleId: ${a}.`);const d={...i};switch(e.type){case V.RANGE:{d.ranges=e.payload;break}case V.SETTING:{Object.assign(d,e.payload);break}case V.OPTIONS:{Object.assign(d,e.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,e,i,o){return n.DataValidationStatus.VALID}}const aa=[n.DataValidationOperator.BETWEEN,n.DataValidationOperator.NOT_BETWEEN];l.AddDataValidationCommand=I,l.AddDataValidationMutation=g,l.DataValidationManager=k,l.DataValidatorRegistryScope=M,l.DataValidatorRegistryService=T,l.RemoveAllDataValidationCommand=C,l.RemoveDataValidationCommand=y,l.RemoveDataValidationMutation=v,l.TWO_FORMULA_OPERATOR_COUNT=aa,l.UpdateDataValidationMutation=_,l.UpdateDataValidationOptionsCommand=A,l.UpdateDataValidationSettingCommand=N,l.UpdateRuleType=V,l.createDefaultNewRule=G,l.getRuleOptions=S,l.getRuleSetting=R,l.removeDataValidationUndoFactory=H,Object.defineProperty(l,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,O,T){"use strict";var ma=Object.defineProperty;var _a=(s,n,m)=>n in s?ma(s,n,{enumerable:!0,configurable:!0,writable:!0,value:m}):s[n]=m;var h=(s,n,m)=>(_a(s,typeof n!="symbol"?n+"":n,m),m);var f;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 O.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 _=(r=>(r[r.SETTING=0]="SETTING",r[r.RANGE=1]="RANGE",r[r.OPTIONS=2]="OPTIONS",r))(_||{});function M(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 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 C extends n.Disposable{constructor(a,t,i){super();h(this,"_dataValidations");h(this,"_dataValidationMap",new Map);h(this,"_dataValidations$",new O.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 _.RANGE:{d.ranges=t.payload;break}case _.SETTING:{Object.assign(d,M(t.payload));break}case _.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 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 C(a,t,[]));h(this,"_ruleChange$",new O.Subject);h(this,"_validStatusChange$",new O.Subject);h(this,"ruleChange$",this._ruleChange$.asObservable());h(this,"ruleChangeDebounce$",this.ruleChange$.pipe(O.debounceTime(20)));h(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 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=>{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)}},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}},g={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}},v={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}},U={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:g.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:g.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(g.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:_.OPTIONS,payload:c}},E=[{id:v.id,params:p}],D={unitId:o,subUnitId:d,ruleId:l,payload:{type:_.OPTIONS,payload:R(u)}},y=[{id:v.id,params:D}];return t.pushUndoRedo({unitID:o,redoMutations:E,undoMutations:y}),a.executeCommand(v.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||!p.validatorFormula(u).success)return!1;const E=i.getRuleById(d,l,c);if(!E)return!1;const D={unitId:d,subUnitId:l,ruleId:c,payload:{type:_.SETTING,payload:u}},y=[{id:v.id,params:D}],ha={unitId:d,subUnitId:l,ruleId:c,payload:{type:_.SETTING,payload:M(E)}},pa=[{id:v.id,params:ha}];return t.pushUndoRedo({unitID:d,redoMutations:y,undoMutations:pa}),a.executeCommand(v.id,D),!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(E=>E.uid)},u=[{id:g.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(g.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},I=(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),I(0,n.IResourceManagerService),I(1,n.IUniverInstanceService),I(2,m.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=>{if(e.id===T.RemoveSheetCommand.id){const a=e.params,t=a.unitId||this._univerInstanceService.getCurrentUnitForType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),i=this._univerInstanceService.getUniverSheetInstance(t);if(!i)return{redos:[],undos:[]};const o=a.subUnitId||i.getActiveSheet().getSheetId(),d=this._dataValidationModel.ensureManager(t,o);if(!d)return{redos:[],undos:[]};const l=d.getDataValidations(),c=l.map(E=>E.uid),u={unitId:t,subUnitId:o,ruleId:c},p={unitId:t,subUnitId:o,rule:l};return{redos:[{id:g.id,params:u}],undos:[{id:V.id,params:p}]}}return{redos:[],undos:[]}}}))}},s.DataValidationSheetController=k([n.OnLifecycle(n.LifecycleStages.Ready,s.DataValidationSheetController),A(0,m.Inject(T.SheetInterceptorService)),A(1,m.Inject(n.IUniverInstanceService)),A(2,m.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="data-validation";s.UniverDataValidationPlugin=(f=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)}),[U,P,w,b,L,V,v,g].forEach(a=>{this._commandService.registerCommand(a)})}},h(f,"pluginName",ia),h(f,"type",n.UniverInstanceType.UNIVER_SHEET),f),s.UniverDataValidationPlugin=ea([B(1,m.Inject(m.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,m.Inject(n.LocaleService)),$(1,m.Inject(m.Injector))],s.BaseDataValidator);const ca=[n.DataValidationOperator.BETWEEN,n.DataValidationOperator.NOT_BETWEEN];s.AddDataValidationCommand=U,s.AddDataValidationMutation=V,s.DataValidationManager=C,s.DataValidatorRegistryScope=N,s.DataValidatorRegistryService=S,s.RemoveAllDataValidationCommand=P,s.RemoveDataValidationCommand=L,s.RemoveDataValidationMutation=g,s.TWO_FORMULA_OPERATOR_COUNT=ca,s.TextLengthErrorTitleMap=oa,s.UpdateDataValidationMutation=v,s.UpdateDataValidationOptionsCommand=w,s.UpdateDataValidationSettingCommand=b,s.UpdateRuleType=_,s.createDefaultNewRule=H,s.getRuleOptions=R,s.getRuleSetting=M,s.removeDataValidationUndoFactory=J,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/data-validation",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "",
|
|
6
|
-
"author": "univer.ai",
|
|
7
|
-
"license": "",
|
|
8
|
-
"
|
|
5
|
+
"description": "Data validation library for Univer",
|
|
6
|
+
"author": "DreamNum <developer@univer.ai>",
|
|
7
|
+
"license": "Apache-2.0",
|
|
8
|
+
"funding": {
|
|
9
|
+
"type": "opencollective",
|
|
10
|
+
"url": "https://opencollective.com/univer"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://univer.ai",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/dream-num/univer"
|
|
16
|
+
},
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/dream-num/univer/issues"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"univer"
|
|
22
|
+
],
|
|
23
|
+
"sideEffects": [
|
|
24
|
+
"**/*.css"
|
|
25
|
+
],
|
|
9
26
|
"exports": {
|
|
10
27
|
".": {
|
|
11
28
|
"import": "./lib/es/index.js",
|
|
@@ -32,23 +49,20 @@
|
|
|
32
49
|
"lib"
|
|
33
50
|
],
|
|
34
51
|
"peerDependencies": {
|
|
35
|
-
"@wendellhu/redi": "0.13.
|
|
52
|
+
"@wendellhu/redi": "^0.13.3",
|
|
36
53
|
"rxjs": ">=7.0.0",
|
|
37
|
-
"@univerjs/core": "0.1.
|
|
38
|
-
"@univerjs/sheets": "0.1.
|
|
39
|
-
},
|
|
40
|
-
"dependencies": {
|
|
41
|
-
"dayjs": "^1.11.10"
|
|
54
|
+
"@univerjs/core": "0.1.8",
|
|
55
|
+
"@univerjs/sheets": "0.1.8"
|
|
42
56
|
},
|
|
43
57
|
"devDependencies": {
|
|
44
|
-
"@wendellhu/redi": "^0.13.
|
|
58
|
+
"@wendellhu/redi": "^0.13.3",
|
|
45
59
|
"rxjs": "^7.8.1",
|
|
46
|
-
"typescript": "^5.4.
|
|
47
|
-
"vite": "^5.2.
|
|
48
|
-
"vitest": "^1.
|
|
49
|
-
"@univerjs/
|
|
50
|
-
"@univerjs/
|
|
51
|
-
"@univerjs/sheets": "0.1.
|
|
60
|
+
"typescript": "^5.4.5",
|
|
61
|
+
"vite": "^5.2.10",
|
|
62
|
+
"vitest": "^1.5.0",
|
|
63
|
+
"@univerjs/shared": "0.1.8",
|
|
64
|
+
"@univerjs/core": "0.1.8",
|
|
65
|
+
"@univerjs/sheets": "0.1.8"
|
|
52
66
|
},
|
|
53
67
|
"scripts": {
|
|
54
68
|
"dev": "vite",
|