@odoo/o-spreadsheet 19.1.21 → 19.1.22
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.cjs.js +30 -53
- package/dist/o_spreadsheet.css +17 -9
- package/dist/o_spreadsheet.esm.js +30 -53
- package/dist/o_spreadsheet.iife.js +30 -53
- package/dist/o_spreadsheet.iife.min.js +240 -240
- package/dist/o_spreadsheet.xml +5 -4
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.22
|
|
6
|
+
* @date 2026-06-06T06:23:19.222Z
|
|
7
|
+
* @hash 97a02db
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -4303,6 +4303,7 @@ const DEFAULT_LOCALE = DEFAULT_LOCALES[0];
|
|
|
4303
4303
|
//#endregion
|
|
4304
4304
|
//#region src/helpers/format/format_tokenizer.ts
|
|
4305
4305
|
function tokenizeFormat(str) {
|
|
4306
|
+
str = str.replace(/\s/g, " ");
|
|
4306
4307
|
const chars = new TokenizingChars(str);
|
|
4307
4308
|
const result = [];
|
|
4308
4309
|
let currentFormatPart = [];
|
|
@@ -7027,40 +7028,9 @@ var UuidGenerator = class {
|
|
|
7027
7028
|
}
|
|
7028
7029
|
};
|
|
7029
7030
|
|
|
7030
|
-
//#endregion
|
|
7031
|
-
//#region src/registry.ts
|
|
7032
|
-
var Registry$1 = class {
|
|
7033
|
-
content = {};
|
|
7034
|
-
add(key, value) {
|
|
7035
|
-
if (key in this.content) throw new Error(`${key} is already present in this registry!`);
|
|
7036
|
-
return this.replace(key, value);
|
|
7037
|
-
}
|
|
7038
|
-
replace(key, value) {
|
|
7039
|
-
this.content[key] = value;
|
|
7040
|
-
return this;
|
|
7041
|
-
}
|
|
7042
|
-
get(key) {
|
|
7043
|
-
const content = this.content[key];
|
|
7044
|
-
if (!content && !(key in this.content)) throw new Error(`Cannot find ${key} in this registry!`);
|
|
7045
|
-
return content;
|
|
7046
|
-
}
|
|
7047
|
-
contains(key) {
|
|
7048
|
-
return key in this.content;
|
|
7049
|
-
}
|
|
7050
|
-
getAll() {
|
|
7051
|
-
return Object.values(this.content);
|
|
7052
|
-
}
|
|
7053
|
-
getKeys() {
|
|
7054
|
-
return Object.keys(this.content);
|
|
7055
|
-
}
|
|
7056
|
-
remove(key) {
|
|
7057
|
-
delete this.content[key];
|
|
7058
|
-
}
|
|
7059
|
-
};
|
|
7060
|
-
|
|
7061
7031
|
//#endregion
|
|
7062
7032
|
//#region src/helpers/figures/charts/chart_js_extension.ts
|
|
7063
|
-
const chartJsExtensionRegistry = new Registry
|
|
7033
|
+
const chartJsExtensionRegistry = new Registry();
|
|
7064
7034
|
function areChartJSExtensionsLoaded() {
|
|
7065
7035
|
return globalThis.Chart ? !!globalThis.Chart.registry.plugins.get("chartShowValuesPlugin") : true;
|
|
7066
7036
|
}
|
|
@@ -26308,7 +26278,7 @@ const HYPERLINK = {
|
|
|
26308
26278
|
//#endregion
|
|
26309
26279
|
//#region src/functions/function_registry.ts
|
|
26310
26280
|
const functionNameRegex = /^[A-Z0-9\_\.]+$/;
|
|
26311
|
-
var FunctionRegistry = class extends Registry
|
|
26281
|
+
var FunctionRegistry = class extends Registry {
|
|
26312
26282
|
mapping = {};
|
|
26313
26283
|
add(name, addDescr) {
|
|
26314
26284
|
name = name.toUpperCase();
|
|
@@ -35798,7 +35768,7 @@ const WEEK_START = {
|
|
|
35798
35768
|
|
|
35799
35769
|
//#endregion
|
|
35800
35770
|
//#region src/migrations/migration_steps.ts
|
|
35801
|
-
const migrationStepRegistry = new Registry
|
|
35771
|
+
const migrationStepRegistry = new Registry();
|
|
35802
35772
|
migrationStepRegistry.add("0.1", { migrate(data) {
|
|
35803
35773
|
if (data.sheets && data.sheets[0]) data.activeSheet = data.sheets[0].name;
|
|
35804
35774
|
return data;
|
|
@@ -36960,11 +36930,10 @@ const INSERT_TABLE = (env) => {
|
|
|
36960
36930
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
36961
36931
|
};
|
|
36962
36932
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
36963
|
-
const
|
|
36964
|
-
const table = env.model.getters.getTable(position);
|
|
36933
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
36965
36934
|
if (!table) return;
|
|
36966
36935
|
env.model.dispatch("REMOVE_TABLE", {
|
|
36967
|
-
sheetId:
|
|
36936
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
36968
36937
|
target: [table.range.zone]
|
|
36969
36938
|
});
|
|
36970
36939
|
};
|
|
@@ -39333,7 +39302,7 @@ var SpreadsheetPivot = class {
|
|
|
39333
39302
|
|
|
39334
39303
|
//#endregion
|
|
39335
39304
|
//#region src/helpers/pivot/pivot_registry.ts
|
|
39336
|
-
const pivotRegistry = new Registry
|
|
39305
|
+
const pivotRegistry = new Registry();
|
|
39337
39306
|
const dateGranularities = [
|
|
39338
39307
|
"year",
|
|
39339
39308
|
"quarter_number",
|
|
@@ -61446,9 +61415,11 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61446
61415
|
this.refreshPivot(cmd.id);
|
|
61447
61416
|
break;
|
|
61448
61417
|
case "ADD_PIVOT":
|
|
61418
|
+
this.unusedPivotsInFormulas?.push(cmd.pivotId);
|
|
61449
61419
|
this.setupPivot(cmd.pivotId);
|
|
61450
61420
|
break;
|
|
61451
61421
|
case "DUPLICATE_PIVOT":
|
|
61422
|
+
this.unusedPivotsInFormulas?.push(cmd.newPivotId);
|
|
61452
61423
|
this.setupPivot(cmd.newPivotId);
|
|
61453
61424
|
break;
|
|
61454
61425
|
case "UPDATE_PIVOT":
|
|
@@ -61640,8 +61611,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61640
61611
|
}
|
|
61641
61612
|
}
|
|
61642
61613
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
61643
|
-
const pivot = this.getters.
|
|
61644
|
-
for (const measure of pivot.
|
|
61614
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
61615
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
61645
61616
|
const { sheetId } = measure.computedBy;
|
|
61646
61617
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
61647
61618
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -63321,7 +63292,8 @@ const invalidateTableStyleCommandsSet = new Set([
|
|
|
63321
63292
|
"REMOVE_TABLE",
|
|
63322
63293
|
"RESIZE_TABLE",
|
|
63323
63294
|
"CREATE_TABLE_STYLE",
|
|
63324
|
-
"REMOVE_TABLE_STYLE"
|
|
63295
|
+
"REMOVE_TABLE_STYLE",
|
|
63296
|
+
"DELETE_CONTENT"
|
|
63325
63297
|
]);
|
|
63326
63298
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
63327
63299
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -68529,10 +68501,10 @@ var SheetViewPlugin = class extends UIPlugin {
|
|
|
68529
68501
|
|
|
68530
68502
|
//#endregion
|
|
68531
68503
|
//#region src/plugins/index.ts
|
|
68532
|
-
const corePluginRegistry = new Registry
|
|
68533
|
-
const featurePluginRegistry = new Registry
|
|
68534
|
-
const statefulUIPluginRegistry = new Registry
|
|
68535
|
-
const coreViewsPluginRegistry = new Registry
|
|
68504
|
+
const corePluginRegistry = new Registry().add("settings", SettingsPlugin).add("sheet", SheetPlugin).add("header grouping", HeaderGroupingPlugin).add("header visibility", HeaderVisibilityPlugin).add("tables", TablePlugin).add("dataValidation", DataValidationPlugin).add("cell", CellPlugin).add("merge", MergePlugin).add("style", StylePlugin).add("headerSize", HeaderSizePlugin).add("borders", BordersPlugin).add("conditional formatting", ConditionalFormatPlugin).add("figures", FigurePlugin).add("chart", ChartPlugin).add("carousel", CarouselPlugin).add("image", ImagePlugin).add("pivot_core", PivotCorePlugin).add("spreadsheet_pivot_core", SpreadsheetPivotCorePlugin).add("tableStyle", TableStylePlugin);
|
|
68505
|
+
const featurePluginRegistry = new Registry().add("ui_sheet", SheetUIPlugin).add("ui_options", UIOptionsPlugin).add("autofill", AutofillPlugin).add("sort", SortPlugin).add("automatic_sum", AutomaticSumPlugin).add("format", FormatPlugin).add("insert_pivot", InsertPivotPlugin).add("pivot_presence", PivotPresencePlugin).add("split_to_columns", SplitToColumnsPlugin).add("subtotal_evaluation", SubtotalEvaluationPlugin).add("collaborative", CollaborativePlugin).add("history", HistoryPlugin).add("table_autofill", TableAutofillPlugin).add("table_ui_resize", TableResizeUI).add("datavalidation_insert", DataValidationInsertionPlugin).add("checkbox_toggle", CheckboxTogglePlugin).add("dynamic_translate", DynamicTranslate).add("geo_features", GeoFeaturePlugin).add("data_cleanup", DataCleanupPlugin);
|
|
68506
|
+
const statefulUIPluginRegistry = new Registry().add("selection", GridSelectionPlugin).add("evaluation_filter", FilterEvaluationPlugin).add("header_visibility_ui", HeaderVisibilityUIPlugin).add("cell_computed_style", CellComputedStylePlugin).add("table_computed_style", TableComputedStylePlugin).add("header_positions", HeaderPositionsUIPlugin).add("viewport", SheetViewPlugin).add("clipboard", ClipboardPlugin).add("carousel_ui", CarouselUIPlugin);
|
|
68507
|
+
const coreViewsPluginRegistry = new Registry().add("evaluation", EvaluationPlugin).add("evaluation_chart", EvaluationChartPlugin).add("evaluation_cf", EvaluationConditionalFormatPlugin).add("row_size", HeaderSizeUIPlugin).add("data_validation_ui", EvaluationDataValidationPlugin).add("dynamic_tables", DynamicTablesPlugin).add("custom_colors", CustomColorsPlugin).add("pivot_ui", PivotUIPlugin).add("cell_icon", CellIconPlugin);
|
|
68536
68508
|
|
|
68537
68509
|
//#endregion
|
|
68538
68510
|
//#region src/registries/auto_completes/data_validation_auto_complete.ts
|
|
@@ -74301,6 +74273,11 @@ function lineAttributes(params) {
|
|
|
74301
74273
|
`;
|
|
74302
74274
|
}
|
|
74303
74275
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
74276
|
+
const textProperties = [
|
|
74277
|
+
["b", style.bold ? "1" : "0"],
|
|
74278
|
+
["i", style.italic ? "1" : "0"],
|
|
74279
|
+
["sz", fontsize * 100]
|
|
74280
|
+
];
|
|
74304
74281
|
return escapeXml`
|
|
74305
74282
|
<c:tx>
|
|
74306
74283
|
<c:rich>
|
|
@@ -74308,13 +74285,13 @@ function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
|
74308
74285
|
<a:lstStyle />
|
|
74309
74286
|
<a:p>
|
|
74310
74287
|
<a:pPr lvl="0">
|
|
74311
|
-
<a:defRPr
|
|
74288
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
74312
74289
|
${solidFill(fontColor)}
|
|
74313
74290
|
<a:latin typeface="+mn-lt"/>
|
|
74314
74291
|
</a:defRPr>
|
|
74315
74292
|
</a:pPr>
|
|
74316
74293
|
<a:r> <!-- Runs -->
|
|
74317
|
-
<a:rPr
|
|
74294
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
74318
74295
|
<a:t>${text}</a:t>
|
|
74319
74296
|
</a:r>
|
|
74320
74297
|
</a:p>
|
|
@@ -79327,6 +79304,6 @@ exports.stores = stores;
|
|
|
79327
79304
|
exports.tokenColors = tokenColors;
|
|
79328
79305
|
exports.tokenize = tokenize;
|
|
79329
79306
|
|
|
79330
|
-
__info__.version = "19.1.
|
|
79331
|
-
__info__.date = "2026-
|
|
79332
|
-
__info__.hash = "
|
|
79307
|
+
__info__.version = "19.1.22";
|
|
79308
|
+
__info__.date = "2026-06-06T06:23:19.222Z";
|
|
79309
|
+
__info__.hash = "97a02db";
|
package/dist/o_spreadsheet.css
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/*
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.22
|
|
6
|
+
* @date 2026-06-06T06:23:20.902Z
|
|
7
|
+
* @hash 97a02db
|
|
8
8
|
*/
|
|
9
9
|
:root {
|
|
10
10
|
--os-gray-100: light-dark(#f9fafb, #1b1d26);
|
|
@@ -2001,6 +2001,7 @@
|
|
|
2001
2001
|
right: var(--os-scrollbar-width);
|
|
2002
2002
|
height: var(--os-header-height);
|
|
2003
2003
|
width: calc(100% - var(--os-header-width) + var(--os-scrollbar-width));
|
|
2004
|
+
color-scheme: light;
|
|
2004
2005
|
&.o-dragging {
|
|
2005
2006
|
cursor: grabbing;
|
|
2006
2007
|
}
|
|
@@ -2036,9 +2037,12 @@
|
|
|
2036
2037
|
height: 10000px;
|
|
2037
2038
|
background-color: var(--os-selection-border-color);
|
|
2038
2039
|
}
|
|
2039
|
-
.o-unhide
|
|
2040
|
-
|
|
2041
|
-
|
|
2040
|
+
.o-unhide {
|
|
2041
|
+
color: var(--os-text-body);
|
|
2042
|
+
&:hover {
|
|
2043
|
+
z-index: calc(var(--os-components-importance-grid) + 1);
|
|
2044
|
+
background-color: var(--os-gray-400);
|
|
2045
|
+
}
|
|
2042
2046
|
}
|
|
2043
2047
|
}
|
|
2044
2048
|
|
|
@@ -2048,6 +2052,7 @@
|
|
|
2048
2052
|
left: 0;
|
|
2049
2053
|
bottom: var(--os-scrollbar-width);
|
|
2050
2054
|
width: var(--os-header-width);
|
|
2055
|
+
color-scheme: light;
|
|
2051
2056
|
&.o-dragging {
|
|
2052
2057
|
cursor: grabbing;
|
|
2053
2058
|
}
|
|
@@ -2083,9 +2088,12 @@
|
|
|
2083
2088
|
height: 1px;
|
|
2084
2089
|
background-color: var(--os-selection-border-color);
|
|
2085
2090
|
}
|
|
2086
|
-
.o-unhide
|
|
2087
|
-
|
|
2088
|
-
|
|
2091
|
+
.o-unhide {
|
|
2092
|
+
color: var(--os-text-body);
|
|
2093
|
+
&:hover {
|
|
2094
|
+
z-index: calc(var(--os-components-importance-grid) + 1);
|
|
2095
|
+
background-color: var(--os-gray-400);
|
|
2096
|
+
}
|
|
2089
2097
|
}
|
|
2090
2098
|
}
|
|
2091
2099
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.22
|
|
6
|
+
* @date 2026-06-06T06:23:19.222Z
|
|
7
|
+
* @hash 97a02db
|
|
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, whenReady, xml } from "@odoo/owl";
|
|
@@ -4302,6 +4302,7 @@ const DEFAULT_LOCALE = DEFAULT_LOCALES[0];
|
|
|
4302
4302
|
//#endregion
|
|
4303
4303
|
//#region src/helpers/format/format_tokenizer.ts
|
|
4304
4304
|
function tokenizeFormat(str) {
|
|
4305
|
+
str = str.replace(/\s/g, " ");
|
|
4305
4306
|
const chars = new TokenizingChars(str);
|
|
4306
4307
|
const result = [];
|
|
4307
4308
|
let currentFormatPart = [];
|
|
@@ -7026,40 +7027,9 @@ var UuidGenerator = class {
|
|
|
7026
7027
|
}
|
|
7027
7028
|
};
|
|
7028
7029
|
|
|
7029
|
-
//#endregion
|
|
7030
|
-
//#region src/registry.ts
|
|
7031
|
-
var Registry$1 = class {
|
|
7032
|
-
content = {};
|
|
7033
|
-
add(key, value) {
|
|
7034
|
-
if (key in this.content) throw new Error(`${key} is already present in this registry!`);
|
|
7035
|
-
return this.replace(key, value);
|
|
7036
|
-
}
|
|
7037
|
-
replace(key, value) {
|
|
7038
|
-
this.content[key] = value;
|
|
7039
|
-
return this;
|
|
7040
|
-
}
|
|
7041
|
-
get(key) {
|
|
7042
|
-
const content = this.content[key];
|
|
7043
|
-
if (!content && !(key in this.content)) throw new Error(`Cannot find ${key} in this registry!`);
|
|
7044
|
-
return content;
|
|
7045
|
-
}
|
|
7046
|
-
contains(key) {
|
|
7047
|
-
return key in this.content;
|
|
7048
|
-
}
|
|
7049
|
-
getAll() {
|
|
7050
|
-
return Object.values(this.content);
|
|
7051
|
-
}
|
|
7052
|
-
getKeys() {
|
|
7053
|
-
return Object.keys(this.content);
|
|
7054
|
-
}
|
|
7055
|
-
remove(key) {
|
|
7056
|
-
delete this.content[key];
|
|
7057
|
-
}
|
|
7058
|
-
};
|
|
7059
|
-
|
|
7060
7030
|
//#endregion
|
|
7061
7031
|
//#region src/helpers/figures/charts/chart_js_extension.ts
|
|
7062
|
-
const chartJsExtensionRegistry = new Registry
|
|
7032
|
+
const chartJsExtensionRegistry = new Registry();
|
|
7063
7033
|
function areChartJSExtensionsLoaded() {
|
|
7064
7034
|
return globalThis.Chart ? !!globalThis.Chart.registry.plugins.get("chartShowValuesPlugin") : true;
|
|
7065
7035
|
}
|
|
@@ -26307,7 +26277,7 @@ const HYPERLINK = {
|
|
|
26307
26277
|
//#endregion
|
|
26308
26278
|
//#region src/functions/function_registry.ts
|
|
26309
26279
|
const functionNameRegex = /^[A-Z0-9\_\.]+$/;
|
|
26310
|
-
var FunctionRegistry = class extends Registry
|
|
26280
|
+
var FunctionRegistry = class extends Registry {
|
|
26311
26281
|
mapping = {};
|
|
26312
26282
|
add(name, addDescr) {
|
|
26313
26283
|
name = name.toUpperCase();
|
|
@@ -35797,7 +35767,7 @@ const WEEK_START = {
|
|
|
35797
35767
|
|
|
35798
35768
|
//#endregion
|
|
35799
35769
|
//#region src/migrations/migration_steps.ts
|
|
35800
|
-
const migrationStepRegistry = new Registry
|
|
35770
|
+
const migrationStepRegistry = new Registry();
|
|
35801
35771
|
migrationStepRegistry.add("0.1", { migrate(data) {
|
|
35802
35772
|
if (data.sheets && data.sheets[0]) data.activeSheet = data.sheets[0].name;
|
|
35803
35773
|
return data;
|
|
@@ -36959,11 +36929,10 @@ const INSERT_TABLE = (env) => {
|
|
|
36959
36929
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
36960
36930
|
};
|
|
36961
36931
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
36962
|
-
const
|
|
36963
|
-
const table = env.model.getters.getTable(position);
|
|
36932
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
36964
36933
|
if (!table) return;
|
|
36965
36934
|
env.model.dispatch("REMOVE_TABLE", {
|
|
36966
|
-
sheetId:
|
|
36935
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
36967
36936
|
target: [table.range.zone]
|
|
36968
36937
|
});
|
|
36969
36938
|
};
|
|
@@ -39332,7 +39301,7 @@ var SpreadsheetPivot = class {
|
|
|
39332
39301
|
|
|
39333
39302
|
//#endregion
|
|
39334
39303
|
//#region src/helpers/pivot/pivot_registry.ts
|
|
39335
|
-
const pivotRegistry = new Registry
|
|
39304
|
+
const pivotRegistry = new Registry();
|
|
39336
39305
|
const dateGranularities = [
|
|
39337
39306
|
"year",
|
|
39338
39307
|
"quarter_number",
|
|
@@ -61261,9 +61230,11 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61261
61230
|
this.refreshPivot(cmd.id);
|
|
61262
61231
|
break;
|
|
61263
61232
|
case "ADD_PIVOT":
|
|
61233
|
+
this.unusedPivotsInFormulas?.push(cmd.pivotId);
|
|
61264
61234
|
this.setupPivot(cmd.pivotId);
|
|
61265
61235
|
break;
|
|
61266
61236
|
case "DUPLICATE_PIVOT":
|
|
61237
|
+
this.unusedPivotsInFormulas?.push(cmd.newPivotId);
|
|
61267
61238
|
this.setupPivot(cmd.newPivotId);
|
|
61268
61239
|
break;
|
|
61269
61240
|
case "UPDATE_PIVOT":
|
|
@@ -61455,8 +61426,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61455
61426
|
}
|
|
61456
61427
|
}
|
|
61457
61428
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
61458
|
-
const pivot = this.getters.
|
|
61459
|
-
for (const measure of pivot.
|
|
61429
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
61430
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
61460
61431
|
const { sheetId } = measure.computedBy;
|
|
61461
61432
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
61462
61433
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -63136,7 +63107,8 @@ const invalidateTableStyleCommandsSet = new Set([
|
|
|
63136
63107
|
"REMOVE_TABLE",
|
|
63137
63108
|
"RESIZE_TABLE",
|
|
63138
63109
|
"CREATE_TABLE_STYLE",
|
|
63139
|
-
"REMOVE_TABLE_STYLE"
|
|
63110
|
+
"REMOVE_TABLE_STYLE",
|
|
63111
|
+
"DELETE_CONTENT"
|
|
63140
63112
|
]);
|
|
63141
63113
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
63142
63114
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -68344,10 +68316,10 @@ var SheetViewPlugin = class extends UIPlugin {
|
|
|
68344
68316
|
|
|
68345
68317
|
//#endregion
|
|
68346
68318
|
//#region src/plugins/index.ts
|
|
68347
|
-
const corePluginRegistry = new Registry
|
|
68348
|
-
const featurePluginRegistry = new Registry
|
|
68349
|
-
const statefulUIPluginRegistry = new Registry
|
|
68350
|
-
const coreViewsPluginRegistry = new Registry
|
|
68319
|
+
const corePluginRegistry = new Registry().add("settings", SettingsPlugin).add("sheet", SheetPlugin).add("header grouping", HeaderGroupingPlugin).add("header visibility", HeaderVisibilityPlugin).add("tables", TablePlugin).add("dataValidation", DataValidationPlugin).add("cell", CellPlugin).add("merge", MergePlugin).add("style", StylePlugin).add("headerSize", HeaderSizePlugin).add("borders", BordersPlugin).add("conditional formatting", ConditionalFormatPlugin).add("figures", FigurePlugin).add("chart", ChartPlugin).add("carousel", CarouselPlugin).add("image", ImagePlugin).add("pivot_core", PivotCorePlugin).add("spreadsheet_pivot_core", SpreadsheetPivotCorePlugin).add("tableStyle", TableStylePlugin);
|
|
68320
|
+
const featurePluginRegistry = new Registry().add("ui_sheet", SheetUIPlugin).add("ui_options", UIOptionsPlugin).add("autofill", AutofillPlugin).add("sort", SortPlugin).add("automatic_sum", AutomaticSumPlugin).add("format", FormatPlugin).add("insert_pivot", InsertPivotPlugin).add("pivot_presence", PivotPresencePlugin).add("split_to_columns", SplitToColumnsPlugin).add("subtotal_evaluation", SubtotalEvaluationPlugin).add("collaborative", CollaborativePlugin).add("history", HistoryPlugin).add("table_autofill", TableAutofillPlugin).add("table_ui_resize", TableResizeUI).add("datavalidation_insert", DataValidationInsertionPlugin).add("checkbox_toggle", CheckboxTogglePlugin).add("dynamic_translate", DynamicTranslate).add("geo_features", GeoFeaturePlugin).add("data_cleanup", DataCleanupPlugin);
|
|
68321
|
+
const statefulUIPluginRegistry = new Registry().add("selection", GridSelectionPlugin).add("evaluation_filter", FilterEvaluationPlugin).add("header_visibility_ui", HeaderVisibilityUIPlugin).add("cell_computed_style", CellComputedStylePlugin).add("table_computed_style", TableComputedStylePlugin).add("header_positions", HeaderPositionsUIPlugin).add("viewport", SheetViewPlugin).add("clipboard", ClipboardPlugin).add("carousel_ui", CarouselUIPlugin);
|
|
68322
|
+
const coreViewsPluginRegistry = new Registry().add("evaluation", EvaluationPlugin).add("evaluation_chart", EvaluationChartPlugin).add("evaluation_cf", EvaluationConditionalFormatPlugin).add("row_size", HeaderSizeUIPlugin).add("data_validation_ui", EvaluationDataValidationPlugin).add("dynamic_tables", DynamicTablesPlugin).add("custom_colors", CustomColorsPlugin).add("pivot_ui", PivotUIPlugin).add("cell_icon", CellIconPlugin);
|
|
68351
68323
|
|
|
68352
68324
|
//#endregion
|
|
68353
68325
|
//#region src/registries/auto_completes/data_validation_auto_complete.ts
|
|
@@ -74116,6 +74088,11 @@ function lineAttributes(params) {
|
|
|
74116
74088
|
`;
|
|
74117
74089
|
}
|
|
74118
74090
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
74091
|
+
const textProperties = [
|
|
74092
|
+
["b", style.bold ? "1" : "0"],
|
|
74093
|
+
["i", style.italic ? "1" : "0"],
|
|
74094
|
+
["sz", fontsize * 100]
|
|
74095
|
+
];
|
|
74119
74096
|
return escapeXml`
|
|
74120
74097
|
<c:tx>
|
|
74121
74098
|
<c:rich>
|
|
@@ -74123,13 +74100,13 @@ function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
|
74123
74100
|
<a:lstStyle />
|
|
74124
74101
|
<a:p>
|
|
74125
74102
|
<a:pPr lvl="0">
|
|
74126
|
-
<a:defRPr
|
|
74103
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
74127
74104
|
${solidFill(fontColor)}
|
|
74128
74105
|
<a:latin typeface="+mn-lt"/>
|
|
74129
74106
|
</a:defRPr>
|
|
74130
74107
|
</a:pPr>
|
|
74131
74108
|
<a:r> <!-- Runs -->
|
|
74132
|
-
<a:rPr
|
|
74109
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
74133
74110
|
<a:t>${text}</a:t>
|
|
74134
74111
|
</a:r>
|
|
74135
74112
|
</a:p>
|
|
@@ -79089,6 +79066,6 @@ const chartHelpers = {
|
|
|
79089
79066
|
//#endregion
|
|
79090
79067
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
79091
79068
|
|
|
79092
|
-
__info__.version = "19.1.
|
|
79093
|
-
__info__.date = "2026-
|
|
79094
|
-
__info__.hash = "
|
|
79069
|
+
__info__.version = "19.1.22";
|
|
79070
|
+
__info__.date = "2026-06-06T06:23:19.222Z";
|
|
79071
|
+
__info__.hash = "97a02db";
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.22
|
|
6
|
+
* @date 2026-06-06T06:23:19.222Z
|
|
7
|
+
* @hash 97a02db
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -4304,6 +4304,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
4304
4304
|
//#endregion
|
|
4305
4305
|
//#region src/helpers/format/format_tokenizer.ts
|
|
4306
4306
|
function tokenizeFormat(str) {
|
|
4307
|
+
str = str.replace(/\s/g, " ");
|
|
4307
4308
|
const chars = new TokenizingChars(str);
|
|
4308
4309
|
const result = [];
|
|
4309
4310
|
let currentFormatPart = [];
|
|
@@ -7028,40 +7029,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
7028
7029
|
}
|
|
7029
7030
|
};
|
|
7030
7031
|
|
|
7031
|
-
//#endregion
|
|
7032
|
-
//#region src/registry.ts
|
|
7033
|
-
var Registry$1 = class {
|
|
7034
|
-
content = {};
|
|
7035
|
-
add(key, value) {
|
|
7036
|
-
if (key in this.content) throw new Error(`${key} is already present in this registry!`);
|
|
7037
|
-
return this.replace(key, value);
|
|
7038
|
-
}
|
|
7039
|
-
replace(key, value) {
|
|
7040
|
-
this.content[key] = value;
|
|
7041
|
-
return this;
|
|
7042
|
-
}
|
|
7043
|
-
get(key) {
|
|
7044
|
-
const content = this.content[key];
|
|
7045
|
-
if (!content && !(key in this.content)) throw new Error(`Cannot find ${key} in this registry!`);
|
|
7046
|
-
return content;
|
|
7047
|
-
}
|
|
7048
|
-
contains(key) {
|
|
7049
|
-
return key in this.content;
|
|
7050
|
-
}
|
|
7051
|
-
getAll() {
|
|
7052
|
-
return Object.values(this.content);
|
|
7053
|
-
}
|
|
7054
|
-
getKeys() {
|
|
7055
|
-
return Object.keys(this.content);
|
|
7056
|
-
}
|
|
7057
|
-
remove(key) {
|
|
7058
|
-
delete this.content[key];
|
|
7059
|
-
}
|
|
7060
|
-
};
|
|
7061
|
-
|
|
7062
7032
|
//#endregion
|
|
7063
7033
|
//#region src/helpers/figures/charts/chart_js_extension.ts
|
|
7064
|
-
const chartJsExtensionRegistry = new Registry
|
|
7034
|
+
const chartJsExtensionRegistry = new Registry();
|
|
7065
7035
|
function areChartJSExtensionsLoaded() {
|
|
7066
7036
|
return globalThis.Chart ? !!globalThis.Chart.registry.plugins.get("chartShowValuesPlugin") : true;
|
|
7067
7037
|
}
|
|
@@ -26309,7 +26279,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
26309
26279
|
//#endregion
|
|
26310
26280
|
//#region src/functions/function_registry.ts
|
|
26311
26281
|
const functionNameRegex = /^[A-Z0-9\_\.]+$/;
|
|
26312
|
-
var FunctionRegistry = class extends Registry
|
|
26282
|
+
var FunctionRegistry = class extends Registry {
|
|
26313
26283
|
mapping = {};
|
|
26314
26284
|
add(name, addDescr) {
|
|
26315
26285
|
name = name.toUpperCase();
|
|
@@ -35799,7 +35769,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
35799
35769
|
|
|
35800
35770
|
//#endregion
|
|
35801
35771
|
//#region src/migrations/migration_steps.ts
|
|
35802
|
-
const migrationStepRegistry = new Registry
|
|
35772
|
+
const migrationStepRegistry = new Registry();
|
|
35803
35773
|
migrationStepRegistry.add("0.1", { migrate(data) {
|
|
35804
35774
|
if (data.sheets && data.sheets[0]) data.activeSheet = data.sheets[0].name;
|
|
35805
35775
|
return data;
|
|
@@ -36961,11 +36931,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36961
36931
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
36962
36932
|
};
|
|
36963
36933
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
36964
|
-
const
|
|
36965
|
-
const table = env.model.getters.getTable(position);
|
|
36934
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
36966
36935
|
if (!table) return;
|
|
36967
36936
|
env.model.dispatch("REMOVE_TABLE", {
|
|
36968
|
-
sheetId:
|
|
36937
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
36969
36938
|
target: [table.range.zone]
|
|
36970
36939
|
});
|
|
36971
36940
|
};
|
|
@@ -39334,7 +39303,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
39334
39303
|
|
|
39335
39304
|
//#endregion
|
|
39336
39305
|
//#region src/helpers/pivot/pivot_registry.ts
|
|
39337
|
-
const pivotRegistry = new Registry
|
|
39306
|
+
const pivotRegistry = new Registry();
|
|
39338
39307
|
const dateGranularities = [
|
|
39339
39308
|
"year",
|
|
39340
39309
|
"quarter_number",
|
|
@@ -61263,9 +61232,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61263
61232
|
this.refreshPivot(cmd.id);
|
|
61264
61233
|
break;
|
|
61265
61234
|
case "ADD_PIVOT":
|
|
61235
|
+
this.unusedPivotsInFormulas?.push(cmd.pivotId);
|
|
61266
61236
|
this.setupPivot(cmd.pivotId);
|
|
61267
61237
|
break;
|
|
61268
61238
|
case "DUPLICATE_PIVOT":
|
|
61239
|
+
this.unusedPivotsInFormulas?.push(cmd.newPivotId);
|
|
61269
61240
|
this.setupPivot(cmd.newPivotId);
|
|
61270
61241
|
break;
|
|
61271
61242
|
case "UPDATE_PIVOT":
|
|
@@ -61457,8 +61428,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61457
61428
|
}
|
|
61458
61429
|
}
|
|
61459
61430
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
61460
|
-
const pivot = this.getters.
|
|
61461
|
-
for (const measure of pivot.
|
|
61431
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
61432
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
61462
61433
|
const { sheetId } = measure.computedBy;
|
|
61463
61434
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
61464
61435
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -63138,7 +63109,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63138
63109
|
"REMOVE_TABLE",
|
|
63139
63110
|
"RESIZE_TABLE",
|
|
63140
63111
|
"CREATE_TABLE_STYLE",
|
|
63141
|
-
"REMOVE_TABLE_STYLE"
|
|
63112
|
+
"REMOVE_TABLE_STYLE",
|
|
63113
|
+
"DELETE_CONTENT"
|
|
63142
63114
|
]);
|
|
63143
63115
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
63144
63116
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -68346,10 +68318,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
68346
68318
|
|
|
68347
68319
|
//#endregion
|
|
68348
68320
|
//#region src/plugins/index.ts
|
|
68349
|
-
const corePluginRegistry = new Registry
|
|
68350
|
-
const featurePluginRegistry = new Registry
|
|
68351
|
-
const statefulUIPluginRegistry = new Registry
|
|
68352
|
-
const coreViewsPluginRegistry = new Registry
|
|
68321
|
+
const corePluginRegistry = new Registry().add("settings", SettingsPlugin).add("sheet", SheetPlugin).add("header grouping", HeaderGroupingPlugin).add("header visibility", HeaderVisibilityPlugin).add("tables", TablePlugin).add("dataValidation", DataValidationPlugin).add("cell", CellPlugin).add("merge", MergePlugin).add("style", StylePlugin).add("headerSize", HeaderSizePlugin).add("borders", BordersPlugin).add("conditional formatting", ConditionalFormatPlugin).add("figures", FigurePlugin).add("chart", ChartPlugin).add("carousel", CarouselPlugin).add("image", ImagePlugin).add("pivot_core", PivotCorePlugin).add("spreadsheet_pivot_core", SpreadsheetPivotCorePlugin).add("tableStyle", TableStylePlugin);
|
|
68322
|
+
const featurePluginRegistry = new Registry().add("ui_sheet", SheetUIPlugin).add("ui_options", UIOptionsPlugin).add("autofill", AutofillPlugin).add("sort", SortPlugin).add("automatic_sum", AutomaticSumPlugin).add("format", FormatPlugin).add("insert_pivot", InsertPivotPlugin).add("pivot_presence", PivotPresencePlugin).add("split_to_columns", SplitToColumnsPlugin).add("subtotal_evaluation", SubtotalEvaluationPlugin).add("collaborative", CollaborativePlugin).add("history", HistoryPlugin).add("table_autofill", TableAutofillPlugin).add("table_ui_resize", TableResizeUI).add("datavalidation_insert", DataValidationInsertionPlugin).add("checkbox_toggle", CheckboxTogglePlugin).add("dynamic_translate", DynamicTranslate).add("geo_features", GeoFeaturePlugin).add("data_cleanup", DataCleanupPlugin);
|
|
68323
|
+
const statefulUIPluginRegistry = new Registry().add("selection", GridSelectionPlugin).add("evaluation_filter", FilterEvaluationPlugin).add("header_visibility_ui", HeaderVisibilityUIPlugin).add("cell_computed_style", CellComputedStylePlugin).add("table_computed_style", TableComputedStylePlugin).add("header_positions", HeaderPositionsUIPlugin).add("viewport", SheetViewPlugin).add("clipboard", ClipboardPlugin).add("carousel_ui", CarouselUIPlugin);
|
|
68324
|
+
const coreViewsPluginRegistry = new Registry().add("evaluation", EvaluationPlugin).add("evaluation_chart", EvaluationChartPlugin).add("evaluation_cf", EvaluationConditionalFormatPlugin).add("row_size", HeaderSizeUIPlugin).add("data_validation_ui", EvaluationDataValidationPlugin).add("dynamic_tables", DynamicTablesPlugin).add("custom_colors", CustomColorsPlugin).add("pivot_ui", PivotUIPlugin).add("cell_icon", CellIconPlugin);
|
|
68353
68325
|
|
|
68354
68326
|
//#endregion
|
|
68355
68327
|
//#region src/registries/auto_completes/data_validation_auto_complete.ts
|
|
@@ -74118,6 +74090,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74118
74090
|
`;
|
|
74119
74091
|
}
|
|
74120
74092
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
74093
|
+
const textProperties = [
|
|
74094
|
+
["b", style.bold ? "1" : "0"],
|
|
74095
|
+
["i", style.italic ? "1" : "0"],
|
|
74096
|
+
["sz", fontsize * 100]
|
|
74097
|
+
];
|
|
74121
74098
|
return escapeXml`
|
|
74122
74099
|
<c:tx>
|
|
74123
74100
|
<c:rich>
|
|
@@ -74125,13 +74102,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74125
74102
|
<a:lstStyle />
|
|
74126
74103
|
<a:p>
|
|
74127
74104
|
<a:pPr lvl="0">
|
|
74128
|
-
<a:defRPr
|
|
74105
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
74129
74106
|
${solidFill(fontColor)}
|
|
74130
74107
|
<a:latin typeface="+mn-lt"/>
|
|
74131
74108
|
</a:defRPr>
|
|
74132
74109
|
</a:pPr>
|
|
74133
74110
|
<a:r> <!-- Runs -->
|
|
74134
|
-
<a:rPr
|
|
74111
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
74135
74112
|
<a:t>${text}</a:t>
|
|
74136
74113
|
</a:r>
|
|
74137
74114
|
</a:p>
|
|
@@ -79144,8 +79121,8 @@ exports.stores = stores;
|
|
|
79144
79121
|
exports.tokenColors = tokenColors;
|
|
79145
79122
|
exports.tokenize = tokenize;
|
|
79146
79123
|
|
|
79147
|
-
__info__.version = "19.1.
|
|
79148
|
-
__info__.date = "2026-
|
|
79149
|
-
__info__.hash = "
|
|
79124
|
+
__info__.version = "19.1.22";
|
|
79125
|
+
__info__.date = "2026-06-06T06:23:19.222Z";
|
|
79126
|
+
__info__.hash = "97a02db";
|
|
79150
79127
|
|
|
79151
79128
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|