@odoo/o-spreadsheet 16.0.33 → 16.0.34
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.
|
@@ -5928,17 +5928,20 @@ rowMenuRegistry
|
|
|
5928
5928
|
});
|
|
5929
5929
|
|
|
5930
5930
|
function interactiveRenameSheet(env, sheetId, errorText) {
|
|
5931
|
+
if (env.model.getters.isReadonly()) {
|
|
5932
|
+
return;
|
|
5933
|
+
}
|
|
5931
5934
|
const placeholder = env.model.getters.getSheetName(sheetId);
|
|
5932
5935
|
const title = _lt("Rename Sheet");
|
|
5933
5936
|
const callback = (name) => {
|
|
5934
5937
|
if (name === null || name === placeholder) {
|
|
5935
5938
|
return;
|
|
5936
5939
|
}
|
|
5937
|
-
if (name === "") {
|
|
5938
|
-
interactiveRenameSheet(env, sheetId, _lt("The sheet name cannot be empty."));
|
|
5939
|
-
}
|
|
5940
5940
|
const result = env.model.dispatch("RENAME_SHEET", { sheetId, name });
|
|
5941
5941
|
if (!result.isSuccessful) {
|
|
5942
|
+
if (result.reasons.includes(10 /* CommandResult.MissingSheetName */)) {
|
|
5943
|
+
interactiveRenameSheet(env, sheetId, _lt("The sheet name cannot be empty."));
|
|
5944
|
+
}
|
|
5942
5945
|
if (result.reasons.includes(11 /* CommandResult.DuplicatedSheetName */)) {
|
|
5943
5946
|
interactiveRenameSheet(env, sheetId, _lt("A sheet with the name %s already exists. Please select another name.", name));
|
|
5944
5947
|
}
|
|
@@ -43271,6 +43274,6 @@ exports.setTranslationMethod = setTranslationMethod;
|
|
|
43271
43274
|
exports.tokenize = tokenize;
|
|
43272
43275
|
|
|
43273
43276
|
|
|
43274
|
-
__info__.version = '16.0.
|
|
43275
|
-
__info__.date = '2024-
|
|
43276
|
-
__info__.hash = '
|
|
43277
|
+
__info__.version = '16.0.34';
|
|
43278
|
+
__info__.date = '2024-03-12T07:54:05.304Z';
|
|
43279
|
+
__info__.hash = 'e923ddd';
|
|
@@ -5924,17 +5924,20 @@ rowMenuRegistry
|
|
|
5924
5924
|
});
|
|
5925
5925
|
|
|
5926
5926
|
function interactiveRenameSheet(env, sheetId, errorText) {
|
|
5927
|
+
if (env.model.getters.isReadonly()) {
|
|
5928
|
+
return;
|
|
5929
|
+
}
|
|
5927
5930
|
const placeholder = env.model.getters.getSheetName(sheetId);
|
|
5928
5931
|
const title = _lt("Rename Sheet");
|
|
5929
5932
|
const callback = (name) => {
|
|
5930
5933
|
if (name === null || name === placeholder) {
|
|
5931
5934
|
return;
|
|
5932
5935
|
}
|
|
5933
|
-
if (name === "") {
|
|
5934
|
-
interactiveRenameSheet(env, sheetId, _lt("The sheet name cannot be empty."));
|
|
5935
|
-
}
|
|
5936
5936
|
const result = env.model.dispatch("RENAME_SHEET", { sheetId, name });
|
|
5937
5937
|
if (!result.isSuccessful) {
|
|
5938
|
+
if (result.reasons.includes(10 /* CommandResult.MissingSheetName */)) {
|
|
5939
|
+
interactiveRenameSheet(env, sheetId, _lt("The sheet name cannot be empty."));
|
|
5940
|
+
}
|
|
5938
5941
|
if (result.reasons.includes(11 /* CommandResult.DuplicatedSheetName */)) {
|
|
5939
5942
|
interactiveRenameSheet(env, sheetId, _lt("A sheet with the name %s already exists. Please select another name.", name));
|
|
5940
5943
|
}
|
|
@@ -43239,6 +43242,6 @@ function addFunction(functionName, functionDescription) {
|
|
|
43239
43242
|
export { AbstractChart, CommandResult, CorePlugin, DATETIME_FORMAT, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, astToFormula, cellTypes, compile, components, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, invalidateEvaluationCommands, load, parse, readonlyAllowedCommands, registries, setTranslationMethod, tokenize };
|
|
43240
43243
|
|
|
43241
43244
|
|
|
43242
|
-
__info__.version = '16.0.
|
|
43243
|
-
__info__.date = '2024-
|
|
43244
|
-
__info__.hash = '
|
|
43245
|
+
__info__.version = '16.0.34';
|
|
43246
|
+
__info__.date = '2024-03-12T07:54:05.304Z';
|
|
43247
|
+
__info__.hash = 'e923ddd';
|
|
@@ -5925,17 +5925,20 @@
|
|
|
5925
5925
|
});
|
|
5926
5926
|
|
|
5927
5927
|
function interactiveRenameSheet(env, sheetId, errorText) {
|
|
5928
|
+
if (env.model.getters.isReadonly()) {
|
|
5929
|
+
return;
|
|
5930
|
+
}
|
|
5928
5931
|
const placeholder = env.model.getters.getSheetName(sheetId);
|
|
5929
5932
|
const title = _lt("Rename Sheet");
|
|
5930
5933
|
const callback = (name) => {
|
|
5931
5934
|
if (name === null || name === placeholder) {
|
|
5932
5935
|
return;
|
|
5933
5936
|
}
|
|
5934
|
-
if (name === "") {
|
|
5935
|
-
interactiveRenameSheet(env, sheetId, _lt("The sheet name cannot be empty."));
|
|
5936
|
-
}
|
|
5937
5937
|
const result = env.model.dispatch("RENAME_SHEET", { sheetId, name });
|
|
5938
5938
|
if (!result.isSuccessful) {
|
|
5939
|
+
if (result.reasons.includes(10 /* CommandResult.MissingSheetName */)) {
|
|
5940
|
+
interactiveRenameSheet(env, sheetId, _lt("The sheet name cannot be empty."));
|
|
5941
|
+
}
|
|
5939
5942
|
if (result.reasons.includes(11 /* CommandResult.DuplicatedSheetName */)) {
|
|
5940
5943
|
interactiveRenameSheet(env, sheetId, _lt("A sheet with the name %s already exists. Please select another name.", name));
|
|
5941
5944
|
}
|
|
@@ -43270,9 +43273,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
|
|
|
43270
43273
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
43271
43274
|
|
|
43272
43275
|
|
|
43273
|
-
__info__.version = '16.0.
|
|
43274
|
-
__info__.date = '2024-
|
|
43275
|
-
__info__.hash = '
|
|
43276
|
+
__info__.version = '16.0.34';
|
|
43277
|
+
__info__.date = '2024-03-12T07:54:05.304Z';
|
|
43278
|
+
__info__.hash = 'e923ddd';
|
|
43276
43279
|
|
|
43277
43280
|
|
|
43278
43281
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
|
-
`;class Wn extends t.Component{constructor(){super(...arguments),this.menuItems=Hn.getAll(),this.state=t.useState(this.defaultState),this.menu=t.useState({isOpen:!1}),this.linkEditorRef=t.useRef("linkEditor"),this.position=Dn(this.linkEditorRef),this.urlInput=t.useRef("urlInput")}setup(){t.onMounted((()=>{var e;return null===(e=this.urlInput.el)||void 0===e?void 0:e.focus()}))}get defaultState(){const{col:e,row:t}=this.props.cellPosition,i=this.env.model.getters.getActiveSheetId(),n=this.env.model.getters.getCell(i,e,t);return(null==n?void 0:n.isLink())?{link:{url:n.link.url,label:n.formattedValue},urlRepresentation:n.urlRepresentation,isUrlEditable:n.isUrlEditable}:{link:{url:"",label:(null==n?void 0:n.formattedValue)||""},isUrlEditable:!0,urlRepresentation:""}}get menuPosition(){return{x:this.position.x+320-12-2,y:this.position.y+100}}onSpecialLink(e){const{detail:t}=e;this.state.link.url=t.link.url,this.state.link.label=t.link.label,this.state.isUrlEditable=t.isUrlEditable,this.state.urlRepresentation=t.urlRepresentation}openMenu(){this.menu.isOpen=!0}removeLink(){this.state.link.url="",this.state.urlRepresentation="",this.state.isUrlEditable=!0}save(){var e,t;const{col:i,row:n}=this.props.cellPosition,o=this.state.link.label||this.state.link.url;this.env.model.dispatch("UPDATE_CELL",{col:i,row:n,sheetId:this.env.model.getters.getActiveSheetId(),content:We(o,this.state.link.url)}),null===(t=(e=this.props).onClosed)||void 0===t||t.call(e)}cancel(){var e,t;null===(t=(e=this.props).onClosed)||void 0===t||t.call(e)}onKeyDown(e){switch(e.key){case"Enter":this.state.link.url&&this.save();break;case"Escape":this.cancel()}}}Wn.template="o-spreadsheet-LinkEditor",Wn.size={width:340,height:180},Wn.components={Menu:$n};const Gn={onOpen:(e,t)=>({isOpen:!0,props:{cellPosition:e},Component:Wn,cellCorner:"BottomLeft"})},qn=new Ji;qn.add("ErrorToolTip",wn).add("LinkCell",Pn).add("LinkEditor",Gn).add("FilterMenu",In);const Zn=new Ji,jn=new Ji,Yn=new Ji,Xn=(new Ji).add("ADD_COLUMNS_ROWS",(function(e){const t=[];let i=e.base;"after"===e.position&&i++;for(let n=0;n<e.quantity;n++)t.push(n+i);return[{type:"REMOVE_COLUMNS_ROWS",dimension:e.dimension,elements:t,sheetId:e.sheetId}]})).add("REMOVE_COLUMNS_ROWS",(function(e){const t=[],i=[...e.elements].sort(((e,t)=>e-t));for(let n of Le(i)){const i=0===n[0]?0:n[0]-1,o=0===n[0]?"before":"after";t.push({type:"ADD_COLUMNS_ROWS",dimension:e.dimension,quantity:n.length,base:i,sheetId:e.sheetId,position:o})}return t})).add("ADD_MERGE",(function(e){return[{type:"REMOVE_MERGE",sheetId:e.sheetId,target:e.target}]})).add("REMOVE_MERGE",(function(e){return[{type:"ADD_MERGE",sheetId:e.sheetId,target:e.target}]})).add("CREATE_SHEET",(function(e){return[{type:"DELETE_SHEET",sheetId:e.sheetId}]})).add("DELETE_SHEET",(function(e){return[{type:"CREATE_SHEET",sheetId:e.sheetId,position:1}]})).add("DUPLICATE_SHEET",(function(e){return[{type:"DELETE_SHEET",sheetId:e.sheetIdTo}]})).add("CREATE_FIGURE",(function(e){return[{type:"DELETE_FIGURE",id:e.figure.id,sheetId:e.sheetId}]})).add("CREATE_CHART",(function(e){return[{type:"DELETE_FIGURE",id:e.id,sheetId:e.sheetId}]})).add("HIDE_COLUMNS_ROWS",(function(e){return[{type:"UNHIDE_COLUMNS_ROWS",sheetId:e.sheetId,dimension:e.dimension,elements:e.elements}]})).add("UNHIDE_COLUMNS_ROWS",(function(e){return[{type:"HIDE_COLUMNS_ROWS",sheetId:e.sheetId,dimension:e.dimension,elements:e.elements}]}));for(const e of cn.values())Xn.contains(e)||Xn.add(e,Kn);function Kn(e){return[e]}const Qn=[rn.number,rn.error,rn.text,rn.boolean];function Jn(e,t){return{index:t,type:e?e.evaluated.type:rn.empty,value:e?e.evaluated.value:""}}function eo(e,t,i,n,o){let s=dn.Success,a=n.right>n.left;if(e.model.getters.doesIntersectMerge(t,n)){let i;a=!1;for(let o=n.top;o<=n.bottom;o++){i=[];for(let r=n.left;r<=n.right;r++){let n=e.model.getters.getMerge(t,r,o);n&&!i.includes(n.id.toString())&&i.push(n.id.toString())}if(i.length>=2){a=!0;break}}}const{col:l,row:c}=i;if(a)s=e.model.dispatch("SORT_CELLS",{sheetId:t,col:l,row:c,zone:n,sortDirection:o});else{const i=e.model.getters.getContiguousZone(t,n);Li(i,n)?s=e.model.dispatch("SORT_CELLS",{sheetId:t,col:l,row:c,zone:n,sortDirection:o}):e.askConfirmation(r("We found data next to your selection. Since this data was not selected, it will not be sorted. Do you want to extend your selection?"),(()=>{n=i,s=e.model.dispatch("SORT_CELLS",{sheetId:t,col:l,row:c,zone:n,sortDirection:o})}),(()=>{s=e.model.dispatch("SORT_CELLS",{sheetId:t,col:l,row:c,zone:n,sortDirection:o})}))}if(s.isCancelledBecause(63)){const{col:t,row:o}=i;e.model.selection.selectZone({cell:{col:t,row:o},zone:n}),e.raiseError(r("Cannot sort. To sort, select only cells or only merges that have the same size."))}}function to(e){const t=e.model.dispatch("CUT");t.isSuccessful||t.isCancelledBecause(19)&&e.raiseError(r("This operation is not allowed with multiple selections."))}const io={filterOverlap:r("You cannot create overlapping filters."),nonContinuousTargets:r("A filter can only be created on a continuous selection."),mergeInFilter:r("You can't create a filter over a range that contains a merge.")};function no(e,t,i){const n=e.model.dispatch("CREATE_FILTER_TABLE",{target:i,sheetId:t});n.isCancelledBecause(78)?e.raiseError(io.filterOverlap):n.isCancelledBecause(80)?e.raiseError(io.mergeInFilter):n.isCancelledBecause(81)&&e.raiseError(io.nonContinuousTargets)}const oo={wrongPasteSelection:r("This operation is not allowed with multiple selections."),willRemoveExistingMerge:r("This operation is not possible due to a merge. Please remove the merges first than try again."),wrongFigurePasteOption:r("Cannot do a special paste of a figure."),frozenPaneOverlap:r("Cannot paste merged cells over a frozen pane.")};function ro(e,t){t.isSuccessful||(t.reasons.includes(20)?e.raiseError(oo.wrongPasteSelection):t.reasons.includes(2)?e.raiseError(oo.willRemoveExistingMerge):t.reasons.includes(22)?e.raiseError(oo.wrongFigurePasteOption):t.reasons.includes(75)&&e.raiseError(oo.frozenPaneOverlap))}function so(e,t,i){const n=e.model.dispatch("PASTE",{target:t,pasteOption:i});ro(e,n)}function ao(e,t,i){const n=e.model.dispatch("PASTE_FROM_OS_CLIPBOARD",{target:t,text:i});ro(e,n)}function lo(e){const t=e.model.getters.getActiveCols();if(t.size)return t.size;{const t=e.model.getters.getSelectedZones()[0];return t.right-t.left+1}}function co(e){const t=e.model.getters.getActiveRows();if(t.size)return t.size;{const t=e.model.getters.getSelectedZones()[0];return t.bottom-t.top+1}}function ho(e,t){e.model.dispatch("SET_FORMATTING",{sheetId:e.model.getters.getActiveSheetId(),target:e.model.getters.getSelectedZones(),format:t})}function uo(e,t){e.model.dispatch("SET_FORMATTING",{sheetId:e.model.getters.getActiveSheetId(),target:e.model.getters.getSelectedZones(),style:t})}async function go(e){try{return await e.clipboard.readText()}catch(e){return console.warn("The OS clipboard could not be read."),void console.error(e)}}const po=async e=>{e.model.dispatch("COPY"),await e.clipboard.writeText(e.model.getters.getClipboardContent())},mo=async e=>{to(e),await e.clipboard.writeText(e.model.getters.getClipboardContent())},fo=async e=>{const t=e.model.getters.getClipboardContent(),i=await go(e),n=e.model.getters.getSelectedZones();i&&i!==t?ao(e,n,i):so(e,n)},vo=async e=>{const t=e.model.getters.getClipboardContent(),i=await go(e),n=e.model.getters.getSelectedZones();i&&i!==t?e.model.dispatch("PASTE_FROM_OS_CLIPBOARD",{target:n,text:i}):e.model.dispatch("PASTE",{target:e.model.getters.getSelectedZones(),pasteOption:"onlyValue"})},bo=e=>so(e,e.model.getters.getSelectedZones(),"onlyFormat"),So=e=>!e.model.getters.isCutOperation(),Co=e=>{if(e.model.getters.getSelectedZones().length>1)return r("Delete rows");let t,i;const n=e.model.getters.getActiveRows();if(0!==n.size)t=Math.min(...n),i=Math.max(...n);else{const n=e.model.getters.getSelectedZones()[0];t=n.top,i=n.bottom}return t===i?r("Delete row %s",(t+1).toString()):r("Delete rows %s - %s",(t+1).toString(),(i+1).toString())},Eo=e=>{let t=[...e.model.getters.getActiveRows()];if(!t.length){const i=e.model.getters.getSelectedZones()[0];for(let e=i.top;e<=i.bottom;e++)t.push(e)}e.model.dispatch("REMOVE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"ROW",elements:t})},wo=(e,t)=>{const i=t.model.getters.getActiveSheetId(),n=t.model.getters.getElementsFromSelection(e),o=t.model.getters.checkElementsIncludeAllVisibleHeaders(i,e,n),r=t.model.getters.checkElementsIncludeAllNonFrozenHeaders(i,e,n);return!o&&!r},yo=e=>{if(e.model.getters.getSelectedZones().length>1)return r("Delete columns");let t,i;const n=e.model.getters.getActiveCols();if(0!==n.size)t=Math.min(...n),i=Math.max(...n);else{const n=e.model.getters.getSelectedZones()[0];t=n.left,i=n.right}return t===i?r("Delete column %s",kt(t)):r("Delete columns %s - %s",kt(t),kt(i))},xo=e=>{let t=[...e.model.getters.getActiveCols()];if(!t.length){const i=e.model.getters.getSelectedZones()[0];for(let e=i.left;e<=i.right;e++)t.push(e)}e.model.dispatch("REMOVE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"COL",elements:t})},Ro=e=>{const t=e.model.getters.getSelectedZone(),i=e.model.dispatch("INSERT_CELL",{zone:t,shiftDimension:"ROW"});ro(e,i)},Io=e=>{const t=e.model.getters.getSelectedZone(),i=e.model.dispatch("INSERT_CELL",{zone:t,shiftDimension:"COL"});ro(e,i)},To=e=>{const t=e.model.getters.getSelectedZone(),i=e.model.dispatch("DELETE_CELL",{zone:t,shiftDimension:"ROW"});ro(e,i)},Ao=e=>{const t=e.model.getters.getSelectedZone(),i=e.model.dispatch("DELETE_CELL",{zone:t,shiftDimension:"COL"});ro(e,i)},Mo=e=>{const t=e.model.getters.getActiveRows();let i,n;if(t.size)i=Math.min(...t),n=t.size;else{const t=e.model.getters.getSelectedZones()[0];i=t.top,n=t.bottom-t.top+1}e.model.dispatch("ADD_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),position:"before",base:i,quantity:n,dimension:"ROW"})},No=e=>{const t=e.model.getters.getActiveRows();let i,n;if(t.size)i=Math.max(...t),n=t.size;else{const t=e.model.getters.getSelectedZones()[0];i=t.bottom,n=t.bottom-t.top+1}e.model.dispatch("ADD_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),position:"after",base:i,quantity:n,dimension:"ROW"})},Oo=e=>{const t=e.model.getters.getActiveCols();let i,n;if(t.size)i=Math.min(...t),n=t.size;else{const t=e.model.getters.getSelectedZones()[0];i=t.left,n=t.right-t.left+1}e.model.dispatch("ADD_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),position:"before",dimension:"COL",base:i,quantity:n})},_o=e=>{const t=e.model.getters.getActiveCols();let i,n;if(t.size)i=Math.max(...t),n=t.size;else{const t=e.model.getters.getSelectedZones()[0];i=t.right,n=t.right-t.left+1}e.model.dispatch("ADD_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),position:"after",dimension:"COL",base:i,quantity:n})},Fo=e=>{e.openSidePanel("ConditionalFormatting",{selection:e.model.getters.getSelectedZones()})},Do=e=>{let{col:t,row:i}=e.model.getters.getPosition();e.model.dispatch("OPEN_CELL_POPOVER",{col:t,row:i,popoverType:"LinkEditor"})},ko=e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getSelectedZones();return e.model.getters.doesZonesContainFilter(t,i)},$o=e=>{const{anchor:t,zones:i}=e.model.getters.getSelection(),n=e.model.getters.getActiveSheetId();eo(e,n,t.cell,i[0],"ascending")},Lo=e=>{const{anchor:t,zones:i}=e.model.getters.getSelection(),n=e.model.getters.getActiveSheetId();eo(e,n,t.cell,i[0],"descending")},Po=e=>1===e.model.getters.getSelectedZones().length,Uo=new Bn;Uo.add("cut",{name:r("Cut"),description:"Ctrl+X",sequence:10,action:mo}).add("copy",{name:r("Copy"),description:"Ctrl+C",sequence:20,isReadonlyAllowed:!0,action:po}).add("paste",{name:r("Paste"),description:"Ctrl+V",sequence:30,action:fo}).add("paste_special",{name:r("Paste special"),sequence:40,separator:!0,isVisible:So}).addChild("paste_value_only",["paste_special"],{name:r("Paste values only"),sequence:10,action:vo}).addChild("paste_format_only",["paste_special"],{name:r("Paste format only"),sequence:20,action:bo}).add("add_row_before",{name:e=>{const t=co(e);return 1===t?r("Insert row"):r("Insert %s rows",t.toString())},sequence:70,action:Mo,isVisible:Po}).add("add_column_before",{name:e=>{const t=lo(e);return 1===t?r("Insert column"):r("Insert %s columns",t.toString())},sequence:90,action:Oo,isVisible:Po}).add("insert_cell",{name:r("Insert cells"),sequence:100,isVisible:Po,separator:!0}).addChild("insert_cell_down",["insert_cell"],{name:r("Shift down"),sequence:10,action:Ro}).addChild("insert_cell_right",["insert_cell"],{name:r("Shift right"),sequence:20,action:Io}).add("delete_row",{name:Co,sequence:110,action:Eo,isVisible:Po}).add("delete_column",{name:yo,sequence:120,action:xo,isVisible:Po}).add("delete_cell",{name:r("Delete cells"),sequence:130,isVisible:Po}).addChild("delete_cell_up",["delete_cell"],{name:r("Shift up"),sequence:10,action:To}).addChild("delete_cell_down",["delete_cell"],{name:r("Shift left"),sequence:20,action:Ao}).add("insert_link",{name:e=>{const t=e.model.getters.getActiveSheetId(),{col:i,row:n}=e.model.getters.getPosition(),o=e.model.getters.getCell(t,i,n);return o&&o.isLink()?r("Edit link"):r("Insert link")},separator:!0,sequence:150,action:Do});const Vo=new Bn;Vo.add("cut",{name:r("Cut"),description:"Ctrl+X",sequence:10,action:mo}).add("copy",{name:r("Copy"),description:"Ctrl+C",sequence:20,isReadonlyAllowed:!0,action:po}).add("paste",{name:r("Paste"),description:"Ctrl+V",sequence:30,action:fo}).add("paste_special",{name:r("Paste special"),sequence:40,separator:!0,isVisible:So}).addChild("paste_value_only",["paste_special"],{name:r("Paste value only"),sequence:10,action:vo}).addChild("paste_format_only",["paste_special"],{name:r("Paste format only"),sequence:20,action:bo}).add("sort_columns",{name:e=>e.model.getters.getActiveCols().size>1?r("Sort columns"):r("Sort column"),sequence:50,isVisible:Po,separator:!0}).addChild("sort_ascending",["sort_columns"],{name:r("Ascending (A ⟶ Z)"),sequence:10,action:$o}).addChild("sort_descending",["sort_columns"],{name:r("Descending (Z ⟶ A)"),sequence:20,action:Lo}).add("add_column_before",{name:e=>{const t=lo(e);return 1===t?r("Insert column left"):r("Insert %s columns left",t.toString())},sequence:70,action:Oo}).add("add_column_after",{name:e=>{const t=lo(e);return 1===t?r("Insert column right"):r("Insert %s columns right",t.toString())},sequence:80,action:_o}).add("delete_column",{name:yo,sequence:90,action:xo,isVisible:e=>wo("COL",e)}).add("clear_column",{name:e=>{if(e.model.getters.getSelectedZones().length>1)return r("Clear columns");let t,i;const n=e.model.getters.getActiveCols();if(0!==n.size)t=Math.min(...n),i=Math.max(...n);else{const n=e.model.getters.getSelectedZones()[0];t=n.left,i=n.right}return t===i?r("Clear column %s",kt(t)):r("Clear columns %s - %s",kt(t),kt(i))},sequence:100,action:e=>{const t=e.model.getters.getActiveSheetId(),i=[...e.model.getters.getActiveCols()].map((i=>e.model.getters.getColsZone(t,i,i)));e.model.dispatch("DELETE_CONTENT",{target:i,sheetId:e.model.getters.getActiveSheetId()})}}).add("hide_columns",{name:e=>{const t=e.model.getters.getElementsFromSelection("COL");let i=t[0],n=t[t.length-1];return 1===t.length?r("Hide column %s",kt(i).toString()):n-i+1===t.length?r("Hide columns %s - %s",kt(i).toString(),kt(n).toString()):r("Hide columns")},sequence:85,action:e=>{const t=e.model.getters.getElementsFromSelection("COL");e.model.dispatch("HIDE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"COL",elements:t})},isVisible:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getElementsFromSelection("COL");return!e.model.getters.checkElementsIncludeAllVisibleHeaders(t,"COL",i)},separator:!0}).add("unhide_columns",{name:r("Unhide columns"),sequence:86,action:e=>{const t=e.model.getters.getElementsFromSelection("COL");e.model.dispatch("UNHIDE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"COL",elements:t})},isVisible:e=>{const t=e.model.getters.getHiddenColsGroups(e.model.getters.getActiveSheetId()).flat();return e.model.getters.getElementsFromSelection("COL").some((e=>t.includes(e)))},separator:!0}).add("conditional_formatting",{name:r("Conditional formatting"),sequence:110,action:Fo});const zo=new Bn;function Bo(e,t,i){const n=e.model.getters.getSheetName(t),o=r("Rename Sheet");e.editText(o,(i=>{if(null===i||i===n)return;""===i&&Bo(e,t,r("The sheet name cannot be empty."));const o=e.model.dispatch("RENAME_SHEET",{sheetId:t,name:i});o.isSuccessful||(o.reasons.includes(11)&&Bo(e,t,r("A sheet with the name %s already exists. Please select another name.",i)),o.reasons.includes(13)&&Bo(e,t,r("Some used characters are not allowed in a sheet name (Forbidden characters are %s).",ee.join(" "))))}),{placeholder:n,error:i})}zo.add("cut",{name:r("Cut"),sequence:10,description:"Ctrl+X",action:mo}).add("copy",{name:r("Copy"),description:"Ctrl+C",sequence:20,isReadonlyAllowed:!0,action:po}).add("paste",{name:r("Paste"),description:"Ctrl+V",sequence:30,action:fo}).add("paste_special",{name:r("Paste special"),sequence:40,separator:!0,isVisible:So}).addChild("paste_value_only",["paste_special"],{name:r("Paste value only"),sequence:10,action:vo}).addChild("paste_format_only",["paste_special"],{name:r("Paste format only"),sequence:20,action:bo}).add("add_row_before",{name:e=>{const t=co(e);return 1===t?r("Insert row above"):r("Insert %s rows above",t.toString())},sequence:50,action:Mo}).add("add_row_after",{name:e=>{const t=co(e);return 1===t?r("Insert row below"):r("Insert %s rows below",t.toString())},sequence:60,action:No}).add("delete_row",{name:Co,sequence:70,action:Eo,isVisible:e=>wo("ROW",e)}).add("clear_row",{name:e=>{if(e.model.getters.getSelectedZones().length>1)return r("Clear rows");let t,i;const n=e.model.getters.getActiveRows();if(0!==n.size)t=Math.min(...n),i=Math.max(...n);else{const n=e.model.getters.getSelectedZones()[0];t=n.top,i=n.bottom}return t===i?r("Clear row %s",(t+1).toString()):r("Clear rows %s - %s",(t+1).toString(),(i+1).toString())},sequence:80,action:e=>{const t=e.model.getters.getActiveSheetId(),i=[...e.model.getters.getActiveRows()].map((i=>e.model.getters.getRowsZone(t,i,i)));e.model.dispatch("DELETE_CONTENT",{target:i,sheetId:e.model.getters.getActiveSheetId()})}}).add("hide_rows",{name:e=>{const t=e.model.getters.getElementsFromSelection("ROW");let i=t[0],n=t[t.length-1];return 1===t.length?r("Hide row %s",(i+1).toString()):n-i+1===t.length?r("Hide rows %s - %s",(i+1).toString(),(n+1).toString()):r("Hide rows")},sequence:85,action:e=>{const t=e.model.getters.getElementsFromSelection("ROW");e.model.dispatch("HIDE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"ROW",elements:t})},isVisible:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getElementsFromSelection("ROW");return!e.model.getters.checkElementsIncludeAllVisibleHeaders(t,"ROW",i)},separator:!0}).add("unhide_rows",{name:r("Unhide rows"),sequence:86,action:e=>{const t=e.model.getters.getElementsFromSelection("ROW");e.model.dispatch("UNHIDE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"ROW",elements:t})},isVisible:e=>{const t=e.model.getters.getHiddenRowsGroups(e.model.getters.getActiveSheetId()).flat();return e.model.getters.getElementsFromSelection("ROW").some((e=>t.includes(e)))},separator:!0}).add("conditional_formatting",{name:r("Conditional formatting"),sequence:90,action:Fo});const Ho=new Bn;Ho.add("delete",{name:r("Delete"),sequence:10,isVisible:e=>e.model.getters.getSheetIds().length>1,action:e=>e.askConfirmation(r("Are you sure you want to delete this sheet ?"),(()=>{e.model.dispatch("DELETE_SHEET",{sheetId:e.model.getters.getActiveSheetId()})}))}).add("duplicate",{name:r("Duplicate"),sequence:20,action:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.uuidGenerator.uuidv4();e.model.dispatch("DUPLICATE_SHEET",{sheetId:t,sheetIdTo:i}),e.model.dispatch("ACTIVATE_SHEET",{sheetIdFrom:t,sheetIdTo:i})}}).add("rename",{name:r("Rename"),sequence:30,action:e=>Bo(e,e.model.getters.getActiveSheetId())}).add("move_right",{name:r("Move right"),sequence:40,isVisible:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getVisibleSheetIds();return i.indexOf(t)!==i.length-1},action:e=>e.model.dispatch("MOVE_SHEET",{sheetId:e.model.getters.getActiveSheetId(),direction:"right"})}).add("move_left",{name:r("Move left"),sequence:50,isVisible:e=>{const t=e.model.getters.getActiveSheetId();return e.model.getters.getVisibleSheetIds()[0]!==t},action:e=>e.model.dispatch("MOVE_SHEET",{sheetId:e.model.getters.getActiveSheetId(),direction:"left"})}).add("hide_sheet",{name:r("Hide sheet"),sequence:60,isVisible:e=>1!==e.model.getters.getVisibleSheetIds().length,action:e=>e.model.dispatch("HIDE_SHEET",{sheetId:e.model.getters.getActiveSheetId()})});const Wo={Errors:{25:r("The range is invalid"),51:r("The argument is missing. Please provide a value"),52:r("The second argument is missing. Please provide a value"),53:r("The minpoint must be a number"),54:r("The midpoint must be a number"),55:r("The maxpoint must be a number"),56:r("The first value must be a number"),57:r("The second value must be a number"),47:r("Minimum must be smaller then Maximum"),50:r("Minimum must be smaller then Midpoint"),49:r("Midpoint must be smaller then Maximum"),48:r("Lower inflection point must be smaller than upper inflection point"),58:r("Invalid Minpoint formula"),60:r("Invalid Maxpoint formula"),59:r("Invalid Midpoint formula"),61:r("Invalid upper inflection point formula"),62:r("Invalid lower inflection point formula"),24:r("A range needs to be defined"),Unexpected:r("The rule is invalid for an unknown reason")},ColorScale:r("Color scale"),IconSet:r("Icon set")},Go={IsEmpty:r("Is empty"),IsNotEmpty:r("Is not empty"),ContainsText:r("Contains"),NotContains:r("Does not contain"),BeginsWith:r("Starts with"),EndsWith:r("Ends with"),Equal:r("Is equal to"),NotEqual:r("Is not equal to"),GreaterThan:r("Is greater than"),GreaterThanOrEqual:r("Is greater than or equal to"),LessThan:r("Is less than"),LessThanOrEqual:r("Is less than or equal to"),Between:r("Is between"),NotBetween:r("Is not between")},qo={Series:r("Series"),Errors:{Unexpected:r("The chart definition is invalid for an unknown reason"),32:r("The dataset is invalid"),33:r("Labels are invalid"),34:r("The key value is invalid"),35:r("The baseline value is invalid"),36:r("The data range is invalid"),37:r("A minimum range limit value is needed"),38:r("The minimum range limit value must be a number"),39:r("A maximum range limit value is needed"),40:r("The maximum range limit value must be a number"),41:r("Minimum range limit must be smaller than maximum range limit"),42:r("The lower inflection point value must be a number"),43:r("The upper inflection point value must be a number")}},Zo={Automatic:r("Automatic"),Number:r("Number"),Percent:r("Percent"),Currency:r("Currency"),CurrencyRounded:r("Currency rounded"),Date:r("Date"),Time:r("Time"),DateTime:r("Date time"),Duration:r("Duration"),CustomCurrency:r("Custom currency")},jo={Custom:r("Custom")},Yo=r("Merged cells are preventing this operation. Unmerge those cells and try again.");function Xo(e,t,i){const n=e.model.getters.getActiveSheetId(),o="COL"===t?"FREEZE_COLUMNS":"FREEZE_ROWS";e.model.dispatch(o,{sheetId:n,quantity:i}).isCancelledBecause(65)&&e.raiseError(Yo)}const Ko=new Bn;Ko.add("file",{name:r("File"),sequence:10}).add("edit",{name:r("Edit"),sequence:20}).add("view",{name:r("View"),sequence:30}).add("insert",{name:r("Insert"),sequence:40}).add("format",{name:r("Format"),sequence:50}).add("data",{name:r("Data"),sequence:60}).addChild("save",["file"],{name:r("Save"),description:"Ctrl+S",sequence:10,action:()=>console.log("Not implemented")}).addChild("undo",["edit"],{name:r("Undo"),description:"Ctrl+Z",sequence:10,action:e=>e.model.dispatch("REQUEST_UNDO")}).addChild("redo",["edit"],{name:r("Redo"),description:"Ctrl+Y",sequence:20,action:e=>e.model.dispatch("REQUEST_REDO"),separator:!0}).addChild("copy",["edit"],{name:r("Copy"),description:"Ctrl+C",sequence:30,isReadonlyAllowed:!0,action:po}).addChild("cut",["edit"],{name:r("Cut"),description:"Ctrl+X",sequence:40,action:mo}).addChild("paste",["edit"],{name:r("Paste"),description:"Ctrl+V",sequence:50,action:fo}).addChild("paste_special",["edit"],{name:r("Paste special"),sequence:60,separator:!0,isVisible:So}).addChild("paste_special_value",["edit","paste_special"],{name:r("Paste value only"),sequence:10,action:vo}).addChild("paste_special_format",["edit","paste_special"],{name:r("Paste format only"),sequence:20,action:bo}).addChild("sort_range",["data"],{name:r("Sort range"),sequence:62,isVisible:Po,separator:!0}).addChild("sort_ascending",["data","sort_range"],{name:r("Ascending (A ⟶ Z)"),sequence:10,action:$o}).addChild("sort_descending",["data","sort_range"],{name:r("Descending (Z ⟶ A)"),sequence:20,action:Lo}).addChild("find_and_replace",["edit"],{name:r("Find and replace"),description:"Ctrl+H",sequence:65,isReadonlyAllowed:!0,action:e=>{e.openSidePanel("FindAndReplace",{})},separator:!0}).addChild("edit_delete_cell_values",["edit"],{name:r("Delete values"),sequence:70,action:e=>e.model.dispatch("DELETE_CONTENT",{sheetId:e.model.getters.getActiveSheetId(),target:e.model.getters.getSelectedZones()})}).addChild("edit_delete_row",["edit"],{name:Co,sequence:80,action:Eo,isVisible:e=>wo("ROW",e)}).addChild("edit_delete_column",["edit"],{name:yo,sequence:90,action:xo,isVisible:e=>wo("COL",e)}).addChild("edit_delete_cell_shift_up",["edit"],{name:r("Delete cell and shift up"),sequence:93,action:To}).addChild("edit_delete_cell_shift_left",["edit"],{name:r("Delete cell and shift left"),sequence:97,action:Ao}).addChild("edit_unhide_columns",["edit"],{name:r("Unhide all columns"),sequence:100,action:e=>{const t=e.model.getters.getActiveSheetId();e.model.dispatch("UNHIDE_COLUMNS_ROWS",{sheetId:t,dimension:"COL",elements:Array.from(Array(e.model.getters.getNumberCols(t)).keys())})},isVisible:e=>e.model.getters.getHiddenColsGroups(e.model.getters.getActiveSheetId()).length>0}).addChild("edit_unhide_rows",["edit"],{name:r("Unhide all rows"),sequence:100,action:e=>{const t=e.model.getters.getActiveSheetId();e.model.dispatch("UNHIDE_COLUMNS_ROWS",{sheetId:t,dimension:"ROW",elements:Array.from(Array(e.model.getters.getNumberRows(t)).keys())})},isVisible:e=>e.model.getters.getHiddenRowsGroups(e.model.getters.getActiveSheetId()).length>0}).addChild("insert_row_before",["insert"],{name:e=>{const t=co(e);return 1===t?r("Row above"):r("%s Rows above",t.toString())},sequence:10,action:Mo,isVisible:e=>0===e.model.getters.getActiveCols().size}).addChild("insert_row_after",["insert"],{name:e=>{const t=co(e);return 1===t?r("Row below"):r("%s Rows below",t.toString())},sequence:20,action:No,isVisible:e=>0===e.model.getters.getActiveCols().size,separator:!0}).addChild("insert_column_before",["insert"],{name:e=>{const t=lo(e);return 1===t?r("Column left"):r("%s Columns left",t.toString())},sequence:30,action:Oo,isVisible:e=>0===e.model.getters.getActiveRows().size}).addChild("insert_column_after",["insert"],{name:e=>{const t=lo(e);return 1===t?r("Column right"):r("%s Columns right",t.toString())},sequence:40,action:_o,isVisible:e=>0===e.model.getters.getActiveRows().size,separator:!0}).addChild("insert_insert_cell_shift_down",["insert"],{name:r("Insert cells and shift down"),sequence:43,action:Ro}).addChild("insert_insert_cell_shift_right",["insert"],{name:r("Insert cells and shift right"),sequence:47,action:Io,separator:!0}).addChild("insert_chart",["insert"],{name:r("Chart"),sequence:50,action:e=>{const t=e.model.getters,i=t.getSelectedZone();let n=i;const o=e.model.uuidGenerator.uuidv4();let r;i.left!==i.right&&(n={...i,left:i.left+1});const s=[Ni(n)],a=t.getActiveSheetId(),l={width:536,height:335},{x:c,y:h}=t.getMainViewportCoordinates(),{scrollX:d,scrollY:u}=t.getActiveSheetScrollInfo(),{width:g,height:p}=t.getVisibleRect(t.getActiveMainViewport()),m={x:c+d+Math.max(0,(g-l.width)/2),y:h+u+Math.max(0,(p-l.height)/2)};let f="";const v=e.model.getters.getCellsInZone(a,{...n,bottom:n.top}),b=!!v.find((e=>e&&e.evaluated.type!==rn.number));if(b){const t=v.reduce(((t,i)=>{const n=i&&i.evaluated.type!==rn.error&&e.model.getters.getCellText(i);return n&&t.push(n),t}),[]),i=t.splice(-1)[0];f=t.join(", "),i&&(f+=(f?" "+e._t("and")+" ":"")+i)}i.left!==i.right&&(r=Ni({...i,right:i.left,top:b?i.top+1:i.top}));const S=n.right===n.left?"none":"top";e.model.dispatch("CREATE_CHART",{sheetId:a,id:o,position:m,size:l,definition:{title:f,dataSets:s,labelRange:r,type:"bar",stacked:!1,dataSetsHaveTitle:b,verticalAxisPosition:"left",legendPosition:S}}),e.model.dispatch("SELECT_FIGURE",{id:o}),e.openSidePanel("ChartPanel")}}).addChild("insert_link",["insert"],{name:r("Link"),separator:!0,sequence:60,action:Do}).addChild("insert_sheet",["insert"],{name:r("New sheet"),sequence:70,action:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getSheetIds().indexOf(t)+1,n=e.model.uuidGenerator.uuidv4();e.model.dispatch("CREATE_SHEET",{sheetId:n,position:i}),e.model.dispatch("ACTIVATE_SHEET",{sheetIdFrom:t,sheetIdTo:n})},separator:!0}).addChild("unfreeze_panes",["view"],{name:r("Unfreeze"),sequence:4,isVisible:e=>{const{xSplit:t,ySplit:i}=e.model.getters.getPaneDivisions(e.model.getters.getActiveSheetId());return t+i>0},action:e=>e.model.dispatch("UNFREEZE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId()})}).addChild("freeze_panes",["view"],{name:r("Freeze"),sequence:5,separator:!0}).addChild("unfreeze_rows",["view","freeze_panes"],{name:r("No rows"),action:e=>e.model.dispatch("UNFREEZE_ROWS",{sheetId:e.model.getters.getActiveSheetId()}),isReadonlyAllowed:!0,sequence:5,isVisible:e=>!!e.model.getters.getPaneDivisions(e.model.getters.getActiveSheetId()).ySplit}).addChild("freeze_first_row",["view","freeze_panes"],{name:r("1 row"),action:e=>Xo(e,"ROW",1),isReadonlyAllowed:!0,sequence:10}).addChild("freeze_second_row",["view","freeze_panes"],{name:r("2 rows"),action:e=>Xo(e,"ROW",2),isReadonlyAllowed:!0,sequence:15}).addChild("freeze_current_row",["view","freeze_panes"],{name:r("Up to current row"),action:e=>{const{bottom:t}=e.model.getters.getSelectedZone();Xo(e,"ROW",t+1)},isReadonlyAllowed:!0,sequence:20,separator:!0}).addChild("unfreeze_columns",["view","freeze_panes"],{name:r("No columns"),action:e=>e.model.dispatch("UNFREEZE_COLUMNS",{sheetId:e.model.getters.getActiveSheetId()}),isReadonlyAllowed:!0,sequence:25,isVisible:e=>!!e.model.getters.getPaneDivisions(e.model.getters.getActiveSheetId()).xSplit}).addChild("freeze_first_col",["view","freeze_panes"],{name:r("1 column"),action:e=>Xo(e,"COL",1),isReadonlyAllowed:!0,sequence:30}).addChild("freeze_second_col",["view","freeze_panes"],{name:r("2 columns"),action:e=>Xo(e,"COL",2),isReadonlyAllowed:!0,sequence:35}).addChild("freeze_current_col",["view","freeze_panes"],{name:r("Up to current column"),action:e=>{const{right:t}=e.model.getters.getSelectedZone();Xo(e,"COL",t+1)},isReadonlyAllowed:!0,sequence:40}).addChild("view_gridlines",["view"],{name:e=>e.model.getters.getGridLinesVisibility(e.model.getters.getActiveSheetId())?r("Hide gridlines"):r("Show gridlines"),action:e=>{const t=e.model.getters.getActiveSheetId();e.model.dispatch("SET_GRID_LINES_VISIBILITY",{sheetId:t,areGridLinesVisible:!e.model.getters.getGridLinesVisibility(t)})},sequence:10}).addChild("view_formulas",["view"],{name:e=>e.model.getters.shouldShowFormulas()?r("Hide formulas"):r("Show formulas"),action:e=>e.model.dispatch("SET_FORMULA_VISIBILITY",{show:!e.model.getters.shouldShowFormulas()}),isReadonlyAllowed:!0,sequence:15}).addChild("format_number",["format"],{name:r("Numbers"),sequence:10,separator:!0}).addChild("format_number_automatic",["format","format_number"],{name:Zo.Automatic,sequence:10,separator:!0,action:e=>ho(e,"")}).addChild("format_number_number",["format","format_number"],{name:Zo.Number,description:"1,000.12",sequence:20,action:e=>ho(e,"#,##0.00")}).addChild("format_number_percent",["format","format_number"],{name:Zo.Percent,description:"10.12%",sequence:30,separator:!0,action:e=>ho(e,"0.00%")}).addChild("format_number_currency",["format","format_number"],{name:Zo.Currency,description:"$1,000.12",sequence:37,action:e=>ho(e,"[$$]#,##0.00")}).addChild("format_number_currency_rounded",["format","format_number"],{name:Zo.CurrencyRounded,description:"$1,000",sequence:38,action:e=>ho(e,"[$$]#,##0")}).addChild("format_custom_currency",["format","format_number"],{name:Zo.CustomCurrency,sequence:39,separator:!0,action:e=>{e.openSidePanel("CustomCurrency",{})}}).addChild("format_number_date",["format","format_number"],{name:Zo.Date,description:"9/26/2008",sequence:40,action:e=>ho(e,"m/d/yyyy")}).addChild("format_number_time",["format","format_number"],{name:Zo.Time,description:"10:43:00 PM",sequence:50,action:e=>ho(e,"hh:mm:ss a")}).addChild("format_number_date_time",["format","format_number"],{name:Zo.DateTime,description:"9/26/2008 22:43:00",sequence:60,action:e=>ho(e,"m/d/yyyy hh:mm:ss")}).addChild("format_number_duration",["format","format_number"],{name:Zo.Duration,description:"27:51:38",sequence:70,separator:!0,action:e=>ho(e,"hhhh:mm:ss")}).addChild("format_bold",["format"],{name:r("Bold"),sequence:20,description:"Ctrl+B",action:e=>uo(e,{bold:!e.model.getters.getCurrentStyle().bold})}).addChild("format_italic",["format"],{name:r("Italic"),sequence:30,description:"Ctrl+I",action:e=>uo(e,{italic:!e.model.getters.getCurrentStyle().italic})}).addChild("format_underline",["format"],{name:r("Underline"),description:"Ctrl+U",sequence:40,action:e=>uo(e,{underline:!e.model.getters.getCurrentStyle().underline})}).addChild("format_strikethrough",["format"],{name:r("Strikethrough"),sequence:50,action:e=>uo(e,{strikethrough:!e.model.getters.getCurrentStyle().strikethrough}),separator:!0}).addChild("format_font_size",["format"],{name:r("Font size"),sequence:60}).addChild("format_wrapping",["format"],{name:r("Wrapping"),sequence:70,separator:!0}).addChild("format_wrapping_overflow",["format","format_wrapping"],{name:r("Overflow"),sequence:10,action:e=>uo(e,{wrapping:"overflow"})}).addChild("format_wrapping_wrap",["format","format_wrapping"],{name:r("Wrap"),sequence:20,action:e=>uo(e,{wrapping:"wrap"})}).addChild("format_wrapping_clip",["format","format_wrapping"],{name:r("Clip"),sequence:30,action:e=>uo(e,{wrapping:"clip"})}).addChild("format_cf",["format"],{name:r("Conditional formatting"),sequence:80,action:Fo,separator:!0}).addChild("format_clearFormat",["format"],{name:r("Clear formatting"),sequence:90,action:e=>{e.model.dispatch("CLEAR_FORMATTING",{sheetId:e.model.getters.getActiveSheetId(),target:e.model.getters.getSelectedZones()})},separator:!0}).addChild("add_data_filter",["data"],{name:r("Add Filter"),sequence:20,action:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getSelection().zones;no(e,t,i)},isVisible:e=>!ko(e),isEnabled:e=>(e=>Qi(...e.model.getters.getSelectedZones()))(e)}).addChild("remove_data_filter",["data"],{name:r("Remove Filter"),sequence:20,action:e=>{const t=e.model.getters.getActiveSheetId();e.model.dispatch("REMOVE_FILTER_TABLE",{sheetId:t,target:e.model.getters.getSelectedZones()})},isVisible:ko});for(let e of re)Ko.addChild(`format_font_size_${e.pt}`,["format","format_font_size"],{name:e.pt.toString(),sequence:e.pt,action:t=>uo(t,{fontSize:e.pt})});const Qo=new class extends Ji{addTransformation(e,t,i){for(let n of t)this.content[n]||(this.content[n]=new Map),this.content[n].set(e,i);return this}getTransformation(e,t){return this.content[e]&&this.content[e].get(t)}},Jo=new Ii;bn`
|
|
272
|
+
`;class Wn extends t.Component{constructor(){super(...arguments),this.menuItems=Hn.getAll(),this.state=t.useState(this.defaultState),this.menu=t.useState({isOpen:!1}),this.linkEditorRef=t.useRef("linkEditor"),this.position=Dn(this.linkEditorRef),this.urlInput=t.useRef("urlInput")}setup(){t.onMounted((()=>{var e;return null===(e=this.urlInput.el)||void 0===e?void 0:e.focus()}))}get defaultState(){const{col:e,row:t}=this.props.cellPosition,i=this.env.model.getters.getActiveSheetId(),n=this.env.model.getters.getCell(i,e,t);return(null==n?void 0:n.isLink())?{link:{url:n.link.url,label:n.formattedValue},urlRepresentation:n.urlRepresentation,isUrlEditable:n.isUrlEditable}:{link:{url:"",label:(null==n?void 0:n.formattedValue)||""},isUrlEditable:!0,urlRepresentation:""}}get menuPosition(){return{x:this.position.x+320-12-2,y:this.position.y+100}}onSpecialLink(e){const{detail:t}=e;this.state.link.url=t.link.url,this.state.link.label=t.link.label,this.state.isUrlEditable=t.isUrlEditable,this.state.urlRepresentation=t.urlRepresentation}openMenu(){this.menu.isOpen=!0}removeLink(){this.state.link.url="",this.state.urlRepresentation="",this.state.isUrlEditable=!0}save(){var e,t;const{col:i,row:n}=this.props.cellPosition,o=this.state.link.label||this.state.link.url;this.env.model.dispatch("UPDATE_CELL",{col:i,row:n,sheetId:this.env.model.getters.getActiveSheetId(),content:We(o,this.state.link.url)}),null===(t=(e=this.props).onClosed)||void 0===t||t.call(e)}cancel(){var e,t;null===(t=(e=this.props).onClosed)||void 0===t||t.call(e)}onKeyDown(e){switch(e.key){case"Enter":this.state.link.url&&this.save();break;case"Escape":this.cancel()}}}Wn.template="o-spreadsheet-LinkEditor",Wn.size={width:340,height:180},Wn.components={Menu:$n};const Gn={onOpen:(e,t)=>({isOpen:!0,props:{cellPosition:e},Component:Wn,cellCorner:"BottomLeft"})},qn=new Ji;qn.add("ErrorToolTip",wn).add("LinkCell",Pn).add("LinkEditor",Gn).add("FilterMenu",In);const Zn=new Ji,jn=new Ji,Yn=new Ji,Xn=(new Ji).add("ADD_COLUMNS_ROWS",(function(e){const t=[];let i=e.base;"after"===e.position&&i++;for(let n=0;n<e.quantity;n++)t.push(n+i);return[{type:"REMOVE_COLUMNS_ROWS",dimension:e.dimension,elements:t,sheetId:e.sheetId}]})).add("REMOVE_COLUMNS_ROWS",(function(e){const t=[],i=[...e.elements].sort(((e,t)=>e-t));for(let n of Le(i)){const i=0===n[0]?0:n[0]-1,o=0===n[0]?"before":"after";t.push({type:"ADD_COLUMNS_ROWS",dimension:e.dimension,quantity:n.length,base:i,sheetId:e.sheetId,position:o})}return t})).add("ADD_MERGE",(function(e){return[{type:"REMOVE_MERGE",sheetId:e.sheetId,target:e.target}]})).add("REMOVE_MERGE",(function(e){return[{type:"ADD_MERGE",sheetId:e.sheetId,target:e.target}]})).add("CREATE_SHEET",(function(e){return[{type:"DELETE_SHEET",sheetId:e.sheetId}]})).add("DELETE_SHEET",(function(e){return[{type:"CREATE_SHEET",sheetId:e.sheetId,position:1}]})).add("DUPLICATE_SHEET",(function(e){return[{type:"DELETE_SHEET",sheetId:e.sheetIdTo}]})).add("CREATE_FIGURE",(function(e){return[{type:"DELETE_FIGURE",id:e.figure.id,sheetId:e.sheetId}]})).add("CREATE_CHART",(function(e){return[{type:"DELETE_FIGURE",id:e.id,sheetId:e.sheetId}]})).add("HIDE_COLUMNS_ROWS",(function(e){return[{type:"UNHIDE_COLUMNS_ROWS",sheetId:e.sheetId,dimension:e.dimension,elements:e.elements}]})).add("UNHIDE_COLUMNS_ROWS",(function(e){return[{type:"HIDE_COLUMNS_ROWS",sheetId:e.sheetId,dimension:e.dimension,elements:e.elements}]}));for(const e of cn.values())Xn.contains(e)||Xn.add(e,Kn);function Kn(e){return[e]}const Qn=[rn.number,rn.error,rn.text,rn.boolean];function Jn(e,t){return{index:t,type:e?e.evaluated.type:rn.empty,value:e?e.evaluated.value:""}}function eo(e,t,i,n,o){let s=dn.Success,a=n.right>n.left;if(e.model.getters.doesIntersectMerge(t,n)){let i;a=!1;for(let o=n.top;o<=n.bottom;o++){i=[];for(let r=n.left;r<=n.right;r++){let n=e.model.getters.getMerge(t,r,o);n&&!i.includes(n.id.toString())&&i.push(n.id.toString())}if(i.length>=2){a=!0;break}}}const{col:l,row:c}=i;if(a)s=e.model.dispatch("SORT_CELLS",{sheetId:t,col:l,row:c,zone:n,sortDirection:o});else{const i=e.model.getters.getContiguousZone(t,n);Li(i,n)?s=e.model.dispatch("SORT_CELLS",{sheetId:t,col:l,row:c,zone:n,sortDirection:o}):e.askConfirmation(r("We found data next to your selection. Since this data was not selected, it will not be sorted. Do you want to extend your selection?"),(()=>{n=i,s=e.model.dispatch("SORT_CELLS",{sheetId:t,col:l,row:c,zone:n,sortDirection:o})}),(()=>{s=e.model.dispatch("SORT_CELLS",{sheetId:t,col:l,row:c,zone:n,sortDirection:o})}))}if(s.isCancelledBecause(63)){const{col:t,row:o}=i;e.model.selection.selectZone({cell:{col:t,row:o},zone:n}),e.raiseError(r("Cannot sort. To sort, select only cells or only merges that have the same size."))}}function to(e){const t=e.model.dispatch("CUT");t.isSuccessful||t.isCancelledBecause(19)&&e.raiseError(r("This operation is not allowed with multiple selections."))}const io={filterOverlap:r("You cannot create overlapping filters."),nonContinuousTargets:r("A filter can only be created on a continuous selection."),mergeInFilter:r("You can't create a filter over a range that contains a merge.")};function no(e,t,i){const n=e.model.dispatch("CREATE_FILTER_TABLE",{target:i,sheetId:t});n.isCancelledBecause(78)?e.raiseError(io.filterOverlap):n.isCancelledBecause(80)?e.raiseError(io.mergeInFilter):n.isCancelledBecause(81)&&e.raiseError(io.nonContinuousTargets)}const oo={wrongPasteSelection:r("This operation is not allowed with multiple selections."),willRemoveExistingMerge:r("This operation is not possible due to a merge. Please remove the merges first than try again."),wrongFigurePasteOption:r("Cannot do a special paste of a figure."),frozenPaneOverlap:r("Cannot paste merged cells over a frozen pane.")};function ro(e,t){t.isSuccessful||(t.reasons.includes(20)?e.raiseError(oo.wrongPasteSelection):t.reasons.includes(2)?e.raiseError(oo.willRemoveExistingMerge):t.reasons.includes(22)?e.raiseError(oo.wrongFigurePasteOption):t.reasons.includes(75)&&e.raiseError(oo.frozenPaneOverlap))}function so(e,t,i){const n=e.model.dispatch("PASTE",{target:t,pasteOption:i});ro(e,n)}function ao(e,t,i){const n=e.model.dispatch("PASTE_FROM_OS_CLIPBOARD",{target:t,text:i});ro(e,n)}function lo(e){const t=e.model.getters.getActiveCols();if(t.size)return t.size;{const t=e.model.getters.getSelectedZones()[0];return t.right-t.left+1}}function co(e){const t=e.model.getters.getActiveRows();if(t.size)return t.size;{const t=e.model.getters.getSelectedZones()[0];return t.bottom-t.top+1}}function ho(e,t){e.model.dispatch("SET_FORMATTING",{sheetId:e.model.getters.getActiveSheetId(),target:e.model.getters.getSelectedZones(),format:t})}function uo(e,t){e.model.dispatch("SET_FORMATTING",{sheetId:e.model.getters.getActiveSheetId(),target:e.model.getters.getSelectedZones(),style:t})}async function go(e){try{return await e.clipboard.readText()}catch(e){return console.warn("The OS clipboard could not be read."),void console.error(e)}}const po=async e=>{e.model.dispatch("COPY"),await e.clipboard.writeText(e.model.getters.getClipboardContent())},mo=async e=>{to(e),await e.clipboard.writeText(e.model.getters.getClipboardContent())},fo=async e=>{const t=e.model.getters.getClipboardContent(),i=await go(e),n=e.model.getters.getSelectedZones();i&&i!==t?ao(e,n,i):so(e,n)},vo=async e=>{const t=e.model.getters.getClipboardContent(),i=await go(e),n=e.model.getters.getSelectedZones();i&&i!==t?e.model.dispatch("PASTE_FROM_OS_CLIPBOARD",{target:n,text:i}):e.model.dispatch("PASTE",{target:e.model.getters.getSelectedZones(),pasteOption:"onlyValue"})},bo=e=>so(e,e.model.getters.getSelectedZones(),"onlyFormat"),So=e=>!e.model.getters.isCutOperation(),Co=e=>{if(e.model.getters.getSelectedZones().length>1)return r("Delete rows");let t,i;const n=e.model.getters.getActiveRows();if(0!==n.size)t=Math.min(...n),i=Math.max(...n);else{const n=e.model.getters.getSelectedZones()[0];t=n.top,i=n.bottom}return t===i?r("Delete row %s",(t+1).toString()):r("Delete rows %s - %s",(t+1).toString(),(i+1).toString())},Eo=e=>{let t=[...e.model.getters.getActiveRows()];if(!t.length){const i=e.model.getters.getSelectedZones()[0];for(let e=i.top;e<=i.bottom;e++)t.push(e)}e.model.dispatch("REMOVE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"ROW",elements:t})},wo=(e,t)=>{const i=t.model.getters.getActiveSheetId(),n=t.model.getters.getElementsFromSelection(e),o=t.model.getters.checkElementsIncludeAllVisibleHeaders(i,e,n),r=t.model.getters.checkElementsIncludeAllNonFrozenHeaders(i,e,n);return!o&&!r},yo=e=>{if(e.model.getters.getSelectedZones().length>1)return r("Delete columns");let t,i;const n=e.model.getters.getActiveCols();if(0!==n.size)t=Math.min(...n),i=Math.max(...n);else{const n=e.model.getters.getSelectedZones()[0];t=n.left,i=n.right}return t===i?r("Delete column %s",kt(t)):r("Delete columns %s - %s",kt(t),kt(i))},xo=e=>{let t=[...e.model.getters.getActiveCols()];if(!t.length){const i=e.model.getters.getSelectedZones()[0];for(let e=i.left;e<=i.right;e++)t.push(e)}e.model.dispatch("REMOVE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"COL",elements:t})},Ro=e=>{const t=e.model.getters.getSelectedZone(),i=e.model.dispatch("INSERT_CELL",{zone:t,shiftDimension:"ROW"});ro(e,i)},Io=e=>{const t=e.model.getters.getSelectedZone(),i=e.model.dispatch("INSERT_CELL",{zone:t,shiftDimension:"COL"});ro(e,i)},To=e=>{const t=e.model.getters.getSelectedZone(),i=e.model.dispatch("DELETE_CELL",{zone:t,shiftDimension:"ROW"});ro(e,i)},Ao=e=>{const t=e.model.getters.getSelectedZone(),i=e.model.dispatch("DELETE_CELL",{zone:t,shiftDimension:"COL"});ro(e,i)},Mo=e=>{const t=e.model.getters.getActiveRows();let i,n;if(t.size)i=Math.min(...t),n=t.size;else{const t=e.model.getters.getSelectedZones()[0];i=t.top,n=t.bottom-t.top+1}e.model.dispatch("ADD_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),position:"before",base:i,quantity:n,dimension:"ROW"})},No=e=>{const t=e.model.getters.getActiveRows();let i,n;if(t.size)i=Math.max(...t),n=t.size;else{const t=e.model.getters.getSelectedZones()[0];i=t.bottom,n=t.bottom-t.top+1}e.model.dispatch("ADD_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),position:"after",base:i,quantity:n,dimension:"ROW"})},Oo=e=>{const t=e.model.getters.getActiveCols();let i,n;if(t.size)i=Math.min(...t),n=t.size;else{const t=e.model.getters.getSelectedZones()[0];i=t.left,n=t.right-t.left+1}e.model.dispatch("ADD_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),position:"before",dimension:"COL",base:i,quantity:n})},_o=e=>{const t=e.model.getters.getActiveCols();let i,n;if(t.size)i=Math.max(...t),n=t.size;else{const t=e.model.getters.getSelectedZones()[0];i=t.right,n=t.right-t.left+1}e.model.dispatch("ADD_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),position:"after",dimension:"COL",base:i,quantity:n})},Fo=e=>{e.openSidePanel("ConditionalFormatting",{selection:e.model.getters.getSelectedZones()})},Do=e=>{let{col:t,row:i}=e.model.getters.getPosition();e.model.dispatch("OPEN_CELL_POPOVER",{col:t,row:i,popoverType:"LinkEditor"})},ko=e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getSelectedZones();return e.model.getters.doesZonesContainFilter(t,i)},$o=e=>{const{anchor:t,zones:i}=e.model.getters.getSelection(),n=e.model.getters.getActiveSheetId();eo(e,n,t.cell,i[0],"ascending")},Lo=e=>{const{anchor:t,zones:i}=e.model.getters.getSelection(),n=e.model.getters.getActiveSheetId();eo(e,n,t.cell,i[0],"descending")},Po=e=>1===e.model.getters.getSelectedZones().length,Uo=new Bn;Uo.add("cut",{name:r("Cut"),description:"Ctrl+X",sequence:10,action:mo}).add("copy",{name:r("Copy"),description:"Ctrl+C",sequence:20,isReadonlyAllowed:!0,action:po}).add("paste",{name:r("Paste"),description:"Ctrl+V",sequence:30,action:fo}).add("paste_special",{name:r("Paste special"),sequence:40,separator:!0,isVisible:So}).addChild("paste_value_only",["paste_special"],{name:r("Paste values only"),sequence:10,action:vo}).addChild("paste_format_only",["paste_special"],{name:r("Paste format only"),sequence:20,action:bo}).add("add_row_before",{name:e=>{const t=co(e);return 1===t?r("Insert row"):r("Insert %s rows",t.toString())},sequence:70,action:Mo,isVisible:Po}).add("add_column_before",{name:e=>{const t=lo(e);return 1===t?r("Insert column"):r("Insert %s columns",t.toString())},sequence:90,action:Oo,isVisible:Po}).add("insert_cell",{name:r("Insert cells"),sequence:100,isVisible:Po,separator:!0}).addChild("insert_cell_down",["insert_cell"],{name:r("Shift down"),sequence:10,action:Ro}).addChild("insert_cell_right",["insert_cell"],{name:r("Shift right"),sequence:20,action:Io}).add("delete_row",{name:Co,sequence:110,action:Eo,isVisible:Po}).add("delete_column",{name:yo,sequence:120,action:xo,isVisible:Po}).add("delete_cell",{name:r("Delete cells"),sequence:130,isVisible:Po}).addChild("delete_cell_up",["delete_cell"],{name:r("Shift up"),sequence:10,action:To}).addChild("delete_cell_down",["delete_cell"],{name:r("Shift left"),sequence:20,action:Ao}).add("insert_link",{name:e=>{const t=e.model.getters.getActiveSheetId(),{col:i,row:n}=e.model.getters.getPosition(),o=e.model.getters.getCell(t,i,n);return o&&o.isLink()?r("Edit link"):r("Insert link")},separator:!0,sequence:150,action:Do});const Vo=new Bn;Vo.add("cut",{name:r("Cut"),description:"Ctrl+X",sequence:10,action:mo}).add("copy",{name:r("Copy"),description:"Ctrl+C",sequence:20,isReadonlyAllowed:!0,action:po}).add("paste",{name:r("Paste"),description:"Ctrl+V",sequence:30,action:fo}).add("paste_special",{name:r("Paste special"),sequence:40,separator:!0,isVisible:So}).addChild("paste_value_only",["paste_special"],{name:r("Paste value only"),sequence:10,action:vo}).addChild("paste_format_only",["paste_special"],{name:r("Paste format only"),sequence:20,action:bo}).add("sort_columns",{name:e=>e.model.getters.getActiveCols().size>1?r("Sort columns"):r("Sort column"),sequence:50,isVisible:Po,separator:!0}).addChild("sort_ascending",["sort_columns"],{name:r("Ascending (A ⟶ Z)"),sequence:10,action:$o}).addChild("sort_descending",["sort_columns"],{name:r("Descending (Z ⟶ A)"),sequence:20,action:Lo}).add("add_column_before",{name:e=>{const t=lo(e);return 1===t?r("Insert column left"):r("Insert %s columns left",t.toString())},sequence:70,action:Oo}).add("add_column_after",{name:e=>{const t=lo(e);return 1===t?r("Insert column right"):r("Insert %s columns right",t.toString())},sequence:80,action:_o}).add("delete_column",{name:yo,sequence:90,action:xo,isVisible:e=>wo("COL",e)}).add("clear_column",{name:e=>{if(e.model.getters.getSelectedZones().length>1)return r("Clear columns");let t,i;const n=e.model.getters.getActiveCols();if(0!==n.size)t=Math.min(...n),i=Math.max(...n);else{const n=e.model.getters.getSelectedZones()[0];t=n.left,i=n.right}return t===i?r("Clear column %s",kt(t)):r("Clear columns %s - %s",kt(t),kt(i))},sequence:100,action:e=>{const t=e.model.getters.getActiveSheetId(),i=[...e.model.getters.getActiveCols()].map((i=>e.model.getters.getColsZone(t,i,i)));e.model.dispatch("DELETE_CONTENT",{target:i,sheetId:e.model.getters.getActiveSheetId()})}}).add("hide_columns",{name:e=>{const t=e.model.getters.getElementsFromSelection("COL");let i=t[0],n=t[t.length-1];return 1===t.length?r("Hide column %s",kt(i).toString()):n-i+1===t.length?r("Hide columns %s - %s",kt(i).toString(),kt(n).toString()):r("Hide columns")},sequence:85,action:e=>{const t=e.model.getters.getElementsFromSelection("COL");e.model.dispatch("HIDE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"COL",elements:t})},isVisible:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getElementsFromSelection("COL");return!e.model.getters.checkElementsIncludeAllVisibleHeaders(t,"COL",i)},separator:!0}).add("unhide_columns",{name:r("Unhide columns"),sequence:86,action:e=>{const t=e.model.getters.getElementsFromSelection("COL");e.model.dispatch("UNHIDE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"COL",elements:t})},isVisible:e=>{const t=e.model.getters.getHiddenColsGroups(e.model.getters.getActiveSheetId()).flat();return e.model.getters.getElementsFromSelection("COL").some((e=>t.includes(e)))},separator:!0}).add("conditional_formatting",{name:r("Conditional formatting"),sequence:110,action:Fo});const zo=new Bn;function Bo(e,t,i){if(e.model.getters.isReadonly())return;const n=e.model.getters.getSheetName(t),o=r("Rename Sheet");e.editText(o,(i=>{if(null===i||i===n)return;const o=e.model.dispatch("RENAME_SHEET",{sheetId:t,name:i});o.isSuccessful||(o.reasons.includes(10)&&Bo(e,t,r("The sheet name cannot be empty.")),o.reasons.includes(11)&&Bo(e,t,r("A sheet with the name %s already exists. Please select another name.",i)),o.reasons.includes(13)&&Bo(e,t,r("Some used characters are not allowed in a sheet name (Forbidden characters are %s).",ee.join(" "))))}),{placeholder:n,error:i})}zo.add("cut",{name:r("Cut"),sequence:10,description:"Ctrl+X",action:mo}).add("copy",{name:r("Copy"),description:"Ctrl+C",sequence:20,isReadonlyAllowed:!0,action:po}).add("paste",{name:r("Paste"),description:"Ctrl+V",sequence:30,action:fo}).add("paste_special",{name:r("Paste special"),sequence:40,separator:!0,isVisible:So}).addChild("paste_value_only",["paste_special"],{name:r("Paste value only"),sequence:10,action:vo}).addChild("paste_format_only",["paste_special"],{name:r("Paste format only"),sequence:20,action:bo}).add("add_row_before",{name:e=>{const t=co(e);return 1===t?r("Insert row above"):r("Insert %s rows above",t.toString())},sequence:50,action:Mo}).add("add_row_after",{name:e=>{const t=co(e);return 1===t?r("Insert row below"):r("Insert %s rows below",t.toString())},sequence:60,action:No}).add("delete_row",{name:Co,sequence:70,action:Eo,isVisible:e=>wo("ROW",e)}).add("clear_row",{name:e=>{if(e.model.getters.getSelectedZones().length>1)return r("Clear rows");let t,i;const n=e.model.getters.getActiveRows();if(0!==n.size)t=Math.min(...n),i=Math.max(...n);else{const n=e.model.getters.getSelectedZones()[0];t=n.top,i=n.bottom}return t===i?r("Clear row %s",(t+1).toString()):r("Clear rows %s - %s",(t+1).toString(),(i+1).toString())},sequence:80,action:e=>{const t=e.model.getters.getActiveSheetId(),i=[...e.model.getters.getActiveRows()].map((i=>e.model.getters.getRowsZone(t,i,i)));e.model.dispatch("DELETE_CONTENT",{target:i,sheetId:e.model.getters.getActiveSheetId()})}}).add("hide_rows",{name:e=>{const t=e.model.getters.getElementsFromSelection("ROW");let i=t[0],n=t[t.length-1];return 1===t.length?r("Hide row %s",(i+1).toString()):n-i+1===t.length?r("Hide rows %s - %s",(i+1).toString(),(n+1).toString()):r("Hide rows")},sequence:85,action:e=>{const t=e.model.getters.getElementsFromSelection("ROW");e.model.dispatch("HIDE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"ROW",elements:t})},isVisible:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getElementsFromSelection("ROW");return!e.model.getters.checkElementsIncludeAllVisibleHeaders(t,"ROW",i)},separator:!0}).add("unhide_rows",{name:r("Unhide rows"),sequence:86,action:e=>{const t=e.model.getters.getElementsFromSelection("ROW");e.model.dispatch("UNHIDE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId(),dimension:"ROW",elements:t})},isVisible:e=>{const t=e.model.getters.getHiddenRowsGroups(e.model.getters.getActiveSheetId()).flat();return e.model.getters.getElementsFromSelection("ROW").some((e=>t.includes(e)))},separator:!0}).add("conditional_formatting",{name:r("Conditional formatting"),sequence:90,action:Fo});const Ho=new Bn;Ho.add("delete",{name:r("Delete"),sequence:10,isVisible:e=>e.model.getters.getSheetIds().length>1,action:e=>e.askConfirmation(r("Are you sure you want to delete this sheet ?"),(()=>{e.model.dispatch("DELETE_SHEET",{sheetId:e.model.getters.getActiveSheetId()})}))}).add("duplicate",{name:r("Duplicate"),sequence:20,action:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.uuidGenerator.uuidv4();e.model.dispatch("DUPLICATE_SHEET",{sheetId:t,sheetIdTo:i}),e.model.dispatch("ACTIVATE_SHEET",{sheetIdFrom:t,sheetIdTo:i})}}).add("rename",{name:r("Rename"),sequence:30,action:e=>Bo(e,e.model.getters.getActiveSheetId())}).add("move_right",{name:r("Move right"),sequence:40,isVisible:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getVisibleSheetIds();return i.indexOf(t)!==i.length-1},action:e=>e.model.dispatch("MOVE_SHEET",{sheetId:e.model.getters.getActiveSheetId(),direction:"right"})}).add("move_left",{name:r("Move left"),sequence:50,isVisible:e=>{const t=e.model.getters.getActiveSheetId();return e.model.getters.getVisibleSheetIds()[0]!==t},action:e=>e.model.dispatch("MOVE_SHEET",{sheetId:e.model.getters.getActiveSheetId(),direction:"left"})}).add("hide_sheet",{name:r("Hide sheet"),sequence:60,isVisible:e=>1!==e.model.getters.getVisibleSheetIds().length,action:e=>e.model.dispatch("HIDE_SHEET",{sheetId:e.model.getters.getActiveSheetId()})});const Wo={Errors:{25:r("The range is invalid"),51:r("The argument is missing. Please provide a value"),52:r("The second argument is missing. Please provide a value"),53:r("The minpoint must be a number"),54:r("The midpoint must be a number"),55:r("The maxpoint must be a number"),56:r("The first value must be a number"),57:r("The second value must be a number"),47:r("Minimum must be smaller then Maximum"),50:r("Minimum must be smaller then Midpoint"),49:r("Midpoint must be smaller then Maximum"),48:r("Lower inflection point must be smaller than upper inflection point"),58:r("Invalid Minpoint formula"),60:r("Invalid Maxpoint formula"),59:r("Invalid Midpoint formula"),61:r("Invalid upper inflection point formula"),62:r("Invalid lower inflection point formula"),24:r("A range needs to be defined"),Unexpected:r("The rule is invalid for an unknown reason")},ColorScale:r("Color scale"),IconSet:r("Icon set")},Go={IsEmpty:r("Is empty"),IsNotEmpty:r("Is not empty"),ContainsText:r("Contains"),NotContains:r("Does not contain"),BeginsWith:r("Starts with"),EndsWith:r("Ends with"),Equal:r("Is equal to"),NotEqual:r("Is not equal to"),GreaterThan:r("Is greater than"),GreaterThanOrEqual:r("Is greater than or equal to"),LessThan:r("Is less than"),LessThanOrEqual:r("Is less than or equal to"),Between:r("Is between"),NotBetween:r("Is not between")},qo={Series:r("Series"),Errors:{Unexpected:r("The chart definition is invalid for an unknown reason"),32:r("The dataset is invalid"),33:r("Labels are invalid"),34:r("The key value is invalid"),35:r("The baseline value is invalid"),36:r("The data range is invalid"),37:r("A minimum range limit value is needed"),38:r("The minimum range limit value must be a number"),39:r("A maximum range limit value is needed"),40:r("The maximum range limit value must be a number"),41:r("Minimum range limit must be smaller than maximum range limit"),42:r("The lower inflection point value must be a number"),43:r("The upper inflection point value must be a number")}},Zo={Automatic:r("Automatic"),Number:r("Number"),Percent:r("Percent"),Currency:r("Currency"),CurrencyRounded:r("Currency rounded"),Date:r("Date"),Time:r("Time"),DateTime:r("Date time"),Duration:r("Duration"),CustomCurrency:r("Custom currency")},jo={Custom:r("Custom")},Yo=r("Merged cells are preventing this operation. Unmerge those cells and try again.");function Xo(e,t,i){const n=e.model.getters.getActiveSheetId(),o="COL"===t?"FREEZE_COLUMNS":"FREEZE_ROWS";e.model.dispatch(o,{sheetId:n,quantity:i}).isCancelledBecause(65)&&e.raiseError(Yo)}const Ko=new Bn;Ko.add("file",{name:r("File"),sequence:10}).add("edit",{name:r("Edit"),sequence:20}).add("view",{name:r("View"),sequence:30}).add("insert",{name:r("Insert"),sequence:40}).add("format",{name:r("Format"),sequence:50}).add("data",{name:r("Data"),sequence:60}).addChild("save",["file"],{name:r("Save"),description:"Ctrl+S",sequence:10,action:()=>console.log("Not implemented")}).addChild("undo",["edit"],{name:r("Undo"),description:"Ctrl+Z",sequence:10,action:e=>e.model.dispatch("REQUEST_UNDO")}).addChild("redo",["edit"],{name:r("Redo"),description:"Ctrl+Y",sequence:20,action:e=>e.model.dispatch("REQUEST_REDO"),separator:!0}).addChild("copy",["edit"],{name:r("Copy"),description:"Ctrl+C",sequence:30,isReadonlyAllowed:!0,action:po}).addChild("cut",["edit"],{name:r("Cut"),description:"Ctrl+X",sequence:40,action:mo}).addChild("paste",["edit"],{name:r("Paste"),description:"Ctrl+V",sequence:50,action:fo}).addChild("paste_special",["edit"],{name:r("Paste special"),sequence:60,separator:!0,isVisible:So}).addChild("paste_special_value",["edit","paste_special"],{name:r("Paste value only"),sequence:10,action:vo}).addChild("paste_special_format",["edit","paste_special"],{name:r("Paste format only"),sequence:20,action:bo}).addChild("sort_range",["data"],{name:r("Sort range"),sequence:62,isVisible:Po,separator:!0}).addChild("sort_ascending",["data","sort_range"],{name:r("Ascending (A ⟶ Z)"),sequence:10,action:$o}).addChild("sort_descending",["data","sort_range"],{name:r("Descending (Z ⟶ A)"),sequence:20,action:Lo}).addChild("find_and_replace",["edit"],{name:r("Find and replace"),description:"Ctrl+H",sequence:65,isReadonlyAllowed:!0,action:e=>{e.openSidePanel("FindAndReplace",{})},separator:!0}).addChild("edit_delete_cell_values",["edit"],{name:r("Delete values"),sequence:70,action:e=>e.model.dispatch("DELETE_CONTENT",{sheetId:e.model.getters.getActiveSheetId(),target:e.model.getters.getSelectedZones()})}).addChild("edit_delete_row",["edit"],{name:Co,sequence:80,action:Eo,isVisible:e=>wo("ROW",e)}).addChild("edit_delete_column",["edit"],{name:yo,sequence:90,action:xo,isVisible:e=>wo("COL",e)}).addChild("edit_delete_cell_shift_up",["edit"],{name:r("Delete cell and shift up"),sequence:93,action:To}).addChild("edit_delete_cell_shift_left",["edit"],{name:r("Delete cell and shift left"),sequence:97,action:Ao}).addChild("edit_unhide_columns",["edit"],{name:r("Unhide all columns"),sequence:100,action:e=>{const t=e.model.getters.getActiveSheetId();e.model.dispatch("UNHIDE_COLUMNS_ROWS",{sheetId:t,dimension:"COL",elements:Array.from(Array(e.model.getters.getNumberCols(t)).keys())})},isVisible:e=>e.model.getters.getHiddenColsGroups(e.model.getters.getActiveSheetId()).length>0}).addChild("edit_unhide_rows",["edit"],{name:r("Unhide all rows"),sequence:100,action:e=>{const t=e.model.getters.getActiveSheetId();e.model.dispatch("UNHIDE_COLUMNS_ROWS",{sheetId:t,dimension:"ROW",elements:Array.from(Array(e.model.getters.getNumberRows(t)).keys())})},isVisible:e=>e.model.getters.getHiddenRowsGroups(e.model.getters.getActiveSheetId()).length>0}).addChild("insert_row_before",["insert"],{name:e=>{const t=co(e);return 1===t?r("Row above"):r("%s Rows above",t.toString())},sequence:10,action:Mo,isVisible:e=>0===e.model.getters.getActiveCols().size}).addChild("insert_row_after",["insert"],{name:e=>{const t=co(e);return 1===t?r("Row below"):r("%s Rows below",t.toString())},sequence:20,action:No,isVisible:e=>0===e.model.getters.getActiveCols().size,separator:!0}).addChild("insert_column_before",["insert"],{name:e=>{const t=lo(e);return 1===t?r("Column left"):r("%s Columns left",t.toString())},sequence:30,action:Oo,isVisible:e=>0===e.model.getters.getActiveRows().size}).addChild("insert_column_after",["insert"],{name:e=>{const t=lo(e);return 1===t?r("Column right"):r("%s Columns right",t.toString())},sequence:40,action:_o,isVisible:e=>0===e.model.getters.getActiveRows().size,separator:!0}).addChild("insert_insert_cell_shift_down",["insert"],{name:r("Insert cells and shift down"),sequence:43,action:Ro}).addChild("insert_insert_cell_shift_right",["insert"],{name:r("Insert cells and shift right"),sequence:47,action:Io,separator:!0}).addChild("insert_chart",["insert"],{name:r("Chart"),sequence:50,action:e=>{const t=e.model.getters,i=t.getSelectedZone();let n=i;const o=e.model.uuidGenerator.uuidv4();let r;i.left!==i.right&&(n={...i,left:i.left+1});const s=[Ni(n)],a=t.getActiveSheetId(),l={width:536,height:335},{x:c,y:h}=t.getMainViewportCoordinates(),{scrollX:d,scrollY:u}=t.getActiveSheetScrollInfo(),{width:g,height:p}=t.getVisibleRect(t.getActiveMainViewport()),m={x:c+d+Math.max(0,(g-l.width)/2),y:h+u+Math.max(0,(p-l.height)/2)};let f="";const v=e.model.getters.getCellsInZone(a,{...n,bottom:n.top}),b=!!v.find((e=>e&&e.evaluated.type!==rn.number));if(b){const t=v.reduce(((t,i)=>{const n=i&&i.evaluated.type!==rn.error&&e.model.getters.getCellText(i);return n&&t.push(n),t}),[]),i=t.splice(-1)[0];f=t.join(", "),i&&(f+=(f?" "+e._t("and")+" ":"")+i)}i.left!==i.right&&(r=Ni({...i,right:i.left,top:b?i.top+1:i.top}));const S=n.right===n.left?"none":"top";e.model.dispatch("CREATE_CHART",{sheetId:a,id:o,position:m,size:l,definition:{title:f,dataSets:s,labelRange:r,type:"bar",stacked:!1,dataSetsHaveTitle:b,verticalAxisPosition:"left",legendPosition:S}}),e.model.dispatch("SELECT_FIGURE",{id:o}),e.openSidePanel("ChartPanel")}}).addChild("insert_link",["insert"],{name:r("Link"),separator:!0,sequence:60,action:Do}).addChild("insert_sheet",["insert"],{name:r("New sheet"),sequence:70,action:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getSheetIds().indexOf(t)+1,n=e.model.uuidGenerator.uuidv4();e.model.dispatch("CREATE_SHEET",{sheetId:n,position:i}),e.model.dispatch("ACTIVATE_SHEET",{sheetIdFrom:t,sheetIdTo:n})},separator:!0}).addChild("unfreeze_panes",["view"],{name:r("Unfreeze"),sequence:4,isVisible:e=>{const{xSplit:t,ySplit:i}=e.model.getters.getPaneDivisions(e.model.getters.getActiveSheetId());return t+i>0},action:e=>e.model.dispatch("UNFREEZE_COLUMNS_ROWS",{sheetId:e.model.getters.getActiveSheetId()})}).addChild("freeze_panes",["view"],{name:r("Freeze"),sequence:5,separator:!0}).addChild("unfreeze_rows",["view","freeze_panes"],{name:r("No rows"),action:e=>e.model.dispatch("UNFREEZE_ROWS",{sheetId:e.model.getters.getActiveSheetId()}),isReadonlyAllowed:!0,sequence:5,isVisible:e=>!!e.model.getters.getPaneDivisions(e.model.getters.getActiveSheetId()).ySplit}).addChild("freeze_first_row",["view","freeze_panes"],{name:r("1 row"),action:e=>Xo(e,"ROW",1),isReadonlyAllowed:!0,sequence:10}).addChild("freeze_second_row",["view","freeze_panes"],{name:r("2 rows"),action:e=>Xo(e,"ROW",2),isReadonlyAllowed:!0,sequence:15}).addChild("freeze_current_row",["view","freeze_panes"],{name:r("Up to current row"),action:e=>{const{bottom:t}=e.model.getters.getSelectedZone();Xo(e,"ROW",t+1)},isReadonlyAllowed:!0,sequence:20,separator:!0}).addChild("unfreeze_columns",["view","freeze_panes"],{name:r("No columns"),action:e=>e.model.dispatch("UNFREEZE_COLUMNS",{sheetId:e.model.getters.getActiveSheetId()}),isReadonlyAllowed:!0,sequence:25,isVisible:e=>!!e.model.getters.getPaneDivisions(e.model.getters.getActiveSheetId()).xSplit}).addChild("freeze_first_col",["view","freeze_panes"],{name:r("1 column"),action:e=>Xo(e,"COL",1),isReadonlyAllowed:!0,sequence:30}).addChild("freeze_second_col",["view","freeze_panes"],{name:r("2 columns"),action:e=>Xo(e,"COL",2),isReadonlyAllowed:!0,sequence:35}).addChild("freeze_current_col",["view","freeze_panes"],{name:r("Up to current column"),action:e=>{const{right:t}=e.model.getters.getSelectedZone();Xo(e,"COL",t+1)},isReadonlyAllowed:!0,sequence:40}).addChild("view_gridlines",["view"],{name:e=>e.model.getters.getGridLinesVisibility(e.model.getters.getActiveSheetId())?r("Hide gridlines"):r("Show gridlines"),action:e=>{const t=e.model.getters.getActiveSheetId();e.model.dispatch("SET_GRID_LINES_VISIBILITY",{sheetId:t,areGridLinesVisible:!e.model.getters.getGridLinesVisibility(t)})},sequence:10}).addChild("view_formulas",["view"],{name:e=>e.model.getters.shouldShowFormulas()?r("Hide formulas"):r("Show formulas"),action:e=>e.model.dispatch("SET_FORMULA_VISIBILITY",{show:!e.model.getters.shouldShowFormulas()}),isReadonlyAllowed:!0,sequence:15}).addChild("format_number",["format"],{name:r("Numbers"),sequence:10,separator:!0}).addChild("format_number_automatic",["format","format_number"],{name:Zo.Automatic,sequence:10,separator:!0,action:e=>ho(e,"")}).addChild("format_number_number",["format","format_number"],{name:Zo.Number,description:"1,000.12",sequence:20,action:e=>ho(e,"#,##0.00")}).addChild("format_number_percent",["format","format_number"],{name:Zo.Percent,description:"10.12%",sequence:30,separator:!0,action:e=>ho(e,"0.00%")}).addChild("format_number_currency",["format","format_number"],{name:Zo.Currency,description:"$1,000.12",sequence:37,action:e=>ho(e,"[$$]#,##0.00")}).addChild("format_number_currency_rounded",["format","format_number"],{name:Zo.CurrencyRounded,description:"$1,000",sequence:38,action:e=>ho(e,"[$$]#,##0")}).addChild("format_custom_currency",["format","format_number"],{name:Zo.CustomCurrency,sequence:39,separator:!0,action:e=>{e.openSidePanel("CustomCurrency",{})}}).addChild("format_number_date",["format","format_number"],{name:Zo.Date,description:"9/26/2008",sequence:40,action:e=>ho(e,"m/d/yyyy")}).addChild("format_number_time",["format","format_number"],{name:Zo.Time,description:"10:43:00 PM",sequence:50,action:e=>ho(e,"hh:mm:ss a")}).addChild("format_number_date_time",["format","format_number"],{name:Zo.DateTime,description:"9/26/2008 22:43:00",sequence:60,action:e=>ho(e,"m/d/yyyy hh:mm:ss")}).addChild("format_number_duration",["format","format_number"],{name:Zo.Duration,description:"27:51:38",sequence:70,separator:!0,action:e=>ho(e,"hhhh:mm:ss")}).addChild("format_bold",["format"],{name:r("Bold"),sequence:20,description:"Ctrl+B",action:e=>uo(e,{bold:!e.model.getters.getCurrentStyle().bold})}).addChild("format_italic",["format"],{name:r("Italic"),sequence:30,description:"Ctrl+I",action:e=>uo(e,{italic:!e.model.getters.getCurrentStyle().italic})}).addChild("format_underline",["format"],{name:r("Underline"),description:"Ctrl+U",sequence:40,action:e=>uo(e,{underline:!e.model.getters.getCurrentStyle().underline})}).addChild("format_strikethrough",["format"],{name:r("Strikethrough"),sequence:50,action:e=>uo(e,{strikethrough:!e.model.getters.getCurrentStyle().strikethrough}),separator:!0}).addChild("format_font_size",["format"],{name:r("Font size"),sequence:60}).addChild("format_wrapping",["format"],{name:r("Wrapping"),sequence:70,separator:!0}).addChild("format_wrapping_overflow",["format","format_wrapping"],{name:r("Overflow"),sequence:10,action:e=>uo(e,{wrapping:"overflow"})}).addChild("format_wrapping_wrap",["format","format_wrapping"],{name:r("Wrap"),sequence:20,action:e=>uo(e,{wrapping:"wrap"})}).addChild("format_wrapping_clip",["format","format_wrapping"],{name:r("Clip"),sequence:30,action:e=>uo(e,{wrapping:"clip"})}).addChild("format_cf",["format"],{name:r("Conditional formatting"),sequence:80,action:Fo,separator:!0}).addChild("format_clearFormat",["format"],{name:r("Clear formatting"),sequence:90,action:e=>{e.model.dispatch("CLEAR_FORMATTING",{sheetId:e.model.getters.getActiveSheetId(),target:e.model.getters.getSelectedZones()})},separator:!0}).addChild("add_data_filter",["data"],{name:r("Add Filter"),sequence:20,action:e=>{const t=e.model.getters.getActiveSheetId(),i=e.model.getters.getSelection().zones;no(e,t,i)},isVisible:e=>!ko(e),isEnabled:e=>(e=>Qi(...e.model.getters.getSelectedZones()))(e)}).addChild("remove_data_filter",["data"],{name:r("Remove Filter"),sequence:20,action:e=>{const t=e.model.getters.getActiveSheetId();e.model.dispatch("REMOVE_FILTER_TABLE",{sheetId:t,target:e.model.getters.getSelectedZones()})},isVisible:ko});for(let e of re)Ko.addChild(`format_font_size_${e.pt}`,["format","format_font_size"],{name:e.pt.toString(),sequence:e.pt,action:t=>uo(t,{fontSize:e.pt})});const Qo=new class extends Ji{addTransformation(e,t,i){for(let n of t)this.content[n]||(this.content[n]=new Map),this.content[n].set(e,i);return this}getTransformation(e,t){return this.content[e]&&this.content[e].get(t)}},Jo=new Ii;bn`
|
|
273
273
|
.o-selection {
|
|
274
274
|
.o-selection-input {
|
|
275
275
|
display: flex;
|
|
@@ -2432,4 +2432,4 @@
|
|
|
2432
2432
|
<tableParts count="${e.filterTables.length}">
|
|
2433
2433
|
${Ef(a)}
|
|
2434
2434
|
</tableParts>
|
|
2435
|
-
`}var gS;!function(e){e[e.Ready=0]="Ready",e[e.Running=1]="Running",e[e.RunningCore=2]="RunningCore",e[e.Finalizing=3]="Finalizing"}(gS||(gS={}));const pS={},mS={MIN_ROW_HEIGHT:10,MIN_COL_WIDTH:5,HEADER_HEIGHT:N,HEADER_WIDTH:O,TOPBAR_HEIGHT:63,BOTTOMBAR_HEIGHT:36,DEFAULT_CELL_WIDTH:_,DEFAULT_CELL_HEIGHT:F,SCROLLBAR_WIDTH:D},fS={autofillModifiersRegistry:on,autofillRulesRegistry:mn,cellMenuRegistry:Uo,colMenuRegistry:Vo,linkMenuRegistry:Hn,functionRegistry:Pu,uiPluginRegistry:ib,corePluginRegistry:tb,rowMenuRegistry:zo,sidePanelRegistry:fs,figureRegistry:Yn,sheetMenuRegistry:Ho,chartSidePanelComponentRegistry:as,chartComponentRegistry:tn,chartRegistry:en,topbarMenuRegistry:Ko,topbarComponentRegistry:vs,clickableCellRegistry:nb,otRegistry:Qo,inverseCommandRegistry:Xn,cellRegistry:Zn,cellPopoverRegistry:qn},vS={LinkCell:Ip},bS={args:Ns,toBoolean:Bs,toJsDate:Hs,toNumber:$s,toString:Ps,toXC:Pt,toZone:Ai,toCartesian:Lt,numberToLetters:kt,createFullMenuItem:Vn,UuidGenerator:Ii,formatValue:Xt,computeTextWidth:_e,isMarkdownLink:He,parseMarkdownLink:Ge,markdownLink:We,createEmptyWorkbookData:Zf,createEmptySheet:qf,createEmptyExcelSheet:jf,getDefaultChartJsRuntime:Rr,chartFontColor:fr,getMenuChildren:Tn,ChartColors:mr,EvaluationError:c,CellErrorLevel:l,getFillingMode:Ar,rgbaToHex:bt,colorToRGBA:St,positionToZone:Yi},SS={ChartPanel:ls,ChartFigure:ws,ChartJsComponent:nn,Grid:Sp,GridOverlay:np,ScorecardChart:Ss,LineConfigPanel:ns,LineBarPieDesignPanel:Jr,BarConfigPanel:ir,LineBarPieConfigPanel:tr,GaugeChartConfigPanel:ts,GaugeChartDesignPanel:is,ScorecardChartConfigPanel:rs,ScorecardChartDesignPanel:ss};e.AbstractChart=nr,e.CorePlugin=Yf,e.DATETIME_FORMAT=Y,e.DispatchResult=dn,e.EvaluationError=c,e.Model=class extends Pv{constructor(e={},i={},n=[],o=new Ii,r=!0){super(),this.corePlugins=[],this.uiPlugins=[],this.isReplayingCommand=!1,this.renderers=[],this.status=0,this.handlers=[],this.coreHandlers=[],this.dispatch=(e,t)=>{const i={type:e,...t};let n=this.status;if(this.getters.isReadonly()&&(o=i,!ln.has(o.type)))return new dn(67);var o;if(!this.session.canApplyOptimisticUpdate())return new dn(64);switch(n){case 0:const t=this.checkDispatchAllowed(i);if(!t.isSuccessful)return t;this.status=1;const{changes:n,commands:o}=this.state.recordChanges((()=>{hn(i)&&this.state.addCommand(i),this.dispatchToHandlers(this.handlers,i),this.finalize()}));this.session.save(o,n),this.status=0,this.trigger("update");break;case 1:if(hn(i)){const e=this.checkDispatchAllowed(i);if(!e.isSuccessful)return e;this.state.addCommand(i),this.dispatchToHandlers(this.handlers,i)}else this.dispatchToHandlers(this.handlers,i);break;case 3:throw new Error("Cannot dispatch commands in the finalize state");case 2:if(hn(i))throw new Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,i)}return dn.Success},this.dispatchFromCorePlugin=(e,t)=>{const i={type:e,...t},n=this.status;this.status=2;const o=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(o,i),this.status=n,dn.Success},n=Wf(e,n);const s=Bf(e,r);this.state=new Ab,this.uuidGenerator=o,this.config=this.setupConfig(i),this.session=this.setupSession(s.revisionId),this.config.moveClient=this.session.move.bind(this.session),this.history=new xb(this.dispatchFromCorePlugin,this.session),this.coreGetters={},this.range=new Rb(this.coreGetters),this.coreGetters.getRangeString=this.range.getRangeString.bind(this.range),this.coreGetters.getRangeFromSheetXC=this.range.getRangeFromSheetXC.bind(this.range),this.coreGetters.createAdaptedRanges=this.range.createAdaptedRanges.bind(this.range),this.coreGetters.getRangeDataFromXc=this.range.getRangeDataFromXc.bind(this.range),this.coreGetters.getRangeDataFromZone=this.range.getRangeDataFromZone.bind(this.range),this.coreGetters.getRangeFromRangeData=this.range.getRangeFromRangeData.bind(this.range),this.coreGetters.getSelectionRangeString=this.range.getSelectionRangeString.bind(this.range),this.getters={isReadonly:()=>"readonly"===this.config.mode||"dashboard"===this.config.mode,isDashboard:()=>"dashboard"===this.config.mode,canUndo:this.history.canUndo.bind(this.history),canRedo:this.history.canRedo.bind(this.history),getClient:this.session.getClient.bind(this.session),getConnectedClients:this.session.getConnectedClients.bind(this.session),isFullySynchronized:this.session.isFullySynchronized.bind(this.session)},this.uuidGenerator.setIsFastStrategy(!0),this.selection=new Tb(this.getters),this.coreHandlers.push(this.range),this.handlers.push(this.range);for(let e of tb.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters);for(let e of ib.getAll())this.setupUiPlugin(e);this.uuidGenerator.setIsFastStrategy(!1),this.handlers.push(this.history),this.dispatch("START"),this.selection.observe(this,{handleEvent:()=>this.trigger("update")}),this.setupSessionEvents(),this.session.loadInitialMessages(n),this.joinSession(),i.snapshotRequested&&this.session.snapshot(this.exportData()),t.markRaw(this)}joinSession(){this.session.join(this.config.client)}leaveSession(){this.session.leave()}setupUiPlugin(e){const t=new e(this.getters,this.state,this.dispatch,this.config,this.selection);for(let i of e.getters){if(!(i in t))throw new Error(`Invalid getter name: ${i} for plugin ${t.constructor}`);if(i in this.getters)throw new Error(`Getter "${i}" is already defined.`);this.getters[i]=t[i].bind(t)}this.uiPlugins.push(t),this.handlers.push(t);const i=e.layers.map((e=>[t,e]));this.renderers.push(...i),this.renderers.sort(((e,t)=>e[1]-t[1]))}setupCorePlugin(e,t){const i=new e(this.coreGetters,this.state,this.range,this.dispatchFromCorePlugin,this.config,this.uuidGenerator);for(let t of e.getters){if(!(t in i))throw new Error(`Invalid getter name: ${t} for plugin ${i.constructor}`);if(t in this.coreGetters)throw new Error(`Getter "${t}" is already defined.`);this.coreGetters[t]=i[t].bind(i)}i.import(t),this.corePlugins.push(i),this.coreHandlers.push(i),this.handlers.push(i)}onRemoteRevisionReceived({commands:e}){for(let t of e){const e=this.status;this.status=2,this.dispatchToHandlers(this.uiPlugins,t),this.status=e}this.finalize()}setupSession(e){return new Zv(wb(e,this.state.recordChanges.bind(this.state),(e=>{this.checkDispatchAllowed(e).isSuccessful&&(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-redone",this,this.finalize),this.session.on("revision-undone",this,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){const t=e.client||{id:this.uuidGenerator.uuidv4(),name:r("Anonymous").toString()},i=e.transportService||new gb;return{...e,mode:e.mode||"normal",evalContext:e.evalContext||{},transportService:i,client:t,moveClient:()=>{},snapshotRequested:!1,notifyUI:e=>this.trigger("notify-ui",e)}}checkDispatchAllowed(e){const t=this.handlers.map((t=>t.allowDispatch(e)));return t.some((e=>0!==e))?new dn(t.flat()):dn.Success}finalize(){this.status=3;for(const e of this.handlers)e.finalize();this.status=0}dispatchToHandlers(e,t){t=Ae(t);for(const i of e)i.beforeHandle(t);for(const i of e)i.handle(t)}drawGrid(e){for(let[t,i]of this.renderers)e.ctx.save(),t.drawGrid(e,i),e.ctx.restore()}exportData(){let e=Zf();for(let t of this.handlers)t instanceof Yf&&t.export(e);return e.revisionId=this.session.getRevisionId()||K,e=Ae(e),e}updateMode(e){"normal"!==e&&this.dispatch("STOP_EDITION",{cancel:!0}),this.config.mode=e,this.trigger("update")}exportXLSX(){this.dispatch("EVALUATE_CELLS");let e={...Zf(),sheets:[jf(zf,"Sheet1")]};for(let t of this.handlers)t instanceof _g&&t.exportForExcel(e);return e=Ae(e),dS(e)}},e.Registry=Ji,e.Revision=Gv,e.SPREADSHEET_DIMENSIONS=mS,e.Spreadsheet=ub,e.UIPlugin=Fg,e.__info__=pS,e.addFunction=function(e,t){Pu.add(e,t)},e.astToFormula=gg,e.cellTypes=vS,e.compile=Tg,e.components=SS,e.convertAstNodes=ug,e.coreTypes=cn,e.findCellInNewZone=Zi,e.functionCache=Ig,e.helpers=bS,e.invalidateEvaluationCommands=sn,e.load=Bf,e.parse=hg,e.readonlyAllowedCommands=ln,e.registries=fS,e.setTranslationMethod=function(e){i=e},e.tokenize=Bu,Object.defineProperty(e,"__esModule",{value:!0}),pS.version="16.0.
|
|
2435
|
+
`}var gS;!function(e){e[e.Ready=0]="Ready",e[e.Running=1]="Running",e[e.RunningCore=2]="RunningCore",e[e.Finalizing=3]="Finalizing"}(gS||(gS={}));const pS={},mS={MIN_ROW_HEIGHT:10,MIN_COL_WIDTH:5,HEADER_HEIGHT:N,HEADER_WIDTH:O,TOPBAR_HEIGHT:63,BOTTOMBAR_HEIGHT:36,DEFAULT_CELL_WIDTH:_,DEFAULT_CELL_HEIGHT:F,SCROLLBAR_WIDTH:D},fS={autofillModifiersRegistry:on,autofillRulesRegistry:mn,cellMenuRegistry:Uo,colMenuRegistry:Vo,linkMenuRegistry:Hn,functionRegistry:Pu,uiPluginRegistry:ib,corePluginRegistry:tb,rowMenuRegistry:zo,sidePanelRegistry:fs,figureRegistry:Yn,sheetMenuRegistry:Ho,chartSidePanelComponentRegistry:as,chartComponentRegistry:tn,chartRegistry:en,topbarMenuRegistry:Ko,topbarComponentRegistry:vs,clickableCellRegistry:nb,otRegistry:Qo,inverseCommandRegistry:Xn,cellRegistry:Zn,cellPopoverRegistry:qn},vS={LinkCell:Ip},bS={args:Ns,toBoolean:Bs,toJsDate:Hs,toNumber:$s,toString:Ps,toXC:Pt,toZone:Ai,toCartesian:Lt,numberToLetters:kt,createFullMenuItem:Vn,UuidGenerator:Ii,formatValue:Xt,computeTextWidth:_e,isMarkdownLink:He,parseMarkdownLink:Ge,markdownLink:We,createEmptyWorkbookData:Zf,createEmptySheet:qf,createEmptyExcelSheet:jf,getDefaultChartJsRuntime:Rr,chartFontColor:fr,getMenuChildren:Tn,ChartColors:mr,EvaluationError:c,CellErrorLevel:l,getFillingMode:Ar,rgbaToHex:bt,colorToRGBA:St,positionToZone:Yi},SS={ChartPanel:ls,ChartFigure:ws,ChartJsComponent:nn,Grid:Sp,GridOverlay:np,ScorecardChart:Ss,LineConfigPanel:ns,LineBarPieDesignPanel:Jr,BarConfigPanel:ir,LineBarPieConfigPanel:tr,GaugeChartConfigPanel:ts,GaugeChartDesignPanel:is,ScorecardChartConfigPanel:rs,ScorecardChartDesignPanel:ss};e.AbstractChart=nr,e.CorePlugin=Yf,e.DATETIME_FORMAT=Y,e.DispatchResult=dn,e.EvaluationError=c,e.Model=class extends Pv{constructor(e={},i={},n=[],o=new Ii,r=!0){super(),this.corePlugins=[],this.uiPlugins=[],this.isReplayingCommand=!1,this.renderers=[],this.status=0,this.handlers=[],this.coreHandlers=[],this.dispatch=(e,t)=>{const i={type:e,...t};let n=this.status;if(this.getters.isReadonly()&&(o=i,!ln.has(o.type)))return new dn(67);var o;if(!this.session.canApplyOptimisticUpdate())return new dn(64);switch(n){case 0:const t=this.checkDispatchAllowed(i);if(!t.isSuccessful)return t;this.status=1;const{changes:n,commands:o}=this.state.recordChanges((()=>{hn(i)&&this.state.addCommand(i),this.dispatchToHandlers(this.handlers,i),this.finalize()}));this.session.save(o,n),this.status=0,this.trigger("update");break;case 1:if(hn(i)){const e=this.checkDispatchAllowed(i);if(!e.isSuccessful)return e;this.state.addCommand(i),this.dispatchToHandlers(this.handlers,i)}else this.dispatchToHandlers(this.handlers,i);break;case 3:throw new Error("Cannot dispatch commands in the finalize state");case 2:if(hn(i))throw new Error(`A UI plugin cannot dispatch ${e} while handling a core command`);this.dispatchToHandlers(this.handlers,i)}return dn.Success},this.dispatchFromCorePlugin=(e,t)=>{const i={type:e,...t},n=this.status;this.status=2;const o=this.isReplayingCommand?this.coreHandlers:this.handlers;return this.dispatchToHandlers(o,i),this.status=n,dn.Success},n=Wf(e,n);const s=Bf(e,r);this.state=new Ab,this.uuidGenerator=o,this.config=this.setupConfig(i),this.session=this.setupSession(s.revisionId),this.config.moveClient=this.session.move.bind(this.session),this.history=new xb(this.dispatchFromCorePlugin,this.session),this.coreGetters={},this.range=new Rb(this.coreGetters),this.coreGetters.getRangeString=this.range.getRangeString.bind(this.range),this.coreGetters.getRangeFromSheetXC=this.range.getRangeFromSheetXC.bind(this.range),this.coreGetters.createAdaptedRanges=this.range.createAdaptedRanges.bind(this.range),this.coreGetters.getRangeDataFromXc=this.range.getRangeDataFromXc.bind(this.range),this.coreGetters.getRangeDataFromZone=this.range.getRangeDataFromZone.bind(this.range),this.coreGetters.getRangeFromRangeData=this.range.getRangeFromRangeData.bind(this.range),this.coreGetters.getSelectionRangeString=this.range.getSelectionRangeString.bind(this.range),this.getters={isReadonly:()=>"readonly"===this.config.mode||"dashboard"===this.config.mode,isDashboard:()=>"dashboard"===this.config.mode,canUndo:this.history.canUndo.bind(this.history),canRedo:this.history.canRedo.bind(this.history),getClient:this.session.getClient.bind(this.session),getConnectedClients:this.session.getConnectedClients.bind(this.session),isFullySynchronized:this.session.isFullySynchronized.bind(this.session)},this.uuidGenerator.setIsFastStrategy(!0),this.selection=new Tb(this.getters),this.coreHandlers.push(this.range),this.handlers.push(this.range);for(let e of tb.getAll())this.setupCorePlugin(e,s);Object.assign(this.getters,this.coreGetters);for(let e of ib.getAll())this.setupUiPlugin(e);this.uuidGenerator.setIsFastStrategy(!1),this.handlers.push(this.history),this.dispatch("START"),this.selection.observe(this,{handleEvent:()=>this.trigger("update")}),this.setupSessionEvents(),this.session.loadInitialMessages(n),this.joinSession(),i.snapshotRequested&&this.session.snapshot(this.exportData()),t.markRaw(this)}joinSession(){this.session.join(this.config.client)}leaveSession(){this.session.leave()}setupUiPlugin(e){const t=new e(this.getters,this.state,this.dispatch,this.config,this.selection);for(let i of e.getters){if(!(i in t))throw new Error(`Invalid getter name: ${i} for plugin ${t.constructor}`);if(i in this.getters)throw new Error(`Getter "${i}" is already defined.`);this.getters[i]=t[i].bind(t)}this.uiPlugins.push(t),this.handlers.push(t);const i=e.layers.map((e=>[t,e]));this.renderers.push(...i),this.renderers.sort(((e,t)=>e[1]-t[1]))}setupCorePlugin(e,t){const i=new e(this.coreGetters,this.state,this.range,this.dispatchFromCorePlugin,this.config,this.uuidGenerator);for(let t of e.getters){if(!(t in i))throw new Error(`Invalid getter name: ${t} for plugin ${i.constructor}`);if(t in this.coreGetters)throw new Error(`Getter "${t}" is already defined.`);this.coreGetters[t]=i[t].bind(i)}i.import(t),this.corePlugins.push(i),this.coreHandlers.push(i),this.handlers.push(i)}onRemoteRevisionReceived({commands:e}){for(let t of e){const e=this.status;this.status=2,this.dispatchToHandlers(this.uiPlugins,t),this.status=e}this.finalize()}setupSession(e){return new Zv(wb(e,this.state.recordChanges.bind(this.state),(e=>{this.checkDispatchAllowed(e).isSuccessful&&(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-redone",this,this.finalize),this.session.on("revision-undone",this,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){const t=e.client||{id:this.uuidGenerator.uuidv4(),name:r("Anonymous").toString()},i=e.transportService||new gb;return{...e,mode:e.mode||"normal",evalContext:e.evalContext||{},transportService:i,client:t,moveClient:()=>{},snapshotRequested:!1,notifyUI:e=>this.trigger("notify-ui",e)}}checkDispatchAllowed(e){const t=this.handlers.map((t=>t.allowDispatch(e)));return t.some((e=>0!==e))?new dn(t.flat()):dn.Success}finalize(){this.status=3;for(const e of this.handlers)e.finalize();this.status=0}dispatchToHandlers(e,t){t=Ae(t);for(const i of e)i.beforeHandle(t);for(const i of e)i.handle(t)}drawGrid(e){for(let[t,i]of this.renderers)e.ctx.save(),t.drawGrid(e,i),e.ctx.restore()}exportData(){let e=Zf();for(let t of this.handlers)t instanceof Yf&&t.export(e);return e.revisionId=this.session.getRevisionId()||K,e=Ae(e),e}updateMode(e){"normal"!==e&&this.dispatch("STOP_EDITION",{cancel:!0}),this.config.mode=e,this.trigger("update")}exportXLSX(){this.dispatch("EVALUATE_CELLS");let e={...Zf(),sheets:[jf(zf,"Sheet1")]};for(let t of this.handlers)t instanceof _g&&t.exportForExcel(e);return e=Ae(e),dS(e)}},e.Registry=Ji,e.Revision=Gv,e.SPREADSHEET_DIMENSIONS=mS,e.Spreadsheet=ub,e.UIPlugin=Fg,e.__info__=pS,e.addFunction=function(e,t){Pu.add(e,t)},e.astToFormula=gg,e.cellTypes=vS,e.compile=Tg,e.components=SS,e.convertAstNodes=ug,e.coreTypes=cn,e.findCellInNewZone=Zi,e.functionCache=Ig,e.helpers=bS,e.invalidateEvaluationCommands=sn,e.load=Bf,e.parse=hg,e.readonlyAllowedCommands=ln,e.registries=fS,e.setTranslationMethod=function(e){i=e},e.tokenize=Bu,Object.defineProperty(e,"__esModule",{value:!0}),pS.version="16.0.34",pS.date="2024-03-12T07:54:05.304Z",pS.hash="e923ddd"}(this.o_spreadsheet=this.o_spreadsheet||{},owl);
|
package/dist/o_spreadsheet.xml
CHANGED
|
@@ -3238,7 +3238,7 @@ https://fontawesome.com/license -->
|
|
|
3238
3238
|
</t>
|
|
3239
3239
|
</odoo>
|
|
3240
3240
|
<!--
|
|
3241
|
-
__info__.version = '16.0.
|
|
3242
|
-
__info__.date = '2024-
|
|
3243
|
-
__info__.hash = '
|
|
3241
|
+
__info__.version = '16.0.34';
|
|
3242
|
+
__info__.date = '2024-03-12T07:54:27.992Z';
|
|
3243
|
+
__info__.hash = 'e923ddd';
|
|
3244
3244
|
-->
|