102 lines
4 KiB
HTML
102 lines
4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<!--
|
|
Customize this policy to fit your own app's needs. For more guidance, see:
|
|
https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
|
|
Some notes:
|
|
* https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
|
|
* Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
|
|
* Enable inline JS: add 'unsafe-inline' to default-src
|
|
-->
|
|
<meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap: content:">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui, viewport-fit=cover">
|
|
|
|
<meta name="theme-color" content="#007aff">
|
|
<meta name="format-detection" content="telephone=no">
|
|
<meta name="msapplication-tap-highlight" content="no">
|
|
<title>Spreadsheet Editor</title>
|
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
<link rel="apple-touch-icon" href="static/icons/apple-touch-icon.png">
|
|
<link rel="icon" href="static/icons/favicon.png">
|
|
|
|
<% if (!htmlWebpackPlugin.options.skeleton.stylesheet) { %>
|
|
<link rel="stylesheet" href="../../common/mobile/resources/css/skeleton.css">
|
|
<% } else { %>
|
|
<style><%= htmlWebpackPlugin.options.skeleton.stylesheet %></style>
|
|
<% } %>
|
|
|
|
<!-- built styles file will be auto injected -->
|
|
</head>
|
|
<body>
|
|
<% if ( htmlWebpackPlugin.options.skeleton.htmlscript ) { %>
|
|
<script>
|
|
<%= htmlWebpackPlugin.options.skeleton.htmlscript %>
|
|
</script>
|
|
<% } %>
|
|
<section class="skl-container ">
|
|
<div class="skl-navbar skl-navbar--cell"></div>
|
|
</section>
|
|
<script>
|
|
const isAndroid = /Android/.test(navigator.userAgent);
|
|
if ( isAndroid && navigator.platform == 'Win32' )
|
|
// Framework7 doesn't set Device.android flag when navigator.platform == 'Win32', change it for debug
|
|
navigator.__defineGetter__('platform', () => 'Win32Debug');
|
|
|
|
const element_add_class = (el, cls) => (el && el.classList.add(cls));
|
|
|
|
let navbar = document.querySelector('.skl-navbar');
|
|
if ( window.devicePixelRatio ) {
|
|
element_add_class(navbar, `skl-pixel-ratio--${Math.floor(window.devicePixelRatio)}`);
|
|
}
|
|
|
|
if ( !isAndroid ) {
|
|
const ua = navigator.userAgent;
|
|
const iPad = ua.match(/(iPad).*OS\s([\d_]+)/);
|
|
const iPhone = !iPad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
|
|
|
|
if ( !iPad && !iPhone ) {
|
|
Object.defineProperty(navigator, 'userAgent', {
|
|
get: function () { return `iPad; CPU OS 11_0 ${ua}`; }
|
|
});
|
|
} else {
|
|
element_add_class(navbar, `skl-navbar--ios`);
|
|
}
|
|
} else {
|
|
element_add_class(navbar, `skl-navbar--md`);
|
|
}
|
|
|
|
const getUrlParams = () => {
|
|
let e,
|
|
a = /\+/g, // Regex for replacing addition symbol with a space
|
|
r = /([^&=]+)=?([^&]*)/g,
|
|
d = s => 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;
|
|
}
|
|
|
|
window.Common = {Locale: {defaultLang: <%= htmlWebpackPlugin.options.system.env.defaultLang %>}};
|
|
let params = getUrlParams(),
|
|
lang = (params["lang"] || window.Common.Locale.defaultLang).split(/[\-\_]/)[0];
|
|
|
|
window.frameEditorId = params["frameEditorId"];
|
|
window.parentOrigin = params["parentOrigin"];
|
|
window.Common.Locale.currentLang = lang;
|
|
</script>
|
|
|
|
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
|
|
|
|
<div id="app"></div>
|
|
|
|
<!-- built script files will be auto injected -->
|
|
|
|
</body>
|
|
</html> |