@odoo/o-spreadsheet 19.2.14 → 19.2.15
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 +36 -54
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +36 -54
- package/dist/o_spreadsheet.iife.js +36 -54
- package/dist/o_spreadsheet.iife.min.js +260 -260
- 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.2.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.15
|
|
6
|
+
* @date 2026-06-06T06:23:14.723Z
|
|
7
|
+
* @hash d29528e
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -4328,6 +4328,7 @@ const DEFAULT_LOCALE = DEFAULT_LOCALES[0];
|
|
|
4328
4328
|
//#endregion
|
|
4329
4329
|
//#region src/helpers/format/format_tokenizer.ts
|
|
4330
4330
|
function tokenizeFormat(str) {
|
|
4331
|
+
str = str.replace(/\s/g, " ");
|
|
4331
4332
|
const chars = new TokenizingChars(str);
|
|
4332
4333
|
const result = [];
|
|
4333
4334
|
let currentFormatPart = [];
|
|
@@ -5504,7 +5505,12 @@ const lockedSheetAllowedCommands = new Set([
|
|
|
5504
5505
|
"SET_ZOOM",
|
|
5505
5506
|
"UPDATE_CAROUSEL_ACTIVE_ITEM",
|
|
5506
5507
|
"DUPLICATE_PIVOT_IN_NEW_SHEET",
|
|
5507
|
-
"UPDATE_FILTER"
|
|
5508
|
+
"UPDATE_FILTER",
|
|
5509
|
+
"ACTIVATE_NEXT_SHEET",
|
|
5510
|
+
"ACTIVATE_PREVIOUS_SHEET",
|
|
5511
|
+
"SCROLL_TO_CELL",
|
|
5512
|
+
"SHIFT_VIEWPORT_DOWN",
|
|
5513
|
+
"SHIFT_VIEWPORT_UP"
|
|
5508
5514
|
]);
|
|
5509
5515
|
const coreTypes = new Set([
|
|
5510
5516
|
"UPDATE_CELL",
|
|
@@ -7083,40 +7089,9 @@ var UuidGenerator = class {
|
|
|
7083
7089
|
}
|
|
7084
7090
|
};
|
|
7085
7091
|
|
|
7086
|
-
//#endregion
|
|
7087
|
-
//#region src/registry.ts
|
|
7088
|
-
var Registry$1 = class {
|
|
7089
|
-
content = {};
|
|
7090
|
-
add(key, value) {
|
|
7091
|
-
if (key in this.content) throw new Error(`${key} is already present in this registry!`);
|
|
7092
|
-
return this.replace(key, value);
|
|
7093
|
-
}
|
|
7094
|
-
replace(key, value) {
|
|
7095
|
-
this.content[key] = value;
|
|
7096
|
-
return this;
|
|
7097
|
-
}
|
|
7098
|
-
get(key) {
|
|
7099
|
-
const content = this.content[key];
|
|
7100
|
-
if (!content && !(key in this.content)) throw new Error(`Cannot find ${key} in this registry!`);
|
|
7101
|
-
return content;
|
|
7102
|
-
}
|
|
7103
|
-
contains(key) {
|
|
7104
|
-
return key in this.content;
|
|
7105
|
-
}
|
|
7106
|
-
getAll() {
|
|
7107
|
-
return Object.values(this.content);
|
|
7108
|
-
}
|
|
7109
|
-
getKeys() {
|
|
7110
|
-
return Object.keys(this.content);
|
|
7111
|
-
}
|
|
7112
|
-
remove(key) {
|
|
7113
|
-
delete this.content[key];
|
|
7114
|
-
}
|
|
7115
|
-
};
|
|
7116
|
-
|
|
7117
7092
|
//#endregion
|
|
7118
7093
|
//#region src/helpers/figures/charts/chart_js_extension.ts
|
|
7119
|
-
const chartJsExtensionRegistry = new Registry
|
|
7094
|
+
const chartJsExtensionRegistry = new Registry();
|
|
7120
7095
|
function areChartJSExtensionsLoaded() {
|
|
7121
7096
|
return globalThis.Chart ? !!globalThis.Chart.registry.plugins.get("chartShowValuesPlugin") : true;
|
|
7122
7097
|
}
|
|
@@ -25711,7 +25686,7 @@ const HYPERLINK = {
|
|
|
25711
25686
|
//#endregion
|
|
25712
25687
|
//#region src/functions/function_registry.ts
|
|
25713
25688
|
const functionNameRegex = /^[A-Z0-9\_\.]+$/;
|
|
25714
|
-
var FunctionRegistry = class extends Registry
|
|
25689
|
+
var FunctionRegistry = class extends Registry {
|
|
25715
25690
|
mapping = {};
|
|
25716
25691
|
add(name, addDescr) {
|
|
25717
25692
|
name = name.toUpperCase();
|
|
@@ -30205,7 +30180,7 @@ const WEEK_START = {
|
|
|
30205
30180
|
|
|
30206
30181
|
//#endregion
|
|
30207
30182
|
//#region src/migrations/migration_steps.ts
|
|
30208
|
-
const migrationStepRegistry = new Registry
|
|
30183
|
+
const migrationStepRegistry = new Registry();
|
|
30209
30184
|
migrationStepRegistry.add("0.1", { migrate(data) {
|
|
30210
30185
|
if (data.sheets && data.sheets[0]) data.activeSheet = data.sheets[0].name;
|
|
30211
30186
|
return data;
|
|
@@ -37528,11 +37503,10 @@ const INSERT_TABLE = (env) => {
|
|
|
37528
37503
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
37529
37504
|
};
|
|
37530
37505
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
37531
|
-
const
|
|
37532
|
-
const table = env.model.getters.getTable(position);
|
|
37506
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
37533
37507
|
if (!table) return;
|
|
37534
37508
|
env.model.dispatch("REMOVE_TABLE", {
|
|
37535
|
-
sheetId:
|
|
37509
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
37536
37510
|
target: [table.range.zone]
|
|
37537
37511
|
});
|
|
37538
37512
|
};
|
|
@@ -45739,7 +45713,7 @@ var SpreadsheetPivot = class {
|
|
|
45739
45713
|
|
|
45740
45714
|
//#endregion
|
|
45741
45715
|
//#region src/helpers/pivot/pivot_registry.ts
|
|
45742
|
-
const pivotRegistry = new Registry
|
|
45716
|
+
const pivotRegistry = new Registry();
|
|
45743
45717
|
const dateGranularities = [
|
|
45744
45718
|
"year",
|
|
45745
45719
|
"quarter_number",
|
|
@@ -63745,9 +63719,11 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63745
63719
|
this.refreshPivot(cmd.id);
|
|
63746
63720
|
break;
|
|
63747
63721
|
case "ADD_PIVOT":
|
|
63722
|
+
this.unusedPivotsInFormulas?.push(cmd.pivotId);
|
|
63748
63723
|
this.setupPivot(cmd.pivotId);
|
|
63749
63724
|
break;
|
|
63750
63725
|
case "DUPLICATE_PIVOT":
|
|
63726
|
+
this.unusedPivotsInFormulas?.push(cmd.newPivotId);
|
|
63751
63727
|
this.setupPivot(cmd.newPivotId);
|
|
63752
63728
|
break;
|
|
63753
63729
|
case "UPDATE_PIVOT":
|
|
@@ -63939,8 +63915,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63939
63915
|
}
|
|
63940
63916
|
}
|
|
63941
63917
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
63942
|
-
const pivot = this.getters.
|
|
63943
|
-
for (const measure of pivot.
|
|
63918
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
63919
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
63944
63920
|
const { sheetId } = measure.computedBy;
|
|
63945
63921
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
63946
63922
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -65680,7 +65656,8 @@ const invalidateTableStyleCommandsSet = new Set([
|
|
|
65680
65656
|
"REMOVE_TABLE",
|
|
65681
65657
|
"RESIZE_TABLE",
|
|
65682
65658
|
"CREATE_TABLE_STYLE",
|
|
65683
|
-
"REMOVE_TABLE_STYLE"
|
|
65659
|
+
"REMOVE_TABLE_STYLE",
|
|
65660
|
+
"DELETE_CONTENT"
|
|
65684
65661
|
]);
|
|
65685
65662
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
65686
65663
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -70965,10 +70942,10 @@ var SheetViewPlugin = class extends UIPlugin {
|
|
|
70965
70942
|
|
|
70966
70943
|
//#endregion
|
|
70967
70944
|
//#region src/plugins/index.ts
|
|
70968
|
-
const corePluginRegistry = new Registry
|
|
70969
|
-
const featurePluginRegistry = new Registry
|
|
70970
|
-
const statefulUIPluginRegistry = new Registry
|
|
70971
|
-
const coreViewsPluginRegistry = new Registry
|
|
70945
|
+
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("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);
|
|
70946
|
+
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);
|
|
70947
|
+
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).add("lock_sheet", LockSheetPlugin);
|
|
70948
|
+
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).add("formula_tracker", FormulaTrackerPlugin);
|
|
70972
70949
|
|
|
70973
70950
|
//#endregion
|
|
70974
70951
|
//#region src/registries/auto_completes/data_validation_auto_complete.ts
|
|
@@ -76852,6 +76829,11 @@ function lineAttributes(params) {
|
|
|
76852
76829
|
`;
|
|
76853
76830
|
}
|
|
76854
76831
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
76832
|
+
const textProperties = [
|
|
76833
|
+
["b", style.bold ? "1" : "0"],
|
|
76834
|
+
["i", style.italic ? "1" : "0"],
|
|
76835
|
+
["sz", fontsize * 100]
|
|
76836
|
+
];
|
|
76855
76837
|
return escapeXml`
|
|
76856
76838
|
<c:tx>
|
|
76857
76839
|
<c:rich>
|
|
@@ -76859,13 +76841,13 @@ function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
|
76859
76841
|
<a:lstStyle />
|
|
76860
76842
|
<a:p>
|
|
76861
76843
|
<a:pPr lvl="0">
|
|
76862
|
-
<a:defRPr
|
|
76844
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
76863
76845
|
${solidFill(fontColor)}
|
|
76864
76846
|
<a:latin typeface="+mn-lt"/>
|
|
76865
76847
|
</a:defRPr>
|
|
76866
76848
|
</a:pPr>
|
|
76867
76849
|
<a:r> <!-- Runs -->
|
|
76868
|
-
<a:rPr
|
|
76850
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
76869
76851
|
<a:t>${text}</a:t>
|
|
76870
76852
|
</a:r>
|
|
76871
76853
|
</a:p>
|
|
@@ -81889,6 +81871,6 @@ exports.stores = stores;
|
|
|
81889
81871
|
exports.tokenColors = tokenColors;
|
|
81890
81872
|
exports.tokenize = tokenize;
|
|
81891
81873
|
|
|
81892
|
-
__info__.version = "19.2.
|
|
81893
|
-
__info__.date = "2026-
|
|
81894
|
-
__info__.hash = "
|
|
81874
|
+
__info__.version = "19.2.15";
|
|
81875
|
+
__info__.date = "2026-06-06T06:23:14.723Z";
|
|
81876
|
+
__info__.hash = "d29528e";
|
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.2.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.15
|
|
6
|
+
* @date 2026-06-06T06:23:16.378Z
|
|
7
|
+
* @hash d29528e
|
|
8
8
|
*/
|
|
9
9
|
:root {
|
|
10
10
|
--os-gray-100: light-dark(#f9fafb, #1b1d26);
|
|
@@ -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.2.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.15
|
|
6
|
+
* @date 2026-06-06T06:23:14.723Z
|
|
7
|
+
* @hash d29528e
|
|
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";
|
|
@@ -4327,6 +4327,7 @@ const DEFAULT_LOCALE = DEFAULT_LOCALES[0];
|
|
|
4327
4327
|
//#endregion
|
|
4328
4328
|
//#region src/helpers/format/format_tokenizer.ts
|
|
4329
4329
|
function tokenizeFormat(str) {
|
|
4330
|
+
str = str.replace(/\s/g, " ");
|
|
4330
4331
|
const chars = new TokenizingChars(str);
|
|
4331
4332
|
const result = [];
|
|
4332
4333
|
let currentFormatPart = [];
|
|
@@ -5503,7 +5504,12 @@ const lockedSheetAllowedCommands = new Set([
|
|
|
5503
5504
|
"SET_ZOOM",
|
|
5504
5505
|
"UPDATE_CAROUSEL_ACTIVE_ITEM",
|
|
5505
5506
|
"DUPLICATE_PIVOT_IN_NEW_SHEET",
|
|
5506
|
-
"UPDATE_FILTER"
|
|
5507
|
+
"UPDATE_FILTER",
|
|
5508
|
+
"ACTIVATE_NEXT_SHEET",
|
|
5509
|
+
"ACTIVATE_PREVIOUS_SHEET",
|
|
5510
|
+
"SCROLL_TO_CELL",
|
|
5511
|
+
"SHIFT_VIEWPORT_DOWN",
|
|
5512
|
+
"SHIFT_VIEWPORT_UP"
|
|
5507
5513
|
]);
|
|
5508
5514
|
const coreTypes = new Set([
|
|
5509
5515
|
"UPDATE_CELL",
|
|
@@ -7082,40 +7088,9 @@ var UuidGenerator = class {
|
|
|
7082
7088
|
}
|
|
7083
7089
|
};
|
|
7084
7090
|
|
|
7085
|
-
//#endregion
|
|
7086
|
-
//#region src/registry.ts
|
|
7087
|
-
var Registry$1 = class {
|
|
7088
|
-
content = {};
|
|
7089
|
-
add(key, value) {
|
|
7090
|
-
if (key in this.content) throw new Error(`${key} is already present in this registry!`);
|
|
7091
|
-
return this.replace(key, value);
|
|
7092
|
-
}
|
|
7093
|
-
replace(key, value) {
|
|
7094
|
-
this.content[key] = value;
|
|
7095
|
-
return this;
|
|
7096
|
-
}
|
|
7097
|
-
get(key) {
|
|
7098
|
-
const content = this.content[key];
|
|
7099
|
-
if (!content && !(key in this.content)) throw new Error(`Cannot find ${key} in this registry!`);
|
|
7100
|
-
return content;
|
|
7101
|
-
}
|
|
7102
|
-
contains(key) {
|
|
7103
|
-
return key in this.content;
|
|
7104
|
-
}
|
|
7105
|
-
getAll() {
|
|
7106
|
-
return Object.values(this.content);
|
|
7107
|
-
}
|
|
7108
|
-
getKeys() {
|
|
7109
|
-
return Object.keys(this.content);
|
|
7110
|
-
}
|
|
7111
|
-
remove(key) {
|
|
7112
|
-
delete this.content[key];
|
|
7113
|
-
}
|
|
7114
|
-
};
|
|
7115
|
-
|
|
7116
7091
|
//#endregion
|
|
7117
7092
|
//#region src/helpers/figures/charts/chart_js_extension.ts
|
|
7118
|
-
const chartJsExtensionRegistry = new Registry
|
|
7093
|
+
const chartJsExtensionRegistry = new Registry();
|
|
7119
7094
|
function areChartJSExtensionsLoaded() {
|
|
7120
7095
|
return globalThis.Chart ? !!globalThis.Chart.registry.plugins.get("chartShowValuesPlugin") : true;
|
|
7121
7096
|
}
|
|
@@ -25710,7 +25685,7 @@ const HYPERLINK = {
|
|
|
25710
25685
|
//#endregion
|
|
25711
25686
|
//#region src/functions/function_registry.ts
|
|
25712
25687
|
const functionNameRegex = /^[A-Z0-9\_\.]+$/;
|
|
25713
|
-
var FunctionRegistry = class extends Registry
|
|
25688
|
+
var FunctionRegistry = class extends Registry {
|
|
25714
25689
|
mapping = {};
|
|
25715
25690
|
add(name, addDescr) {
|
|
25716
25691
|
name = name.toUpperCase();
|
|
@@ -30204,7 +30179,7 @@ const WEEK_START = {
|
|
|
30204
30179
|
|
|
30205
30180
|
//#endregion
|
|
30206
30181
|
//#region src/migrations/migration_steps.ts
|
|
30207
|
-
const migrationStepRegistry = new Registry
|
|
30182
|
+
const migrationStepRegistry = new Registry();
|
|
30208
30183
|
migrationStepRegistry.add("0.1", { migrate(data) {
|
|
30209
30184
|
if (data.sheets && data.sheets[0]) data.activeSheet = data.sheets[0].name;
|
|
30210
30185
|
return data;
|
|
@@ -37527,11 +37502,10 @@ const INSERT_TABLE = (env) => {
|
|
|
37527
37502
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
37528
37503
|
};
|
|
37529
37504
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
37530
|
-
const
|
|
37531
|
-
const table = env.model.getters.getTable(position);
|
|
37505
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
37532
37506
|
if (!table) return;
|
|
37533
37507
|
env.model.dispatch("REMOVE_TABLE", {
|
|
37534
|
-
sheetId:
|
|
37508
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
37535
37509
|
target: [table.range.zone]
|
|
37536
37510
|
});
|
|
37537
37511
|
};
|
|
@@ -45738,7 +45712,7 @@ var SpreadsheetPivot = class {
|
|
|
45738
45712
|
|
|
45739
45713
|
//#endregion
|
|
45740
45714
|
//#region src/helpers/pivot/pivot_registry.ts
|
|
45741
|
-
const pivotRegistry = new Registry
|
|
45715
|
+
const pivotRegistry = new Registry();
|
|
45742
45716
|
const dateGranularities = [
|
|
45743
45717
|
"year",
|
|
45744
45718
|
"quarter_number",
|
|
@@ -63560,9 +63534,11 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63560
63534
|
this.refreshPivot(cmd.id);
|
|
63561
63535
|
break;
|
|
63562
63536
|
case "ADD_PIVOT":
|
|
63537
|
+
this.unusedPivotsInFormulas?.push(cmd.pivotId);
|
|
63563
63538
|
this.setupPivot(cmd.pivotId);
|
|
63564
63539
|
break;
|
|
63565
63540
|
case "DUPLICATE_PIVOT":
|
|
63541
|
+
this.unusedPivotsInFormulas?.push(cmd.newPivotId);
|
|
63566
63542
|
this.setupPivot(cmd.newPivotId);
|
|
63567
63543
|
break;
|
|
63568
63544
|
case "UPDATE_PIVOT":
|
|
@@ -63754,8 +63730,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63754
63730
|
}
|
|
63755
63731
|
}
|
|
63756
63732
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
63757
|
-
const pivot = this.getters.
|
|
63758
|
-
for (const measure of pivot.
|
|
63733
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
63734
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
63759
63735
|
const { sheetId } = measure.computedBy;
|
|
63760
63736
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
63761
63737
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -65495,7 +65471,8 @@ const invalidateTableStyleCommandsSet = new Set([
|
|
|
65495
65471
|
"REMOVE_TABLE",
|
|
65496
65472
|
"RESIZE_TABLE",
|
|
65497
65473
|
"CREATE_TABLE_STYLE",
|
|
65498
|
-
"REMOVE_TABLE_STYLE"
|
|
65474
|
+
"REMOVE_TABLE_STYLE",
|
|
65475
|
+
"DELETE_CONTENT"
|
|
65499
65476
|
]);
|
|
65500
65477
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
65501
65478
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -70780,10 +70757,10 @@ var SheetViewPlugin = class extends UIPlugin {
|
|
|
70780
70757
|
|
|
70781
70758
|
//#endregion
|
|
70782
70759
|
//#region src/plugins/index.ts
|
|
70783
|
-
const corePluginRegistry = new Registry
|
|
70784
|
-
const featurePluginRegistry = new Registry
|
|
70785
|
-
const statefulUIPluginRegistry = new Registry
|
|
70786
|
-
const coreViewsPluginRegistry = new Registry
|
|
70760
|
+
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("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);
|
|
70761
|
+
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);
|
|
70762
|
+
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).add("lock_sheet", LockSheetPlugin);
|
|
70763
|
+
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).add("formula_tracker", FormulaTrackerPlugin);
|
|
70787
70764
|
|
|
70788
70765
|
//#endregion
|
|
70789
70766
|
//#region src/registries/auto_completes/data_validation_auto_complete.ts
|
|
@@ -76667,6 +76644,11 @@ function lineAttributes(params) {
|
|
|
76667
76644
|
`;
|
|
76668
76645
|
}
|
|
76669
76646
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
76647
|
+
const textProperties = [
|
|
76648
|
+
["b", style.bold ? "1" : "0"],
|
|
76649
|
+
["i", style.italic ? "1" : "0"],
|
|
76650
|
+
["sz", fontsize * 100]
|
|
76651
|
+
];
|
|
76670
76652
|
return escapeXml`
|
|
76671
76653
|
<c:tx>
|
|
76672
76654
|
<c:rich>
|
|
@@ -76674,13 +76656,13 @@ function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
|
76674
76656
|
<a:lstStyle />
|
|
76675
76657
|
<a:p>
|
|
76676
76658
|
<a:pPr lvl="0">
|
|
76677
|
-
<a:defRPr
|
|
76659
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
76678
76660
|
${solidFill(fontColor)}
|
|
76679
76661
|
<a:latin typeface="+mn-lt"/>
|
|
76680
76662
|
</a:defRPr>
|
|
76681
76663
|
</a:pPr>
|
|
76682
76664
|
<a:r> <!-- Runs -->
|
|
76683
|
-
<a:rPr
|
|
76665
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
76684
76666
|
<a:t>${text}</a:t>
|
|
76685
76667
|
</a:r>
|
|
76686
76668
|
</a:p>
|
|
@@ -81646,6 +81628,6 @@ const chartHelpers = {
|
|
|
81646
81628
|
//#endregion
|
|
81647
81629
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CompiledFormula, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, canExecuteInReadonly, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, isCoreCommand, isSheetDependent, iterateAstNodes, links, load, lockedSheetAllowedCommands, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
81648
81630
|
|
|
81649
|
-
__info__.version = "19.2.
|
|
81650
|
-
__info__.date = "2026-
|
|
81651
|
-
__info__.hash = "
|
|
81631
|
+
__info__.version = "19.2.15";
|
|
81632
|
+
__info__.date = "2026-06-06T06:23:14.723Z";
|
|
81633
|
+
__info__.hash = "d29528e";
|
|
@@ -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.2.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.15
|
|
6
|
+
* @date 2026-06-06T06:23:14.723Z
|
|
7
|
+
* @hash d29528e
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -4329,6 +4329,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
4329
4329
|
//#endregion
|
|
4330
4330
|
//#region src/helpers/format/format_tokenizer.ts
|
|
4331
4331
|
function tokenizeFormat(str) {
|
|
4332
|
+
str = str.replace(/\s/g, " ");
|
|
4332
4333
|
const chars = new TokenizingChars(str);
|
|
4333
4334
|
const result = [];
|
|
4334
4335
|
let currentFormatPart = [];
|
|
@@ -5505,7 +5506,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
5505
5506
|
"SET_ZOOM",
|
|
5506
5507
|
"UPDATE_CAROUSEL_ACTIVE_ITEM",
|
|
5507
5508
|
"DUPLICATE_PIVOT_IN_NEW_SHEET",
|
|
5508
|
-
"UPDATE_FILTER"
|
|
5509
|
+
"UPDATE_FILTER",
|
|
5510
|
+
"ACTIVATE_NEXT_SHEET",
|
|
5511
|
+
"ACTIVATE_PREVIOUS_SHEET",
|
|
5512
|
+
"SCROLL_TO_CELL",
|
|
5513
|
+
"SHIFT_VIEWPORT_DOWN",
|
|
5514
|
+
"SHIFT_VIEWPORT_UP"
|
|
5509
5515
|
]);
|
|
5510
5516
|
const coreTypes = new Set([
|
|
5511
5517
|
"UPDATE_CELL",
|
|
@@ -7084,40 +7090,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
7084
7090
|
}
|
|
7085
7091
|
};
|
|
7086
7092
|
|
|
7087
|
-
//#endregion
|
|
7088
|
-
//#region src/registry.ts
|
|
7089
|
-
var Registry$1 = class {
|
|
7090
|
-
content = {};
|
|
7091
|
-
add(key, value) {
|
|
7092
|
-
if (key in this.content) throw new Error(`${key} is already present in this registry!`);
|
|
7093
|
-
return this.replace(key, value);
|
|
7094
|
-
}
|
|
7095
|
-
replace(key, value) {
|
|
7096
|
-
this.content[key] = value;
|
|
7097
|
-
return this;
|
|
7098
|
-
}
|
|
7099
|
-
get(key) {
|
|
7100
|
-
const content = this.content[key];
|
|
7101
|
-
if (!content && !(key in this.content)) throw new Error(`Cannot find ${key} in this registry!`);
|
|
7102
|
-
return content;
|
|
7103
|
-
}
|
|
7104
|
-
contains(key) {
|
|
7105
|
-
return key in this.content;
|
|
7106
|
-
}
|
|
7107
|
-
getAll() {
|
|
7108
|
-
return Object.values(this.content);
|
|
7109
|
-
}
|
|
7110
|
-
getKeys() {
|
|
7111
|
-
return Object.keys(this.content);
|
|
7112
|
-
}
|
|
7113
|
-
remove(key) {
|
|
7114
|
-
delete this.content[key];
|
|
7115
|
-
}
|
|
7116
|
-
};
|
|
7117
|
-
|
|
7118
7093
|
//#endregion
|
|
7119
7094
|
//#region src/helpers/figures/charts/chart_js_extension.ts
|
|
7120
|
-
const chartJsExtensionRegistry = new Registry
|
|
7095
|
+
const chartJsExtensionRegistry = new Registry();
|
|
7121
7096
|
function areChartJSExtensionsLoaded() {
|
|
7122
7097
|
return globalThis.Chart ? !!globalThis.Chart.registry.plugins.get("chartShowValuesPlugin") : true;
|
|
7123
7098
|
}
|
|
@@ -25712,7 +25687,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
25712
25687
|
//#endregion
|
|
25713
25688
|
//#region src/functions/function_registry.ts
|
|
25714
25689
|
const functionNameRegex = /^[A-Z0-9\_\.]+$/;
|
|
25715
|
-
var FunctionRegistry = class extends Registry
|
|
25690
|
+
var FunctionRegistry = class extends Registry {
|
|
25716
25691
|
mapping = {};
|
|
25717
25692
|
add(name, addDescr) {
|
|
25718
25693
|
name = name.toUpperCase();
|
|
@@ -30206,7 +30181,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30206
30181
|
|
|
30207
30182
|
//#endregion
|
|
30208
30183
|
//#region src/migrations/migration_steps.ts
|
|
30209
|
-
const migrationStepRegistry = new Registry
|
|
30184
|
+
const migrationStepRegistry = new Registry();
|
|
30210
30185
|
migrationStepRegistry.add("0.1", { migrate(data) {
|
|
30211
30186
|
if (data.sheets && data.sheets[0]) data.activeSheet = data.sheets[0].name;
|
|
30212
30187
|
return data;
|
|
@@ -37529,11 +37504,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
37529
37504
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
37530
37505
|
};
|
|
37531
37506
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
37532
|
-
const
|
|
37533
|
-
const table = env.model.getters.getTable(position);
|
|
37507
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
37534
37508
|
if (!table) return;
|
|
37535
37509
|
env.model.dispatch("REMOVE_TABLE", {
|
|
37536
|
-
sheetId:
|
|
37510
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
37537
37511
|
target: [table.range.zone]
|
|
37538
37512
|
});
|
|
37539
37513
|
};
|
|
@@ -45740,7 +45714,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
45740
45714
|
|
|
45741
45715
|
//#endregion
|
|
45742
45716
|
//#region src/helpers/pivot/pivot_registry.ts
|
|
45743
|
-
const pivotRegistry = new Registry
|
|
45717
|
+
const pivotRegistry = new Registry();
|
|
45744
45718
|
const dateGranularities = [
|
|
45745
45719
|
"year",
|
|
45746
45720
|
"quarter_number",
|
|
@@ -63562,9 +63536,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63562
63536
|
this.refreshPivot(cmd.id);
|
|
63563
63537
|
break;
|
|
63564
63538
|
case "ADD_PIVOT":
|
|
63539
|
+
this.unusedPivotsInFormulas?.push(cmd.pivotId);
|
|
63565
63540
|
this.setupPivot(cmd.pivotId);
|
|
63566
63541
|
break;
|
|
63567
63542
|
case "DUPLICATE_PIVOT":
|
|
63543
|
+
this.unusedPivotsInFormulas?.push(cmd.newPivotId);
|
|
63568
63544
|
this.setupPivot(cmd.newPivotId);
|
|
63569
63545
|
break;
|
|
63570
63546
|
case "UPDATE_PIVOT":
|
|
@@ -63756,8 +63732,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63756
63732
|
}
|
|
63757
63733
|
}
|
|
63758
63734
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
63759
|
-
const pivot = this.getters.
|
|
63760
|
-
for (const measure of pivot.
|
|
63735
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
63736
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
63761
63737
|
const { sheetId } = measure.computedBy;
|
|
63762
63738
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
63763
63739
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -65497,7 +65473,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65497
65473
|
"REMOVE_TABLE",
|
|
65498
65474
|
"RESIZE_TABLE",
|
|
65499
65475
|
"CREATE_TABLE_STYLE",
|
|
65500
|
-
"REMOVE_TABLE_STYLE"
|
|
65476
|
+
"REMOVE_TABLE_STYLE",
|
|
65477
|
+
"DELETE_CONTENT"
|
|
65501
65478
|
]);
|
|
65502
65479
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
65503
65480
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -70782,10 +70759,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
70782
70759
|
|
|
70783
70760
|
//#endregion
|
|
70784
70761
|
//#region src/plugins/index.ts
|
|
70785
|
-
const corePluginRegistry = new Registry
|
|
70786
|
-
const featurePluginRegistry = new Registry
|
|
70787
|
-
const statefulUIPluginRegistry = new Registry
|
|
70788
|
-
const coreViewsPluginRegistry = new Registry
|
|
70762
|
+
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("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);
|
|
70763
|
+
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);
|
|
70764
|
+
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).add("lock_sheet", LockSheetPlugin);
|
|
70765
|
+
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).add("formula_tracker", FormulaTrackerPlugin);
|
|
70789
70766
|
|
|
70790
70767
|
//#endregion
|
|
70791
70768
|
//#region src/registries/auto_completes/data_validation_auto_complete.ts
|
|
@@ -76669,6 +76646,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76669
76646
|
`;
|
|
76670
76647
|
}
|
|
76671
76648
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
76649
|
+
const textProperties = [
|
|
76650
|
+
["b", style.bold ? "1" : "0"],
|
|
76651
|
+
["i", style.italic ? "1" : "0"],
|
|
76652
|
+
["sz", fontsize * 100]
|
|
76653
|
+
];
|
|
76672
76654
|
return escapeXml`
|
|
76673
76655
|
<c:tx>
|
|
76674
76656
|
<c:rich>
|
|
@@ -76676,13 +76658,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76676
76658
|
<a:lstStyle />
|
|
76677
76659
|
<a:p>
|
|
76678
76660
|
<a:pPr lvl="0">
|
|
76679
|
-
<a:defRPr
|
|
76661
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
76680
76662
|
${solidFill(fontColor)}
|
|
76681
76663
|
<a:latin typeface="+mn-lt"/>
|
|
76682
76664
|
</a:defRPr>
|
|
76683
76665
|
</a:pPr>
|
|
76684
76666
|
<a:r> <!-- Runs -->
|
|
76685
|
-
<a:rPr
|
|
76667
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
76686
76668
|
<a:t>${text}</a:t>
|
|
76687
76669
|
</a:r>
|
|
76688
76670
|
</a:p>
|
|
@@ -81706,8 +81688,8 @@ exports.stores = stores;
|
|
|
81706
81688
|
exports.tokenColors = tokenColors;
|
|
81707
81689
|
exports.tokenize = tokenize;
|
|
81708
81690
|
|
|
81709
|
-
__info__.version = "19.2.
|
|
81710
|
-
__info__.date = "2026-
|
|
81711
|
-
__info__.hash = "
|
|
81691
|
+
__info__.version = "19.2.15";
|
|
81692
|
+
__info__.date = "2026-06-06T06:23:14.723Z";
|
|
81693
|
+
__info__.hash = "d29528e";
|
|
81712
81694
|
|
|
81713
81695
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|