@odoo/o-spreadsheet 18.3.46 → 18.3.47
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.3.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.3.47
|
|
6
|
+
* @date 2026-05-12T12:18:07.038Z
|
|
7
|
+
* @hash 8b8bc44
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -72315,6 +72315,6 @@ exports.stores = stores;
|
|
|
72315
72315
|
exports.tokenColors = tokenColors;
|
|
72316
72316
|
exports.tokenize = tokenize;
|
|
72317
72317
|
|
|
72318
|
-
__info__.version = "18.3.
|
|
72319
|
-
__info__.date = "2026-05-
|
|
72320
|
-
__info__.hash = "
|
|
72318
|
+
__info__.version = "18.3.47";
|
|
72319
|
+
__info__.date = "2026-05-12T12:18:07.038Z";
|
|
72320
|
+
__info__.hash = "8b8bc44";
|
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 18.3.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.3.47
|
|
6
|
+
* @date 2026-05-12T12:18:08.869Z
|
|
7
|
+
* @hash 8b8bc44
|
|
8
8
|
*/
|
|
9
9
|
/* Originates from src/components/top_bar/top_bar.scss */
|
|
10
10
|
@media (max-width: 900px) {
|
|
@@ -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.3.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.3.47
|
|
6
|
+
* @date 2026-05-12T12:18:07.038Z
|
|
7
|
+
* @hash 8b8bc44
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { App, Component, blockDom, markRaw, onMounted, onPatched, onWillPatch, onWillStart, onWillUnmount, onWillUpdateProps, status, toRaw, useChildSubEnv, useComponent, useEffect, useEnv, useExternalListener, useRef, useState, useSubEnv, xml } from "@odoo/owl";
|
|
@@ -72083,6 +72083,6 @@ const chartHelpers = {
|
|
|
72083
72083
|
//#endregion
|
|
72084
72084
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, CoreViewPlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, chartHelpers, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
72085
72085
|
|
|
72086
|
-
__info__.version = "18.3.
|
|
72087
|
-
__info__.date = "2026-05-
|
|
72088
|
-
__info__.hash = "
|
|
72086
|
+
__info__.version = "18.3.47";
|
|
72087
|
+
__info__.date = "2026-05-12T12:18:07.038Z";
|
|
72088
|
+
__info__.hash = "8b8bc44";
|
|
@@ -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.3.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.3.47
|
|
6
|
+
* @date 2026-05-12T12:18:07.038Z
|
|
7
|
+
* @hash 8b8bc44
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -72132,8 +72132,8 @@ exports.stores = stores;
|
|
|
72132
72132
|
exports.tokenColors = tokenColors;
|
|
72133
72133
|
exports.tokenize = tokenize;
|
|
72134
72134
|
|
|
72135
|
-
__info__.version = "18.3.
|
|
72136
|
-
__info__.date = "2026-05-
|
|
72137
|
-
__info__.hash = "
|
|
72135
|
+
__info__.version = "18.3.47";
|
|
72136
|
+
__info__.date = "2026-05-12T12:18:07.038Z";
|
|
72137
|
+
__info__.hash = "8b8bc44";
|
|
72138
72138
|
|
|
72139
72139
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|
|
@@ -3382,4 +3382,4 @@ You can download it directly instead.`,5),sticky:!1,type:`warning`});return}r=aw
|
|
|
3382
3382
|
<Relationships xmlns="${rO.Relationships}">
|
|
3383
3383
|
<Relationship ${q(e)} />
|
|
3384
3384
|
</Relationships>
|
|
3385
|
-
`),`_rels/.rels`)}function FK(e){let t={},n=[];for(let r of e.sheets){let e=r.name.slice(0,31);e=$t(e,n,{compute:(e,t)=>e.slice(0,31-String(t).length)+t}),n.push(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(`'?${at(e)}'?!`,`g`);i=i.replaceAll(n,n=>{let r=t[e];return n.replace(e,r)})}return JSON.parse(i)}function IK(e){for(let t of e.sheets)t.tables=t.tables.filter(e=>br(ar(e.range)).numberOfRows>1);return e}var LK=class extends Hd{corePlugins=[];statefulUIPlugins=[];range;session;isReplayingCommand=!1;renderers={};status=0;config;corePluginConfig;coreViewPluginConfig;uiPluginConfig;state;selection;getters;coreGetters;uuidGenerator;handlers=[];uiHandlers=[];coreHandlers=[];constructor(e={},n={},r=[],i=new al,a=!1){let o=performance.now();console.debug(`##### Model creation #####`),super(),qi(),r=Nj(e,r);let s=Tj(e,a);this.state=new nG,this.uuidGenerator=i,this.config=this.setupConfig(n),this.session=this.setupSession(s.revisionId),this.coreGetters={},this.range=new AV(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.copyFormulaStringForSheet=this.range.copyFormulaStringForSheet.bind(this.range),this.getters={isReadonly:()=>this.config.mode===`readonly`||this.config.mode===`dashboard`,isDashboard:()=>this.config.mode===`dashboard`},this.selection=new eG(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(let e of tW.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(let e of iW.getAll()){let t=this.setupCoreViewPlugin(e);this.handlers.push(t),this.uiHandlers.push(t),this.coreHandlers.push(t)}for(let e of rW.getAll()){let t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(let e of nW.getAll()){let 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(),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:kt(()=>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}setupCoreViewPlugin(e){let t=new e(this.coreViewPluginConfig);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)}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=2,this.dispatchToHandlers(this.statefulUIPlugins,t),this.status=e}this.finalize()}setupSession(e){return new rU(XW({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:O(`Anonymous`).toString()},n=e.transportService||new HW;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(pa));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,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}}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){let t=ca(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>e!==`Success`)?new ua(t.flat()):ua.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=3;for(let e of this.handlers)e.finalize();this.status=0,this.trigger(`command-finalized`)}canDispatch=(e,t)=>this.checkDispatchAllowed(RK(e,t));dispatch=(e,t)=>{let n=RK(e,t),r=this.status;if(this.getters.isReadonly()&&!la(n))return new ua(`Readonly`);if(!this.session.canApplyOptimisticUpdate())return new ua(`WaitingSessionConfirmation`);switch(r){case 0:let t=this.checkDispatchAllowed(n);if(!t.isSuccessful)return this.trigger(`update`),t;this.status=1;let{changes:r,commands:i}=this.state.recordChanges(()=>{let t=performance.now();ca(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=0,this.trigger(`update`);break;case 1:if(ca(n)){let e=this.checkDispatchAllowed(n);if(!e.isSuccessful)return e;this.state.addCommand(n)}this.dispatchToHandlers(this.handlers,n);break;case 3:throw Error(`Cannot dispatch commands in the finalize state`);case 2:if(ca(n))throw Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,n)}return ua.Success};dispatchFromCorePlugin=(e,t)=>{let n=RK(e,t),r=this.status;this.status=2;let i=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(i,n),this.status=r,ua.Success};dispatchToHandlers(e,t){let n=ca(t);for(let r of e)!n&&r instanceof mV||r.beforeHandle(t);for(let r of e)!n&&r instanceof mV||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=Bj();for(let t of this.handlers)t instanceof mV&&t.export(e);return e.revisionId=this.session.getRevisionId()||`START_REVISION`,e=b(e),e}updateMode(e){this.config.mode=e,this.trigger(`update`)}exportXLSX(){this.dispatch(`EVALUATE_CELLS`);let e=Hj();for(let t of this.handlers)t instanceof pV&&t.exportForExcel(e);return e=b(e),EK(e)}garbageCollectExternalResources(){for(let e of this.corePlugins)e.garbageCollectExternalResources()}};function RK(e,t={}){let n=b(t);return n.type=e,n}let zK={},BK={MIN_ROW_HEIGHT:10,MIN_COL_WIDTH:5,HEADER_HEIGHT:26,HEADER_WIDTH:48,BOTTOMBAR_HEIGHT:36,DEFAULT_CELL_WIDTH:96,DEFAULT_CELL_HEIGHT:23,SCROLLBAR_WIDTH:15},VK={autoCompleteProviders:oC,autofillModifiersRegistry:kC,autofillRulesRegistry:AC,cellMenuRegistry:MP,colMenuRegistry:TI,errorTypes:va,linkMenuRegistry:fM,functionRegistry:ix,featurePluginRegistry:nW,iconsOnCellRegistry:hO,statefulUIPluginRegistry:rW,coreViewsPluginRegistry:iW,corePluginRegistry:tW,rowMenuRegistry:AI,sidePanelRegistry:nB,figureRegistry:kD,chartSidePanelComponentRegistry:eR,chartComponentRegistry:RE,chartRegistry:LE,chartSubtypeRegistry:BE,topbarMenuRegistry:PI,topbarComponentRegistry:II,clickableCellRegistry:aW,otRegistry:FI,inverseCommandRegistry:FD,urlRegistry:ho,cellPopoverRegistry:BC,numberFormatMenuRegistry:EI,repeatLocalCommandTransformRegistry:LU,repeatCommandTransformRegistry:IU,clipboardHandlersRegistries:zd,pivotRegistry:bz,pivotTimeAdapterRegistry:qu,pivotSidePanelRegistry:Ez,pivotNormalizationValueRegistry:wd,supportedPivotPositionalFormulaRegistry:wC,pivotToFunctionValueRegistry:Td,migrationStepRegistry:bj,chartJsExtensionRegistry:pf},HK={arg:W,isEvaluationError:P,toBoolean:L,toJsDate:R,toNumber:F,toString:I,toNormalizedPivotValue:bd,toFunctionPivotValue:Sd,toXC:T,toZone:ar,toUnboundedZone:ir,toCartesian:Jn,numberToLetters:zn,lettersToNumber:Bn,UuidGenerator:al,formatValue:B,createCurrencyFormat:gs,ColorGenerator:Pn,computeTextWidth:Vc,createEmptyWorkbookData:Bj,createEmptySheet:zj,createEmptyExcelSheet:Vj,rgbaToHex:mn,colorToRGBA:hn,positionToZone:E,isDefined:C,isMatrix:A,lazy:kt,genericRepeat:RU,createAction:m,createActions:f,transformRangeData:Vd,deepEquals:w,overlap:_r,union:pr,isInside:vr,deepCopy:b,expandZoneOnInsertion:lr,reduceZoneOnDeletion:fr,unquote:ct,getMaxObjectId:fd,getFunctionsFromTokens:kx,getFirstPivotFunction:SC,getNumberOfPivotFunctions:CC,parseDimension:hd,isDateOrDatetimeField:gd,makeFieldProposal:_C,insertTokenAfterArgSeparator:yC,insertTokenAfterLeftParenthesis:bC,mergeContiguousZones:zr,getPivotHighlights:MI,pivotTimeAdapter:Ju,UNDO_REDO_PIVOT_COMMANDS:_H,createPivotFormula:yd,areDomainArgsFieldsValid:vd,splitReference:ac,sanitizeSheetName:ut,getUniqueText:$t,isNumber:Li,isDateTime:ai},UK={isMarkdownLink:gt,parseMarkdownLink:yt,markdownLink:vt,openLink:bo,urlRepresentation:yo},WK={Checkbox:Yj,Section:Q,RoundColorPicker:dL,ChartDataSeries:JI,ChartErrorSection:XI,ChartLabelRange:ZI,ChartTitle:cL,ChartPanel:rR,ChartFigure:HE,ChartJsComponent:HS,Grid:dV,GridOverlay:VB,ScorecardChart:aC,LineConfigPanel:VL,BarConfigPanel:$I,PieChartDesignPanel:HL,GenericChartConfigPanel:QI,ChartWithAxisDesignPanel:gL,GaugeChartConfigPanel:bL,GaugeChartDesignPanel:FL,ScorecardChartConfigPanel:GL,ScorecardChartDesignPanel:KL,GeoChartDesignPanel:zL,RadarChartDesignPanel:UL,WaterfallChartDesignPanel:$L,ComboChartDesignPanel:_L,FunnelChartDesignPanel:yL,ChartTypePicker:tR,FigureComponent:rB,Menu:EM,Popover:SM,SelectionInput:qI,ValidationMessages:YI,AddDimensionButton:UR,PivotDimensionGranularity:qR,PivotDimensionOrder:JR,PivotDimension:KR,PivotLayoutConfigurator:QR,PivotHTMLRenderer:fV,PivotDeferUpdate:VR,PivotTitleSection:$R,CogWheelMenu:GR,TextInput:WR,SidePanelCollapsible:tL,RadioSelection:uL,GeoChartRegionSelectSection:IL},GK={useDragAndDropListItems:RI,useHighlights:cR,useHighlightsOnHover:sR},KK={useStoreProvider:qd,DependencyContainer:Ud,CellPopoverStore:tM,ComposerFocusStore:nf,CellComposerStore:_B,FindAndReplaceStore:FR,HighlightStore:uC,DelayedHoveredCellStore:eM,HoveredTableStore:zB,ModelStore:Qd,NotificationStore:dC,RendererStore:$d,SelectionInputStore:KI,SpreadsheetStore:ef,useStore:V,useLocalStore:Jd,SidePanelStore:sV,PivotSidePanelStore:wz,PivotMeasureDisplayPanelStore:zR};function qK(e,t){return ix.add(e,t),{addFunction:(e,t)=>qK(e,t)}}let JK={DEFAULT_LOCALE:k,HIGHLIGHT_COLOR:_,PIVOT_TABLE_CONFIG:et,ChartTerms:uw},YK={...mD,...tE};e.AbstractCellClipboardHandler=gl,e.AbstractChart=US,e.AbstractFigureClipboardHandler=Ad,e.CellErrorType=j,e.CommandResult=fa,e.CorePlugin=mV,e.CoreViewPlugin=RV,e.DispatchResult=ua,e.EvaluationError=M,e.Model=LK,e.PivotRuntimeDefinition=ez,e.Registry=h,e.Revision=tU,e.SPREADSHEET_DIMENSIONS=BK,e.Spreadsheet=VW,e.SpreadsheetPivotTable=iz,e.UIPlugin=bH,e.__info__=zK,e.addFunction=qK,e.addRenderingLayer=_a,e.astToFormula=zv,e.chartHelpers=YK,e.compile=bx,e.compileTokens=xx,e.components=WK,e.constants=JK,e.convertAstNodes=Fv,e.coreTypes=sa,e.findCellInNewZone=kr,e.functionCache=yx,e.helpers=HK,e.hooks=GK,e.invalidateCFEvaluationCommands=ia,e.invalidateChartEvaluationCommands=na,e.invalidateDependenciesCommands=ra,e.invalidateEvaluationCommands=ta,e.iterateAstNodes=Iv,e.links=UK,e.load=Tj,e.parse=Nv,e.parseTokens=Pv,e.readonlyAllowedCommands=oa,e.registries=VK,e.setDefaultSheetViewSize=Qe,e.setTranslationMethod=Ki,e.stores=KK,e.tokenColors=mC,e.tokenize=bl,zK.version=`18.3.46`,zK.date=`2026-05-11T13:46:10.863Z`,zK.hash=`c2bb3c8`})(this.o_spreadsheet=this.o_spreadsheet||{},owl);
|
|
3385
|
+
`),`_rels/.rels`)}function FK(e){let t={},n=[];for(let r of e.sheets){let e=r.name.slice(0,31);e=$t(e,n,{compute:(e,t)=>e.slice(0,31-String(t).length)+t}),n.push(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(`'?${at(e)}'?!`,`g`);i=i.replaceAll(n,n=>{let r=t[e];return n.replace(e,r)})}return JSON.parse(i)}function IK(e){for(let t of e.sheets)t.tables=t.tables.filter(e=>br(ar(e.range)).numberOfRows>1);return e}var LK=class extends Hd{corePlugins=[];statefulUIPlugins=[];range;session;isReplayingCommand=!1;renderers={};status=0;config;corePluginConfig;coreViewPluginConfig;uiPluginConfig;state;selection;getters;coreGetters;uuidGenerator;handlers=[];uiHandlers=[];coreHandlers=[];constructor(e={},n={},r=[],i=new al,a=!1){let o=performance.now();console.debug(`##### Model creation #####`),super(),qi(),r=Nj(e,r);let s=Tj(e,a);this.state=new nG,this.uuidGenerator=i,this.config=this.setupConfig(n),this.session=this.setupSession(s.revisionId),this.coreGetters={},this.range=new AV(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.copyFormulaStringForSheet=this.range.copyFormulaStringForSheet.bind(this.range),this.getters={isReadonly:()=>this.config.mode===`readonly`||this.config.mode===`dashboard`,isDashboard:()=>this.config.mode===`dashboard`},this.selection=new eG(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(let e of tW.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(let e of iW.getAll()){let t=this.setupCoreViewPlugin(e);this.handlers.push(t),this.uiHandlers.push(t),this.coreHandlers.push(t)}for(let e of rW.getAll()){let t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(let e of nW.getAll()){let 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(),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:kt(()=>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}setupCoreViewPlugin(e){let t=new e(this.coreViewPluginConfig);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)}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=2,this.dispatchToHandlers(this.statefulUIPlugins,t),this.status=e}this.finalize()}setupSession(e){return new rU(XW({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:O(`Anonymous`).toString()},n=e.transportService||new HW;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(pa));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,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}}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){let t=ca(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>e!==`Success`)?new ua(t.flat()):ua.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=3;for(let e of this.handlers)e.finalize();this.status=0,this.trigger(`command-finalized`)}canDispatch=(e,t)=>this.checkDispatchAllowed(RK(e,t));dispatch=(e,t)=>{let n=RK(e,t),r=this.status;if(this.getters.isReadonly()&&!la(n))return new ua(`Readonly`);if(!this.session.canApplyOptimisticUpdate())return new ua(`WaitingSessionConfirmation`);switch(r){case 0:let t=this.checkDispatchAllowed(n);if(!t.isSuccessful)return this.trigger(`update`),t;this.status=1;let{changes:r,commands:i}=this.state.recordChanges(()=>{let t=performance.now();ca(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=0,this.trigger(`update`);break;case 1:if(ca(n)){let e=this.checkDispatchAllowed(n);if(!e.isSuccessful)return e;this.state.addCommand(n)}this.dispatchToHandlers(this.handlers,n);break;case 3:throw Error(`Cannot dispatch commands in the finalize state`);case 2:if(ca(n))throw Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,n)}return ua.Success};dispatchFromCorePlugin=(e,t)=>{let n=RK(e,t),r=this.status;this.status=2;let i=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(i,n),this.status=r,ua.Success};dispatchToHandlers(e,t){let n=ca(t);for(let r of e)!n&&r instanceof mV||r.beforeHandle(t);for(let r of e)!n&&r instanceof mV||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=Bj();for(let t of this.handlers)t instanceof mV&&t.export(e);return e.revisionId=this.session.getRevisionId()||`START_REVISION`,e=b(e),e}updateMode(e){this.config.mode=e,this.trigger(`update`)}exportXLSX(){this.dispatch(`EVALUATE_CELLS`);let e=Hj();for(let t of this.handlers)t instanceof pV&&t.exportForExcel(e);return e=b(e),EK(e)}garbageCollectExternalResources(){for(let e of this.corePlugins)e.garbageCollectExternalResources()}};function RK(e,t={}){let n=b(t);return n.type=e,n}let zK={},BK={MIN_ROW_HEIGHT:10,MIN_COL_WIDTH:5,HEADER_HEIGHT:26,HEADER_WIDTH:48,BOTTOMBAR_HEIGHT:36,DEFAULT_CELL_WIDTH:96,DEFAULT_CELL_HEIGHT:23,SCROLLBAR_WIDTH:15},VK={autoCompleteProviders:oC,autofillModifiersRegistry:kC,autofillRulesRegistry:AC,cellMenuRegistry:MP,colMenuRegistry:TI,errorTypes:va,linkMenuRegistry:fM,functionRegistry:ix,featurePluginRegistry:nW,iconsOnCellRegistry:hO,statefulUIPluginRegistry:rW,coreViewsPluginRegistry:iW,corePluginRegistry:tW,rowMenuRegistry:AI,sidePanelRegistry:nB,figureRegistry:kD,chartSidePanelComponentRegistry:eR,chartComponentRegistry:RE,chartRegistry:LE,chartSubtypeRegistry:BE,topbarMenuRegistry:PI,topbarComponentRegistry:II,clickableCellRegistry:aW,otRegistry:FI,inverseCommandRegistry:FD,urlRegistry:ho,cellPopoverRegistry:BC,numberFormatMenuRegistry:EI,repeatLocalCommandTransformRegistry:LU,repeatCommandTransformRegistry:IU,clipboardHandlersRegistries:zd,pivotRegistry:bz,pivotTimeAdapterRegistry:qu,pivotSidePanelRegistry:Ez,pivotNormalizationValueRegistry:wd,supportedPivotPositionalFormulaRegistry:wC,pivotToFunctionValueRegistry:Td,migrationStepRegistry:bj,chartJsExtensionRegistry:pf},HK={arg:W,isEvaluationError:P,toBoolean:L,toJsDate:R,toNumber:F,toString:I,toNormalizedPivotValue:bd,toFunctionPivotValue:Sd,toXC:T,toZone:ar,toUnboundedZone:ir,toCartesian:Jn,numberToLetters:zn,lettersToNumber:Bn,UuidGenerator:al,formatValue:B,createCurrencyFormat:gs,ColorGenerator:Pn,computeTextWidth:Vc,createEmptyWorkbookData:Bj,createEmptySheet:zj,createEmptyExcelSheet:Vj,rgbaToHex:mn,colorToRGBA:hn,positionToZone:E,isDefined:C,isMatrix:A,lazy:kt,genericRepeat:RU,createAction:m,createActions:f,transformRangeData:Vd,deepEquals:w,overlap:_r,union:pr,isInside:vr,deepCopy:b,expandZoneOnInsertion:lr,reduceZoneOnDeletion:fr,unquote:ct,getMaxObjectId:fd,getFunctionsFromTokens:kx,getFirstPivotFunction:SC,getNumberOfPivotFunctions:CC,parseDimension:hd,isDateOrDatetimeField:gd,makeFieldProposal:_C,insertTokenAfterArgSeparator:yC,insertTokenAfterLeftParenthesis:bC,mergeContiguousZones:zr,getPivotHighlights:MI,pivotTimeAdapter:Ju,UNDO_REDO_PIVOT_COMMANDS:_H,createPivotFormula:yd,areDomainArgsFieldsValid:vd,splitReference:ac,sanitizeSheetName:ut,getUniqueText:$t,isNumber:Li,isDateTime:ai},UK={isMarkdownLink:gt,parseMarkdownLink:yt,markdownLink:vt,openLink:bo,urlRepresentation:yo},WK={Checkbox:Yj,Section:Q,RoundColorPicker:dL,ChartDataSeries:JI,ChartErrorSection:XI,ChartLabelRange:ZI,ChartTitle:cL,ChartPanel:rR,ChartFigure:HE,ChartJsComponent:HS,Grid:dV,GridOverlay:VB,ScorecardChart:aC,LineConfigPanel:VL,BarConfigPanel:$I,PieChartDesignPanel:HL,GenericChartConfigPanel:QI,ChartWithAxisDesignPanel:gL,GaugeChartConfigPanel:bL,GaugeChartDesignPanel:FL,ScorecardChartConfigPanel:GL,ScorecardChartDesignPanel:KL,GeoChartDesignPanel:zL,RadarChartDesignPanel:UL,WaterfallChartDesignPanel:$L,ComboChartDesignPanel:_L,FunnelChartDesignPanel:yL,ChartTypePicker:tR,FigureComponent:rB,Menu:EM,Popover:SM,SelectionInput:qI,ValidationMessages:YI,AddDimensionButton:UR,PivotDimensionGranularity:qR,PivotDimensionOrder:JR,PivotDimension:KR,PivotLayoutConfigurator:QR,PivotHTMLRenderer:fV,PivotDeferUpdate:VR,PivotTitleSection:$R,CogWheelMenu:GR,TextInput:WR,SidePanelCollapsible:tL,RadioSelection:uL,GeoChartRegionSelectSection:IL},GK={useDragAndDropListItems:RI,useHighlights:cR,useHighlightsOnHover:sR},KK={useStoreProvider:qd,DependencyContainer:Ud,CellPopoverStore:tM,ComposerFocusStore:nf,CellComposerStore:_B,FindAndReplaceStore:FR,HighlightStore:uC,DelayedHoveredCellStore:eM,HoveredTableStore:zB,ModelStore:Qd,NotificationStore:dC,RendererStore:$d,SelectionInputStore:KI,SpreadsheetStore:ef,useStore:V,useLocalStore:Jd,SidePanelStore:sV,PivotSidePanelStore:wz,PivotMeasureDisplayPanelStore:zR};function qK(e,t){return ix.add(e,t),{addFunction:(e,t)=>qK(e,t)}}let JK={DEFAULT_LOCALE:k,HIGHLIGHT_COLOR:_,PIVOT_TABLE_CONFIG:et,ChartTerms:uw},YK={...mD,...tE};e.AbstractCellClipboardHandler=gl,e.AbstractChart=US,e.AbstractFigureClipboardHandler=Ad,e.CellErrorType=j,e.CommandResult=fa,e.CorePlugin=mV,e.CoreViewPlugin=RV,e.DispatchResult=ua,e.EvaluationError=M,e.Model=LK,e.PivotRuntimeDefinition=ez,e.Registry=h,e.Revision=tU,e.SPREADSHEET_DIMENSIONS=BK,e.Spreadsheet=VW,e.SpreadsheetPivotTable=iz,e.UIPlugin=bH,e.__info__=zK,e.addFunction=qK,e.addRenderingLayer=_a,e.astToFormula=zv,e.chartHelpers=YK,e.compile=bx,e.compileTokens=xx,e.components=WK,e.constants=JK,e.convertAstNodes=Fv,e.coreTypes=sa,e.findCellInNewZone=kr,e.functionCache=yx,e.helpers=HK,e.hooks=GK,e.invalidateCFEvaluationCommands=ia,e.invalidateChartEvaluationCommands=na,e.invalidateDependenciesCommands=ra,e.invalidateEvaluationCommands=ta,e.iterateAstNodes=Iv,e.links=UK,e.load=Tj,e.parse=Nv,e.parseTokens=Pv,e.readonlyAllowedCommands=oa,e.registries=VK,e.setDefaultSheetViewSize=Qe,e.setTranslationMethod=Ki,e.stores=KK,e.tokenColors=mC,e.tokenize=bl,zK.version=`18.3.47`,zK.date=`2026-05-12T12:18:07.038Z`,zK.hash=`8b8bc44`})(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.3.
|
|
5
|
-
@date 2026-05-
|
|
6
|
-
@hash
|
|
4
|
+
@version 18.3.47
|
|
5
|
+
@date 2026-05-12T12:18:07.925Z
|
|
6
|
+
@hash 8b8bc44
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ValidationMessages">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odoo/o-spreadsheet",
|
|
3
|
-
"version": "18.3.
|
|
3
|
+
"version": "18.3.47",
|
|
4
4
|
"description": "A spreadsheet component",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/o-spreadsheet.cjs.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"test:watch": "jest --watch",
|
|
29
29
|
"prettier": "prettier . --write",
|
|
30
30
|
"check-formatting": "prettier . --check && eslint",
|
|
31
|
-
"
|
|
31
|
+
"prepare": "husky install",
|
|
32
32
|
"watch": "npm-run-all -p watch:*",
|
|
33
33
|
"watch:bundle": "npm run bundle:iife -- --watch",
|
|
34
34
|
"watch:ts": "npm run build:js -- --watch",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"jszip": "^3.6.0",
|
|
87
87
|
"lint-staged": "^12.1.2",
|
|
88
88
|
"live-server": "^1.2.1",
|
|
89
|
-
"luxon": "
|
|
89
|
+
"luxon": "3.5.0",
|
|
90
90
|
"minimist": "^1.2.8",
|
|
91
91
|
"mockdate": "^3.0.2",
|
|
92
92
|
"node-watch": "^0.7.3",
|
|
@@ -134,8 +134,8 @@
|
|
|
134
134
|
"xmlSelfClosingSpace": false
|
|
135
135
|
},
|
|
136
136
|
"dependencies": {
|
|
137
|
-
"@odoo/owl": "2.8.
|
|
138
|
-
"bootstrap": "
|
|
137
|
+
"@odoo/owl": "2.8.2",
|
|
138
|
+
"bootstrap": "5.3.3",
|
|
139
139
|
"font-awesome": "^4.7.0",
|
|
140
140
|
"rbush": "^3.0.1"
|
|
141
141
|
},
|