Commit f11ea296 authored by Alexander Yuzhin's avatar Alexander Yuzhin

[PE mobile] Draft

parent 70cb9913
...@@ -1064,41 +1064,6 @@ define([ ...@@ -1064,41 +1064,6 @@ define([
// this.getFileMenu().setMode({isDisconnected:true}); // this.getFileMenu().setMode({isDisconnected:true});
}, },
showTips: function(strings) {
var me = this;
if (!strings.length) return;
if (typeof(strings)!='object') strings = [strings];
// var top_elem = Ext.ComponentQuery.query('petoolbar');
// !top_elem.length && (top_elem = Ext.select('.common-header').first()) || (top_elem = top_elem[0].getEl());
//
function showNextTip() {
var str_tip = strings.shift();
if (str_tip) {
str_tip += me.textCloseTip;
tooltip.setTitle(str_tip);
tooltip.show();
}
}
if (!this.tooltip) {
this.tooltip = new Common.UI.Tooltip({
owner: this.getApplication().getController('Toolbar').getView('Toolbar'),
hideonclick: true,
placement: 'bottom',
cls: 'main-info',
offset: 30
});
}
var tooltip = this.tooltip;
tooltip.on('tooltip:hide', function(){
setTimeout(showNextTip, 300);
});
showNextTip();
},
updateWindowTitle: function(force) { updateWindowTitle: function(force) {
var isModified = this.api.isDocumentModified(); var isModified = this.api.isDocumentModified();
if (this._state.isDocModified !== isModified || force) { if (this._state.isDocModified !== isModified || force) {
......
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
/**
* app.js
* Presentation Editor
*
* Created by Alexander Yuzhin on 11/21/16
* Copyright (c) 2016 Ascensio System SIA. All rights reserved.
*
*/
'use strict';
var reqerr;
require.config({
baseUrl: '../../',
paths: {
jquery : '../vendor/jquery/jquery',
underscore : '../vendor/underscore/underscore',
backbone : '../vendor/backbone/backbone',
framework7 : '../vendor/framework7/js/framework7',
text : '../vendor/requirejs-text/text',
xregexp : '../vendor/xregexp/xregexp-all-min',
sockjs : '../vendor/sockjs/sockjs.min',
jszip : '../vendor/jszip/jszip.min',
jsziputils : '../vendor/jszip-utils/jszip-utils.min',
jsrsasign : '../vendor/jsrsasign/jsrsasign-latest-all-min',
api : 'api/documents/api',
core : 'common/main/lib/core/application',
extendes : 'common/mobile/utils/extendes',
notification : 'common/main/lib/core/NotificationCenter',
localstorage : 'common/main/lib/util/LocalStorage',
analytics : 'common/Analytics',
gateway : 'common/Gateway',
locale : 'common/locale',
irregularstack : 'common/IrregularStack',
sharedsettings : 'common/mobile/utils/SharedSettings'
},
shim: {
framework7: {
exports: 'Framework7'
},
underscore: {
exports: '_'
},
backbone: {
deps: [
'underscore',
'jquery'
],
exports: 'Backbone'
},
core: {
deps: [
'backbone',
'notification',
'irregularstack',
'sharedsettings'
]
},
extendes: {
deps: [
'underscore',
'jquery',
'framework7'
]
},
gateway: {
deps: [
'jquery'
]
},
analytics: {
deps: [
'jquery'
]
}
}
});
require([
'backbone',
'framework7',
'core',
'underscore',
'extendes',
'api',
'analytics',
'gateway',
'locale',
'jszip',
'jsziputils',
'jsrsasign',
'sockjs'
], function (Backbone, Framework7, Core) {
Backbone.history.start();
/**
* Application instance with DE namespace defined
*/
var app = new Backbone.Application({
nameSpace: 'PE',
autoCreate: false,
controllers : [
'Editor',
'Toolbar',
// 'Search',
'Main'
// 'DocumentHolder',
// 'Settings',
// 'EditContainer',
// 'EditText',
// 'EditParagraph',
// 'EditTable',
// 'EditImage',
// 'EditShape',
// 'EditChart',
// 'EditHyperlink',
// 'AddContainer',
// 'AddTable',
// 'AddShape',
// 'AddImage',
// 'AddOther'
]
});
Common.Locale.apply();
var device = Framework7.prototype.device;
var loadPlatformCss = function (filename, opt){
var fileref = document.createElement('link');
fileref.setAttribute('rel', 'stylesheet');
fileref.setAttribute('type', 'text/css');
fileref.setAttribute('href', filename);
if (typeof fileref != 'undefined') {
document.getElementsByTagName("head")[0].appendChild(fileref);
}
};
//Store Framework7 initialized instance for easy access
window.uiApp = new Framework7({
// Default title for modals
modalTitle: 'ONLYOFFICE',
// If it is webapp, we can enable hash navigation:
// pushState: false,
// If Android
material: device.android,
// Hide and show indicator during ajax requests
onAjaxStart: function (xhr) {
uiApp.showIndicator();
},
onAjaxComplete: function (xhr) {
uiApp.hideIndicator();
}
});
//Export DOM7 to local variable to make it easy accessable
window.$$ = Dom7;
//Load platform styles
loadPlatformCss('resources/css/app-' + (device.android ? 'material' : 'ios') + '.css');
require([
'common/main/lib/util/LocalStorage',
'common/main/lib/util/utils',
'presentationeditor/mobile/app/controller/Editor',
'presentationeditor/mobile/app/controller/Toolbar',
// 'presentationeditor/mobile/app/controller/Search',
'presentationeditor/mobile/app/controller/Main'
// 'presentationeditor/mobile/app/controller/DocumentHolder',
// 'presentationeditor/mobile/app/controller/Settings',
// 'presentationeditor/mobile/app/controller/edit/EditContainer',
// 'presentationeditor/mobile/app/controller/edit/EditText',
// 'presentationeditor/mobile/app/controller/edit/EditParagraph',
// 'presentationeditor/mobile/app/controller/edit/EditTable',
// 'presentationeditor/mobile/app/controller/edit/EditImage',
// 'presentationeditor/mobile/app/controller/edit/EditShape',
// 'presentationeditor/mobile/app/controller/edit/EditChart',
// 'presentationeditor/mobile/app/controller/edit/EditHyperlink',
// 'presentationeditor/mobile/app/controller/add/AddContainer',
// 'presentationeditor/mobile/app/controller/add/AddTable',
// 'presentationeditor/mobile/app/controller/add/AddShape',
// 'presentationeditor/mobile/app/controller/add/AddImage',
// 'presentationeditor/mobile/app/controller/add/AddOther'
], function() {
app.start();
});
}, function(err) {
if (err.requireType == 'timeout' && !reqerr) {
var getUrlParams = function() {
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;
};
var encodeUrlParam = function(str) {
return str.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
};
var lang = (getUrlParams()["lang"] || 'en').split("-")[0];
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.';
window.alert(reqerr);
window.location.reload();
}
});
\ No newline at end of file
...@@ -29,20 +29,241 @@ ...@@ -29,20 +29,241 @@
* Creative Commons Attribution-ShareAlike 4.0 International. See the License * Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
* *
*/ */
Ext.application({
name: 'PE',
icon: 'resources/img/icon.png', /**
tabletStartupScreen: 'resources/img/tablet_startup.png', * app.js
phoneStartupScreen: 'resources/img/phone_startup.png', * Presentation Editor
*
* Created by Alexander Yuzhin on 11/21/16
* Copyright (c) 2016 Ascensio System SIA. All rights reserved.
*
*/
viewport: { 'use strict';
autoMaximize: false // TODO: set as TRUE if standalone version var reqerr;
require.config({
baseUrl: '../../',
paths: {
jquery : '../vendor/jquery/jquery',
underscore : '../vendor/underscore/underscore',
backbone : '../vendor/backbone/backbone',
framework7 : '../vendor/framework7/js/framework7',
text : '../vendor/requirejs-text/text',
xregexp : '../vendor/xregexp/xregexp-all-min',
sockjs : '../vendor/sockjs/sockjs.min',
jszip : '../vendor/jszip/jszip.min',
jsziputils : '../vendor/jszip-utils/jszip-utils.min',
jsrsasign : '../vendor/jsrsasign/jsrsasign-latest-all-min',
allfonts : '../../sdkjs/common/AllFonts',
sdk : '../../sdkjs/word/sdk-all-min',
api : 'api/documents/api',
core : 'common/main/lib/core/application',
extendes : 'common/mobile/utils/extendes',
notification : 'common/main/lib/core/NotificationCenter',
localstorage : 'common/main/lib/util/LocalStorage',
analytics : 'common/Analytics',
gateway : 'common/Gateway',
locale : 'common/locale',
irregularstack : 'common/IrregularStack',
sharedsettings : 'common/mobile/utils/SharedSettings'
},
shim: {
framework7: {
exports: 'Framework7'
},
underscore: {
exports: '_'
}, },
backbone: {
deps: [
'underscore',
'jquery'
],
exports: 'Backbone'
},
core: {
deps: [
'backbone',
'notification',
'irregularstack',
'sharedsettings'
]
},
extendes: {
deps: [
'underscore',
'jquery',
'framework7'
]
},
sdk: {
deps: [
'jquery',
'underscore',
'allfonts',
'xregexp',
'sockjs',
'jszip',
'jsziputils',
'jsrsasign'
]
},
gateway: {
deps: [
'jquery'
]
},
analytics: {
deps: [
'jquery'
]
}
}
});
require([
'backbone',
'framework7',
'core',
'underscore',
'extendes',
'sdk',
'api',
'analytics',
'gateway',
'locale'
], function (Backbone, Framework7, Core) {
Backbone.history.start();
profiles: [ /**
'Tablet', * Application instance with PE namespace defined
'Phone' */
var app = new Backbone.Application({
nameSpace: 'PE',
autoCreate: false,
controllers : [
'Editor',
'Toolbar',
// 'Search',
'Main'
// 'DocumentHolder',
// 'Settings',
// 'EditContainer',
// 'EditText',
// 'EditParagraph',
// 'EditTable',
// 'EditImage',
// 'EditShape',
// 'EditChart',
// 'EditHyperlink',
// 'AddContainer',
// 'AddTable',
// 'AddShape',
// 'AddImage',
// 'AddOther'
] ]
});
Common.Locale.apply();
var device = Framework7.prototype.device;
var loadPlatformCss = function (filename, opt){
var fileref = document.createElement('link');
fileref.setAttribute('rel', 'stylesheet');
fileref.setAttribute('type', 'text/css');
fileref.setAttribute('href', filename);
if (typeof fileref != 'undefined') {
document.getElementsByTagName("head")[0].appendChild(fileref);
}
};
//Store Framework7 initialized instance for easy access
window.uiApp = new Framework7({
// Default title for modals
modalTitle: 'ONLYOFFICE',
// If it is webapp, we can enable hash navigation:
// pushState: false,
// If Android
material: device.android,
// Hide and show indicator during ajax requests
onAjaxStart: function (xhr) {
uiApp.showIndicator();
},
onAjaxComplete: function (xhr) {
uiApp.hideIndicator();
}
});
//Export DOM7 to local variable to make it easy accessable
window.$$ = Dom7;
//Load platform styles
loadPlatformCss('resources/css/app-' + (device.android ? 'material' : 'ios') + '.css');
require([
'common/main/lib/util/LocalStorage',
'common/main/lib/util/utils',
'presentationeditor/mobile/app/controller/Editor',
'presentationeditor/mobile/app/controller/Toolbar',
// 'presentationeditor/mobile/app/controller/Search',
'presentationeditor/mobile/app/controller/Main'
// 'presentationeditor/mobile/app/controller/DocumentHolder',
// 'presentationeditor/mobile/app/controller/Settings',
// 'presentationeditor/mobile/app/controller/edit/EditContainer',
// 'presentationeditor/mobile/app/controller/edit/EditText',
// 'presentationeditor/mobile/app/controller/edit/EditParagraph',
// 'presentationeditor/mobile/app/controller/edit/EditTable',
// 'presentationeditor/mobile/app/controller/edit/EditImage',
// 'presentationeditor/mobile/app/controller/edit/EditShape',
// 'presentationeditor/mobile/app/controller/edit/EditChart',
// 'presentationeditor/mobile/app/controller/edit/EditHyperlink',
// 'presentationeditor/mobile/app/controller/add/AddContainer',
// 'presentationeditor/mobile/app/controller/add/AddTable',
// 'presentationeditor/mobile/app/controller/add/AddShape',
// 'presentationeditor/mobile/app/controller/add/AddImage',
// 'presentationeditor/mobile/app/controller/add/AddOther'
], function() {
app.start();
});
}, function(err) {
if (err.requireType == 'timeout' && !reqerr) {
var getUrlParams = function() {
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;
};
var encodeUrlParam = function(str) {
return str.replace(/&/g, '&amp;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#39;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
};
var lang = (getUrlParams()["lang"] || 'en').split("-")[0];
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.';
window.alert(reqerr);
window.location.reload();
}
}); });
\ No newline at end of file
...@@ -29,61 +29,84 @@ ...@@ -29,61 +29,84 @@
* Creative Commons Attribution-ShareAlike 4.0 International. See the License * Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
* *
*/ */
Ext.define('PE.view.tablet.toolbar.View', {
extend: 'Ext.Toolbar', /**
xtype: 'viewtoolbar', * Editor.js
* Presentation Editor
config: { *
docked : 'top', * Created by Alexander Yuzhin on 11/21/16
minHeight : 44, * Copyright (c) 2016 Ascensio System SIA. All rights reserved.
ui : 'edit' *
}, */
define([
'core',
'presentationeditor/mobile/app/view/Editor'
], function (core) {
'use strict';
PE.Controllers.Editor = Backbone.Controller.extend((function() {
// private
function isPhone() {
var ua = navigator.userAgent,
isMobile = /Mobile(\/|\s)/.test(ua);
return /(iPhone|iPod)/.test(ua) ||
(!/(Silk)/.test(ua) && (/(Android)/.test(ua) && (/(Android 2)/.test(ua) || isMobile))) ||
(/(BlackBerry|BB)/.test(ua) && isMobile) ||
/(Windows Phone)/.test(ua);
}
function isTablet() {
var ua = navigator.userAgent;
return !isPhone(ua) && (/iPad/.test(ua) || /Android/.test(ua) || /(RIM Tablet OS)/.test(ua) ||
(/MSIE 10/.test(ua) && /; Touch/.test(ua)));
}
return {
// Specifying a EditorController model
models: [],
// Specifying a collection of out EditorView
collections: [],
// Specifying application views
views: [
'Editor' // is main application layout
],
// When controller is created let's setup view event listeners
initialize: function() { initialize: function() {
this.add([ // This most important part when we will tell our controller what events should be handled
{
id : 'id-tb-btn-view-done',
ui : 'base-blue',
cls : 'text-offset-12',
hidden : true,
text : this.doneText
},
{
xtype : 'spacer'
},
{
id : 'id-tb-btn-prev-slide',
ui : 'base',
iconCls : 'left'
},
{
id : 'id-tb-btn-play',
ui : 'base',
iconCls : 'play'
}, },
{
id : 'id-tb-btn-next-slide', setApi: function(api) {
ui : 'base', this.api = api;
iconCls : 'right'
},
{
xtype : 'spacer'
},
{
id : 'id-tb-btn-view-share',
ui : 'base',
iconCls : 'share'
}, },
{
id : 'id-tb-btn-fullscreen',
ui : 'base',
iconCls : 'fullscreen'
}
]);
this.callParent(arguments); // When our application is ready, lets get started
onLaunch: function() {
// Device detection
var phone = isPhone();
console.debug('Layout profile:', phone ? 'Phone' : 'Tablet');
Common.SharedSettings.set('android', Framework7.prototype.device.android);
Common.SharedSettings.set('phone', phone);
$('html').addClass(phone ? 'phone' : 'tablet');
// Create and render main view
this.editorView = this.createView('Editor').render();
$$(window).on('resize', _.bind(this.onWindowResize, this));
}, },
doneText: 'Done' onWindowResize: function(e) {
this.api && this.api.Resize();
}
}
})());
}); });
...@@ -29,167 +29,646 @@ ...@@ -29,167 +29,646 @@
* Creative Commons Attribution-ShareAlike 4.0 International. See the License * Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
* *
*/ */
Ext.define('PE.controller.Main', {
extend: 'Ext.app.Controller',
editMode: false,
requires: [
'Ext.Anim',
'Ext.LoadMask',
'Ext.MessageBox'
],
launch: function() { /**
if (!this._isSupport()){ * Main.js
Common.Gateway.reportError(undefined, this.unsupportedBrowserErrorText); * Document Editor
return; *
} * Created by Alexander Yuzhin on 9/22/16
* Copyright (c) 2016 Ascensio System SIA. All rights reserved.
*
*/
define([
'core',
'irregularstack',
'common/main/lib/util/LocalStorage'
], function () {
'use strict';
PE.Controllers.Main = Backbone.Controller.extend(_.extend((function() {
var ApplyEditRights = -255;
var LoadingDocument = -256;
Common.localStorage.setId('presentation');
Common.localStorage.setKeysFilter('pe-,asc.presentation');
Common.localStorage.sync();
var fillUserInfo = function(info, lang, defname) {
var user = info || {};
!user.id && (user.id = ('uid-' + Date.now()));
_.isEmpty(user.firstname) && _.isEmpty(user.lastname) && (user.firstname = defname);
if (_.isEmpty(user.firstname))
user.fullname = user.lastname;
else if (_.isEmpty(user.lastname))
user.fullname = user.firstname;
else
user.fullname = /^ru/.test(lang) ? user.lastname + ' ' + user.firstname : user.firstname + ' ' + user.lastname;
return user;
};
// Initialize descendants return {
models: [],
collections: [],
views: [],
this.initControl(); initialize: function() {
//
},
// Initialize analytics onLaunch: function() {
var me = this;
me.stackLongActions = new Common.IrregularStack({
strongCompare : function(obj1, obj2){return obj1.id === obj2.id && obj1.type === obj2.type;},
weakCompare : function(obj1, obj2){return obj1.type === obj2.type;}
});
this._state = {
isDisconnected : false,
usersCount : 1,
fastCoauth : true,
startModifyDocument : true,
lostEditingRights : false,
licenseWarning : false
};
// Initialize viewport
// if (!Common.Utils.isBrowserSupported()){
// Common.Utils.showBrowserRestriction();
// Common.Gateway.reportError(undefined, this.unsupportedBrowserErrorText);
// return;
// }
// Common.component.Analytics.initialize('UA-12442749-13', 'Presentation Editor Mobile');
// Initialize api // Initialize api
var api = this.api, window["flat_desine"] = true;
app = this.getApplication(),
profile = app.getCurrentProfile();
api = new Asc.asc_docs_api({ me.api = new Asc.asc_docs_api({
'id-view' : 'id-sdkeditor', 'id-view' : 'editor_sdk',
'mobile' : true 'mobile' : true
}); });
api.SetThemesPath("../../../../sdkjs/slide/themes/");
api.asc_registerCallback('asc_onStartAction', Ext.bind(this.onLongActionBegin, this)); if (me.api){
api.asc_registerCallback('asc_onError', Ext.bind(this.onError, this)); Common.Utils.Metric.setCurrentMetric(1); //pt
api.asc_registerCallback('asc_onEndAction', Ext.bind(this.onLongActionEnd, this));
api.asc_registerCallback('asc_onDocumentContentReady', Ext.bind(this.onDocumentContentReady, this)); me.api.SetDrawingFreeze(true);
api.asc_registerCallback('asc_onOpenDocumentProgress', Ext.bind(this.onOpenDocument, this)); me.api.SetThemesPath("../../../../sdkjs/slide/themes/");
api.asc_registerCallback('asc_onSaveUrl', Ext.bind(this.onSaveUrl, this));
api.asc_registerCallback('asc_onGetEditorPermissions', Ext.bind(this.onEditorPermissions, this)); me.api.asc_registerCallback('asc_onError', _.bind(me.onError, me));
api.asc_registerCallback('asc_onDownloadUrl', Ext.bind(this.onDownloadUrl, this)); me.api.asc_registerCallback('asc_onDocumentContentReady', _.bind(me.onDocumentContentReady, me));
me.api.asc_registerCallback('asc_onOpenDocumentProgress', _.bind(me.onOpenDocument, me));
me.api.asc_registerCallback('asc_onDocumentUpdateVersion', _.bind(me.onUpdateVersion, me));
me.api.asc_registerCallback('asc_onAdvancedOptions', _.bind(me.onAdvancedOptions, me));
me.api.asc_registerCallback('asc_onDocumentName', _.bind(me.onDocumentName, me));
me.api.asc_registerCallback('asc_onPrintUrl', _.bind(me.onPrintUrl, me));
me.api.asc_registerCallback('asc_onThumbnailsShow', _.bind(me.onThumbnailsShow, me));
me.api.asc_registerCallback('asc_onMeta', _.bind(me.onMeta, me));
Common.NotificationCenter.on('api:disconnect', _.bind(me.onCoAuthoringDisconnect, me));
Common.NotificationCenter.on('goback', _.bind(me.goBack, me));
// Initialize descendants // Initialize descendants
Ext.each(app.getControllers(), function(controllerName){ _.each(me.getApplication().controllers, function(controller) {
var controller = this.getApplication().getController(controllerName); if (controller && _.isFunction(controller.setApi)) {
controller && Ext.isFunction(controller.setApi) && controller.setApi(api); controller.setApi(me.api);
}, this); }
});
this.initApi();
// Initialize api gateway // Initialize api gateway
this.editorConfig = {}; me.editorConfig = {};
Common.Gateway.on('init', Ext.bind(this.loadConfig, this)); me.appOptions = {};
Common.Gateway.on('opendocument', Ext.bind(this.loadDocument, this)); me.plugins = undefined;
Common.Gateway.on('showmessage', Ext.bind(this.onExternalMessage, this));
Common.Gateway.on('resetfocus', Ext.bind(this.onResetFocus, this));
Common.Gateway.on('processsaveresult', Ext.bind(this.onProcessSaveResult, this));
Common.Gateway.on('downloadas', Ext.bind(this.onDownloadAs, this));
Common.Gateway.ready();
},
initControl: function() { Common.Gateway.on('init', _.bind(me.loadConfig, me));
}, Common.Gateway.on('showmessage', _.bind(me.onExternalMessage, me));
Common.Gateway.on('opendocument', _.bind(me.loadDocument, me));
Common.Gateway.ready();
}
initApi: function() { me.initNames();
}, },
loadConfig: function(data) { loadConfig: function(data) {
this.editorConfig = Ext.merge(this.editorConfig, data.config); var me = this;
this.editorConfig.user = this._fillUserInfo(data.config.user, this.editorConfig.lang, this.textAnonymous);
me.editorConfig = $.extend(me.editorConfig, data.config);
me.editorConfig.user =
me.appOptions.user = fillUserInfo(me.editorConfig.user, me.editorConfig.lang, me.textAnonymous);
me.appOptions.nativeApp = me.editorConfig.nativeApp === true;
me.appOptions.isDesktopApp = me.editorConfig.targetApp == 'desktop';
me.appOptions.canCreateNew = !_.isEmpty(me.editorConfig.createUrl) && !me.appOptions.isDesktopApp;
me.appOptions.canOpenRecent = me.editorConfig.nativeApp !== true && me.editorConfig.recent !== undefined && !me.appOptions.isDesktopApp;
me.appOptions.templates = me.editorConfig.templates;
me.appOptions.recent = me.editorConfig.recent;
me.appOptions.createUrl = me.editorConfig.createUrl;
me.appOptions.lang = me.editorConfig.lang;
me.appOptions.location = (typeof (me.editorConfig.location) == 'string') ? me.editorConfig.location.toLowerCase() : '';
me.appOptions.sharingSettingsUrl = me.editorConfig.sharingSettingsUrl;
me.appOptions.fileChoiceUrl = me.editorConfig.fileChoiceUrl;
me.appOptions.mergeFolderUrl = me.editorConfig.mergeFolderUrl;
me.appOptions.canAnalytics = false;
me.appOptions.customization = me.editorConfig.customization;
me.appOptions.canBackToFolder = (me.editorConfig.canBackToFolder!==false) && (typeof (me.editorConfig.customization) == 'object')
&& (typeof (me.editorConfig.customization.goback) == 'object') && !_.isEmpty(me.editorConfig.customization.goback.url);
me.appOptions.canBack = me.editorConfig.nativeApp !== true && me.appOptions.canBackToFolder === true;
me.appOptions.canPlugins = false;
me.plugins = me.editorConfig.plugins;
if (me.editorConfig.lang)
me.api.asc_setLocale(me.editorConfig.lang);
// if (this.appOptions.location == 'us' || this.appOptions.location == 'ca')
// Common.Utils.Metric.setDefaultMetric(Common.Utils.Metric.c_MetricUnits.inch);
}, },
loadDocument: function(data) { loadDocument: function(data) {
this.permissions = {};
this.document = data.doc;
var docInfo = {};
if (data.doc) { if (data.doc) {
this.permissions = data.doc.permissions; this.permissions = $.extend(this.permissions, data.doc.permissions);
var _user = new Asc.asc_CUserInfo(); var _user = new Asc.asc_CUserInfo();
_user.put_Id(this.editorConfig.user.id); _user.put_Id(this.appOptions.user.id);
_user.put_FirstName(this.editorConfig.user.firstname); _user.put_FirstName(this.appOptions.user.firstname);
_user.put_LastName(this.editorConfig.user.lastname); _user.put_LastName(this.appOptions.user.lastname);
_user.put_FullName(this.editorConfig.user.fullname); _user.put_FullName(this.appOptions.user.fullname);
var docInfo = new Asc.asc_CDocInfo(); docInfo = new Asc.asc_CDocInfo();
docInfo.put_Id(data.doc.key); docInfo.put_Id(data.doc.key);
docInfo.put_Url(data.doc.url); docInfo.put_Url(data.doc.url);
docInfo.put_Title(data.doc.title); docInfo.put_Title(data.doc.title);
docInfo.put_Format(data.doc.fileType); docInfo.put_Format(data.doc.fileType);
docInfo.put_Options(data.doc.options);
docInfo.put_VKey(data.doc.vkey); docInfo.put_VKey(data.doc.vkey);
docInfo.put_Options(data.doc.options);
docInfo.put_UserInfo(_user); docInfo.put_UserInfo(_user);
docInfo.put_CallbackUrl(this.editorConfig.callbackUrl);
}
var profileName = this.getApplication().getCurrentProfile().getName(); this.api.asc_registerCallback('asc_onGetEditorPermissions', _.bind(this.onEditorPermissions, this));
this.getApplication().getController(profileName + '.Main').setPresentationName(data.doc.title || 'Unnamed Presentation');
this.api.asc_setDocInfo(docInfo); this.api.asc_setDocInfo(docInfo);
this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId); this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId);
Common.component.Analytics.trackEvent('Load', 'Start'); Common.SharedSettings.set('document', data.doc);
if (data.doc) {
PE.getController('Toolbar').setDocumentTitle(data.doc.title);
} }
}, },
onEditorPermissions: function(params) { setMode: function(mode){
var editMode = (this.permissions.edit !== false && this.editorConfig.mode !== 'view'); var me = this;
this.api.asc_setViewMode(!editMode);
this.api.asc_LoadDocument();
this.api.Resize();
},
onDocumentContentReady: function() { Common.SharedSettings.set('mode', mode);
if (this.api){
// this.api.zoomFitToWidth(); if (me.api) {
this.api.StartDemonstration('id-presentation-preview', 0); me.api.asc_enableKeyEvents(mode == 'edit');
me.api.asc_setViewMode(mode != 'edit');
} }
},
this._hideLoadSplash(); onProcessSaveResult: function(data) {
this.api.asc_OnSaveEnd(data.result);
Common.component.Analytics.trackEvent('Load', 'Complete'); if (data && data.result === false) {
uiApp.alert(
_.isEmpty(data.message) ? this.errorProcessSaveResult : data.message,
this.criticalErrorTitle
);
}
}, },
onOpenDocument: function(progress) { onProcessRightsChange: function(data) {
var elem = document.getElementById('loadmask-text'); if (data && data.enabled === false) {
if (elem) { var me = this,
var proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount()); old_rights = this._state.lostEditingRights;
elem.innerHTML = this.textLoadingDocument + ': '+ Math.min(Math.round(proc*100), 100) + '%'; this._state.lostEditingRights = !this._state.lostEditingRights;
this.api.asc_coAuthoringDisconnect();
Common.NotificationCenter.trigger('api:disconnect');
if (!old_rights) {
uiApp.alert(
_.isEmpty(data.message) ? this.warnProcessRightsChange : data.message,
this.notcriticalErrorTitle,
function () {
me._state.lostEditingRights = false;
me.onEditComplete();
}
);
}
} }
}, },
onSaveUrl: function(url) { onDownloadAs: function() {
Common.Gateway.save(url); this.api.asc_DownloadAs(Asc.c_oAscFileType.PPTX, true);
}, },
onDownloadUrl: function(url) { goBack: function(blank) {
Common.Gateway.downloadAs(url); var href = this.appOptions.customization.goback.url;
if (blank) {
window.open(href, "_blank");
} else {
parent.location.href = href;
}
},
onEditComplete: function(cmp) {
//
}, },
onLongActionBegin: function(type, id) { onLongActionBegin: function(type, id) {
var text = ''; var action = {id: id, type: type};
this.stackLongActions.push(action);
this.setLongActionView(action);
},
onLongActionEnd: function(type, id) {
var me = this,
action = {id: id, type: type};
me.stackLongActions.pop(action);
me.updateWindowTitle(true);
action = me.stackLongActions.get({type: Asc.c_oAscAsyncActionType.Information});
if (action) {
me.setLongActionView(action)
} else {
if (me._state.fastCoauth && me._state.usersCount>1 && id==Asc.c_oAscAsyncAction['Save']) {
if (me._state.timerSave===undefined)
me._state.timerSave = setInterval(function(){
if ((new Date()) - me._state.isSaving>500) {
clearInterval(me._state.timerSave);
//console.debug('End long action');
me._state.timerSave = undefined;
}
}, 500);
} else {
// console.debug('End long action');
}
}
action = me.stackLongActions.get({type: Asc.c_oAscAsyncActionType.BlockInteraction});
if (action) {
me.setLongActionView(action)
} else {
_.delay(function () {
$(me.loadMask).hasClass('modal-in') && uiApp.closeModal(me.loadMask);
}, 300);
}
if (id==Asc.c_oAscAsyncAction['Save'] && (!me._state.fastCoauth || me._state.usersCount<2)) {
// me.synchronizeChanges();
}
},
setLongActionView: function(action) {
var me = this,
title = '',
text = '';
switch (action.id) {
case Asc.c_oAscAsyncAction['Open']:
title = me.openTitleText;
text = me.openTextText;
break;
case Asc.c_oAscAsyncAction['Save']:
me._state.isSaving = new Date();
title = me.saveTitleText;
text = me.saveTextText;
break;
case Asc.c_oAscAsyncAction['LoadDocumentFonts']:
title = me.loadFontsTitleText;
text = me.loadFontsTextText;
break;
case Asc.c_oAscAsyncAction['LoadDocumentImages']:
title = me.loadImagesTitleText;
text = me.loadImagesTextText;
break;
case Asc.c_oAscAsyncAction['LoadFont']:
title = me.loadFontTitleText;
text = me.loadFontTextText;
break;
case Asc.c_oAscAsyncAction['LoadImage']:
title = me.loadImageTitleText;
text = me.loadImageTextText;
break;
case Asc.c_oAscAsyncAction['DownloadAs']:
title = me.downloadTitleText;
text = me.downloadTextText;
break;
switch (id) {
case Asc.c_oAscAsyncAction['Print']: case Asc.c_oAscAsyncAction['Print']:
text = this.printText; title = me.printTitleText;
text = me.printTextText;
break;
case Asc.c_oAscAsyncAction['UploadImage']:
title = me.uploadImageTitleText;
text = me.uploadImageTextText;
break;
case Asc.c_oAscAsyncAction['LoadTheme']:
title = this.loadThemeTitleText;
text = this.loadThemeTextText;
break;
case Asc.c_oAscAsyncAction['ApplyChanges']:
title = me.applyChangesTitleText;
text = me.applyChangesTextText;
break;
case Asc.c_oAscAsyncAction['PrepareToSave']:
title = me.savePreparingText;
text = me.savePreparingTitle;
break;
case ApplyEditRights:
title = me.txtEditingMode;
text = me.txtEditingMode;
break;
case LoadingDocument:
title = me.loadingDocumentTitleText;
text = me.loadingDocumentTextText;
break;
}
if (action.type == Asc.c_oAscAsyncActionType['BlockInteraction']) {
if (me.loadMask && $(me.loadMask).hasClass('modal-in')) {
$$(me.loadMask).find('.modal-title').text(title);
} else {
me.loadMask = uiApp.showPreloader(title);
}
}
else {
// this.getApplication().getController('Statusbar').setStatusCaption(text);
}
},
onDocumentContentReady: function() {
if (this._isDocReady)
return;
var me = this,
value;
me._isDocReady = true;
me.api.SetDrawingFreeze(false);
me.hidePreloader();
me.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
value = Common.localStorage.getItem("pe-settings-zoom");
var zf = (value!==null) ? parseInt(value) : (me.appOptions.customization && me.appOptions.customization.zoom ? parseInt(me.appOptions.customization.zoom) : -1);
(zf == -1) ? me.api.zoomFitToPage() : ((zf == -2) ? me.api.zoomFitToWidth() : me.api.zoom(zf>0 ? zf : 100));
Common.localStorage.setItem("de-settings-showsnaplines", me.api.get_ShowSnapLines() ? 1 : 0);
me.api.asc_registerCallback('asc_onStartAction', _.bind(me.onLongActionBegin, me));
me.api.asc_registerCallback('asc_onEndAction', _.bind(me.onLongActionEnd, me));
me.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(me.onCoAuthoringDisconnect, me));
me.api.asc_registerCallback('asc_onPrint', _.bind(me.onPrint, me));
me.updateWindowTitle(true);
value = Common.localStorage.getItem("pe-settings-inputmode");
me.api.SetTextBoxInputMode(value!==null && parseInt(value) == 1);
/** coauthoring begin **/
if (me.appOptions.isEdit && me.appOptions.canLicense && !me.appOptions.isOffline && me.appOptions.canCoAuthoring) {
// Force ON fast co-authoring mode
me._state.fastCoauth = true;
} else {
me._state.fastCoauth = false;
}
me.api.asc_SetFastCollaborative(me._state.fastCoauth);
/** coauthoring end **/
Common.localStorage.setItem("pe-settings-showsnaplines", me.api.get_ShowSnapLines() ? 1 : 0);
if (me.appOptions.isEdit) {
value = me._state.fastCoauth; // Common.localStorage.getItem("de-settings-autosave");
value = (!me._state.fastCoauth && value!==null) ? parseInt(value) : (me.appOptions.canCoAuthoring ? 1 : 0);
me.api.asc_setAutoSaveGap(value);
if (me.needToUpdateVersion) {
Common.NotificationCenter.trigger('api:disconnect');
}
}
// if (this.appOptions.canAnalytics && false)
// Common.component.Analytics.initialize('UA-12442749-13', 'Document Editor');
Common.Gateway.on('processsaveresult', _.bind(me.onProcessSaveResult, me));
Common.Gateway.on('processrightschange', _.bind(me.onProcessRightsChange, me));
Common.Gateway.on('downloadas', _.bind(me.onDownloadAs, me));
Common.Gateway.sendInfo({
mode: me.appOptions.isEdit ? 'edit' : 'view'
});
if (me.api) {
me.api.Resize();
me.api.zoomFitToWidth();
}
if (me._state.licenseWarning) {
value = Common.localStorage.getItem("de-license-warning");
value = (value!==null) ? parseInt(value) : 0;
var now = (new Date).getTime();
if (now - value > 86400000) {
Common.localStorage.setItem("de-license-warning", now);
uiApp.modal({
title: me.textNoLicenseTitle,
text : me.warnNoLicense,
buttons: [
{
text: me.textBuyNow,
bold: true,
onClick: function() {
window.open('http://www.onlyoffice.com/enterprise-edition.aspx', "_blank");
}
},
{
text: me.textContactUs,
onClick: function() {
window.open('mailto:sales@onlyoffice.com', "_blank");
}
}
],
});
}
}
},
onOpenDocument: function(progress) {
if (this.loadMask) {
var $title = $$(this.loadMask).find('.modal-title'),
proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount());
$title.text(this.textLoadingDocument + ': ' + Math.min(Math.round(proc * 100), 100) + '%');
}
},
onEditorPermissions: function(params) {
var me = this,
licType = params.asc_getLicenseType();
if (Asc.c_oLicenseResult.Expired === licType ||
Asc.c_oLicenseResult.Error === licType ||
Asc.c_oLicenseResult.ExpiredTrial === licType) {
uiApp.modal({
title : me.titleLicenseExp,
text : me.warnLicenseExp
});
return;
}
me.permissions.review = (me.permissions.review === undefined) ? (me.permissions.edit !== false) : me.permissions.review;
me.appOptions.canAnalytics = params.asc_getIsAnalyticsEnable();
me.appOptions.canLicense = (licType === Asc.c_oLicenseResult.Success);
me.appOptions.isLightVersion = params.asc_getIsLight();
/** coauthoring begin **/
me.appOptions.canCoAuthoring = !me.appOptions.isLightVersion;
/** coauthoring end **/
me.appOptions.isOffline = me.api.asc_isOffline();
me.appOptions.isReviewOnly = (me.permissions.review === true) && (me.permissions.edit === false);
me.appOptions.canRequestEditRights = me.editorConfig.canRequestEditRights;
me.appOptions.canEdit = (me.permissions.edit !== false || me.permissions.review === true) && // can edit or review
(me.editorConfig.canRequestEditRights || me.editorConfig.mode !== 'view') && // if mode=="view" -> canRequestEditRights must be defined
(!me.appOptions.isReviewOnly || me.appOptions.canLicense); // if isReviewOnly==true -> canLicense must be true
me.appOptions.isEdit = me.appOptions.canLicense && me.appOptions.canEdit && me.editorConfig.mode !== 'view';
me.appOptions.canReview = me.appOptions.canLicense && me.appOptions.isEdit && (me.permissions.review===true);
me.appOptions.canUseHistory = me.appOptions.canLicense && !me.appOptions.isLightVersion && me.editorConfig.canUseHistory && me.appOptions.canCoAuthoring && !me.appOptions.isDesktopApp;
me.appOptions.canHistoryClose = me.editorConfig.canHistoryClose;
me.appOptions.canHistoryRestore= me.editorConfig.canHistoryRestore && !!me.permissions.changeHistory;
me.appOptions.canUseMailMerge = me.appOptions.canLicense && me.appOptions.canEdit && !me.appOptions.isDesktopApp;
me.appOptions.canSendEmailAddresses = me.appOptions.canLicense && me.editorConfig.canSendEmailAddresses && me.appOptions.canEdit && me.appOptions.canCoAuthoring;
me.appOptions.canComments = me.appOptions.canLicense && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.comments===false);
me.appOptions.canChat = me.appOptions.canLicense && !me.appOptions.isOffline && !((typeof (me.editorConfig.customization) == 'object') && me.editorConfig.customization.chat===false);
me.appOptions.canEditStyles = me.appOptions.canLicense && me.appOptions.canEdit;
me.appOptions.canPrint = (me.permissions.print !== false);
var type = /^(?:(pdf|djvu|xps))$/.exec(me.document.fileType);
me.appOptions.canDownloadOrigin = !me.appOptions.nativeApp && me.permissions.download !== false && (type && typeof type[1] === 'string');
me.appOptions.canDownload = !me.appOptions.nativeApp && me.permissions.download !== false && (!type || typeof type[1] !== 'string');
me._state.licenseWarning = (licType===Asc.c_oLicenseResult.Connections) && me.appOptions.canEdit && me.editorConfig.mode !== 'view';
me.appOptions.canBranding = params.asc_getCanBranding() && (typeof me.editorConfig.customization == 'object');
me.applyModeCommonElements();
me.applyModeEditorElements();
me.api.asc_setViewMode(!me.appOptions.isEdit);
me.api.asc_LoadDocument();
me.api.Resize();
if (!me.appOptions.isEdit) {
me.hidePreloader();
me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
} }
},
applyModeCommonElements: function() {
var me = this;
if (type == Asc.c_oAscAsyncActionType['BlockInteraction']) { window.editor_elements_prepared = true;
Ext.Viewport.setMasked({
xtype : 'loadmask', _.each(me.getApplication().controllers, function(controller) {
message : text if (controller && _.isFunction(controller.setMode)) {
controller.setMode(me.editorConfig.mode);
}
}); });
if (me.api) {
me.api.asc_registerCallback('asc_onSendThemeColors', _.bind(this.onSendThemeColors, this));
var translateChart = new Asc.asc_CChartTranslate();
translateChart.asc_setTitle(me.txtDiagramTitle);
translateChart.asc_setXAxis(me.txtXAxis);
translateChart.asc_setYAxis(me.txtYAxis);
translateChart.asc_setSeries(me.txtSeries);
me.api.asc_setChartTranslate(translateChart);
var translateArt = new Asc.asc_TextArtTranslate();
translateArt.asc_setDefaultText(me.txtArt);
me.api.asc_setTextArtTranslate(translateArt);
} }
}, },
onLongActionEnd: function(type) { applyModeEditorElements: function() {
Ext.Viewport.unmask(); if (this.appOptions.isEdit) {
var me = this,
value;
// var value = Common.localStorage.getItem('pe-settings-unit');
// value = (value!==null) ? parseInt(value) : Common.Utils.Metric.getDefaultMetric();
// Common.Utils.Metric.setCurrentMetric(value);
// me.api.asc_SetDocumentUnits((value==Common.Utils.Metric.c_MetricUnits.inch) ? Asc.c_oAscDocumentUnits.Inch : ((value==Common.Utils.Metric.c_MetricUnits.pt) ? Asc.c_oAscDocumentUnits.Point : Asc.c_oAscDocumentUnits.Millimeter));
value = Common.localStorage.getItem('pe-hidden-rulers');
if (me.api.asc_SetViewRulers) me.api.asc_SetViewRulers(value===null || parseInt(value) === 0);
me.api.asc_registerCallback('asc_onChangeObjectLock', _.bind(me._onChangeObjectLock, me));
me.api.asc_registerCallback('asc_onDocumentModifiedChanged', _.bind(me.onDocumentModifiedChanged, me));
me.api.asc_registerCallback('asc_onDocumentCanSaveChanged', _.bind(me.onDocumentCanSaveChanged, me));
me.api.asc_registerCallback('asc_onSaveUrl', _.bind(me.onSaveUrl, me));
me.api.asc_registerCallback('asc_onDownloadUrl', _.bind(me.onDownloadUrl, me));
/** coauthoring begin **/
me.api.asc_registerCallback('asc_onCollaborativeChanges', _.bind(me.onCollaborativeChanges, me));
me.api.asc_registerCallback('asc_OnTryUndoInFastCollaborative',_.bind(me.onTryUndoInFastCollaborative, me));
me.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(me.onAuthParticipantsChanged, me));
me.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(me.onAuthParticipantsChanged, me));
/** coauthoring end **/
if (me.stackLongActions.exist({id: ApplyEditRights, type: Asc.c_oAscAsyncActionType['BlockInteraction']})) {
me.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], ApplyEditRights);
} else if (!this._isDocReady) {
me.hidePreloader();
me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
}
// Message on window close
window.onbeforeunload = _.bind(me.onBeforeUnload, me);
window.onunload = _.bind(me.onUnload, me);
}
}, },
onError: function(id, level, errData) { onExternalMessage: function(msg) {
if (msg && msg.msg) {
msg.msg = (msg.msg).toString();
uiApp.addNotification({
title: 'ONLYOFFICE',
message: [msg.msg.charAt(0).toUpperCase() + msg.msg.substring(1)]
});
Common.component.Analytics.trackEvent('External Error', msg.title);
}
},
this._hideLoadSplash(); onError: function(id, level, errData) {
this.hidePreloader();
this.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
var config = { var config = {
closable: false closable: false
...@@ -198,43 +677,47 @@ Ext.define('PE.controller.Main', { ...@@ -198,43 +677,47 @@ Ext.define('PE.controller.Main', {
switch (id) switch (id)
{ {
case Asc.c_oAscError.ID.Unknown: case Asc.c_oAscError.ID.Unknown:
config.message = this.unknownErrorText; config.msg = this.unknownErrorText;
break; break;
case Asc.c_oAscError.ID.ConvertationTimeout: case Asc.c_oAscError.ID.ConvertationTimeout:
config.message = this.convertationTimeoutText; config.msg = this.convertationTimeoutText;
break; break;
case Asc.c_oAscError.ID.ConvertationError: case Asc.c_oAscError.ID.ConvertationOpenError:
config.message = this.convertationErrorText; config.msg = this.openErrorText;
break;
case Asc.c_oAscError.ID.ConvertationSaveError:
config.msg = this.saveErrorText;
break; break;
case Asc.c_oAscError.ID.DownloadError: case Asc.c_oAscError.ID.DownloadError:
config.message = this.downloadErrorText; config.msg = this.downloadErrorText;
break; break;
case Asc.c_oAscError.ID.UplImageSize: case Asc.c_oAscError.ID.UplImageSize:
config.message = this.uploadImageSizeMessage; config.msg = this.uploadImageSizeMessage;
break; break;
case Asc.c_oAscError.ID.UplImageExt: case Asc.c_oAscError.ID.UplImageExt:
config.message = this.uploadImageExtMessage; config.msg = this.uploadImageExtMessage;
break; break;
case Asc.c_oAscError.ID.UplImageFileCount: case Asc.c_oAscError.ID.UplImageFileCount:
config.message = this.uploadImageFileCountMessage; config.msg = this.uploadImageFileCountMessage;
break; break;
case Asc.c_oAscError.ID.SplitCellMaxRows: case Asc.c_oAscError.ID.SplitCellMaxRows:
config.message = this.splitMaxRowsErrorText.replace('%1', errData.get_Value()); config.msg = this.splitMaxRowsErrorText.replace('%1', errData.get_Value());
break; break;
case Asc.c_oAscError.ID.SplitCellMaxCols: case Asc.c_oAscError.ID.SplitCellMaxCols:
config.message = this.splitMaxColsErrorText.replace('%1', errData.get_Value()); config.msg = this.splitMaxColsErrorText.replace('%1', errData.get_Value());
break; break;
case Asc.c_oAscError.ID.SplitCellRowsDivider: case Asc.c_oAscError.ID.SplitCellRowsDivider:
config.message = this.splitDividerErrorText.replace('%1', errData.get_Value()); config.msg = this.splitDividerErrorText.replace('%1', errData.get_Value());
break; break;
case Asc.c_oAscError.ID.VKeyEncrypt: case Asc.c_oAscError.ID.VKeyEncrypt:
...@@ -249,116 +732,478 @@ Ext.define('PE.controller.Main', { ...@@ -249,116 +732,478 @@ Ext.define('PE.controller.Main', {
config.msg = this.errorUsersExceed; config.msg = this.errorUsersExceed;
break; break;
default: case Asc.c_oAscError.ID.CoAuthoringDisconnect:
config.message = this.errorDefaultMessage.replace('%1', id); config.msg = (this.appOptions.isEdit) ? this.errorCoAuthoringDisconnect : this.errorViewerDisconnect;
break;
case Asc.c_oAscError.ID.ConvertationPassword:
config.msg = this.errorFilePassProtect;
break; break;
case Asc.c_oAscError.ID.StockChartError:
config.msg = this.errorStockChart;
break;
case Asc.c_oAscError.ID.DataRangeError:
config.msg = this.errorDataRange;
break;
case Asc.c_oAscError.ID.Database:
config.msg = this.errorDatabaseConnection;
break;
case Asc.c_oAscError.ID.UserDrop:
if (this._state.lostEditingRights) {
this._state.lostEditingRights = false;
return;
} }
this._state.lostEditingRights = true;
config.msg = this.errorUserDrop;
break;
case Asc.c_oAscError.ID.Warning:
config.msg = this.errorConnectToServer;
break;
default:
config.msg = this.errorDefaultMessage.replace('%1', id);
break;
}
if (level == Asc.c_oAscError.Level.Critical) { if (level == Asc.c_oAscError.Level.Critical) {
// report only critical errors // report only critical errors
Common.Gateway.reportError(id, config.message); Common.Gateway.reportError(id, config.msg);
config.title = this.criticalErrorTitle; config.title = this.criticalErrorTitle;
config.message += '<br/>' + this.criticalErrorExtText; // config.iconCls = 'error';
config.buttons = Ext.Msg.OK;
config.fn = function(btn) { if (this.appOptions.canBackToFolder) {
if (btn == 'ok') { config.msg += '</br></br>' + this.criticalErrorExtText;
window.location.reload(); config.callback = function() {
Common.NotificationCenter.trigger('goback');
} }
} }
} else { } else {
config.title = this.notcriticalErrorTitle; config.title = this.notcriticalErrorTitle;
config.buttons = Ext.Msg.OK; config.callback = _.bind(function(btn){
config.fn = Ext.emptyFn; if (id == Asc.c_oAscError.ID.Warning && btn == 'ok' && (this.appOptions.canDownload || this.appOptions.canDownloadOrigin)) {
Common.UI.Menu.Manager.hideAll();
if (this.appOptions.isDesktopApp && this.appOptions.isOffline)
this.api.asc_DownloadAs();
else
(this.appOptions.canDownload) ? this.getApplication().getController('LeftMenu').leftMenu.showMenu('file:saveas') : this.api.asc_DownloadOrigin();
}
this._state.lostEditingRights = false;
this.onEditComplete();
}, this);
} }
Ext.Msg.show(config); uiApp.modal({
title : config.title,
text : config.msg,
buttons: [
{
text: 'OK',
onClick: config.callback
}
]
});
Common.component.Analytics.trackEvent('Internal Error', id.toString()); Common.component.Analytics.trackEvent('Internal Error', id.toString());
}, },
onExternalMessage: function(msg) { onCoAuthoringDisconnect: function() {
if (msg) { this._state.isDisconnected = true;
this._hideLoadSplash(); },
Ext.Msg.show({
title: msg.title,
msg: '<br/>' + msg.msg,
icon: Ext.Msg[msg.severity.toUpperCase()],
buttons: Ext.Msg.OK
});
Common.component.Analytics.trackEvent('External Error', msg.title); updateWindowTitle: function(force) {
var isModified = this.api.isDocumentModified();
if (this._state.isDocModified !== isModified || force) {
var title = this.defaultTitleText;
if (window.document.title != title)
window.document.title = title;
if (!this._state.fastCoauth || this._state.usersCount<2 )
Common.Gateway.setDocumentModified(isModified);
else if ( this._state.startModifyDocument!==undefined && this._state.startModifyDocument === isModified){
Common.Gateway.setDocumentModified(isModified);
this._state.startModifyDocument = (this._state.startModifyDocument) ? !this._state.startModifyDocument : undefined;
}
this._state.isDocModified = isModified;
} }
}, },
onResetFocus: function(data) { onDocumentModifiedChanged: function() {
var activeElement = document.activeElement; if (this._state.fastCoauth && this._state.usersCount > 1 && this._state.startModifyDocument===undefined )
activeElement.focus(); return;
var isModified = this.api.asc_isDocumentCanSave();
if (this._state.isDocModified !== isModified) {
Common.Gateway.setDocumentModified(this.api.isDocumentModified());
}
this.updateWindowTitle();
}, },
onProcessSaveResult: function(data) { onDocumentCanSaveChanged: function (isCanSave) {
this.api && this.api.asc_OnSaveEnd(data.result); //
}, },
onDownloadAs: function() { onBeforeUnload: function() {
this.api.asc_DownloadAs(Asc.c_oAscFileType.PPTX, true); Common.localStorage.save();
if (this.api.isDocumentModified()) {
var me = this;
this.api.asc_stopSaving();
this.continueSavingTimer = window.setTimeout(function() {
me.api.asc_continueSaving();
}, 500);
return this.leavePageText;
}
},
onUnload: function() {
if (this.continueSavingTimer)
clearTimeout(this.continueSavingTimer);
},
hidePreloader: function() {
// if (!!this.appOptions.customization && !this.appOptions.customization.done) {
// this.appOptions.customization.done = true;
// if (!this.appOptions.isDesktopApp)
// this.appOptions.customization.about = true;
// Common.Utils.applyCustomization(this.appOptions.customization, mapCustomizationElements);
// if (this.appOptions.canBrandingExt)
// Common.Utils.applyCustomization(this.appOptions.customization, mapCustomizationExtElements);
// }
$('#loading-mask').hide().remove();
}, },
_hideLoadSplash: function(){ onSaveUrl: function(url) {
var preloader = Ext.get('loading-mask'); Common.Gateway.save(url);
if (preloader) { },
Ext.Anim.run(preloader, 'fade', {
out : true, onDownloadUrl: function(url) {
duration: 250, if (this._state.isFromGatewayDownloadAs) {
after : function(){ Common.Gateway.downloadAs(url);
preloader.destroy();
} }
this._state.isFromGatewayDownloadAs = false;
},
onUpdateVersion: function(callback) {
var me = this;
me.needToUpdateVersion = true;
me.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
uiApp.alert(
me.errorUpdateVersion,
me.titleUpdateVersion,
function () {
_.defer(function() {
Common.Gateway.updateVersion();
if (callback) {
callback.call(me);
}
me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
})
});
},
onCollaborativeChanges: function() {
//
},
/** coauthoring end **/
initNames: function() {
this.shapeGroupNames = [
this.txtBasicShapes,
this.txtFiguredArrows,
this.txtMath,
this.txtCharts,
this.txtStarsRibbons,
this.txtCallouts,
this.txtButtons,
this.txtRectangles,
this.txtLines
];
this.layoutNames = [
this.txtSldLtTBlank, this.txtSldLtTChart, this.txtSldLtTChartAndTx, this.txtSldLtTClipArtAndTx,
this.txtSldLtTClipArtAndVertTx, this.txtSldLtTCust, this.txtSldLtTDgm, this.txtSldLtTFourObj,
this.txtSldLtTMediaAndTx, this.txtSldLtTObj, this.txtSldLtTObjAndTwoObj, this.txtSldLtTObjAndTx,
this.txtSldLtTObjOnly, this.txtSldLtTObjOverTx, this.txtSldLtTObjTx, this.txtSldLtTPicTx,
this.txtSldLtTSecHead, this.txtSldLtTTbl, this.txtSldLtTTitle, this.txtSldLtTTitleOnly,
this.txtSldLtTTwoColTx, this.txtSldLtTTwoObj, this.txtSldLtTTwoObjAndObj, this.txtSldLtTTwoObjAndTx,
this.txtSldLtTTwoObjOverTx, this.txtSldLtTTwoTxTwoObj, this.txtSldLtTTx, this.txtSldLtTTxAndChart,
this.txtSldLtTTxAndClipArt, this.txtSldLtTTxAndMedia, this.txtSldLtTTxAndObj,
this.txtSldLtTTxAndTwoObj, this.txtSldLtTTxOverObj, this.txtSldLtTVertTitleAndTx,
this.txtSldLtTVertTitleAndTxOverChart, this.txtSldLtTVertTx
];
},
updateThemeColors: function() {
//
},
onSendThemeColors: function(colors, standart_colors) {
Common.Utils.ThemeColor.setColors(colors, standart_colors);
},
onFocusObject: function(SelectedObjects) {
// if (SelectedObjects.length>0) {
// var rightpan = this.getApplication().getController('RightMenu');
// // var docPreview = this.getApplication().getController('Viewport').getView('DocumentPreview');
// if (rightpan /*&& !docPreview.isVisible()*/) rightpan.onFocusObject.call(rightpan, SelectedObjects);
// }
},
_onChangeObjectLock: function() {
var elements = this.api.getSelectedElements();
this.onFocusObject(elements);
},
onThumbnailsShow: function(isShow) {
this.isThumbnailsShow = isShow;
},
onAdvancedOptions: function(advOptions) {
var type = advOptions.asc_getOptionId(),
me = this, modal;
if (type == Asc.c_oAscAdvancedOptionsID.DRM) {
modal = uiApp.modal({
title: me.advDRMOptions,
text: me.advDRMEnterPassword,
afterText: '<div class="input-field"><input type="password" name="modal-password" placeholder="' + me.advDRMPassword + '" class="modal-text-input"></div>',
buttons: [
{
text: 'OK',
bold: true,
onClick: function () {
var password = $(modal).find('.modal-text-input[name="modal-password"]').val();
me.api.asc_setAdvancedOptions(type, new Asc.asc_CDRMAdvancedOptions(password));
if (!me._isDocReady) {
me.onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
}
}
}
]
}); });
} }
}, },
_isSupport: function(){ onTryUndoInFastCollaborative: function() {
return (Ext.browser.is.WebKit && (Ext.os.is.iOS || Ext.os.is.Android || Ext.os.is.Desktop)); uiApp.alert(
this.textTryUndoRedo,
this.notcriticalErrorTitle
);
}, },
_fillUserInfo: function(info, lang, defname) { onAuthParticipantsChanged: function(users) {
var _user = info || {}; var length = 0;
!_user.id && (_user.id = ('uid-' + Date.now())); _.each(users, function(item){
_.isEmpty(_user.firstname) && _.isEmpty(_user.lastname) if (!item.asc_getView())
&& (_user.firstname = defname); length++;
});
this._state.usersCount = length;
},
onDocumentName: function(name) {
// this.getApplication().getController('Viewport').getView('Common.Views.Header').setDocumentCaption(name);
this.updateWindowTitle(true);
},
onMeta: function(meta) {
// var app = this.getApplication(),
// filemenu = app.getController('LeftMenu').getView('LeftMenu').getMenu('file');
// app.getController('Viewport').getView('Common.Views.Header').setDocumentCaption(meta.title);
this.updateWindowTitle(true);
// this.document.title = meta.title;
// filemenu.loadDocument({doc:this.document});
// filemenu.panels['info'].updateInfo(this.document);
Common.Gateway.metaChange(meta);
},
onPrint: function() {
if (!this.appOptions.canPrint) return;
if (this.api)
this.api.asc_Print(Common.Utils.isChrome || Common.Utils.isSafari || Common.Utils.isOpera); // if isChrome or isSafari or isOpera == true use asc_onPrintUrl event
Common.component.Analytics.trackEvent('Print');
},
onPrintUrl: function(url) {
var me = this;
if (me.iframePrint) {
me.iframePrint.parentNode.removeChild(me.iframePrint);
me.iframePrint = null;
}
_user.fullname = /^ru/.test(lang) ? if (!me.iframePrint) {
_user.lastname + ' ' + _user.firstname : _user.firstname + ' ' + _user.lastname; me.iframePrint = document.createElement("iframe");
me.iframePrint.id = "id-print-frame";
me.iframePrint.style.display = 'none';
me.iframePrint.style.visibility = "hidden";
me.iframePrint.style.position = "fixed";
me.iframePrint.style.right = "0";
me.iframePrint.style.bottom = "0";
document.body.appendChild(me.iframePrint);
me.iframePrint.onload = function() {
me.iframePrint.contentWindow.focus();
me.iframePrint.contentWindow.print();
me.iframePrint.contentWindow.blur();
window.focus();
};
}
return _user; if (url) {
me.iframePrint.src = url;
}
}, },
printText: 'Printing...', // Translation
leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' to await the autosave of the document. Click \'Leave this Page\' to discard all the unsaved changes.',
defaultTitleText: 'ONLYOFFICE Presentation Editor',
criticalErrorTitle: 'Error', criticalErrorTitle: 'Error',
notcriticalErrorTitle: 'Warning', notcriticalErrorTitle: 'Warning',
errorDefaultMessage: 'Error code: %1', errorDefaultMessage: 'Error code: %1',
criticalErrorExtText: 'Press "Ok" to reload view page.', criticalErrorExtText: 'Press "Ok" to to back to document list.',
openTitleText: 'Opening Document',
openTextText: 'Opening document...',
saveTitleText: 'Saving Document',
saveTextText: 'Saving document...',
loadFontsTitleText: 'Loading Data',
loadFontsTextText: 'Loading data...',
loadImagesTitleText: 'Loading Images',
loadImagesTextText: 'Loading images...',
loadFontTitleText: 'Loading Data',
loadFontTextText: 'Loading data...',
loadImageTitleText: 'Loading Image',
loadImageTextText: 'Loading image...',
downloadTitleText: 'Downloading Document',
downloadTextText: 'Downloading document...',
printTitleText: 'Printing Document',
printTextText: 'Printing document...',
uploadImageTitleText: 'Uploading Image',
uploadImageTextText: 'Uploading image...',
uploadImageSizeMessage: 'Maximium image size limit exceeded.', uploadImageSizeMessage: 'Maximium image size limit exceeded.',
uploadImageExtMessage: 'Unknown image format.', uploadImageExtMessage: 'Unknown image format.',
uploadImageFileCountMessage: 'No images uploaded.', uploadImageFileCountMessage: 'No images uploaded.',
reloadButtonText: 'Reload Page', reloadButtonText: 'Reload Page',
unknownErrorText: 'Unknown error.', unknownErrorText: 'Unknown error.',
convertationTimeoutText: 'Convertation timeout exceeded.', convertationTimeoutText: 'Convertation timeout exceeded.',
convertationErrorText: 'Convertation failed.',
downloadErrorText: 'Download failed.', downloadErrorText: 'Download failed.',
unsupportedBrowserErrorText : 'Your browser is not supported.', unsupportedBrowserErrorText : 'Your browser is not supported.',
splitMaxRowsErrorText: 'The number of rows must be less than %1', splitMaxRowsErrorText: 'The number of rows must be less than %1',
splitMaxColsErrorText: 'The number of columns must be less than %1', splitMaxColsErrorText: 'The number of columns must be less than %1',
splitDividerErrorText: 'The number of rows must be a divisor of %1', splitDividerErrorText: 'The number of rows must be a divisor of %1',
requestEditRightsText: 'Requesting editing rights...',
requestEditFailedTitleText: 'Access denied', requestEditFailedTitleText: 'Access denied',
requestEditFailedMessageText: 'Someone is editing this document right now. Please try again later.', requestEditFailedMessageText: 'Someone is editing this document right now. Please try again later.',
txtSldLtTBlank: 'Blank',
txtSldLtTChart: 'Chart',
txtSldLtTChartAndTx: 'Chart and Text',
txtSldLtTClipArtAndTx: 'Clip Art and Text',
txtSldLtTClipArtAndVertTx: 'Clip Art and Vertical Text',
txtSldLtTCust: 'Custom',
txtSldLtTDgm: 'Diagram',
txtSldLtTFourObj: 'Four Objects',
txtSldLtTMediaAndTx: 'Media and Text',
txtSldLtTObj: 'Title and Object',
txtSldLtTObjAndTwoObj: 'Object and Two Object',
txtSldLtTObjAndTx: 'Object and Text',
txtSldLtTObjOnly: 'Object',
txtSldLtTObjOverTx: 'Object over Text',
txtSldLtTObjTx: 'Title, Object, and Caption',
txtSldLtTPicTx: 'Picture and Caption',
txtSldLtTSecHead: 'Section Header',
txtSldLtTTbl: 'Table',
txtSldLtTTitle: 'Title',
txtSldLtTTitleOnly: 'Title Only',
txtSldLtTTwoColTx: 'Two Column Text',
txtSldLtTTwoObj: 'Two Objects',
txtSldLtTTwoObjAndObj: 'Two Objects and Object',
txtSldLtTTwoObjAndTx: 'Two Objects and Text',
txtSldLtTTwoObjOverTx: 'Two Objects over Text',
txtSldLtTTwoTxTwoObj: 'Two Text and Two Objects',
txtSldLtTTx: 'Text',
txtSldLtTTxAndChart: 'Text and Chart',
txtSldLtTTxAndClipArt: 'Text and Clip Art',
txtSldLtTTxAndMedia: 'Text and Media',
txtSldLtTTxAndObj: 'Text and Object',
txtSldLtTTxAndTwoObj: 'Text and Two Objects',
txtSldLtTTxOverObj: 'Text over Object',
txtSldLtTVertTitleAndTx: 'Vertical Title and Text',
txtSldLtTVertTitleAndTxOverChart: 'Vertical Title and Text Over Chart',
txtSldLtTVertTx: 'Vertical Text',
textLoadingDocument: 'Loading presentation',
warnBrowserZoom: 'Your browser\'s current zoom setting is not fully supported. Please reset to the default zoom by pressing Ctrl+0.',
warnBrowserIE9: 'The application has low capabilities on IE9. Use IE10 or higher',
loadThemeTitleText: 'Loading Theme',
loadThemeTextText: 'Loading theme...',
txtBasicShapes: 'Basic Shapes',
txtFiguredArrows: 'Figured Arrows',
txtMath: 'Math',
txtCharts: 'Charts',
txtStarsRibbons: 'Stars & Ribbons',
txtCallouts: 'Callouts',
txtButtons: 'Buttons',
txtRectangles: 'Rectangles',
txtLines: 'Lines',
errorKeyEncrypt: 'Unknown key descriptor', errorKeyEncrypt: 'Unknown key descriptor',
errorKeyExpire: 'Key descriptor expired', errorKeyExpire: 'Key descriptor expired',
errorUsersExceed: 'Count of users was exceed', errorUsersExceed: 'Count of users was exceed',
txtEditingMode: 'Set editing mode...',
errorCoAuthoringDisconnect: 'Server connection lost. You can\'t edit anymore.',
errorFilePassProtect: 'The document is password protected.',
textAnonymous: 'Anonymous', textAnonymous: 'Anonymous',
textLoadingDocument: 'Loading document' txtNeedSynchronize: 'You have an updates',
applyChangesTitleText: 'Loading Data',
applyChangesTextText: 'Loading data...',
savePreparingText: 'Preparing to save',
savePreparingTitle: 'Preparing to save. Please wait...',
loadingDocumentTitleText: 'Loading presentation',
loadingDocumentTextText: 'Loading presentation...',
warnProcessRightsChange: 'You have been denied the right to edit the file.',
errorProcessSaveResult: 'Saving is failed.',
textCloseTip: '\nClick to close the tip.',
textShape: 'Shape',
errorStockChart: 'Incorrect row order. To build a stock chart place the data on the sheet in the following order:<br> opening price, max price, min price, closing price.',
errorDataRange: 'Incorrect data range.',
errorDatabaseConnection: 'External error.<br>Database connection error. Please, contact support.',
errorUpdateVersion: 'The file version has been changed. The page will be reloaded.',
errorUserDrop: 'The file cannot be accessed right now.',
txtDiagramTitle: 'Chart Title',
txtXAxis: 'X Axis',
txtYAxis: 'Y Axis',
txtSeries: 'Seria',
txtArt: 'Your text here',
errorConnectToServer: ' The document could not be saved. Please check connection settings or contact your administrator.<br>When you click the \'OK\' button, you will be prompted to download the document.<br><br>' +
'Find more information about connecting Document Server <a href=\"https://api.onlyoffice.com/editors/callback\" target=\"_blank\">here</a>',
textTryUndoRedo: 'The Undo/Redo functions are disabled for the Fast co-editing mode.<br>Click the \'Strict mode\' button to switch to the Strict co-editing mode to edit the file without other users interference and send your changes only after you save them. You can switch between the co-editing modes using the editor Advanced settings.',
textStrict: 'Strict mode',
textBuyNow: 'Visit website',
textNoLicenseTitle: 'ONLYOFFICE open source version',
warnNoLicense: 'You are using an open source version of ONLYOFFICE. The version has limitations for concurrent connections to the document server (20 connections at a time).<br>If you need more please consider purchasing a commercial license.',
textContactUs: 'Contact sales',
errorViewerDisconnect: 'Connection is lost. You can still view the document,<br>but will not be able to download or print until the connection is restored.',
warnLicenseExp: 'Your license has expired.<br>Please update your license and refresh the page.',
titleLicenseExp: 'License expired',
openErrorText: 'An error has occurred while opening the file',
saveErrorText: 'An error has occurred while saving the file',
advDRMOptions: 'Protected File',
advDRMEnterPassword: 'You password please:',
advDRMPassword: 'Password'
}
})(), PE.Controllers.Main || {}))
}); });
\ No newline at end of file
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
Ext.define('PE.controller.Presentation', {
extend: 'Ext.app.Controller',
config: {
refs: {
},
control: {
}
},
init: function() {
},
launch: function() {
Ext.getCmp('id-conteiner-document').on('resize', this.onEditorResize, this);
},
setApi: function(o) {
this.api = o;
},
onEditorResize: function(cmp) {
if (this.api) {
this.api.Resize();
this.api.zoomFitToWidth();
}
}
});
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
/**
* Toolbar.js
* Presentation Editor
*
* Created by Alexander Yuzhin on 11/21/16
* Copyright (c) 2016 Ascensio System SIA. All rights reserved.
*
*/
define([
'core',
'jquery',
'underscore',
'backbone',
'presentationeditor/mobile/app/view/Toolbar'
], function (core, $, _, Backbone) {
'use strict';
PE.Controllers.Toolbar = Backbone.Controller.extend(_.extend((function() {
// private
var _backUrl;
return {
models: [],
collections: [],
views: [
'Toolbar'
],
initialize: function() {
Common.Gateway.on('init', _.bind(this.loadConfig, this));
},
loadConfig: function (data) {
if (data && data.config && data.config.canBackToFolder !== false &&
data.config.customization && data.config.customization.goback && data.config.customization.goback.url) {
_backUrl = data.config.customization.goback.url;
$('#document-back').show().single('click', _.bind(this.onBack, this));
}
},
setApi: function(api) {
this.api = api;
this.api.asc_registerCallback('asc_onCanUndo', _.bind(this.onApiCanRevert, this, 'undo'));
this.api.asc_registerCallback('asc_onCanRedo', _.bind(this.onApiCanRevert, this, 'redo'));
},
setMode: function (mode) {
this.getView('Toolbar').setMode(mode);
},
onLaunch: function() {
var me = this;
me.createView('Toolbar').render();
$('#toolbar-undo').single('click', _.bind(me.onUndo, me));
$('#toolbar-redo').single('click', _.bind(me.onRedo, me));
},
setDocumentTitle: function (title) {
$('#toolbar-title').html(title);
},
// Handlers
onBack: function (e) {
var me = this;
if (me.api.isDocumentModified()) {
uiApp.modal({
title : me.dlgLeaveTitleText,
text : me.dlgLeaveMsgText,
verticalButtons: true,
buttons : [
{
text: me.leaveButtonText,
onClick: function() {
window.parent.location.href = _backUrl;
}
},
{
text: me.stayButtonText,
bold: true
}
]
});
} else {
window.parent.location.href = _backUrl;
}
},
onUndo: function (e) {
if (this.api)
this.api.Undo();
},
onRedo: function (e) {
if (this.api)
this.api.Redo();
},
// API handlers
onApiCanRevert: function(which, can) {
if (which == 'undo') {
$('#toolbar-undo').toggleClass('disabled', !can);
} else {
$('#toolbar-redo').toggleClass('disabled', !can);
}
},
dlgLeaveTitleText : 'You leave the application',
dlgLeaveMsgText : 'You have unsaved changes in this document. Click \'Stay on this Page\' to await the autosave of the document. Click \'Leave this Page\' to discard all the unsaved changes.',
leaveButtonText : 'Leave this Page',
stayButtonText : 'Stay on this Page'
}
})(), PE.Controllers.Toolbar || {}))
});
\ No newline at end of file
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
Ext.define('PE.controller.tablet.Main', {
extend: 'PE.controller.Main',
requires: [
'Ext.Anim'
],
config: {
refs: {
viewToolbar : 'viewtoolbar'
},
control: {
}
},
launch: function() {
this.callParent(arguments);
},
initControl: function() {
this.callParent(arguments);
},
initApi: function() {
this.callParent(arguments);
},
setApi: function(o){
this.api = o;
var viewToolbar = this.getViewToolbar();
viewToolbar && viewToolbar.show();
this.api && this.api.asc_enableKeyEvents(false);
},
setPresentationName: function(name){
}
});
\ No newline at end of file
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
Ext.define('PE.controller.toolbar.View', {
extend: 'Ext.app.Controller',
config: {
refs: {
viewToolbar : 'viewtoolbar',
fullscreenButton: '#id-tb-btn-fullscreen',
shareButton : '#id-tb-btn-view-share',
btnPrevSlide : '#id-tb-btn-prev-slide',
btnNextSlide : '#id-tb-btn-next-slide',
btnPlaySlide : '#id-tb-btn-play',
overlayContainer: '#id-preview-overlay-container',
doneButton : '#id-tb-btn-view-done'
},
control: {
fullscreenButton: {
tap : 'onTapFullscreenButton'
},
shareButton : {
tap : 'onTapShareButton'
},
btnPrevSlide: {
tap : 'onPrevSlide'
},
btnNextSlide: {
tap : 'onNextSlide'
},
btnPlaySlide: {
tap : 'onPlaySlide'
},
doneButton: {
tap : 'onTapDoneButton'
}
},
isFullscreen : false
},
launch: function() {
this.callParent(arguments);
var overlayContainer = this.getOverlayContainer();
if (overlayContainer){
overlayContainer.element.on('singletap', this.onSingleTapDocument, this);
overlayContainer.element.on('touchstart', this.onTouchStartDocument, this);
overlayContainer.element.on('touchend', this.onTouchEndDocument, this);
}
if (Ext.os.is.iOS) {
Ext.each(Ext.ComponentQuery.query('button'), function(button) {
button.element.dom.ontouchstart = Ext.emptyFn();
button.element.dom.ontouchmove = Ext.emptyFn();
button.element.dom.ontouchend = Ext.emptyFn();
}, this);
Ext.each(Ext.ComponentQuery.query('toolbar'), function(toolbar) {
var preventFn = function(e){
e.preventDefault();
};
toolbar.element.dom.ontouchstart = preventFn;
toolbar.element.dom.ontouchmove = preventFn;
toolbar.element.dom.ontouchend = preventFn;
}, this);
}
Common.Gateway.on('init', Ext.bind(this.loadConfig, this));
},
initControl: function() {
this._startX = 0;
this.callParent(arguments);
},
initApi: function() {
//
},
setApi: function(o){
this.api = o;
if (this.api) {
this.api.asc_registerCallback('asc_onEndDemonstration', Ext.bind(this.onApiEndDemonstration, this));
this.api.asc_registerCallback('asc_onDemonstrationSlideChanged',Ext.bind(this.onApiDemonstrationSlideChanged, this));
this.api.DemonstrationEndShowMessage(this.txtFinalMessage);
}
},
loadConfig: function(data) {
var doneButton = this.getDoneButton();
if (doneButton && data && data.config && data.config.canBackToFolder !== false &&
data.config.customization && data.config.customization.goback && data.config.customization.goback.url){
this.gobackUrl = data.config.customization.goback.url;
doneButton.show();
}
},
onTapDoneButton: function() {
if (this.gobackUrl) window.parent.location.href = this.gobackUrl;
},
onTapFullscreenButton: function(btn) {
var viewToolbar = this.getViewToolbar();
if (viewToolbar) {
this.setIsFullscreen(!this.getIsFullscreen());
if (this.getIsFullscreen()) {
btn.addCls('x-button-pressing');
viewToolbar.setStyle({
position : 'absolute',
left : 0,
top : 0,
right : 0,
opacity : 0.9,
'z-index' : 7
});
this.onSingleTapDocument();
} else {
viewToolbar.setStyle({
position : 'initial',
opacity : 1
});
viewToolbar.setDocked('top');
}
}
},
onTapShareButton: function() {
this.api && this.api.asc_Print();
Common.component.Analytics.trackEvent('ToolBar View', 'Share');
},
onSingleTapDocument: function() {
if (this.getIsFullscreen()) {
var viewToolbar = this.getViewToolbar();
if (viewToolbar){
if (viewToolbar.isHidden()){
viewToolbar.show({
preserveEndState: true,
easing : 'ease-in',
from : {opacity : 0},
to : {opacity : 0.9}
});
} else {
viewToolbar.hide({
easing : 'ease-out',
from : {opacity : 0.9},
to : {opacity : 0}
});
}
}
}
},
onTouchStartDocument: function(event, node, options, eOpts){
this._startX = event.pageX;
},
onTouchEndDocument: function(event, node, options, eOpts){
if (event.pageX - this._startX<-50) {
this.api.DemonstrationNextSlide();
} else if (event.pageX - this._startX>50) {
this.api.DemonstrationPrevSlide();
}
},
onPrevSlide: function(){
if (this.api){
this.api.DemonstrationPrevSlide();
}
},
onNextSlide: function(){
if (this.api){
this.api.DemonstrationNextSlide();
}
},
onPlaySlide: function(){
var btnPlay = this.getBtnPlaySlide();
if (this.api && btnPlay){
if (btnPlay.getIconCls() == 'play'){
this.api.DemonstrationPlay();
btnPlay.setIconCls('pause');
} else {
this.api.DemonstrationPause();
btnPlay.setIconCls('play');
}
}
},
onApiEndDemonstration: function( ) {
if (this.api)
this.api.StartDemonstration('id-presentation-preview', 0);
},
onApiDemonstrationSlideChanged: function(slideNum) {
if (this.api && Ext.isNumber(slideNum)) {
var count = this.api.getCountPages(),
btnNextSlide = this.getBtnNextSlide(),
btnPrevSlide = this.getBtnPrevSlide();
if (btnPrevSlide)
btnPrevSlide.setDisabled(slideNum <= 0);
if (btnNextSlide)
btnNextSlide.setDisabled(slideNum >= count-1);
}
},
txtFinalMessage: 'The end of slide preview'
});
\ No newline at end of file
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
Ext.define('PE.profile.Phone', {
extend: 'Ext.app.Profile',
config: {
name: 'phone',
namespace: 'phone',
controllers: [
'Main',
'PE.controller.Presentation',
'PE.controller.toolbar.View'
],
views: [
'Main'
]
},
isActive: function() {
return (Ext.os.is.Phone && (Ext.os.is.iOS || Ext.os.is.Android));
},
launch: function() {
Ext.widget('pephonemain');
}
});
\ No newline at end of file
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
Ext.define('PE.profile.Tablet', {
extend: 'Ext.app.Profile',
config: {
name: 'tablet',
namespace: 'tablet',
controllers: [
'Main',
'PE.controller.Presentation',
'PE.controller.toolbar.View'
],
views: [
'Main'
]
},
isActive: function() {
return (Ext.browser.is.WebKit && ((Ext.os.is.Tablet && (Ext.os.is.iOS || Ext.os.is.Android)) || Ext.os.is.Desktop));
},
launch: function() {
Ext.widget('petabletmain');
}
});
\ No newline at end of file
<div class="views">
<div id="pe-preview" style="position:absolute; left: 0; top: 0; display:none; width:100%; height:100%; z-index: 1;"></div>
<div class="view view-main">
<div class="pages navbar-through">
<div data-page="index" class="page">
<div id="editor_sdk" class="page-content no-fastclick"></div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<div class="navbar" id="editor-navbar">
<div class="navbar-inner">
<div class="left">
<a id="document-back" href="#" class="link" style="min-width: 22px; display: none;">
<i class="icon icon-back"></i>
<% if (backTitle && !phone) { %>
<span class="subtitle"><%= backTitle %></span>
<% } %>
</a>
<% if (!android) { %>
<a href="#" id="toolbar-undo" class="link icon-only disabled" style="display: none;">
<i class="icon icon-undo"></i>
</a>
<a href="#" id="toolbar-redo" class="link icon-only disabled" style="display: none;">
<i class="icon icon-redo"></i>
</a>
<% } %>
</div>
<% if (!phone) { %>
<div class="center" id="toolbar-title"></div>
<% } %>
<div class="right">
<% if (android) { %>
<a href="#" id="toolbar-undo" class="link icon-only disabled" style="display: none;">
<i class="icon icon-undo"></i>
</a>
<a href="#" id="toolbar-redo" class="link icon-only disabled" style="display: none;">
<i class="icon icon-redo"></i>
</a>
<% } %>
<a href="#" id="toolbar-edit" class="link icon-only" style="display: none;">
<i class="icon icon-edit"></i>
</a>
<a href="#" id="toolbar-add" class="link icon-only" style="display: none;">
<i class="icon icon-plus"></i>
</a>
<% if (!phone) { %>
<a href="#" id="toolbar-search" class="link icon-only">
<i class="icon icon-search"></i>
</a>
<% } %>
<a href="#" id="toolbar-settings" class="link icon-only">
<i class="icon icon-settings"></i>
</a>
</div>
</div>
</div>
...@@ -29,43 +29,53 @@ ...@@ -29,43 +29,53 @@
* Creative Commons Attribution-ShareAlike 4.0 International. See the License * Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
* *
*/ */
Ext.define('PE.controller.phone.Main', {
extend: 'PE.controller.Main',
requires: [ /**
'Ext.Anim' * Editor.js
], * Presentation Editor
*
* Created by Alexander Yuzhin on 11/21/16
* Copyright (c) 2016 Ascensio System SIA. All rights reserved.
*
*/
config: {
refs: {
viewToolbar : 'viewtoolbar'
},
control: { define([
} 'text!presentationeditor/mobile/app/template/Editor.template',
}, 'jquery',
'underscore',
'backbone'
], function (editorTemplate, $, _, Backbone) {
'use strict';
launch: function() { PE.Views.Editor = Backbone.View.extend({
this.callParent(arguments); el: 'body',
},
initControl: function() { // Compile our stats template
this.callParent(arguments); template: _.template(editorTemplate),
// Delegated events for creating new items, and clearing completed ones.
events: {
}, },
initApi: function() { // Set innerHTML and get the references to the DOM elements
this.callParent(arguments); initialize: function() {
//
}, },
setApi: function(o){ // Render layout
this.api = o; render: function() {
var el = $(this.el);
el.html(this.template({
backTitle: Framework7.prototype.device.android ? '' : ''
}));
var viewToolbar = this.getViewToolbar(); this.f7View = uiApp.addView('.view-main', {
viewToolbar && viewToolbar.show(); // params
this.api && this.api.asc_enableKeyEvents(false); });
},
setPresentationName: function(name){ return this;
} }
});
}); });
\ No newline at end of file
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
Ext.define('PE.view.Main', {
extend: 'Ext.Container',
initialize: function() {
this.callParent(arguments);
}
});
\ No newline at end of file
...@@ -29,61 +29,112 @@ ...@@ -29,61 +29,112 @@
* Creative Commons Attribution-ShareAlike 4.0 International. See the License * Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
* *
*/ */
Ext.define('PE.view.phone.toolbar.View', {
extend: 'Ext.Toolbar', /**
xtype: 'viewtoolbar', * Toolbar.js
* Presentation Editor
config: { *
docked : 'top', * Created by Alexander Yuzhin on 11/21/16
minHeight : 44, * Copyright (c) 2016 Ascensio System SIA. All rights reserved.
ui : 'edit' *
*/
define([
'text!presentationeditor/mobile/app/template/Toolbar.template',
'jquery',
'underscore',
'backbone'
], function (toolbarTemplate, $, _, Backbone) {
'use strict';
PE.Views.Toolbar = Backbone.View.extend(_.extend((function() {
// private
return {
el: '.view-main',
// Compile our stats template
template: _.template(toolbarTemplate),
// Delegated events for creating new items, and clearing completed ones.
events: {
"click #toolbar-search" : "searchToggle",
"click #toolbar-edit" : "showEdition",
"click #toolbar-add" : "showInserts",
"click #toolbar-settings" : "showSettings"
}, },
// Set innerHTML and get the references to the DOM elements
initialize: function() { initialize: function() {
this.add([ var me = this;
{
id : 'id-tb-btn-view-done', Common.NotificationCenter.on('readermode:change', function (reader) {
ui : 'base-blue', if (reader) {
cls : 'text-offset-12', me.hideSearch();
hidden : true, $('#toolbar-search').addClass('disabled');
text : this.doneText } else {
$('#toolbar-search').removeClass('disabled');
}
});
},
// Render layout
render: function() {
var $el = $(this.el);
$el.prepend(this.template({
android : Common.SharedSettings.get('android'),
phone : Common.SharedSettings.get('phone'),
backTitle : Common.SharedSettings.get('android') ? '' : this.textBack,
scope : this
}));
return this;
}, },
{
xtype : 'spacer' setMode: function (mode) {
var isEdit = (mode === 'edit');
if (isEdit) {
$('#toolbar-edit, #toolbar-add, #toolbar-undo, #toolbar-redo').show();
}
}, },
{
id : 'id-tb-btn-prev-slide', // Search
ui : 'base', searchToggle: function() {
iconCls : 'left' if ($$('.searchbar.document').length > 0) {
this.hideSearch();
} else {
this.showSearch();
}
}, },
{
id : 'id-tb-btn-play', showSearch: function () {
ui : 'base', PE.getController('Search').showSearch();
iconCls : 'play'
}, },
{
id : 'id-tb-btn-next-slide', hideSearch: function () {
ui : 'base', PE.getController('Search').hideSearch();
iconCls : 'right'
}, },
{
xtype : 'spacer' // Editor
showEdition: function () {
PE.getController('EditContainer').showModal();
}, },
{
id : 'id-tb-btn-view-share', // Inserts
ui : 'base',
iconCls : 'share' showInserts: function () {
PE.getController('AddContainer').showModal();
}, },
{
id : 'id-tb-btn-fullscreen',
ui : 'base',
iconCls : 'fullscreen'
}
]);
this.callParent(arguments); // Settings
showSettings: function () {
PE.getController('Settings').showModal();
}, },
doneText: 'Done' textBack: 'Back'
}
})(), PE.Views.Toolbar || {}))
}); });
\ No newline at end of file
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
Ext.define('PE.view.phone.Main', {
extend: 'PE.view.Main',
alias: 'widget.pephonemain',
requires: ([
'PE.view.phone.toolbar.View'
]),
config: {
cls: 'pe-phone-main',
fullscreen: true,
layout: {
type: 'vbox',
pack: 'center'
}
},
initialize: function() {
var me = this;
this.add(Ext.create('PE.view.phone.toolbar.View', {
hidden : true
}));
this.add({
xtype : 'container',
layout : 'vbox',
id : 'id-conteiner-document',
flex : 1,
items : [
{
xtype : 'container',
height : 0,
id : 'id-sdkeditor'
},
{
xtype : 'container',
flex : 1,
id : 'id-presentation-preview'
},
{
xtype : 'panel',
cls : 'pnl-overlay',
id : 'id-preview-overlay-container',
style : 'position:absolute; left:0; top:0; width:100%; height:100%; z-index:4;'
}
]
});
this.callParent(arguments);
}
});
\ No newline at end of file
/*
*
* (c) Copyright Ascensio System Limited 2010-2016
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
Ext.define('PE.view.tablet.Main', {
extend: 'PE.view.Main',
alias: 'widget.petabletmain',
requires: ([
'PE.view.tablet.toolbar.View'
]),
config: {
cls: 'pe-tablet-main',
fullscreen: true,
layout: {
type: 'vbox',
pack: 'center'
}
},
initialize: function() {
var me = this;
this.add(Ext.create('PE.view.tablet.toolbar.View', {
hidden : true
}));
this.add({
xtype : 'container',
layout : 'vbox',
id : 'id-conteiner-document',
flex : 1,
items : [
{
xtype : 'container',
height : 0,
id : 'id-sdkeditor'
},
{
xtype : 'container',
flex : 1,
id : 'id-presentation-preview'
},
{
xtype : 'panel',
cls : 'pnl-overlay',
id : 'id-preview-overlay-container',
style : 'position:absolute; left:0; top:0; width:100%; height:100%; z-index:4;'
}
]
});
this.callParent(arguments);
}
});
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>ONLYOFFICE Presentation</title> <meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
<meta name="description" content="" /> <meta name="apple-mobile-web-app-capable" content="yes">
<meta name="keywords" content="" /> <meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="mobile-web-app-capable" content="yes">
<title>ONLYOFFICE Presentations</title>
<link href="http://fonts.googleapis.com/css?family=Roboto:400,300,500,700" rel="stylesheet" type="text/css">
<!-- App styles -->
<!-- splash --> <!-- splash -->
...@@ -174,66 +180,9 @@ ...@@ -174,66 +180,9 @@
100% { top:100px; background: #55bce6; } 100% { top:100px; background: #55bce6; }
} }
</style> </style>
<!--<script src="http://192.168.3.65:3030/target/target-script-min.js#anonymous"></script>-->
<!-- vendors -->
<script type="text/javascript" src="../../../vendor/touch/sencha-touch-debug.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../../vendor/sockjs/sockjs.min.js"></script>
<script type="text/javascript" src="../../../vendor/underscore/underscore-min.js"></script>
<script type="text/javascript" src="../../../vendor/megapixel/src/megapix-image.js"></script>
<script type="text/javascript" src="../../../vendor/xregexp/xregexp-all-min.js"></script>
<script type="text/javascript" src="../../../vendor/jszip/jszip.min.js"></script>
<script type="text/javascript" src="../../../vendor/jszip-utils/jszip-utils.min.js"></script>
<script type="text/javascript" src="../../../vendor/jsrsasign/jsrsasign-latest-all-min.js"></script>
<!-- Application -->
<script type="text/javascript">
var injectStyleElement = function(url) {
var style = document.createElement('link'),
documentHead = typeof document != 'undefined' && (document.head || document.getElementsByTagName('head')[0]);
style.rel = 'stylesheet';
style.href = url;
style.type = 'text/css';
if (documentHead) {
documentHead.appendChild(style);
return true;
}
return false;
};
injectStyleElement((window.devicePixelRatio > 1)
? 'resources/css/application-retina.css'
: 'resources/css/application-normal.css'
);
</script>
<script type="text/javascript" src="../../common/Analytics.js"></script>
<script type="text/javascript" src="../../common/Gateway.js"></script>
<script type="text/javascript" src="../../common/mobile/loader.js"></script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="../../common/locale.js"></script>
<script type="text/javascript" src="../sdk_dev_scripts.js"></script>
<script>
window.sdk_dev_scrpipts.forEach(function(item){
document.write('<script type="text/javascript" src="' + item + '"><\/script>');
});
</script>
</head> </head>
<body> <body>
<script type="text/javascript"> <script type="text/javascript">
if (!(Ext.browser.is.WebKit && (Ext.os.is.iOS || Ext.os.is.Android || Ext.os.is.Desktop))) {
document.write(
'<div id="unsuported-view-id" class="unsuported-view"></div>'
);
} else {
function getUrlParams() { function getUrlParams() {
var e, var e,
a = /\+/g, // Regex for replacing addition symbol with a space a = /\+/g, // Regex for replacing addition symbol with a space
...@@ -286,7 +235,21 @@ ...@@ -286,7 +235,21 @@
'<div class="loader-page-text-loading">' + loading + '</div>' + '<div class="loader-page-text-loading">' + loading + '</div>' +
'</div>' + '</div>' +
'</div>'); '</div>');
}
</script> </script>
<div id="viewport"></div>
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../../vendor/xregexp/xregexp-all-min.js"></script>
<script type="text/javascript" src="../sdk_dev_scripts.js"></script>
<script>
window.sdk_dev_scrpipts.forEach(function(item){
document.write('<script type="text/javascript" src="' + item + '"><\/script>');
});
</script>
<!-- application -->
<script data-main="app-dev" src="../../../vendor/requirejs/require.js"></script>
</body> </body>
</html> </html>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>ONLYOFFICE Presentation</title> <meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
<meta name="description" content="" /> <meta name="apple-mobile-web-app-capable" content="yes">
<meta name="keywords" content="" /> <meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="mobile-web-app-capable" content="yes">
<title>ONLYOFFICE Document Editor</title>
<link href="http://fonts.googleapis.com/css?family=Roboto:400,300,500,700" rel="stylesheet" type="text/css">
<!-- splash --> <!-- splash -->
...@@ -169,62 +174,14 @@ ...@@ -169,62 +174,14 @@
14% { background: #f4f4f4; top:100px; opacity:1; } 14% { background: #f4f4f4; top:100px; opacity:1; }
15% { background: #f4f4f4; top:0; opacity:1; } 15% { background: #f4f4f4; top:0; opacity:1; }
20% { background: #f4f4f4; top:0; opacity:0; } 20% { background: #f4f4f4; top:0; opacity:0; }
25% { background: #f4f4f4; top:0; opacity:0; } 25% { background: #fff; top:0; opacity:0; }
45% { background: #EFEFEF; top:0; opacity:0,2; } 45% { background: #EFEFEF; top:0; opacity:0,2; }
100% { top:100px; background: #55bce6; } 100% { top:100px; background: #55bce6; }
} }
</style> </style>
<!-- vendors -->
<script type="text/javascript" src="../../../vendor/touch/sencha-touch-all.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../../vendor/sockjs/sockjs.min.js"></script>
<script type="text/javascript" src="../../../vendor/underscore/underscore-min.js"></script>
<script type="text/javascript" src="../../../vendor/xregexp/xregexp-all-min.js"></script>
<script type="text/javascript" src="../../../vendor/jszip/jszip.min.js"></script>
<script type="text/javascript" src="../../../vendor/jszip-utils/jszip-utils.min.js"></script>
<script type="text/javascript" src="../../../vendor/jsrsasign/jsrsasign-latest-all-min.js"></script>
<!-- Application -->
<script type="text/javascript">
var injectStyleElement = function(url) {
var style = document.createElement('link'),
documentHead = typeof document != 'undefined' && (document.head || document.getElementsByTagName('head')[0]);
style.rel = 'stylesheet';
style.href = url;
style.type = 'text/css';
if (documentHead) {
documentHead.appendChild(style);
return true;
}
return false;
};
injectStyleElement((window.devicePixelRatio > 1)
? 'resources/css/application-retina.css'
: 'resources/css/application-normal.css'
);
</script>
<script type="text/javascript" src="../../../apps/presentationeditor/mobile/app-all.js"></script>
<!-- SDK -->
<script type="text/javascript" src="../../../../sdkjs/common/AllFonts.js"></script>
<script type="text/javascript" src="../../../../sdkjs/slide/sdk-all-min.js"></script>
</head> </head>
<body> <body>
<script type="text/javascript"> <script type="text/javascript">
if (!(Ext.browser.is.WebKit && (Ext.os.is.iOS || Ext.os.is.Android || Ext.os.is.Desktop))) {
document.write(
'<div id="unsuported-view-id" class="unsuported-view"></div>'
);
} else {
function getUrlParams() { function getUrlParams() {
var e, var e,
a = /\+/g, // Regex for replacing addition symbol with a space a = /\+/g, // Regex for replacing addition symbol with a space
...@@ -277,7 +234,9 @@ ...@@ -277,7 +234,9 @@
'<div class="loader-page-text-loading">' + loading + '</div>' + '<div class="loader-page-text-loading">' + loading + '</div>' +
'</div>' + '</div>' +
'</div>'); '</div>');
}
</script> </script>
<div id="viewport"></div>
<script data-main="app" src="../../../vendor/requirejs/require.js"></script>
</body> </body>
</html> </html>
<!DOCTYPE html>
<html>
<head>
<title>ONLYOFFICE Presentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="" />
<meta name="keywords" content="" />
<!-- splash -->
<style type="text/css">
.loadmask {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
overflow: hidden;
border: none;
background-color: #f4f4f4;
z-index: 20002;
}
.loadmask-body {
position:relative;
top:44%;
}
.loadmask-logo {
display: inline-block;
min-width:220px;
min-height:62px;
vertical-align: top;
background-image: url('./resources/img/loading-logo.gif');
background-image: -webkit-image-set(url('./resources/img/loading-logo.gif') 1x, url('./resources/img/loading-logo@2x.gif') 2x);
background-repeat: no-repeat;
}
</style>
<!-- vendors -->
<script type="text/javascript" src="../../../vendor/touch/sencha-touch-debug.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../../vendor/sockjs/sockjs.min.js"></script>
<script type="text/javascript" src="../../../vendor/xregexp/xregexp-all-min.js"></script>
<script type="text/javascript" src="../../../vendor/underscore/underscore-min.js"></script>
<!-- Application -->
<script type="text/javascript" src="../../common/Analytics.js"></script>
<script type="text/javascript" src="../../common/Gateway.js"></script>
<script type="text/javascript" src="../../common/mobile/loader.js"></script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="../../common/locale.js"></script>
<!-- SDK -->
<script type="text/javascript" src="../../../sdk/Common/AllFonts.js"></script>
<script type="text/javascript" src="../../../sdk/Common/browser.js"></script>
<script type="text/javascript" src="../../../sdk/Common/docscoapicommon.js"></script>
<script type="text/javascript" src="../../../sdk/Common/docscoapi.js"></script>
<script type="text/javascript" src="../../../sdk/Common/wordcopypaste.js"></script>
<script type="text/javascript" src="../../../sdk/Common/downloaderfiles.js"></script>
<script type="text/javascript" src="../../../sdk/Common/editorscommon.js"></script>
<script type="text/javascript" src="../../../sdk/Common/apiCommon.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Shapes/Serialize.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Shapes/SerializeWriter.js"></script>
<script type="text/javascript" src="../../../sdk/Common/FontsFreeType/font_engine.js"></script>
<script type="text/javascript" src="../../../sdk/Common/FontsFreeType/FontFile.js"></script>
<script type="text/javascript" src="../../../sdk/Common/FontsFreeType/FontManager.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Externals.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/GlobalLoaders.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Metafile.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Drawing/ThemeLoader.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Table.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/CollaborativeEditing.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Styles.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Table.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Paragraph.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/FontClassification.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/ParagraphContent.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Spelling.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Comments.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/GraphicObjects.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/States.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Charts/DrawingObjects.js"></script>
<script type="text/javascript" src="../../../sdk/Common/commonDefines.js"></script>
<script type="text/javascript" src="../../../sdk/Common/SerializeCommonWordExcel.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Editor/Serialize2.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Charts/charts.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/graphics/DrawingContextWord.js"></script>
<script type="text/javascript" src="../../../sdk/Common/trackFile.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Editor/SerializeCommon.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/GraphicsEvents.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/WorkEvents.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Controls.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Rulers.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Editor/Common.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Editor/Sections.js"></script>
<script type="text/javascript" src="../../../sdk/Common/scroll.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/History.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/FlowObjects.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/DocumentContent.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Presentation.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/SlideShowInfo.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/PresentationProperties.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Shape.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/GraphicFrame.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Numbering.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/TrackObjects/AdjustmentTracks.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/TrackObjects/MoveTracks.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/TrackObjects/NewShapeTracks.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/TrackObjects/PolyLine.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/TrackObjects/ResizeTracks.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/TrackObjects/RotateTracks.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/TrackObjects/Spline.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/TextBody.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Image.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/GroupShape.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/ChartTitle.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Chart.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/ChartLayout.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Slide.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/SlideMaster.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format/Layout.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/Geometry.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/CreateGoemetry.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/ColorArray.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/Math.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/Path.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/ArcTo.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/GraphicFigure.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/Clone.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/CImage.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/Spline.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/PolyLine.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/Hit.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Drawing/Joined.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Graphics.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Overlay.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/HatchPattern.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/ShapeDrawer.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Drawing/Transitions.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Drawing/DrawingDocument.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Drawing/HtmlPage.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/Editor/Format.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/apiDefines.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/api.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/apiCommon.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Shapes/EditorSettings.js"></script>
<script type="text/javascript" src="../../../sdk/PowerPoint/themes/Themes.js"></script>
</head>
<body>
<script type="text/javascript">
if (!(Ext.browser.is.WebKit && (Ext.os.is.iOS || Ext.os.is.Android || Ext.os.is.Desktop))) {
document.write(
'<div id="unsuported-view-id" class="unsuported-view"></div>'
);
} else {
document.write(
'<div id="loading-mask" class="loadmask">' +
'<div class="loadmask-body" align="center">' +
'<div class="loadmask-logo"></div>' +
'</div>' +
'</div>');
}
var injectStyleElement = function(url) {
var style = document.createElement('link'),
documentHead = typeof document != 'undefined' && (document.head || document.getElementsByTagName('head')[0]);
style.rel = 'stylesheet';
style.href = url;
style.type = 'text/css';
if (documentHead) {
documentHead.appendChild(style);
return true;
}
return false;
};
injectStyleElement(
(window.devicePixelRatio > 1)
? 'resources/css/application-retina.css'
: 'resources/css/application-normal.css'
);
</script>
</body>
</html>
{
"PE.controller.Main.convertationErrorText": "Konvertierung ist fehlgeschlagen.",
"PE.controller.Main.convertationTimeoutText": "Timeout für die Konvertierung wurde überschritten.",
"PE.controller.Main.criticalErrorExtText": "Klicken Sie auf \"OK\", um die Seite neu zu laden.",
"PE.controller.Main.criticalErrorTitle": "Fehler",
"PE.controller.Main.downloadErrorText": "Download ist fehlgeschlagen.",
"PE.controller.Main.editModeText": "Bearbeitungsmodus",
"PE.controller.Main.errorDefaultMessage": "Fehlercode: %1",
"PE.controller.Main.errorKeyEncrypt": "Unbekannter Schlüsseldeskriptor",
"PE.controller.Main.errorKeyExpire": "Der Schlüsseldeskriptor ist abgelaufen",
"PE.controller.Main.errorUsersExceed": "Die nach dem Zahlungsplan erlaubte Benutzeranzahl ist überschritten",
"PE.controller.Main.notcriticalErrorTitle": "Warnung",
"PE.controller.Main.printText": "Drucken...",
"PE.controller.Main.reloadButtonText": "Seite neu laden",
"PE.controller.Main.requestEditFailedMessageText": "Jemand bearbeitet dieses Dokument in diesem Moment. Bitte versuchen Sie es später erneut.",
"PE.controller.Main.requestEditFailedTitleText": "Zugriff verweigert",
"PE.controller.Main.requestEditRightsText": "Anfrage betreffend die Bearbeitungsberechtigung...",
"PE.controller.Main.splitDividerErrorText": "Die Zeilenanzahl muss ein Divisor von %1 sein.",
"PE.controller.Main.splitMaxColsErrorText": "Die Spaltenanzahl muss weniger sein als %1",
"PE.controller.Main.splitMaxRowsErrorText": "Die Zeilenanzahl muss weniger sein als %1",
"PE.controller.Main.textAnonymous": "Anonym",
"PE.controller.Main.textLoadingDocument": "Ladevorgang",
"PE.controller.Main.unknownErrorText": "Unbekannter Fehler.",
"PE.controller.Main.unsupportedBrowserErrorText": "Ihr Webbrowser wird nicht unterstützt.",
"PE.controller.Main.uploadImageExtMessage": "Unbekanntes Bildformat.",
"PE.controller.Main.uploadImageFileCountMessage": "Keine Bilder hochgeladen.",
"PE.controller.Main.uploadImageSizeMessage": "Die maximal zulässige Bildgröße ist überschritten.",
"PE.controller.Main.viewModeText": "Lesemodus",
"PE.controller.phone.Main.pageText": "Seite",
"PE.controller.tablet.Main.pageText": "Seite",
"PE.controller.toolbar.View.txtFinalMessage": "Folienvorschau beendet",
"PE.view.phone.toolbar.View.doneText": "Fertig",
"PE.view.tablet.toolbar.View.doneText": "Fertig"
}
\ No newline at end of file
{
"PE.controller.Main.convertationErrorText": "Conversion failed.",
"PE.controller.Main.convertationTimeoutText": "Conversion timeout exceeded.",
"PE.controller.Main.criticalErrorExtText": "Press \"OK\" to reload the page.",
"PE.controller.Main.criticalErrorTitle": "Error",
"PE.controller.Main.downloadErrorText": "Download failed.",
"PE.controller.Main.editModeText": "Edit Mode",
"PE.controller.Main.errorDefaultMessage": "Error code: %1",
"PE.controller.Main.errorKeyEncrypt": "Unknown key descriptor",
"PE.controller.Main.errorKeyExpire": "Key descriptor expired",
"PE.controller.Main.errorUsersExceed": "The number of users allowed by the pricing plan was exceeded",
"PE.controller.Main.notcriticalErrorTitle": "Warning",
"PE.controller.Main.printText": "Printing...",
"PE.controller.Main.reloadButtonText": "Reload Page",
"PE.controller.Main.requestEditFailedMessageText": "Someone is editing this document right now. Please try again later.",
"PE.controller.Main.requestEditFailedTitleText": "Access denied",
"PE.controller.Main.requestEditRightsText": "Requesting editing rights...",
"PE.controller.Main.splitDividerErrorText": "The number of rows must be a divisor of %1",
"PE.controller.Main.splitMaxColsErrorText": "The number of columns must be less than %1",
"PE.controller.Main.splitMaxRowsErrorText": "The number of rows must be less than %1",
"PE.controller.Main.textAnonymous": "Anonymous",
"PE.controller.Main.textLoadingDocument": "Loading document",
"PE.controller.Main.unknownErrorText": "Unknown error.",
"PE.controller.Main.unsupportedBrowserErrorText": "Your browser is not supported.",
"PE.controller.Main.uploadImageExtMessage": "Unknown image format.",
"PE.controller.Main.uploadImageFileCountMessage": "No images uploaded.",
"PE.controller.Main.uploadImageSizeMessage": "Maximium image size limit exceeded.",
"PE.controller.Main.viewModeText": "View Mode",
"PE.controller.phone.Main.pageText": "Page",
"PE.controller.tablet.Main.pageText": "Page",
"PE.controller.toolbar.View.txtFinalMessage": "The end of slide preview",
"PE.view.phone.toolbar.View.doneText": "Done",
"PE.view.tablet.toolbar.View.doneText": "Done"
}
\ No newline at end of file
{
"PE.controller.Main.convertationErrorText": "Conversión fallida.",
"PE.controller.Main.convertationTimeoutText": "Tiempo de conversión está superado.",
"PE.controller.Main.criticalErrorExtText": "Pulse \"OK\" para recargar la página. ",
"PE.controller.Main.criticalErrorTitle": "Error",
"PE.controller.Main.downloadErrorText": "Descarga fallida.",
"PE.controller.Main.editModeText": "Modo de edición",
"PE.controller.Main.errorDefaultMessage": "Código de error: %1",
"PE.controller.Main.errorKeyEncrypt": "Descriptor de clave desconocido",
"PE.controller.Main.errorKeyExpire": "Descriptor de clave ha expirado",
"PE.controller.Main.errorUsersExceed": "El número de usuarios permitido según su plano de precios fue excedido",
"PE.controller.Main.notcriticalErrorTitle": "Aviso",
"PE.controller.Main.printText": "Imprimiendo...",
"PE.controller.Main.reloadButtonText": "Recargar página",
"PE.controller.Main.requestEditFailedMessageText": "Alguien está editando el documento en este momento. Por favor, inténtelo de nuevo más tarde.",
"PE.controller.Main.requestEditFailedTitleText": "Acceso negado",
"PE.controller.Main.requestEditRightsText": "Solicitando derechos de edición...",
"PE.controller.Main.splitDividerErrorText": "El número de filas hay que ser un divisor de %1",
"PE.controller.Main.splitMaxColsErrorText": "El número de columnas debe ser menos que %1",
"PE.controller.Main.splitMaxRowsErrorText": "El número de filas debe ser menos que %1",
"PE.controller.Main.textAnonymous": "Anónimo",
"PE.controller.Main.textLoadingDocument": "Cargando documento",
"PE.controller.Main.unknownErrorText": "Error desconocido.",
"PE.controller.Main.unsupportedBrowserErrorText": "Su navegador no está soportado.",
"PE.controller.Main.uploadImageExtMessage": "Formato de imagen desconocido.",
"PE.controller.Main.uploadImageFileCountMessage": "No hay imágenes subidas.",
"PE.controller.Main.uploadImageSizeMessage": "Tamaño de imagen máximo está superado.",
"PE.controller.Main.viewModeText": "Modo de vista",
"PE.controller.phone.Main.pageText": "Página",
"PE.controller.tablet.Main.pageText": "Página",
"PE.controller.toolbar.View.txtFinalMessage": "El fin de vista previa",
"PE.view.phone.toolbar.View.doneText": "Listo",
"PE.view.tablet.toolbar.View.doneText": "Listo"
}
\ No newline at end of file
{
"PE.controller.Main.convertationErrorText": "Échec de la conversion.",
"PE.controller.Main.convertationTimeoutText": "Expiration du délai de conversion.",
"PE.controller.Main.criticalErrorExtText": "Cliquez sur \"OK\" pour recharger la page.",
"PE.controller.Main.criticalErrorTitle": "Erreur",
"PE.controller.Main.downloadErrorText": "Échec du téléchargement.",
"PE.controller.Main.editModeText": "Mode d'édition",
"PE.controller.Main.errorDefaultMessage": "Code d'erreur: %1",
"PE.controller.Main.errorKeyEncrypt": "Descripteur de clés inconnu",
"PE.controller.Main.errorKeyExpire": "Descripteur de clés expiré",
"PE.controller.Main.errorUsersExceed": "Le nombre d'utilisateurs autorisés par le plan tarifaire a été dépassé",
"PE.controller.Main.notcriticalErrorTitle": "Avertissement",
"PE.controller.Main.printText": "Impression en cours...",
"PE.controller.Main.reloadButtonText": "Recharger la page",
"PE.controller.Main.requestEditFailedMessageText": "Quelqu'un est en train de modifier ce document. Veuillez réessayer plus tard.",
"PE.controller.Main.requestEditFailedTitleText": "Accès refusé",
"PE.controller.Main.requestEditRightsText": "Demande des droits de modification...",
"PE.controller.Main.splitDividerErrorText": "Le nombre de lignes doit être un diviseur de %1",
"PE.controller.Main.splitMaxColsErrorText": "Le nombre de colonnes doit être inférieure à %1",
"PE.controller.Main.splitMaxRowsErrorText": "Le nombre de lignes doit être inférieure à %1",
"PE.controller.Main.textAnonymous": "Anonyme",
"PE.controller.Main.textLoadingDocument": "Chargement du document",
"PE.controller.Main.unknownErrorText": "Erreur inconnue.",
"PE.controller.Main.unsupportedBrowserErrorText": "Votre navigateur n'est pas pris en charge.",
"PE.controller.Main.uploadImageExtMessage": "Format d'image inconnu.",
"PE.controller.Main.uploadImageFileCountMessage": "Aucune image n'est téléchargée.",
"PE.controller.Main.uploadImageSizeMessage": "La taille de l'image a dépassé la limite maximale.",
"PE.controller.Main.viewModeText": "Mode d'affichage",
"PE.controller.phone.Main.pageText": "Page",
"PE.controller.tablet.Main.pageText": "Page",
"PE.controller.toolbar.View.txtFinalMessage": "La fin de la prévisualisation",
"PE.view.phone.toolbar.View.doneText": "Fait",
"PE.view.tablet.toolbar.View.doneText": "Fait"
}
\ No newline at end of file
{
"PE.controller.Main.convertationErrorText": "Conversione fallita.",
"PE.controller.Main.convertationTimeoutText": "E' stato superato il tempo limite della conversione.",
"PE.controller.Main.criticalErrorExtText": "Clicca su \"OK\" per ricaricare la pagina.",
"PE.controller.Main.criticalErrorTitle": "Errore",
"PE.controller.Main.downloadErrorText": "Download fallito.",
"PE.controller.Main.editModeText": "Modifica",
"PE.controller.Main.errorDefaultMessage": "Codice errore: %1",
"PE.controller.Main.errorKeyEncrypt": "Descrittore di chiave sconosciuto",
"PE.controller.Main.errorKeyExpire": "Descrittore di chiave scaduto",
"PE.controller.Main.errorUsersExceed": "E' stato superato il numero di utenti consentito dal piano tariffario",
"PE.controller.Main.notcriticalErrorTitle": "Avviso",
"PE.controller.Main.printText": "Stampa in corso...",
"PE.controller.Main.reloadButtonText": "Ricarica pagina",
"PE.controller.Main.requestEditFailedMessageText": "Qualcuno sta modificando questo documento. Si prega di provare più tardi.",
"PE.controller.Main.requestEditFailedTitleText": "Accesso vietato",
"PE.controller.Main.requestEditRightsText": "Richiesta di autorizzazione di modifica...",
"PE.controller.Main.splitDividerErrorText": "Il numero di righe deve essere un divisore di %1",
"PE.controller.Main.splitMaxColsErrorText": "Il numero di colonne deve essere inferiore a %1",
"PE.controller.Main.splitMaxRowsErrorText": "Il numero di righe deve essere inferiore a %1",
"PE.controller.Main.textAnonymous": "Anonimo",
"PE.controller.Main.textLoadingDocument": "Caricamento del documento",
"PE.controller.Main.unknownErrorText": "Errore sconosciuto.",
"PE.controller.Main.unsupportedBrowserErrorText": "Il tuo browser non è supportato.",
"PE.controller.Main.uploadImageExtMessage": "Formato immagine sconosciuto.",
"PE.controller.Main.uploadImageFileCountMessage": "Nessun immagine caricata.",
"PE.controller.Main.uploadImageSizeMessage": "E' stata superata la dimensione massima.",
"PE.controller.Main.viewModeText": "Visualizzazione",
"PE.controller.phone.Main.pageText": "Pagina",
"PE.controller.tablet.Main.pageText": "Pagina",
"PE.controller.toolbar.View.txtFinalMessage": "Fine di visualizzazione",
"PE.view.phone.toolbar.View.doneText": "Fatto",
"PE.view.tablet.toolbar.View.doneText": "Fatto"
}
\ No newline at end of file
{
"PE.controller.Main.convertationErrorText": "Conversão falhou.",
"PE.controller.Main.convertationTimeoutText": "Tempo limite de conversão excedido.",
"PE.controller.Main.criticalErrorExtText": "Pressione \"OK\" para recarregar a página.",
"PE.controller.Main.criticalErrorTitle": "Erro",
"PE.controller.Main.downloadErrorText": "Download falhou.",
"PE.controller.Main.editModeText": "Modo de edição",
"PE.controller.Main.errorDefaultMessage": "Código do erro: %1",
"PE.controller.Main.errorKeyEncrypt": "Descritor de chave desconhecido",
"PE.controller.Main.errorKeyExpire": "Descritor de chave expirado",
"PE.controller.Main.errorUsersExceed": "O número de usuários permitidos pelo plano de preços foi excedido",
"PE.controller.Main.notcriticalErrorTitle": "Aviso",
"PE.controller.Main.printText": "Imprimindo...",
"PE.controller.Main.reloadButtonText": "Recarregar página",
"PE.controller.Main.requestEditFailedMessageText": "Alguém está editando este documento neste momento. Tente novamente mais tarde.",
"PE.controller.Main.requestEditFailedTitleText": "Acesso negado",
"PE.controller.Main.requestEditRightsText": "Solicitando direitos de edição...",
"PE.controller.Main.splitDividerErrorText": "O número de linhas deve ser um divisor de %1",
"PE.controller.Main.splitMaxColsErrorText": "O número de colunas deve ser menor que %1",
"PE.controller.Main.splitMaxRowsErrorText": "O número de linhas deve ser menor que %1",
"PE.controller.Main.textAnonymous": "Anônimo",
"PE.controller.Main.textLoadingDocument": "Carregando documento",
"PE.controller.Main.unknownErrorText": "Erro desconhecido.",
"PE.controller.Main.unsupportedBrowserErrorText": "Seu navegador não é suportado.",
"PE.controller.Main.uploadImageExtMessage": "Formato de imagem desconhecido.",
"PE.controller.Main.uploadImageFileCountMessage": "Sem imagens carregadas.",
"PE.controller.Main.uploadImageSizeMessage": "Tamanho limite máximo da imagem excedido.",
"PE.controller.Main.viewModeText": "Modo de exibição",
"PE.controller.phone.Main.pageText": "Página",
"PE.controller.tablet.Main.pageText": "Página",
"PE.controller.toolbar.View.txtFinalMessage": "O final da pré-visualização de slide",
"PE.view.phone.toolbar.View.doneText": "Concluído",
"PE.view.tablet.toolbar.View.doneText": "Concluído"
}
\ No newline at end of file
{
"PE.controller.Main.convertationErrorText": "Конвертация не удалась.",
"PE.controller.Main.convertationTimeoutText": "Превышено время ожидания конвертации.",
"PE.controller.Main.criticalErrorExtText": "Нажмите \"OK\", чтобы обновить страницу.",
"PE.controller.Main.criticalErrorTitle": "Ошибка",
"PE.controller.Main.downloadErrorText": "Загрузка не удалась.",
"PE.controller.Main.editModeText": "Режим редактирования",
"PE.controller.Main.errorDefaultMessage": "Код ошибки: %1",
"PE.controller.Main.errorKeyEncrypt": "Неизвестный дескриптор ключа",
"PE.controller.Main.errorKeyExpire": "Срок действия дескриптора ключа истек",
"PE.controller.Main.errorUsersExceed": "Превышено количество пользователей, разрешенных согласно тарифному плану",
"PE.controller.Main.notcriticalErrorTitle": "Предупреждение",
"PE.controller.Main.printText": "Печать...",
"PE.controller.Main.reloadButtonText": "Обновить страницу",
"PE.controller.Main.requestEditFailedMessageText": "В настоящее время документ редактируется. Пожалуйста, попробуйте позже.",
"PE.controller.Main.requestEditFailedTitleText": "Доступ запрещен",
"PE.controller.Main.requestEditRightsText": "Запрос прав на редактирование...",
"PE.controller.Main.splitDividerErrorText": "Число строк должно являться делителем для %1",
"PE.controller.Main.splitMaxColsErrorText": "Число столбцов должно быть меньше, чем %1",
"PE.controller.Main.splitMaxRowsErrorText": "Число строк должно быть меньше, чем %1",
"PE.controller.Main.textAnonymous": "Аноним",
"PE.controller.Main.textLoadingDocument": "Загрузка документа",
"PE.controller.Main.unknownErrorText": "Неизвестная ошибка.",
"PE.controller.Main.unsupportedBrowserErrorText": "Ваш браузер не поддерживается.",
"PE.controller.Main.uploadImageExtMessage": "Неизвестный формат изображения.",
"PE.controller.Main.uploadImageFileCountMessage": "Ни одного изображения не загружено.",
"PE.controller.Main.uploadImageSizeMessage": "Превышен максимальный размер изображения.",
"PE.controller.Main.viewModeText": "Режим просмотра",
"PE.controller.phone.Main.pageText": "Страница",
"PE.controller.tablet.Main.pageText": "Страница",
"PE.controller.toolbar.View.txtFinalMessage": "Просмотр слайдов завершен",
"PE.view.phone.toolbar.View.doneText": "Готово",
"PE.view.tablet.toolbar.View.doneText": "Готово"
}
\ No newline at end of file
{
"PE.controller.Main.convertationErrorText": "Pretvorba ni uspela.",
"PE.controller.Main.convertationTimeoutText": "Pretvorbena prekinitev presežena.",
"PE.controller.Main.criticalErrorExtText": "Pritisnite \"OK\" za osvežitev strani.",
"PE.controller.Main.criticalErrorTitle": "Napaka",
"PE.controller.Main.downloadErrorText": "Prenos ni uspel.",
"PE.controller.Main.editModeText": "Urejevalni način",
"PE.controller.Main.errorDefaultMessage": "Koda napake: %1",
"PE.controller.Main.errorKeyEncrypt": "Neznan ključni deskriptor",
"PE.controller.Main.errorKeyExpire": "Ključni deskriptor je potekel",
"PE.controller.Main.errorUsersExceed": "Število uporabnikov, ki ga dovoljuje cenovni načrt, je bilo preseženo",
"PE.controller.Main.notcriticalErrorTitle": "Opozorilo",
"PE.controller.Main.printText": "Tiskanje...",
"PE.controller.Main.reloadButtonText": "Osveži stran",
"PE.controller.Main.requestEditFailedMessageText": "Nekdo v tem trenutku ureja ta dokument. Prosim ponovno poskusite kasneje.",
"PE.controller.Main.requestEditFailedTitleText": "Dostop zavrnjen",
"PE.controller.Main.requestEditRightsText": "Zahtevanje urejevalnih pravic...",
"PE.controller.Main.splitDividerErrorText": "Število vrstic mora biti delitelj %1",
"PE.controller.Main.splitMaxColsErrorText": "Število stolpcev mora biti manj kot %1",
"PE.controller.Main.splitMaxRowsErrorText": "Število vrstic mora biti manj kot %1",
"PE.controller.Main.textAnonymous": "Anonimno",
"PE.controller.Main.textLoadingDocument": "Nalaganje Dokumenta",
"PE.controller.Main.unknownErrorText": "Neznana napaka.",
"PE.controller.Main.unsupportedBrowserErrorText": "Vaš brskalnik ni podprt.",
"PE.controller.Main.uploadImageExtMessage": "Neznan format slike.",
"PE.controller.Main.uploadImageFileCountMessage": "Ni naloženih slik.",
"PE.controller.Main.uploadImageSizeMessage": "Maksimalni limit velikosti slike je presežen.",
"PE.controller.Main.viewModeText": "Način ogleda",
"PE.controller.phone.Main.pageText": "Stran",
"PE.controller.tablet.Main.pageText": "Stran",
"PE.controller.toolbar.View.txtFinalMessage": "Konec predogleda diapozitiva",
"PE.view.phone.toolbar.View.doneText": "Končano",
"PE.view.tablet.toolbar.View.doneText": "Končano"
}
\ No newline at end of file
{
"PE.controller.Main.convertationErrorText": "Değişim başarısız oldu.",
"PE.controller.Main.convertationTimeoutText": "Değişim süresi aşıldı.",
"PE.controller.Main.criticalErrorExtText": "Sayfayı yenilemek için \"TAMAM\"'a tıklayınız",
"PE.controller.Main.criticalErrorTitle": "Hata",
"PE.controller.Main.downloadErrorText": "Yükleme başarısız oldu.",
"PE.controller.Main.editModeText": "Düzenleme modu",
"PE.controller.Main.errorDefaultMessage": "Hata kodu: %1",
"PE.controller.Main.errorKeyEncrypt": "Bilinmeyen anahtar tanımlayıcı",
"PE.controller.Main.errorKeyExpire": "Anahtar tanımlayıcının süresi doldu",
"PE.controller.Main.errorUsersExceed": "Fiyat planının izin verdiği kullanıcı sayısı aşıldı",
"PE.controller.Main.notcriticalErrorTitle": "Dikkat",
"PE.controller.Main.printText": "Yazdırılıyor...",
"PE.controller.Main.reloadButtonText": "Sayfayı Yenile",
"PE.controller.Main.requestEditFailedMessageText": "Şu bu döküman biri tarafından düzenleniyor. Lütfen daha sonra tekrar deneyin.",
"PE.controller.Main.requestEditFailedTitleText": "Erişim reddedildi",
"PE.controller.Main.requestEditRightsText": "Düzenleme hakları isteniyor...",
"PE.controller.Main.splitDividerErrorText": "Satır sayısı %1'in böleni olmalıdır",
"PE.controller.Main.splitMaxColsErrorText": "Sütun sayısı %1'den az olmalıdır",
"PE.controller.Main.splitMaxRowsErrorText": "Satır sayısı %1'den az olmalıdır",
"PE.controller.Main.textAnonymous": "Anonim",
"PE.controller.Main.textLoadingDocument": "Döküman yükleniyor",
"PE.controller.Main.unknownErrorText": "Bilinmeyen hata.",
"PE.controller.Main.unsupportedBrowserErrorText": "Tarayıcınız desteklenmiyor.",
"PE.controller.Main.uploadImageExtMessage": "Bilinmeyen resim formatı",
"PE.controller.Main.uploadImageFileCountMessage": "Resim yüklenmedi.",
"PE.controller.Main.uploadImageSizeMessage": "Maksimum resim boyutu aşıldı.",
"PE.controller.Main.viewModeText": "Görüntüleme Modu",
"PE.controller.phone.Main.pageText": "Sayfa",
"PE.controller.tablet.Main.pageText": "Sayfa",
"PE.controller.toolbar.View.txtFinalMessage": "Slayt önizlemenin sonu",
"PE.view.phone.toolbar.View.doneText": "Tamamlandı",
"PE.view.tablet.toolbar.View.doneText": "Tamamlandı"
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<g>
<path id="XMLID_2_" class="st0" d="M9.5,9v46h46V9H9.5z M55,54.5H10v-45h45V54.5z M32,41.5h1v-18h9.5v-1h-20v1H32V41.5z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M54.8,9.3l0.4,0.4l-46,46l-0.4-0.4L54.8,9.3z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<g>
<polygon id="XMLID_3_" class="st0" points="55,9 49.5,11 51.6,12 9.3,54.3 9.7,54.7 52,12.4 53.1,14.5 "/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<g>
<polygon id="XMLID_3_" class="st0" points="53.8,14 55.5,9 50.5,10.8 52.4,11.7 12.7,51.4 11.7,49.5 10,54.5 15,52.7 13.1,51.8
52.8,12.1 "/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M9.5,8.5H56V55H9.5V8.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M17,8.5h31.5L56,16v31.5L48.5,55H17l-7.5-7.5V16L17,8.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M19,8.5h26.5c5.5,0,10,4.5,10,10V45c0,5.5-4.5,10-10,10H19c-5.5,0-10-4.5-10-10V18.5C9,13,13.5,8.5,19,8.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M32.2,8.5c12.8,0,23.2,10.4,23.2,23.2C55.5,44.6,45.1,55,32.2,55S9,44.6,9,31.8C9,18.9,19.4,8.5,32.2,8.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M32.8,9L56,55.5H9.5L32.8,9z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M9.5,9L56,55.5H9.5L9.5,9z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M19,9l26.5,0l15,46.5H4L19,9z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M8.8,32.3L32.2,8.8l23.5,23.5L32.2,55.7L8.8,32.3z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M33,9l23,23.3L33,55.5v-13H9.5v-20H33V9z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M61,32.3L43,55.5v-13H22.5v13l-18-23.2L22.5,9v13.5H43V9L61,32.3z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<g>
<polygon id="XMLID_2_" points="56,30 56,25 25,25 25,14 9.5,27.3 25,40.5 25,30 51,30 51,50 56,50 56,30 "/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<g id="XMLID_3_">
<polygon id="XMLID_2_" points="9.5,30 9.5,25 40.5,25 40.5,14 56,27.3 40.5,40.5 40.5,30 14.5,30 14.5,50 9.5,50 9.5,30 "/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M9.5,8.5H56V40L32.8,55L9.5,40V8.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<path d="M32.7,52.6l17.3-16.5c0.2-0.2,5.9-5.4,5.9-11.6c0-7.5-4.6-12-12.4-12c-4.5,0-8.8,3.5-10.8,5.6c-2-2-6.3-5.6-10.8-5.6
c-7.8,0-12.4,4.5-12.4,12c0,6.2,5.7,11.3,5.9,11.5L32.7,52.6z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M9,29.5h46.5v5H9V29.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<g>
<polygon id="XMLID_2_" class="st0" points="55.5,30 35,30 35,9.5 30,9.5 30,30 9.5,30 9.5,35 30,35 30,55.5 35,55.5 35,35 55.5,35
"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M14.5,9H61L51,55.5H4.5L14.5,9z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M9,11h46.5v36.5H30l-6,6l-5.9-6H9V11z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<g>
<path id="XMLID_2_" class="st0" d="M32.8,13C19.9,13,9.5,20.7,9.5,30.2c0,6,4.1,11.2,10.2,14.3c-0.1,0.6-0.3,1.2-0.5,2
C18.4,49.2,17,51,17,51s3.1-0.7,5.5-2.4c1.2-0.8,2.2-1.5,3-1.9c2.3,0.6,4.7,0.9,7.3,0.9c12.8,0,23.2-7.7,23.2-17.2S45.6,13,32.8,13
z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
</style>
<path class="st0" d="M55.5,38.1c0,5.1-4.1,9.2-9.2,9.2c-1.4,0-2.7-0.3-3.9-0.9c-2,3.1-5.5,5.2-9.5,5.2c-3.8,0-7.2-1.9-9.2-4.8
c-1.3,1.2-3,2-4.9,2c-3.9,0-7-3.2-7-7.1c0-2.5,1.3-4.6,3.1-5.9c-3.4-0.8-6-3.9-6-7.5c0-4.3,3.5-7.8,7.7-7.8c0.8,0,1.5,0.1,2.1,0.3
c0-0.1,0-0.2,0-0.3c0-4.7,3.8-8.5,8.5-8.5c3.7,0,6.9,2.4,8,5.8c2.1-2.7,5.3-4.4,8.9-4.4c6.2,0,11.3,5.1,11.3,11.3
c0,2.7-0.9,5.2-2.5,7.1C54.5,33.5,55.5,35.7,55.5,38.1z"/>
</svg>
@import url('../../../../../vendor/framework7/src/less/ios/_mixins.less');
@import url('../../../../../vendor/framework7/src/less/ios/_colors-vars.less');
// Colors
@themeColor: #DF6737; // (223,103,55)
@import url('../../../../../vendor/framework7/src/less/ios/intro.less');
@import url('../../../../../vendor/framework7/src/less/ios/grid.less');
@import url('../../../../../vendor/framework7/src/less/ios/views.less');
@import url('../../../../../vendor/framework7/src/less/ios/pages.less');
@import url('../../../../../vendor/framework7/src/less/ios/toolbars.less');
@import url('../../../../../vendor/framework7/src/less/ios/toolbars-pages.less');
@import url('../../../../../vendor/framework7/src/less/ios/searchbar.less');
@import url('../../../../../vendor/framework7/src/less/ios/messagebar.less');
@import url('../../../../../vendor/framework7/src/less/ios/icons.less');
//@import url('../../../../../vendor/framework7/src/less/ios/badges.less');
//@import url('../../../../../vendor/framework7/src/less/ios/chips.less');
@import url('../../../../../vendor/framework7/src/less/ios/content-block.less');
@import url('../../../../../vendor/framework7/src/less/ios/lists.less');
//@import url('../../../../../vendor/framework7/src/less/ios/contacts.less');
@import url('../../../../../vendor/framework7/src/less/ios/forms.less');
//@import url('../../../../../vendor/framework7/src/less/ios/floating-button.less');
//@import url('../../../../../vendor/framework7/src/less/ios/accordion.less');
@import url('../../../../../vendor/framework7/src/less/ios/cards.less');
@import url('../../../../../vendor/framework7/src/less/ios/modals.less');
@import url('../../../../../vendor/framework7/src/less/ios/panels.less');
//@import url('../../../../../vendor/framework7/src/less/ios/lazy-load.less');
@import url('../../../../../vendor/framework7/src/less/ios/tabs.less');
@import url('../../../../../vendor/framework7/src/less/ios/messages.less');
@import url('../../../../../vendor/framework7/src/less/ios/statusbar.less');
@import url('../../../../../vendor/framework7/src/less/ios/preloader.less');
@import url('../../../../../vendor/framework7/src/less/ios/progressbar.less');
//@import url('../../../../../vendor/framework7/src/less/ios/pull-to-refresh.less');
//@import url('../../../../../vendor/framework7/src/less/ios/infinite-scroll.less');
//@import url('../../../../../vendor/framework7/src/less/ios/autocomplete.less');
@import url('../../../../../vendor/framework7/src/less/ios/swiper.less');
//@import url('../../../../../vendor/framework7/src/less/ios/photo-browser.less');
@import url('../../../../../vendor/framework7/src/less/ios/picker.less');
//@import url('../../../../../vendor/framework7/src/less/ios/calendar.less');
@import url('../../../../../vendor/framework7/src/less/ios/notifications.less');
//@import url('../../../../../vendor/framework7/src/less/ios/login-screen.less');
@import url('../../../../../vendor/framework7/src/less/ios/disabled.less');
// Disable text select
* {
-webkit-user-select: none;
user-select: none;
}
input, textarea {
-webkit-touch-callout:default;
-webkit-user-select:text;
user-select:text;
}
// Main Toolbar
#editor-navbar.navbar .right a + a,
#editor-navbar.navbar .left a + a {
margin-left: 0;
html:not(.phone) & {
margin-left: 10px;
}
}
@import url('../../../../common/mobile/resources/less/_mixins.less');
@import url('../../../../common/mobile/resources/less/ios/_container.less');
@import url('../../../../common/mobile/resources/less/ios/_dataview.less');
@import url('../../../../common/mobile/resources/less/ios/_listview.less');
@import url('../../../../common/mobile/resources/less/ios/_button.less');
@import url('../../../../common/mobile/resources/less/ios/_contextmenu.less');
@import url('../../../../common/mobile/resources/less/ios/_color-palette.less');
@import url('../../../../common/mobile/resources/less/ios/_about.less');
@import url('ios/_search.less');
@import url('ios/_icons.less');
// Add Container
#add-table,
#add-shape {
.page {
background-color: #fff;
}
}
// Table styles
.table-styles {
.row {
&, li {
margin-bottom: 12px;
}
}
li {
margin: 0;
padding: 1px;
img {
width: 70px;
height: 50px;
}
}
}
// Shapes
.shapes {
li {
width: 70px;
height: 70px;
margin: 0 1px;
.thumb {
width: 100%;
height: 100%;
background-color: @themeColor;
}
}
}
\ No newline at end of file
@import url('../../../../../vendor/framework7/src/less/material/_mixins.less');
@import url('../../../../../vendor/framework7/src/less/material/_colors-vars.less');
// Colors
@themeColor: #DF6737; // (223,103,55)
@navBarIconColor: #fff;
@import url('../../../../../vendor/framework7/src/less/material/intro.less');
@import url('../../../../../vendor/framework7/src/less/material/grid.less');
@import url('../../../../../vendor/framework7/src/less/material/views.less');
@import url('../../../../../vendor/framework7/src/less/material/pages.less');
@import url('../../../../../vendor/framework7/src/less/material/toolbars.less');
@import url('../../../../../vendor/framework7/src/less/material/toolbars-pages.less');
@import url('../../../../../vendor/framework7/src/less/material/searchbar.less');
@import url('../../../../../vendor/framework7/src/less/material/messagebar.less');
@import url('../../../../../vendor/framework7/src/less/material/icons.less');
@import url('../../../../../vendor/framework7/src/less/material/badges.less');
//@import url('../../../../../vendor/framework7/src/less/material/chips.less');
@import url('../../../../../vendor/framework7/src/less/material/content-block.less');
@import url('../../../../../vendor/framework7/src/less/material/lists.less');
//@import url('../../../../../vendor/framework7/src/less/material/contacts.less');
@import url('../../../../../vendor/framework7/src/less/material/forms.less');
@import url('../../../../../vendor/framework7/src/less/material/floating-button.less');
//@import url('../../../../../vendor/framework7/src/less/material/accordion.less');
//@import url('../../../../../vendor/framework7/src/less/material/cards.less');
@import url('../../../../../vendor/framework7/src/less/material/modals.less');
@import url('../../../../../vendor/framework7/src/less/material/panels.less');
//@import url('../../../../../vendor/framework7/src/less/material/lazy-load.less');
@import url('../../../../../vendor/framework7/src/less/material/tabs.less');
@import url('../../../../../vendor/framework7/src/less/material/messages.less');
@import url('../../../../../vendor/framework7/src/less/material/statusbar.less');
@import url('../../../../../vendor/framework7/src/less/material/preloader.less');
@import url('../../../../../vendor/framework7/src/less/material/progressbar.less');
//@import url('../../../../../vendor/framework7/src/less/material/pull-to-refresh.less');
//@import url('../../../../../vendor/framework7/src/less/material/infinite-scroll.less');
//@import url('../../../../../vendor/framework7/src/less/material/autocomplete.less');
//@import url('../../../../../vendor/framework7/src/less/material/swiper.less');
//@import url('../../../../../vendor/framework7/src/less/material/photo-browser.less');
@import url('../../../../../vendor/framework7/src/less/material/picker.less');
//@import url('../../../../../vendor/framework7/src/less/material/calendar.less');
@import url('../../../../../vendor/framework7/src/less/material/notifications.less');
//@import url('../../../../../vendor/framework7/src/less/material/login-screen.less');
@import url('../../../../../vendor/framework7/src/less/material/ripple.less');
@import url('../../../../../vendor/framework7/src/less/material/disabled.less');
@import url('../../../../common/mobile/resources/less/_mixins.less');
@import url('../../../../common/mobile/resources/less/material/_container.less');
@import url('../../../../common/mobile/resources/less/material/_dataview.less');
@import url('../../../../common/mobile/resources/less/material/_listview.less');
@import url('../../../../common/mobile/resources/less/material/_button.less');
@import url('../../../../common/mobile/resources/less/material/_contextmenu.less');
@import url('../../../../common/mobile/resources/less/material/_color-palette.less');
@import url('../../../../common/mobile/resources/less/material/_about.less');
@import url('material/_search.less');
@import url('material/_icons.less');
// Disable text select
* {
-webkit-user-select: none;
user-select: none;
}
input, textarea {
-webkit-touch-callout:default;
-webkit-user-select:text;
user-select:text;
}
// Add Container
#add-table,
#add-shape {
.page {
background-color: #fff;
}
}
// Table styles
.table-styles {
.row {
&, li {
margin-bottom: 12px;
}
}
li {
margin: 0;
padding: 1px;
img {
width: 70px;
height: 50px;
}
}
}
// Shapes
.shapes {
li {
width: 70px;
height: 70px;
margin: 0 1px;
.thumb {
width: 100%;
height: 100%;
background-color: @themeColor;
}
}
}
// Icons
i.icon {
&.icon-search {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M15.8,15c1.4-1.6,2.2-3.7,2.2-5.9c0-5-4-9-9-9C4,0,0,4,0,9c0,5,4,9,9,9c2.3,0,4.4-0.9,5.9-2.2l5.8,5.8l0.2-0.6l0.7-0.2L15.8,15z M9,17c-4.4,0-8-3.6-8-8c0-4.4,3.6-8,8-8c4.4,0,8,3.6,8,8C17,13.5,13.5,17,9,17z"/></g></svg>');
}
&.icon-burger {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><rect x="2" y="17" width="18" height="1"/><rect x="2" y="13" width="18" height="1"/><rect x="2" y="9" width="18" height="1"/><rect x="2" y="5" width="18" height="1"/></g></svg>');
}
&.icon-edit {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M0,20h22v1H0V20z"/><polygon points="19.3,5.3 6.1,18.4 4.6,16.9 17.8,3.8 17.1,3.1 3.5,16.7 3,20 6.3,19.5 19.9,5.9 "/><path d="M20.5,5.3L22,3.8c0,0-0.2-1.2-0.9-1.9C20.4,1.1,19.2,1,19.2,1l-1.5,1.5L20.5,5.3z"/></g></svg>');
}
&.icon-undo {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M22,16v2h-1v-2l0,0c0-2.9-2.1-5-5-5l0,0H1.9L5,14c0.1,0.1,0.1,0.2,0,0.3l-0.4,0.4c-0.1,0.1-0.2,0.1-0.3,0l-4.2-4.2c-0.1-0.1-0.1-0.2,0-0.3l0.4-0.4h0.1L4.4,6c0.1-0.1,0.2-0.1,0.3,0l0.5,0.4c0.1,0.1,0.1,0.2,0,0.3L1.9,10H16l0,0C19.3,10,22,12.7,22,16L22,16z"/></g></svg>');
}
&.icon-redo {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M0,16c0-3.3,2.7-6,6-6v0h14.1l-3.3-3.3c-0.1-0.1-0.1-0.2,0-0.3L17.3,6c0.1-0.1,0.2-0.1,0.3,0l3.8,3.8c0,0,0.1,0,0.1,0l0.4,0.4c0.1,0.1,0.1,0.2,0,0.3l-4.2,4.2c-0.1,0.1-0.2,0.1-0.3,0l-0.4-0.4c-0.1-0.1-0.1-0.2,0-0.3l3.1-3H6v0c-2.9,0-5,2.1-5,5h0v2H0L0,16L0,16z"/></g></svg>');
}
&.icon-reader {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M17,21H1V9h6V2l0,0h10v5h1V1H6.2L0,7.6V22h18v-3h-1V21z M6,2.8V8H1.1L6,2.8z M13,8c-5.1,0-9,5-9,5s4.1,5,9,5c5,0,9-5,9-5S18,8,13,8z M8.7,15.5C6.8,14.4,6.4,13,6.4,13s0.4-1.5,2.4-2.6C8.3,11.2,8,12,8,13C8,13.9,8.3,14.8,8.7,15.5z M13,16.7c-2.1,0-3.7-1.7-3.7-3.7c0-2.1,1.7-3.7,3.7-3.7c2.1,0,3.7,1.7,3.7,3.7C16.7,15.1,15.1,16.7,13,16.7z M17.3,15.5c0.4-0.7,0.7-1.6,0.7-2.5c0-1-0.3-1.8-0.7-2.6c2,1.1,3.4,2.6,3.4,2.6S19.2,14.4,17.3,15.5z M13,11.7c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3S13.7,11.7,13,11.7z"/></g></svg>');
}
&.icon-download {
width: 22px;
height: 28px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 3 22 28" fill="@{themeColor}"><g><polygon points="10,5.6 10,21.2 11,21.2 11,5.6 14.6,9.3 15.3,8.5 10.5,3.6 5.7,8.5 6.4,9.3 "/><polygon points="13,12 13,13 19,13 19,30 2,30 2,13 8,13 8,12 1,12 1,13 1,30 1,31 20,31 20,30 20,13 20,12 "/></g></svg>');
}
&.icon-info {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M10,17h2V8h-2V17z M11,1C5.5,1,1,5.5,1,11s4.5,10,10,10s10-4.5,10-10S16.5,1,11,1z M11,20c-5,0-9-4-9-9s4-9,9-9s9,4,9,9S16,20,11,20z M10,7h2V5h-2V7z"/></g></svg>');
}
&.icon-plus {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M22,12H12v10h-1V12H1v-1h10V1h1v10h10V12z"/></g></svg>');
}
&.icon-settings {
width: 24px;
height: 24px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M11.8,3l0.4,2c0.1,0.7,0.6,1.1,1.3,1.1c0.3,0,0.5-0.1,0.7-0.2l1.9-1.2l1.1,1.1l-1.1,1.8C15.8,8,15.8,8.5,16,8.9c0.2,0.4,0.5,0.7,1,0.8l2.1,0.5v1.6L17,12.2c-0.5,0.1-0.8,0.4-1,0.8c-0.2,0.4-0.1,0.9,0.1,1.2l1.2,1.9l-1.1,1.1l-1.8-1.1c-0.2-0.2-0.5-0.2-0.8-0.2c-0.6,0-1.2,0.5-1.3,1.1l-0.5,2.1h-1.6l-0.4-2C9.7,16.4,9.2,16,8.5,16c-0.3,0-0.5,0.1-0.7,0.2l-1.9,1.2l-1.1-1.1l1.1-1.8c0.3-0.4,0.3-0.9,0.1-1.3c-0.2-0.4-0.5-0.7-1-0.8l-2.1-0.5v-1.6l2-0.4c0.5-0.1,0.8-0.4,1-0.8C6.1,8.7,6,8.2,5.8,7.9l-1-2l1.1-1.1l1.8,1.1C8,6.1,8.2,6.2,8.5,6.2c0.6,0,1.2-0.5,1.3-1.1L10.3,3H11.8 M11,15.5c2.5,0,4.5-2,4.5-4.5s-2-4.5-4.5-4.5s-4.5,2-4.5,4.5S8.5,15.5,11,15.5 M12.1,2H9.9C9.6,2,9.4,2.2,9.3,2.5L8.8,4.9c0,0.2-0.2,0.3-0.3,0.3s-0.1,0-0.2-0.1L6.2,3.8C6.1,3.7,6,3.7,5.8,3.7c-0.1,0-0.3,0-0.4,0.1L3.8,5.4c-0.1,0.2-0.2,0.5,0,0.8l1.3,2.1c0.1,0.2,0.1,0.4-0.2,0.5L2.5,9.3C2.2,9.4,2,9.6,2,9.9v2.2c0,0.3,0.2,0.5,0.5,0.6l2.4,0.5c0.3,0.1,0.4,0.3,0.2,0.5l-1.3,2.1c-0.2,0.2-0.1,0.6,0.1,0.8l1.6,1.6c0.1,0.1,0.3,0.2,0.4,0.2s0.2,0,0.3-0.1L8.3,17c0.1-0.1,0.1-0.1,0.2-0.1s0.3,0.1,0.3,0.3l0.5,2.3C9.4,19.8,9.6,20,9.9,20h2.2c0.3,0,0.5-0.2,0.6-0.5l0.5-2.4c0-0.2,0.1-0.3,0.3-0.3c0.1,0,0.1,0,0.2,0.1l2.1,1.3c0.1,0.1,0.2,0.1,0.3,0.1c0.2,0,0.3-0.1,0.4-0.2l1.6-1.6c0.2-0.2,0.2-0.5,0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5,0.2-0.5l2.4-0.5c0.3-0.1,0.5-0.3,0.5-0.6V9.8c0-0.3-0.2-0.5-0.5-0.6l-2.4-0.5c-0.3-0.1-0.4-0.3-0.2-0.5l1.3-2.1c0.2-0.2,0.1-0.6-0.1-0.8l-1.6-1.6c-0.1-0.1-0.3-0.2-0.4-0.2c-0.1,0-0.2,0-0.3,0.1l-2.1,1.3C13.6,5,13.6,5,13.5,5c-0.1,0-0.3-0.1-0.3-0.3l-0.5-2.2C12.6,2.2,12.4,2,12.1,2L12.1,2z M11,14.5c-1.9,0-3.5-1.6-3.5-3.5S9.1,7.5,11,7.5s3.5,1.6,3.5,3.5S12.9,14.5,11,14.5L11,14.5z"/></g></svg>');
}
&.icon-about {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 7 22 22" fill="@{themeColor}"><g><path d="M21,18.5c0-0.3-0.1-0.6-0.7-0.9l-2.6-1.2l2.6-1.2c0.6-0.3,0.7-0.6,0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-8.9-4.1c-0.7-0.4-1.9-0.4-2.8,0l-8.9,4.1C-0.9,13.8-1,14.1-1,14.3s0.1,0.6,0.7,0.9l2.6,1.2l-2.6,1.2C-0.9,18-1,18.4-1,18.5c0,0.2,0.1,0.6,0.7,0.9l2.5,1.2l-2.5,1.2C-0.9,22.1-1,22.5-1,22.7c0,0.3,0.1,0.6,0.7,0.9l8.9,4.1c0.5,0.2,0.8,0.3,1.4,0.3s1-0.1,1.4-0.3l8.9-4.1c0.6-0.4,0.7-0.6,0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-2.5-1.2l2.5-1.2C20.9,19.2,21,18.8,21,18.5z M-0.2,14.3L-0.2,14.3c0,0,0.1-0.1,0.3-0.2L9,10c0.6-0.3,1.5-0.3,2,0l8.9,4.1c0.2,0.1,0.3,0.2,0.3,0.2l0,0c0,0-0.1,0.1-0.3,0.2L11,18.6c-0.6,0.3-1.5,0.3-2,0l-8.9-4.1C-0.1,14.4-0.2,14.3-0.2,14.3z M20.2,22.7L20.2,22.7c0,0-0.1,0.1-0.3,0.2L11,27.1c-0.6,0.3-1.5,0.3-2,0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0,0c0,0,0.1-0.1,0.3-0.2l3-1.5l5.5,2.6c0.7,0.4,1.9,0.4,2.8,0l5.5-2.6l3,1.5C20.1,22.7,20.2,22.7,20.2,22.7z M19.9,18.7L11,22.8c-0.6,0.3-1.5,0.3-2,0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0,0c0,0,0.1-0.1,0.3-0.2l3-1.5l5.5,2.6c0.7,0.4,1.9,0.4,2.8,0l5.5-2.6l3,1.5c0.2,0.1,0.3,0.2,0.3,0.2l0,0C20.2,18.5,20.1,18.6,19.9,18.7z"/></g></svg>');
}
&.icon-help {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M11.6,1.3c-3.3,0-6,2.8-6,6.2c0.3,0,0.7,0,0.9,0c0-2.9,2.3-5.2,5.1-5.2s5.1,2.3,5.1,5.2c0,1.7-1.9,3.2-3,4.3C12.9,12.6,11,14.2,11,16c0,1.2,0,2.2,0,2.7c0.3,0,0.6,0,0.9,0c0-0.6,0-1.6,0-2.5c0-1.4,1.1-2.4,2.2-3.5c1.7-1.5,3.5-3.1,3.5-5.2C17.6,4.1,14.9,1.3,11.6,1.3z M11.5,20.2c-0.3,0-0.5,0.2-0.5,0.5v0.8c0,0.3,0.2,0.5,0.5,0.5s0.5-0.2,0.5-0.5v-0.8C11.9,20.4,11.7,20.2,11.5,20.2z"/></g></svg>');
}
&.icon-versions {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 7 22 22" fill="@{themeColor}"><g><path d="M19,12c0-1.1-0.9-2-2-2c0-1.1-0.9-2-2-2H5c-1.1,0-2,0.9-2,2c-1.1,0-2,0.9-2,2c-1.1,0-2,0.9-2,2v12c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V14C21,12.9,20.1,12,19,12z M5,9h10c0.6,0,1,0.4,1,1H4C4,9.4,4.4,9,5,9z M3,11h14c0.6,0,1,0.4,1,1H2C2,11.4,2.4,11,3,11z M20,26c0,0.6-0.4,1-1,1H1c-0.6,0-1-0.4-1-1V14c0-0.6,0.4-1,1-1h18c0.6,0,1,0.4,1,1V26z"/></g></svg>');
}
&.icon-text-additional {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M18.5,15.5c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.6,15.5,18.5,15.5z M18.5,18.5c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1s1,0.4,1,1C19.5,18.1,19.1,18.5,18.5,18.5z M18.5,7.5c1.1,0,2-0.9,2-2c0-1.1-0.9-2-2-2s-2,0.9-2,2C16.5,6.6,17.4,7.5,18.5,7.5z M18.5,4.5c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.4-1-1S17.9,4.5,18.5,4.5z M18.5,9.5c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.6,9.5,18.5,9.5z M18.5,12.5c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1s1,0.4,1,1C19.5,12.1,19.1,12.5,18.5,12.5z M6.9,3.8L1,18.9h1.5l1.8-4.7h6.9l1.7,4.7h1.5L8.6,3.8H6.9z M4.7,12.9l3-7.9l3,7.9H4.7z"/></g></svg>');
}
&.icon-text-color {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M8.9,12l2.3-6.3l2.2,6.3H8.9z M4.7,17.8h2l1.6-4.3h5.6l1.5,4.3h2.1L12.3,3.5h-2.2L4.7,17.8z"/></g></svg>');
}
&.icon-text-selection {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M7.6,10.3c0.2,0.3,0.4,0.4,0.5,0.5c0.3,0.2,0.6,0.3,1,0.3c0.7,0,1.3-0.3,1.7-0.8c0.4-0.5,0.6-1.2,0.6-2.1c0-0.9-0.2-1.5-0.6-2c-0.4-0.4-0.9-0.7-1.6-0.7c-0.3,0-0.6,0.1-0.9,0.2C8,6,7.8,6.2,7.6,6.4V3.8H6.8V11h0.8V10.3z M8,6.9c0.3-0.3,0.7-0.4,1.1-0.4c0.5,0,0.8,0.2,1,0.5c0.2,0.4,0.4,0.8,0.4,1.4c0,0.6-0.1,1.1-0.4,1.5c-0.2,0.4-0.6,0.6-1.1,0.6c-0.6,0-1.1-0.3-1.3-0.9C7.6,9.2,7.6,8.8,7.6,8.3C7.6,7.7,7.7,7.2,8,6.9z M5.7,10.4c-0.1,0-0.2,0-0.2-0.1c0-0.1-0.1-0.1-0.1-0.2v-3c0-0.5-0.2-0.9-0.6-1.1C4.4,5.8,4,5.6,3.3,5.6c-0.5,0-1,0.1-1.4,0.4C1.5,6.3,1.3,6.7,1.3,7.4h0.8c0-0.3,0.1-0.5,0.2-0.6c0.2-0.2,0.5-0.4,1-0.4c0.4,0,0.7,0.1,0.9,0.2c0.2,0.1,0.3,0.4,0.3,0.7c0,0.1,0,0.3-0.1,0.3C4.4,7.7,4.3,7.8,4.1,7.8L2.7,8C2.2,8.1,1.8,8.2,1.5,8.5C1.2,8.8,1,9.1,1,9.6c0,0.4,0.2,0.8,0.5,1.1c0.3,0.3,0.7,0.4,1.2,0.4c0.4,0,0.8-0.1,1.1-0.3c0.3-0.2,0.6-0.4,0.8-0.6c0,0.2,0.1,0.4,0.2,0.5c0.1,0.2,0.4,0.3,0.7,0.3c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3-0.1v-0.6c-0.1,0-0.1,0-0.2,0C5.8,10.4,5.7,10.4,5.7,10.4z M4.5,9.1c0,0.5-0.2,0.9-0.7,1.2c-0.3,0.1-0.6,0.2-0.9,0.2c-0.3,0-0.5-0.1-0.7-0.2C2,10.1,2,9.9,2,9.6C2,9.3,2.1,9,2.4,8.9c0.2-0.1,0.4-0.2,0.7-0.2l0.5-0.1c0.2,0,0.3-0.1,0.5-0.1c0.2,0,0.3-0.1,0.4-0.2V9.1z M18.5,5L8.3,15.3l-0.5,2c-0.6,0.4-1.3,0.3-1.5,0.6c-0.3,0.4,0.9,0.4,1.5,0.3c0.4,0,0.5,0,0.5-0.2l2.2-0.6L20.7,7.1L18.5,5z M9,15.3l9.5-9.5L20,7.1l-9.5,9.5L9,15.3z"/></g></svg>');
}
&.icon-bullets {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M7,4v1h15V4H7z M1,6h3V3H1V6z M7,12h15v-1H7V12z M1,13h3v-3H1V13z M7,19h15v-1H7V19z M1,20h3v-3H1V20z"/></g></svg>');
}
&.icon-numbers {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M7,3.8v1h15v-1H7z M7,11.8h15v-1H7V11.8z M7,18.8h15v-1H7V18.8z M3.1,6.9h0.7V2H3.3C3.2,2.4,3.1,2.6,2.9,2.7C2.7,2.8,2.4,2.9,2,2.9v0.5h1.2V6.9z M3.3,9C2.6,9,2.1,9.2,1.9,9.7c-0.2,0.3-0.2,0.6-0.2,1h0.6c0-0.3,0.1-0.5,0.1-0.7c0.2-0.3,0.5-0.5,0.9-0.5c0.3,0,0.5,0.1,0.7,0.3s0.3,0.4,0.3,0.7c0,0.2-0.1,0.5-0.3,0.7c-0.1,0.1-0.3,0.3-0.6,0.4l-0.7,0.4c-0.4,0.3-0.7,0.5-0.9,0.9c-0.2,0.3-0.2,0.7-0.3,1.1h3.4v-0.6H2.2c0.1-0.2,0.2-0.5,0.4-0.7c0.1-0.1,0.3-0.2,0.5-0.4L3.6,12c0.4-0.2,0.7-0.4,0.9-0.6c0.3-0.3,0.4-0.6,0.4-1c0-0.4-0.1-0.7-0.4-1C4.3,9.1,3.9,9,3.3,9z M4.1,18.3c0.2-0.1,0.3-0.2,0.4-0.3c0.2-0.2,0.2-0.4,0.2-0.7c0-0.4-0.1-0.7-0.4-1C4,16.1,3.6,16,3.1,16c-0.6,0-1.1,0.2-1.3,0.7c-0.1,0.3-0.2,0.6-0.2,0.9h0.6c0-0.3,0.1-0.5,0.1-0.6c0.2-0.3,0.4-0.4,0.9-0.4c0.2,0,0.4,0.1,0.6,0.2C4,16.9,4.1,17,4.1,17.3c0,0.3-0.1,0.6-0.4,0.7c-0.1,0.1-0.3,0.1-0.6,0.1c-0.1,0-0.1,0-0.1,0c0,0-0.1,0-0.2,0v0.5c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0c0.4,0,0.7,0.1,0.9,0.2c0.2,0.1,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.5,0.3-0.8,0.3c-0.4,0-0.7-0.1-0.9-0.4c-0.1-0.1-0.2-0.4-0.2-0.7H1.5c0,0.5,0.1,0.8,0.4,1.2C2.1,20.8,2.5,21,3.1,21c0.6,0,1-0.1,1.3-0.4c0.3-0.3,0.5-0.7,0.5-1.1c0-0.3-0.1-0.5-0.2-0.7C4.5,18.5,4.3,18.3,4.1,18.3z"/></g></svg>');
}
&.icon-linespacing {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><polygon id="XMLID_7_" points="22,4 22,3 12,3 11,3 1,3 1,4 11,4 11,4.3 8,7.4 8.7,8.1 11,5.7 11,17.3 8.7,14.9 8,15.6 11,18.7 11,19 1,19 1,20 11,20 12,20 22,20 22,19 12,19 12,18.6 15,15.6 14.3,14.9 12,17.2 12,5.8 14.3,8.1 15,7.4 12,4.4 12,4 "/></g></svg>');
}
&.icon-text-align-center {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,3v1h21V3H1z M4,7v1h14V7H4z M1,12h21v-1H1V12z M4,15v1h14v-1H4z M1,20h21v-1H1V20z"/></g></svg>');
}
&.icon-text-align-jast {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,3v1h21V3H1z M1,8h21V7H1V8z M1,12h21v-1H1V12z M1,16h21v-1H1V16z M1,20h21v-1H1V20z"/></g></svg>');
}
&.icon-text-align-left {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,3v1h21V3H1z M15,7H1v1h14V7z M1,12h21v-1H1V12z M15,15H1v1h14V15z M1,20h21v-1H1V20z"/></g></svg>');
}
&.icon-text-align-right {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,3v1h21V3H1z M8,8h14V7H8V8z M22,11H1v1h21V11z M8,16h14v-1H8V16z M22,19H1v1h21V19z"/></g></svg>');
}
&.icon-de-indent {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,20v-1h21v1H1z M11,15h11v1H11V15z M11,11h11v1H11V11z M11,7h11v1H11V7z M6.3,7L7,7.7l-3.8,3.8L7,15.3L6.3,16L2,11.8l-0.2-0.3L2,11.2L6.3,7z M1,3h21v1H1V3z"/></g></svg>');
}
&.icon-in-indent {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,20v-1h21v1H1z M12,16H1v-1h11V16z M12,12H1v-1h11V12z M12,8H1V7h11V8z M21,11.2l0.2,0.3L21,11.8L16.7,16L16,15.3l3.8-3.8L16,7.7L16.7,7L21,11.2z M22,4H1V3h21V4z"/></g></svg>');
}
&.icon-prev {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M16,20.5L15,21.5L4.5,11l0,0l0,0L15,0.5L16,1.5L6.6,11L16,20.5z"/></g></svg>');
}
&.icon-next {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M15.5,11L6,1.5l1.1-1.1L17.5,11l0,0l0,0L7.1,21.5L6,20.5L15.5,11z"/></g></svg>');
}
&.icon-table-add-column-left {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M15,19h-1H8H7v-1v-3H0V2h7h1h14v4v1v3v1v3v1v3v1H15z M15,18h6v-3h-6V18z M15,14h6v-3h-6V14z M8,18h6v-3H8V18z M8,14h6v-3H8V14z M14,10V7H8v3H14z M8,3v3h6V3H8z M21,3h-6v3h6V3z M15,7v3h6V7H15z M3,16h1v2h2v1H4v2H3v-2H1v-1h2V16z"/></g></svg>');
}
&.icon-table-add-column-right {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M0,19l0-1l0-3l0-1l0-3l0-1l0-3l0-1l0-4h14h1h7v13h-7v3v1h-1H8H7H0z M7,15H1v3h6V15z M7,11H1v3h6V11z M14,15H8v3h6V15z M14,11H8v3h6V11z M14,10V7H8v3H14z M8,3v3h6V3H8z M1,6h6V3H1V6z M1,7v3h6V7H1z M19,18h2v1h-2v2h-1v-2h-2v-1h2v-2h1V18z"/></g></svg>');
}
&.icon-table-add-row-above {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M21,20h-6h-1H8H7H0v-1v-3v-1v-3v-1V8V7V1h15v6h6h1v1v3v1v3v1v3v1H21z M7,8H1v3h6V8z M7,12H1v3h6V12z M7,16H1v3h6V16z M8,19h6v-3H8V19z M8,15h6v-3H8V15z M8,11h6V8H8V11z M21,8h-6v3h6V8z M21,12h-6v3h6V12z M21,16h-6v3h6V16z M19,6h-1V4h-2V3h2V1h1v2h2v1h-2V6z"/></g></svg>');
}
&.icon-table-add-row-below {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M22,1v1v3v1v3v1v3v1h-1h-6v6H0v-6v-1v-3V9V6V5V2V1h7h1h6h1h6H22z M7,10H1v3h6V10z M7,6H1v3h6V6z M7,2H1v3h6V2z M8,5h6V2H8V5z M8,9h6V6H8V9z M8,13h6v-3H8V13z M21,10h-6v3h6V10z M21,6h-6v3h6V6z M21,2h-6v3h6V2z M19,17h2v1h-2v2h-1v-2h-2v-1h2v-2h1V17z"/></g></svg>');
}
&.icon-table-remove-column {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M21,19h-6h-1h-1.6c-0.9,1.8-2.7,3-4.9,3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z M7.5,12C5,12,3,14,3,16.5S5,21,7.5,21s4.5-2,4.5-4.5S10,12,7.5,12z M14,3H8v3h6V3z M14,7H8v3h6V7z M14,11H8v0.1c1.9,0.2,3.5,1.3,4.4,2.9H14V11z M14,15h-1.2c0.1,0.5,0.2,1,0.2,1.5c0,0.5-0.1,1-0.2,1.5H14V15z M21,3h-6v3h6V3z M21,7h-6v3h6V7z M21,11h-6v3h6V11z M21,15h-6v3h6V15z M9.6,19.3l-2.1-2.1l-2.1,2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1,2.1l2.1-2.1l0.7,0.7l-2.1,2.1l2.1,2.1L9.6,19.3z"/></g></svg>');
}
&.icon-table-remove-row {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M21,19h-6h-1h-1.6c-0.9,1.8-2.7,3-4.9,3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z M1,18h1.2C2.1,17.5,2,17,2,16.5c0-0.5,0.1-1,0.2-1.5H1V18z M7,3H1v3h6V3z M7,7H1v3h6V7z M7.5,12C5,12,3,14,3,16.5S5,21,7.5,21s4.5-2,4.5-4.5S10,12,7.5,12z M14,3H8v3h6V3z M14,7H8v3h6V7z M14,15h-1.2c0.1,0.5,0.2,1,0.2,1.5c0,0.5-0.1,1-0.2,1.5H14V15z M21,3h-6v3h6V3z M21,7h-6v3h6V7z M21,15h-6v3h6V15z M9.6,19.3l-2.1-2.1l-2.1,2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1,2.1l2.1-2.1l0.7,0.7l-2.1,2.1l2.1,2.1L9.6,19.3z"/></g></svg>');
}
&.icon-expand-down {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M20.5,6.5l1.1,1.1L11,18l0,0l0,0L0.5,7.5l1.1-1.1l9.5,9.5L20.5,6.5z"/></g></svg>');
}
&.icon-pagebreak {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M8,14v1h1v-1H8z M6,14v1h1v-1H6z M18,21H3v-6H2v7h17v-7h-1V21z M4,14v1h1v-1H4z M14,14v1h1v-1H14z M10,14v1h1v-1H10z M8.2,1L2,7.6V14h1V9h6V2l0,0h9v12h1V1H8.2z M8,8H3.1L8,2.8V8z M12,14v1h1v-1H12z M16,14v1h1v-1H16z"/></g></svg>');
}
&.icon-sectionbreak {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M20,14V2H3v12H2V1h19v13H20z M5,14v1H4v-1H5z M7,14v1H6v-1H7z M9,14v1H8v-1H9z M11,14v1h-1v-1H11z M13,14v1h-1v-1H13z M15,14v1h-1v-1H15z M17,14v1h-1v-1H17z M18,14h1v1h-1V14z M3,21h17v-6h1v7H2v-7h1V21z"/></g></svg>');
}
&.icon-stringbreak {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M18,12H5.1L9,15.9l-0.7,0.7l-4.5-4.5l-0.6-0.6l0.6-0.6l4.5-4.5L9,7.1L5.1,11H18V5h1v6v1H18z"/></g></svg>');
}
&.icon-pagenumber {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M8.2,1L2,7.6V22h17V1H8.2z M8,2.8V8H3.1L8,2.8z M18,21H3V9h6V2l0,0h9V21z M12,19h1v-4h-0.7c0,0.2-0.1-0.1-0.1,0c-0.1,0.1-0.2,0-0.3,0c-0.1,0.1-0.2,0.1-0.4,0.1c-0.1,0-0.3,0-0.4,0V16H12V19z M15.3,17.3C15,17.9,15.1,18.4,15,19h0.9c0-0.3,0-0.6,0.1-0.9c0.1-0.3,0.1-0.6,0.3-0.9c0.1-0.3,0.3-0.6,0.4-0.9c0.2-0.3,0.1-0.3,0.3-0.5V15h-3v1h1.9C15.6,16.4,15.5,16.7,15.3,17.3z"/></g></svg>');
}
&.icon-link {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M12.4,9.8c0,0-2.1-0.1-3.8,1.2c-2.8,2-3.3,4.3-3.3,4.3s1.6-1.7,3.5-2.5c1.7-0.7,3.7-0.4,3.7-0.4v1.9l4.8-3.3V11l-4.8-3.3V9.8z M11,1C5.5,1,1,5.5,1,11c0,5.5,4.5,10,10,10s10-4.5,10-10C21,5.5,16.5,1,11,1z M11,20c-5,0-9-4.1-9-9C2,6,6,2,11,2s9,4.1,9,9C20,16,16,20,11,20z"/></g></svg>');
}
}
\ No newline at end of file
// Search
.tablet {
// Replace mode
.searchbar.document.replace {
.center {
.searchbar:first-child {
margin-right: 10px;
}
.replace {
display: flex;
}
}
.right {
.replace {
display: flex;
margin: 0 10px;
}
}
}
// Search mode
.searchbar.document {
.center {
width: 100%;
.searchbar {
background: inherit;
padding: 0;
}
.replace {
display: none;
}
}
.right {
.prev {
margin-left: 0;
}
.replace {
display: none;
}
}
}
}
.phone {
// Replace mode
.searchbar.document.replace {
height: 88px;
.left {
margin-top: -44px;
}
.center {
.searchbar-input {
margin: 8px 0;
}
.replace {
display: block;
}
}
.right {
> .replace {
display: flex;
}
}
}
// Search mode
.searchbar.document {
.left,
.center,
.right {
flex-direction: column;
}
.left {
min-width: 22px;
max-width: 22px;
}
.center {
width: 100%;
.searchbar {
background: inherit;
padding: 0;
&:after {
content: none;
}
}
.replace {
display: none;
}
}
.right {
> p {
margin: 0;
}
> .replace {
display: none;
}
}
}
}
.searchbar.document {
background: lighten(@searchbarBg, 10%);
}
\ No newline at end of file
// Icons
i.icon {
&.icon-expand-up {
width: 17px;
height: 17px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{black}"><g><polygon points="10.9,5.1 2,13.9 4.1,16 11.1,9.2 17.9,16 20,13.9 11.2,5.1 11.1,5 "/></g></svg>');
}
&.icon-expand-down {
width: 17px;
height: 17px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{black}"><g><polygon points="10.9,16.9 2,8.1 4.1,6 11.1,12.8 17.9,6 20,8.1 11.2,16.9 11.1,17 "/></g></svg>');
}
&.icon-search {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M19.5,16.8L16,13.3c0.7-1.1,1.1-2.4,1.1-3.8C17,5.4,13.6,2,9.5,2S2,5.4,2,9.5S5.4,17,9.5,17c1.4,0,2.7-0.4,3.8-1.1l3.5,3.5c0.7,0.7,1.9,0.7,2.6,0C20.2,18.7,20.2,17.6,19.5,16.8z M9.5,15.3c-3.2,0-5.8-2.6-5.8-5.8s2.6-5.8,5.8-5.8s5.8,2.6,5.8,5.8S12.7,15.3,9.5,15.3z"/></g></svg>');
}
&.icon-edit {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M0,20h22v1H0V20z"/><polygon points="17.1,3.1 3.5,16.7 3,20 6.3,19.5 19.9,5.9 "/><path d="M20.5,5.3L22,3.8c0,0-0.2-1.2-0.9-1.9C20.4,1.1,19.2,1,19.2,1l-1.5,1.5L20.5,5.3z"/></g></svg>');
}
&.icon-reader {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M17,21H1V9h6V2l0,0h10v5h1V1H6.2L0,7.6V22h18v-3h-1V21z M6,2.8V8H1.1L6,2.8z M13,8c-5.1,0-9,5-9,5s4.1,5,9,5c5,0,9-5,9-5S18,8,13,8z M8.7,15.5C6.8,14.4,6.4,13,6.4,13s0.4-1.5,2.4-2.6C8.3,11.2,8,12,8,13C8,13.9,8.3,14.8,8.7,15.5z M13,16.7c-2.1,0-3.7-1.7-3.7-3.7c0-2.1,1.7-3.7,3.7-3.7c2.1,0,3.7,1.7,3.7,3.7C16.7,15.1,15.1,16.7,13,16.7z M17.3,15.5c0.4-0.7,0.7-1.6,0.7-2.5c0-1-0.3-1.8-0.7-2.6c2,1.1,3.4,2.6,3.4,2.6S19.2,14.4,17.3,15.5z M13,11.7c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3S13.7,11.7,13,11.7z"/></g></svg>');
}
&.icon-download {
width: 22px;
height: 28px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 3 22 28" fill="@{themeColor}"><g><polygon id="XMLID_3_" points="10,5.6 10,21.2 11,21.2 11,5.6 14.6,9.3 15.3,8.5 10.5,3.6 5.7,8.5 6.4,9.3 "/><polygon id="XMLID_6_" points="13,12 13,13 19,13 19,30 2,30 2,13 8,13 8,12 1,12 1,13 1,30 1,31 20,31 20,30 20,13 20,12 "/></g></svg>');
}
&.icon-info {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M10,17h2V8h-2V17z M11,1C5.5,1,1,5.5,1,11s4.5,10,10,10s10-4.5,10-10S16.5,1,11,1z M11,20c-5,0-9-4-9-9s4-9,9-9s9,4,9,9S16,20,11,20z M10,7h2V5h-2V7z"/></g></svg>');
}
&.icon-about {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 7 22 22" fill="@{themeColor}"><g><path d="M21,18.5c0-0.3-0.1-0.6-0.7-0.9l-2.6-1.2l2.6-1.2c0.6-0.3,0.7-0.6,0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-8.9-4.1c-0.7-0.4-1.9-0.4-2.8,0l-8.9,4.1C-0.9,13.8-1,14.1-1,14.3s0.1,0.6,0.7,0.9l2.6,1.2l-2.6,1.2C-0.9,18-1,18.4-1,18.5c0,0.2,0.1,0.6,0.7,0.9l2.5,1.2l-2.5,1.2C-0.9,22.1-1,22.5-1,22.7c0,0.3,0.1,0.6,0.7,0.9l8.9,4.1c0.5,0.2,0.8,0.3,1.4,0.3s1-0.1,1.4-0.3l8.9-4.1c0.6-0.4,0.7-0.6,0.7-0.9c0-0.3-0.1-0.6-0.7-0.9l-2.5-1.2l2.5-1.2C20.9,19.2,21,18.8,21,18.5z M-0.2,14.3L-0.2,14.3c0,0,0.1-0.1,0.3-0.2L9,10c0.6-0.3,1.5-0.3,2,0l8.9,4.1c0.2,0.1,0.3,0.2,0.3,0.2l0,0c0,0-0.1,0.1-0.3,0.2L11,18.6c-0.6,0.3-1.5,0.3-2,0l-8.9-4.1C-0.1,14.4-0.2,14.3-0.2,14.3z M20.2,22.7L20.2,22.7c0,0-0.1,0.1-0.3,0.2L11,27.1c-0.6,0.3-1.5,0.3-2,0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0,0c0,0,0.1-0.1,0.3-0.2l3-1.5l5.5,2.6c0.7,0.4,1.9,0.4,2.8,0l5.5-2.6l3,1.5C20.1,22.7,20.2,22.7,20.2,22.7z M19.9,18.7L11,22.8c-0.6,0.3-1.5,0.3-2,0l-8.9-4.1c-0.2-0.1-0.3-0.2-0.3-0.2l0,0c0,0,0.1-0.1,0.3-0.2l3-1.5l5.5,2.6c0.7,0.4,1.9,0.4,2.8,0l5.5-2.6l3,1.5c0.2,0.1,0.3,0.2,0.3,0.2l0,0C20.2,18.5,20.1,18.6,19.9,18.7z"/></g></svg>');
}
&.icon-help {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M11.6,1.3c-3.3,0-6,2.8-6,6.2c0.3,0,0.7,0,0.9,0c0-2.9,2.3-5.2,5.1-5.2s5.1,2.3,5.1,5.2c0,1.7-1.9,3.2-3,4.3C12.9,12.6,11,14.2,11,16c0,1.2,0,2.2,0,2.7c0.3,0,0.6,0,0.9,0c0-0.6,0-1.6,0-2.5c0-1.4,1.1-2.4,2.2-3.5c1.7-1.5,3.5-3.1,3.5-5.2C17.6,4.1,14.9,1.3,11.6,1.3z M11.5,20.2c-0.3,0-0.5,0.2-0.5,0.5v0.8c0,0.3,0.2,0.5,0.5,0.5s0.5-0.2,0.5-0.5v-0.8C11.9,20.4,11.7,20.2,11.5,20.2z"/></g></svg>');
}
&.icon-versions {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-1 7 22 22" fill="@{themeColor}"><g><path d="M19,12c0-1.1-0.9-2-2-2c0-1.1-0.9-2-2-2H5c-1.1,0-2,0.9-2,2c-1.1,0-2,0.9-2,2c-1.1,0-2,0.9-2,2v12c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V14C21,12.9,20.1,12,19,12z M5,9h10c0.6,0,1,0.4,1,1H4C4,9.4,4.4,9,5,9z M3,11h14c0.6,0,1,0.4,1,1H2C2,11.4,2.4,11,3,11z M20,26c0,0.6-0.4,1-1,1H1c-0.6,0-1-0.4-1-1V14c0-0.6,0.4-1,1-1h18c0.6,0,1,0.4,1,1V26z"/></g></svg>');
}
//&.icon-text-additional {
// width: 22px;
// height: 22px;
// .encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M18.5,15.5c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.6,15.5,18.5,15.5z M18.5,18.5c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1s1,0.4,1,1C19.5,18.1,19.1,18.5,18.5,18.5z M18.5,7.5c1.1,0,2-0.9,2-2c0-1.1-0.9-2-2-2s-2,0.9-2,2C16.5,6.6,17.4,7.5,18.5,7.5z M18.5,4.5c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.4-1-1S17.9,4.5,18.5,4.5z M18.5,9.5c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.6,9.5,18.5,9.5z M18.5,12.5c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1s1,0.4,1,1C19.5,12.1,19.1,12.5,18.5,12.5z M6.9,3.8L1,18.9h1.5l1.8-4.7h6.9l1.7,4.7h1.5L8.6,3.8H6.9z M4.7,12.9l3-7.9l3,7.9H4.7z"/></g></svg>');
//}
//&.icon-text-color {
// width: 22px;
// height: 22px;
// .encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M8.9,12l2.3-6.3l2.2,6.3H8.9z M4.7,17.8h2l1.6-4.3h5.6l1.5,4.3h2.1L12.3,3.5h-2.2L4.7,17.8z"/></g></svg>');
//}
//&.icon-text-selection {
// width: 22px;
// height: 22px;
// .encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M7.6,10.3c0.2,0.3,0.4,0.4,0.5,0.5c0.3,0.2,0.6,0.3,1,0.3c0.7,0,1.3-0.3,1.7-0.8c0.4-0.5,0.6-1.2,0.6-2.1c0-0.9-0.2-1.5-0.6-2c-0.4-0.4-0.9-0.7-1.6-0.7c-0.3,0-0.6,0.1-0.9,0.2C8,6,7.8,6.2,7.6,6.4V3.8H6.8V11h0.8V10.3z M8,6.9c0.3-0.3,0.7-0.4,1.1-0.4c0.5,0,0.8,0.2,1,0.5c0.2,0.4,0.4,0.8,0.4,1.4c0,0.6-0.1,1.1-0.4,1.5c-0.2,0.4-0.6,0.6-1.1,0.6c-0.6,0-1.1-0.3-1.3-0.9C7.6,9.2,7.6,8.8,7.6,8.3C7.6,7.7,7.7,7.2,8,6.9z M5.7,10.4c-0.1,0-0.2,0-0.2-0.1c0-0.1-0.1-0.1-0.1-0.2v-3c0-0.5-0.2-0.9-0.6-1.1C4.4,5.8,4,5.6,3.3,5.6c-0.5,0-1,0.1-1.4,0.4C1.5,6.3,1.3,6.7,1.3,7.4h0.8c0-0.3,0.1-0.5,0.2-0.6c0.2-0.2,0.5-0.4,1-0.4c0.4,0,0.7,0.1,0.9,0.2c0.2,0.1,0.3,0.4,0.3,0.7c0,0.1,0,0.3-0.1,0.3C4.4,7.7,4.3,7.8,4.1,7.8L2.7,8C2.2,8.1,1.8,8.2,1.5,8.5C1.2,8.8,1,9.1,1,9.6c0,0.4,0.2,0.8,0.5,1.1c0.3,0.3,0.7,0.4,1.2,0.4c0.4,0,0.8-0.1,1.1-0.3c0.3-0.2,0.6-0.4,0.8-0.6c0,0.2,0.1,0.4,0.2,0.5c0.1,0.2,0.4,0.3,0.7,0.3c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3-0.1v-0.6c-0.1,0-0.1,0-0.2,0C5.8,10.4,5.7,10.4,5.7,10.4z M4.5,9.1c0,0.5-0.2,0.9-0.7,1.2c-0.3,0.1-0.6,0.2-0.9,0.2c-0.3,0-0.5-0.1-0.7-0.2C2,10.1,2,9.9,2,9.6C2,9.3,2.1,9,2.4,8.9c0.2-0.1,0.4-0.2,0.7-0.2l0.5-0.1c0.2,0,0.3-0.1,0.5-0.1c0.2,0,0.3-0.1,0.4-0.2V9.1z M18.5,5L8.3,15.3l-0.5,2c-0.6,0.4-1.3,0.3-1.5,0.6c-0.3,0.4,0.9,0.4,1.5,0.3c0.4,0,0.5,0,0.5-0.2l2.2-0.6L20.7,7.1L18.5,5z M9,15.3l9.5-9.5L20,7.1l-9.5,9.5L9,15.3z"/></g></svg>');
//}
//&.icon-bullets {
// width: 22px;
// height: 22px;
// .encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M7,4v1h15V4H7z M1,6h3V3H1V6z M7,12h15v-1H7V12z M1,13h3v-3H1V13z M7,19h15v-1H7V19z M1,20h3v-3H1V20z"/></g></svg>');
//}
//&.icon-numbers {
// width: 22px;
// height: 22px;
// .encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M7,3.8v1h15v-1H7z M7,11.8h15v-1H7V11.8z M7,18.8h15v-1H7V18.8z M3.1,6.9h0.7V2H3.3C3.2,2.4,3.1,2.6,2.9,2.7C2.7,2.8,2.4,2.9,2,2.9v0.5h1.2V6.9z M3.3,9C2.6,9,2.1,9.2,1.9,9.7c-0.2,0.3-0.2,0.6-0.2,1h0.6c0-0.3,0.1-0.5,0.1-0.7c0.2-0.3,0.5-0.5,0.9-0.5c0.3,0,0.5,0.1,0.7,0.3s0.3,0.4,0.3,0.7c0,0.2-0.1,0.5-0.3,0.7c-0.1,0.1-0.3,0.3-0.6,0.4l-0.7,0.4c-0.4,0.3-0.7,0.5-0.9,0.9c-0.2,0.3-0.2,0.7-0.3,1.1h3.4v-0.6H2.2c0.1-0.2,0.2-0.5,0.4-0.7c0.1-0.1,0.3-0.2,0.5-0.4L3.6,12c0.4-0.2,0.7-0.4,0.9-0.6c0.3-0.3,0.4-0.6,0.4-1c0-0.4-0.1-0.7-0.4-1C4.3,9.1,3.9,9,3.3,9z M4.1,18.3c0.2-0.1,0.3-0.2,0.4-0.3c0.2-0.2,0.2-0.4,0.2-0.7c0-0.4-0.1-0.7-0.4-1C4,16.1,3.6,16,3.1,16c-0.6,0-1.1,0.2-1.3,0.7c-0.1,0.3-0.2,0.6-0.2,0.9h0.6c0-0.3,0.1-0.5,0.1-0.6c0.2-0.3,0.4-0.4,0.9-0.4c0.2,0,0.4,0.1,0.6,0.2C4,16.9,4.1,17,4.1,17.3c0,0.3-0.1,0.6-0.4,0.7c-0.1,0.1-0.3,0.1-0.6,0.1c-0.1,0-0.1,0-0.1,0c0,0-0.1,0-0.2,0v0.5c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0c0.4,0,0.7,0.1,0.9,0.2c0.2,0.1,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.5,0.3-0.8,0.3c-0.4,0-0.7-0.1-0.9-0.4c-0.1-0.1-0.2-0.4-0.2-0.7H1.5c0,0.5,0.1,0.8,0.4,1.2C2.1,20.8,2.5,21,3.1,21c0.6,0,1-0.1,1.3-0.4c0.3-0.3,0.5-0.7,0.5-1.1c0-0.3-0.1-0.5-0.2-0.7C4.5,18.5,4.3,18.3,4.1,18.3z"/></g></svg>');
//}
//&.icon-linespacing {
// width: 22px;
// height: 22px;
// .encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><polygon id="XMLID_7_" points="22,4 22,3 12,3 11,3 1,3 1,4 11,4 11,4.3 8,7.4 8.7,8.1 11,5.7 11,17.3 8.7,14.9 8,15.6 11,18.7 11,19 1,19 1,20 11,20 12,20 22,20 22,19 12,19 12,18.6 15,15.6 14.3,14.9 12,17.2 12,5.8 14.3,8.1 15,7.4 12,4.4 12,4 "/></g></svg>');
//}
&.icon-text-align-center {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,3v1h21V3H1z M4,7v1h14V7H4z M1,12h21v-1H1V12z M4,15v1h14v-1H4z M1,20h21v-1H1V20z"/></g></svg>');
}
&.icon-text-align-jast {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,3v1h21V3H1z M1,8h21V7H1V8z M1,12h21v-1H1V12z M1,16h21v-1H1V16z M1,20h21v-1H1V20z"/></g></svg>');
}
&.icon-text-align-left {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,3v1h21V3H1z M15,7H1v1h14V7z M1,12h21v-1H1V12z M15,15H1v1h14V15z M1,20h21v-1H1V20z"/></g></svg>');
}
&.icon-text-align-right {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,3v1h21V3H1z M8,8h14V7H8V8z M22,11H1v1h21V11z M8,16h14v-1H8V16z M22,19H1v1h21V19z"/></g></svg>');
}
&.icon-de-indent {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,20v-1h21v1H1z M11,15h11v1H11V15z M11,11h11v1H11V11z M11,7h11v1H11V7z M6.3,7L7,7.7l-3.8,3.8L7,15.3L6.3,16L2,11.8l-0.2-0.3L2,11.2L6.3,7z M1,3h21v1H1V3z"/></g></svg>');
}
&.icon-in-indent {
width: 22px;
height: 22px;
.encoded-svg-mask('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M1,20v-1h21v1H1z M12,16H1v-1h11V16z M12,12H1v-1h11V12z M12,8H1V7h11V8z M21,11.2l0.2,0.3L21,11.8L16.7,16L16,15.3l3.8-3.8L16,7.7L16.7,7L21,11.2z M22,4H1V3h21V4z"/></g></svg>');
}
&.icon-table-add-column-left {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M15,19h-1H8H7v-1v-3H0V2h7h1h14v4v1v3v1v3v1v3v1H15z M15,18h6v-3h-6V18z M15,14h6v-3h-6V14z M8,18h6v-3H8V18z M8,14h6v-3H8V14z M14,10V7H8v3H14z M8,3v3h6V3H8z M21,3h-6v3h6V3z M15,7v3h6V7H15z M3,16h1v2h2v1H4v2H3v-2H1v-1h2V16z"/></g></svg>');
}
&.icon-table-add-column-right {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M0,19l0-1l0-3l0-1l0-3l0-1l0-3l0-1l0-4h14h1h7v13h-7v3v1h-1H8H7H0z M7,15H1v3h6V15z M7,11H1v3h6V11z M14,15H8v3h6V15z M14,11H8v3h6V11z M14,10V7H8v3H14z M8,3v3h6V3H8z M1,6h6V3H1V6z M1,7v3h6V7H1z M19,18h2v1h-2v2h-1v-2h-2v-1h2v-2h1V18z"/></g></svg>');
}
&.icon-table-add-row-above {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M21,20h-6h-1H8H7H0v-1v-3v-1v-3v-1V8V7V1h15v6h6h1v1v3v1v3v1v3v1H21z M7,8H1v3h6V8z M7,12H1v3h6V12z M7,16H1v3h6V16z M8,19h6v-3H8V19z M8,15h6v-3H8V15z M8,11h6V8H8V11z M21,8h-6v3h6V8z M21,12h-6v3h6V12z M21,16h-6v3h6V16z M19,6h-1V4h-2V3h2V1h1v2h2v1h-2V6z"/></g></svg>');
}
&.icon-table-add-row-below {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M22,1v1v3v1v3v1v3v1h-1h-6v6H0v-6v-1v-3V9V6V5V2V1h7h1h6h1h6H22z M7,10H1v3h6V10z M7,6H1v3h6V6z M7,2H1v3h6V2z M8,5h6V2H8V5z M8,9h6V6H8V9z M8,13h6v-3H8V13z M21,10h-6v3h6V10z M21,6h-6v3h6V6z M21,2h-6v3h6V2z M19,17h2v1h-2v2h-1v-2h-2v-1h2v-2h1V17z"/></g></svg>');
}
&.icon-table-remove-column {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M21,19h-6h-1h-1.6c-0.9,1.8-2.7,3-4.9,3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z M7.5,12C5,12,3,14,3,16.5S5,21,7.5,21s4.5-2,4.5-4.5S10,12,7.5,12z M14,3H8v3h6V3z M14,7H8v3h6V7z M14,11H8v0.1c1.9,0.2,3.5,1.3,4.4,2.9H14V11z M14,15h-1.2c0.1,0.5,0.2,1,0.2,1.5c0,0.5-0.1,1-0.2,1.5H14V15z M21,3h-6v3h6V3z M21,7h-6v3h6V7z M21,11h-6v3h6V11z M21,15h-6v3h6V15z M9.6,19.3l-2.1-2.1l-2.1,2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1,2.1l2.1-2.1l0.7,0.7l-2.1,2.1l2.1,2.1L9.6,19.3z"/></g></svg>');
}
&.icon-table-remove-row {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M21,19h-6h-1h-1.6c-0.9,1.8-2.7,3-4.9,3s-4-1.2-4.9-3H1H0v-1v-3v-1v-3v-1V7V6V3V2h7h1h6h1h6h1v1v3v1v3v1v3v1v3v1H21z M1,18h1.2C2.1,17.5,2,17,2,16.5c0-0.5,0.1-1,0.2-1.5H1V18z M7,3H1v3h6V3z M7,7H1v3h6V7z M7.5,12C5,12,3,14,3,16.5S5,21,7.5,21s4.5-2,4.5-4.5S10,12,7.5,12z M14,3H8v3h6V3z M14,7H8v3h6V7z M14,15h-1.2c0.1,0.5,0.2,1,0.2,1.5c0,0.5-0.1,1-0.2,1.5H14V15z M21,3h-6v3h6V3z M21,7h-6v3h6V7z M21,15h-6v3h6V15z M9.6,19.3l-2.1-2.1l-2.1,2.1l-0.7-0.7l2.1-2.1l-2.1-2.1l0.7-0.7l2.1,2.1l2.1-2.1l0.7,0.7l-2.1,2.1l2.1,2.1L9.6,19.3z"/></g></svg>');
}
&.icon-pagebreak {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M8,14v1h1v-1H8z M6,14v1h1v-1H6z M18,21H3v-6H2v7h17v-7h-1V21z M4,14v1h1v-1H4z M14,14v1h1v-1H14z M10,14v1h1v-1H10z M8.2,1L2,7.6V14h1V9h6V2l0,0h9v12h1V1H8.2z M8,8H3.1L8,2.8V8z M12,14v1h1v-1H12z M16,14v1h1v-1H16z"/></g></svg>');
}
&.icon-sectionbreak {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M20,14V2H3v12H2V1h19v13H20z M5,14v1H4v-1H5z M7,14v1H6v-1H7z M9,14v1H8v-1H9z M11,14v1h-1v-1H11z M13,14v1h-1v-1H13z M15,14v1h-1v-1H15z M17,14v1h-1v-1H17z M18,14h1v1h-1V14z M3,21h17v-6h1v7H2v-7h1V21z"/></g></svg>');
}
&.icon-stringbreak {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M18,12H5.1L9,15.9l-0.7,0.7l-4.5-4.5l-0.6-0.6l0.6-0.6l4.5-4.5L9,7.1L5.1,11H18V5h1v6v1H18z"/></g></svg>');
}
&.icon-pagenumber {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M8.2,1L2,7.6V22h17V1H8.2z M8,2.8V8H3.1L8,2.8z M18,21H3V9h6V2l0,0h9V21z M12,19h1v-4h-0.7c0,0.2-0.1-0.1-0.1,0c-0.1,0.1-0.2,0-0.3,0c-0.1,0.1-0.2,0.1-0.4,0.1c-0.1,0-0.3,0-0.4,0V16H12V19z M15.3,17.3C15,17.9,15.1,18.4,15,19h0.9c0-0.3,0-0.6,0.1-0.9c0.1-0.3,0.1-0.6,0.3-0.9c0.1-0.3,0.3-0.6,0.4-0.9c0.2-0.3,0.1-0.3,0.3-0.5V15h-3v1h1.9C15.6,16.4,15.5,16.7,15.3,17.3z"/></g></svg>');
}
&.icon-link {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{themeColor}"><g><path d="M12.4,9.8c0,0-2.1-0.1-3.8,1.2c-2.8,2-3.3,4.3-3.3,4.3s1.6-1.7,3.5-2.5c1.7-0.7,3.7-0.4,3.7-0.4v1.9l4.8-3.3V11l-4.8-3.3V9.8z M11,1C5.5,1,1,5.5,1,11c0,5.5,4.5,10,10,10s10-4.5,10-10C21,5.5,16.5,1,11,1z M11,20c-5,0-9-4.1-9-9C2,6,6,2,11,2s9,4.1,9,9C20,16,16,20,11,20z"/></g></svg>');
}
}
// Overwrite color for toolbar
.navbar {
i.icon {
&.icon-undo {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><path d="M20,17v-2c0-1.7-1.3-3-3-3H3.7l3.4,3.4l-1.4,1.4l-5.2-5.2L0,11l0.5-0.6l5.2-5.2l1.4,1.4L3.7,10H17c2.8,0,5,2.2,5,5v2H20z"/></g></svg>');
}
&.icon-redo {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><path d="M0,17v-2c0-2.8,2.2-5,5-5h13.3l-3.4-3.4l1.4-1.4l5.2,5.2L22,11l-0.5,0.6l-5.2,5.2l-1.4-1.4l3.4-3.4H5c-1.7,0-3,1.3-3,3v2H0z"/></g></svg>');
}
&.icon-search {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><path d="M19.5,16.8L16,13.3c0.7-1.1,1.1-2.4,1.1-3.8C17,5.4,13.6,2,9.5,2S2,5.4,2,9.5S5.4,17,9.5,17c1.4,0,2.7-0.4,3.8-1.1l3.5,3.5c0.7,0.7,1.9,0.7,2.6,0C20.2,18.7,20.2,17.6,19.5,16.8z M9.5,15.3c-3.2,0-5.8-2.6-5.8-5.8s2.6-5.8,5.8-5.8s5.8,2.6,5.8,5.8S12.7,15.3,9.5,15.3z"/></g></svg>');
}
&.icon-burger {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-8 1 22 22" fill="@{navBarIconColor}"><g><path d="M-6,6v2h18V6H-6z M-6,13h18v-2H-6V13z M-6,18h18v-2H-6V18z"/></g></svg>');
}
&.icon-plus {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><path d="M21,12h-9v9h-2v-9H1v-2h9V1h2v9h9V12z"/></g></svg>');
}
&.icon-edit {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><path d="M0,20h22v1H0V20z"/><polygon points="17.1,3.1 3.5,16.7 3,20 6.3,19.5 19.9,5.9 "/><path d="M20.5,5.3L22,3.8c0,0-0.2-1.2-0.9-1.9C20.4,1.1,19.2,1,19.2,1l-1.5,1.5L20.5,5.3z"/></g></svg>');
}
&.icon-settings {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><path d="M12.1,2H9.9C9.6,2,9.4,2.2,9.3,2.5L8.8,4.9c0,0.2-0.2,0.3-0.3,0.3s-0.1,0-0.2-0.1L6.2,3.8C6.1,3.7,6,3.7,5.8,3.7c-0.1,0-0.3,0-0.4,0.1L3.8,5.4c-0.1,0.2-0.2,0.5,0,0.8l1.3,2.1c0.1,0.2,0.1,0.4-0.2,0.5L2.5,9.3C2.2,9.4,2,9.6,2,9.9v2.2c0,0.3,0.2,0.5,0.5,0.6l2.4,0.5c0.3,0.1,0.4,0.3,0.2,0.5l-1.3,2.1c-0.2,0.2-0.1,0.6,0.1,0.8l1.6,1.6c0.1,0.1,0.3,0.2,0.4,0.2s0.2,0,0.3-0.1L8.3,17c0.1-0.1,0.1-0.1,0.2-0.1s0.3,0.1,0.3,0.3l0.5,2.3C9.4,19.8,9.6,20,9.9,20h2.2c0.3,0,0.5-0.2,0.6-0.5l0.5-2.4c0-0.2,0.1-0.3,0.3-0.3c0.1,0,0.1,0,0.2,0.1l2.1,1.3c0.1,0.1,0.2,0.1,0.3,0.1c0.2,0,0.3-0.1,0.4-0.2l1.6-1.6c0.2-0.2,0.2-0.5,0.1-0.8l-1.3-2.1c-0.2-0.2-0.1-0.5,0.2-0.5l2.4-0.5c0.3-0.1,0.5-0.3,0.5-0.6V9.8c0-0.3-0.2-0.5-0.5-0.6l-2.4-0.5c-0.3-0.1-0.4-0.3-0.2-0.5l1.3-2.1c0.2-0.2,0.1-0.6-0.1-0.8l-1.6-1.6c-0.1-0.1-0.3-0.2-0.4-0.2s-0.2,0-0.3,0.1l-2.1,1.3C13.6,5,13.6,5,13.5,5s-0.3-0.1-0.3-0.3l-0.5-2.2C12.6,2.2,12.4,2,12.1,2L12.1,2z M11,14.5c-1.9,0-3.5-1.6-3.5-3.5S9.1,7.5,11,7.5s3.5,1.6,3.5,3.5S12.9,14.5,11,14.5L11,14.5z"/></g></svg>');
}
&.icon-prev {
width: 20px;
height: 20px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><polygon points="5.1,10.9 13.9,2 16,4.1 9.2,11.1 16,17.9 13.9,20 5.1,11.2 5,11.1 "/></g></svg>');
}
&.icon-next {
width: 20px;
height: 20px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><polygon points="16.9,10.9 8.1,2 6,4.1 12.8,11.1 6,17.9 8.1,20 16.9,11.2 17,11.1 "/></g></svg>');
}
&.icon-expand-down {
width: 22px;
height: 22px;
.encoded-svg-background('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" fill="@{navBarIconColor}"><g><polygon points="10.9,16.9 2,8.1 4.1,6 11.1,12.8 17.9,6 20,8.1 11.2,16.9 11.1,17 "/></g></svg>');
}
}
}
\ No newline at end of file
// Search
.tablet {
// Replace mode
.searchbar.document.replace {
.center {
> .replace {
display: flex;
}
}
.right {
.replace {
display: flex;
}
}
.link.replace {
font-size: 16px;
}
}
// Search mode
.searchbar.document {
.center {
width: 100%;
display: flex;
margin: 0;
overflow: visible;
.searchbar {
overflow: visible;
&.search {
padding: 0;
}
}
> .replace {
display: none;
}
}
.right {
.replace {
display: none;
}
}
}
}
@phoneSearchHeight: 48px;
.phone {
// Replace mode
.searchbar.document.replace {
height: @phoneSearchHeight * 2;
.link.replace {
font-size: 16px;
}
.left {
margin-top: -@phoneSearchHeight;
}
.center {
.replace {
display: block;
}
}
.right {
> .replace {
display: flex;
}
}
}
// Search mode
.searchbar.document {
.left,
.center,
.right {
flex-direction: column;
}
.left {
//
}
.center {
width: 100%;
margin: 0;
overflow: visible;
.searchbar {
padding: 0;
}
.replace {
display: none;
}
}
.right {
> p {
margin: 0;
a.link {
height: @phoneSearchHeight;
}
}
> .replace {
display: none;
}
}
}
}
\ No newline at end of file
// Basic
$base-color : #cbcbcb;
$active-color : #688AD2;
$base-gradient : 'matte';
$include-default-icons : false;
$include-default-uis : false;
// Toolbar
$toolbar-icon-size : 1.0em;
// Image default icons
$icons-default-size : 24px;
$icons-default-image-width : 72px;
$icons-default-image-height : 144px;
@import 'sencha-touch/default';
@import 'sencha-touch/default/src/Class';
@import 'sencha-touch/default/src/Button';
//@import 'sencha-touch/default/src/Panel';
@import 'sencha-touch/default/src/Sheet';
@import 'sencha-touch/default/src/MessageBox';
@import 'sencha-touch/default/src/Toolbar';
//@import 'sencha-touch/default/src/Toast';
//@import 'sencha-touch/default/src/Menu';
//@import 'sencha-touch/default/src/carousel/Carousel';
@import 'sencha-touch/default/src/form/Panel';
//@import 'sencha-touch/default/src/form/FieldSet';
//@import 'sencha-touch/default/src/field/Field';
//@import 'sencha-touch/default/src/field/Checkbox';
//@import 'sencha-touch/default/src/field/Radio';
//@import 'sencha-touch/default/src/field/Search';
//@import 'sencha-touch/default/src/field/Select';
//@import 'sencha-touch/default/src/field/Slider';
//@import 'sencha-touch/default/src/field/Spinner';
//@import 'sencha-touch/default/src/field/TextArea';
//@import 'sencha-touch/default/src/dataview/IndexBar';
//@import 'sencha-touch/default/src/dataview/List';
//@import 'sencha-touch/default/src/picker/Picker';
//@import 'sencha-touch/default/src/plugin/ListPaging';
//@import 'sencha-touch/default/src/plugin/PullRefresh';
//@import 'sencha-touch/default/src/slider/Slider';
//@import 'sencha-touch/default/src/slider/Toggle';
//@import 'sencha-touch/default/src/tab/Panel';
//@import 'sencha-touch/default/src/grid/Grid';
@import 'common-buttons';
@import 'common-toolbar';
@import 'application-mixins';
@include common-toolbar-ui('edit', $base-color);
@include common-toolbar-ui('search', $base-color);
@include application-icon-normal('share', 0);
@include application-icon-normal('search', 1);
@include application-icon-normal('fullscreen', 1);
@include application-icon-normal('right', 2);
@include application-icon-normal('left', 3);
@include application-icon-normal('play', 4);
@include application-icon-normal('pause', 5);
@include common-button-ui('base', $base-color);
@include common-button-ui('light', lighten($base-color, 100%));
@include common-button-ui('base-blue', $active-color, 'dark');
@include common-button-ui('back', $base-color);
/*
* unsupport
*/
//TODO: need retina resolution
.unsuported-view {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: url(../img/ios-only.png) no-repeat center #efefef;
background-attachment: fixed;
z-index: 90000;
}
/*
* Additional styles
*/
.x-button.text-offset-12 {
padding-left: 12px;
padding-right: 12px;
}
.x-button.text-offset-30 {
padding-left: 30px;
padding-right: 30px;
}
\ No newline at end of file
@mixin application-icon-normal($name, $index) {
.x-button-icon.#{$name},
.list-icon.#{$name} {
background-image: url($icons-default-path);
background-color: transparent;
background-position: 0 -1 * $index * $icons-default-size;
background-size: $icons-default-image-width $icons-default-image-height;
}
.x-button-pressing,
.x-button-pressed,
.x-button-active,
.x-item-pressed {
.x-button-icon.#{$name},
.list-icon.#{$name} {
background-position: -1 * $icons-default-size -1 * $index * $icons-default-size;
}
}
}
\ No newline at end of file
$icons-default-path : '../img/icons/icons-normal.png';
@import 'application-base';
\ No newline at end of file
$icons-default-path : '../img/icons/icons-retina.png';
@import 'application-base';
\ No newline at end of file
# Get the directory that this configuration file exists in
dir = File.dirname(__FILE__)
# Load the sencha-touch framework automatically.
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
# Add include path for command styles
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
# Compass configurations
sass_path = dir
css_path = File.join(dir, "..", "css")
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
environment = :production
output_style = :compressed
\ No newline at end of file
# Get the directory that this configuration file exists in
dir = File.dirname(__FILE__)
# Load the sencha-touch framework automatically.
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
# Add include path for command styles
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
# Compass configurations
sass_path = dir
css_path = File.join(dir, "..", "css")
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
environment = :production
output_style = :compressed
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment