@odoo/o-spreadsheet 18.0.67 → 18.0.68
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.
|
@@ -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 18.0.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.68
|
|
6
|
+
* @date 2026-05-12T12:16:54.199Z
|
|
7
|
+
* @hash a0763ab
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -66545,6 +66545,6 @@ exports.stores = stores;
|
|
|
66545
66545
|
exports.tokenColors = tokenColors;
|
|
66546
66546
|
exports.tokenize = tokenize;
|
|
66547
66547
|
|
|
66548
|
-
__info__.version = "18.0.
|
|
66549
|
-
__info__.date = "2026-05-
|
|
66550
|
-
__info__.hash = "
|
|
66548
|
+
__info__.version = "18.0.68";
|
|
66549
|
+
__info__.date = "2026-05-12T12:16:54.199Z";
|
|
66550
|
+
__info__.hash = "a0763ab";
|
|
@@ -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 18.0.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.68
|
|
6
|
+
* @date 2026-05-12T12:16:54.199Z
|
|
7
|
+
* @hash a0763ab
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { Component, markRaw, onMounted, onPatched, onWillPatch, onWillStart, onWillUnmount, onWillUpdateProps, status, toRaw, useChildSubEnv, useComponent, useEffect, useEnv, useExternalListener, useRef, useState, useSubEnv, xml } from "@odoo/owl";
|
|
@@ -66316,6 +66316,6 @@ const constants = {
|
|
|
66316
66316
|
//#endregion
|
|
66317
66317
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
66318
66318
|
|
|
66319
|
-
__info__.version = "18.0.
|
|
66320
|
-
__info__.date = "2026-05-
|
|
66321
|
-
__info__.hash = "
|
|
66319
|
+
__info__.version = "18.0.68";
|
|
66320
|
+
__info__.date = "2026-05-12T12:16:54.199Z";
|
|
66321
|
+
__info__.hash = "a0763ab";
|
|
@@ -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 18.0.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.68
|
|
6
|
+
* @date 2026-05-12T12:16:54.199Z
|
|
7
|
+
* @hash a0763ab
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -66362,8 +66362,8 @@ exports.stores = stores;
|
|
|
66362
66362
|
exports.tokenColors = tokenColors;
|
|
66363
66363
|
exports.tokenize = tokenize;
|
|
66364
66364
|
|
|
66365
|
-
__info__.version = "18.0.
|
|
66366
|
-
__info__.date = "2026-05-
|
|
66367
|
-
__info__.hash = "
|
|
66365
|
+
__info__.version = "18.0.68";
|
|
66366
|
+
__info__.date = "2026-05-12T12:16:54.199Z";
|
|
66367
|
+
__info__.hash = "a0763ab";
|
|
66368
66368
|
|
|
66369
66369
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|
|
@@ -3301,4 +3301,4 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3301
3301
|
<Relationships xmlns="${rf.Relationships}">
|
|
3302
3302
|
<Relationship ${q(e)} />
|
|
3303
3303
|
</Relationships>
|
|
3304
|
-
`),`_rels/.rels`)}function BH(e){let t={},n=new Set;for(let r of e.sheets){let e=r.name.slice(0,31),i=1;for(;n.has(e);)e=e.slice(0,31-String(i).length)+ i++;n.add(e),e!==r.name&&(t[r.name]=e,r.name=e)}if(!Object.keys(t).length)return e;let r=Object.keys(t).sort((e,t)=>t.length-e.length),i=JSON.stringify(e);for(let e of r){let n=RegExp(`'?${rt(e)}'?!`,`g`);i=i.replaceAll(n,n=>{let r=t[e];return n.replace(e,r)})}return JSON.parse(i)}function VH(e){for(let t of e.sheets)t.tables=t.tables.filter(e=>hr(er(e.range)).numberOfRows>1);return e}var HH=function(e){return e[e.Ready=0]=`Ready`,e[e.Running=1]=`Running`,e[e.RunningCore=2]=`RunningCore`,e[e.Finalizing=3]=`Finalizing`,e}(HH||{}),UH=class extends od{corePlugins=[];featurePlugins=[];statefulUIPlugins=[];coreViewsPlugins=[];range;session;isReplayingCommand=!1;renderers={};status=HH.Ready;config;corePluginConfig;uiPluginConfig;state;selection;getters;coreGetters;uuidGenerator;handlers=[];uiHandlers=[];coreHandlers=[];constructor(e={},n={},r=[],i=new Dc,a=!1){let o=performance.now();console.debug(`##### Model creation #####`),super(),Xn(),r=Jh(e,r);let s=Hh(e,a);this.state=new lV,this.uuidGenerator=i,this.config=this.setupConfig(n),this.session=this.setupSession(s.revisionId),this.coreGetters={},this.range=new XL(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.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.getters={isReadonly:()=>this.config.mode===`readonly`||this.config.mode===`dashboard`,isDashboard:()=>this.config.mode===`dashboard`},this.selection=new sV(this.getters),this.coreHandlers.push(this.range),this.handlers.push(this.range),this.corePluginConfig=this.setupCorePluginConfig(),this.uiPluginConfig=this.setupUiPluginConfig();for(let e of hB.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(let e of vB.getAll()){let t=this.setupUiPlugin(e);this.coreViewsPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t),this.coreHandlers.push(t)}for(let e of _B.getAll()){let t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(let e of gB.getAll()){let t=this.setupUiPlugin(e);this.featurePlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}if(this.uuidGenerator.setIsFastStrategy(!1),this.dispatch(`START`),this.selection.observe(this,{handleEvent:()=>this.trigger(`update`)}),this.setupSessionEvents(),this.joinSession(),n.snapshotRequested||e[`[Content_Types].xml`]&&!this.getters.isReadonly()){let e=performance.now();console.debug(`Snapshot requested`),this.session.snapshot(this.exportData()),this.garbageCollectExternalResources(),console.debug(`Snapshot taken in`,performance.now()-e,`ms`)}(0,t.markRaw)(this),console.debug(`Model created in`,performance.now()-o,`ms`),console.debug(`######`)}joinSession(){this.session.join(this.config.client)}async leaveSession(){let e=this.getters.isReadonly()?void 0:Dt(()=>this.exportData());await this.session.leave(e)}setupUiPlugin(e){let t=new e(this.uiPluginConfig);for(let n of e.getters){if(!(n in t))throw Error(`Invalid getter name: ${n} for plugin ${t.constructor}`);if(n in this.getters)throw Error(`Getter "${n}" is already defined.`);this.getters[n]=t[n].bind(t)}for(let n of e.layers)this.renderers[n]||(this.renderers[n]=[]),this.renderers[n].push(t);return t}setupCorePlugin(e,t){let n=new e(this.corePluginConfig);for(let t of e.getters){if(!(t in n))throw Error(`Invalid getter name: ${t} for plugin ${n.constructor}`);if(t in this.coreGetters)throw Error(`Getter "${t}" is already defined.`);this.coreGetters[t]=n[t].bind(n)}n.import(t),this.corePlugins.push(n),this.coreHandlers.push(n),this.handlers.push(n)}onRemoteRevisionReceived({commands:e}){for(let t of e){let e=this.status;this.status=HH.RunningCore,this.dispatchToHandlers(this.statefulUIPlugins,t),this.status=e}this.finalize()}setupSession(e){return new gz(rV({initialRevisionId:e,recordChanges:this.state.recordChanges.bind(this.state),dispatch:e=>{if(!this.checkDispatchAllowed(e).isSuccessful){this.dispatchToHandlers(this.coreHandlers,{type:`UNDO`,commands:[e]});return}this.isReplayingCommand=!0,this.dispatchToHandlers(this.coreHandlers,e),this.isReplayingCommand=!1}}),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){let t=e.client||{id:this.uuidGenerator.smallUuid(),name:T(`Anonymous`).toString()},n=e.transportService||new YB;return{...e,mode:e.mode||`normal`,custom:e.custom||{},external:this.setupExternalConfig(e.external||{}),transportService:n,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){let t=e.loadLocales||(()=>Promise.resolve(Qi));return{...e,loadLocales:t}}setupCorePluginConfig(){return{getters:this.coreGetters,stateObserver:this.state,range:this.range,dispatch:this.dispatchFromCorePlugin,canDispatch:this.canDispatch,uuidGenerator:this.uuidGenerator,custom:this.config.custom,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||[]}}checkDispatchAllowed(e){let t=Ji(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>e!==k.Success)?new Xi(t.flat()):Xi.Success}checkDispatchAllowedCoreCommand(e){let 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=HH.Finalizing;for(let e of this.handlers)e.finalize();this.status=HH.Ready,this.trigger(`command-finalized`)}canDispatch=(e,t)=>this.checkDispatchAllowed(WH(e,t));dispatch=(e,t)=>{let n=WH(e,t),r=this.status;if(this.getters.isReadonly()&&!Yi(n))return new Xi(k.Readonly);if(!this.session.canApplyOptimisticUpdate())return new Xi(k.WaitingSessionConfirmation);switch(r){case HH.Ready:let t=this.checkDispatchAllowed(n);if(!t.isSuccessful)return this.trigger(`update`),t;this.status=HH.Running;let{changes:r,commands:i}=this.state.recordChanges(()=>{let t=performance.now();Ji(n)&&this.state.addCommand(n),this.dispatchToHandlers(this.handlers,n),this.finalize();let r=performance.now()-t;r>5&&console.debug(e,r,`ms`)});this.session.save(n,i,r),this.status=HH.Ready,this.trigger(`update`);break;case HH.Running:if(Ji(n)){let e=this.checkDispatchAllowed(n);if(!e.isSuccessful)return e;this.state.addCommand(n)}this.dispatchToHandlers(this.handlers,n);break;case HH.Finalizing:throw Error(`Cannot dispatch commands in the finalize state`);case HH.RunningCore:if(Ji(n))throw Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,n)}return Xi.Success};dispatchFromCorePlugin=(e,t)=>{let n=WH(e,t),r=this.status;this.status=HH.RunningCore;let i=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(i,n),this.status=r,Xi.Success};dispatchToHandlers(e,t){let n=Ji(t);for(let r of e)!n&&r instanceof NL||r.beforeHandle(t);for(let r of e)!n&&r instanceof NL||r.handle(t);this.trigger(`command-dispatched`,t)}drawLayer(e,t){let n=this.renderers[t];if(n)for(let r of n)e.ctx.save(),r.drawLayer(e,t),e.ctx.restore()}exportData(){let e=eg();for(let t of this.handlers)t instanceof NL&&t.export(e);return e.revisionId=this.session.getRevisionId()||`START_REVISION`,e=y(e),e}updateMode(e){this.config.mode=e,this.trigger(`update`)}exportXLSX(){this.dispatch(`EVALUATE_CELLS`);let e=ng();for(let t of this.handlers)t instanceof ML&&t.exportForExcel(e);return e=y(e),jH(e)}garbageCollectExternalResources(){for(let e of this.corePlugins)e.garbageCollectExternalResources()}};function WH(e,t={}){let n=y(t);return n.type=e,n}let GH={},KH={MIN_ROW_HEIGHT:10,MIN_COL_WIDTH:5,HEADER_HEIGHT:26,HEADER_WIDTH:48,TOPBAR_HEIGHT:63,BOTTOMBAR_HEIGHT:36,DEFAULT_CELL_WIDTH:96,DEFAULT_CELL_HEIGHT:23,SCROLLBAR_WIDTH:15},qH={autoCompleteProviders:f_,autofillModifiersRegistry:nD,autofillRulesRegistry:rD,cellMenuRegistry:Sj,colMenuRegistry:mN,errorTypes:ia,linkMenuRegistry:ak,functionRegistry:HT,featurePluginRegistry:gB,iconsOnCellRegistry:gf,statefulUIPluginRegistry:_B,coreViewsPluginRegistry:vB,corePluginRegistry:hB,rowMenuRegistry:yN,sidePanelRegistry:yI,figureRegistry:gO,chartSidePanelComponentRegistry:sP,chartComponentRegistry:cO,chartRegistry:sO,chartSubtypeRegistry:uO,topbarMenuRegistry:TN,topbarComponentRegistry:DN,clickableCellRegistry:yB,otRegistry:EN,inverseCommandRegistry:SO,urlRegistry:$a,cellPopoverRegistry:pD,numberFormatMenuRegistry:hN,repeatLocalCommandTransformRegistry:Zz,repeatCommandTransformRegistry:Xz,clipboardHandlersRegistries:rd,pivotRegistry:LF,pivotTimeAdapterRegistry:fu,pivotSidePanelRegistry:UF,pivotNormalizationValueRegistry:Uu,supportedPivotPositionalFormulaRegistry:ZE,pivotToFunctionValueRegistry:Wu,migrationStepRegistry:zh},JH={arg:Z,isEvaluationError:F,toBoolean:R,toJsDate:z,toNumber:I,toString:L,toNormalizedPivotValue:zu,toXC:w,toZone:er,toUnboundedZone:$n,toCartesian:Fn,numberToLetters:En,lettersToNumber:Dn,UuidGenerator:Dc,formatValue:V,createCurrencyFormat:ts,ColorGenerator:Tn,computeTextWidth:uc,createEmptyWorkbookData:eg,createEmptySheet:$h,createEmptyExcelSheet:tg,getDefaultChartJsRuntime:e_,chartFontColor:Ad,getChartAxisTitleRuntime:Fd,getChartAxisType:DD,getTrendDatasetForBarChart:Rd,getTrendDatasetForLineChart:PD,getFillingMode:a_,rgbaToHex:ln,colorToRGBA:un,positionToZone:E,isDefined:S,isMatrix:j,lazy:Dt,genericRepeat:Qz,createAction:m,createActions:f,transformRangeData:ad,deepEquals:C,overlap:fr,union:cr,isInside:pr,deepCopy:y,expandZoneOnInsertion:ir,reduceZoneOnDeletion:sr,unquote:ot,getMaxObjectId:ju,getFunctionsFromTokens:VE,getFirstPivotFunction:YE,getNumberOfPivotFunctions:XE,parseDimension:Pu,isDateOrDatetimeField:Fu,makeFieldProposal:WE,insertTokenAfterArgSeparator:KE,insertTokenAfterLeftParenthesis:qE,mergeContiguousZones:Nr,getPivotHighlights:xN,pivotTimeAdapter:pu,UNDO_REDO_PIVOT_COMMANDS:LR,createPivotFormula:Ru,areDomainArgsFieldsValid:Lu,splitReference:Ws,formatTickValue:Hd,sanitizeSheetName:ct,isNumber:Ai,isDateTime:Qr},YH={isMarkdownLink:mt,parseMarkdownLink:_t,markdownLink:gt,openLink:io,urlRepresentation:ro},XH={Checkbox:ON,Section:kN,RoundColorPicker:KN,ChartDataSeries:NN,ChartErrorSection:FN,ChartLabelRange:IN,ChartTitle:JN,ChartPanel:uP,ChartFigure:fO,ChartJsComponent:u_,Grid:kL,GridOverlay:oL,ScorecardChart:d_,LineConfigPanel:tP,BarConfigPanel:RN,PieChartDesignPanel:nP,GenericChartConfigPanel:LN,ChartWithAxisDesignPanel:ZN,GaugeChartConfigPanel:$N,GaugeChartDesignPanel:eP,ScorecardChartConfigPanel:iP,ScorecardChartDesignPanel:aP,ChartTypePicker:cP,FigureComponent:bI,Menu:gk,Popover:fk,SelectionInput:MN,ValidationMessages:PN,AddDimensionButton:oF,PivotDimensionGranularity:uF,PivotDimensionOrder:dF,PivotDimension:lF,PivotLayoutConfigurator:mF,PivotHTMLRenderer:jL,EditableName:AL,PivotDeferUpdate:iF,PivotTitleSection:hF,CogWheelMenu:cF,TextInput:sF,SidePanelCollapsible:BN},ZH={useDragAndDropListItems:gP,useHighlights:wP,useHighlightsOnHover:CP},QH={useStoreProvider:dd,DependencyContainer:sd,CellPopoverStore:JO,ComposerFocusStore:bd,CellComposerStore:MI,FindAndReplaceStore:QP,HighlightStore:wN,HoveredCellStore:qO,ModelStore:gd,NotificationStore:dP,RendererStore:_d,SelectionInputStore:jN,SpreadsheetStore:vd,useStore:H,useLocalStore:fd,SidePanelStore:TL,PivotSidePanelStore:VF,PivotMeasureDisplayPanelStore:nF};function $H(e,t){return HT.add(e,t),{addFunction:(e,t)=>$H(e,t)}}let eU={DEFAULT_LOCALE:A,HIGHLIGHT_COLOR:_,PIVOT_TABLE_CONFIG:Qe,TREND_LINE_XAXIS_ID:`x1`,CHART_AXIS_CHOICES:Wd,ChartTerms:lg};e.AbstractCellClipboardHandler=Lc,e.AbstractChart=Pg,e.AbstractFigureClipboardHandler=Ju,e.CellErrorType=M,e.CommandResult=k,e.CorePlugin=NL,e.DispatchResult=Xi,e.EvaluationError=N,e.Model=UH,e.PivotRuntimeDefinition=gF,e.Registry=h,e.Revision=mz,e.SPREADSHEET_DIMENSIONS=KH,e.Spreadsheet=JB,e.SpreadsheetPivotTable=bF,e.UIPlugin=iR,e.__info__=GH,e.addFunction=$H,e.addRenderingLayer=ra,e.astToFormula=wC,e.compile=ME,e.compileTokens=NE,e.components=XH,e.constants=eU,e.convertAstNodes=bC,e.coreTypes=qi,e.findCellInNewZone=wr,e.functionCache=jE,e.helpers=JH,e.hooks=ZH,e.invalidateCFEvaluationCommands=Wi,e.invalidateDependenciesCommands=Ui,e.invalidateEvaluationCommands=Vi,e.iterateAstNodes=xC,e.links=YH,e.load=Hh,e.parse=vC,e.parseTokens=yC,e.readonlyAllowedCommands=Ki,e.registries=qH,e.setDefaultSheetViewSize=Xe,e.setTranslationMethod=Yn,e.stores=QH,e.tokenColors=xE,e.tokenize=Vc,GH.version=`18.0.67`,GH.date=`2026-05-11T13:43:30.948Z`,GH.hash=`06413da`})(this.o_spreadsheet=this.o_spreadsheet||{},owl);
|
|
3304
|
+
`),`_rels/.rels`)}function BH(e){let t={},n=new Set;for(let r of e.sheets){let e=r.name.slice(0,31),i=1;for(;n.has(e);)e=e.slice(0,31-String(i).length)+ i++;n.add(e),e!==r.name&&(t[r.name]=e,r.name=e)}if(!Object.keys(t).length)return e;let r=Object.keys(t).sort((e,t)=>t.length-e.length),i=JSON.stringify(e);for(let e of r){let n=RegExp(`'?${rt(e)}'?!`,`g`);i=i.replaceAll(n,n=>{let r=t[e];return n.replace(e,r)})}return JSON.parse(i)}function VH(e){for(let t of e.sheets)t.tables=t.tables.filter(e=>hr(er(e.range)).numberOfRows>1);return e}var HH=function(e){return e[e.Ready=0]=`Ready`,e[e.Running=1]=`Running`,e[e.RunningCore=2]=`RunningCore`,e[e.Finalizing=3]=`Finalizing`,e}(HH||{}),UH=class extends od{corePlugins=[];featurePlugins=[];statefulUIPlugins=[];coreViewsPlugins=[];range;session;isReplayingCommand=!1;renderers={};status=HH.Ready;config;corePluginConfig;uiPluginConfig;state;selection;getters;coreGetters;uuidGenerator;handlers=[];uiHandlers=[];coreHandlers=[];constructor(e={},n={},r=[],i=new Dc,a=!1){let o=performance.now();console.debug(`##### Model creation #####`),super(),Xn(),r=Jh(e,r);let s=Hh(e,a);this.state=new lV,this.uuidGenerator=i,this.config=this.setupConfig(n),this.session=this.setupSession(s.revisionId),this.coreGetters={},this.range=new XL(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.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.getters={isReadonly:()=>this.config.mode===`readonly`||this.config.mode===`dashboard`,isDashboard:()=>this.config.mode===`dashboard`},this.selection=new sV(this.getters),this.coreHandlers.push(this.range),this.handlers.push(this.range),this.corePluginConfig=this.setupCorePluginConfig(),this.uiPluginConfig=this.setupUiPluginConfig();for(let e of hB.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(let e of vB.getAll()){let t=this.setupUiPlugin(e);this.coreViewsPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t),this.coreHandlers.push(t)}for(let e of _B.getAll()){let t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(let e of gB.getAll()){let t=this.setupUiPlugin(e);this.featurePlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}if(this.uuidGenerator.setIsFastStrategy(!1),this.dispatch(`START`),this.selection.observe(this,{handleEvent:()=>this.trigger(`update`)}),this.setupSessionEvents(),this.joinSession(),n.snapshotRequested||e[`[Content_Types].xml`]&&!this.getters.isReadonly()){let e=performance.now();console.debug(`Snapshot requested`),this.session.snapshot(this.exportData()),this.garbageCollectExternalResources(),console.debug(`Snapshot taken in`,performance.now()-e,`ms`)}(0,t.markRaw)(this),console.debug(`Model created in`,performance.now()-o,`ms`),console.debug(`######`)}joinSession(){this.session.join(this.config.client)}async leaveSession(){let e=this.getters.isReadonly()?void 0:Dt(()=>this.exportData());await this.session.leave(e)}setupUiPlugin(e){let t=new e(this.uiPluginConfig);for(let n of e.getters){if(!(n in t))throw Error(`Invalid getter name: ${n} for plugin ${t.constructor}`);if(n in this.getters)throw Error(`Getter "${n}" is already defined.`);this.getters[n]=t[n].bind(t)}for(let n of e.layers)this.renderers[n]||(this.renderers[n]=[]),this.renderers[n].push(t);return t}setupCorePlugin(e,t){let n=new e(this.corePluginConfig);for(let t of e.getters){if(!(t in n))throw Error(`Invalid getter name: ${t} for plugin ${n.constructor}`);if(t in this.coreGetters)throw Error(`Getter "${t}" is already defined.`);this.coreGetters[t]=n[t].bind(n)}n.import(t),this.corePlugins.push(n),this.coreHandlers.push(n),this.handlers.push(n)}onRemoteRevisionReceived({commands:e}){for(let t of e){let e=this.status;this.status=HH.RunningCore,this.dispatchToHandlers(this.statefulUIPlugins,t),this.status=e}this.finalize()}setupSession(e){return new gz(rV({initialRevisionId:e,recordChanges:this.state.recordChanges.bind(this.state),dispatch:e=>{if(!this.checkDispatchAllowed(e).isSuccessful){this.dispatchToHandlers(this.coreHandlers,{type:`UNDO`,commands:[e]});return}this.isReplayingCommand=!0,this.dispatchToHandlers(this.coreHandlers,e),this.isReplayingCommand=!1}}),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){let t=e.client||{id:this.uuidGenerator.smallUuid(),name:T(`Anonymous`).toString()},n=e.transportService||new YB;return{...e,mode:e.mode||`normal`,custom:e.custom||{},external:this.setupExternalConfig(e.external||{}),transportService:n,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){let t=e.loadLocales||(()=>Promise.resolve(Qi));return{...e,loadLocales:t}}setupCorePluginConfig(){return{getters:this.coreGetters,stateObserver:this.state,range:this.range,dispatch:this.dispatchFromCorePlugin,canDispatch:this.canDispatch,uuidGenerator:this.uuidGenerator,custom:this.config.custom,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||[]}}checkDispatchAllowed(e){let t=Ji(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>e!==k.Success)?new Xi(t.flat()):Xi.Success}checkDispatchAllowedCoreCommand(e){let 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=HH.Finalizing;for(let e of this.handlers)e.finalize();this.status=HH.Ready,this.trigger(`command-finalized`)}canDispatch=(e,t)=>this.checkDispatchAllowed(WH(e,t));dispatch=(e,t)=>{let n=WH(e,t),r=this.status;if(this.getters.isReadonly()&&!Yi(n))return new Xi(k.Readonly);if(!this.session.canApplyOptimisticUpdate())return new Xi(k.WaitingSessionConfirmation);switch(r){case HH.Ready:let t=this.checkDispatchAllowed(n);if(!t.isSuccessful)return this.trigger(`update`),t;this.status=HH.Running;let{changes:r,commands:i}=this.state.recordChanges(()=>{let t=performance.now();Ji(n)&&this.state.addCommand(n),this.dispatchToHandlers(this.handlers,n),this.finalize();let r=performance.now()-t;r>5&&console.debug(e,r,`ms`)});this.session.save(n,i,r),this.status=HH.Ready,this.trigger(`update`);break;case HH.Running:if(Ji(n)){let e=this.checkDispatchAllowed(n);if(!e.isSuccessful)return e;this.state.addCommand(n)}this.dispatchToHandlers(this.handlers,n);break;case HH.Finalizing:throw Error(`Cannot dispatch commands in the finalize state`);case HH.RunningCore:if(Ji(n))throw Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,n)}return Xi.Success};dispatchFromCorePlugin=(e,t)=>{let n=WH(e,t),r=this.status;this.status=HH.RunningCore;let i=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(i,n),this.status=r,Xi.Success};dispatchToHandlers(e,t){let n=Ji(t);for(let r of e)!n&&r instanceof NL||r.beforeHandle(t);for(let r of e)!n&&r instanceof NL||r.handle(t);this.trigger(`command-dispatched`,t)}drawLayer(e,t){let n=this.renderers[t];if(n)for(let r of n)e.ctx.save(),r.drawLayer(e,t),e.ctx.restore()}exportData(){let e=eg();for(let t of this.handlers)t instanceof NL&&t.export(e);return e.revisionId=this.session.getRevisionId()||`START_REVISION`,e=y(e),e}updateMode(e){this.config.mode=e,this.trigger(`update`)}exportXLSX(){this.dispatch(`EVALUATE_CELLS`);let e=ng();for(let t of this.handlers)t instanceof ML&&t.exportForExcel(e);return e=y(e),jH(e)}garbageCollectExternalResources(){for(let e of this.corePlugins)e.garbageCollectExternalResources()}};function WH(e,t={}){let n=y(t);return n.type=e,n}let GH={},KH={MIN_ROW_HEIGHT:10,MIN_COL_WIDTH:5,HEADER_HEIGHT:26,HEADER_WIDTH:48,TOPBAR_HEIGHT:63,BOTTOMBAR_HEIGHT:36,DEFAULT_CELL_WIDTH:96,DEFAULT_CELL_HEIGHT:23,SCROLLBAR_WIDTH:15},qH={autoCompleteProviders:f_,autofillModifiersRegistry:nD,autofillRulesRegistry:rD,cellMenuRegistry:Sj,colMenuRegistry:mN,errorTypes:ia,linkMenuRegistry:ak,functionRegistry:HT,featurePluginRegistry:gB,iconsOnCellRegistry:gf,statefulUIPluginRegistry:_B,coreViewsPluginRegistry:vB,corePluginRegistry:hB,rowMenuRegistry:yN,sidePanelRegistry:yI,figureRegistry:gO,chartSidePanelComponentRegistry:sP,chartComponentRegistry:cO,chartRegistry:sO,chartSubtypeRegistry:uO,topbarMenuRegistry:TN,topbarComponentRegistry:DN,clickableCellRegistry:yB,otRegistry:EN,inverseCommandRegistry:SO,urlRegistry:$a,cellPopoverRegistry:pD,numberFormatMenuRegistry:hN,repeatLocalCommandTransformRegistry:Zz,repeatCommandTransformRegistry:Xz,clipboardHandlersRegistries:rd,pivotRegistry:LF,pivotTimeAdapterRegistry:fu,pivotSidePanelRegistry:UF,pivotNormalizationValueRegistry:Uu,supportedPivotPositionalFormulaRegistry:ZE,pivotToFunctionValueRegistry:Wu,migrationStepRegistry:zh},JH={arg:Z,isEvaluationError:F,toBoolean:R,toJsDate:z,toNumber:I,toString:L,toNormalizedPivotValue:zu,toXC:w,toZone:er,toUnboundedZone:$n,toCartesian:Fn,numberToLetters:En,lettersToNumber:Dn,UuidGenerator:Dc,formatValue:V,createCurrencyFormat:ts,ColorGenerator:Tn,computeTextWidth:uc,createEmptyWorkbookData:eg,createEmptySheet:$h,createEmptyExcelSheet:tg,getDefaultChartJsRuntime:e_,chartFontColor:Ad,getChartAxisTitleRuntime:Fd,getChartAxisType:DD,getTrendDatasetForBarChart:Rd,getTrendDatasetForLineChart:PD,getFillingMode:a_,rgbaToHex:ln,colorToRGBA:un,positionToZone:E,isDefined:S,isMatrix:j,lazy:Dt,genericRepeat:Qz,createAction:m,createActions:f,transformRangeData:ad,deepEquals:C,overlap:fr,union:cr,isInside:pr,deepCopy:y,expandZoneOnInsertion:ir,reduceZoneOnDeletion:sr,unquote:ot,getMaxObjectId:ju,getFunctionsFromTokens:VE,getFirstPivotFunction:YE,getNumberOfPivotFunctions:XE,parseDimension:Pu,isDateOrDatetimeField:Fu,makeFieldProposal:WE,insertTokenAfterArgSeparator:KE,insertTokenAfterLeftParenthesis:qE,mergeContiguousZones:Nr,getPivotHighlights:xN,pivotTimeAdapter:pu,UNDO_REDO_PIVOT_COMMANDS:LR,createPivotFormula:Ru,areDomainArgsFieldsValid:Lu,splitReference:Ws,formatTickValue:Hd,sanitizeSheetName:ct,isNumber:Ai,isDateTime:Qr},YH={isMarkdownLink:mt,parseMarkdownLink:_t,markdownLink:gt,openLink:io,urlRepresentation:ro},XH={Checkbox:ON,Section:kN,RoundColorPicker:KN,ChartDataSeries:NN,ChartErrorSection:FN,ChartLabelRange:IN,ChartTitle:JN,ChartPanel:uP,ChartFigure:fO,ChartJsComponent:u_,Grid:kL,GridOverlay:oL,ScorecardChart:d_,LineConfigPanel:tP,BarConfigPanel:RN,PieChartDesignPanel:nP,GenericChartConfigPanel:LN,ChartWithAxisDesignPanel:ZN,GaugeChartConfigPanel:$N,GaugeChartDesignPanel:eP,ScorecardChartConfigPanel:iP,ScorecardChartDesignPanel:aP,ChartTypePicker:cP,FigureComponent:bI,Menu:gk,Popover:fk,SelectionInput:MN,ValidationMessages:PN,AddDimensionButton:oF,PivotDimensionGranularity:uF,PivotDimensionOrder:dF,PivotDimension:lF,PivotLayoutConfigurator:mF,PivotHTMLRenderer:jL,EditableName:AL,PivotDeferUpdate:iF,PivotTitleSection:hF,CogWheelMenu:cF,TextInput:sF,SidePanelCollapsible:BN},ZH={useDragAndDropListItems:gP,useHighlights:wP,useHighlightsOnHover:CP},QH={useStoreProvider:dd,DependencyContainer:sd,CellPopoverStore:JO,ComposerFocusStore:bd,CellComposerStore:MI,FindAndReplaceStore:QP,HighlightStore:wN,HoveredCellStore:qO,ModelStore:gd,NotificationStore:dP,RendererStore:_d,SelectionInputStore:jN,SpreadsheetStore:vd,useStore:H,useLocalStore:fd,SidePanelStore:TL,PivotSidePanelStore:VF,PivotMeasureDisplayPanelStore:nF};function $H(e,t){return HT.add(e,t),{addFunction:(e,t)=>$H(e,t)}}let eU={DEFAULT_LOCALE:A,HIGHLIGHT_COLOR:_,PIVOT_TABLE_CONFIG:Qe,TREND_LINE_XAXIS_ID:`x1`,CHART_AXIS_CHOICES:Wd,ChartTerms:lg};e.AbstractCellClipboardHandler=Lc,e.AbstractChart=Pg,e.AbstractFigureClipboardHandler=Ju,e.CellErrorType=M,e.CommandResult=k,e.CorePlugin=NL,e.DispatchResult=Xi,e.EvaluationError=N,e.Model=UH,e.PivotRuntimeDefinition=gF,e.Registry=h,e.Revision=mz,e.SPREADSHEET_DIMENSIONS=KH,e.Spreadsheet=JB,e.SpreadsheetPivotTable=bF,e.UIPlugin=iR,e.__info__=GH,e.addFunction=$H,e.addRenderingLayer=ra,e.astToFormula=wC,e.compile=ME,e.compileTokens=NE,e.components=XH,e.constants=eU,e.convertAstNodes=bC,e.coreTypes=qi,e.findCellInNewZone=wr,e.functionCache=jE,e.helpers=JH,e.hooks=ZH,e.invalidateCFEvaluationCommands=Wi,e.invalidateDependenciesCommands=Ui,e.invalidateEvaluationCommands=Vi,e.iterateAstNodes=xC,e.links=YH,e.load=Hh,e.parse=vC,e.parseTokens=yC,e.readonlyAllowedCommands=Ki,e.registries=qH,e.setDefaultSheetViewSize=Xe,e.setTranslationMethod=Yn,e.stores=QH,e.tokenColors=xE,e.tokenize=Vc,GH.version=`18.0.68`,GH.date=`2026-05-12T12:16:54.199Z`,GH.hash=`a0763ab`})(this.o_spreadsheet=this.o_spreadsheet||{},owl);
|
package/dist/o_spreadsheet.xml
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!--
|
|
2
2
|
This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
3
3
|
@see https://github.com/odoo/o-spreadsheet
|
|
4
|
-
@version 18.0.
|
|
5
|
-
@date 2026-05-
|
|
6
|
-
@hash
|
|
4
|
+
@version 18.0.68
|
|
5
|
+
@date 2026-05-12T12:16:54.935Z
|
|
6
|
+
@hash a0763ab
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ActionButton">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odoo/o-spreadsheet",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.68",
|
|
4
4
|
"description": "A spreadsheet component",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/o-spreadsheet.cjs.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"prettier": "prettier . --write",
|
|
30
30
|
"check-formatting": "prettier . --check && eslint",
|
|
31
31
|
"dist": "tsc --module es6 --declaration --declarationDir dist/types && rolldown -c && npm run build:bundleXml -- --outDir dist",
|
|
32
|
-
"
|
|
32
|
+
"prepare": "husky install",
|
|
33
33
|
"watch:bundle": "npm run build:bundleJsDev -- --watch",
|
|
34
34
|
"watch:ts": "npm run build:js -- --watch",
|
|
35
35
|
"watch:xml": "node tools/bundle_xml/watch_xml_templates.cjs",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"jszip": "^3.6.0",
|
|
83
83
|
"lint-staged": "^12.1.2",
|
|
84
84
|
"live-server": "^1.2.1",
|
|
85
|
-
"luxon": "
|
|
85
|
+
"luxon": "3.4.4",
|
|
86
86
|
"minimist": "^1.2.8",
|
|
87
87
|
"mockdate": "^3.0.2",
|
|
88
88
|
"node-watch": "^0.7.3",
|
|
@@ -129,8 +129,8 @@
|
|
|
129
129
|
"xmlSelfClosingSpace": false
|
|
130
130
|
},
|
|
131
131
|
"dependencies": {
|
|
132
|
-
"@odoo/owl": "2.8.
|
|
133
|
-
"bootstrap": "
|
|
132
|
+
"@odoo/owl": "2.8.2",
|
|
133
|
+
"bootstrap": "5.3.3",
|
|
134
134
|
"font-awesome": "^4.7.0",
|
|
135
135
|
"rbush": "^3.0.1"
|
|
136
136
|
},
|