@univerjs/engine-formula 0.13.0 → 0.14.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.
Files changed (31) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +1 -1
  3. package/lib/es/facade.js +218 -36
  4. package/lib/es/index.js +3382 -3151
  5. package/lib/facade.js +218 -36
  6. package/lib/index.js +3382 -3151
  7. package/lib/types/basics/common.d.ts +8 -0
  8. package/lib/types/basics/match-token.d.ts +1 -1
  9. package/lib/types/commands/mutations/formula.mutation.d.ts +9 -0
  10. package/lib/types/commands/mutations/set-formula-calculation.mutation.d.ts +10 -1
  11. package/lib/types/controller/calculate.controller.d.ts +1 -0
  12. package/lib/types/controller/config.schema.d.ts +1 -0
  13. package/lib/types/engine/analysis/lexer-tree-builder.d.ts +2 -1
  14. package/lib/types/engine/ast-node/reference-node.d.ts +0 -1
  15. package/lib/types/engine/dependency/dependency-tree.d.ts +11 -1
  16. package/lib/types/engine/dependency/formula-dependency.d.ts +8 -3
  17. package/lib/types/engine/utils/reference.d.ts +9 -0
  18. package/lib/types/engine/utils/sequence.d.ts +2 -1
  19. package/lib/types/facade/f-formula.d.ts +164 -2
  20. package/lib/types/index.d.ts +9 -5
  21. package/lib/types/services/active-dirty-manager.service.d.ts +1 -0
  22. package/lib/types/services/calculate-formula.service.d.ts +4 -1
  23. package/lib/types/services/current-data.service.d.ts +1 -0
  24. package/lib/types/services/defined-names.service.d.ts +1 -0
  25. package/lib/types/services/formula-common.d.ts +18 -0
  26. package/lib/types/services/register-other-formula.service.d.ts +40 -0
  27. package/lib/types/services/runtime.service.d.ts +7 -0
  28. package/lib/types/services/super-table.service.d.ts +4 -0
  29. package/lib/umd/facade.js +1 -1
  30. package/lib/umd/index.js +1 -1
  31. package/package.json +4 -4
package/lib/cjs/facade.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("@univerjs/core/facade"),c=require("@univerjs/core"),o=require("@univerjs/engine-formula"),m=require("rxjs");var S=Object.getOwnPropertyDescriptor,f=(l,e,r,t)=>{for(var i=t>1?void 0:t?S(e,r):e,n=l.length-1,a;n>=0;n--)(a=l[n])&&(i=a(i)||i);return i},d=(l,e)=>(r,t)=>e(r,t,l);exports.FFormula=class extends C.FBase{constructor(e,r,t,i){super(),this._commandService=e,this._injector=r,this._lexerTreeBuilder=t,this._configService=i,this._initialize()}_initialize(){}get lexerTreeBuilder(){return this._lexerTreeBuilder}moveFormulaRefOffset(e,r,t,i){return this._lexerTreeBuilder.moveFormulaRefOffset(e,r,t,i)}sequenceNodesBuilder(e){return this._lexerTreeBuilder.sequenceNodesBuilder(e)||[]}executeCalculation(){this._commandService.executeCommand(o.SetFormulaCalculationStartMutation.id,{commands:[],forceCalculation:!0},{onlyLocal:!0})}stopCalculation(){this._commandService.executeCommand(o.SetFormulaCalculationStopMutation.id,{})}calculationStart(e){return this._commandService.onCommandExecuted(r=>{if(r.id===o.SetFormulaCalculationStartMutation.id){const t=r.params;e(t.forceCalculation)}})}calculationEnd(e){return this._commandService.onCommandExecuted(r=>{if(r.id!==o.SetFormulaCalculationNotificationMutation.id)return;const t=r.params;t.functionsExecutedState!==void 0&&e(t.functionsExecutedState)})}whenComputingCompleteAsync(e){const r=this._injector.get(o.GlobalComputingStatusService);return r.computingStatus?Promise.resolve(!0):m.firstValueFrom(m.race(r.computingStatus$.pipe(m.filter(t=>t)),m.timer(e!=null?e:3e4).pipe(m.map(()=>!1))))}onCalculationEnd(){return new Promise((e,r)=>{const t=setTimeout(()=>{r(new Error("Calculation end timeout"))},3e4),i=this.calculationEnd(()=>{clearTimeout(t),i.dispose(),e()})})}calculationProcessing(e){return this._commandService.onCommandExecuted(r=>{if(r.id!==o.SetFormulaCalculationNotificationMutation.id)return;const t=r.params;t.stageInfo!==void 0&&e(t.stageInfo)})}setMaxIteration(e){this._configService.setConfig(o.ENGINE_FORMULA_CYCLE_REFERENCE_COUNT,e)}calculationResultApplied(e){return this._commandService.onCommandExecuted(r=>{if(r.id!==o.SetFormulaCalculationResultMutation.id)return;const t=r.params;t!==void 0&&requestIdleCallback(()=>{e(t)})})}onCalculationResultApplied(){return new Promise((e,r)=>{let t=!1,i=!1;const n=setTimeout(()=>{p(),r(new Error("Calculation end timeout"))},3e4),a=setTimeout(()=>{t||(p(),e())},500),u=this.calculationProcessing(()=>{t||(t=!0,clearTimeout(a))}),s=this.calculationResultApplied(()=>{i||(i=!0,p(),e())});function p(){clearTimeout(n),clearTimeout(a),u.dispose(),s.dispose()}})}executeFormulas(e,r=3e4){return new Promise((t,i)=>{const n=this._commandService.onCommandExecuted(u=>{if(u.id!==o.SetFormulaStringBatchCalculationResultMutation.id)return;const s=u.params;clearTimeout(a),n.dispose(),s.result!=null?t(s.result):i(new Error("Formula batch calculation returned no result"))}),a=setTimeout(()=>{n.dispose(),i(new Error("Formula batch calculation timeout"))},r);this._commandService.executeCommand(o.SetFormulaStringBatchCalculationMutation.id,{formulas:e},{onlyLocal:!0})})}getAllDependencyTrees(e=3e4){return new Promise((r,t)=>{const i=this._commandService.onCommandExecuted(a=>{if(a.id!==o.SetFormulaDependencyCalculationResultMutation.id)return;const u=a.params;clearTimeout(n),i.dispose(),u.result!=null?r(u.result):r([])}),n=setTimeout(()=>{i.dispose(),t(new Error("Formula dependency calculation timeout"))},e);this._commandService.executeCommand(o.SetFormulaDependencyCalculationMutation.id,void 0,{onlyLocal:!0})})}getCellDependencyTree(e,r=3e4){return new Promise((t,i)=>{const n=this._commandService.onCommandExecuted(u=>{if(u.id!==o.SetCellFormulaDependencyCalculationResultMutation.id)return;const s=u.params;clearTimeout(a),n.dispose(),t(s.result)}),a=setTimeout(()=>{n.dispose(),i(new Error("Cell dependency calculation timeout"))},r);this._commandService.executeCommand(o.SetCellFormulaDependencyCalculationMutation.id,e,{onlyLocal:!0})})}getRangeDependents(e,r=3e4){return new Promise((t,i)=>{const n=this._commandService.onCommandExecuted(u=>{if(u.id!==o.SetQueryFormulaDependencyResultMutation.id)return;const s=u.params;clearTimeout(a),n.dispose(),s.result!=null?t(s.result):t([])}),a=setTimeout(()=>{n.dispose(),i(new Error("Range dependents calculation timeout"))},r);this._commandService.executeCommand(o.SetQueryFormulaDependencyMutation.id,{unitRanges:e},{onlyLocal:!0})})}getInRangeFormulas(e,r=3e4){return new Promise((t,i)=>{const n=this._commandService.onCommandExecuted(u=>{if(u.id!==o.SetQueryFormulaDependencyResultMutation.id)return;const s=u.params;clearTimeout(a),n.dispose(),s.result!=null?t(s.result):t([])}),a=setTimeout(()=>{n.dispose(),i(new Error("In-range formulas calculation timeout"))},r);this._commandService.executeCommand(o.SetQueryFormulaDependencyMutation.id,{unitRanges:e,isInRange:!0},{onlyLocal:!0})})}};exports.FFormula=f([d(0,c.Inject(c.ICommandService)),d(1,c.Inject(c.Injector)),d(2,c.Inject(o.LexerTreeBuilder)),d(3,c.IConfigService)],exports.FFormula);class F extends C.FUniver{getFormula(){return this._injector.createInstance(exports.FFormula)}}C.FUniver.extend(F);
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("@univerjs/core/facade"),m=require("@univerjs/core"),n=require("@univerjs/engine-formula"),d=require("rxjs");var f=Object.getOwnPropertyDescriptor,C=(c,e,i,t)=>{for(var r=t>1?void 0:t?f(e,i):e,o=c.length-1,s;o>=0;o--)(s=c[o])&&(r=s(r)||r);return r},l=(c,e)=>(i,t)=>e(i,t,c);exports.FFormula=class extends S.FBase{constructor(e,i,t,r,o,s,a){super(),this._commandService=e,this._injector=i,this._lexerTreeBuilder=t,this._configService=r,this._functionService=o,this._definedNamesService=s,this._superTableService=a,this._initialize()}_initialize(){}get lexerTreeBuilder(){return this._lexerTreeBuilder}moveFormulaRefOffset(e,i,t,r){return this._lexerTreeBuilder.moveFormulaRefOffset(e,i,t,r)}sequenceNodesBuilder(e){return this._lexerTreeBuilder.sequenceNodesBuilder(e)||[]}executeCalculation(){this._commandService.executeCommand(n.SetTriggerFormulaCalculationStartMutation.id,{commands:[],forceCalculation:!0},{onlyLocal:!0})}stopCalculation(){this._commandService.executeCommand(n.SetFormulaCalculationStopMutation.id,{})}calculationStart(e){return this._commandService.onCommandExecuted(i=>{if(i.id===n.SetFormulaCalculationStartMutation.id){const t=i.params;e(t.forceCalculation)}})}calculationEnd(e){return this._commandService.onCommandExecuted(i=>{if(i.id!==n.SetFormulaCalculationNotificationMutation.id)return;const t=i.params;t.functionsExecutedState!==void 0&&e(t.functionsExecutedState)})}whenComputingCompleteAsync(e){const i=this._injector.get(n.GlobalComputingStatusService);return i.computingStatus?Promise.resolve(!0):d.firstValueFrom(d.race(i.computingStatus$.pipe(d.filter(t=>t)),d.timer(e!=null?e:3e4).pipe(d.map(()=>!1))))}onCalculationEnd(){return new Promise((e,i)=>{const t=setTimeout(()=>{i(new Error("Calculation end timeout"))},3e4),r=this.calculationEnd(()=>{clearTimeout(t),r.dispose(),e()})})}calculationProcessing(e){return this._commandService.onCommandExecuted(i=>{if(i.id!==n.SetFormulaCalculationNotificationMutation.id)return;const t=i.params;t.stageInfo!==void 0&&e(t.stageInfo)})}setMaxIteration(e){this._configService.setConfig(n.ENGINE_FORMULA_CYCLE_REFERENCE_COUNT,e)}calculationResultApplied(e){return this._commandService.onCommandExecuted(i=>{if(i.id!==n.SetFormulaCalculationResultMutation.id)return;const t=i.params;t!==void 0&&requestIdleCallback(()=>{e(t)})})}onCalculationResultApplied(){return new Promise((e,i)=>{let t=!1,r=!1;const o=setTimeout(()=>{p(),i(new Error("Calculation end timeout"))},3e4),s=setTimeout(()=>{t||(p(),e())},500),a=this.calculationProcessing(()=>{t||(t=!0,clearTimeout(s))}),u=this.calculationResultApplied(()=>{r||(r=!0,p(),e())});function p(){clearTimeout(o),clearTimeout(s),a.dispose(),u.dispose()}})}executeFormulas(e,i=3e4){return new Promise((t,r)=>{const o=this._commandService.onCommandExecuted(a=>{if(a.id!==n.SetFormulaStringBatchCalculationResultMutation.id)return;const u=a.params;clearTimeout(s),o.dispose(),u.result!=null?t(u.result):r(new Error("Formula batch calculation returned no result"))}),s=setTimeout(()=>{o.dispose(),r(new Error("Formula batch calculation timeout"))},i);this._commandService.executeCommand(n.SetFormulaStringBatchCalculationMutation.id,{formulas:e},{onlyLocal:!0})})}getAllDependencyTrees(e=3e4){return new Promise((i,t)=>{const r=this._commandService.onCommandExecuted(s=>{if(s.id!==n.SetFormulaDependencyCalculationResultMutation.id)return;const a=s.params;clearTimeout(o),r.dispose(),a.result!=null?i(a.result):i([])}),o=setTimeout(()=>{r.dispose(),t(new Error("Formula dependency calculation timeout"))},e);this._commandService.executeCommand(n.SetFormulaDependencyCalculationMutation.id,void 0,{onlyLocal:!0})})}getCellDependencyTree(e,i=3e4){return new Promise((t,r)=>{const o=this._commandService.onCommandExecuted(a=>{if(a.id!==n.SetCellFormulaDependencyCalculationResultMutation.id)return;const u=a.params;clearTimeout(s),o.dispose(),t(u.result)}),s=setTimeout(()=>{o.dispose(),r(new Error("Cell dependency calculation timeout"))},i);this._commandService.executeCommand(n.SetCellFormulaDependencyCalculationMutation.id,e,{onlyLocal:!0})})}getRangeDependents(e,i=3e4){return new Promise((t,r)=>{const o=this._commandService.onCommandExecuted(a=>{if(a.id!==n.SetQueryFormulaDependencyResultMutation.id)return;const u=a.params;clearTimeout(s),o.dispose(),u.result!=null?t(u.result):t([])}),s=setTimeout(()=>{o.dispose(),r(new Error("Range dependents calculation timeout"))},i);this._commandService.executeCommand(n.SetQueryFormulaDependencyMutation.id,{unitRanges:e},{onlyLocal:!0})})}getInRangeFormulas(e,i=3e4){return new Promise((t,r)=>{const o=this._commandService.onCommandExecuted(a=>{if(a.id!==n.SetQueryFormulaDependencyResultMutation.id)return;const u=a.params;clearTimeout(s),o.dispose(),u.result!=null?t(u.result):t([])}),s=setTimeout(()=>{o.dispose(),r(new Error("In-range formulas calculation timeout"))},i);this._commandService.executeCommand(n.SetQueryFormulaDependencyMutation.id,{unitRanges:e,isInRange:!0},{onlyLocal:!0})})}setFormulaReturnDependencyTree(e){this._configService.setConfig(n.ENGINE_FORMULA_RETURN_DEPENDENCY_TREE,e)}getFormulaExpressTree(e,i){return this._lexerTreeBuilder.getFormulaExprTree(e,i,this._functionService.hasExecutor.bind(this._functionService),this._definedNamesService.getValueByName.bind(this._definedNamesService),this._superTableService.getTable.bind(this._superTableService))}getRangeDependentsAndInRangeFormulas(e,i=3e4){return new Promise((t,r)=>{const o=this._commandService.onCommandExecuted(a=>{if(a.id!==n.SetQueryFormulaDependencyAllResultMutation.id)return;const u=a.params;clearTimeout(s),o.dispose(),u.result!=null?t(u.result):t({dependents:[],inRanges:[]})}),s=setTimeout(()=>{o.dispose(),r(new Error("Range dependents calculation timeout"))},i);this._commandService.executeCommand(n.SetQueryFormulaDependencyAllMutation.id,{unitRanges:e},{onlyLocal:!0})})}};exports.FFormula=C([l(0,m.Inject(m.ICommandService)),l(1,m.Inject(m.Injector)),l(2,m.Inject(n.LexerTreeBuilder)),l(3,m.IConfigService),l(4,n.IFunctionService),l(5,n.IDefinedNamesService),l(6,n.ISuperTableService)],exports.FFormula);class _ extends S.FUniver{getFormula(){return this._injector.createInstance(exports.FFormula)}}S.FUniver.extend(_);