@univerjs/data-validation 0.10.3-nightly.202508150623 → 0.10.4-nightly.202508220605

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.
Files changed (2) hide show
  1. package/lib/umd/index.js +1 -1
  2. package/package.json +7 -7
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(s,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs"],r):(s=typeof globalThis<"u"?globalThis:s||self,r(s.UniverDataValidation={},s.UniverCore,s.rxjs))})(this,function(s,r,g){"use strict";var da=Object.defineProperty;var sa=(s,r,g)=>r in s?da(s,r,{enumerable:!0,configurable:!0,writable:!0,value:g}):s[r]=g;var p=(s,r,g)=>sa(s,typeof r!="symbol"?r+"":r,g);var T;function N(n){return{type:n.type,operator:n.operator,formula1:n.formula1,formula2:n.formula2,allowBlank:n.allowBlank}}function M(n){return{error:n.error,errorStyle:n.errorStyle,errorTitle:n.errorTitle,imeMode:n.imeMode,prompt:n.prompt,promptTitle:n.promptTitle,showDropDown:n.showDropDown,showErrorMessage:n.showErrorMessage,showInputMessage:n.showInputMessage,renderMode:n.renderMode,bizInfo:n.bizInfo}}var h=(n=>(n[n.SETTING=0]="SETTING",n[n.RANGE=1]="RANGE",n[n.OPTIONS=2]="OPTIONS",n[n.ALL=3]="ALL",n))(h||{}),q=Object.getOwnPropertyDescriptor,G=(n,a,i,e)=>{for(var t=e>1?void 0:e?q(a,i):a,o=n.length-1,d;o>=0;o--)(d=n[o])&&(t=d(t)||t);return t},j=(n,a)=>(i,e)=>a(i,e,n);s.DataValidationModel=class extends r.Disposable{constructor(i){super();p(this,"_model",new Map);p(this,"_ruleChange$",new g.Subject);p(this,"ruleChange$",this._ruleChange$.asObservable());p(this,"ruleChangeDebounce$",this.ruleChange$.pipe(g.debounceTime(20)));this._logService=i,this.disposeWithMe({dispose:()=>{this._ruleChange$.complete()}})}_ensureMap(i,e){this._model.has(i)||this._model.set(i,new Map);const t=this._model.get(i);if(t.has(e))return t.get(e);const o={map:new Map,list:[]};return t.set(e,o),o}_addSubUnitRule(i,e,t){const{map:o,list:d}=i,c=(Array.isArray(e)?e:[e]).filter(u=>!o.has(u.uid));typeof t=="number"&&t<d.length?d.splice(t,0,...c):d.push(...c),c.forEach(u=>{o.set(u.uid,u)})}_removeSubUnitRule(i,e){const{map:t,list:o}=i,d=o.findIndex(l=>l.uid===e);d>-1&&(o.splice(d,1),t.delete(e))}_updateSubUnitRule(i,e,t){const{map:o,list:d}=i,l=o.get(e),c=d.findIndex(m=>e===m.uid);if(!l)throw new Error(`Data validation rule is not found, ruleId: ${e}.`);const u={...l};switch(t.type){case h.RANGE:{u.ranges=t.payload;break}case h.SETTING:{Object.assign(u,N(t.payload));break}case h.OPTIONS:{Object.assign(u,M(t.payload));break}case h.ALL:{Object.assign(u,t.payload);break}}return d[c]=u,o.set(e,u),u}_addRuleSideEffect(i,e,t,o){if(!this._ensureMap(i,e).map.get(t.uid))return{rule:t,type:"add",unitId:i,subUnitId:e,source:o}}addRule(i,e,t,o,d){try{const l=this._ensureMap(i,e),u=(Array.isArray(t)?t:[t]).map(m=>this._addRuleSideEffect(i,e,m,o));this._addSubUnitRule(l,t,d),u.forEach(m=>{m&&this._ruleChange$.next(m)})}catch(l){this._logService.error(l)}}updateRule(i,e,t,o,d){try{const l=this._ensureMap(i,e),c=r.Tools.deepClone(l.map.get(t));if(!c)throw new Error(`Data validation rule is not found, ruleId: ${t}.`);const u=this._updateSubUnitRule(l,t,o);this._ruleChange$.next({rule:u,type:"update",unitId:i,subUnitId:e,source:d,updatePayload:o,oldRule:c})}catch(l){this._logService.error(l)}}removeRule(i,e,t,o){try{const d=this._ensureMap(i,e),l=d.map.get(t);l&&(this._removeSubUnitRule(d,t),this._ruleChange$.next({rule:l,type:"remove",unitId:i,subUnitId:e,source:o}))}catch(d){this._logService.error(d)}}getRuleById(i,e,t){return this._ensureMap(i,e).map.get(t)}getRuleIndex(i,e,t){return this._ensureMap(i,e).list.findIndex(d=>d.uid===t)}getRules(i,e){return[...this._ensureMap(i,e).list]}getUnitRules(i){const e=this._model.get(i);if(!e)return[];const t=[];return e.forEach((o,d)=>{t.push([d,o.list])}),t}deleteUnitRules(i){this._model.delete(i)}getSubUnitIds(i){var e,t;return Array.from((t=(e=this._model.get(i))==null?void 0:e.keys())!=null?t:[])}getAll(){return Array.from(this._model.keys()).map(i=>[i,this.getUnitRules(i)])}},s.DataValidationModel=G([j(0,r.ILogService)],s.DataValidationModel);const O={type:r.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(n,a){if(!a)return!1;const{unitId:i,subUnitId:e,rule:t,index:o,source:d="command"}=a;return n.get(s.DataValidationModel).addRule(i,e,t,d,o),!0}},v={type:r.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(n,a){if(!a)return!1;const{unitId:i,subUnitId:e,ruleId:t,source:o="command"}=a,d=n.get(s.DataValidationModel);return Array.isArray(t)?t.forEach(l=>{d.removeRule(i,e,l,o)}):d.removeRule(i,e,t,o),!0}},E={type:r.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(n,a){if(!a)return!1;const{unitId:i,subUnitId:e,ruleId:t,payload:o,source:d="command"}=a;return n.get(s.DataValidationModel).updateRule(i,e,t,o,d),!0}};var $=Object.getOwnPropertyDescriptor,H=(n,a,i,e)=>{for(var t=e>1?void 0:e?$(a,i):a,o=n.length-1,d;o>=0;o--)(d=n[o])&&(t=d(t)||t);return t},D=(n,a)=>(i,e)=>a(i,e,n);const Q="SHEET_DATA_VALIDATION_PLUGIN";s.DataValidationResourceController=class extends r.Disposable{constructor(a,i,e){super(),this._resourceManagerService=a,this._univerInstanceService=i,this._dataValidationModel=e,this._initSnapshot()}_initSnapshot(){const a=e=>{const t=this._dataValidationModel.getUnitRules(e),o={};return t?(t.forEach(([d,l])=>{o[d]=l}),JSON.stringify(o)):""},i=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Q,businesses:[r.UniverInstanceType.UNIVER_SHEET],toJson:e=>a(e),parseJson:e=>i(e),onUnLoad:e=>{this._dataValidationModel.deleteUnitRules(e)},onLoad:(e,t)=>{Object.keys(t).forEach(o=>{t[o].forEach(l=>{this._dataValidationModel.addRule(e,o,l,"patched")})})}}))}},s.DataValidationResourceController=H([D(0,r.IResourceManagerService),D(1,r.IUniverInstanceService),D(2,r.Inject(s.DataValidationModel))],s.DataValidationResourceController);var L=(n=>(n.SHEET="sheet",n))(L||{});class R{constructor(){p(this,"_validatorByScopes",new Map);p(this,"_validatorMap",new Map);p(this,"_validatorsChange$",new g.BehaviorSubject(void 0));p(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(a,i){this._validatorByScopes.has(i)||this._validatorByScopes.set(i,[]);const e=this._validatorByScopes.get(i);if(e.findIndex(t=>t.id===a.id)>-1)throw new Error(`Validator item with the same id ${a.id} has already been added!`);e.push(a)}_removeValidatorFromScope(a,i){const e=this._validatorByScopes.get(i);if(!e)return;const t=e.findIndex(o=>o.id===a.id);t>-1&&e.splice(t,1)}register(a){return this._validatorMap.set(a.id,a),Array.isArray(a.scopes)?a.scopes.forEach(i=>{this._addValidatorToScope(a,i)}):this._addValidatorToScope(a,a.scopes),this._validatorsChange$.next(),r.toDisposable(()=>{this._validatorMap.delete(a.id),Array.isArray(a.scopes)?a.scopes.forEach(i=>{this._removeValidatorFromScope(a,i)}):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:r.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(n,a){if(n.get(r.ILogService).error("[Deprecated]: `AddDataValidationCommand` is deprecated, please use `AddSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{rule:e,unitId:t,subUnitId:o}=a,d=n.get(r.ICommandService),l=n.get(r.IUndoRedoService),c={...a,rule:{...a.rule,ranges:[a.rule.range]}},u=[{id:O.id,params:c}],m=[{id:v.id,params:{unitId:t,subUnitId:o,ruleId:e.uid}}];return l.pushUndoRedo({unitID:t,redoMutations:u,undoMutations:m}),await d.executeCommand(O.id,c),!0}},W={type:r.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(n,a){if(n.get(r.ILogService).error("[Deprecated]: `RemoveDataValidationCommand` is deprecated, please use `RemoveSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{unitId:e,subUnitId:t,ruleId:o}=a,d=n.get(r.ICommandService),l=n.get(r.IUndoRedoService),c=n.get(s.DataValidationModel),u=[{id:v.id,params:a}],m=[{id:O.id,params:{unitId:e,subUnitId:t,rule:{...c.getRuleById(e,t,o)},index:c.getRuleIndex(e,t,o)}}];return l.pushUndoRedo({undoMutations:m,redoMutations:u,unitID:a.unitId}),d.executeCommand(v.id,a),!0}},k={type:r.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(n,a){if(n.get(r.ILogService).warn("[Deprecated]: `UpdateDataValidationOptionsCommand` is deprecated, please use `UpdateSheetDataValidationOptionsCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const e=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),o=n.get(s.DataValidationModel),{unitId:d,subUnitId:l,ruleId:c,options:u}=a,m=o.getRuleById(d,l,c);if(!m)return!1;const _={unitId:d,subUnitId:l,ruleId:c,payload:{type:h.OPTIONS,payload:u}},V=[{id:E.id,params:_}],S={unitId:d,subUnitId:l,ruleId:c,payload:{type:h.OPTIONS,payload:M(m)}},f=[{id:E.id,params:S}];return t.pushUndoRedo({unitID:d,redoMutations:V,undoMutations:f}),e.executeCommand(E.id,_),!0}},J={type:r.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(n,a){if(n.get(r.ILogService).error("[Deprecated]: `UpdateDataValidationSettingCommand` is deprecated, please use `UpdateSheetDataValidationSettingCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const e=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),o=n.get(s.DataValidationModel),d=n.get(R),{unitId:l,subUnitId:c,ruleId:u,setting:m}=a,_=d.getValidatorItem(m.type);if(!_)return!1;const V=o.getRuleById(l,c,u);if(!V)return!1;const S={...V,...m};if(!_.validatorFormula(S,l,c).success)return!1;const f={unitId:l,subUnitId:c,ruleId:u,payload:{type:h.SETTING,payload:{...m,..._.normalizeFormula(S,l,c)}}},ra=[{id:E.id,params:f}],na={unitId:l,subUnitId:c,ruleId:u,payload:{type:h.SETTING,payload:N(V)}},oa=[{id:E.id,params:na}];return t.pushUndoRedo({unitID:l,redoMutations:ra,undoMutations:oa}),e.executeCommand(E.id,f),!0}},x={type:r.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(n,a){if(n.get(r.ILogService).error("[Deprecated]: `RemoveAllDataValidationCommand` is deprecated, please use `RemoveSheetAllDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{unitId:e,subUnitId:t}=a,o=n.get(r.ICommandService),d=n.get(s.DataValidationModel),l=n.get(r.IUndoRedoService),c=[...d.getRules(e,t)],u={unitId:e,subUnitId:t,ruleId:c.map(V=>V.uid)},m=[{id:v.id,params:u}],_=[{id:O.id,params:{unitId:e,subUnitId:t,rule:c}}];return l.pushUndoRedo({redoMutations:m,undoMutations:_,unitID:e}),o.executeCommand(v.id,u),!0}},z="data-validation.config",C={};var Y=Object.getOwnPropertyDescriptor,K=(n,a,i,e)=>{for(var t=e>1?void 0:e?Y(a,i):a,o=n.length-1,d;o>=0;o--)(d=n[o])&&(t=d(t)||t);return t},A=(n,a)=>(i,e)=>a(i,e,n);const X="UNIVER_DATA_VALIDATION_PLUGIN";s.UniverDataValidationPlugin=(T=class extends r.Plugin{constructor(a=C,i,e,t){super(),this._config=a,this._injector=i,this._commandService=e,this._configService=t;const{...o}=r.merge({},C,this._config);this._configService.setConfig(z,o)}onStarting(){[[s.DataValidationModel],[R],[s.DataValidationResourceController]].forEach(a=>this._injector.add(a)),[F,x,k,J,W,O,E,v].forEach(a=>{this._commandService.registerCommand(a)})}onReady(){this._injector.get(s.DataValidationResourceController)}},p(T,"pluginName",X),p(T,"type",r.UniverInstanceType.UNIVER_SHEET),T),s.UniverDataValidationPlugin=K([A(1,r.Inject(r.Injector)),A(2,r.ICommandService),A(3,r.IConfigService)],s.UniverDataValidationPlugin),r.DataValidationOperator.BETWEEN+"",r.DataValidationOperator.EQUAL+"",r.DataValidationOperator.GREATER_THAN+"",r.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",r.DataValidationOperator.LESS_THAN+"",r.DataValidationOperator.LESS_THAN_OR_EQUAL+"",r.DataValidationOperator.NOT_BETWEEN+"",r.DataValidationOperator.NOT_EQUAL+"";const b={[r.DataValidationOperator.BETWEEN]:"dataValidation.ruleName.between",[r.DataValidationOperator.EQUAL]:"dataValidation.ruleName.equal",[r.DataValidationOperator.GREATER_THAN]:"dataValidation.ruleName.greaterThan",[r.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.ruleName.greaterThanOrEqual",[r.DataValidationOperator.LESS_THAN]:"dataValidation.ruleName.lessThan",[r.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.ruleName.lessThanOrEqual",[r.DataValidationOperator.NOT_BETWEEN]:"dataValidation.ruleName.notBetween",[r.DataValidationOperator.NOT_EQUAL]:"dataValidation.ruleName.notEqual",NONE:"dataValidation.ruleName.legal"},w={[r.DataValidationOperator.BETWEEN]:"dataValidation.errorMsg.between",[r.DataValidationOperator.EQUAL]:"dataValidation.errorMsg.equal",[r.DataValidationOperator.GREATER_THAN]:"dataValidation.errorMsg.greaterThan",[r.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.errorMsg.greaterThanOrEqual",[r.DataValidationOperator.LESS_THAN]:"dataValidation.errorMsg.lessThan",[r.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.errorMsg.lessThanOrEqual",[r.DataValidationOperator.NOT_BETWEEN]:"dataValidation.errorMsg.notBetween",[r.DataValidationOperator.NOT_EQUAL]:"dataValidation.errorMsg.notEqual",NONE:"dataValidation.errorMsg.legal"},Z={[r.DataValidationOperator.BETWEEN]:"dataValidation.textLength.errorMsg.between",[r.DataValidationOperator.EQUAL]:"dataValidation.textLength.errorMsg.equal",[r.DataValidationOperator.GREATER_THAN]:"dataValidation.textLength.errorMsg.greaterThan",[r.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.greaterThanOrEqual",[r.DataValidationOperator.LESS_THAN]:"dataValidation.textLength.errorMsg.lessThan",[r.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.lessThanOrEqual",[r.DataValidationOperator.NOT_BETWEEN]:"dataValidation.textLength.errorMsg.notBetween",[r.DataValidationOperator.NOT_EQUAL]:"dataValidation.textLength.errorMsg.notEqual"},aa=[r.DataValidationOperator.BETWEEN,r.DataValidationOperator.NOT_BETWEEN];var ta=Object.getOwnPropertyDescriptor,ea=(n,a,i,e)=>{for(var t=e>1?void 0:e?ta(a,i):a,o=n.length-1,d;o>=0;o--)(d=n[o])&&(t=d(t)||t);return t},B=(n,a)=>(i,e)=>a(i,e,n);const I="{FORMULA1}",y="{FORMULA2}",U="{TYPE}",ia={[r.DataValidationOperator.BETWEEN]:"dataValidation.operators.between",[r.DataValidationOperator.EQUAL]:"dataValidation.operators.equal",[r.DataValidationOperator.GREATER_THAN]:"dataValidation.operators.greaterThan",[r.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.operators.greaterThanOrEqual",[r.DataValidationOperator.LESS_THAN]:"dataValidation.operators.lessThan",[r.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.operators.lessThanOrEqual",[r.DataValidationOperator.NOT_BETWEEN]:"dataValidation.operators.notBetween",[r.DataValidationOperator.NOT_EQUAL]:"dataValidation.operators.notEqual"};var P=(n=>(n.DATE="date",n.TIME="time",n.DATETIME="datetime",n.LIST="list",n.MULTIPLE_LIST="multipleList",n.COLOR="color",n.CASCADE="cascade",n))(P||{});s.BaseDataValidator=class{constructor(a,i){p(this,"offsetFormulaByRange",!0);p(this,"formulaInput");p(this,"canvasRender",null);p(this,"dropdownType");p(this,"optionsInput");p(this,"skipDefaultFontRender");this.localeService=a,this.injector=i}get operatorNames(){return this.operators.map(a=>this.localeService.t(ia[a]))}get titleStr(){return this.localeService.t(this.title)}generateRuleName(a){var e,t;if(!a.operator)return this.localeService.t(b.NONE).replace(U,this.titleStr);const i=this.localeService.t(b[a.operator]).replace(I,(e=a.formula1)!=null?e:"").replace(y,(t=a.formula2)!=null?t:"");return`${this.titleStr} ${i}`}generateRuleErrorMessage(a,i){var t,o;return a.operator?`${this.localeService.t(w[a.operator]).replace(I,(t=a.formula1)!=null?t:"").replace(y,(o=a.formula2)!=null?o:"")}`:this.localeService.t(w.NONE).replace(U,this.titleStr)}getExtraStyle(a,i,e,t,o){}getRuleFinalError(a,i){return a.showErrorMessage&&a.error?a.error:this.generateRuleErrorMessage(a,i)}isEmptyCellValue(a){return a===""||a===void 0||a===null}normalizeFormula(a,i,e){return{formula1:a.formula1,formula2:a.formula2}}async isValidType(a,i,e){return!0}transform(a,i,e){return a}async validatorIsEqual(a,i,e){const{formula1:t}=i,{value:o}=a;return Number.isNaN(t)?!0:o===t}async validatorIsNotEqual(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value!==t}async validatorIsBetween(a,i,e){const{formula1:t,formula2:o}=i;if(Number.isNaN(t)||Number.isNaN(o))return!0;const d=Math.min(t,o),l=Math.max(t,o);return a.value>=d&&a.value<=l}async validatorIsNotBetween(a,i,e){const{formula1:t,formula2:o}=i;if(Number.isNaN(t)||Number.isNaN(o))return!0;const d=Math.min(t,o),l=Math.max(t,o);return a.value<d||a.value>l}async validatorIsGreaterThan(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value>t}async validatorIsGreaterThanOrEqual(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value>=t}async validatorIsLessThan(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value<t}async validatorIsLessThanOrEqual(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value<=t}async validator(a,i){const{value:e,unitId:t,subUnitId:o}=a,d=this.isEmptyCellValue(e),{allowBlank:l=!0,operator:c}=i;if(d)return l;const u=await this.parseFormula(i,t,o,a.row,a.column);if(!u.isFormulaValid||!await this.isValidType(a,u,i))return!1;if(!c)return!0;const m=this.transform(a,u,i);switch(c){case r.DataValidationOperator.BETWEEN:return this.validatorIsBetween(m,u,i);case r.DataValidationOperator.EQUAL:return this.validatorIsEqual(m,u,i);case r.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(m,u,i);case r.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(m,u,i);case r.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(m,u,i);case r.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(m,u,i);case r.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(m,u,i);case r.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(m,u,i);default:throw new Error("Unknown operator.")}}},s.BaseDataValidator=ea([B(0,r.Inject(r.LocaleService)),B(1,r.Inject(r.Injector))],s.BaseDataValidator),s.AddDataValidationMutation=O,s.DataValidatorDropdownType=P,s.DataValidatorRegistryScope=L,s.DataValidatorRegistryService=R,s.FORMULA1=I,s.FORMULA2=y,s.RemoveDataValidationMutation=v,s.TWO_FORMULA_OPERATOR_COUNT=aa,s.TYPE=U,s.TextLengthErrorTitleMap=Z,s.UpdateDataValidationMutation=E,s.UpdateRuleType=h,s.getRuleOptions=M,s.getRuleSetting=N,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
1
+ (function(s,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs"],r):(s=typeof globalThis<"u"?globalThis:s||self,r(s.UniverDataValidation={},s.UniverCore,s.rxjs))})(this,(function(s,r,g){"use strict";var da=Object.defineProperty;var sa=(s,r,g)=>r in s?da(s,r,{enumerable:!0,configurable:!0,writable:!0,value:g}):s[r]=g;var p=(s,r,g)=>sa(s,typeof r!="symbol"?r+"":r,g);var T;function N(n){return{type:n.type,operator:n.operator,formula1:n.formula1,formula2:n.formula2,allowBlank:n.allowBlank}}function M(n){return{error:n.error,errorStyle:n.errorStyle,errorTitle:n.errorTitle,imeMode:n.imeMode,prompt:n.prompt,promptTitle:n.promptTitle,showDropDown:n.showDropDown,showErrorMessage:n.showErrorMessage,showInputMessage:n.showInputMessage,renderMode:n.renderMode,bizInfo:n.bizInfo}}var h=(n=>(n[n.SETTING=0]="SETTING",n[n.RANGE=1]="RANGE",n[n.OPTIONS=2]="OPTIONS",n[n.ALL=3]="ALL",n))(h||{}),q=Object.getOwnPropertyDescriptor,G=(n,a,i,e)=>{for(var t=e>1?void 0:e?q(a,i):a,o=n.length-1,d;o>=0;o--)(d=n[o])&&(t=d(t)||t);return t},j=(n,a)=>(i,e)=>a(i,e,n);s.DataValidationModel=class extends r.Disposable{constructor(i){super();p(this,"_model",new Map);p(this,"_ruleChange$",new g.Subject);p(this,"ruleChange$",this._ruleChange$.asObservable());p(this,"ruleChangeDebounce$",this.ruleChange$.pipe(g.debounceTime(20)));this._logService=i,this.disposeWithMe({dispose:()=>{this._ruleChange$.complete()}})}_ensureMap(i,e){this._model.has(i)||this._model.set(i,new Map);const t=this._model.get(i);if(t.has(e))return t.get(e);const o={map:new Map,list:[]};return t.set(e,o),o}_addSubUnitRule(i,e,t){const{map:o,list:d}=i,c=(Array.isArray(e)?e:[e]).filter(u=>!o.has(u.uid));typeof t=="number"&&t<d.length?d.splice(t,0,...c):d.push(...c),c.forEach(u=>{o.set(u.uid,u)})}_removeSubUnitRule(i,e){const{map:t,list:o}=i,d=o.findIndex(l=>l.uid===e);d>-1&&(o.splice(d,1),t.delete(e))}_updateSubUnitRule(i,e,t){const{map:o,list:d}=i,l=o.get(e),c=d.findIndex(m=>e===m.uid);if(!l)throw new Error(`Data validation rule is not found, ruleId: ${e}.`);const u={...l};switch(t.type){case h.RANGE:{u.ranges=t.payload;break}case h.SETTING:{Object.assign(u,N(t.payload));break}case h.OPTIONS:{Object.assign(u,M(t.payload));break}case h.ALL:{Object.assign(u,t.payload);break}}return d[c]=u,o.set(e,u),u}_addRuleSideEffect(i,e,t,o){if(!this._ensureMap(i,e).map.get(t.uid))return{rule:t,type:"add",unitId:i,subUnitId:e,source:o}}addRule(i,e,t,o,d){try{const l=this._ensureMap(i,e),u=(Array.isArray(t)?t:[t]).map(m=>this._addRuleSideEffect(i,e,m,o));this._addSubUnitRule(l,t,d),u.forEach(m=>{m&&this._ruleChange$.next(m)})}catch(l){this._logService.error(l)}}updateRule(i,e,t,o,d){try{const l=this._ensureMap(i,e),c=r.Tools.deepClone(l.map.get(t));if(!c)throw new Error(`Data validation rule is not found, ruleId: ${t}.`);const u=this._updateSubUnitRule(l,t,o);this._ruleChange$.next({rule:u,type:"update",unitId:i,subUnitId:e,source:d,updatePayload:o,oldRule:c})}catch(l){this._logService.error(l)}}removeRule(i,e,t,o){try{const d=this._ensureMap(i,e),l=d.map.get(t);l&&(this._removeSubUnitRule(d,t),this._ruleChange$.next({rule:l,type:"remove",unitId:i,subUnitId:e,source:o}))}catch(d){this._logService.error(d)}}getRuleById(i,e,t){return this._ensureMap(i,e).map.get(t)}getRuleIndex(i,e,t){return this._ensureMap(i,e).list.findIndex(d=>d.uid===t)}getRules(i,e){return[...this._ensureMap(i,e).list]}getUnitRules(i){const e=this._model.get(i);if(!e)return[];const t=[];return e.forEach((o,d)=>{t.push([d,o.list])}),t}deleteUnitRules(i){this._model.delete(i)}getSubUnitIds(i){var e,t;return Array.from((t=(e=this._model.get(i))==null?void 0:e.keys())!=null?t:[])}getAll(){return Array.from(this._model.keys()).map(i=>[i,this.getUnitRules(i)])}},s.DataValidationModel=G([j(0,r.ILogService)],s.DataValidationModel);const O={type:r.CommandType.MUTATION,id:"data-validation.mutation.addRule",handler(n,a){if(!a)return!1;const{unitId:i,subUnitId:e,rule:t,index:o,source:d="command"}=a;return n.get(s.DataValidationModel).addRule(i,e,t,d,o),!0}},v={type:r.CommandType.MUTATION,id:"data-validation.mutation.removeRule",handler(n,a){if(!a)return!1;const{unitId:i,subUnitId:e,ruleId:t,source:o="command"}=a,d=n.get(s.DataValidationModel);return Array.isArray(t)?t.forEach(l=>{d.removeRule(i,e,l,o)}):d.removeRule(i,e,t,o),!0}},E={type:r.CommandType.MUTATION,id:"data-validation.mutation.updateRule",handler(n,a){if(!a)return!1;const{unitId:i,subUnitId:e,ruleId:t,payload:o,source:d="command"}=a;return n.get(s.DataValidationModel).updateRule(i,e,t,o,d),!0}};var $=Object.getOwnPropertyDescriptor,H=(n,a,i,e)=>{for(var t=e>1?void 0:e?$(a,i):a,o=n.length-1,d;o>=0;o--)(d=n[o])&&(t=d(t)||t);return t},D=(n,a)=>(i,e)=>a(i,e,n);const Q="SHEET_DATA_VALIDATION_PLUGIN";s.DataValidationResourceController=class extends r.Disposable{constructor(a,i,e){super(),this._resourceManagerService=a,this._univerInstanceService=i,this._dataValidationModel=e,this._initSnapshot()}_initSnapshot(){const a=e=>{const t=this._dataValidationModel.getUnitRules(e),o={};return t?(t.forEach(([d,l])=>{o[d]=l}),JSON.stringify(o)):""},i=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Q,businesses:[r.UniverInstanceType.UNIVER_SHEET],toJson:e=>a(e),parseJson:e=>i(e),onUnLoad:e=>{this._dataValidationModel.deleteUnitRules(e)},onLoad:(e,t)=>{Object.keys(t).forEach(o=>{t[o].forEach(l=>{this._dataValidationModel.addRule(e,o,l,"patched")})})}}))}},s.DataValidationResourceController=H([D(0,r.IResourceManagerService),D(1,r.IUniverInstanceService),D(2,r.Inject(s.DataValidationModel))],s.DataValidationResourceController);var L=(n=>(n.SHEET="sheet",n))(L||{});class R{constructor(){p(this,"_validatorByScopes",new Map);p(this,"_validatorMap",new Map);p(this,"_validatorsChange$",new g.BehaviorSubject(void 0));p(this,"validatorsChange$",this._validatorsChange$.asObservable())}_addValidatorToScope(a,i){this._validatorByScopes.has(i)||this._validatorByScopes.set(i,[]);const e=this._validatorByScopes.get(i);if(e.findIndex(t=>t.id===a.id)>-1)throw new Error(`Validator item with the same id ${a.id} has already been added!`);e.push(a)}_removeValidatorFromScope(a,i){const e=this._validatorByScopes.get(i);if(!e)return;const t=e.findIndex(o=>o.id===a.id);t>-1&&e.splice(t,1)}register(a){return this._validatorMap.set(a.id,a),Array.isArray(a.scopes)?a.scopes.forEach(i=>{this._addValidatorToScope(a,i)}):this._addValidatorToScope(a,a.scopes),this._validatorsChange$.next(),r.toDisposable(()=>{this._validatorMap.delete(a.id),Array.isArray(a.scopes)?a.scopes.forEach(i=>{this._removeValidatorFromScope(a,i)}):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:r.CommandType.COMMAND,id:"data-validation.command.addRule",async handler(n,a){if(n.get(r.ILogService).error("[Deprecated]: `AddDataValidationCommand` is deprecated, please use `AddSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{rule:e,unitId:t,subUnitId:o}=a,d=n.get(r.ICommandService),l=n.get(r.IUndoRedoService),c={...a,rule:{...a.rule,ranges:[a.rule.range]}},u=[{id:O.id,params:c}],m=[{id:v.id,params:{unitId:t,subUnitId:o,ruleId:e.uid}}];return l.pushUndoRedo({unitID:t,redoMutations:u,undoMutations:m}),await d.executeCommand(O.id,c),!0}},W={type:r.CommandType.COMMAND,id:"data-validation.command.removeRule",handler(n,a){if(n.get(r.ILogService).error("[Deprecated]: `RemoveDataValidationCommand` is deprecated, please use `RemoveSheetDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{unitId:e,subUnitId:t,ruleId:o}=a,d=n.get(r.ICommandService),l=n.get(r.IUndoRedoService),c=n.get(s.DataValidationModel),u=[{id:v.id,params:a}],m=[{id:O.id,params:{unitId:e,subUnitId:t,rule:{...c.getRuleById(e,t,o)},index:c.getRuleIndex(e,t,o)}}];return l.pushUndoRedo({undoMutations:m,redoMutations:u,unitID:a.unitId}),d.executeCommand(v.id,a),!0}},k={type:r.CommandType.COMMAND,id:"data-validation.command.updateDataValidationSetting",handler(n,a){if(n.get(r.ILogService).warn("[Deprecated]: `UpdateDataValidationOptionsCommand` is deprecated, please use `UpdateSheetDataValidationOptionsCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const e=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),o=n.get(s.DataValidationModel),{unitId:d,subUnitId:l,ruleId:c,options:u}=a,m=o.getRuleById(d,l,c);if(!m)return!1;const _={unitId:d,subUnitId:l,ruleId:c,payload:{type:h.OPTIONS,payload:u}},V=[{id:E.id,params:_}],S={unitId:d,subUnitId:l,ruleId:c,payload:{type:h.OPTIONS,payload:M(m)}},f=[{id:E.id,params:S}];return t.pushUndoRedo({unitID:d,redoMutations:V,undoMutations:f}),e.executeCommand(E.id,_),!0}},J={type:r.CommandType.COMMAND,id:"data-validation.command.updateDataValidationOptions",handler(n,a){if(n.get(r.ILogService).error("[Deprecated]: `UpdateDataValidationSettingCommand` is deprecated, please use `UpdateSheetDataValidationSettingCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const e=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),o=n.get(s.DataValidationModel),d=n.get(R),{unitId:l,subUnitId:c,ruleId:u,setting:m}=a,_=d.getValidatorItem(m.type);if(!_)return!1;const V=o.getRuleById(l,c,u);if(!V)return!1;const S={...V,...m};if(!_.validatorFormula(S,l,c).success)return!1;const f={unitId:l,subUnitId:c,ruleId:u,payload:{type:h.SETTING,payload:{...m,..._.normalizeFormula(S,l,c)}}},ra=[{id:E.id,params:f}],na={unitId:l,subUnitId:c,ruleId:u,payload:{type:h.SETTING,payload:N(V)}},oa=[{id:E.id,params:na}];return t.pushUndoRedo({unitID:l,redoMutations:ra,undoMutations:oa}),e.executeCommand(E.id,f),!0}},x={type:r.CommandType.COMMAND,id:"data-validation.command.removeAll",handler(n,a){if(n.get(r.ILogService).error("[Deprecated]: `RemoveAllDataValidationCommand` is deprecated, please use `RemoveSheetAllDataValidationCommand` in `@univerjs/sheets-data-validation` instead!"),!a)return!1;const{unitId:e,subUnitId:t}=a,o=n.get(r.ICommandService),d=n.get(s.DataValidationModel),l=n.get(r.IUndoRedoService),c=[...d.getRules(e,t)],u={unitId:e,subUnitId:t,ruleId:c.map(V=>V.uid)},m=[{id:v.id,params:u}],_=[{id:O.id,params:{unitId:e,subUnitId:t,rule:c}}];return l.pushUndoRedo({redoMutations:m,undoMutations:_,unitID:e}),o.executeCommand(v.id,u),!0}},z="data-validation.config",C={};var Y=Object.getOwnPropertyDescriptor,K=(n,a,i,e)=>{for(var t=e>1?void 0:e?Y(a,i):a,o=n.length-1,d;o>=0;o--)(d=n[o])&&(t=d(t)||t);return t},A=(n,a)=>(i,e)=>a(i,e,n);const X="UNIVER_DATA_VALIDATION_PLUGIN";s.UniverDataValidationPlugin=(T=class extends r.Plugin{constructor(a=C,i,e,t){super(),this._config=a,this._injector=i,this._commandService=e,this._configService=t;const{...o}=r.merge({},C,this._config);this._configService.setConfig(z,o)}onStarting(){[[s.DataValidationModel],[R],[s.DataValidationResourceController]].forEach(a=>this._injector.add(a)),[F,x,k,J,W,O,E,v].forEach(a=>{this._commandService.registerCommand(a)})}onReady(){this._injector.get(s.DataValidationResourceController)}},p(T,"pluginName",X),p(T,"type",r.UniverInstanceType.UNIVER_SHEET),T),s.UniverDataValidationPlugin=K([A(1,r.Inject(r.Injector)),A(2,r.ICommandService),A(3,r.IConfigService)],s.UniverDataValidationPlugin),r.DataValidationOperator.BETWEEN+"",r.DataValidationOperator.EQUAL+"",r.DataValidationOperator.GREATER_THAN+"",r.DataValidationOperator.GREATER_THAN_OR_EQUAL+"",r.DataValidationOperator.LESS_THAN+"",r.DataValidationOperator.LESS_THAN_OR_EQUAL+"",r.DataValidationOperator.NOT_BETWEEN+"",r.DataValidationOperator.NOT_EQUAL+"";const b={[r.DataValidationOperator.BETWEEN]:"dataValidation.ruleName.between",[r.DataValidationOperator.EQUAL]:"dataValidation.ruleName.equal",[r.DataValidationOperator.GREATER_THAN]:"dataValidation.ruleName.greaterThan",[r.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.ruleName.greaterThanOrEqual",[r.DataValidationOperator.LESS_THAN]:"dataValidation.ruleName.lessThan",[r.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.ruleName.lessThanOrEqual",[r.DataValidationOperator.NOT_BETWEEN]:"dataValidation.ruleName.notBetween",[r.DataValidationOperator.NOT_EQUAL]:"dataValidation.ruleName.notEqual",NONE:"dataValidation.ruleName.legal"},w={[r.DataValidationOperator.BETWEEN]:"dataValidation.errorMsg.between",[r.DataValidationOperator.EQUAL]:"dataValidation.errorMsg.equal",[r.DataValidationOperator.GREATER_THAN]:"dataValidation.errorMsg.greaterThan",[r.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.errorMsg.greaterThanOrEqual",[r.DataValidationOperator.LESS_THAN]:"dataValidation.errorMsg.lessThan",[r.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.errorMsg.lessThanOrEqual",[r.DataValidationOperator.NOT_BETWEEN]:"dataValidation.errorMsg.notBetween",[r.DataValidationOperator.NOT_EQUAL]:"dataValidation.errorMsg.notEqual",NONE:"dataValidation.errorMsg.legal"},Z={[r.DataValidationOperator.BETWEEN]:"dataValidation.textLength.errorMsg.between",[r.DataValidationOperator.EQUAL]:"dataValidation.textLength.errorMsg.equal",[r.DataValidationOperator.GREATER_THAN]:"dataValidation.textLength.errorMsg.greaterThan",[r.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.greaterThanOrEqual",[r.DataValidationOperator.LESS_THAN]:"dataValidation.textLength.errorMsg.lessThan",[r.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.textLength.errorMsg.lessThanOrEqual",[r.DataValidationOperator.NOT_BETWEEN]:"dataValidation.textLength.errorMsg.notBetween",[r.DataValidationOperator.NOT_EQUAL]:"dataValidation.textLength.errorMsg.notEqual"},aa=[r.DataValidationOperator.BETWEEN,r.DataValidationOperator.NOT_BETWEEN];var ta=Object.getOwnPropertyDescriptor,ea=(n,a,i,e)=>{for(var t=e>1?void 0:e?ta(a,i):a,o=n.length-1,d;o>=0;o--)(d=n[o])&&(t=d(t)||t);return t},B=(n,a)=>(i,e)=>a(i,e,n);const I="{FORMULA1}",y="{FORMULA2}",U="{TYPE}",ia={[r.DataValidationOperator.BETWEEN]:"dataValidation.operators.between",[r.DataValidationOperator.EQUAL]:"dataValidation.operators.equal",[r.DataValidationOperator.GREATER_THAN]:"dataValidation.operators.greaterThan",[r.DataValidationOperator.GREATER_THAN_OR_EQUAL]:"dataValidation.operators.greaterThanOrEqual",[r.DataValidationOperator.LESS_THAN]:"dataValidation.operators.lessThan",[r.DataValidationOperator.LESS_THAN_OR_EQUAL]:"dataValidation.operators.lessThanOrEqual",[r.DataValidationOperator.NOT_BETWEEN]:"dataValidation.operators.notBetween",[r.DataValidationOperator.NOT_EQUAL]:"dataValidation.operators.notEqual"};var P=(n=>(n.DATE="date",n.TIME="time",n.DATETIME="datetime",n.LIST="list",n.MULTIPLE_LIST="multipleList",n.COLOR="color",n.CASCADE="cascade",n))(P||{});s.BaseDataValidator=class{constructor(a,i){p(this,"offsetFormulaByRange",!0);p(this,"formulaInput");p(this,"canvasRender",null);p(this,"dropdownType");p(this,"optionsInput");p(this,"skipDefaultFontRender");this.localeService=a,this.injector=i}get operatorNames(){return this.operators.map(a=>this.localeService.t(ia[a]))}get titleStr(){return this.localeService.t(this.title)}generateRuleName(a){var e,t;if(!a.operator)return this.localeService.t(b.NONE).replace(U,this.titleStr);const i=this.localeService.t(b[a.operator]).replace(I,(e=a.formula1)!=null?e:"").replace(y,(t=a.formula2)!=null?t:"");return`${this.titleStr} ${i}`}generateRuleErrorMessage(a,i){var t,o;return a.operator?`${this.localeService.t(w[a.operator]).replace(I,(t=a.formula1)!=null?t:"").replace(y,(o=a.formula2)!=null?o:"")}`:this.localeService.t(w.NONE).replace(U,this.titleStr)}getExtraStyle(a,i,e,t,o){}getRuleFinalError(a,i){return a.showErrorMessage&&a.error?a.error:this.generateRuleErrorMessage(a,i)}isEmptyCellValue(a){return a===""||a===void 0||a===null}normalizeFormula(a,i,e){return{formula1:a.formula1,formula2:a.formula2}}async isValidType(a,i,e){return!0}transform(a,i,e){return a}async validatorIsEqual(a,i,e){const{formula1:t}=i,{value:o}=a;return Number.isNaN(t)?!0:o===t}async validatorIsNotEqual(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value!==t}async validatorIsBetween(a,i,e){const{formula1:t,formula2:o}=i;if(Number.isNaN(t)||Number.isNaN(o))return!0;const d=Math.min(t,o),l=Math.max(t,o);return a.value>=d&&a.value<=l}async validatorIsNotBetween(a,i,e){const{formula1:t,formula2:o}=i;if(Number.isNaN(t)||Number.isNaN(o))return!0;const d=Math.min(t,o),l=Math.max(t,o);return a.value<d||a.value>l}async validatorIsGreaterThan(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value>t}async validatorIsGreaterThanOrEqual(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value>=t}async validatorIsLessThan(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value<t}async validatorIsLessThanOrEqual(a,i,e){const{formula1:t}=i;return Number.isNaN(t)?!0:a.value<=t}async validator(a,i){const{value:e,unitId:t,subUnitId:o}=a,d=this.isEmptyCellValue(e),{allowBlank:l=!0,operator:c}=i;if(d)return l;const u=await this.parseFormula(i,t,o,a.row,a.column);if(!u.isFormulaValid||!await this.isValidType(a,u,i))return!1;if(!c)return!0;const m=this.transform(a,u,i);switch(c){case r.DataValidationOperator.BETWEEN:return this.validatorIsBetween(m,u,i);case r.DataValidationOperator.EQUAL:return this.validatorIsEqual(m,u,i);case r.DataValidationOperator.GREATER_THAN:return this.validatorIsGreaterThan(m,u,i);case r.DataValidationOperator.GREATER_THAN_OR_EQUAL:return this.validatorIsGreaterThanOrEqual(m,u,i);case r.DataValidationOperator.LESS_THAN:return this.validatorIsLessThan(m,u,i);case r.DataValidationOperator.LESS_THAN_OR_EQUAL:return this.validatorIsLessThanOrEqual(m,u,i);case r.DataValidationOperator.NOT_BETWEEN:return this.validatorIsNotBetween(m,u,i);case r.DataValidationOperator.NOT_EQUAL:return this.validatorIsNotEqual(m,u,i);default:throw new Error("Unknown operator.")}}},s.BaseDataValidator=ea([B(0,r.Inject(r.LocaleService)),B(1,r.Inject(r.Injector))],s.BaseDataValidator),s.AddDataValidationMutation=O,s.DataValidatorDropdownType=P,s.DataValidatorRegistryScope=L,s.DataValidatorRegistryService=R,s.FORMULA1=I,s.FORMULA2=y,s.RemoveDataValidationMutation=v,s.TWO_FORMULA_OPERATOR_COUNT=aa,s.TYPE=U,s.TextLengthErrorTitleMap=Z,s.UpdateDataValidationMutation=E,s.UpdateRuleType=h,s.getRuleOptions=M,s.getRuleSetting=N,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.10.3-nightly.202508150623",
3
+ "version": "0.10.4-nightly.202508220605",
4
4
  "private": false,
5
5
  "description": "Data validation library for Univer",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -48,17 +48,17 @@
48
48
  "rxjs": ">=7.0.0"
49
49
  },
50
50
  "dependencies": {
51
- "@univerjs/core": "0.10.3-nightly.202508150623"
51
+ "@univerjs/core": "0.10.4-nightly.202508220605"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@univerjs/protocol": "0.1.46",
55
55
  "rxjs": "^7.8.2",
56
- "typescript": "^5.8.3",
57
- "vite": "^7.0.6",
56
+ "typescript": "^5.9.2",
57
+ "vite": "^7.1.3",
58
58
  "vitest": "^3.2.4",
59
- "@univerjs/core": "0.10.3-nightly.202508150623",
60
- "@univerjs-infra/shared": "0.10.3",
61
- "@univerjs/sheets": "0.10.3-nightly.202508150623"
59
+ "@univerjs-infra/shared": "0.10.4",
60
+ "@univerjs/core": "0.10.4-nightly.202508220605",
61
+ "@univerjs/sheets": "0.10.4-nightly.202508220605"
62
62
  },
63
63
  "scripts": {
64
64
  "dev": "vite",