@odoo/o-spreadsheet 19.1.1 → 19.2.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/o-spreadsheet-engine.esm.js +4 -4
- package/dist/o-spreadsheet-engine.iife.js +4 -4
- package/dist/o-spreadsheet-engine.min.iife.js +1 -1
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +11 -8
- package/dist/o_spreadsheet.iife.js +11 -8
- package/dist/o_spreadsheet.min.iife.js +2 -2
- package/dist/o_spreadsheet.xml +3 -3
- package/package.json +2 -2
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
5
|
* @version 19.1.0-alpha.3
|
|
6
|
-
* @date 2025-12-26T10:
|
|
7
|
-
* @hash
|
|
6
|
+
* @date 2025-12-26T10:19:48.559Z
|
|
7
|
+
* @hash 3296c7e
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
class FunctionCodeBuilder {
|
|
@@ -51523,5 +51523,5 @@ export { BadExpressionError, BasePlugin, CellErrorType, CircularDependencyError,
|
|
|
51523
51523
|
|
|
51524
51524
|
|
|
51525
51525
|
__info__.version = "19.1.0-alpha.3";
|
|
51526
|
-
__info__.date = "2025-12-26T10:
|
|
51527
|
-
__info__.hash = "
|
|
51526
|
+
__info__.date = "2025-12-26T10:19:48.559Z";
|
|
51527
|
+
__info__.hash = "3296c7e";
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
5
|
* @version 19.1.0-alpha.3
|
|
6
|
-
* @date 2025-12-26T10:
|
|
7
|
-
* @hash
|
|
6
|
+
* @date 2025-12-26T10:19:48.559Z
|
|
7
|
+
* @hash 3296c7e
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports) {
|
|
@@ -51635,8 +51635,8 @@
|
|
|
51635
51635
|
|
|
51636
51636
|
|
|
51637
51637
|
__info__.version = "19.1.0-alpha.3";
|
|
51638
|
-
__info__.date = "2025-12-26T10:
|
|
51639
|
-
__info__.hash = "
|
|
51638
|
+
__info__.date = "2025-12-26T10:19:48.559Z";
|
|
51639
|
+
__info__.hash = "3296c7e";
|
|
51640
51640
|
|
|
51641
51641
|
|
|
51642
51642
|
})(this.o_spreadsheet_engine = this.o_spreadsheet_engine || {});
|
|
@@ -814,4 +814,4 @@
|
|
|
814
814
|
<tableParts count="${e.tables.length}">
|
|
815
815
|
${jE(a)}
|
|
816
816
|
</tableParts>
|
|
817
|
-
`}var QT;!function(e){e[e.Ready=0]="Ready",e[e.Running=1]="Running",e[e.RunningCore=2]="RunningCore",e[e.Finalizing=3]="Finalizing"}(QT||(QT={}));function JT(e,t={}){const r=re(t);return r.type=e,r}const ex={Background:0,Highlights:1,Clipboard:2,Chart:4,Autofill:5,Selection:6,Headers:100},tx=Ue(()=>Object.keys(ex).sort((e,t)=>ex[e]-ex[t]));const rx={};e.BadExpressionError=C,e.BasePlugin=Vs,e.CellErrorType=E,e.CircularDependencyError=I,e.DEFAULT_LOCALE=xr,e.DEFAULT_LOCALES=Tr,e.DivisionByZeroError=O,e.EvaluationError=S,e.FunctionCodeBuilder=t,e.FunctionRegistry=rm,e.InvalidReferenceError=T,e.Model=class extends Vm{corePlugins=[];statefulUIPlugins=[];range;session;isReplayingCommand=!1;renderers={};status=0;config;corePluginConfig;coreViewPluginConfig;uiPluginConfig;state;selection;getters;coreGetters;uuidGenerator;handlers=[];uiHandlers=[];coreHandlers=[];constructor(e={},t={},r=[],n=new _o,o=!1){const s=performance.now();console.debug("##### Model creation #####"),super(),b(),r=Aw(e,r);const i=Tw(e,o);this.state=new YI,this.uuidGenerator=n,this.config=this.setupConfig(t),this.session=this.setupSession(i.revisionId),this.coreGetters={},this.range=new WI(this.coreGetters),this.coreGetters.getRangeString=this.range.getRangeString.bind(this.range),this.coreGetters.getRangeFromSheetXC=this.range.getRangeFromSheetXC.bind(this.range),this.coreGetters.createAdaptedRanges=this.range.createAdaptedRanges.bind(this.range),this.coreGetters.getRangeData=this.range.getRangeData.bind(this.range),this.coreGetters.getRangeDataFromXc=this.range.getRangeDataFromXc.bind(this.range),this.coreGetters.getRangeDataFromZone=this.range.getRangeDataFromZone.bind(this.range),this.coreGetters.getRangeFromRangeData=this.range.getRangeFromRangeData.bind(this.range),this.coreGetters.getRangeFromZone=this.range.getRangeFromZone.bind(this.range),this.coreGetters.recomputeRanges=this.range.recomputeRanges.bind(this.range),this.coreGetters.isRangeValid=this.range.isRangeValid.bind(this.range),this.coreGetters.extendRange=this.range.extendRange.bind(this.range),this.coreGetters.getRangesUnion=this.range.getRangesUnion.bind(this.range),this.coreGetters.removeRangesSheetPrefix=this.range.removeRangesSheetPrefix.bind(this.range),this.coreGetters.adaptFormulaStringDependencies=this.range.adaptFormulaStringDependencies.bind(this.range),this.coreGetters.copyFormulaStringForSheet=this.range.copyFormulaStringForSheet.bind(this.range),this.getters={isReadonly:()=>"readonly"===this.config.mode||"dashboard"===this.config.mode,isDashboard:()=>"dashboard"===this.config.mode},this.selection=new ZI(this.getters),this.coreHandlers.push(this.range),this.handlers.push(this.range),this.corePluginConfig=this.setupCorePluginConfig(),this.coreViewPluginConfig=this.setupCoreViewPluginConfig(),this.uiPluginConfig=this.setupUiPluginConfig();for(const e of BI.getAll())this.setupCorePlugin(e,i);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(const e of GI.getAll()){const t=this.setupCoreViewPlugin(e);this.handlers.push(t),this.uiHandlers.push(t),this.coreHandlers.push(t)}for(const e of $I.getAll()){const t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(const e of zI.getAll()){const t=this.setupUiPlugin(e);this.handlers.push(t),this.uiHandlers.push(t)}if(this.dispatch("START"),this.selection.observe(this,{handleEvent:()=>this.trigger("update")}),this.setupSessionEvents(),this.joinSession(),t.snapshotRequested||e["[Content_Types].xml"]&&!this.getters.isReadonly()){const e=performance.now();console.debug("Snapshot requested"),this.session.snapshot(this.exportData()),console.debug("Snapshot taken in",performance.now()-e,"ms")}console.debug("Model created in",performance.now()-s,"ms"),console.debug("######")}joinSession(){this.session.join(this.config.client)}async leaveSession(){const e=this.getters.isReadonly()?void 0:xe(()=>this.exportData());await this.session.leave(e)}setupUiPlugin(e){const t=new e(this.uiPluginConfig);for(const r of e.getters){if(!(r in t))throw new Error(`Invalid getter name: ${r} for plugin ${t.constructor}`);if(r in this.getters)throw new Error(`Getter "${r}" is already defined.`);this.getters[r]=t[r].bind(t)}for(const r of e.layers)this.renderers[r]||(this.renderers[r]=[]),this.renderers[r].push(t);return t}setupCoreViewPlugin(e){const t=new e(this.coreViewPluginConfig);for(const r of e.getters){if(!(r in t))throw new Error(`Invalid getter name: ${r} for plugin ${t.constructor}`);if(r in this.getters)throw new Error(`Getter "${r}" is already defined.`);this.getters[r]=t[r].bind(t)}return t}setupCorePlugin(e,t){const r=new e(this.corePluginConfig);for(const t of e.getters){if(!(t in r))throw new Error(`Invalid getter name: ${t} for plugin ${r.constructor}`);if(t in this.coreGetters)throw new Error(`Getter "${t}" is already defined.`);this.coreGetters[t]=r[t].bind(r)}r.import(t),this.corePlugins.push(r),this.coreHandlers.push(r),this.handlers.push(r)}onRemoteRevisionReceived({commands:e}){for(const t of e){const e=this.status;this.status=2,this.dispatchToHandlers(this.statefulUIPlugins,t),this.status=e}this.finalize()}setupSession(e){return new lv(vv({initialRevisionId:e,recordChanges:this.state.recordChanges.bind(this.state),dispatch:e=>{this.checkDispatchAllowed(e).isSuccessful?(this.isReplayingCommand=!0,this.dispatchToHandlers(this.coreHandlers,e),this.isReplayingCommand=!1):this.dispatchToHandlers(this.coreHandlers,{type:"UNDO",commands:[e]})}}),this.config.transportService,e)}setupSessionEvents(){this.session.on("remote-revision-received",this,this.onRemoteRevisionReceived),this.session.on("revision-undone",this,({commands:e})=>{this.dispatchFromCorePlugin("UNDO",{commands:e}),this.finalize()}),this.session.on("revision-redone",this,({commands:e})=>{this.dispatchFromCorePlugin("REDO",{commands:e}),this.finalize()}),this.session.on("unexpected-revision-id",this,()=>this.trigger("unexpected-revision-id")),this.session.on("collaborative-event-received",this,()=>{this.trigger("update")})}setupConfig(e){const t=e.client||{id:this.uuidGenerator.smallUuid(),name:v("Anonymous").toString()},r=e.transportService||new Nm,n="readonly"===e.mode||"dashboard"===e.mode;return{...e,mode:e.mode||"normal",custom:e.custom||{},external:this.setupExternalConfig(e.external||{}),transportService:n?new Mm(r):r,client:t,moveClient:()=>{},snapshotRequested:!1,notifyUI:e=>this.trigger("notify-ui",e),raiseBlockingErrorUI:e=>this.trigger("raise-error-ui",{text:e}),customColors:e.customColors||[]}}setupExternalConfig(e){const t=e.loadLocales||(()=>Promise.resolve(Tr));return{...e,loadLocales:t}}setupCorePluginConfig(){return{getters:this.coreGetters,stateObserver:this.state,range:this.range,dispatch:this.dispatchFromCorePlugin,canDispatch:this.canDispatch,custom:this.config.custom,external:this.config.external}}setupCoreViewPluginConfig(){return{getters:this.getters,stateObserver:this.state,custom:this.config.custom,session:this.session,defaultCurrency:this.config.defaultCurrency,customColors:this.config.customColors||[],external:this.config.external}}setupUiPluginConfig(){return{getters:this.getters,stateObserver:this.state,dispatch:this.dispatch,canDispatch:this.canDispatch,selection:this.selection,moveClient:this.session.move.bind(this.session),custom:this.config.custom,uiActions:this.config,session:this.session,defaultCurrency:this.config.defaultCurrency,customColors:this.config.customColors||[],external:this.config.external}}checkDispatchAllowed(e){const t=Ds(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>"Success"!==e)?new Fs(t.flat()):Fs.Success}checkDispatchAllowedCoreCommand(e){const t=this.corePlugins.map(t=>t.allowDispatch(e));return t.push(this.range.allowDispatch(e)),t}checkDispatchAllowedLocalCommand(e){return this.uiHandlers.map(t=>t.allowDispatch(e))}finalize(){this.status=3;for(const e of this.handlers)e.finalize();this.status=0,this.trigger("command-finalized")}canDispatch=(e,t)=>this.checkDispatchAllowed(JT(e,t));dispatch=(e,t)=>{const r=JT(e,t),n=this.status;if(this.getters.isReadonly()&&(o=r,!Os.has(o.type)))return new Fs("Readonly");var o;if(!this.session.canApplyOptimisticUpdate())return new Fs("WaitingSessionConfirmation");switch(n){case 0:const t=this.checkDispatchAllowed(r);if(!t.isSuccessful)return this.trigger("update"),t;this.status=1;const{changes:n,commands:o}=this.state.recordChanges(()=>{const t=performance.now();Ds(r)&&this.state.addCommand(r),this.dispatchToHandlers(this.handlers,r),this.finalize();const n=performance.now()-t;n>5&&console.debug(e,n,"ms")});this.session.save(r,o,n),this.status=0,this.trigger("update");break;case 1:if(Ds(r)){const e=this.checkDispatchAllowed(r);if(!e.isSuccessful)return e;this.state.addCommand(r)}this.dispatchToHandlers(this.handlers,r);break;case 3:throw new Error("Cannot dispatch commands in the finalize state");case 2:if(Ds(r))throw new Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,r)}return Fs.Success};dispatchFromCorePlugin=(e,t)=>{const r=JT(e,t),n=this.status;this.status=2;const o=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(o,r),this.status=n,Fs.Success};dispatchToHandlers(e,t){const r=Ds(t);for(const n of e)!r&&n instanceof Nw||n.beforeHandle(t);for(const n of e)!r&&n instanceof Nw||n.handle(t);this.trigger("command-dispatched",t)}drawLayer(e,t){const r=this.renderers[t];if(r)for(const n of r)e.ctx.save(),n.drawLayer(e,t),e.ctx.restore()}exportData(){let e=Dw();for(const t of this.handlers)t instanceof Nw&&t.export(e);return e.revisionId=this.session.getRevisionId()||Y,e=re(e),e}updateMode(e){this.config.mode=e,this.trigger("update")}async exportXLSX(){this.dispatch("EVALUATE_CELLS");let e={...Dw(),sheets:[(t=Iw,r="Sheet1",{..._w(t,r),charts:[],images:[],cellValues:{}})]};var t,r;for(const t of this.handlers)t instanceof Vs&&await t.exportForExcel(e);return e=re(e),XT(e)}},e.NotAvailableError=x,e.NumberTooLargeError=_,e.OPERATOR_MAP=Rm,e.OP_PRIORITY=mm,e.OrderedLayers=tx,e.POSTFIX_UNARY_OPERATORS=Bl,e.Registry=h,e.Scope=n,e.SplillBlockedError=A,e.StateObserver=YI,e.TokenizingChars=Ze,e.UNARY_OPERATOR_MAP=Am,e.UnknownFunctionError=R,e.UuidGenerator=_o,e.__info__=rx,e._t=v,e.addRenderingLayer=function(e,t){if(ex[e])throw new Error(`Layer ${e} already exists`);ex[e]=t},e.batched=function(e){let t=!1;return async(...r)=>{t||(t=!0,await Promise.resolve(),t=!1,e(...r))}},e.borderStyles=["thin","medium","thick","dashed","dotted"],e.buildSheetLink=Ee,e.categories=om,e.cellReference=ho,e.chartStyleToCellStyle=function(e){return{bold:e.bold,italic:e.italic,fontSize:e.fontSize,textColor:e.color,align:e.align}},e.clip=ae,e.compile=_m,e.compileTokens=Dm,e.concat=Te,e.convertAstNodes=Sm,e.createEmptyStructure=Oo,e.debounce=Ie,e.deepCopy=re,e.deepEquals=Ae,e.deepEqualsArray=_e,e.errorTypes=w,e.escapeRegExp=te,e.findNextDefinedValue=function(e,t){let r=e.slice(t).find(e=>e);return r||(r=e.slice(0,t).reverse().find(e=>e)),r||""},e.functionCache=Om,e.getAddHeaderStartIndex=Re,e.getCanonicalSymbolName=se,e.getFormulaNumberRegex=Rt,e.getFullReference=To,e.getSearchRegex=function(e,t){let r=te(e);const n=t.matchCase?"":"i";return t.exactMatch&&(r=`^${r}$`),RegExp(r,n)},e.getUniqueText=Xe,e.getUnquotedSheetName=ne,e.groupConsecutive=ce,e.includesAll=De,e.insertItemsAtIndex=Be,e.isBoolean=he,e.isColHeader=wo,e.isColReference=yo,e.isConsecutive=ke,e.isDefined=Se,e.isFormula=Ke,e.isMarkdownLink=ge,e.isMatrix=D,e.isNotNull=function(e){return null!==e},e.isNumber=Ot,e.isNumberBetween=Ge,e.isObjectEmptyRecursive=Ce,e.isRowHeader=So,e.isRowReference=Eo,e.isSheetUrl=ye,e.isSingleCellReference=Co,e.isWebLink=me,e.iterateAstNodes=Cm,e.largeMax=We,e.largeMin=qe,e.lazy=xe,e.linkNext=ue,e.loopThroughReferenceType=function(e){if("REFERENCE"!==e.type)return e;const{xc:t,sheetName:r}=Io(e.value),[n,o]=t.split(":"),s=xo(n),i=o?`:${xo(o)}`:"";return{...e,value:To(r,s+i)}},e.mapAst=Tm,e.markdownLink=pe,e.memoize=Ue,e.parse=Em,e.parseMarkdownLink=be,e.parseNumber=Dt,e.parseSheetUrl=we,e.parseTokens=wm,e.percentile=Ft,e.range=le,e.rangeReference=vo,e.rangeTokenize=um,e.removeDuplicates=Ye,e.removeFalsyAttributes=Fe,e.removeIndexesFromArray=He,e.replaceItemAtIndex=ze,e.replaceNewLines=Pe,e.sanitizeSheetName=ie,e.setDefaultTranslationMethod=b,e.setTranslationMethod=function(e,t=()=>!0){g=e,m=t},e.setXcToFixedReferenceType=Ro,e.specialWhiteSpaceRegexp=Me,e.splitReference=Io,e.tokenize=$l,e.transpose2dPOJO=je,e.trimContent=$e,e.unquote=oe,e.whiteSpaceCharacters=Le,rx.version="19.1.0-alpha.3",rx.date="2025-12-26T10:26:09.971Z",rx.hash="e6313bd"}(this.o_spreadsheet_engine=this.o_spreadsheet_engine||{});
|
|
817
|
+
`}var QT;!function(e){e[e.Ready=0]="Ready",e[e.Running=1]="Running",e[e.RunningCore=2]="RunningCore",e[e.Finalizing=3]="Finalizing"}(QT||(QT={}));function JT(e,t={}){const r=re(t);return r.type=e,r}const ex={Background:0,Highlights:1,Clipboard:2,Chart:4,Autofill:5,Selection:6,Headers:100},tx=Ue(()=>Object.keys(ex).sort((e,t)=>ex[e]-ex[t]));const rx={};e.BadExpressionError=C,e.BasePlugin=Vs,e.CellErrorType=E,e.CircularDependencyError=I,e.DEFAULT_LOCALE=xr,e.DEFAULT_LOCALES=Tr,e.DivisionByZeroError=O,e.EvaluationError=S,e.FunctionCodeBuilder=t,e.FunctionRegistry=rm,e.InvalidReferenceError=T,e.Model=class extends Vm{corePlugins=[];statefulUIPlugins=[];range;session;isReplayingCommand=!1;renderers={};status=0;config;corePluginConfig;coreViewPluginConfig;uiPluginConfig;state;selection;getters;coreGetters;uuidGenerator;handlers=[];uiHandlers=[];coreHandlers=[];constructor(e={},t={},r=[],n=new _o,o=!1){const s=performance.now();console.debug("##### Model creation #####"),super(),b(),r=Aw(e,r);const i=Tw(e,o);this.state=new YI,this.uuidGenerator=n,this.config=this.setupConfig(t),this.session=this.setupSession(i.revisionId),this.coreGetters={},this.range=new WI(this.coreGetters),this.coreGetters.getRangeString=this.range.getRangeString.bind(this.range),this.coreGetters.getRangeFromSheetXC=this.range.getRangeFromSheetXC.bind(this.range),this.coreGetters.createAdaptedRanges=this.range.createAdaptedRanges.bind(this.range),this.coreGetters.getRangeData=this.range.getRangeData.bind(this.range),this.coreGetters.getRangeDataFromXc=this.range.getRangeDataFromXc.bind(this.range),this.coreGetters.getRangeDataFromZone=this.range.getRangeDataFromZone.bind(this.range),this.coreGetters.getRangeFromRangeData=this.range.getRangeFromRangeData.bind(this.range),this.coreGetters.getRangeFromZone=this.range.getRangeFromZone.bind(this.range),this.coreGetters.recomputeRanges=this.range.recomputeRanges.bind(this.range),this.coreGetters.isRangeValid=this.range.isRangeValid.bind(this.range),this.coreGetters.extendRange=this.range.extendRange.bind(this.range),this.coreGetters.getRangesUnion=this.range.getRangesUnion.bind(this.range),this.coreGetters.removeRangesSheetPrefix=this.range.removeRangesSheetPrefix.bind(this.range),this.coreGetters.adaptFormulaStringDependencies=this.range.adaptFormulaStringDependencies.bind(this.range),this.coreGetters.copyFormulaStringForSheet=this.range.copyFormulaStringForSheet.bind(this.range),this.getters={isReadonly:()=>"readonly"===this.config.mode||"dashboard"===this.config.mode,isDashboard:()=>"dashboard"===this.config.mode},this.selection=new ZI(this.getters),this.coreHandlers.push(this.range),this.handlers.push(this.range),this.corePluginConfig=this.setupCorePluginConfig(),this.coreViewPluginConfig=this.setupCoreViewPluginConfig(),this.uiPluginConfig=this.setupUiPluginConfig();for(const e of BI.getAll())this.setupCorePlugin(e,i);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(const e of GI.getAll()){const t=this.setupCoreViewPlugin(e);this.handlers.push(t),this.uiHandlers.push(t),this.coreHandlers.push(t)}for(const e of $I.getAll()){const t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(const e of zI.getAll()){const t=this.setupUiPlugin(e);this.handlers.push(t),this.uiHandlers.push(t)}if(this.dispatch("START"),this.selection.observe(this,{handleEvent:()=>this.trigger("update")}),this.setupSessionEvents(),this.joinSession(),t.snapshotRequested||e["[Content_Types].xml"]&&!this.getters.isReadonly()){const e=performance.now();console.debug("Snapshot requested"),this.session.snapshot(this.exportData()),console.debug("Snapshot taken in",performance.now()-e,"ms")}console.debug("Model created in",performance.now()-s,"ms"),console.debug("######")}joinSession(){this.session.join(this.config.client)}async leaveSession(){const e=this.getters.isReadonly()?void 0:xe(()=>this.exportData());await this.session.leave(e)}setupUiPlugin(e){const t=new e(this.uiPluginConfig);for(const r of e.getters){if(!(r in t))throw new Error(`Invalid getter name: ${r} for plugin ${t.constructor}`);if(r in this.getters)throw new Error(`Getter "${r}" is already defined.`);this.getters[r]=t[r].bind(t)}for(const r of e.layers)this.renderers[r]||(this.renderers[r]=[]),this.renderers[r].push(t);return t}setupCoreViewPlugin(e){const t=new e(this.coreViewPluginConfig);for(const r of e.getters){if(!(r in t))throw new Error(`Invalid getter name: ${r} for plugin ${t.constructor}`);if(r in this.getters)throw new Error(`Getter "${r}" is already defined.`);this.getters[r]=t[r].bind(t)}return t}setupCorePlugin(e,t){const r=new e(this.corePluginConfig);for(const t of e.getters){if(!(t in r))throw new Error(`Invalid getter name: ${t} for plugin ${r.constructor}`);if(t in this.coreGetters)throw new Error(`Getter "${t}" is already defined.`);this.coreGetters[t]=r[t].bind(r)}r.import(t),this.corePlugins.push(r),this.coreHandlers.push(r),this.handlers.push(r)}onRemoteRevisionReceived({commands:e}){for(const t of e){const e=this.status;this.status=2,this.dispatchToHandlers(this.statefulUIPlugins,t),this.status=e}this.finalize()}setupSession(e){return new lv(vv({initialRevisionId:e,recordChanges:this.state.recordChanges.bind(this.state),dispatch:e=>{this.checkDispatchAllowed(e).isSuccessful?(this.isReplayingCommand=!0,this.dispatchToHandlers(this.coreHandlers,e),this.isReplayingCommand=!1):this.dispatchToHandlers(this.coreHandlers,{type:"UNDO",commands:[e]})}}),this.config.transportService,e)}setupSessionEvents(){this.session.on("remote-revision-received",this,this.onRemoteRevisionReceived),this.session.on("revision-undone",this,({commands:e})=>{this.dispatchFromCorePlugin("UNDO",{commands:e}),this.finalize()}),this.session.on("revision-redone",this,({commands:e})=>{this.dispatchFromCorePlugin("REDO",{commands:e}),this.finalize()}),this.session.on("unexpected-revision-id",this,()=>this.trigger("unexpected-revision-id")),this.session.on("collaborative-event-received",this,()=>{this.trigger("update")})}setupConfig(e){const t=e.client||{id:this.uuidGenerator.smallUuid(),name:v("Anonymous").toString()},r=e.transportService||new Nm,n="readonly"===e.mode||"dashboard"===e.mode;return{...e,mode:e.mode||"normal",custom:e.custom||{},external:this.setupExternalConfig(e.external||{}),transportService:n?new Mm(r):r,client:t,moveClient:()=>{},snapshotRequested:!1,notifyUI:e=>this.trigger("notify-ui",e),raiseBlockingErrorUI:e=>this.trigger("raise-error-ui",{text:e}),customColors:e.customColors||[]}}setupExternalConfig(e){const t=e.loadLocales||(()=>Promise.resolve(Tr));return{...e,loadLocales:t}}setupCorePluginConfig(){return{getters:this.coreGetters,stateObserver:this.state,range:this.range,dispatch:this.dispatchFromCorePlugin,canDispatch:this.canDispatch,custom:this.config.custom,external:this.config.external}}setupCoreViewPluginConfig(){return{getters:this.getters,stateObserver:this.state,custom:this.config.custom,session:this.session,defaultCurrency:this.config.defaultCurrency,customColors:this.config.customColors||[],external:this.config.external}}setupUiPluginConfig(){return{getters:this.getters,stateObserver:this.state,dispatch:this.dispatch,canDispatch:this.canDispatch,selection:this.selection,moveClient:this.session.move.bind(this.session),custom:this.config.custom,uiActions:this.config,session:this.session,defaultCurrency:this.config.defaultCurrency,customColors:this.config.customColors||[],external:this.config.external}}checkDispatchAllowed(e){const t=Ds(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>"Success"!==e)?new Fs(t.flat()):Fs.Success}checkDispatchAllowedCoreCommand(e){const t=this.corePlugins.map(t=>t.allowDispatch(e));return t.push(this.range.allowDispatch(e)),t}checkDispatchAllowedLocalCommand(e){return this.uiHandlers.map(t=>t.allowDispatch(e))}finalize(){this.status=3;for(const e of this.handlers)e.finalize();this.status=0,this.trigger("command-finalized")}canDispatch=(e,t)=>this.checkDispatchAllowed(JT(e,t));dispatch=(e,t)=>{const r=JT(e,t),n=this.status;if(this.getters.isReadonly()&&(o=r,!Os.has(o.type)))return new Fs("Readonly");var o;if(!this.session.canApplyOptimisticUpdate())return new Fs("WaitingSessionConfirmation");switch(n){case 0:const t=this.checkDispatchAllowed(r);if(!t.isSuccessful)return this.trigger("update"),t;this.status=1;const{changes:n,commands:o}=this.state.recordChanges(()=>{const t=performance.now();Ds(r)&&this.state.addCommand(r),this.dispatchToHandlers(this.handlers,r),this.finalize();const n=performance.now()-t;n>5&&console.debug(e,n,"ms")});this.session.save(r,o,n),this.status=0,this.trigger("update");break;case 1:if(Ds(r)){const e=this.checkDispatchAllowed(r);if(!e.isSuccessful)return e;this.state.addCommand(r)}this.dispatchToHandlers(this.handlers,r);break;case 3:throw new Error("Cannot dispatch commands in the finalize state");case 2:if(Ds(r))throw new Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,r)}return Fs.Success};dispatchFromCorePlugin=(e,t)=>{const r=JT(e,t),n=this.status;this.status=2;const o=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(o,r),this.status=n,Fs.Success};dispatchToHandlers(e,t){const r=Ds(t);for(const n of e)!r&&n instanceof Nw||n.beforeHandle(t);for(const n of e)!r&&n instanceof Nw||n.handle(t);this.trigger("command-dispatched",t)}drawLayer(e,t){const r=this.renderers[t];if(r)for(const n of r)e.ctx.save(),n.drawLayer(e,t),e.ctx.restore()}exportData(){let e=Dw();for(const t of this.handlers)t instanceof Nw&&t.export(e);return e.revisionId=this.session.getRevisionId()||Y,e=re(e),e}updateMode(e){this.config.mode=e,this.trigger("update")}async exportXLSX(){this.dispatch("EVALUATE_CELLS");let e={...Dw(),sheets:[(t=Iw,r="Sheet1",{..._w(t,r),charts:[],images:[],cellValues:{}})]};var t,r;for(const t of this.handlers)t instanceof Vs&&await t.exportForExcel(e);return e=re(e),XT(e)}},e.NotAvailableError=x,e.NumberTooLargeError=_,e.OPERATOR_MAP=Rm,e.OP_PRIORITY=mm,e.OrderedLayers=tx,e.POSTFIX_UNARY_OPERATORS=Bl,e.Registry=h,e.Scope=n,e.SplillBlockedError=A,e.StateObserver=YI,e.TokenizingChars=Ze,e.UNARY_OPERATOR_MAP=Am,e.UnknownFunctionError=R,e.UuidGenerator=_o,e.__info__=rx,e._t=v,e.addRenderingLayer=function(e,t){if(ex[e])throw new Error(`Layer ${e} already exists`);ex[e]=t},e.batched=function(e){let t=!1;return async(...r)=>{t||(t=!0,await Promise.resolve(),t=!1,e(...r))}},e.borderStyles=["thin","medium","thick","dashed","dotted"],e.buildSheetLink=Ee,e.categories=om,e.cellReference=ho,e.chartStyleToCellStyle=function(e){return{bold:e.bold,italic:e.italic,fontSize:e.fontSize,textColor:e.color,align:e.align}},e.clip=ae,e.compile=_m,e.compileTokens=Dm,e.concat=Te,e.convertAstNodes=Sm,e.createEmptyStructure=Oo,e.debounce=Ie,e.deepCopy=re,e.deepEquals=Ae,e.deepEqualsArray=_e,e.errorTypes=w,e.escapeRegExp=te,e.findNextDefinedValue=function(e,t){let r=e.slice(t).find(e=>e);return r||(r=e.slice(0,t).reverse().find(e=>e)),r||""},e.functionCache=Om,e.getAddHeaderStartIndex=Re,e.getCanonicalSymbolName=se,e.getFormulaNumberRegex=Rt,e.getFullReference=To,e.getSearchRegex=function(e,t){let r=te(e);const n=t.matchCase?"":"i";return t.exactMatch&&(r=`^${r}$`),RegExp(r,n)},e.getUniqueText=Xe,e.getUnquotedSheetName=ne,e.groupConsecutive=ce,e.includesAll=De,e.insertItemsAtIndex=Be,e.isBoolean=he,e.isColHeader=wo,e.isColReference=yo,e.isConsecutive=ke,e.isDefined=Se,e.isFormula=Ke,e.isMarkdownLink=ge,e.isMatrix=D,e.isNotNull=function(e){return null!==e},e.isNumber=Ot,e.isNumberBetween=Ge,e.isObjectEmptyRecursive=Ce,e.isRowHeader=So,e.isRowReference=Eo,e.isSheetUrl=ye,e.isSingleCellReference=Co,e.isWebLink=me,e.iterateAstNodes=Cm,e.largeMax=We,e.largeMin=qe,e.lazy=xe,e.linkNext=ue,e.loopThroughReferenceType=function(e){if("REFERENCE"!==e.type)return e;const{xc:t,sheetName:r}=Io(e.value),[n,o]=t.split(":"),s=xo(n),i=o?`:${xo(o)}`:"";return{...e,value:To(r,s+i)}},e.mapAst=Tm,e.markdownLink=pe,e.memoize=Ue,e.parse=Em,e.parseMarkdownLink=be,e.parseNumber=Dt,e.parseSheetUrl=we,e.parseTokens=wm,e.percentile=Ft,e.range=le,e.rangeReference=vo,e.rangeTokenize=um,e.removeDuplicates=Ye,e.removeFalsyAttributes=Fe,e.removeIndexesFromArray=He,e.replaceItemAtIndex=ze,e.replaceNewLines=Pe,e.sanitizeSheetName=ie,e.setDefaultTranslationMethod=b,e.setTranslationMethod=function(e,t=()=>!0){g=e,m=t},e.setXcToFixedReferenceType=Ro,e.specialWhiteSpaceRegexp=Me,e.splitReference=Io,e.tokenize=$l,e.transpose2dPOJO=je,e.trimContent=$e,e.unquote=oe,e.whiteSpaceCharacters=Le,rx.version="19.1.0-alpha.3",rx.date="2025-12-26T10:19:48.559Z",rx.hash="3296c7e"}(this.o_spreadsheet_engine=this.o_spreadsheet_engine||{});
|
package/dist/o_spreadsheet.css
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/*
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.
|
|
6
|
-
* @date 2025-12-26T10:
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.0-alpha.1
|
|
6
|
+
* @date 2025-12-26T10:21:24.024Z
|
|
7
|
+
* @hash 3296c7e
|
|
8
8
|
*/
|
|
9
9
|
:root {
|
|
10
10
|
--os-gray-100: light-dark(#f9fafb, #1b1d26);
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.
|
|
6
|
-
* @date 2025-12-26T10:
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.0-alpha.1
|
|
6
|
+
* @date 2025-12-26T10:20:28.360Z
|
|
7
|
+
* @hash 3296c7e
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, App, blockDom, useState, onPatched, useExternalListener, onWillUpdateProps, onWillStart, onWillPatch, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
|
|
@@ -64891,13 +64891,16 @@ function downloadFile(dataUrl, fileName) {
|
|
|
64891
64891
|
document.body.removeChild(a);
|
|
64892
64892
|
}
|
|
64893
64893
|
/**
|
|
64894
|
-
* Detects
|
|
64894
|
+
* Detects the current browser brand and subsequent rendering engine
|
|
64895
64895
|
*/
|
|
64896
64896
|
function isBrowserFirefox() {
|
|
64897
64897
|
return /Firefox/i.test(navigator.userAgent);
|
|
64898
64898
|
}
|
|
64899
|
+
function isBrowserChrome() {
|
|
64900
|
+
return /Chrome/i.test(navigator.userAgent);
|
|
64901
|
+
}
|
|
64899
64902
|
function isBrowserSafari() {
|
|
64900
|
-
return /Safari/i.test(navigator.userAgent);
|
|
64903
|
+
return !isBrowserChrome() && /Safari/i.test(navigator.userAgent);
|
|
64901
64904
|
}
|
|
64902
64905
|
// Mobile detection
|
|
64903
64906
|
function maxTouchPoints() {
|
|
@@ -97895,6 +97898,6 @@ const chartHelpers = { ...CHART_HELPERS, ...CHART_RUNTIME_HELPERS };
|
|
|
97895
97898
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry$1 as Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, categories, chartHelpers, compile, compileTokens, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse$1 as parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
97896
97899
|
|
|
97897
97900
|
|
|
97898
|
-
__info__.version = "19.
|
|
97899
|
-
__info__.date = "2025-12-26T10:
|
|
97900
|
-
__info__.hash = "
|
|
97901
|
+
__info__.version = "19.2.0-alpha.1";
|
|
97902
|
+
__info__.date = "2025-12-26T10:20:28.360Z";
|
|
97903
|
+
__info__.hash = "3296c7e";
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.
|
|
6
|
-
* @date 2025-12-26T10:
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.0-alpha.1
|
|
6
|
+
* @date 2025-12-26T10:20:28.360Z
|
|
7
|
+
* @hash 3296c7e
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -64892,13 +64892,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64892
64892
|
document.body.removeChild(a);
|
|
64893
64893
|
}
|
|
64894
64894
|
/**
|
|
64895
|
-
* Detects
|
|
64895
|
+
* Detects the current browser brand and subsequent rendering engine
|
|
64896
64896
|
*/
|
|
64897
64897
|
function isBrowserFirefox() {
|
|
64898
64898
|
return /Firefox/i.test(navigator.userAgent);
|
|
64899
64899
|
}
|
|
64900
|
+
function isBrowserChrome() {
|
|
64901
|
+
return /Chrome/i.test(navigator.userAgent);
|
|
64902
|
+
}
|
|
64900
64903
|
function isBrowserSafari() {
|
|
64901
|
-
return /Safari/i.test(navigator.userAgent);
|
|
64904
|
+
return !isBrowserChrome() && /Safari/i.test(navigator.userAgent);
|
|
64902
64905
|
}
|
|
64903
64906
|
// Mobile detection
|
|
64904
64907
|
function maxTouchPoints() {
|
|
@@ -97950,9 +97953,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
97950
97953
|
exports.tokenize = tokenize;
|
|
97951
97954
|
|
|
97952
97955
|
|
|
97953
|
-
__info__.version = "19.
|
|
97954
|
-
__info__.date = "2025-12-26T10:
|
|
97955
|
-
__info__.hash = "
|
|
97956
|
+
__info__.version = "19.2.0-alpha.1";
|
|
97957
|
+
__info__.date = "2025-12-26T10:20:28.360Z";
|
|
97958
|
+
__info__.hash = "3296c7e";
|
|
97956
97959
|
|
|
97957
97960
|
|
|
97958
97961
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|