@odoo/o-spreadsheet 18.4.47 → 18.4.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/o_spreadsheet.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.4.
|
|
6
|
-
* @date 2026-07-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.4.48
|
|
6
|
+
* @date 2026-07-20T11:00:09.964Z
|
|
7
|
+
* @hash a4662a5
|
|
8
8
|
*/
|
|
9
9
|
/* Originates from src/components/top_bar/top_bar.scss */
|
|
10
10
|
@media (max-width: 1200px) {
|
|
@@ -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.4.
|
|
6
|
-
* @date 2026-07-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.4.48
|
|
6
|
+
* @date 2026-07-20T11:00:08.319Z
|
|
7
|
+
* @hash a4662a5
|
|
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";
|
|
@@ -45155,7 +45155,7 @@ var ScorecardChartConfigPanel = class extends Component {
|
|
|
45155
45155
|
return !!this.state.keyValueDispatchResult?.isCancelledBecause("InvalidScorecardKeyValue");
|
|
45156
45156
|
}
|
|
45157
45157
|
get isBaselineInvalid() {
|
|
45158
|
-
return !!this.state.
|
|
45158
|
+
return !!this.state.baselineDispatchResult?.isCancelledBecause("InvalidScorecardBaseline");
|
|
45159
45159
|
}
|
|
45160
45160
|
onKeyValueRangeChanged(ranges) {
|
|
45161
45161
|
this.keyValue = ranges[0];
|
|
@@ -75379,6 +75379,6 @@ const chartHelpers = {
|
|
|
75379
75379
|
//#endregion
|
|
75380
75380
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DispatchResult, EvaluationError, LocalTransportService, 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 };
|
|
75381
75381
|
|
|
75382
|
-
__info__.version = "18.4.
|
|
75383
|
-
__info__.date = "2026-07-
|
|
75384
|
-
__info__.hash = "
|
|
75382
|
+
__info__.version = "18.4.48";
|
|
75383
|
+
__info__.date = "2026-07-20T11:00:08.319Z";
|
|
75384
|
+
__info__.hash = "a4662a5";
|
|
@@ -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.4.
|
|
6
|
-
* @date 2026-07-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.4.48
|
|
6
|
+
* @date 2026-07-20T11:00:08.319Z
|
|
7
|
+
* @hash a4662a5
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -45157,7 +45157,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
45157
45157
|
return !!this.state.keyValueDispatchResult?.isCancelledBecause("InvalidScorecardKeyValue");
|
|
45158
45158
|
}
|
|
45159
45159
|
get isBaselineInvalid() {
|
|
45160
|
-
return !!this.state.
|
|
45160
|
+
return !!this.state.baselineDispatchResult?.isCancelledBecause("InvalidScorecardBaseline");
|
|
45161
45161
|
}
|
|
45162
45162
|
onKeyValueRangeChanged(ranges) {
|
|
45163
45163
|
this.keyValue = ranges[0];
|
|
@@ -75430,8 +75430,8 @@ exports.stores = stores;
|
|
|
75430
75430
|
exports.tokenColors = tokenColors;
|
|
75431
75431
|
exports.tokenize = tokenize;
|
|
75432
75432
|
|
|
75433
|
-
__info__.version = "18.4.
|
|
75434
|
-
__info__.date = "2026-07-
|
|
75435
|
-
__info__.hash = "
|
|
75433
|
+
__info__.version = "18.4.48";
|
|
75434
|
+
__info__.date = "2026-07-20T11:00:08.319Z";
|
|
75435
|
+
__info__.hash = "a4662a5";
|
|
75436
75436
|
|
|
75437
75437
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|
|
@@ -1358,7 +1358,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
1358
1358
|
height: 100%;
|
|
1359
1359
|
}
|
|
1360
1360
|
}
|
|
1361
|
-
`;var Bz=class extends t.Component{static template=`o-spreadsheet-GaugeChartDesignPanel`;static components={SidePanelCollapsible:mO,Section:X,RoundColorPicker:rk,GeneralDesignEditor:kz,ChartErrorSection:_z,StandaloneComposer:YO};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};state;setup(){this.state=(0,t.useState)({sectionRuleCancelledReasons:new Set(this.checkSectionRuleFormulasAreValid(this.props.definition.sectionRule)),sectionRule:b(this.props.definition.sectionRule)})}get designErrorMessages(){return[...this.state.sectionRuleCancelledReasons||[]].filter(e=>e!==`NoChanges`).map(e=>jw.Errors[e]||jw.Errors.Unexpected)}get isRangeMinInvalid(){return!!(this.state.sectionRuleCancelledReasons?.has(`EmptyGaugeRangeMin`)||this.state.sectionRuleCancelledReasons?.has(`GaugeRangeMinNaN`))}get isRangeMaxInvalid(){return!!(this.state.sectionRuleCancelledReasons?.has(`EmptyGaugeRangeMax`)||this.state.sectionRuleCancelledReasons?.has(`GaugeRangeMaxNaN`))}get isLowerInflectionPointInvalid(){return!!this.state.sectionRuleCancelledReasons?.has(`GaugeLowerInflectionPointNaN`)}get isUpperInflectionPointInvalid(){return!!this.state.sectionRuleCancelledReasons?.has(`GaugeUpperInflectionPointNaN`)}updateSectionColor(e,t){let n=b(this.state.sectionRule);n.colors[e]=t,this.updateSectionRule(n)}updateSectionRule(e){this.state.sectionRuleCancelledReasons=new Set(this.checkSectionRuleFormulasAreValid(this.state.sectionRule));let t=this.props.updateChart(this.props.figureId,{sectionRule:e});if(t.isSuccessful)this.state.sectionRule=b(e);else for(let e of t.reasons)this.state.sectionRuleCancelledReasons.add(e)}onConfirmGaugeRange(e,t){this.state.sectionRule={...this.state.sectionRule,[e]:t},this.updateSectionRule(this.state.sectionRule)}getGaugeInflectionComposerProps(e){let t=e===`lowerColor`?`lowerInflectionPoint`:`upperInflectionPoint`,n=this.state.sectionRule[t];return{onConfirm:e=>{this.state.sectionRule={...this.state.sectionRule,[t]:{...n,value:e}},this.updateSectionRule(this.state.sectionRule)},composerContent:n.value,invalid:e===`lowerColor`?this.isLowerInflectionPointInvalid:this.isUpperInflectionPointInvalid,defaultRangeSheetId:this.sheetId,class:t,placeholder:E(`Value`),title:E(`Value or formula`)}}checkSectionRuleFormulasAreValid(e){let t=new Set;return this.valueIsValidNumber(e.rangeMin)||t.add(`GaugeRangeMinNaN`),this.valueIsValidNumber(e.rangeMax)||t.add(`GaugeRangeMaxNaN`),this.valueIsValidNumber(e.lowerInflectionPoint.value)||t.add(`GaugeLowerInflectionPointNaN`),this.valueIsValidNumber(e.upperInflectionPoint.value)||t.add(`GaugeUpperInflectionPointNaN`),t}valueIsValidNumber(e){let t=this.env.model.getters.getLocale();if(!e.startsWith(`=`))return Qi(e,t)!==void 0;let n=this.env.model.getters.evaluateFormula(this.sheetId,e);return Du(n)?!1:Qi(Tu(n),t)!==void 0}get sheetId(){let e=this.env.model.getters.getChart(this.props.figureId);if(!e)throw Error(`Chart not found with id `+this.props.figureId);return e.sheetId}},Vz=class extends t.Component{static template=`o-spreadsheet-GeoChartRegionSelectSection`;static components={Section:X};static props={figureId:String,definition:Object,updateChart:Function};updateSelectedRegion(e){let t=e.target.value;this.props.updateChart(this.props.figureId,{region:t})}get availableRegions(){return this.env.model.getters.getGeoChartAvailableRegions()}get selectedRegion(){return this.props.definition.region||this.availableRegions[0]?.id}},Hz=class extends yz{static template=`o-spreadsheet-GeoChartConfigPanel`;static components={...yz.components,GeoChartRegionSelectSection:Vz};get dataRanges(){return this.getDataSeriesRanges()}get disabledRanges(){return this.props.definition.dataSets.map((e,t)=>t>0)}getLabelRangeOptions(){return[{name:`dataSetsHaveTitle`,label:this.dataSetsHaveTitleLabel,value:this.props.definition.dataSetsHaveTitle,onChange:this.onUpdateDataSetsHaveTitle.bind(this)}]}};let Uz={minColor:`#FFF5EB`,midColor:`#FD8D3C`,maxColor:`#7F2704`};var Wz=class extends Pz{static template=`o-spreadsheet-GeoChartDesignPanel`;static components={...Pz.components,RoundColorPicker:rk};colorScalesChoices=jw.GeoChart.ColorScales;updateColorScaleType(e){let t=e.target.value;t===`custom`?this.updateColorScale(Uz):this.updateColorScale(t)}updateColorScale(e){this.props.updateChart(this.props.figureId,{colorScale:e})}updateMissingValueColor(e){this.props.updateChart(this.props.figureId,{missingValueColor:e})}updateLegendPosition(e){let t=e.target.value;this.props.updateChart(this.props.figureId,{legendPosition:t})}get selectedColorScale(){return typeof this.props.definition.colorScale==`object`?`custom`:this.props.definition.colorScale||`oranges`}get selectedMissingValueColor(){return this.props.definition.missingValueColor||`#ffffff`}get customColorScale(){if(typeof this.props.definition.colorScale==`object`)return this.props.definition.colorScale}getCustomColorScaleColor(e){return this.customColorScale?.[e]??``}setCustomColorScaleColor(e,t){!t&&e!==`midColor`&&(t=`#fff`);let n=this.customColorScale;n&&this.updateColorScale({...n,[e]:t})}},Gz=class extends yz{static template=`o-spreadsheet-HierarchicalChartConfigPanel`;static components={...yz.components};getLabelRangeOptions(){return[{name:`dataSetsHaveTitle`,label:this.dataSetsHaveTitleLabel,value:this.props.definition.dataSetsHaveTitle,onChange:this.onUpdateDataSetsHaveTitle.bind(this)}]}},Kz=class extends yz{static template=`o-spreadsheet-LineConfigPanel`;get canTreatLabelsAsText(){let e=this.env.model.getters.getChart(this.props.figureId);return e&&e instanceof XE?sT(e.getDefinition(),e.dataSets,e.labelRange,this.env.model.getters):!1}get stackedLabel(){return this.props.definition.fillArea?this.chartTerms.StackedAreaChart:this.chartTerms.StackedLineChart}getLabelRangeOptions(){let e=super.getLabelRangeOptions();return this.canTreatLabelsAsText&&e.push({name:`labelsAsText`,value:this.props.definition.labelsAsText,label:this.chartTerms.TreatLabelsAsText,onChange:this.onUpdateLabelsAsText.bind(this)}),e}onUpdateLabelsAsText(e){this.props.updateChart(this.props.figureId,{labelsAsText:e})}onUpdateStacked(e){this.props.updateChart(this.props.figureId,{stacked:e})}onUpdateCumulative(e){this.props.updateChart(this.props.figureId,{cumulative:e})}},qz=class extends Pz{static template=`o-spreadsheet-LineChartDesignPanel`;static components={...Pz.components,ChartShowDataMarkers:Fz}},Jz=class extends t.Component{static template=`o-spreadsheet.PieHoleSize`;static components={Section:X};static props={onValueChange:Function,value:Number};debouncedOnChange=Et(this.onChange.bind(this),100);onChange(e){isNaN(Number(e))||this.props.onValueChange(x(Number(e),0,95))}},Yz=class extends t.Component{static template=`o-spreadsheet-PieChartDesignPanel`;static components={GeneralDesignEditor:kz,Section:X,ChartLegend:Az,ChartShowValues:Nz,PieHoleSize:Jz};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};onPieHoleSizeChange(e){this.props.updateChart(this.props.figureId,{...this.props.definition,pieHolePercentage:e})}},Xz=class extends t.Component{static template=`o-spreadsheet-RadarChartDesignPanel`;static components={GeneralDesignEditor:kz,SeriesDesignEditor:jz,Section:X,ChartLegend:Az,ChartShowValues:Nz,ChartShowDataMarkers:Fz};static props={figureId:String,definition:Object,canUpdateChart:Function,updateChart:Function}},Zz=class extends yz{static template=`o-spreadsheet-ScatterConfigPanel`;get canTreatLabelsAsText(){let e=this.env.model.getters.getChart(this.props.figureId);return e&&e instanceof iD?sT(e.getDefinition(),e.dataSets,e.labelRange,this.env.model.getters):!1}onUpdateLabelsAsText(e){this.props.updateChart(this.props.figureId,{labelsAsText:e})}getLabelRangeOptions(){let e=super.getLabelRangeOptions();return this.canTreatLabelsAsText&&e.push({name:`labelsAsText`,value:this.props.definition.labelsAsText,label:this.chartTerms.TreatLabelsAsText,onChange:this.onUpdateLabelsAsText.bind(this)}),e}},Qz=class extends t.Component{static template=`o-spreadsheet-ScorecardChartConfigPanel`;static components={SelectionInput:fk,ChartErrorSection:_z,Section:X};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:Function};state=(0,t.useState)({keyValueDispatchResult:void 0,baselineDispatchResult:void 0});keyValue=this.props.definition.keyValue;baseline=this.props.definition.baseline;get errorMessages(){return[...this.state.keyValueDispatchResult?.reasons||[],...this.state.baselineDispatchResult?.reasons||[]].filter(e=>e!==`NoChanges`).map(e=>jw.Errors[e]||jw.Errors.Unexpected)}get isKeyValueInvalid(){return!!this.state.keyValueDispatchResult?.isCancelledBecause(`InvalidScorecardKeyValue`)}get isBaselineInvalid(){return!!this.state.keyValueDispatchResult?.isCancelledBecause(`InvalidScorecardBaseline`)}onKeyValueRangeChanged(e){this.keyValue=e[0],this.state.keyValueDispatchResult=this.props.canUpdateChart(this.props.figureId,{keyValue:this.keyValue})}updateKeyValueRange(){this.state.keyValueDispatchResult=this.props.updateChart(this.props.figureId,{keyValue:this.keyValue})}getKeyValueRange(){return this.keyValue||``}onBaselineRangeChanged(e){this.baseline=e[0],this.state.baselineDispatchResult=this.props.canUpdateChart(this.props.figureId,{baseline:this.baseline})}updateBaselineRange(){this.state.baselineDispatchResult=this.props.updateChart(this.props.figureId,{baseline:this.baseline})}getBaselineRange(){return this.baseline||``}updateBaselineMode(e){this.props.updateChart(this.props.figureId,{baselineMode:e.target.value})}},$z=class extends t.Component{static template=`o-spreadsheet-ScorecardChartDesignPanel`;static components={GeneralDesignEditor:kz,RoundColorPicker:rk,SidePanelCollapsible:mO,Section:X,Checkbox:vk,ChartTitle:Ez};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};get colorsSectionTitle(){return this.props.definition.baselineMode===`progress`?E(`Progress bar colors`):E(`Baseline colors`)}get humanizeNumbersLabel(){return E(`Humanize numbers`)}get defaultScorecardTitleFontSize(){return 14}updateHumanizeNumbers(e){this.props.updateChart(this.props.figureId,{humanize:e})}translate(e){return E(e)}setColor(e,t){switch(t){case`backgroundColor`:this.props.updateChart(this.props.figureId,{background:e});break;case`baselineColorDown`:this.props.updateChart(this.props.figureId,{baselineColorDown:e});break;case`baselineColorUp`:this.props.updateChart(this.props.figureId,{baselineColorUp:e});break}}get keyStyle(){return{align:`center`,fontSize:32,...this.props.definition.keyDescr}}get baselineStyle(){return{align:`center`,fontSize:16,...this.props.definition.baselineDescr}}setKeyText(e){this.props.updateChart(this.props.figureId,{keyDescr:{...this.props.definition.keyDescr,text:e}})}updateKeyStyle(e){let t={...this.keyStyle,...e};this.props.updateChart(this.props.figureId,{keyDescr:t})}setBaselineText(e){this.props.updateChart(this.props.figureId,{baselineDescr:{...this.props.definition.baselineDescr,text:e}})}updateBaselineStyle(e){let t={...this.baselineStyle,...e};this.props.updateChart(this.props.figureId,{baselineDescr:t})}},eB=class extends t.Component{static template=`o-spreadsheet-SunburstChartDesignPanel`;static components={GeneralDesignEditor:kz,Section:X,SidePanelCollapsible:mO,ChartShowValues:Nz,Checkbox:vk,TextStyler:Tz,RoundColorPicker:rk,ChartLegend:Az,PieHoleSize:Jz};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};defaults=eE;get showValues(){return this.props.definition.showValues??eE.showValues}get showLabels(){return this.props.definition.showLabels??eE.showLabels}get groupColors(){let e=this.props.figureId;return this.env.model.getters.getChartRuntime(e).chartJsConfig.data.datasets[0]?.groupColors||[]}onGroupColorChanged(e,t){let n=b(this.props.definition.groupColors)??[];n[e]=t,this.props.updateChart(this.props.figureId,{groupColors:n})}onPieHoleSizeChange(e){this.props.updateChart(this.props.figureId,{...this.props.definition,pieHolePercentage:e})}},tB=class extends t.Component{static template=`o-spreadsheet-TreeMapCategoryColors`;static components={Checkbox:vk,RoundColorPicker:rk};static props={figureId:String,definition:Object,onColorChanged:Function};get coloringOptions(){let e=this.props.definition.coloringOptions??US.coloringOptions;if(e.type!==`categoryColor`)throw Error(`Coloring options is not solid color`);return e}getTreeGroupAndColors(){return this.env.model.getters.getChartRuntime(this.props.figureId).chartJsConfig.data.datasets[0]?.groupColors||[]}onGroupColorChanged(e,t){let n=b(this.coloringOptions);n.colors[e]=t||void 0,this.props.onColorChanged(n)}useValueBasedGradient(e){if(this.coloringOptions.type!==`categoryColor`)throw Error(`Coloring options is not solid color`);this.props.onColorChanged({...this.coloringOptions,useValueBasedGradient:e})}},nB=class extends t.Component{static template=`o-spreadsheet-TreeMapColorScale`;static components={RoundColorPicker:rk};static props={figureId:String,definition:Object,onColorChanged:Function};get coloringOptions(){let e=this.props.definition.coloringOptions??US.coloringOptions;if(e.type!==`colorScale`)throw Error(`Coloring options is not a color scale`);return e}setColorScaleColor(e,t){this.props.onColorChanged({...this.coloringOptions,[e]:t})}};let rB={type:`colorScale`,minColor:`#FFF5EB`,midColor:`#FD8D3C`,maxColor:`#7F2704`},iB={type:`categoryColor`,colors:[],useValueBasedGradient:!0};var aB=class extends t.Component{static template=`o-spreadsheet-TreeMapChartDesignPanel`;static components={GeneralDesignEditor:kz,Section:X,SidePanelCollapsible:mO,ChartShowValues:Nz,Checkbox:vk,TextStyler:Tz,RoundColorPicker:rk,BadgeSelection:xz,TreeMapCategoryColors:tB,TreeMapColorScale:nB};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};savedColors={categoryColors:iB,colorScale:rB};defaults=US;get showHeaders(){return this.props.definition.showHeaders??US.showHeaders}get showValues(){return this.props.definition.showValues??US.showValues}get showLabels(){return this.props.definition.showLabels??US.showLabels}get coloringOptions(){return this.props.definition.coloringOptions??US.coloringOptions}changeColoringOption(e){let t=e===`categoryColor`?this.savedColors.categoryColors:this.savedColors.colorScale;this.props.updateChart(this.props.figureId,{coloringOptions:t})}onCategoryColorChange(e){this.savedColors.categoryColors=e,this.props.updateChart(this.props.figureId,{coloringOptions:e})}onColorScaleChange(e){this.savedColors.colorScale=e,this.props.updateChart(this.props.figureId,{coloringOptions:e})}get coloringOptionChoices(){return[{label:E(`Category color`),value:`categoryColor`},{label:E(`Color scale`),value:`colorScale`}]}},oB=class extends t.Component{static template=`o-spreadsheet-WaterfallChartDesignPanel`;static components={GeneralDesignEditor:kz,ChartShowValues:Nz,Checkbox:vk,SidePanelCollapsible:mO,Section:X,RoundColorPicker:rk,AxisDesignEditor:Dz,RadioSelection:Oz,ChartLegend:Az};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};axisChoices=PS;onUpdateShowSubTotals(e){this.props.updateChart(this.props.figureId,{showSubTotals:e})}onUpdateShowConnectorLines(e){this.props.updateChart(this.props.figureId,{showConnectorLines:e})}onUpdateFirstValueAsSubtotal(e){this.props.updateChart(this.props.figureId,{firstValueAsSubtotal:e})}updateColor(e,t){this.props.updateChart(this.props.figureId,{[e]:t})}get axesList(){return[{id:`x`,name:E(`Horizontal axis`)},{id:`y`,name:E(`Vertical axis`)}]}get positiveValuesColor(){return this.props.definition.positiveValuesColor||`#4EA7F2`}get negativeValuesColor(){return this.props.definition.negativeValuesColor||`#EA6175`}get subTotalValuesColor(){return this.props.definition.subTotalValuesColor||`#AAAAAA`}updateVerticalAxisPosition(e){this.props.updateChart(this.props.figureId,{verticalAxisPosition:e})}};let sB=new g;sB.add(`line`,{configuration:Kz,design:qz}).add(`scatter`,{configuration:Zz,design:Pz}).add(`bar`,{configuration:bz,design:Pz}).add(`combo`,{configuration:yz,design:Iz}).add(`pie`,{configuration:yz,design:Yz}).add(`gauge`,{configuration:zz,design:Bz}).add(`scorecard`,{configuration:Qz,design:$z}).add(`waterfall`,{configuration:yz,design:oB}).add(`pyramid`,{configuration:yz,design:Pz}).add(`radar`,{configuration:yz,design:Xz}).add(`sunburst`,{configuration:Gz,design:eB}).add(`geo`,{configuration:Hz,design:Wz}).add(`funnel`,{configuration:Lz,design:Rz}).add(`treemap`,{configuration:Gz,design:aB}),V`
|
|
1361
|
+
`;var Bz=class extends t.Component{static template=`o-spreadsheet-GaugeChartDesignPanel`;static components={SidePanelCollapsible:mO,Section:X,RoundColorPicker:rk,GeneralDesignEditor:kz,ChartErrorSection:_z,StandaloneComposer:YO};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};state;setup(){this.state=(0,t.useState)({sectionRuleCancelledReasons:new Set(this.checkSectionRuleFormulasAreValid(this.props.definition.sectionRule)),sectionRule:b(this.props.definition.sectionRule)})}get designErrorMessages(){return[...this.state.sectionRuleCancelledReasons||[]].filter(e=>e!==`NoChanges`).map(e=>jw.Errors[e]||jw.Errors.Unexpected)}get isRangeMinInvalid(){return!!(this.state.sectionRuleCancelledReasons?.has(`EmptyGaugeRangeMin`)||this.state.sectionRuleCancelledReasons?.has(`GaugeRangeMinNaN`))}get isRangeMaxInvalid(){return!!(this.state.sectionRuleCancelledReasons?.has(`EmptyGaugeRangeMax`)||this.state.sectionRuleCancelledReasons?.has(`GaugeRangeMaxNaN`))}get isLowerInflectionPointInvalid(){return!!this.state.sectionRuleCancelledReasons?.has(`GaugeLowerInflectionPointNaN`)}get isUpperInflectionPointInvalid(){return!!this.state.sectionRuleCancelledReasons?.has(`GaugeUpperInflectionPointNaN`)}updateSectionColor(e,t){let n=b(this.state.sectionRule);n.colors[e]=t,this.updateSectionRule(n)}updateSectionRule(e){this.state.sectionRuleCancelledReasons=new Set(this.checkSectionRuleFormulasAreValid(this.state.sectionRule));let t=this.props.updateChart(this.props.figureId,{sectionRule:e});if(t.isSuccessful)this.state.sectionRule=b(e);else for(let e of t.reasons)this.state.sectionRuleCancelledReasons.add(e)}onConfirmGaugeRange(e,t){this.state.sectionRule={...this.state.sectionRule,[e]:t},this.updateSectionRule(this.state.sectionRule)}getGaugeInflectionComposerProps(e){let t=e===`lowerColor`?`lowerInflectionPoint`:`upperInflectionPoint`,n=this.state.sectionRule[t];return{onConfirm:e=>{this.state.sectionRule={...this.state.sectionRule,[t]:{...n,value:e}},this.updateSectionRule(this.state.sectionRule)},composerContent:n.value,invalid:e===`lowerColor`?this.isLowerInflectionPointInvalid:this.isUpperInflectionPointInvalid,defaultRangeSheetId:this.sheetId,class:t,placeholder:E(`Value`),title:E(`Value or formula`)}}checkSectionRuleFormulasAreValid(e){let t=new Set;return this.valueIsValidNumber(e.rangeMin)||t.add(`GaugeRangeMinNaN`),this.valueIsValidNumber(e.rangeMax)||t.add(`GaugeRangeMaxNaN`),this.valueIsValidNumber(e.lowerInflectionPoint.value)||t.add(`GaugeLowerInflectionPointNaN`),this.valueIsValidNumber(e.upperInflectionPoint.value)||t.add(`GaugeUpperInflectionPointNaN`),t}valueIsValidNumber(e){let t=this.env.model.getters.getLocale();if(!e.startsWith(`=`))return Qi(e,t)!==void 0;let n=this.env.model.getters.evaluateFormula(this.sheetId,e);return Du(n)?!1:Qi(Tu(n),t)!==void 0}get sheetId(){let e=this.env.model.getters.getChart(this.props.figureId);if(!e)throw Error(`Chart not found with id `+this.props.figureId);return e.sheetId}},Vz=class extends t.Component{static template=`o-spreadsheet-GeoChartRegionSelectSection`;static components={Section:X};static props={figureId:String,definition:Object,updateChart:Function};updateSelectedRegion(e){let t=e.target.value;this.props.updateChart(this.props.figureId,{region:t})}get availableRegions(){return this.env.model.getters.getGeoChartAvailableRegions()}get selectedRegion(){return this.props.definition.region||this.availableRegions[0]?.id}},Hz=class extends yz{static template=`o-spreadsheet-GeoChartConfigPanel`;static components={...yz.components,GeoChartRegionSelectSection:Vz};get dataRanges(){return this.getDataSeriesRanges()}get disabledRanges(){return this.props.definition.dataSets.map((e,t)=>t>0)}getLabelRangeOptions(){return[{name:`dataSetsHaveTitle`,label:this.dataSetsHaveTitleLabel,value:this.props.definition.dataSetsHaveTitle,onChange:this.onUpdateDataSetsHaveTitle.bind(this)}]}};let Uz={minColor:`#FFF5EB`,midColor:`#FD8D3C`,maxColor:`#7F2704`};var Wz=class extends Pz{static template=`o-spreadsheet-GeoChartDesignPanel`;static components={...Pz.components,RoundColorPicker:rk};colorScalesChoices=jw.GeoChart.ColorScales;updateColorScaleType(e){let t=e.target.value;t===`custom`?this.updateColorScale(Uz):this.updateColorScale(t)}updateColorScale(e){this.props.updateChart(this.props.figureId,{colorScale:e})}updateMissingValueColor(e){this.props.updateChart(this.props.figureId,{missingValueColor:e})}updateLegendPosition(e){let t=e.target.value;this.props.updateChart(this.props.figureId,{legendPosition:t})}get selectedColorScale(){return typeof this.props.definition.colorScale==`object`?`custom`:this.props.definition.colorScale||`oranges`}get selectedMissingValueColor(){return this.props.definition.missingValueColor||`#ffffff`}get customColorScale(){if(typeof this.props.definition.colorScale==`object`)return this.props.definition.colorScale}getCustomColorScaleColor(e){return this.customColorScale?.[e]??``}setCustomColorScaleColor(e,t){!t&&e!==`midColor`&&(t=`#fff`);let n=this.customColorScale;n&&this.updateColorScale({...n,[e]:t})}},Gz=class extends yz{static template=`o-spreadsheet-HierarchicalChartConfigPanel`;static components={...yz.components};getLabelRangeOptions(){return[{name:`dataSetsHaveTitle`,label:this.dataSetsHaveTitleLabel,value:this.props.definition.dataSetsHaveTitle,onChange:this.onUpdateDataSetsHaveTitle.bind(this)}]}},Kz=class extends yz{static template=`o-spreadsheet-LineConfigPanel`;get canTreatLabelsAsText(){let e=this.env.model.getters.getChart(this.props.figureId);return e&&e instanceof XE?sT(e.getDefinition(),e.dataSets,e.labelRange,this.env.model.getters):!1}get stackedLabel(){return this.props.definition.fillArea?this.chartTerms.StackedAreaChart:this.chartTerms.StackedLineChart}getLabelRangeOptions(){let e=super.getLabelRangeOptions();return this.canTreatLabelsAsText&&e.push({name:`labelsAsText`,value:this.props.definition.labelsAsText,label:this.chartTerms.TreatLabelsAsText,onChange:this.onUpdateLabelsAsText.bind(this)}),e}onUpdateLabelsAsText(e){this.props.updateChart(this.props.figureId,{labelsAsText:e})}onUpdateStacked(e){this.props.updateChart(this.props.figureId,{stacked:e})}onUpdateCumulative(e){this.props.updateChart(this.props.figureId,{cumulative:e})}},qz=class extends Pz{static template=`o-spreadsheet-LineChartDesignPanel`;static components={...Pz.components,ChartShowDataMarkers:Fz}},Jz=class extends t.Component{static template=`o-spreadsheet.PieHoleSize`;static components={Section:X};static props={onValueChange:Function,value:Number};debouncedOnChange=Et(this.onChange.bind(this),100);onChange(e){isNaN(Number(e))||this.props.onValueChange(x(Number(e),0,95))}},Yz=class extends t.Component{static template=`o-spreadsheet-PieChartDesignPanel`;static components={GeneralDesignEditor:kz,Section:X,ChartLegend:Az,ChartShowValues:Nz,PieHoleSize:Jz};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};onPieHoleSizeChange(e){this.props.updateChart(this.props.figureId,{...this.props.definition,pieHolePercentage:e})}},Xz=class extends t.Component{static template=`o-spreadsheet-RadarChartDesignPanel`;static components={GeneralDesignEditor:kz,SeriesDesignEditor:jz,Section:X,ChartLegend:Az,ChartShowValues:Nz,ChartShowDataMarkers:Fz};static props={figureId:String,definition:Object,canUpdateChart:Function,updateChart:Function}},Zz=class extends yz{static template=`o-spreadsheet-ScatterConfigPanel`;get canTreatLabelsAsText(){let e=this.env.model.getters.getChart(this.props.figureId);return e&&e instanceof iD?sT(e.getDefinition(),e.dataSets,e.labelRange,this.env.model.getters):!1}onUpdateLabelsAsText(e){this.props.updateChart(this.props.figureId,{labelsAsText:e})}getLabelRangeOptions(){let e=super.getLabelRangeOptions();return this.canTreatLabelsAsText&&e.push({name:`labelsAsText`,value:this.props.definition.labelsAsText,label:this.chartTerms.TreatLabelsAsText,onChange:this.onUpdateLabelsAsText.bind(this)}),e}},Qz=class extends t.Component{static template=`o-spreadsheet-ScorecardChartConfigPanel`;static components={SelectionInput:fk,ChartErrorSection:_z,Section:X};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:Function};state=(0,t.useState)({keyValueDispatchResult:void 0,baselineDispatchResult:void 0});keyValue=this.props.definition.keyValue;baseline=this.props.definition.baseline;get errorMessages(){return[...this.state.keyValueDispatchResult?.reasons||[],...this.state.baselineDispatchResult?.reasons||[]].filter(e=>e!==`NoChanges`).map(e=>jw.Errors[e]||jw.Errors.Unexpected)}get isKeyValueInvalid(){return!!this.state.keyValueDispatchResult?.isCancelledBecause(`InvalidScorecardKeyValue`)}get isBaselineInvalid(){return!!this.state.baselineDispatchResult?.isCancelledBecause(`InvalidScorecardBaseline`)}onKeyValueRangeChanged(e){this.keyValue=e[0],this.state.keyValueDispatchResult=this.props.canUpdateChart(this.props.figureId,{keyValue:this.keyValue})}updateKeyValueRange(){this.state.keyValueDispatchResult=this.props.updateChart(this.props.figureId,{keyValue:this.keyValue})}getKeyValueRange(){return this.keyValue||``}onBaselineRangeChanged(e){this.baseline=e[0],this.state.baselineDispatchResult=this.props.canUpdateChart(this.props.figureId,{baseline:this.baseline})}updateBaselineRange(){this.state.baselineDispatchResult=this.props.updateChart(this.props.figureId,{baseline:this.baseline})}getBaselineRange(){return this.baseline||``}updateBaselineMode(e){this.props.updateChart(this.props.figureId,{baselineMode:e.target.value})}},$z=class extends t.Component{static template=`o-spreadsheet-ScorecardChartDesignPanel`;static components={GeneralDesignEditor:kz,RoundColorPicker:rk,SidePanelCollapsible:mO,Section:X,Checkbox:vk,ChartTitle:Ez};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};get colorsSectionTitle(){return this.props.definition.baselineMode===`progress`?E(`Progress bar colors`):E(`Baseline colors`)}get humanizeNumbersLabel(){return E(`Humanize numbers`)}get defaultScorecardTitleFontSize(){return 14}updateHumanizeNumbers(e){this.props.updateChart(this.props.figureId,{humanize:e})}translate(e){return E(e)}setColor(e,t){switch(t){case`backgroundColor`:this.props.updateChart(this.props.figureId,{background:e});break;case`baselineColorDown`:this.props.updateChart(this.props.figureId,{baselineColorDown:e});break;case`baselineColorUp`:this.props.updateChart(this.props.figureId,{baselineColorUp:e});break}}get keyStyle(){return{align:`center`,fontSize:32,...this.props.definition.keyDescr}}get baselineStyle(){return{align:`center`,fontSize:16,...this.props.definition.baselineDescr}}setKeyText(e){this.props.updateChart(this.props.figureId,{keyDescr:{...this.props.definition.keyDescr,text:e}})}updateKeyStyle(e){let t={...this.keyStyle,...e};this.props.updateChart(this.props.figureId,{keyDescr:t})}setBaselineText(e){this.props.updateChart(this.props.figureId,{baselineDescr:{...this.props.definition.baselineDescr,text:e}})}updateBaselineStyle(e){let t={...this.baselineStyle,...e};this.props.updateChart(this.props.figureId,{baselineDescr:t})}},eB=class extends t.Component{static template=`o-spreadsheet-SunburstChartDesignPanel`;static components={GeneralDesignEditor:kz,Section:X,SidePanelCollapsible:mO,ChartShowValues:Nz,Checkbox:vk,TextStyler:Tz,RoundColorPicker:rk,ChartLegend:Az,PieHoleSize:Jz};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};defaults=eE;get showValues(){return this.props.definition.showValues??eE.showValues}get showLabels(){return this.props.definition.showLabels??eE.showLabels}get groupColors(){let e=this.props.figureId;return this.env.model.getters.getChartRuntime(e).chartJsConfig.data.datasets[0]?.groupColors||[]}onGroupColorChanged(e,t){let n=b(this.props.definition.groupColors)??[];n[e]=t,this.props.updateChart(this.props.figureId,{groupColors:n})}onPieHoleSizeChange(e){this.props.updateChart(this.props.figureId,{...this.props.definition,pieHolePercentage:e})}},tB=class extends t.Component{static template=`o-spreadsheet-TreeMapCategoryColors`;static components={Checkbox:vk,RoundColorPicker:rk};static props={figureId:String,definition:Object,onColorChanged:Function};get coloringOptions(){let e=this.props.definition.coloringOptions??US.coloringOptions;if(e.type!==`categoryColor`)throw Error(`Coloring options is not solid color`);return e}getTreeGroupAndColors(){return this.env.model.getters.getChartRuntime(this.props.figureId).chartJsConfig.data.datasets[0]?.groupColors||[]}onGroupColorChanged(e,t){let n=b(this.coloringOptions);n.colors[e]=t||void 0,this.props.onColorChanged(n)}useValueBasedGradient(e){if(this.coloringOptions.type!==`categoryColor`)throw Error(`Coloring options is not solid color`);this.props.onColorChanged({...this.coloringOptions,useValueBasedGradient:e})}},nB=class extends t.Component{static template=`o-spreadsheet-TreeMapColorScale`;static components={RoundColorPicker:rk};static props={figureId:String,definition:Object,onColorChanged:Function};get coloringOptions(){let e=this.props.definition.coloringOptions??US.coloringOptions;if(e.type!==`colorScale`)throw Error(`Coloring options is not a color scale`);return e}setColorScaleColor(e,t){this.props.onColorChanged({...this.coloringOptions,[e]:t})}};let rB={type:`colorScale`,minColor:`#FFF5EB`,midColor:`#FD8D3C`,maxColor:`#7F2704`},iB={type:`categoryColor`,colors:[],useValueBasedGradient:!0};var aB=class extends t.Component{static template=`o-spreadsheet-TreeMapChartDesignPanel`;static components={GeneralDesignEditor:kz,Section:X,SidePanelCollapsible:mO,ChartShowValues:Nz,Checkbox:vk,TextStyler:Tz,RoundColorPicker:rk,BadgeSelection:xz,TreeMapCategoryColors:tB,TreeMapColorScale:nB};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};savedColors={categoryColors:iB,colorScale:rB};defaults=US;get showHeaders(){return this.props.definition.showHeaders??US.showHeaders}get showValues(){return this.props.definition.showValues??US.showValues}get showLabels(){return this.props.definition.showLabels??US.showLabels}get coloringOptions(){return this.props.definition.coloringOptions??US.coloringOptions}changeColoringOption(e){let t=e===`categoryColor`?this.savedColors.categoryColors:this.savedColors.colorScale;this.props.updateChart(this.props.figureId,{coloringOptions:t})}onCategoryColorChange(e){this.savedColors.categoryColors=e,this.props.updateChart(this.props.figureId,{coloringOptions:e})}onColorScaleChange(e){this.savedColors.colorScale=e,this.props.updateChart(this.props.figureId,{coloringOptions:e})}get coloringOptionChoices(){return[{label:E(`Category color`),value:`categoryColor`},{label:E(`Color scale`),value:`colorScale`}]}},oB=class extends t.Component{static template=`o-spreadsheet-WaterfallChartDesignPanel`;static components={GeneralDesignEditor:kz,ChartShowValues:Nz,Checkbox:vk,SidePanelCollapsible:mO,Section:X,RoundColorPicker:rk,AxisDesignEditor:Dz,RadioSelection:Oz,ChartLegend:Az};static props={figureId:String,definition:Object,updateChart:Function,canUpdateChart:{type:Function,optional:!0}};axisChoices=PS;onUpdateShowSubTotals(e){this.props.updateChart(this.props.figureId,{showSubTotals:e})}onUpdateShowConnectorLines(e){this.props.updateChart(this.props.figureId,{showConnectorLines:e})}onUpdateFirstValueAsSubtotal(e){this.props.updateChart(this.props.figureId,{firstValueAsSubtotal:e})}updateColor(e,t){this.props.updateChart(this.props.figureId,{[e]:t})}get axesList(){return[{id:`x`,name:E(`Horizontal axis`)},{id:`y`,name:E(`Vertical axis`)}]}get positiveValuesColor(){return this.props.definition.positiveValuesColor||`#4EA7F2`}get negativeValuesColor(){return this.props.definition.negativeValuesColor||`#EA6175`}get subTotalValuesColor(){return this.props.definition.subTotalValuesColor||`#AAAAAA`}updateVerticalAxisPosition(e){this.props.updateChart(this.props.figureId,{verticalAxisPosition:e})}};let sB=new g;sB.add(`line`,{configuration:Kz,design:qz}).add(`scatter`,{configuration:Zz,design:Pz}).add(`bar`,{configuration:bz,design:Pz}).add(`combo`,{configuration:yz,design:Iz}).add(`pie`,{configuration:yz,design:Yz}).add(`gauge`,{configuration:zz,design:Bz}).add(`scorecard`,{configuration:Qz,design:$z}).add(`waterfall`,{configuration:yz,design:oB}).add(`pyramid`,{configuration:yz,design:Pz}).add(`radar`,{configuration:yz,design:Xz}).add(`sunburst`,{configuration:Gz,design:eB}).add(`geo`,{configuration:Hz,design:Wz}).add(`funnel`,{configuration:Lz,design:Rz}).add(`treemap`,{configuration:Gz,design:aB}),V`
|
|
1362
1362
|
.o-section .o-input.o-type-selector {
|
|
1363
1363
|
height: 30px;
|
|
1364
1364
|
padding-left: 35px;
|
|
@@ -3409,4 +3409,4 @@ You can download it directly instead.`,5),sticky:!1,type:`warning`});return}r=aw
|
|
|
3409
3409
|
<Relationships xmlns="${bf.Relationships}">
|
|
3410
3410
|
<Relationship ${K(e)} />
|
|
3411
3411
|
</Relationships>
|
|
3412
|
-
`),`_rels/.rels`)}function yJ(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(`'?${ot(e)}'?!`,`g`);i=i.replaceAll(n,n=>{let r=t[e];return n.replace(e,r)})}return JSON.parse(i)}function bJ(e){for(let t of e.sheets)t.tables=t.tables.filter(e=>js(ps(e.range)).numberOfRows>1);return e}var xJ=class extends Rd{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 gl,a=!1){let o=performance.now();console.debug(`##### Model creation #####`),super(),ir(),r=_N(e,r);let s=lN(e,a);this.state=new LK,this.uuidGenerator=i,this.config=this.setupConfig(n),this.session=this.setupSession(s.revisionId),this.coreGetters={},this.range=new vH(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 FK(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 oG.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(let e of lG.getAll()){let t=this.setupCoreViewPlugin(e);this.handlers.push(t),this.uiHandlers.push(t),this.coreHandlers.push(t)}for(let e of cG.getAll()){let t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(let e of sG.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 oW(jK({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:E(`Anonymous`).toString()},n=e.transportService||new RG;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(Er));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=yr(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>e!==`Success`)?new xr(t.flat()):xr.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(SJ(e,t));dispatch=(e,t)=>{let n=SJ(e,t),r=this.status;if(this.getters.isReadonly()&&!br(n))return new xr(`Readonly`);if(!this.session.canApplyOptimisticUpdate())return new xr(`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();yr(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(yr(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(yr(n))throw Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,n)}return xr.Success};dispatchFromCorePlugin=(e,t)=>{let n=SJ(e,t),r=this.status;this.status=2;let i=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(i,n),this.status=r,xr.Success};dispatchToHandlers(e,t){let n=yr(t);for(let r of e)!n&&r instanceof nH||r.beforeHandle(t);for(let r of e)!n&&r instanceof nH||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=wN();for(let t of this.handlers)t instanceof nH&&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=EN();for(let t of this.handlers)t instanceof tH&&t.exportForExcel(e);return e=b(e),uJ(e)}garbageCollectExternalResources(){for(let e of this.corePlugins)e.garbageCollectExternalResources()}};function SJ(e,t={}){let n=b(t);return n.type=e,n}let CJ={},wJ={MIN_ROW_HEIGHT:10,MIN_COL_WIDTH:5,HEADER_HEIGHT:26,HEADER_WIDTH:48,DESKTOP_BOTTOMBAR_HEIGHT:36,DEFAULT_CELL_WIDTH:96,DEFAULT_CELL_HEIGHT:23,SCROLLBAR_WIDTH:15},TJ={autoCompleteProviders:PO,autofillModifiersRegistry:dU,autofillRulesRegistry:fU,cellMenuRegistry:KI,colMenuRegistry:uR,errorTypes:Ri,linkMenuRegistry:Fk,functionRegistry:Ix,featurePluginRegistry:sG,iconsOnCellRegistry:tU,statefulUIPluginRegistry:cG,coreViewsPluginRegistry:lG,corePluginRegistry:oG,rowMenuRegistry:_R,sidePanelRegistry:GV,figureRegistry:sO,chartSidePanelComponentRegistry:sB,chartComponentRegistry:pD,chartRegistry:fD,chartSubtypeRegistry:hD,topbarMenuRegistry:IG,topbarComponentRegistry:LG,clickableCellRegistry:mG,otRegistry:EU,inverseCommandRegistry:hG,urlRegistry:Ir,cellPopoverRegistry:uO,numberFormatMenuRegistry:jG,repeatLocalCommandTransformRegistry:VW,repeatCommandTransformRegistry:BW,clipboardHandlersRegistries:Fd,pivotRegistry:bV,pivotTimeAdapterRegistry:Uu,pivotSidePanelRegistry:EV,pivotNormalizationValueRegistry:bd,supportedPivotPositionalFormulaRegistry:QV,pivotToFunctionValueRegistry:xd,migrationStepRegistry:iN,chartJsExtensionRegistry:lf},EJ={arg:U,isEvaluationError:j,toBoolean:P,toJsDate:F,toNumber:M,toString:N,toNormalizedPivotValue:gd,toFunctionPivotValue:vd,toXC:T,toZone:ps,toUnboundedZone:fs,toCartesian:Zn,numberToLetters:Hn,lettersToNumber:Un,UuidGenerator:gl,formatValue:L,createCurrencyFormat:ko,ColorGenerator:In,computeTextWidth:$c,createEmptyWorkbookData:wN,createEmptySheet:CN,createEmptyExcelSheet:TN,rgbaToHex:mn,colorToRGBA:hn,positionToZone:z,isDefined:C,isMatrix:Or,lazy:kt,genericRepeat:HW,createAction:m,createActions:f,transformRangeData:Ld,deepEquals:w,overlap:Ds,union:Cs,isInside:ks,deepCopy:b,expandZoneOnInsertion:ys,reduceZoneOnDeletion:Ss,unquote:lt,getMaxObjectId:cd,getFunctionsFromTokens:sS,getFirstPivotFunction:QB,getNumberOfPivotFunctions:eV,parseDimension:dd,isDateOrDatetimeField:fd,makeFieldProposal:qB,insertTokenAfterArgSeparator:YB,insertTokenAfterLeftParenthesis:XB,mergeContiguousZones:Qs,getPivotHighlights:AB,pivotTimeAdapter:Wu,UNDO_REDO_PIVOT_COMMANDS:cU,createPivotFormula:hd,areDomainArgsFieldsValid:md,splitReference:vc,sanitizeSheetName:dt,getUniqueText:$t,isNumber:Pi,isDateTime:ni},DJ={isMarkdownLink:_t,parseMarkdownLink:bt,markdownLink:yt,openLink:Vr,urlRepresentation:Br},OJ={Checkbox:vk,Section:X,RoundColorPicker:rk,ChartDataSeries:gz,ChartErrorSection:_z,ChartLabelRange:vz,ChartTitle:Ez,ChartPanel:uB,ChartFigure:aO,ChartJsComponent:xC,Grid:ZV,GridOverlay:JR,ScorecardChart:RC,LineConfigPanel:Kz,BarConfigPanel:bz,PieChartDesignPanel:Yz,GenericChartConfigPanel:yz,ChartWithAxisDesignPanel:Pz,LineChartDesignPanel:qz,GaugeChartConfigPanel:zz,GaugeChartDesignPanel:Bz,ScorecardChartConfigPanel:Qz,ScorecardChartDesignPanel:$z,GeoChartDesignPanel:Wz,RadarChartDesignPanel:Xz,WaterfallChartDesignPanel:oB,ComboChartDesignPanel:Iz,FunnelChartDesignPanel:Rz,ChartTypePicker:cB,FigureComponent:cO,MenuPopover:rO,Popover:$D,SelectionInput:fk,ValidationMessages:zR,AddDimensionButton:FB,PivotDimensionGranularity:zB,PivotDimensionOrder:BB,PivotDimension:RB,PivotLayoutConfigurator:WB,PivotHTMLRenderer:eH,PivotDeferUpdate:MB,PivotTitleSection:GB,CogWheelMenu:LB,TextInput:IB,SidePanelCollapsible:mO,RadioSelection:Oz,GeoChartRegionSelectSection:Vz,ChartDashboardMenu:iO,FullScreenChart:$V},kJ={useDragAndDropListItems:ak,useHighlights:pB,useHighlightsOnHover:fB},AJ={useStoreProvider:Ud,DependencyContainer:zd,CellPopoverStore:Ck,ComposerFocusStore:Qd,CellComposerStore:ER,FindAndReplaceStore:wB,HighlightStore:IO,DelayedHoveredCellStore:lO,HoveredTableStore:GR,ModelStore:Jd,NotificationStore:LO,RendererStore:Yd,SelectionInputStore:dk,SpreadsheetStore:Xd,useStore:B,useLocalStore:Wd,SidePanelStore:qV,PivotSidePanelStore:wV,PivotMeasureDisplayPanelStore:OB,ClientFocusStore:yR,GridRenderer:nz};function jJ(e,t){return Ix.add(e,t),{addFunction:(e,t)=>jJ(e,t)}}let MJ={DEFAULT_LOCALE:D,HIGHLIGHT_COLOR:v,PIVOT_TABLE_CONFIG:tt,ChartTerms:jw},NJ={...SD,...CE};e.AbstractCellClipboardHandler=Dl,e.AbstractChart=SC,e.AbstractFigureClipboardHandler=Ed,e.CellErrorType=k,e.ClientDisconnectedError=aW,e.CommandResult=Cr,e.CorePlugin=nH,e.CoreViewPlugin=EH,e.DispatchResult=xr,e.EvaluationError=A,e.LocalTransportService=RG,e.Model=xJ,e.PivotRuntimeDefinition=tV,e.Registry=g,e.Revision=iW,e.SPREADSHEET_DIMENSIONS=wJ,e.Spreadsheet=CK,e.SpreadsheetPivotTable=iV,e.UIPlugin=SU,e.__info__=CJ,e.addFunction=jJ,e.addRenderingLayer=jr,e.astToFormula=gy,e.chartHelpers=NJ,e.compile=Qx,e.compileTokens=$x,e.components=OJ,e.constants=MJ,e.convertAstNodes=fy,e.coreTypes=vr,e.findCellInNewZone=Bs,e.functionCache=Zx,e.helpers=EJ,e.hooks=kJ,e.invalidateCFEvaluationCommands=hr,e.invalidateChartEvaluationCommands=pr,e.invalidateDependenciesCommands=mr,e.invalidateEvaluationCommands=fr,e.iterateAstNodes=py,e.links=DJ,e.load=lN,e.parse=uy,e.parseTokens=dy,e.readonlyAllowedCommands=_r,e.registries=TJ,e.setDefaultSheetViewSize=$e,e.setTranslationMethod=rr,e.stores=AJ,e.tokenColors=VO,e.tokenize=jl,CJ.version=`18.4.47`,CJ.date=`2026-07-13T06:26:40.784Z`,CJ.hash=`3aec012`})(this.o_spreadsheet=this.o_spreadsheet||{},owl);
|
|
3412
|
+
`),`_rels/.rels`)}function yJ(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(`'?${ot(e)}'?!`,`g`);i=i.replaceAll(n,n=>{let r=t[e];return n.replace(e,r)})}return JSON.parse(i)}function bJ(e){for(let t of e.sheets)t.tables=t.tables.filter(e=>js(ps(e.range)).numberOfRows>1);return e}var xJ=class extends Rd{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 gl,a=!1){let o=performance.now();console.debug(`##### Model creation #####`),super(),ir(),r=_N(e,r);let s=lN(e,a);this.state=new LK,this.uuidGenerator=i,this.config=this.setupConfig(n),this.session=this.setupSession(s.revisionId),this.coreGetters={},this.range=new vH(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 FK(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 oG.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters),this.session.loadInitialMessages(r);for(let e of lG.getAll()){let t=this.setupCoreViewPlugin(e);this.handlers.push(t),this.uiHandlers.push(t),this.coreHandlers.push(t)}for(let e of cG.getAll()){let t=this.setupUiPlugin(e);this.statefulUIPlugins.push(t),this.handlers.push(t),this.uiHandlers.push(t)}for(let e of sG.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 oW(jK({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:E(`Anonymous`).toString()},n=e.transportService||new RG;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(Er));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=yr(e)?this.checkDispatchAllowedCoreCommand(e):this.checkDispatchAllowedLocalCommand(e);return t.some(e=>e!==`Success`)?new xr(t.flat()):xr.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(SJ(e,t));dispatch=(e,t)=>{let n=SJ(e,t),r=this.status;if(this.getters.isReadonly()&&!br(n))return new xr(`Readonly`);if(!this.session.canApplyOptimisticUpdate())return new xr(`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();yr(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(yr(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(yr(n))throw Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,n)}return xr.Success};dispatchFromCorePlugin=(e,t)=>{let n=SJ(e,t),r=this.status;this.status=2;let i=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(i,n),this.status=r,xr.Success};dispatchToHandlers(e,t){let n=yr(t);for(let r of e)!n&&r instanceof nH||r.beforeHandle(t);for(let r of e)!n&&r instanceof nH||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=wN();for(let t of this.handlers)t instanceof nH&&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=EN();for(let t of this.handlers)t instanceof tH&&t.exportForExcel(e);return e=b(e),uJ(e)}garbageCollectExternalResources(){for(let e of this.corePlugins)e.garbageCollectExternalResources()}};function SJ(e,t={}){let n=b(t);return n.type=e,n}let CJ={},wJ={MIN_ROW_HEIGHT:10,MIN_COL_WIDTH:5,HEADER_HEIGHT:26,HEADER_WIDTH:48,DESKTOP_BOTTOMBAR_HEIGHT:36,DEFAULT_CELL_WIDTH:96,DEFAULT_CELL_HEIGHT:23,SCROLLBAR_WIDTH:15},TJ={autoCompleteProviders:PO,autofillModifiersRegistry:dU,autofillRulesRegistry:fU,cellMenuRegistry:KI,colMenuRegistry:uR,errorTypes:Ri,linkMenuRegistry:Fk,functionRegistry:Ix,featurePluginRegistry:sG,iconsOnCellRegistry:tU,statefulUIPluginRegistry:cG,coreViewsPluginRegistry:lG,corePluginRegistry:oG,rowMenuRegistry:_R,sidePanelRegistry:GV,figureRegistry:sO,chartSidePanelComponentRegistry:sB,chartComponentRegistry:pD,chartRegistry:fD,chartSubtypeRegistry:hD,topbarMenuRegistry:IG,topbarComponentRegistry:LG,clickableCellRegistry:mG,otRegistry:EU,inverseCommandRegistry:hG,urlRegistry:Ir,cellPopoverRegistry:uO,numberFormatMenuRegistry:jG,repeatLocalCommandTransformRegistry:VW,repeatCommandTransformRegistry:BW,clipboardHandlersRegistries:Fd,pivotRegistry:bV,pivotTimeAdapterRegistry:Uu,pivotSidePanelRegistry:EV,pivotNormalizationValueRegistry:bd,supportedPivotPositionalFormulaRegistry:QV,pivotToFunctionValueRegistry:xd,migrationStepRegistry:iN,chartJsExtensionRegistry:lf},EJ={arg:U,isEvaluationError:j,toBoolean:P,toJsDate:F,toNumber:M,toString:N,toNormalizedPivotValue:gd,toFunctionPivotValue:vd,toXC:T,toZone:ps,toUnboundedZone:fs,toCartesian:Zn,numberToLetters:Hn,lettersToNumber:Un,UuidGenerator:gl,formatValue:L,createCurrencyFormat:ko,ColorGenerator:In,computeTextWidth:$c,createEmptyWorkbookData:wN,createEmptySheet:CN,createEmptyExcelSheet:TN,rgbaToHex:mn,colorToRGBA:hn,positionToZone:z,isDefined:C,isMatrix:Or,lazy:kt,genericRepeat:HW,createAction:m,createActions:f,transformRangeData:Ld,deepEquals:w,overlap:Ds,union:Cs,isInside:ks,deepCopy:b,expandZoneOnInsertion:ys,reduceZoneOnDeletion:Ss,unquote:lt,getMaxObjectId:cd,getFunctionsFromTokens:sS,getFirstPivotFunction:QB,getNumberOfPivotFunctions:eV,parseDimension:dd,isDateOrDatetimeField:fd,makeFieldProposal:qB,insertTokenAfterArgSeparator:YB,insertTokenAfterLeftParenthesis:XB,mergeContiguousZones:Qs,getPivotHighlights:AB,pivotTimeAdapter:Wu,UNDO_REDO_PIVOT_COMMANDS:cU,createPivotFormula:hd,areDomainArgsFieldsValid:md,splitReference:vc,sanitizeSheetName:dt,getUniqueText:$t,isNumber:Pi,isDateTime:ni},DJ={isMarkdownLink:_t,parseMarkdownLink:bt,markdownLink:yt,openLink:Vr,urlRepresentation:Br},OJ={Checkbox:vk,Section:X,RoundColorPicker:rk,ChartDataSeries:gz,ChartErrorSection:_z,ChartLabelRange:vz,ChartTitle:Ez,ChartPanel:uB,ChartFigure:aO,ChartJsComponent:xC,Grid:ZV,GridOverlay:JR,ScorecardChart:RC,LineConfigPanel:Kz,BarConfigPanel:bz,PieChartDesignPanel:Yz,GenericChartConfigPanel:yz,ChartWithAxisDesignPanel:Pz,LineChartDesignPanel:qz,GaugeChartConfigPanel:zz,GaugeChartDesignPanel:Bz,ScorecardChartConfigPanel:Qz,ScorecardChartDesignPanel:$z,GeoChartDesignPanel:Wz,RadarChartDesignPanel:Xz,WaterfallChartDesignPanel:oB,ComboChartDesignPanel:Iz,FunnelChartDesignPanel:Rz,ChartTypePicker:cB,FigureComponent:cO,MenuPopover:rO,Popover:$D,SelectionInput:fk,ValidationMessages:zR,AddDimensionButton:FB,PivotDimensionGranularity:zB,PivotDimensionOrder:BB,PivotDimension:RB,PivotLayoutConfigurator:WB,PivotHTMLRenderer:eH,PivotDeferUpdate:MB,PivotTitleSection:GB,CogWheelMenu:LB,TextInput:IB,SidePanelCollapsible:mO,RadioSelection:Oz,GeoChartRegionSelectSection:Vz,ChartDashboardMenu:iO,FullScreenChart:$V},kJ={useDragAndDropListItems:ak,useHighlights:pB,useHighlightsOnHover:fB},AJ={useStoreProvider:Ud,DependencyContainer:zd,CellPopoverStore:Ck,ComposerFocusStore:Qd,CellComposerStore:ER,FindAndReplaceStore:wB,HighlightStore:IO,DelayedHoveredCellStore:lO,HoveredTableStore:GR,ModelStore:Jd,NotificationStore:LO,RendererStore:Yd,SelectionInputStore:dk,SpreadsheetStore:Xd,useStore:B,useLocalStore:Wd,SidePanelStore:qV,PivotSidePanelStore:wV,PivotMeasureDisplayPanelStore:OB,ClientFocusStore:yR,GridRenderer:nz};function jJ(e,t){return Ix.add(e,t),{addFunction:(e,t)=>jJ(e,t)}}let MJ={DEFAULT_LOCALE:D,HIGHLIGHT_COLOR:v,PIVOT_TABLE_CONFIG:tt,ChartTerms:jw},NJ={...SD,...CE};e.AbstractCellClipboardHandler=Dl,e.AbstractChart=SC,e.AbstractFigureClipboardHandler=Ed,e.CellErrorType=k,e.ClientDisconnectedError=aW,e.CommandResult=Cr,e.CorePlugin=nH,e.CoreViewPlugin=EH,e.DispatchResult=xr,e.EvaluationError=A,e.LocalTransportService=RG,e.Model=xJ,e.PivotRuntimeDefinition=tV,e.Registry=g,e.Revision=iW,e.SPREADSHEET_DIMENSIONS=wJ,e.Spreadsheet=CK,e.SpreadsheetPivotTable=iV,e.UIPlugin=SU,e.__info__=CJ,e.addFunction=jJ,e.addRenderingLayer=jr,e.astToFormula=gy,e.chartHelpers=NJ,e.compile=Qx,e.compileTokens=$x,e.components=OJ,e.constants=MJ,e.convertAstNodes=fy,e.coreTypes=vr,e.findCellInNewZone=Bs,e.functionCache=Zx,e.helpers=EJ,e.hooks=kJ,e.invalidateCFEvaluationCommands=hr,e.invalidateChartEvaluationCommands=pr,e.invalidateDependenciesCommands=mr,e.invalidateEvaluationCommands=fr,e.iterateAstNodes=py,e.links=DJ,e.load=lN,e.parse=uy,e.parseTokens=dy,e.readonlyAllowedCommands=_r,e.registries=TJ,e.setDefaultSheetViewSize=$e,e.setTranslationMethod=rr,e.stores=AJ,e.tokenColors=VO,e.tokenize=jl,CJ.version=`18.4.48`,CJ.date=`2026-07-20T11:00:08.319Z`,CJ.hash=`a4662a5`})(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.4.
|
|
5
|
-
@date 2026-07-
|
|
6
|
-
@hash
|
|
4
|
+
@version 18.4.48
|
|
5
|
+
@date 2026-07-20T11:00:09.134Z
|
|
6
|
+
@hash a4662a5
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ValidationMessages">
|