2016-03-11 00:48:53 +00:00
<!DOCTYPE html>
< html >
< head >
< title > ONLYOFFICE Document Editor< / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=IE8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" >
2017-07-04 15:15:09 +00:00
<!-- splash -->
2016-03-11 00:48:53 +00:00
< style type = "text/css" >
2021-02-22 13:58:25 +00:00
.theme-dark {
--toolbar-header-document: #2a2a2a;
--background-toolbar: #404040;
--background-normal: #333;
--border-toolbar: #2a2a2a;
--highlight-button-pressed: #606060;
--canvas-background: #666666;
/*--canvas-content-background: #fff;*/
--canvas-page-border: #555;
}
2016-03-11 00:48:53 +00:00
.loadmask {
left: 0;
top: 0;
position: absolute;
height: 100%;
width: 100%;
overflow: hidden;
border: none;
2021-02-22 13:58:25 +00:00
background: var(--canvas-background, #f0f0f0);
2019-07-26 13:20:43 +00:00
z-index: 1001;
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
.loadmask > .brendpanel {
width: 100%;
2020-01-15 13:12:53 +00:00
min-height: 28px;
2021-02-22 13:58:25 +00:00
background: var(--toolbar-header-document, #40865c);
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
.loadmask > .brendpanel > div {
display: flex;
align-items: center;
2019-10-21 13:58:34 +00:00
height: 28px;
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
.loadmask > .brendpanel .loading-logo {
padding: 0 24px 0 12px;
max-width: 200px;
height: 20px;
2016-03-11 00:48:53 +00:00
}
2019-07-22 14:32:10 +00:00
.loadmask > .brendpanel .loading-logo > img {
2019-07-19 14:21:47 +00:00
display: inline-block;
2019-07-22 14:32:10 +00:00
max-width: 100px;
max-height: 20px;
2019-07-22 14:04:24 +00:00
opacity: 0;
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
.loadmask > .brendpanel .spacer {
margin-left: auto;
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
.loadmask > .brendpanel .rect {
vertical-align: middle;
width: 50px;
height: 12px;
border-radius: 3px;
margin: 0 10px;
background: rgba(255, 255, 255, 0.2);
2016-03-11 00:48:53 +00:00
}
2019-10-04 08:01:51 +00:00
.loadmask > .sktoolbar {
2021-02-22 13:58:25 +00:00
background: var(--background-toolbar, #f7f7f7);
2019-10-04 08:01:51 +00:00
height: 46px;
2020-12-23 17:22:31 +00:00
padding: 10px 6px;
2019-10-04 08:01:51 +00:00
box-sizing: content-box;
}
2020-01-15 09:53:00 +00:00
.loadmask ul {
2019-10-04 08:01:51 +00:00
margin: 0;
padding: 0;
white-space: nowrap;
position: relative;
}
.loadmask > .sktoolbar li {
2021-02-22 13:58:25 +00:00
background: var(--highlight-button-pressed, #ccc);
2019-10-04 08:01:51 +00:00
border-radius: 3px;
width: 20px;
height: 20px;
display: inline-block;
margin-right: 6px;
}
.loadmask > .sktoolbar li.space {
background: none;
2020-12-23 17:22:31 +00:00
width: 0;
2019-10-04 08:01:51 +00:00
}
.loadmask > .sktoolbar li.fat {
position: absolute;
right: 0;
top: 0;
bottom: 0;
2020-12-23 17:22:31 +00:00
left: 763px;
2019-10-04 08:01:51 +00:00
width: inherit;
height: 44px;
}
2020-01-15 09:53:00 +00:00
.loadmask > .skformula {
height: 24px;
2021-02-22 13:58:25 +00:00
background: var(--background-toolbar, #f7f7f7);
2020-01-15 09:53:00 +00:00
}
.loadmask > .skformula ul {
list-style-type: none;
font-size: 0;
box-sizing: border-box;
border-style: solid;
2021-02-10 20:42:55 +00:00
border-width: var(--scaled-one-px-value, 1px);
2021-02-22 13:58:25 +00:00
border-color: var(--border-toolbar, #cbcbcb) transparent;
2020-01-15 09:53:00 +00:00
}
.loadmask > .skformula li {
display: inline-block;
box-sizing: border-box;
height: 19px;
width: 100%;
margin-left: 20px;
2021-02-22 13:58:25 +00:00
background: var(--background-normal, #fff);
2020-01-15 09:53:00 +00:00
border-style: solid;
2021-02-10 20:42:55 +00:00
border-width: var(--scaled-one-px-value, 1px);
2021-02-22 13:58:25 +00:00
border-color: transparent var(--border-toolbar, #cbcbcb);
2020-01-15 09:53:00 +00:00
}
.loadmask > .skformula li:first-child {
width: 100px;
margin-left: 0;
}
2019-07-19 14:21:47 +00:00
.loadmask > .placeholder {
2021-02-22 13:58:25 +00:00
background: var(--canvas-content-background, #fff);
2019-07-19 14:21:47 +00:00
width: 100%;
height: 100%;
2020-01-15 09:53:00 +00:00
font-size: 0;
2021-02-22 13:58:25 +00:00
border: var(--scaled-one-px-value, 1px) solid var(--canvas-page-border, #ccc);
2019-07-19 14:21:47 +00:00
white-space: nowrap;
2016-03-11 00:48:53 +00:00
2019-07-19 14:21:47 +00:00
-webkit-animation: flickerAnimation 2s infinite ease-in-out;
-moz-animation: flickerAnimation 2s infinite ease-in-out;
-o-animation: flickerAnimation 2s infinite ease-in-out;
animation: flickerAnimation 2s infinite ease-in-out;
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
.loadmask > .placeholder > .columns {
width: 100%;
height: 100%;
display: inline-block;
2019-10-09 12:49:23 +00:00
background: linear-gradient(90deg, #d5d5d5 0px, rgba(223,223,223,0) 1px) 0 0,
linear-gradient(rgba(223,223,223,0) 19px, #d5d5d5 20px) 0 0,
2019-07-19 14:21:47 +00:00
linear-gradient( #f1f1f1 0px, #f1f1f1 20px) 0 0 repeat-x;
background-size: 80px 20px;
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
.loadmask > .placeholder > .columns:first-child {
background: linear-gradient(#f1f1f1 19px, #d5d5d5 20px) 0 0;
background-size: 20px 20px;
2020-01-15 09:53:00 +00:00
width: 25px;
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
@keyframes flickerAnimation {
0% { opacity:1; }
2019-10-21 13:58:34 +00:00
50% { opacity:0.5; }
2019-07-19 14:21:47 +00:00
100% { opacity:1; }
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
@-o-keyframes flickerAnimation{
0% { opacity:1; }
2019-10-21 13:58:34 +00:00
50% { opacity:0.5; }
2019-07-19 14:21:47 +00:00
100% { opacity:1; }
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
@-moz-keyframes flickerAnimation{
0% { opacity:1; }
2019-10-21 13:58:34 +00:00
50% { opacity:0.5; }
2019-07-19 14:21:47 +00:00
100% { opacity:1; }
2016-03-11 00:48:53 +00:00
}
2019-07-19 14:21:47 +00:00
@-webkit-keyframes flickerAnimation{
0% { opacity:1; }
2019-10-21 13:58:34 +00:00
50% { opacity:0.5; }
2019-07-19 14:21:47 +00:00
100% { opacity:1; }
2016-03-11 00:48:53 +00:00
}
2021-02-10 20:42:55 +00:00
.pixel-ratio__1_5 {
--scaled-one-px-value: calc(1px / 1.5);
}
2016-03-11 00:48:53 +00:00
< / style >
< script >
2016-09-15 12:59:06 +00:00
var userAgent = navigator.userAgent.toLowerCase(),
check = function(regex){ return regex.test(userAgent); },
stopLoading = false;
if (!check(/opera/) & & (check(/msie/) || check(/trident/))) {
var m = /msie (\d+\.\d+)/.exec(userAgent);
2018-02-20 10:45:35 +00:00
if (m & & parseFloat(m[1]) < 10.0 ) {
2017-07-04 15:15:09 +00:00
document.write(
'< div class = "app-error-panel" > ' +
'< div class = "message-block" > ' +
'< div class = "message-inner" > ' +
'< div class = "title" > Your browser is not supported.< / div > ' +
'< div class = "text" > Sorry, Spreadsheet Editor is currently only supported in the latest versions of the Chrome, Firefox, Safari or Internet Explorer web browsers.< / div > ' +
'< / div > ' +
'< / div > ' +
'< / div > ');
2016-09-15 12:59:06 +00:00
stopLoading = true;
}
}
2016-03-11 00:48:53 +00:00
function getUrlParams() {
var e,
a = /\+/g, // Regex for replacing addition symbol with a space
r = /([^& =]+)=?([^& ]*)/g,
d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
q = window.location.search.substring(1),
urlParams = {};
while (e = r.exec(q))
urlParams[d(e[1])] = d(e[2]);
return urlParams;
}
function encodeUrlParam(str) {
return str.replace(/& /g, '& ')
.replace(/"/g, '" ')
.replace(/'/g, '' ')
.replace(/< /g, '< ')
.replace(/>/g, '> ');
}
var params = getUrlParams(),
2018-01-24 11:40:59 +00:00
lang = (params["lang"] || 'en').split(/[\-\_]/)[0],
2019-07-22 14:32:10 +00:00
logo = params["headerlogo"] ? encodeUrlParam(params["headerlogo"]) : null;
2016-03-11 00:48:53 +00:00
2016-12-14 11:20:18 +00:00
window.frameEditorId = params["frameEditorId"];
2020-03-19 14:38:09 +00:00
window.parentOrigin = params["parentOrigin"];
2020-06-30 14:19:04 +00:00
if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent))
document.write('< script src = "../../common/main/lib/util/fix-ie-compat.js" > < \ / s c r i p t > ' ) ;
2016-03-11 00:48:53 +00:00
< / script >
2017-07-04 15:15:09 +00:00
< link rel = "stylesheet" type = "text/css" href = "../../../../sdkjs/cell/css/main.css" / >
<!-- debug begin -->
< link rel = "stylesheet/less" type = "text/css" href = "resources/less/app.less" / >
<!-- debug end -->
< / head >
2020-01-15 09:53:00 +00:00
2017-07-04 15:15:09 +00:00
< body >
2021-02-10 20:42:55 +00:00
< script src = "../../common/main/lib/util/htmlutils.js" > < / script >
2019-10-04 08:01:51 +00:00
< div id = "loading-mask" class = "loadmask" >
2021-02-11 12:52:38 +00:00
< div class = "brendpanel" style = "display: none;" > < div >
2019-10-08 12:33:29 +00:00
< div class = "loading-logo" > < img src = "../../common/main/resources/img/header/header-logo@2x.png" > < / div >
2020-12-23 17:22:31 +00:00
< div class = "spacer" > < / div > < div class = "rect" > < / div > < / div > < div > < span class = "rect" > < / span > < span class = "rect" > < / span > < span class = "rect" > < / span > < span class = "rect" > < / span > < span class = "rect" > < / span > < span class = "rect" > < / span > < span class = "rect" > < / span > < span class = "rect" > < / span > < div class = "spacer" > < / div > < / div >
2019-10-04 08:01:51 +00:00
< / div >
2021-02-11 12:52:38 +00:00
< div class = "sktoolbar" style = "display: none;" >
2020-12-23 17:22:31 +00:00
< ul > < li / > < li class = "space" / > < li style = "width: 219px;" / > < li class = "space" / > < li style = "width: 136px;" / > < li class = "space" / > < li style = "width: 340px;" / > < li class = "fat" / > < / ul >
< ul > < li / > < li class = "space" / > < li style = "width: 219px;" / > < li class = "space" / > < li style = "width: 136px;" / > < li class = "space" / > < li style = "width: 340px;" / > < / ul >
2019-10-04 08:01:51 +00:00
< / div >
2021-02-11 12:52:38 +00:00
< div class = "skformula" style = "display: none;" >
2020-01-15 09:53:00 +00:00
< ul > < li / > < li / > < / ul >
< / div >
2021-02-11 12:52:38 +00:00
< div class = "placeholder" style = "display: none;" >
2019-10-08 12:12:15 +00:00
< div class = "columns" > < / div > < div class = "columns" > < / div >
2019-10-04 08:01:51 +00:00
< / div >
< / div >
2016-03-11 00:48:53 +00:00
< div id = "viewport" > < / div >
2016-04-15 11:53:43 +00:00
2019-07-22 14:04:24 +00:00
< script >
2019-10-08 11:06:58 +00:00
var params = getUrlParams(),
2020-01-15 13:12:53 +00:00
notoolbar = params["toolbar"] == 'false',
2019-10-11 11:55:39 +00:00
internal = params["internal"] == 'true',
2019-11-25 11:23:27 +00:00
compact = params["compact"] == 'true',
2021-02-11 12:52:38 +00:00
view = params["mode"] == 'view',
visible = true;
2019-10-08 11:06:58 +00:00
if (internal) {
document.querySelector('.brendpanel').remove();
document.querySelector('.sktoolbar').remove();
}
2020-01-15 13:12:53 +00:00
(compact || view || notoolbar) & & document.querySelector('.brendpanel > :nth-child(2)').remove();
2019-11-25 11:23:27 +00:00
if (compact || view) {
2020-01-15 13:12:53 +00:00
if (notoolbar) {
document.querySelector('.brendpanel > :nth-child(1)').remove();
2021-02-11 12:52:38 +00:00
visible = false;
2020-01-15 13:12:53 +00:00
} else
document.querySelector('.brendpanel > :nth-child(1)').style.height = '32px';
} else if (notoolbar) {
document.querySelector('.brendpanel > :nth-child(1)').style.height = '28px';
2019-11-25 11:23:27 +00:00
}
2020-01-15 13:12:53 +00:00
2021-02-11 12:52:38 +00:00
visible & & (document.querySelector('.brendpanel').style.display = 'block');
!(view || notoolbar) & & (document.querySelector('.sktoolbar').style.display = 'block');
document.querySelector('.skformula').style.display = 'block';
document.querySelector('.placeholder').style.display = 'block';
2019-10-11 11:55:39 +00:00
2019-07-22 14:04:24 +00:00
if (stopLoading) {
document.body.removeChild(document.getElementById('loading-mask'));
} else {
2019-07-22 14:32:10 +00:00
var elem = document.querySelector('.loading-logo img');
2019-07-22 14:04:24 +00:00
if (elem) {
2019-07-22 14:32:10 +00:00
logo & & (elem.setAttribute('src', logo));
2019-07-22 14:04:24 +00:00
elem.style.opacity = 1;
}
}
< / script >
2017-07-13 09:10:40 +00:00
< script src = "../../../vendor/svg-injector/svg-injector.min.js" > < / script >
< img class = "inline-svg" src = "../../common/main/resources/img/header/buttons.svg" >
2018-04-17 12:07:30 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/doc-formats/xlsx.svg" >
2019-02-21 13:10:37 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/doc-formats/xltx.svg" >
2018-04-17 12:07:30 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/doc-formats/pdf.svg" >
2018-07-18 11:07:24 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/doc-formats/pdfa.svg" >
2018-04-17 12:07:30 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/doc-formats/ods.svg" >
2019-02-21 13:10:37 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/doc-formats/ots.svg" >
2018-04-17 12:07:30 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/doc-formats/csv.svg" >
< img class = "inline-svg" src = "../../common/main/resources/img/doc-formats/blank.svg" >
2019-04-01 13:10:35 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/toolbar/shapetypes.svg" >
2020-05-06 15:04:48 +00:00
< img class = "inline-svg" src = "../../common/main/resources/img/toolbar/charttypes.svg" >
2020-06-11 16:36:37 +00:00
< img class = "inline-svg" src = "resources/img/recent-file.svg" >
2020-06-18 11:43:26 +00:00
< img class = "inline-svg" src = "resources/img/file-template.svg" >
2017-07-13 09:10:40 +00:00
< script >
var svgpoints = document.querySelectorAll('img.inline-svg');
SVGInjector(svgpoints);
< / script >
2017-04-27 15:40:27 +00:00
2016-03-24 11:10:48 +00:00
< script type = "text/javascript" >
window.g_debug_mode = true;
< / script >
2017-04-27 15:40:27 +00:00
2016-03-11 00:48:53 +00:00
<!-- debug begin -->
2019-07-19 14:21:47 +00:00
< script type = "text/javascript" > var less = less || { } ; less . env = 'development' ; less . async = true ; < / script >
2019-10-18 08:33:36 +00:00
< script src = "../../../vendor/less/dist/less.js" type = "text/javascript" > < / script >
2016-03-11 00:48:53 +00:00
<!-- debug end -->
2016-05-13 11:23:09 +00:00
< script type = "text/javascript" src = "../../../vendor/jquery/jquery.min.js" > < / script >
< script type = "text/javascript" src = "../../../vendor/xregexp/xregexp-all-min.js" > < / script >
2019-12-03 10:29:58 +00:00
< script type = "text/javascript" src = "../../../../sdkjs/develop/sdkjs/cell/scripts.js" > < / script >
2016-05-13 11:23:09 +00:00
< script >
2019-12-03 10:29:58 +00:00
window.sdk_scripts.forEach(function(item){
2016-05-13 11:23:09 +00:00
document.write('< script type = "text/javascript" src = "' + item + '" > < \ / s c r i p t > ' ) ;
});
2017-06-23 13:42:18 +00:00
window.requireTimeourError = function(){
var reqerr;
if ( lang == 'de') reqerr = 'Die Verbindung ist zu langsam, einige Komponenten konnten nicht geladen werden. Aktualisieren Sie bitte die Seite.';
else if ( lang == 'es') reqerr = 'La conexión es muy lenta, algunos de los componentes no han podido cargar. Por favor recargue la página.';
else if ( lang == 'fr') reqerr = 'La connexion est trop lente, certains des composants n\'ons pas pu être chargé. Veuillez recharger la page.';
else if ( lang == 'ru') reqerr = 'Слишком медленное соединение, не удается загрузить некоторые компоненты. Пожалуйста, обновите страницу.';
else reqerr = 'The connection is too slow, some of the components could not be loaded. Please reload the page.';
return reqerr;
};
2016-05-13 11:23:09 +00:00
< / script >
2016-03-11 00:48:53 +00:00
<!-- application -->
2016-03-24 11:10:48 +00:00
< script data-main = "app_dev" src = "../../../vendor/requirejs/require.js" > < / script >
2016-03-11 00:48:53 +00:00
< / body >
< / html >