@odoo/o-spreadsheet 18.0.79 → 18.0.80
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-08-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.80
|
|
6
|
+
* @date 2026-08-29T09:13:05.057Z
|
|
7
|
+
* @hash af324f5
|
|
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";
|
|
@@ -32572,6 +32572,12 @@ css`
|
|
|
32572
32572
|
background-color: ${ACTION_COLOR};
|
|
32573
32573
|
border-color: ${ACTION_COLOR};
|
|
32574
32574
|
}
|
|
32575
|
+
|
|
32576
|
+
&:focus {
|
|
32577
|
+
outline: none;
|
|
32578
|
+
box-shadow: 0 0 0 0.25rem rgba(113, 75, 103, 0.25);
|
|
32579
|
+
border-color: ${ACTION_COLOR};
|
|
32580
|
+
}
|
|
32575
32581
|
}
|
|
32576
32582
|
}
|
|
32577
32583
|
`;
|
|
@@ -60665,6 +60671,9 @@ css`
|
|
|
60665
60671
|
position: absolute;
|
|
60666
60672
|
cursor: pointer;
|
|
60667
60673
|
}
|
|
60674
|
+
.o-grid.o-dashboard-grid {
|
|
60675
|
+
background: #ffffff;
|
|
60676
|
+
}
|
|
60668
60677
|
`;
|
|
60669
60678
|
var SpreadsheetDashboard = class extends Component {
|
|
60670
60679
|
static template = "o-spreadsheet-SpreadsheetDashboard";
|
|
@@ -66403,6 +66412,6 @@ const constants = {
|
|
|
66403
66412
|
//#endregion
|
|
66404
66413
|
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 };
|
|
66405
66414
|
|
|
66406
|
-
__info__.version = "18.0.
|
|
66407
|
-
__info__.date = "2026-08-
|
|
66408
|
-
__info__.hash = "
|
|
66415
|
+
__info__.version = "18.0.80";
|
|
66416
|
+
__info__.date = "2026-08-29T09:13:05.057Z";
|
|
66417
|
+
__info__.hash = "af324f5";
|
|
@@ -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-08-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.80
|
|
6
|
+
* @date 2026-08-29T09:13:05.057Z
|
|
7
|
+
* @hash af324f5
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -32574,6 +32574,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32574
32574
|
background-color: ${ACTION_COLOR};
|
|
32575
32575
|
border-color: ${ACTION_COLOR};
|
|
32576
32576
|
}
|
|
32577
|
+
|
|
32578
|
+
&:focus {
|
|
32579
|
+
outline: none;
|
|
32580
|
+
box-shadow: 0 0 0 0.25rem rgba(113, 75, 103, 0.25);
|
|
32581
|
+
border-color: ${ACTION_COLOR};
|
|
32582
|
+
}
|
|
32577
32583
|
}
|
|
32578
32584
|
}
|
|
32579
32585
|
`;
|
|
@@ -60667,6 +60673,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60667
60673
|
position: absolute;
|
|
60668
60674
|
cursor: pointer;
|
|
60669
60675
|
}
|
|
60676
|
+
.o-grid.o-dashboard-grid {
|
|
60677
|
+
background: #ffffff;
|
|
60678
|
+
}
|
|
60670
60679
|
`;
|
|
60671
60680
|
var SpreadsheetDashboard = class extends _odoo_owl.Component {
|
|
60672
60681
|
static template = "o-spreadsheet-SpreadsheetDashboard";
|
|
@@ -66449,8 +66458,8 @@ exports.stores = stores;
|
|
|
66449
66458
|
exports.tokenColors = tokenColors;
|
|
66450
66459
|
exports.tokenize = tokenize;
|
|
66451
66460
|
|
|
66452
|
-
__info__.version = "18.0.
|
|
66453
|
-
__info__.date = "2026-08-
|
|
66454
|
-
__info__.hash = "
|
|
66461
|
+
__info__.version = "18.0.80";
|
|
66462
|
+
__info__.date = "2026-08-29T09:13:05.057Z";
|
|
66463
|
+
__info__.hash = "af324f5";
|
|
66455
66464
|
|
|
66456
66465
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|
|
@@ -554,6 +554,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
554
554
|
background-color: ${ke};
|
|
555
555
|
border-color: ${ke};
|
|
556
556
|
}
|
|
557
|
+
|
|
558
|
+
&:focus {
|
|
559
|
+
outline: none;
|
|
560
|
+
box-shadow: 0 0 0 0.25rem rgba(113, 75, 103, 0.25);
|
|
561
|
+
border-color: ${ke};
|
|
562
|
+
}
|
|
557
563
|
}
|
|
558
564
|
}
|
|
559
565
|
`;var RN=class extends t.Component{static template=`o-spreadsheet.RadioSelection`;static props={choices:Array,onChange:Function,selectedValue:{optional:!1},name:String,direction:{type:String,optional:!0}};static defaultProps={direction:`horizontal`}};function zN(e,t,n=()=>{}){let r=()=>{window.removeEventListener(`pointerdown`,n),window.removeEventListener(`pointerup`,i),window.removeEventListener(`dragstart`,a),window.removeEventListener(`pointermove`,e),window.removeEventListener(`wheel`,e)},i=e=>{t(e),r()};function a(e){e.preventDefault()}return window.addEventListener(`pointerdown`,n),window.addEventListener(`pointerup`,i),window.addEventListener(`dragstart`,a),window.addEventListener(`pointermove`,e),window.addEventListener(`wheel`,e,{passive:!1}),r}function BN(e,t,n,r=!1){let i=null,a,o,s,c,l,u=e.model.getters,d=u.getActiveSheetId(),f=XT(),p,m,h=e=>{o=e,s=e,c=s.clientX-f.left,l=s.clientY-f.top},g=n=>{if(a=n,i)return;let{x:s,y:h}=u.getMainViewportCoordinates(),{top:_,left:v,bottom:ee,right:te}=u.getActiveMainViewport(),{scrollX:ne,scrollY:re}=u.getActiveSheetDOMScrollInfo(),{xSplit:ie,ySplit:ae}=u.getPaneDivisions(d),oe=!1,se=140,ce=a.clientX-f.left;if(p=u.getColIndex(ce),r!==`vertical`){let t=o.clientX-f.left,n=u.getEdgeScrollCol(ce,t,c);if(n.canEdgeScroll){oe=!0,se=Math.min(se,n.delay);let t;switch(n.direction){case`reset`:p=ie,t=ie;break;case 1:p=te,t=v+1;break;case-1:for(p=v-1;e.model.getters.isColHidden(d,p);)p--;t=p;break}ne=u.getColDimensions(d,t).start-s}}let le=a.clientY-f.top;if(m=u.getRowIndex(le),r!==`horizontal`){let t=o.clientY-f.top,n=u.getEdgeScrollRow(le,t,l);if(n.canEdgeScroll){oe=!0,se=Math.min(se,n.delay);let t;switch(n.direction){case`reset`:m=ae,t=ae;break;case 1:m=ee,t=_+n.direction;break;case-1:for(m=_-1;e.model.getters.isRowHidden(d,m);)m--;t=m;break}re=e.model.getters.getRowDimensions(d,t).start-h}}oe||(m===-1&&(m=le<0?0:u.getNumberRows(d)-1),p===-1&&ce<0&&(p=ce<0?0:u.getNumberCols(d)-1)),t(p,m,a),oe&&(e.model.dispatch(`SET_VIEWPORT_OFFSET`,{offsetX:ne,offsetY:re}),i=setTimeout(()=>{i=null,g(a)},Math.round(se))),o=a};zN(g,()=>{clearTimeout(i),n()},h)}H`
|
|
@@ -2012,6 +2018,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
2012
2018
|
position: absolute;
|
|
2013
2019
|
cursor: pointer;
|
|
2014
2020
|
}
|
|
2021
|
+
.o-grid.o-dashboard-grid {
|
|
2022
|
+
background: #ffffff;
|
|
2023
|
+
}
|
|
2015
2024
|
`;var wB=class extends t.Component{static template=`o-spreadsheet-SpreadsheetDashboard`;static props={};static components={GridOverlay:eL,GridPopover:tL,Popover:uk,VerticalScrollBar:vL,HorizontalScrollBar:_L};cellPopovers;onMouseWheel;canvasPosition;hoveredCell;clickableCellsStore;setup(){let e=(0,t.useRef)(`grid`);this.canvasPosition=aE(e),this.hoveredCell=V(GO),this.clickableCellsStore=V(CB),(0,t.useChildSubEnv)({getPopoverContainerRect:()=>this.getGridRect()}),cL(`canvas`,this.env.model,()=>this.env.model.getters.getSheetViewDimension()),this.onMouseWheel=dL((e,t)=>{this.moveCanvas(e,t),this.hoveredCell.clear()}),this.cellPopovers=V(KO),uL(e,this.moveCanvas.bind(this),()=>{let{scrollY:e}=this.env.model.getters.getActiveSheetScrollInfo();return e>0})}onCellHovered({col:e,row:t}){this.hoveredCell.hover({col:e,row:t})}get gridContainer(){let e=this.env.model.getters.getActiveSheetId(),{right:t}=this.env.model.getters.getSheetZone(e),{end:n}=this.env.model.getters.getColDimensions(e,t);return U({"max-width":`${n}px`})}get gridOverlayDimensions(){return U({height:`100%`,width:`100%`})}getCellClickableStyle(e){return U({top:`${e.y}px`,left:`${e.x}px`,width:`${e.width}px`,height:`${e.height}px`})}getClickableCells(){return(0,t.toRaw)(this.clickableCellsStore.clickableCells)}selectClickableCell(e){let{position:t,action:n}=e;n(t,this.env)}onClosePopover(){this.cellPopovers.close()}onGridResized({height:e,width:t}){this.env.model.dispatch(`RESIZE_SHEETVIEW`,{width:t,height:e,gridOffsetX:0,gridOffsetY:0})}moveCanvas(e,t){let{scrollX:n,scrollY:r}=this.env.model.getters.getActiveSheetDOMScrollInfo();this.env.model.dispatch(`SET_VIEWPORT_OFFSET`,{offsetX:n+e,offsetY:r+t})}getGridRect(){return{...this.canvasPosition,...this.env.model.getters.getSheetViewDimensionWithHeaders()}}};H`
|
|
2016
2025
|
.o-header-group {
|
|
2017
2026
|
.o-header-group-header {
|
|
@@ -3303,4 +3312,4 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3303
3312
|
<Relationships xmlns="${tf.Relationships}">
|
|
3304
3313
|
<Relationship ${K(e)} />
|
|
3305
3314
|
</Relationships>
|
|
3306
|
-
`),`_rels/.rels`)}function NH(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(`'?${nt(e)}'?!`,`g`);i=i.replaceAll(n,n=>{let r=t[e];return n.replace(e,r)})}return JSON.parse(i)}function PH(e){for(let t of e.sheets)t.tables=t.tables.filter(e=>mr($n(e.range)).numberOfRows>1);return e}var FH=class extends id{corePlugins=[];featurePlugins=[];statefulUIPlugins=[];coreViewsPlugins=[];range;session;isReplayingCommand=!1;renderers={};status=0;config;corePluginConfig;uiPluginConfig;state;selection;getters;coreGetters;uuidGenerator;handlers=[];uiHandlers=[];coreHandlers=[];constructor(e={},n={},r=[],i=new Tc,a=!1){let o=performance.now();console.debug(`##### Model creation #####`),super(),Yn(),r=Gh(e,r);let s=zh(e,a);this.state=new nV,this.uuidGenerator=i,this.config=this.setupConfig(n),this.session=this.setupSession(s.revisionId),this.coreGetters={},this.range=new WL(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 eV(this.getters),this.coreHandlers.push(this.range),this.handlers.push(this.range),this.corePluginConfig=this.setupCorePluginConfig(),this.uiPluginConfig=this.setupUiPluginConfig();for(let e of cB.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(let e of dB.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 uB.getAll()){let t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(let e of lB.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:Et(()=>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=2,this.dispatchToHandlers(this.statefulUIPlugins,t),this.status=e}this.finalize()}setupSession(e){return new lz(XB({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 HB;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(Zi));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=Ki(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>e!==`Success`)?new Ji(t.flat()):Ji.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(IH(e,t));dispatch=(e,t)=>{let n=IH(e,t),r=this.status;if(this.getters.isReadonly()&&!qi(n))return new Ji(`Readonly`);if(!this.session.canApplyOptimisticUpdate())return new Ji(`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();Ki(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(Ki(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(Ki(n))throw Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,n)}return Ji.Success};dispatchFromCorePlugin=(e,t)=>{let n=IH(e,t),r=this.status;this.status=2;let i=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(i,n),this.status=r,Ji.Success};dispatchToHandlers(e,t){let n=Ki(t);for(let r of e)!n&&r instanceof DL||r.beforeHandle(t);for(let r of e)!n&&r instanceof DL||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=Zh();for(let t of this.handlers)t instanceof DL&&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=$h();for(let t of this.handlers)t instanceof EL&&t.exportForExcel(e);return e=y(e),wH(e)}garbageCollectExternalResources(){for(let e of this.corePlugins)e.garbageCollectExternalResources()}};function IH(e,t={}){let n=y(t);return n.type=e,n}let LH={},RH={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},zH={autoCompleteProviders:l_,autofillModifiersRegistry:eD,autofillRulesRegistry:tD,cellMenuRegistry:bj,colMenuRegistry:fN,errorTypes:na,linkMenuRegistry:rk,functionRegistry:zT,featurePluginRegistry:lB,iconsOnCellRegistry:mf,statefulUIPluginRegistry:uB,coreViewsPluginRegistry:dB,corePluginRegistry:cB,rowMenuRegistry:_N,sidePanelRegistry:pI,figureRegistry:mO,chartSidePanelComponentRegistry:iP,chartComponentRegistry:oO,chartRegistry:aO,chartSubtypeRegistry:cO,topbarMenuRegistry:CN,topbarComponentRegistry:TN,clickableCellRegistry:fB,otRegistry:wN,inverseCommandRegistry:bO,urlRegistry:Za,cellPopoverRegistry:dD,numberFormatMenuRegistry:pN,repeatLocalCommandTransformRegistry:Wz,repeatCommandTransformRegistry:Uz,clipboardHandlersRegistries:td,pivotRegistry:jF,pivotTimeAdapterRegistry:uu,pivotSidePanelRegistry:LF,pivotNormalizationValueRegistry:Vu,supportedPivotPositionalFormulaRegistry:YE,pivotToFunctionValueRegistry:Hu,migrationStepRegistry:Ih},BH={arg:Y,isEvaluationError:N,toBoolean:L,toJsDate:R,toNumber:P,toString:F,toNormalizedPivotValue:Lu,toXC:w,toZone:$n,toUnboundedZone:Qn,toCartesian:Pn,numberToLetters:Tn,lettersToNumber:En,UuidGenerator:Tc,formatValue:B,createCurrencyFormat:$o,ColorGenerator:wn,computeTextWidth:cc,createEmptyWorkbookData:Zh,createEmptySheet:Xh,createEmptyExcelSheet:Qh,getDefaultChartJsRuntime:Zg,chartFontColor:Od,getChartAxisTitleRuntime:Nd,getChartAxisType:TD,getTrendDatasetForBarChart:Id,getTrendDatasetForLineChart:MD,getFillingMode:n_,rgbaToHex:cn,colorToRGBA:ln,positionToZone:E,isDefined:S,isMatrix:k,lazy:Et,genericRepeat:Gz,createAction:m,createActions:f,transformRangeData:rd,deepEquals:C,overlap:dr,union:sr,isInside:fr,deepCopy:y,expandZoneOnInsertion:rr,reduceZoneOnDeletion:or,unquote:at,getMaxObjectId:ku,getFunctionsFromTokens:RE,getFirstPivotFunction:KE,getNumberOfPivotFunctions:JE,parseDimension:Mu,isDateOrDatetimeField:Nu,makeFieldProposal:VE,insertTokenAfterArgSeparator:UE,insertTokenAfterLeftParenthesis:WE,mergeContiguousZones:Mr,getPivotHighlights:yN,pivotTimeAdapter:du,UNDO_REDO_PIVOT_COMMANDS:AR,createPivotFormula:Iu,areDomainArgsFieldsValid:Fu,splitReference:Hs,formatTickValue:Bd,sanitizeSheetName:st,isNumber:ki,isDateTime:Zr},VH={isMarkdownLink:pt,parseMarkdownLink:gt,markdownLink:ht,openLink:no,urlRepresentation:to},HH={Checkbox:EN,Section:Z,RoundColorPicker:UN,ChartDataSeries:AN,ChartErrorSection:MN,ChartLabelRange:NN,ChartTitle:GN,ChartPanel:sP,ChartFigure:uO,ChartJsComponent:s_,Grid:CL,GridOverlay:eL,ScorecardChart:c_,LineConfigPanel:QN,BarConfigPanel:FN,PieChartDesignPanel:$N,GenericChartConfigPanel:PN,ChartWithAxisDesignPanel:JN,GaugeChartConfigPanel:XN,GaugeChartDesignPanel:ZN,ScorecardChartConfigPanel:tP,ScorecardChartDesignPanel:nP,ChartTypePicker:aP,FigureComponent:mI,Menu:mk,Popover:uk,SelectionInput:kN,ValidationMessages:jN,AddDimensionButton:nF,PivotDimensionGranularity:oF,PivotDimensionOrder:sF,PivotDimension:aF,PivotLayoutConfigurator:uF,PivotHTMLRenderer:TL,EditableName:wL,PivotDeferUpdate:eF,PivotTitleSection:dF,CogWheelMenu:iF,TextInput:rF,SidePanelCollapsible:LN},UH={useDragAndDropListItems:pP,useHighlights:xP,useHighlightsOnHover:bP},WH={useStoreProvider:ld,DependencyContainer:ad,CellPopoverStore:KO,ComposerFocusStore:vd,CellComposerStore:EI,FindAndReplaceStore:JP,HighlightStore:SN,HoveredCellStore:GO,ModelStore:md,NotificationStore:cP,RendererStore:hd,SelectionInputStore:ON,SpreadsheetStore:gd,useStore:V,useLocalStore:ud,SidePanelStore:yL,PivotSidePanelStore:FF,PivotMeasureDisplayPanelStore:QP};function GH(e,t){return zT.add(e,t),{addFunction:(e,t)=>GH(e,t)}}let KH={DEFAULT_LOCALE:O,HIGHLIGHT_COLOR:_,PIVOT_TABLE_CONFIG:Ze,TREND_LINE_XAXIS_ID:`x1`,CHART_AXIS_CHOICES:Hd,ChartTerms:og};e.AbstractCellClipboardHandler=Fc,e.AbstractChart=jg,e.AbstractFigureClipboardHandler=Ku,e.CellErrorType=A,e.CommandResult=Xi,e.CorePlugin=DL,e.DispatchResult=Ji,e.EvaluationError=j,e.Model=FH,e.PivotRuntimeDefinition=fF,e.Registry=h,e.Revision=sz,e.SPREADSHEET_DIMENSIONS=RH,e.Spreadsheet=VB,e.SpreadsheetPivotTable=hF,e.UIPlugin=$,e.__info__=LH,e.addFunction=GH,e.addRenderingLayer=ta,e.astToFormula=xC,e.compile=kE,e.compileTokens=AE,e.components=HH,e.constants=KH,e.convertAstNodes=_C,e.coreTypes=Gi,e.findCellInNewZone=Cr,e.functionCache=OE,e.helpers=BH,e.hooks=UH,e.invalidateCFEvaluationCommands=Hi,e.invalidateDependenciesCommands=Vi,e.invalidateEvaluationCommands=zi,e.iterateAstNodes=vC,e.links=VH,e.load=zh,e.parse=hC,e.parseTokens=gC,e.readonlyAllowedCommands=Wi,e.registries=zH,e.setDefaultSheetViewSize=Ye,e.setTranslationMethod=Jn,e.stores=WH,e.tokenColors=vE,e.tokenize=zc,LH.version=`18.0.79`,LH.date=`2026-08-21T15:27:46.928Z`,LH.hash=`173a29c`})(this.o_spreadsheet=this.o_spreadsheet||{},owl);
|
|
3315
|
+
`),`_rels/.rels`)}function NH(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(`'?${nt(e)}'?!`,`g`);i=i.replaceAll(n,n=>{let r=t[e];return n.replace(e,r)})}return JSON.parse(i)}function PH(e){for(let t of e.sheets)t.tables=t.tables.filter(e=>mr($n(e.range)).numberOfRows>1);return e}var FH=class extends id{corePlugins=[];featurePlugins=[];statefulUIPlugins=[];coreViewsPlugins=[];range;session;isReplayingCommand=!1;renderers={};status=0;config;corePluginConfig;uiPluginConfig;state;selection;getters;coreGetters;uuidGenerator;handlers=[];uiHandlers=[];coreHandlers=[];constructor(e={},n={},r=[],i=new Tc,a=!1){let o=performance.now();console.debug(`##### Model creation #####`),super(),Yn(),r=Gh(e,r);let s=zh(e,a);this.state=new nV,this.uuidGenerator=i,this.config=this.setupConfig(n),this.session=this.setupSession(s.revisionId),this.coreGetters={},this.range=new WL(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 eV(this.getters),this.coreHandlers.push(this.range),this.handlers.push(this.range),this.corePluginConfig=this.setupCorePluginConfig(),this.uiPluginConfig=this.setupUiPluginConfig();for(let e of cB.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(let e of dB.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 uB.getAll()){let t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(let e of lB.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:Et(()=>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=2,this.dispatchToHandlers(this.statefulUIPlugins,t),this.status=e}this.finalize()}setupSession(e){return new lz(XB({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 HB;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(Zi));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=Ki(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>e!==`Success`)?new Ji(t.flat()):Ji.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(IH(e,t));dispatch=(e,t)=>{let n=IH(e,t),r=this.status;if(this.getters.isReadonly()&&!qi(n))return new Ji(`Readonly`);if(!this.session.canApplyOptimisticUpdate())return new Ji(`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();Ki(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(Ki(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(Ki(n))throw Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,n)}return Ji.Success};dispatchFromCorePlugin=(e,t)=>{let n=IH(e,t),r=this.status;this.status=2;let i=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(i,n),this.status=r,Ji.Success};dispatchToHandlers(e,t){let n=Ki(t);for(let r of e)!n&&r instanceof DL||r.beforeHandle(t);for(let r of e)!n&&r instanceof DL||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=Zh();for(let t of this.handlers)t instanceof DL&&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=$h();for(let t of this.handlers)t instanceof EL&&t.exportForExcel(e);return e=y(e),wH(e)}garbageCollectExternalResources(){for(let e of this.corePlugins)e.garbageCollectExternalResources()}};function IH(e,t={}){let n=y(t);return n.type=e,n}let LH={},RH={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},zH={autoCompleteProviders:l_,autofillModifiersRegistry:eD,autofillRulesRegistry:tD,cellMenuRegistry:bj,colMenuRegistry:fN,errorTypes:na,linkMenuRegistry:rk,functionRegistry:zT,featurePluginRegistry:lB,iconsOnCellRegistry:mf,statefulUIPluginRegistry:uB,coreViewsPluginRegistry:dB,corePluginRegistry:cB,rowMenuRegistry:_N,sidePanelRegistry:pI,figureRegistry:mO,chartSidePanelComponentRegistry:iP,chartComponentRegistry:oO,chartRegistry:aO,chartSubtypeRegistry:cO,topbarMenuRegistry:CN,topbarComponentRegistry:TN,clickableCellRegistry:fB,otRegistry:wN,inverseCommandRegistry:bO,urlRegistry:Za,cellPopoverRegistry:dD,numberFormatMenuRegistry:pN,repeatLocalCommandTransformRegistry:Wz,repeatCommandTransformRegistry:Uz,clipboardHandlersRegistries:td,pivotRegistry:jF,pivotTimeAdapterRegistry:uu,pivotSidePanelRegistry:LF,pivotNormalizationValueRegistry:Vu,supportedPivotPositionalFormulaRegistry:YE,pivotToFunctionValueRegistry:Hu,migrationStepRegistry:Ih},BH={arg:Y,isEvaluationError:N,toBoolean:L,toJsDate:R,toNumber:P,toString:F,toNormalizedPivotValue:Lu,toXC:w,toZone:$n,toUnboundedZone:Qn,toCartesian:Pn,numberToLetters:Tn,lettersToNumber:En,UuidGenerator:Tc,formatValue:B,createCurrencyFormat:$o,ColorGenerator:wn,computeTextWidth:cc,createEmptyWorkbookData:Zh,createEmptySheet:Xh,createEmptyExcelSheet:Qh,getDefaultChartJsRuntime:Zg,chartFontColor:Od,getChartAxisTitleRuntime:Nd,getChartAxisType:TD,getTrendDatasetForBarChart:Id,getTrendDatasetForLineChart:MD,getFillingMode:n_,rgbaToHex:cn,colorToRGBA:ln,positionToZone:E,isDefined:S,isMatrix:k,lazy:Et,genericRepeat:Gz,createAction:m,createActions:f,transformRangeData:rd,deepEquals:C,overlap:dr,union:sr,isInside:fr,deepCopy:y,expandZoneOnInsertion:rr,reduceZoneOnDeletion:or,unquote:at,getMaxObjectId:ku,getFunctionsFromTokens:RE,getFirstPivotFunction:KE,getNumberOfPivotFunctions:JE,parseDimension:Mu,isDateOrDatetimeField:Nu,makeFieldProposal:VE,insertTokenAfterArgSeparator:UE,insertTokenAfterLeftParenthesis:WE,mergeContiguousZones:Mr,getPivotHighlights:yN,pivotTimeAdapter:du,UNDO_REDO_PIVOT_COMMANDS:AR,createPivotFormula:Iu,areDomainArgsFieldsValid:Fu,splitReference:Hs,formatTickValue:Bd,sanitizeSheetName:st,isNumber:ki,isDateTime:Zr},VH={isMarkdownLink:pt,parseMarkdownLink:gt,markdownLink:ht,openLink:no,urlRepresentation:to},HH={Checkbox:EN,Section:Z,RoundColorPicker:UN,ChartDataSeries:AN,ChartErrorSection:MN,ChartLabelRange:NN,ChartTitle:GN,ChartPanel:sP,ChartFigure:uO,ChartJsComponent:s_,Grid:CL,GridOverlay:eL,ScorecardChart:c_,LineConfigPanel:QN,BarConfigPanel:FN,PieChartDesignPanel:$N,GenericChartConfigPanel:PN,ChartWithAxisDesignPanel:JN,GaugeChartConfigPanel:XN,GaugeChartDesignPanel:ZN,ScorecardChartConfigPanel:tP,ScorecardChartDesignPanel:nP,ChartTypePicker:aP,FigureComponent:mI,Menu:mk,Popover:uk,SelectionInput:kN,ValidationMessages:jN,AddDimensionButton:nF,PivotDimensionGranularity:oF,PivotDimensionOrder:sF,PivotDimension:aF,PivotLayoutConfigurator:uF,PivotHTMLRenderer:TL,EditableName:wL,PivotDeferUpdate:eF,PivotTitleSection:dF,CogWheelMenu:iF,TextInput:rF,SidePanelCollapsible:LN},UH={useDragAndDropListItems:pP,useHighlights:xP,useHighlightsOnHover:bP},WH={useStoreProvider:ld,DependencyContainer:ad,CellPopoverStore:KO,ComposerFocusStore:vd,CellComposerStore:EI,FindAndReplaceStore:JP,HighlightStore:SN,HoveredCellStore:GO,ModelStore:md,NotificationStore:cP,RendererStore:hd,SelectionInputStore:ON,SpreadsheetStore:gd,useStore:V,useLocalStore:ud,SidePanelStore:yL,PivotSidePanelStore:FF,PivotMeasureDisplayPanelStore:QP};function GH(e,t){return zT.add(e,t),{addFunction:(e,t)=>GH(e,t)}}let KH={DEFAULT_LOCALE:O,HIGHLIGHT_COLOR:_,PIVOT_TABLE_CONFIG:Ze,TREND_LINE_XAXIS_ID:`x1`,CHART_AXIS_CHOICES:Hd,ChartTerms:og};e.AbstractCellClipboardHandler=Fc,e.AbstractChart=jg,e.AbstractFigureClipboardHandler=Ku,e.CellErrorType=A,e.CommandResult=Xi,e.CorePlugin=DL,e.DispatchResult=Ji,e.EvaluationError=j,e.Model=FH,e.PivotRuntimeDefinition=fF,e.Registry=h,e.Revision=sz,e.SPREADSHEET_DIMENSIONS=RH,e.Spreadsheet=VB,e.SpreadsheetPivotTable=hF,e.UIPlugin=$,e.__info__=LH,e.addFunction=GH,e.addRenderingLayer=ta,e.astToFormula=xC,e.compile=kE,e.compileTokens=AE,e.components=HH,e.constants=KH,e.convertAstNodes=_C,e.coreTypes=Gi,e.findCellInNewZone=Cr,e.functionCache=OE,e.helpers=BH,e.hooks=UH,e.invalidateCFEvaluationCommands=Hi,e.invalidateDependenciesCommands=Vi,e.invalidateEvaluationCommands=zi,e.iterateAstNodes=vC,e.links=VH,e.load=zh,e.parse=hC,e.parseTokens=gC,e.readonlyAllowedCommands=Wi,e.registries=zH,e.setDefaultSheetViewSize=Ye,e.setTranslationMethod=Jn,e.stores=WH,e.tokenColors=vE,e.tokenize=zc,LH.version=`18.0.80`,LH.date=`2026-08-29T09:13:05.057Z`,LH.hash=`af324f5`})(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-08-
|
|
6
|
-
@hash
|
|
4
|
+
@version 18.0.80
|
|
5
|
+
@date 2026-08-29T09:13:05.680Z
|
|
6
|
+
@hash af324f5
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ActionButton">
|
|
@@ -659,7 +659,11 @@
|
|
|
659
659
|
</t>
|
|
660
660
|
|
|
661
661
|
<t t-name="o-spreadsheet-SpreadsheetDashboard">
|
|
662
|
-
<div
|
|
662
|
+
<div
|
|
663
|
+
class="o-grid o-dashboard-grid o-two-columns"
|
|
664
|
+
t-ref="dashboard"
|
|
665
|
+
tabindex="-1"
|
|
666
|
+
t-on-wheel="onMouseWheel">
|
|
663
667
|
<div class="mx-auto h-100 position-relative" t-ref="grid" t-att-style="gridContainer">
|
|
664
668
|
<GridOverlay
|
|
665
669
|
onCellHovered.bind="onCellHovered"
|